diff --git a/classes/jicofo/jicofo-1.1-SNAPSHOT-jar-with-dependencies.jar b/classes/jicofo/jicofo-1.1-SNAPSHOT-jar-with-dependencies.jar index 6ddd1bfb..a52728e4 100644 Binary files a/classes/jicofo/jicofo-1.1-SNAPSHOT-jar-with-dependencies.jar and b/classes/jicofo/jicofo-1.1-SNAPSHOT-jar-with-dependencies.jar differ diff --git a/classes/jicofo/jicofo-1.1-SNAPSHOT.jar b/classes/jicofo/jicofo-1.1-SNAPSHOT.jar index 7d649eb6..f72116f8 100644 Binary files a/classes/jicofo/jicofo-1.1-SNAPSHOT.jar and b/classes/jicofo/jicofo-1.1-SNAPSHOT.jar differ diff --git a/classes/jvb/jitsi-videobridge-2.1-SNAPSHOT-jar-with-dependencies.jar b/classes/jvb/jitsi-videobridge-2.1-SNAPSHOT-jar-with-dependencies.jar index 654e212f..79b42b24 100644 Binary files a/classes/jvb/jitsi-videobridge-2.1-SNAPSHOT-jar-with-dependencies.jar and b/classes/jvb/jitsi-videobridge-2.1-SNAPSHOT-jar-with-dependencies.jar differ diff --git a/classes/jvb/jitsi-videobridge-2.1-SNAPSHOT.jar b/classes/jvb/jitsi-videobridge-2.1-SNAPSHOT.jar index 65156e79..f3120e33 100644 Binary files a/classes/jvb/jitsi-videobridge-2.1-SNAPSHOT.jar and b/classes/jvb/jitsi-videobridge-2.1-SNAPSHOT.jar differ diff --git a/pom.xml b/pom.xml index fa40d221..6d38a1b9 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ wget - https://download.jitsi.org/jitsi-meet/src/jitsi-meet-1.0.5666.tar.bz2 + https://download.jitsi.org/jitsi-meet/src/jitsi-meet-1.0.5864.tar.bz2 true ${project.basedir}/classes diff --git a/src/webapp/collab.js b/src/webapp/collab.js index e7f0ccfa..7becb9eb 100644 --- a/src/webapp/collab.js +++ b/src/webapp/collab.js @@ -301,7 +301,7 @@ var collab = (function (coop) { Cursor._cursors[clientId] = cursor; if (APP.conference.isLocalId(clientId)) { - cursor.setName(APP.conference.getLocalDisplayName()); + cursor.setName(ofmeet.getLocalDisplayName()); cursor.setColor(getConference().getLocalParticipantProperty('cursorColor')); } else { let participant = getParticipant(clientId); diff --git a/src/webapp/custom_ofmeet.js b/src/webapp/custom_ofmeet.js index 1245efff..32789b6a 100644 --- a/src/webapp/custom_ofmeet.js +++ b/src/webapp/custom_ofmeet.js @@ -319,16 +319,6 @@ var ofmeet = (function (ofm) { enter_room_button.parentNode.appendChild(button); } } - - function getLocalDisplayName() { - const settings = JSON.parse(localStorage.getItem("features/base/settings")); - return settings?.displayName; - } - - function getParticipantDisplayName(id) { - const participant = APP.conference.getParticipantById(APP.conference.getMyUserId()); - return participant?._displayName; - } function preSetup() { if (!APP.connection) { @@ -1171,7 +1161,17 @@ var ofmeet = (function (ofm) { function getConferenceJid() { return getConference()?.room?.roomjid; } + + function getLocalDisplayName() { + const settings = JSON.parse(localStorage.getItem("features/base/settings")); + return settings?.displayName; + } + function getParticipantDisplayName(id) { + const participant = APP.conference.getParticipantById(APP.conference.getMyUserId()); + return participant?._displayName; + } + function getAllParticipants() { const state = APP.store.getState(); return (state["features/base/participants"].remote); @@ -3720,6 +3720,8 @@ var ofmeet = (function (ofm) { ofm.recording = false; ofm.getAllParticipants = getAllParticipants; + ofm.getLocalDisplayName = getLocalDisplayName; + ofm.getParticipantDisplayName = getParticipantDisplayName; return ofm; diff --git a/src/webapp/libs/app.bundle.min-old.js b/src/webapp/libs/app.bundle.min-old.js index f280f47f..6afb44b9 100644 --- a/src/webapp/libs/app.bundle.min-old.js +++ b/src/webapp/libs/app.bundle.min-old.js @@ -1,21 +1,21 @@ /*! For license information please see app.bundle.min.js.LICENSE.txt */ (() => { var __webpack_modules__ = { - 2680: (e, t, n) => { + 2574: (e, t, n) => { "use strict"; var a = {}; n.r(a), n.d(a, { - Vq: () => XP, - aJ: () => WP, - oq: () => KP, - v: () => $P + Vq: () => RO, + aJ: () => TO, + oq: () => jO, + v: () => MO }), n(9157), n(7591), n(8830); var r = n(5571), i = n(9620), o = n.n(i); class s extends i { - constructor(...e) { - super(...e), + constructor() { + super(...arguments), function(e, t, n) { t in e ? Object.defineProperty(e, t, { value: n, @@ -68,7 +68,8 @@ getItem(e) { return this._storage.getItem(e) } - setItem(e, t, n = !1) { + setItem(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; this._storage.setItem(e, t), n || this.emit("changed") } removeItem(e) { @@ -89,53 +90,57 @@ } }; var c = n(5332), - u = n(6712), - d = n(1481), - p = n.n(d); - const h = "features/base/net-info"; - - function m(e) { - return e[h].isOnline - } - const f = "LIB_DID_DISPOSE", - g = "LIB_DID_INIT", - b = "LIB_INIT_ERROR", - y = "LIB_WILL_INIT"; - var v = n(103), - k = n.n(v); - - function _(e) { + u = n(6712); + + function d(e) { + return e && e.indexOf("@") > 0 + } + var p = n(1481), + h = n.n(p); + const m = "features/base/net-info"; + + function f(e) { + return e[m].isOnline + } + const g = "LIB_DID_DISPOSE", + b = "LIB_DID_INIT", + y = "LIB_INIT_ERROR", + v = "LIB_WILL_INIT"; + var k = n(103), + _ = n.n(k); + + function w(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e } - function w(e, t) { - return w = Object.setPrototypeOf || function(e, t) { + function S(e, t) { + return S = Object.setPrototypeOf || function(e, t) { return e.__proto__ = t, e - }, w(e, t) + }, S(e, t) } - function S(e, t) { - e.prototype = Object.create(t.prototype), e.prototype.constructor = e, w(e, t) + function E(e, t) { + e.prototype = Object.create(t.prototype), e.prototype.constructor = e, S(e, t) } - var E = n(2684), - x = n.n(E), - C = n(2377), - A = n.n(C), - j = x().createContext(null), + var x = n(2684), + C = n.n(x), + A = n(7329), + T = n.n(A), + D = C().createContext(null), P = function(e) { e() }, - D = function() { + j = function() { return P }, - T = null, - O = { + M = null, + I = { notify: function() {} }, - M = function() { + O = function() { function e(e, t) { - this.store = e, this.parentSub = t, this.unsubscribe = null, this.listeners = O, this.handleChangeWrapper = this.handleChangeWrapper.bind(this) + this.store = e, this.parentSub = t, this.unsubscribe = null, this.listeners = I, this.handleChangeWrapper = this.handleChangeWrapper.bind(this) } var t = e.prototype; return t.addNestedSub = function(e) { @@ -148,12 +153,12 @@ return Boolean(this.unsubscribe) }, t.trySubscribe = function() { this.unsubscribe || (this.unsubscribe = this.parentSub ? this.parentSub.addNestedSub(this.handleChangeWrapper) : this.store.subscribe(this.handleChangeWrapper), this.listeners = function() { - var e = D(), + var e = j(), t = [], n = []; return { clear: function() { - n = T, t = T + n = M, t = M }, notify: function() { var a = t = n; @@ -168,28 +173,28 @@ var a = !0; return n === t && (n = t.slice()), n.push(e), function() { - a && t !== T && (a = !1, n === t && (n = t.slice()), n.splice(n.indexOf(e), 1)) + a && t !== M && (a = !1, n === t && (n = t.slice()), n.splice(n.indexOf(e), 1)) } } } }()) }, t.tryUnsubscribe = function() { - this.unsubscribe && (this.unsubscribe(), this.unsubscribe = null, this.listeners.clear(), this.listeners = O) + this.unsubscribe && (this.unsubscribe(), this.unsubscribe = null, this.listeners.clear(), this.listeners = I) }, e }(), - I = function(e) { + N = function(e) { function t(t) { var n; n = e.call(this, t) || this; var a = t.store; - n.notifySubscribers = n.notifySubscribers.bind(_(n)); - var r = new M(a); + n.notifySubscribers = n.notifySubscribers.bind(w(n)); + var r = new O(a); return r.onStateChange = n.notifySubscribers, n.state = { store: a, subscription: r }, n.previousState = a.getState(), n } - S(t, e); + E(t, e); var n = t.prototype; return n.componentDidMount = function() { this._isMounted = !0, this.state.subscription.trySubscribe(), this.previousState !== this.props.store.getState() && this.state.subscription.notifyNestedSubs() @@ -198,7 +203,7 @@ }, n.componentDidUpdate = function(e) { if (this.props.store !== e.store) { this.state.subscription.tryUnsubscribe(); - var t = new M(this.props.store); + var t = new O(this.props.store); t.onStateChange = this.notifySubscribers, this.setState({ store: this.props.store, subscription: t @@ -207,22 +212,22 @@ }, n.notifySubscribers = function() { this.state.subscription.notifyNestedSubs() }, n.render = function() { - var e = this.props.context || j; - return x().createElement(e.Provider, { + var e = this.props.context || D; + return C().createElement(e.Provider, { value: this.state }, this.props.children) }, t - }(E.Component); - I.propTypes = { - store: A().shape({ - subscribe: A().func.isRequired, - dispatch: A().func.isRequired, - getState: A().func.isRequired + }(x.Component); + N.propTypes = { + store: T().shape({ + subscribe: T().func.isRequired, + dispatch: T().func.isRequired, + getState: T().func.isRequired }), - context: A().object, - children: A().any + context: T().object, + children: T().any }; - const N = I; + const R = N; function z() { return z = Object.assign || function(e) { @@ -234,31 +239,31 @@ }, z.apply(this, arguments) } - function R(e, t) { + function L(e, t) { if (null == e) return {}; var n, a, r = {}, i = Object.keys(e); for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); return r } - var L = n(9483), - F = n.n(L), - q = n(8541), - B = n.n(q), - U = n(2553), - H = [], - V = [null, null]; + var F = n(9483), + q = n.n(F), + B = n(2456), + U = n.n(B), + H = n(8740), + V = [], + W = [null, null]; - function W(e, t) { + function Y(e, t) { var n = e[1]; return [t.payload, n + 1] } - var Y = function() { + var G = function() { return [null, 0] }, - G = "undefined" != typeof window && void 0 !== window.document && void 0 !== window.document.createElement ? E.useLayoutEffect : E.useEffect; + K = "undefined" != typeof window && void 0 !== window.document && void 0 !== window.document.createElement ? x.useLayoutEffect : x.useEffect; - function K(e, t) { + function J(e, t) { void 0 === t && (t = {}); var n = t, a = n.getDisplayName, @@ -278,9 +283,9 @@ f = n.forwardRef, g = void 0 !== f && f, b = n.context, - y = void 0 === b ? j : b, - v = R(n, ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"]); - B()(void 0 === l, "renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension"), B()(!m, "withRef is removed. To access the wrapped instance, use a ref on the connected component"), B()("store" === p, "storeKey has been removed and does not do anything. To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: . You may also pass a {context : MyContext} option to connect"); + y = void 0 === b ? D : b, + v = L(n, ["getDisplayName", "methodName", "renderCountProp", "shouldHandleStateChanges", "storeKey", "withRef", "forwardRef", "context"]); + U()(void 0 === l, "renderCountProp is removed. render counting is built into the latest React Dev Tools profiling extension"), U()(!m, "withRef is removed. To access the wrapped instance, use a ref on the connected component"), U()("store" === p, "storeKey has been removed and does not do anything. To use a custom Redux store for specific components, create a custom React context with React.createContext(), and pass the context object to React Redux's Provider and specific components like: . You may also pass a {context : MyContext} option to connect"); var k = y; return function(t) { var n = t.displayName || t.name || "Component", @@ -296,59 +301,59 @@ WrappedComponent: t }), s = v.pure, - c = s ? E.useMemo : function(e) { + c = s ? x.useMemo : function(e) { return e() }; function d(n) { - var r = (0, E.useMemo)((function() { + var r = (0, x.useMemo)((function() { var e = n.forwardedRef, - t = R(n, ["forwardedRef"]); + t = L(n, ["forwardedRef"]); return [n.context, e, t] }), [n]), o = r[0], s = r[1], l = r[2], - d = (0, E.useMemo)((function() { - return o && o.Consumer && (0, U.isContextConsumer)(x().createElement(o.Consumer, null)) ? o : k + d = (0, x.useMemo)((function() { + return o && o.Consumer && (0, H.isContextConsumer)(C().createElement(o.Consumer, null)) ? o : k }), [o, k]), - p = (0, E.useContext)(d), + p = (0, x.useContext)(d), h = Boolean(n.store), m = Boolean(p) && Boolean(p.store); - B()(h || m, 'Could not find "store" in the context of "' + a + '". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to ' + a + " in connect options."); + U()(h || m, 'Could not find "store" in the context of "' + a + '". Either wrap the root component in a , or pass a custom React context provider to and the corresponding React context consumer to ' + a + " in connect options."); var f = n.store || p.store, - g = (0, E.useMemo)((function() { + g = (0, x.useMemo)((function() { return function(t) { return e(t.dispatch, i) }(f) }), [f]), - b = (0, E.useMemo)((function() { - if (!u) return V; - var e = new M(f, h ? null : p.subscription), + b = (0, x.useMemo)((function() { + if (!u) return W; + var e = new O(f, h ? null : p.subscription), t = e.notifyNestedSubs.bind(e); return [e, t] }), [f, h, p]), y = b[0], v = b[1], - _ = (0, E.useMemo)((function() { + _ = (0, x.useMemo)((function() { return h ? p : z({}, p, { subscription: y }) }), [h, p, y]), - w = (0, E.useReducer)(W, H, Y), + w = (0, x.useReducer)(Y, V, G), S = w[0][0], - C = w[1]; + E = w[1]; if (S && S.error) throw S.error; - var A = (0, E.useRef)(), - j = (0, E.useRef)(l), - P = (0, E.useRef)(), - D = (0, E.useRef)(!1), - T = c((function() { - return P.current && l === j.current ? P.current : g(f.getState(), l) + var A = (0, x.useRef)(), + T = (0, x.useRef)(l), + D = (0, x.useRef)(), + P = (0, x.useRef)(!1), + j = c((function() { + return D.current && l === T.current ? D.current : g(f.getState(), l) }), [f, S, l]); - G((function() { - j.current = l, A.current = T, D.current = !1, P.current && (P.current = null, v()) - })), G((function() { + K((function() { + T.current = l, A.current = j, P.current = !1, D.current && (D.current = null, v()) + })), K((function() { if (u) { var e = !1, t = null, @@ -356,11 +361,11 @@ if (!e) { var n, a, r = f.getState(); try { - n = g(r, j.current) + n = g(r, T.current) } catch (e) { a = e, t = e } - a || (t = null), n === A.current ? D.current || v() : (A.current = n, P.current = n, D.current = !0, C({ + a || (t = null), n === A.current ? P.current || v() : (A.current = n, D.current = n, P.current = !0, E({ type: "STORE_UPDATED", payload: { latestStoreState: r, @@ -375,69 +380,69 @@ } } }), [f, y, g]); - var O = (0, E.useMemo)((function() { - return x().createElement(t, z({}, T, { + var M = (0, x.useMemo)((function() { + return C().createElement(t, z({}, j, { ref: s })) - }), [s, t, T]); - return (0, E.useMemo)((function() { - return u ? x().createElement(d.Provider, { + }), [s, t, j]); + return (0, x.useMemo)((function() { + return u ? C().createElement(d.Provider, { value: _ - }, O) : O - }), [d, O, _]) + }, M) : M + }), [d, M, _]) } - var h = s ? x().memo(d) : d; + var h = s ? C().memo(d) : d; if (h.WrappedComponent = t, h.displayName = a, g) { - var m = x().forwardRef((function(e, t) { - return x().createElement(h, z({}, e, { + var m = C().forwardRef((function(e, t) { + return C().createElement(h, z({}, e, { forwardedRef: t })) })); - return m.displayName = a, m.WrappedComponent = t, F()(m, t) + return m.displayName = a, m.WrappedComponent = t, q()(m, t) } - return F()(h, t) + return q()(h, t) } } - var J = Object.prototype.hasOwnProperty; + var Z = Object.prototype.hasOwnProperty; - function Z(e, t) { + function Q(e, t) { return e === t ? 0 !== e || 0 !== t || 1 / e == 1 / t : e != e && t != t } - function Q(e, t) { - if (Z(e, t)) return !0; + function X(e, t) { + if (Q(e, t)) return !0; if ("object" != typeof e || null === e || "object" != typeof t || null === t) return !1; var n = Object.keys(e), a = Object.keys(t); if (n.length !== a.length) return !1; for (var r = 0; r < n.length; r++) - if (!J.call(t, n[r]) || !Z(e[n[r]], t[n[r]])) return !1; + if (!Z.call(t, n[r]) || !Q(e[n[r]], t[n[r]])) return !1; return !0 } - var X = n(4428), - ee = function() { + var ee = n(4428), + te = function() { return Math.random().toString(36).substring(7).split("").join(".") }, - te = { - INIT: "@@redux/INIT" + ee(), - REPLACE: "@@redux/REPLACE" + ee(), + ne = { + INIT: "@@redux/INIT" + te(), + REPLACE: "@@redux/REPLACE" + te(), PROBE_UNKNOWN_ACTION: function() { - return "@@redux/PROBE_UNKNOWN_ACTION" + ee() + return "@@redux/PROBE_UNKNOWN_ACTION" + te() } }; - function ne(e) { + function ae(e) { if ("object" != typeof e || null === e) return !1; for (var t = e; null !== Object.getPrototypeOf(t);) t = Object.getPrototypeOf(t); return Object.getPrototypeOf(e) === t } - function ae(e, t, n) { + function re(e, t, n) { var a; if ("function" == typeof t && "function" == typeof n || "function" == typeof n && "function" == typeof arguments[3]) throw new Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function."); if ("function" == typeof t && void 0 === n && (n = t, t = void 0), void 0 !== n) { if ("function" != typeof n) throw new Error("Expected the enhancer to be a function."); - return n(ae)(e, t) + return n(re)(e, t) } if ("function" != typeof e) throw new Error("Expected the reducer to be a function."); var r = e, @@ -471,7 +476,7 @@ } function p(e) { - if (!ne(e)) throw new Error("Actions must be plain objects. Use custom middleware for async actions."); + if (!ae(e)) throw new Error("Actions must be plain objects. Use custom middleware for async actions."); if (void 0 === e.type) throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?'); if (l) throw new Error("Reducers may not dispatch actions."); try { @@ -486,7 +491,7 @@ function h(e) { if ("function" != typeof e) throw new Error("Expected the nextReducer to be a function."); r = e, p({ - type: te.REPLACE + type: ne.REPLACE }) } @@ -503,26 +508,26 @@ unsubscribe: t(n) } } - })[X.Z] = function() { + })[ee.Z] = function() { return this }, e } return p({ - type: te.INIT + type: ne.INIT }), (a = { dispatch: p, subscribe: d, getState: u, replaceReducer: h - })[X.Z] = m, a + })[ee.Z] = m, a } - function re(e, t) { + function ie(e, t) { var n = t && t.type; return "Given " + (n && 'action "' + String(n) + '"' || "an action") + ', reducer "' + e + '" returned undefined. To ignore an action, you must explicitly return the previous state. If you want this reducer to hold no value, you can return null instead of undefined.' } - function ie(e) { + function oe(e) { for (var t = Object.keys(e), n = {}, a = 0; a < t.length; a++) { var r = t[a]; "function" == typeof e[r] && (n[r] = e[r]) @@ -533,11 +538,11 @@ Object.keys(e).forEach((function(t) { var n = e[t]; if (void 0 === n(void 0, { - type: te.INIT + type: ne.INIT })) throw new Error('Reducer "' + t + "\" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined. If you don't want to set a value for this reducer, you can use null instead of undefined."); if (void 0 === n(void 0, { - type: te.PROBE_UNKNOWN_ACTION() - })) throw new Error('Reducer "' + t + "\" returned undefined when probed with a random type. Don't try to handle " + te.INIT + ' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.') + type: ne.PROBE_UNKNOWN_ACTION() + })) throw new Error('Reducer "' + t + "\" returned undefined when probed with a random type. Don't try to handle " + ne.INIT + ' or other actions in "redux/*" namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined, but can be null.') })) }(n) } catch (e) { @@ -551,7 +556,7 @@ u = e[l], d = c(u, t); if (void 0 === d) { - var p = re(l, t); + var p = ie(l, t); throw new Error(p) } r[l] = d, a = a || d !== u @@ -560,24 +565,24 @@ } } - function oe(e, t) { + function se(e, t) { return function() { return t(e.apply(this, arguments)) } } - function se(e, t) { - if ("function" == typeof e) return oe(e, t); + function le(e, t) { + if ("function" == typeof e) return se(e, t); if ("object" != typeof e || null === e) throw new Error("bindActionCreators expected an object or a function, instead received " + (null === e ? "null" : typeof e) + '. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?'); var n = {}; for (var a in e) { var r = e[a]; - "function" == typeof r && (n[a] = oe(r, t)) + "function" == typeof r && (n[a] = se(r, t)) } return n } - function le(e, t, n) { + function ce(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, @@ -586,26 +591,26 @@ }) : e[t] = n, e } - function ce(e, t) { + function ue(e, t) { var n = Object.keys(e); return Object.getOwnPropertySymbols && n.push.apply(n, Object.getOwnPropertySymbols(e)), t && (n = n.filter((function(t) { return Object.getOwnPropertyDescriptor(e, t).enumerable }))), n } - function ue(e) { + function de(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? ce(n, !0).forEach((function(t) { - le(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ce(n).forEach((function(t) { + t % 2 ? ue(n, !0).forEach((function(t) { + ce(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ue(n).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - function de() { + function pe() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return 0 === t.length ? function(e) { return e @@ -616,7 +621,7 @@ })) } - function pe(e) { + function he(e) { return function(t, n) { var a = e(t, n); @@ -627,48 +632,48 @@ } } - function he(e) { + function me(e) { return null !== e.dependsOnOwnProps && void 0 !== e.dependsOnOwnProps ? Boolean(e.dependsOnOwnProps) : 1 !== e.length } - function me(e, t) { + function fe(e, t) { return function(t, n) { n.displayName; var a = function(e, t) { return a.dependsOnOwnProps ? a.mapToProps(e, t) : a.mapToProps(e) }; return a.dependsOnOwnProps = !0, a.mapToProps = function(t, n) { - a.mapToProps = e, a.dependsOnOwnProps = he(e); + a.mapToProps = e, a.dependsOnOwnProps = me(e); var r = a(t, n); - return "function" == typeof r && (a.mapToProps = r, a.dependsOnOwnProps = he(r), r = a(t, n)), r + return "function" == typeof r && (a.mapToProps = r, a.dependsOnOwnProps = me(r), r = a(t, n)), r }, a } } - const fe = [function(e) { - return "function" == typeof e ? me(e) : void 0 + const ge = [function(e) { + return "function" == typeof e ? fe(e) : void 0 }, function(e) { - return e ? void 0 : pe((function(e) { + return e ? void 0 : he((function(e) { return { dispatch: e } })) }, function(e) { - return e && "object" == typeof e ? pe((function(t) { - return se(e, t) + return e && "object" == typeof e ? he((function(t) { + return le(e, t) })) : void 0 }], - ge = [function(e) { - return "function" == typeof e ? me(e) : void 0 + be = [function(e) { + return "function" == typeof e ? fe(e) : void 0 }, function(e) { - return e ? void 0 : pe((function() { + return e ? void 0 : he((function() { return {} })) }]; - function be(e, t, n) { + function ye(e, t, n) { return z({}, n, e, t) } - const ye = [function(e) { + const ve = [function(e) { return "function" == typeof e ? function(e) { return function(t, n) { n.displayName; @@ -683,17 +688,17 @@ }(e) : void 0 }, function(e) { return e ? void 0 : function() { - return be + return ye } }]; - function ve(e, t, n, a) { + function ke(e, t, n, a) { return function(r, i) { return n(e(r, i), t(a, i), i) } } - function ke(e, t, n, a, r) { + function _e(e, t, n, a, r) { var i, o, s, l, c, u = r.areStatesEqual, d = r.areOwnPropsEqual, p = r.areStatePropsEqual, @@ -707,18 +712,18 @@ } } - function _e(e, t) { + function we(e, t) { var n = t.initMapStateToProps, a = t.initMapDispatchToProps, r = t.initMergeProps, - i = R(t, ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]), + i = L(t, ["initMapStateToProps", "initMapDispatchToProps", "initMergeProps"]), o = n(e, i), s = a(e, i), l = r(e, i); - return (i.pure ? ke : ve)(o, s, l, e, i) + return (i.pure ? _e : ke)(o, s, l, e, i) } - function we(e, t, n) { + function Se(e, t, n) { for (var a = t.length - 1; a >= 0; a--) { var r = t[a](e); if (r) return r @@ -728,38 +733,38 @@ } } - function Se(e, t) { + function Ee(e, t) { return e === t } - const Ee = function(e) { + const xe = function(e) { var t = {}, n = t.connectHOC, - a = void 0 === n ? K : n, + a = void 0 === n ? J : n, r = t.mapStateToPropsFactories, - i = void 0 === r ? ge : r, + i = void 0 === r ? be : r, o = t.mapDispatchToPropsFactories, - s = void 0 === o ? fe : o, + s = void 0 === o ? ge : o, l = t.mergePropsFactories, - c = void 0 === l ? ye : l, + c = void 0 === l ? ve : l, u = t.selectorFactory, - d = void 0 === u ? _e : u; + d = void 0 === u ? we : u; return function(e, t, n, r) { void 0 === r && (r = {}); var o = r, l = o.pure, u = void 0 === l || l, p = o.areStatesEqual, - h = void 0 === p ? Se : p, + h = void 0 === p ? Ee : p, m = o.areOwnPropsEqual, - f = void 0 === m ? Q : m, + f = void 0 === m ? X : m, g = o.areStatePropsEqual, - b = void 0 === g ? Q : g, + b = void 0 === g ? X : g, y = o.areMergedPropsEqual, - v = void 0 === y ? Q : y, - k = R(o, ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]), - _ = we(e, i, "mapStateToProps"), - w = we(t, s, "mapDispatchToProps"), - S = we(n, c, "mergeProps"); + v = void 0 === y ? X : y, + k = L(o, ["pure", "areStatesEqual", "areOwnPropsEqual", "areStatePropsEqual", "areMergedPropsEqual"]), + _ = Se(e, i, "mapStateToProps"), + w = Se(t, s, "mapDispatchToProps"), + S = Se(n, c, "mergeProps"); return a(d, z({ methodName: "connect", getDisplayName: function(e) { @@ -778,42 +783,42 @@ } }(); - function xe() { - var e = (0, E.useContext)(j); - return B()(e, "could not find react-redux context value; please ensure the component is wrapped in a "), e + function Ce() { + var e = (0, x.useContext)(D); + return U()(e, "could not find react-redux context value; please ensure the component is wrapped in a "), e } - function Ce() { - return xe().store.dispatch + function Ae() { + return Ce().store.dispatch } - var Ae = "undefined" != typeof window ? E.useLayoutEffect : E.useEffect, - je = function(e, t) { + var Te = "undefined" != typeof window ? x.useLayoutEffect : x.useEffect, + De = function(e, t) { return e === t }; function Pe(e, t) { - void 0 === t && (t = je), B()(e, "You must pass a selector to useSelectors"); - var n, a = xe(), + void 0 === t && (t = De), U()(e, "You must pass a selector to useSelectors"); + var n, a = Ce(), r = a.store, i = a.subscription, - o = (0, E.useReducer)((function(e) { + o = (0, x.useReducer)((function(e) { return e + 1 }), 0)[1], - s = (0, E.useMemo)((function() { - return new M(r, i) + s = (0, x.useMemo)((function() { + return new O(r, i) }), [r, i]), - l = (0, E.useRef)(), - c = (0, E.useRef)(), - u = (0, E.useRef)(); + l = (0, x.useRef)(), + c = (0, x.useRef)(), + u = (0, x.useRef)(); try { n = e !== c.current || l.current ? e(r.getState()) : u.current } catch (e) { var d = "An error occured while selecting the store state: " + e.message + "."; throw l.current && (d += "\nThe error may be correlated with this previous error:\n" + l.current.stack + "\n\nOriginal stack trace:"), new Error(d) } - return Ae((function() { + return Te((function() { c.current = e, u.current = n, l.current = void 0 - })), Ae((function() { + })), Te((function() { function e() { try { var e = c.current(r.getState()); @@ -830,64 +835,45 @@ } }), [r, s]), n } - var De, Te = n(5202), - Oe = n.n(Te); - - function Me(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Ie(e, t, n[t]) - })) - } - return e - } + var je, Me = n(5202), + Ie = n.n(Me); - function Ie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - - function Ne(e, t) { + function Oe(e, t) { let n = e; - for (const a in t) n = Fe(n, a, t[a], n === e); + for (const a in t) n = Le(n, a, t[a], n === e); return n } - function ze(e, t) { - return Ee(e, t) + function Ne(e, t) { + return xe(e, t) } function Re(e, t) { - return k().isEqual(e, t) + return _().isEqual(e, t) } - function Le(e, t, n) { - return Fe(e, t, n, !0) + function ze(e, t, n) { + return Le(e, t, n, !0) } - function Fe(e, t, n, a) { + function Le(e, t, n, a) { if (void 0 === n && Object.prototype.hasOwnProperty.call(e, t)) { - const n = a ? Me({}, e) : e; + const n = a ? { + ...e + } : e; if (delete n[t]) return n } if (e[t] !== n) { - if (a) return Me({}, e, { + if (a) return { + ...e, [t]: n - }); + }; e[t] = n } return e } - function qe(e) { + function Fe(e) { if (e) { if ("function" == typeof e) return e(); const { @@ -897,12 +883,13 @@ } return e } - De = Te.unstable_batchedUpdates, P = De; - const Be = new class { + je = Me.unstable_batchedUpdates, P = je; + const qe = new class { constructor() { this._elements = [] } - applyMiddleware(...e) { + applyMiddleware() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return function() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return function(e) { @@ -920,42 +907,42 @@ i = t.map((function(e) { return e(r) })); - return ue({}, n, { - dispatch: a = de.apply(void 0, i)(n.dispatch) + return de({}, n, { + dispatch: a = pe.apply(void 0, i)(n.dispatch) }) } } - }(...this._elements, ...e) + }(...this._elements, ...t) } register(e) { this._elements.push(e) } }; - var Ue = n(7927), - He = n.n(Ue), - Ve = n(8481), - We = n.n(Ve), - Ye = n(2433), - Ge = n.n(Ye); - const Ke = {}, - $e = { + var Be = n(7927), + Ue = n.n(Be), + He = n(1860), + Ve = n.n(He), + We = n(2433), + Ye = n.n(We); + const Ge = {}, + Ke = { disableCallerInfo: !0 }; - function Je(e) { - const t = "ReactNative" === navigator.product ? $e : Ke; - return (0, Ve.getLogger)(e, void 0, t) + function $e(e) { + const t = "ReactNative" === navigator.product ? Ke : Ge; + return (0, He.getLogger)(e, void 0, t) } - k().once((() => { + _().once((() => { if ("ReactNative" !== navigator.product) return; const { default: e } = n(5332); - We().setGlobalOptions($e), e.setGlobalLogOptions($e), We().removeGlobalTransport(console), e.removeGlobalLogTransport(console), We().addGlobalTransport(Ge()), e.addGlobalLogTransport(Ge()) + Ve().setGlobalOptions(Ke), e.setGlobalLogOptions(Ke), Ve().removeGlobalTransport(console), e.removeGlobalLogTransport(console), Ve().addGlobalTransport(Ye()), e.addGlobalLogTransport(Ye()) })); - const Ze = Je("features/base/redux"); + const Je = $e("features/base/redux"); - function Qe(e, t, n) { + function Ze(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, @@ -963,10 +950,10 @@ writable: !0 }) : e[t] = n, e } - const Xe = "jitsi-state", - et = new class { + const Qe = "jitsi-state", + Xe = new class { constructor() { - Qe(this, "_defaultStates", {}), Qe(this, "_elements", {}) + Ze(this, "_defaultStates", {}), Ze(this, "_elements", {}) } getPersistedState() { let e = {}; @@ -975,17 +962,17 @@ void 0 !== n && (e[t] = n) } if (0 === Object.keys(e).length) { - let t = l.getItem(Xe); + let t = l.getItem(Qe); if (t) { try { t = r.parse(t) } catch (e) { - Ze.error("Error parsing persisted state", t, e), t = {} + Je.error("Error parsing persisted state", t, e), t = {} } - e = this._getFilteredState(t), this.persistState(e), l.removeItem(Xe) + e = this._getFilteredState(t), this.persistState(e), l.removeItem(Qe) } } - return this._checksum = this._calculateChecksum(e), "undefined" != typeof __DEV__ && __DEV__ && Ze.info("redux state rehydrated as", e), e + return this._checksum = this._calculateChecksum(e), "undefined" != typeof __DEV__ && __DEV__ && Je.info("redux state rehydrated as", e), e } persistState(e) { const t = this._getFilteredState(e), @@ -994,19 +981,21 @@ for (const e of Object.keys(t)) try { l.setItem(e, JSON.stringify(t[e])) } catch (t) { - Ze.error("Error persisting redux subtree", e, t) + Je.error("Error persisting redux subtree", e, t) } - Ze.info(`redux state persisted. ${this._checksum} -> ${n}`), this._checksum = n + Je.info(`redux state persisted. ${this._checksum} -> ${n}`), this._checksum = n } } - register(e, t = !0, n) { + register(e) { + let t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1], + n = arguments.length > 2 ? arguments[2] : void 0; this._elements[e] = t, this._defaultStates[e] = n } _calculateChecksum(e) { try { - return He().hex(JSON.stringify(e) || "") + return Ue().hex(JSON.stringify(e) || "") } catch (e) { - return Ze.error("Error calculating checksum for state", e), "" + return Je.error("Error calculating checksum for state", e), "" } } _getFilteredState(e) { @@ -1029,56 +1018,32 @@ const e = this._getFilteredSubtree(a, t); if (void 0 !== e) return this._mergeDefaults(e, n) } catch (t) { - Ze.error("Error parsing persisted subtree", e, a, t) + Je.error("Error parsing persisted subtree", e, a, t) } } _mergeDefaults(e, t) { - return t ? Array.isArray(e) ? void 0 : function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Qe(e, t, n[t]) - })) - } - return e - }({}, t, e) : e + return t ? Array.isArray(e) ? void 0 : { + ...t, + ...e + } : e } - }; - - function tt(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const nt = new class { + }, + et = new class { constructor() { this._elements = {} } - combineReducers(e = {}) { - return ie(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - tt(e, t, n[t]) - })) - } - return e - }({}, this._elements, e)) + combineReducers() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return oe({ + ...this._elements, + ...e + }) } register(e, t) { this._elements[e] = t } }, - at = new class { + tt = new class { constructor() { ! function(e, t, n) { t in e ? Object.defineProperty(e, t, { @@ -1089,19 +1054,20 @@ }) : e[t] = n }(this, "_selectorListeners", new Set) } - _listener({ - prevSelections: e, - store: t - }) { - for (const a of this._selectorListeners) { - const r = e.get(a); + _listener(e) { + let { + prevSelections: t, + store: n + } = e; + for (const e of this._selectorListeners) { + const r = t.get(e); try { - var n; - const i = a.selector(t.getState(), r), - o = null == a || null === (n = a.options) || void 0 === n ? void 0 : n.deepEquals; - (o && !Re(r, i) || !o && r !== i) && (e.set(a, i), a.listener(i, t, r)) + var a; + const i = e.selector(n.getState(), r), + o = null == e || null === (a = e.options) || void 0 === a ? void 0 : a.deepEquals; + (o && !Re(r, i) || !o && r !== i) && (t.set(e, i), e.listener(i, n, r)) } catch (e) { - Ze.error(e) + Je.error(e) } } } @@ -1118,125 +1084,92 @@ store: e })) } - }; - - function rt(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const it = c.default.errors.conference, - ot = c.default.errors.connection; + }, + nt = c.default.errors.conference, + at = c.default.errors.connection; - function st(e, t, n, a) { - return c.default.createLocalTracks(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - rt(e, t, n[t]) - })) - } - return e - }({ + function rt(e, t, n, a) { + return c.default.createLocalTracks({ cameraDeviceId: t, devices: [e], firefox_fake_device: window.config && window.config.firefox_fake_device, micDeviceId: t, - timeout: n - }, a)).then((([e]) => e)) + timeout: n, + ...a + }).then((e => { + let [t] = e; + return t + })) } - function lt(e) { + function it(e) { const { disableThirdPartyRequests: t, analytics: n = {} - } = qe(e)["features/base/config"]; + } = Fe(e)["features/base/config"]; return !(t || n.disabled) } - function ct(e) { - return "string" != typeof e && (e = e.name), e === it.FOCUS_DISCONNECTED || e === it.FOCUS_LEFT || e === it.ICE_FAILED || e === it.OFFER_ANSWER_FAILED || e === it.VIDEOBRIDGE_NOT_AVAILABLE + function ot(e) { + return "string" != typeof e && (e = e.name), e === nt.FOCUS_DISCONNECTED || e === nt.FOCUS_LEFT || e === nt.ICE_FAILED || e === nt.OFFER_ANSWER_FAILED || e === nt.VIDEOBRIDGE_NOT_AVAILABLE } - function ut(e) { - return "string" != typeof e && (e = e.name), e === ot.CONNECTION_DROPPED_ERROR || e === ot.OTHER_ERROR || e === ot.SERVER_ERROR + function st(e) { + return "string" != typeof e && (e = e.name), e === at.CONNECTION_DROPPED_ERROR || e === at.OTHER_ERROR || e === at.SERVER_ERROR } - async function dt(e) { + async function lt(e) { return window.config } - function pt(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - - function ht() { + function ct() { return e => { e({ type: "LIB_WILL_DISPOSE" }), e({ - type: f + type: g }) } } - const mt = c.default.analytics, - ft = c.default.util.browser, - gt = c.default.errors.conference, - bt = c.default.events.conference, - yt = c.default.errors.connection, - vt = c.default.events.connection, - kt = c.default.events.connectionQuality, - _t = (c.default.events.detection, c.default.events.e2eping), - wt = c.default.events.mediaDevices, - St = c.default.constants.participantConnectionStatus, - Et = c.default.constants.recording, - xt = c.default.constants.sipVideoGW, - Ct = c.default.errors.track, - At = c.default.events.track; - var jt = n(6415), - Pt = n.n(jt); - - function Dt(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - async function Tt(e) { + const ut = c.default.analytics, + dt = c.default.util.browser, + pt = c.default.errors.conference, + ht = c.default.events.conference, + mt = c.default.errors.connection, + ft = c.default.events.connection, + gt = c.default.events.connectionQuality, + bt = (c.default.events.detection, c.default.events.e2eping), + yt = c.default.events.mediaDevices, + vt = c.default.constants.participantConnectionStatus, + kt = c.default.constants.recording, + _t = c.default.constants.sipVideoGW, + wt = c.default.errors.track, + St = c.default.events.track; + var Et = n(6415), + xt = n.n(Et); + async function Ct(e) { try { - return await Pt()(e), !0 + return await xt()(e), !0 } catch (e) { return !1 } } - const Ot = /[|\\{}()[\]^$+*?.-]/g; + const At = /[|\\{}()[\]^$+*?.-]/g; - function Mt(e) { + function Tt(e) { if ("string" != typeof e) throw new TypeError("Expected a string"); - return e.replace(Ot, "\\$&") + return e.replace(At, "\\$&") } - function It() { + function Dt() { return window.JitsiMeetJS || (window.JitsiMeetJS = {}), window.JitsiMeetJS.app || (window.JitsiMeetJS.app = {}), window.JitsiMeetJS.app } - function Nt(e, t = "") { + function Pt(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; console.error(t, e), window.onerror && window.onerror(t, null, null, null, e) } - function zt(e, t) { + function jt(e, t) { if (!e) return `rgba(0, 0, 0, ${t})`; let n, a, r; try { @@ -1249,13 +1182,15 @@ }(e) : (r = parseInt(e.substring(1, 3), 16), a = parseInt(e.substring(3, 5), 16), n = parseInt(e.substring(5, 7), 16)) } return `rgba(${r}, ${a}, ${n}, ${t})` - } catch (t) { + } catch { return e } } - const Rt = ["__proto__", "constructor", "prototype"]; + const Mt = ["__proto__", "constructor", "prototype"]; - function Lt(e, t = !1, n = "hash") { + function It(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "hash"; const a = "search" === n ? e.search : e.hash, i = {}, o = a && a.substr(1).split("&") || []; @@ -1266,7 +1201,7 @@ return o.forEach((e => { const n = e.split("="), a = n[0]; - if (!a || a.split(".").some((e => Rt.includes(e)))) return; + if (!a || a.split(".").some((e => Mt.includes(e)))) return; let o; try { if (o = n[1], !t) { @@ -1274,19 +1209,19 @@ o = "undefined" === e ? void 0 : r.parse(e) } } catch (e) { - return void Nt(e, `Failed to parse URL parameter value: ${String(o)}`) + return void Pt(e, `Failed to parse URL parameter value: ${String(o)}`) } i[a] = o })), i } - const Ft = Je("features/base/jitsi-local-storage"); + const Ot = $e("features/base/jitsi-local-storage"); - function qt() { + function Nt() { APP.API.notifyLocalStorageChanged(l.serialize()) }! function() { - const e = Lt(window.location); + const e = It(window.location); if (function(e) { - return !!(!0 === e["config.useHostPageLocalStorage"] || "object" == typeof config && config.useHostPageLocalStorage) || !!l.isLocalStorageDisabled() || !(!ft.isWebKitBased() || ! function() { + return !!(!0 === e["config.useHostPageLocalStorage"] || "object" == typeof config && config.useHostPageLocalStorage) || !!l.isLocalStorageDisabled() || !(!dt.isWebKitBased() || ! function() { try { return window.self !== window.top } catch (e) { @@ -1300,42 +1235,21 @@ l.setItem(e, t[e]) })) } catch (e) { - Ft.error("Can't parse localStorageContent.", e) + Ot.error("Can't parse localStorageContent.", e) } - l.on("changed", qt) + l.on("changed", Nt) } }(); - const Bt = Lt(window.location).jitsi_meet_external_api_id, - Ut = "endpoint-text-message"; + const Rt = It(window.location).jitsi_meet_external_api_id, + zt = "endpoint-text-message", + Lt = "ui", + Ft = "pinned", + qt = "triggered", + Bt = "audio.mute", + Ut = "video.mute"; function Ht(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Vt(e, t, n[t]) - })) - } - return e - } - - function Vt(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const Wt = "ui", - Yt = "pinned", - Gt = "triggered", - Kt = "audio.mute", - $t = "video.mute"; - - function Jt(e, t = {}) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return { action: e, attributes: t, @@ -1343,26 +1257,35 @@ } } - function Zt(e, t = {}) { + function Vt(e) { + return { + action: "audio.only." + (e ? "enabled" : "disabled") + } + } + + function Wt(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return { action: "clicked", actionSubject: e, attributes: t, source: "calendar", - type: Wt + type: Lt } } - function Qt(e, t = {}) { + function Yt(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return { action: e ? "install" : "cancel", attributes: t, source: "chrome.extension.banner", - type: Wt + type: Lt } } - function Xt(e, t, n = {}) { + function Gt(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return { action: e, actionSubject: t, @@ -1371,7 +1294,7 @@ } } - function en(e, t) { + function Kt(e, t) { return { action: "device.changed", attributes: { @@ -1381,7 +1304,8 @@ } } - function tn(e, t, n = {}) { + function $t(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return { action: e, actionSubject: t, @@ -1390,36 +1314,44 @@ } } - function nn(e, t = {}) { + function Jt(e) { + return { + action: `poll.${e}` + } + } + + function Zt(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return { action: "clicked", actionSubject: e, attributes: t, source: "profile.panel", - type: Wt + type: Lt } } - function an(e, t, n = {}) { + function Qt(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return { action: "clicked", actionSubject: t, attributes: n, source: `${e}.recording.dialog`, - type: Wt + type: Lt } } - function rn(e, t) { + function Xt(e, t) { return { action: "clicked", actionSubject: t, source: `${e}.liveStreaming.dialog`, - type: Wt + type: Lt } } - function on(e, t, n) { + function en(e, t, n) { return { action: e, actionSubject: `recording.${t}`, @@ -1429,31 +1361,36 @@ } } - function sn(e, t) { + function tn(e, t) { return { action: "clicked", actionSubject: e, attributes: t, source: "remote.video.menu", - type: Wt + type: Lt } } - function ln(e) { + function nn(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; return { action: e, - actionSubject: "screen.sharing" + actionSubject: "screen.sharing", + attributes: { + value: t + } } } - function cn(e) { + function an(e) { return { action: "screen.sharing.issue", attributes: e } } - function un(e, t = {}) { + function rn(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return { action: e, attributes: t, @@ -1461,18 +1398,19 @@ } } - function dn(e, t = "triggered", n = {}) { + function on(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : qt, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return { action: t, - actionSubject: "keyboard.shortcut", actionSubjectId: e, attributes: n, source: "keyboard.shortcut", - type: Wt + type: Lt } } - function pn(e, t, n) { + function sn(e, t, n) { return { action: "start.muted.configuration", attributes: { @@ -1483,17 +1421,19 @@ } } - function hn(e, t = {}) { + function ln(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return { action: "clicked", actionSubject: e, attributes: t, source: "toolbar.button", - type: Wt + type: Lt } } - function mn(e, t, n = !0) { + function cn(e, t) { + let n = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; return { action: "track.muted", attributes: { @@ -1504,7 +1444,8 @@ } } - function fn(e, t, n = {}) { + function un(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return { action: e, actionSubject: t, @@ -1512,24 +1453,32 @@ source: "welcomePage" } } - const gn = "SETTINGS_UPDATED"; - function bn(e) { + function dn(e) { + return { + action: "clicked", + actionSubject: `${e}.button`, + source: "breakout.rooms" + } + } + const pn = "SETTINGS_UPDATED"; + + function hn(e) { return { - type: gn, + type: pn, settings: e } } - const yn = "ADD_KNOWN_DOMAINS"; + const mn = "ADD_KNOWN_DOMAINS"; - function vn(e) { + function fn(e) { return { - type: yn, + type: mn, knownDomains: "string" == typeof e ? [e] : e } } - function kn(e, t) { + function gn(e, t) { return new Promise(((n, a) => { const r = setTimeout((() => a(new Error("timeout"))), t); e.then((e => { @@ -1540,34 +1489,29 @@ })) } - function _n(e, t) { + function bn(e, t) { const n = fetch(e).then((e => { const t = e.json(); return e.ok ? t : t.then((e => Promise.reject(e))) })); - return t ? kn(n, 3e3).catch((e => e.status >= 400 && e.status < 500 ? Promise.reject(e) : kn(n, 3e3))) : n + return t ? gn(n, 3e3).catch((e => e.status >= 400 && e.status < 500 ? Promise.reject(e) : gn(n, 3e3))) : n } - function wn(e) { + function yn(e) { return new Promise(((t, n) => JitsiMeetJS.util.ScriptUtil.loadScript(e, !0, !1, !1, t, n))) } - function Sn(e, t) { + function vn(e, t) { const n = t ? "_blank" : ""; window.open(e, n, "noopener") } - function En(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function kn(e) { + return e.normalize("NFD").replace(/[\u0300-\u036f]/g, "") } - const xn = "^([a-z][a-z0-9\\.\\+-]*:)"; + const _n = "^([a-z][a-z0-9\\.\\+-]*:)"; - function Cn(e) { + function wn(e) { const t = new RegExp("^([a-z][a-z0-9\\.\\+-]*:)+", "gi"), n = t.exec(e); if (n) { @@ -1577,7 +1521,7 @@ return e } - function An(e) { + function Sn(e) { if (!e) return e; try { e = decodeURIComponent(e) @@ -1585,14 +1529,16 @@ return e = (e = e.normalize("NFKC")).toLowerCase(), (e = encodeURIComponent(e)).toLowerCase() } - function jn({ - pathname: e - }) { - const t = e.lastIndexOf("/"); - return -1 === t ? "/" : e.substring(0, t + 1) + function En(e) { + let { + pathname: t + } = e; + const n = t.lastIndexOf("/"); + return -1 === n ? "/" : t.substring(0, n + 1) } - function Pn(e = {}) { + function xn() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; const t = []; for (const n in e) try { t.push(`${n}=${encodeURIComponent(JSON.stringify(e[n]))}`) @@ -1602,12 +1548,12 @@ return t } - function Dn(e) { + function Cn(e) { const t = { - toString: On + toString: Tn }; let n, a, r; - if (e = e.replace(/\s/g, ""), n = new RegExp(xn, "gi"), a = n.exec(e), a && (t.protocol = a[1].toLowerCase(), e = e.substring(n.lastIndex)), n = new RegExp("^(//[^/?#]+)", "gi"), a = n.exec(e), a) { + if (e = e.replace(/\s/g, ""), n = new RegExp(_n, "gi"), a = n.exec(e), a && (t.protocol = a[1].toLowerCase(), e = e.substring(n.lastIndex)), n = new RegExp("^(//[^/?#]+)", "gi"), a = n.exec(e), a) { let r = a[1].substring(2); e = e.substring(n.lastIndex); const i = r.indexOf("@"); - 1 !== i && (r = r.substring(i + 1)), t.host = r; @@ -1619,19 +1565,19 @@ return t.hash = e.startsWith("#") ? e : "", t } - function Tn(e) { + function An(e) { if ("string" != typeof e) return; - const t = Dn(Cn(e)); + const t = Cn(wn(e)); t.pathname = t.pathname.split("/").map((e => function(e) { return e ? e.replace(new RegExp("[\\:\\?#\\[\\]@!$&'()*+,;=> 1 && (t.tenant = n.substring(1, a)), t } - function On(e) { + function Tn(e) { const { hash: t, host: n, @@ -1643,21 +1589,21 @@ return r && (o += r), n && (o += `//${n}`), o += a || "/", i && (o += i), t && (o += t), o } - function Mn(e) { + function Dn(e) { try { return decodeURIComponent(e) } catch (e) {} return e } - function In(e) { + function Pn(e) { let t; switch (typeof e) { case "object": e && (t = e instanceof URL ? e.href : function(e) { let t; t = e.serverURL && e.room ? new URL(e.room, e.serverURL).toString() : e.room ? e.room : e.url || ""; - const n = Dn(Cn(t)); + const n = Cn(wn(t)); if (!n.protocol) { let t = e.protocol || e.scheme; t && (t.endsWith(":") || (t += ":"), n.protocol = t) @@ -1673,7 +1619,7 @@ hostname: r, pathname: i, port: o - } = Dn(Cn(`org.jitsi.meet://${t}`)); + } = Cn(wn(`org.jitsi.meet://${t}`)); e && (n.host = e, n.hostname = r, n.port = o), "/" === a && "/" !== i && (a = i) } } @@ -1691,7 +1637,7 @@ hash: o } = n; for (const t of ["config", "interfaceConfig", "devices", "userInfo", "appData"]) { - const n = Pn(e[`${t}Overwrite`] || e[t] || e[`${t}Override`]); + const n = xn(e[`${t}Overwrite`] || e[t] || e[`${t}Override`]); if (n.length) { let e = `${t}.${n.join(`&${t}.`)}`; o.length ? e = `&${e}` : o = "#", o += e @@ -1705,27 +1651,27 @@ } return t } - const Nn = "CONFIG_WILL_LOAD", - zn = "LOAD_CONFIG_ERROR", - Rn = "SET_CONFIG", - Ln = "UPDATE_CONFIG", - Fn = "OVERWRITE_CONFIG", - qn = ["camera", "chat", "closedcaptions", "desktop", "download", "embedmeeting", "etherpad", "feedback", "filmstrip", "fullscreen", "hangup", "help", "invite", "livestreaming", "microphone", "mute-everyone", "mute-video-everyone", "participants-pane", "profile", "raisehand", "recording", "security", "select-background", "settings", "shareaudio", "sharedvideo", "shortcuts", "stats", "tileview", "toggle-camera", "videoquality"], - Bn = ["microphone", "camera", "select-background", "invite", "settings"], - Un = ["microphone", "camera", "select-background"], - Hn = ["_desktopSharingSourceDevice", "_peerConnStatusOutOfLastNTimeout", "_peerConnStatusRtcMuteTimeout", "abTesting", "analytics.disabled", "audioLevelsInterval", "audioQuality", "apiLogLevels", "avgRtpStatsN", "backgroundAlpha", "buttonsWithNotifyClick", "callDisplayName", "callFlowsEnabled", "callHandle", "callStatsConfIDNamespace", "callStatsConfigParams", "callStatsID", "callStatsSecret", "callUUID", "conferenceInfo", "channelLastN", "connectionIndicators", "constraints", "brandingRoomAlias", "debug", "debugAudioLevels", "defaultLanguage", "desktopSharingFrameRate", "desktopSharingSources", "disable1On1Mode", "disableAEC", "disableAGC", "disableAP", "disableAddingBackgroundImages", "disableAudioLevels", "disableChatSmileys", "disableDeepLinking", "disabledSounds", "disableFilmstripAutohiding", "disableInitialGUM", "disableH264", "disableHPF", "disableInviteFunctions", "disableIncomingMessageSound", "disableJoinLeaveSounds", "disableLocalVideoFlip", "disableModeratorIndicator", "disableNS", "disablePolls", "disableProfile", "disableReactions", "disableRecordAudioNotification", "disableRemoteControl", "disableRemoteMute", "disableResponsiveTiles", "disableRtx", "disableShortcuts", "disableShowMoreStats", "disableRemoveRaisedHandOnFocus", "disableSpeakerStatsSearch", "speakerStatsOrder", "disableSimulcast", "disableThirdPartyRequests", "disableTileView", "displayJids", "doNotStoreRoom", "doNotFlipLocalVideo", "dropbox", "e2eeLabels", "e2eping", "enableDisplayNameInStats", "enableEmailInStats", "enableEncodedTransformSupport", "enableIceRestart", "enableInsecureRoomNameWarning", "enableLayerSuspension", "enableLipSync", "enableOpusRed", "enableRemb", "enableSaveLogs", "enableScreenshotCapture", "enableTalkWhileMuted", "enableUnifiedOnChrome", "enableNoAudioDetection", "enableNoisyMicDetection", "enableTcc", "enableAutomaticUrlCopy", "etherpad_base", "failICE", "feedbackPercentage", "fileRecordingsEnabled", "firefox_fake_device", "forceJVB121Ratio", "forceTurnRelay", "gatherStats", "googleApiApplicationClientID", "hiddenPremeetingButtons", "hideConferenceSubject", "hideRecordingLabel", "hideParticipantsStats", "hideConferenceTimer", "hiddenDomain", "hideLobbyButton", "hosts", "iAmRecorder", "iAmSipGateway", "iceTransportPolicy", "ignoreStartMuted", "inviteAppName", "liveStreamingEnabled", "localRecording", "maxFullResolutionParticipants", "mouseMoveCallbackInterval", "notifications", "openSharedDocumentOnJoin", "opusMaxAverageBitrate", "p2p", "pcStatsInterval", "preferH264", "preferredCodec", "prejoinPageEnabled", "requireDisplayName", "remoteVideoMenu", "roomPasswordNumberOfDigits", "readOnlyName", "replaceParticipant", "resolution", "startAudioMuted", "startAudioOnly", "startLastN", "startScreenSharing", "startSilent", "startVideoMuted", "startWithAudioMuted", "startWithVideoMuted", "stereo", "subject", "testing", "toolbarButtons", "toolbarConfig", "useHostPageLocalStorage", "useTurnUdp", "videoQuality", "webrtcIceTcpDisable", "webrtcIceUdpDisable"].concat([]), - Vn = ["AUDIO_LEVEL_PRIMARY_COLOR", "AUDIO_LEVEL_SECONDARY_COLOR", "AUTO_PIN_LATEST_SCREEN_SHARE", "CLOSE_PAGE_GUEST_HINT", "CONNECTION_INDICATOR_AUTO_HIDE_ENABLED", "CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT", "CONNECTION_INDICATOR_DISABLED", "DEFAULT_BACKGROUND", "DISABLE_PRESENCE_STATUS", "DISABLE_JOIN_LEAVE_NOTIFICATIONS", "DEFAULT_LOCAL_DISPLAY_NAME", "DEFAULT_REMOTE_DISPLAY_NAME", "DISABLE_DOMINANT_SPEAKER_INDICATOR", "DISABLE_FOCUS_INDICATOR", "DISABLE_PRIVATE_MESSAGES", "DISABLE_RINGING", "DISABLE_TRANSCRIPTION_SUBTITLES", "DISABLE_VIDEO_BACKGROUND", "DISPLAY_WELCOME_PAGE_CONTENT", "ENABLE_DIAL_OUT", "ENABLE_FEEDBACK_ANIMATION", "ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT", "FILM_STRIP_MAX_HEIGHT", "GENERATE_ROOMNAMES_ON_WELCOME_PAGE", "HIDE_INVITE_MORE_HEADER", "INDICATOR_FONT_SIZES", "INITIAL_TOOLBAR_TIMEOUT", "LANG_DETECTION", "LIVE_STREAMING_HELP_LINK", "LOCAL_THUMBNAIL_RATIO", "MAXIMUM_ZOOMING_COEFFICIENT", "NATIVE_APP_NAME", "OPTIMAL_BROWSERS", "PHONE_NUMBER_REGEX", "PROVIDER_NAME", "RECENT_LIST_ENABLED", "REMOTE_THUMBNAIL_RATIO", "SETTINGS_SECTIONS", "SHARING_FEATURES", "SHOW_CHROME_EXTENSION_BANNER", "SHOW_DEEP_LINKING_IMAGE", "SHOW_POWERED_BY", "SUPPORT_URL", "TILE_VIEW_MAX_COLUMNS", "TOOLBAR_ALWAYS_VISIBLE", "TOOLBAR_BUTTONS", "TOOLBAR_TIMEOUT", "UNSUPPORTED_BROWSERS", "VERTICAL_FILMSTRIP", "VIDEO_LAYOUT_FIT", "VIDEO_QUALITY_LABEL_DISABLED"], - Wn = Je("features/base/config"); + const jn = "CONFIG_WILL_LOAD", + Mn = "LOAD_CONFIG_ERROR", + In = "SET_CONFIG", + On = "UPDATE_CONFIG", + Nn = "OVERWRITE_CONFIG", + Rn = ["camera", "chat", "closedcaptions", "desktop", "download", "embedmeeting", "etherpad", "feedback", "filmstrip", "fullscreen", "hangup", "help", "invite", "livestreaming", "microphone", "mute-everyone", "mute-video-everyone", "participants-pane", "profile", "raisehand", "recording", "security", "select-background", "settings", "shareaudio", "sharedvideo", "shortcuts", "stats", "tileview", "toggle-camera", "videoquality"], + zn = ["microphone", "camera", "select-background", "invite", "settings"], + Ln = ["microphone", "camera", "select-background"], + Fn = ["_desktopSharingSourceDevice", "_peerConnStatusOutOfLastNTimeout", "_peerConnStatusRtcMuteTimeout", "abTesting", "analytics.disabled", "analytics.rtcstatsEnabled", "audioLevelsInterval", "audioQuality", "autoKnockLobby", "apiLogLevels", "avgRtpStatsN", "backgroundAlpha", "buttonsWithNotifyClick", "callDisplayName", "callFlowsEnabled", "callHandle", "callStatsConfIDNamespace", "callStatsConfigParams", "callStatsID", "callStatsSecret", "callUUID", "conferenceInfo", "channelLastN", "connectionIndicators", "constraints", "brandingRoomAlias", "debug", "debugAudioLevels", "defaultLanguage", "defaultLocalDisplayName", "defaultRemoteDisplayName", "desktopSharingFrameRate", "desktopSharingSources", "disable1On1Mode", "disableAEC", "disableAGC", "disableAP", "disableAddingBackgroundImages", "disableAudioLevels", "disableBeforeUnloadHandlers", "disableChatSmileys", "disableDeepLinking", "disabledSounds", "disableFilmstripAutohiding", "disableInitialGUM", "disableH264", "disableHPF", "disableInviteFunctions", "disableIncomingMessageSound", "disableJoinLeaveSounds", "disableLocalVideoFlip", "disableModeratorIndicator", "disableNS", "disablePolls", "disableProfile", "disableReactions", "disableRecordAudioNotification", "disableRemoteControl", "disableRemoteMute", "disableResponsiveTiles", "disableRtx", "disableSelfView", "disableScreensharingVirtualBackground", "disableShortcuts", "disableShowMoreStats", "disableRemoveRaisedHandOnFocus", "disableSpeakerStatsSearch", "speakerStatsOrder", "disableSimulcast", "disableThirdPartyRequests", "disableTileView", "disableTileEnlargement", "displayJids", "doNotStoreRoom", "doNotFlipLocalVideo", "dropbox", "e2eeLabels", "e2ee", "e2eping", "enableDisplayNameInStats", "enableEmailInStats", "enableEncodedTransformSupport", "enableFacialRecognition", "enableIceRestart", "enableInsecureRoomNameWarning", "enableLayerSuspension", "enableLipSync", "enableOpusRed", "enableRemb", "enableSaveLogs", "enableScreenshotCapture", "enableTalkWhileMuted", "enableUnifiedOnChrome", "enableNoAudioDetection", "enableNoisyMicDetection", "enableTcc", "enableAutomaticUrlCopy", "etherpad_base", "failICE", "feedbackPercentage", "fileRecordingsEnabled", "firefox_fake_device", "forceJVB121Ratio", "forceTurnRelay", "gatherStats", "googleApiApplicationClientID", "hiddenPremeetingButtons", "hideConferenceSubject", "hideRecordingLabel", "hideParticipantsStats", "hideConferenceTimer", "hiddenDomain", "hideAddRoomButton", "hideLobbyButton", "hosts", "iAmRecorder", "iAmSipGateway", "iceTransportPolicy", "ignoreStartMuted", "inviteAppName", "liveStreamingEnabled", "localRecording", "maxFullResolutionParticipants", "mouseMoveCallbackInterval", "notifications", "notificationTimeouts", "openSharedDocumentOnJoin", "opusMaxAverageBitrate", "p2p", "pcStatsInterval", "preferH264", "preferredCodec", "prejoinConfig", "prejoinPageEnabled", "requireDisplayName", "remoteVideoMenu", "roomPasswordNumberOfDigits", "readOnlyName", "replaceParticipant", "resolution", "startAudioMuted", "startAudioOnly", "startLastN", "startScreenSharing", "startSilent", "startVideoMuted", "startWithAudioMuted", "startWithVideoMuted", "stereo", "subject", "testing", "toolbarButtons", "toolbarConfig", "transcribingEnabled", "useHostPageLocalStorage", "useTurnUdp", "videoQuality", "webrtcIceTcpDisable", "webrtcIceUdpDisable"].concat([]), + qn = ["AUDIO_LEVEL_PRIMARY_COLOR", "AUDIO_LEVEL_SECONDARY_COLOR", "AUTO_PIN_LATEST_SCREEN_SHARE", "CLOSE_PAGE_GUEST_HINT", "CONNECTION_INDICATOR_AUTO_HIDE_ENABLED", "CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT", "CONNECTION_INDICATOR_DISABLED", "DEFAULT_BACKGROUND", "DISABLE_PRESENCE_STATUS", "DISABLE_JOIN_LEAVE_NOTIFICATIONS", "DEFAULT_LOCAL_DISPLAY_NAME", "DEFAULT_REMOTE_DISPLAY_NAME", "DISABLE_DOMINANT_SPEAKER_INDICATOR", "DISABLE_FOCUS_INDICATOR", "DISABLE_PRIVATE_MESSAGES", "DISABLE_RINGING", "DISABLE_TRANSCRIPTION_SUBTITLES", "DISABLE_VIDEO_BACKGROUND", "DISPLAY_WELCOME_PAGE_CONTENT", "ENABLE_DIAL_OUT", "ENABLE_FEEDBACK_ANIMATION", "FILM_STRIP_MAX_HEIGHT", "GENERATE_ROOMNAMES_ON_WELCOME_PAGE", "HIDE_INVITE_MORE_HEADER", "INDICATOR_FONT_SIZES", "INITIAL_TOOLBAR_TIMEOUT", "LANG_DETECTION", "LIVE_STREAMING_HELP_LINK", "LOCAL_THUMBNAIL_RATIO", "MAXIMUM_ZOOMING_COEFFICIENT", "NATIVE_APP_NAME", "OPTIMAL_BROWSERS", "PHONE_NUMBER_REGEX", "PROVIDER_NAME", "RECENT_LIST_ENABLED", "REMOTE_THUMBNAIL_RATIO", "SETTINGS_SECTIONS", "SHARING_FEATURES", "SHOW_CHROME_EXTENSION_BANNER", "SHOW_DEEP_LINKING_IMAGE", "SHOW_POWERED_BY", "SUPPORT_URL", "TILE_VIEW_MAX_COLUMNS", "TOOLBAR_ALWAYS_VISIBLE", "TOOLBAR_BUTTONS", "TOOLBAR_TIMEOUT", "UNSUPPORTED_BROWSERS", "VERTICAL_FILMSTRIP", "VIDEO_LAYOUT_FIT", "VIDEO_QUALITY_LABEL_DISABLED"], + Bn = $e("features/base/config"); - function Yn(e, t) { - return "interfaceConfig" === e ? k().pick(t, Vn) : "config" === e ? k().pick(t, Hn) : t + function Un(e, t) { + return "interfaceConfig" === e ? _().pick(t, qn) : "config" === e ? _().pick(t, Fn) : t } - function Gn(e) { + function Hn(e) { return e["features/base/config"].disableProfile || e["features/base/config"].readOnlyName } - function Kn(e) { + function Vn(e) { const t = `config.js/${e}`, n = l.getItem(t); if (n) try { @@ -1735,116 +1681,100 @@ } } - function $n(e) { + function Wn(e, t, n, a) { + const r = It(a), + i = {}; + e && (i.config = {}), t && (i.interfaceConfig = {}), n && (i.loggingConfig = {}); + for (const e of Object.keys(r)) { + let t = i; + const n = e.split("."), + a = n.pop(); + for (const e of n) t = t[e] = t[e] || {}; + t[a] = r[e] + }! function(e, t, n, a) { + for (const r of Object.keys(a)) { + let i; + if ("config" === r ? i = e : "interfaceConfig" === r ? i = t : "loggingConfig" === r && (i = n), i) { + const e = Un(r, a[r]); + _().isEmpty(e) || (Bn.info(`Extending ${r} with: ${JSON.stringify(e)}`), _().mergeWith(i, e, ((e, t) => Array.isArray(e) ? t : void 0))) + } + } + }(e, t, n, i) + } + + function Yn(e) { return e["features/base/config"].guestDialOutStatusUrl } - function Jn(e) { + function Gn(e) { return e["features/base/config"].guestDialOutUrl } - function Zn(e) { + function Kn(e) { return e["features/base/config"].replaceParticipant } - function Qn(e) { + function $n(e) { const { toolbarButtons: t } = e["features/base/config"]; - return Array.isArray(t) ? t : qn + return Array.isArray(t) ? t : Rn } - function Xn(e, t) { - return (Array.isArray(t) ? t : Qn(t)).includes(e) + function Jn(e, t) { + return (Array.isArray(t) ? t : $n(t)).includes(e) } - function ea(e) { + function Zn(e) { return { - type: Ln, + type: On, config: e } } - function ta(e, t) { + function Qn(e, t) { return { - type: zn, + type: Mn, error: e, locationURL: t } } - function na(e) { + function Xn(e) { return { - type: Fn, + type: Nn, config: e } } - function aa(e = {}) { + function ea() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; return (t, n) => { const { locationURL: a } = n()["features/base/connection"]; - a && function(e, t, n, a) { - const r = Lt(a), - i = {}; - e && (i.config = {}), t && (i.interfaceConfig = {}), n && (i.loggingConfig = {}); - for (const e of Object.keys(r)) { - let t = i; - const n = e.split("."), - a = n.pop(); - for (const e of n) t = t[e] = t[e] || {}; - t[a] = r[e] - }! function(e, t, n, a) { - for (const r of Object.keys(a)) { - let i; - if ("config" === r ? i = e : "interfaceConfig" === r ? i = t : "loggingConfig" === r && (i = n), i) { - const e = Yn(r, a[r]); - k().isEmpty(e) || (Wn.info(`Extending ${r} with: ${JSON.stringify(e)}`), k().mergeWith(i, e, ((e, t) => Array.isArray(e) ? t : void 0))) - } - } - }(e, t, n, i) - }(e, window.interfaceConfig, window.loggingConfig, a), t({ - type: Rn, + a && Wn(e, window.interfaceConfig, window.loggingConfig, a), t({ + type: In, config: e }) } } - function ra(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - - function ia(e, t, n) { - n = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - ra(e, t, n[t]) - })) - } - return e - }({ + function ta(e, t, n) { + n = { config: !0, jwt: !0, settings: !0, - urlParams: !0 - }, n); - const a = qe(e); + urlParams: !0, + ...n + }; + const a = Fe(e); if (n.jwt) { const e = a["features/base/jwt"][t]; if (void 0 !== e) return e[t] } - if (n.urlParams && -1 !== Hn.indexOf(t)) { - const e = Lt(a["features/base/connection"].locationURL)[`config.${t}`]; + if (n.urlParams && -1 !== Fn.indexOf(t)) { + const e = It(a["features/base/connection"].locationURL)[`config.${t}`]; if (void 0 !== e) return e } if (n.settings) { @@ -1857,8 +1787,8 @@ } } - function oa(e) { - const t = qe(e), + function na(e) { + const t = Fe(e), { userSelectedCameraDeviceId: n, userSelectedCameraDeviceLabel: a @@ -1866,7 +1796,7 @@ { videoInput: r } = t["features/base/devices"].availableDevices; - return ca({ + return ia({ availableDevices: r, matchRegex: /\s#\d*(?!.*\s#\d*)/, userSelectedDeviceId: n, @@ -1875,8 +1805,8 @@ }) } - function sa(e) { - const t = qe(e), + function aa(e) { + const t = Fe(e), { userSelectedMicDeviceId: n, userSelectedMicDeviceLabel: a @@ -1884,7 +1814,7 @@ { audioInput: r } = t["features/base/devices"].availableDevices; - return ca({ + return ia({ availableDevices: r, matchRegex: /\s\(\d*-\s(?!.*\s\(\d*-\s)/, userSelectedDeviceId: n, @@ -1893,8 +1823,8 @@ }) } - function la(e) { - const t = qe(e), + function ra(e) { + const t = Fe(e), { userSelectedAudioOutputDeviceId: n, userSelectedAudioOutputDeviceLabel: a @@ -1902,7 +1832,7 @@ { audioOutput: r } = t["features/base/devices"].availableDevices; - return ca({ + return ia({ availableDevices: r, matchRegex: void 0, userSelectedDeviceId: n, @@ -1911,7 +1841,7 @@ }) } - function ca(e) { + function ia(e) { const { availableDevices: t, matchRegex: n, @@ -1934,77 +1864,81 @@ return s ? s.deviceId : a } - function ua(e) { + function oa(e) { return e["features/base/settings"].hideShareAudioHelper } - function da(e) { - return ma(e, "isVideoTrack") + function sa(e) { + return ua(e, "isVideoTrack") } - function pa(e) { - return ma(e, "isAudioTrack") + function la(e) { + return ua(e, "isAudioTrack") } - function ha(e) { + function ca(e) { return e["features/base/settings"].audioOutputDeviceId } - function ma(e, t) { + function ua(e, t) { const [n] = e["features/base/tracks"].map((e => e.jitsiTrack)).filter((e => e && e.isLocal() && e[t]())).map((e => e.getDeviceId())); return n || "" } - function fa(e) { + function da(e) { return e["features/base/settings"].displayName || "" } - function ga(e) { - const t = qe(e), + function pa(e) { + const t = Fe(e), { href: n } = window.location; return n || function(e) { - return qe(e)["features/base/settings"].serverURL || "https://meet.jit.si" + return Fe(e)["features/base/settings"].serverURL || "https://meet.jit.si" }(t) } - function ba() { + function ha() { return interfaceConfig.APP_NAME } const { - userAgent: ya, - maxTouchPoints: va, - platform: ka + userAgent: ma, + maxTouchPoints: fa, + platform: ga } = navigator; - let _a; - ya.match(/Android/i) ? _a = "android" : ya.match(/iP(ad|hone|od)/i) || va && va > 2 && /MacIntel/.test(ka) ? _a = "ios" : ya.match(/Mac(intosh| OS X)/i) ? _a = "macos" : ya.match(/Windows/i) && (_a = "windows"); - const wa = { - OS: _a, + let ba; + ma.match(/Android/i) ? ba = "android" : ma.match(/iP(ad|hone|od)/i) || fa && fa > 2 && /MacIntel/.test(ga) ? ba = "ios" : ma.match(/Mac(intosh| OS X)/i) ? ba = "macos" : ma.match(/Windows/i) && (ba = "windows"); + const ya = { + OS: ba, Version: void 0 }; - function Sa() { - return "android" === wa.OS || "ios" === wa.OS + function va() { + return "android" === ya.OS || "ios" === ya.OS } - function Ea() { - return "ios" === wa.OS + function ka() { + return "ios" === ya.OS } - function xa(e = {}) { - return Promise.all((e.chromeExtensionsInfo || []).map((e => (e => (e => new Promise((t => { - const n = new Image; - n.src = `chrome-extension://${e.id}/${e.path}`, n.setAttribute("aria-hidden", "true"), n.onload = function() { - t(!0) - }, n.onerror = function() { - t(!1) - } - })))(e))(e)))) + function _a() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const t = e => new Promise((t => { + const n = new Image; + n.src = `chrome-extension://${e.id}/${e.path}`, n.setAttribute("aria-hidden", "true"), n.onload = function() { + t(!0) + }, n.onerror = function() { + t(!1) + } + })), + n = e => t(e); + return Promise.all((e.chromeExtensionsInfo || []).map((e => n(e)))) } - const Ca = Je("features/analytics"); - class Aa { - constructor(e = {}) { + const wa = $e("features/analytics"); + class Sa { + constructor() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; this._enabled = !1, this._whiteListedEvents = e.whiteListedEvents, this._blackListedEvents = [...e.blackListedEvents || [], "e2e_rtt", "rtp.stats", "rtt.by.region", "available.device", "stream.switch.delay", "ice.state.changed", "ice.duration", "peer.conn.status.duration"] } _extractName(e) { @@ -2023,9 +1957,9 @@ return Array.isArray(this._whiteListedEvents) ? -1 === this._whiteListedEvents.indexOf(t) : !!Array.isArray(this._blackListedEvents) && -1 !== this._blackListedEvents.indexOf(t) } } - var ja = n(4976); - const Pa = n.n(ja)(); - class Da extends Aa { + var Ea = n(4976); + const xa = n.n(Ea)(); + class Ca extends Sa { constructor(e) { super(e); const { @@ -2034,10 +1968,10 @@ } = e; this._enabled = !0; const a = e => { - Ca.error("Error initializing Amplitude", e), this._enabled = !1 + wa.error("Error initializing Amplitude", e), this._enabled = !1 }; - if ("ReactNative" === navigator.product) Pa.getInstance().init(t), (void Pa.getInstance()).then((() => { - Pa.getInstance().getDeviceId().then((e => { + if ("ReactNative" === navigator.product) xa.getInstance().init(t), (void xa.getInstance()).then((() => { + xa.getInstance().getDeviceId().then((e => { this._deviceId = e })) })); @@ -2046,28 +1980,28 @@ includeReferrer: !0, onError: a }; - Pa.getInstance().init(t, void 0, e), Pa.getInstance() + xa.getInstance().init(t, void 0, e), xa.getInstance() } - n && (this._userId = n, Pa.getInstance().setUserId(n)) + n && (this._userId = n, xa.getInstance().setUserId(n)) } setUserProperties(e) { - this._enabled && Pa.getInstance().setUserProperties(e) + this._enabled && xa.getInstance().setUserProperties(e) } sendEvent(e) { - this._shouldIgnore(e) || Pa.getInstance().logEvent(this._extractName(e), e) + this._shouldIgnore(e) || xa.getInstance().logEvent(this._extractName(e), e) } getIdentityProps() { return "ReactNative" === navigator.product ? { deviceId: this._deviceId, userId: this._userId } : { - sessionId: Pa.getInstance().getSessionId(), - deviceId: Pa.getInstance().options.deviceId, - userId: Pa.getInstance().options.userId + sessionId: xa.getInstance().getSessionId(), + deviceId: xa.getInstance().options.deviceId, + userId: xa.getInstance().options.userId } } } - class Ta extends Aa { + class Aa extends Sa { constructor(e) { if (super(e), this._userProperties = {}, !e.matomoEndpoint) throw new Error("Failed to initialize Matomo handler: no endpoint defined."); if (!e.matomoSiteID) throw new Error("Failed to initialize Matomo handler: no site ID defined."); @@ -2089,7 +2023,8 @@ const t = e && e.attributes && e.attributes.value; return Math.round(parseFloat(t)) } - setUserProperties(e = {}) { + setUserProperties() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; if (!this._enabled) return; const t = ["user_agent", "callstats_name", "browser_name"]; Object.keys(e).filter((e => -1 === t.indexOf(e))).forEach(((t, n) => { @@ -2105,60 +2040,101 @@ isNaN(t) || n.push(t), _paq.push(n) } } - const Oa = It(); + const Ta = Dt(); - function Ma(e) { + function Da(e) { try { - mt.sendEvent(e) + ut.sendEvent(e) } catch (e) { - Ca.warn(`Error sending analytics event: ${e}`) + wa.warn(`Error sending analytics event: ${e}`) } } - function Ia() { - return mt.amplitudeIdentityProps + function Pa() { + return ut.amplitudeIdentityProps } - Oa.analyticsHandlers = Oa.analyticsHandlers || [], Oa.analyticsHandlers.push(Ta); - const Na = "ENDPOINT_MESSAGE_RECEIVED", - za = "REMOVE_TRANSCRIPT_MESSAGE", - Ra = "UPDATE_TRANSCRIPT_MESSAGE", - La = "TOGGLE_REQUESTING_SUBTITLES"; - function Fa(e, t) { + function ja() { + if ("ReactNative" === navigator.product) return !1; + try { + return window.self !== window.top + } catch (e) { + return !0 + } + } + Ta.analyticsHandlers = Ta.analyticsHandlers || [], Ta.analyticsHandlers.push(Aa); + const Ma = "ENDPOINT_MESSAGE_RECEIVED", + Ia = "REMOVE_TRANSCRIPT_MESSAGE", + Oa = "UPDATE_TRANSCRIPT_MESSAGE", + Na = "TOGGLE_REQUESTING_SUBTITLES"; + + function Ra(e, t) { return { - type: Na, + type: Ma, participant: e, json: t } } - function qa(e, t) { + function za(e, t) { return { - type: Ra, + type: Oa, transcriptMessageID: e, newTranscriptMessage: t } } - function Ba() { + function La() { return { - type: La - } - } - var Ua = n(4167), - Ha = n.n(Ua); - const Va = "invite.enabled", - Wa = "tile-view.enabled", - Ya = "APP_WILL_MOUNT", - Ga = "APP_WILL_UNMOUNT"; - n(1162); - var Ka, $a = n(4122), - Ja = n.n($a), - Za = (n(8593), n(4444), n(1171)), - Qa = n.n(Za), - Xa = n(7486), - er = n.n(Xa), - tr = { + type: Na + } + } + var Fa = n(4167), + qa = n.n(Fa); + const Ba = "invite.enabled", + Ua = "notifications.enabled", + Ha = "tile-view.enabled", + Va = "APP_WILL_MOUNT", + Wa = "APP_WILL_UNMOUNT"; + + function Ya(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + } + + function Ga(e, t) { + for (var n = 0; n < t.length; n++) { + var a = t[n]; + a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) + } + } + + function Ka(e, t, n) { + return t && Ga(e.prototype, t), n && Ga(e, n), e + } + + function $a(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + + function Ja(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? Object(arguments[t]) : {}, + a = Object.keys(n); + "function" == typeof Object.getOwnPropertySymbols && a.push.apply(a, Object.getOwnPropertySymbols(n).filter((function(e) { + return Object.getOwnPropertyDescriptor(n, e).enumerable + }))), a.forEach((function(t) { + $a(e, t, n[t]) + })) + } + return e + } + n(4444); + var Za, Qa = { bindI18n: "languageChanging languageChanged", bindI18nStore: "", transEmptyNodeValue: "", @@ -2166,20 +2142,20 @@ transKeepBasicHtmlNodesFor: ["br", "strong", "i", "p"], useSuspense: !0 }, - nr = x().createContext(); + Xa = C().createContext(); - function ar() { - return Ka + function er() { + return Za } - function rr() { - return tr + function tr() { + return Qa } - var ir = function() { + var nr = function() { function e() { - Qa()(this, e), this.usedNamespaces = {} + Ya(this, e), this.usedNamespaces = {} } - return er()(e, [{ + return Ka(e, [{ key: "addUsedNamespaces", value: function(e) { var t = this; @@ -2195,20 +2171,20 @@ }]), e }(); - function or() { + function ar() { if (console && console.warn) { for (var e, t = arguments.length, n = new Array(t), a = 0; a < t; a++) n[a] = arguments[a]; "string" == typeof n[0] && (n[0] = "react-i18next:: ".concat(n[0])), (e = console).warn.apply(e, n) } } - var sr = {}; + var rr = {}; - function lr() { + function ir() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; - "string" == typeof t[0] && sr[t[0]] || ("string" == typeof t[0] && (sr[t[0]] = new Date), or.apply(void 0, t)) + "string" == typeof t[0] && rr[t[0]] || ("string" == typeof t[0] && (rr[t[0]] = new Date), ar.apply(void 0, t)) } - function cr(e, t, n) { + function or(e, t, n) { e.loadNamespaces(t, (function() { e.isInitialized ? n() : e.on("initialized", (function t() { setTimeout((function() { @@ -2218,8 +2194,8 @@ })) } - function ur(e, t) { - if (!t.languages || !t.languages.length) return lr("i18n.languages were undefined or empty", t.languages), !0; + function sr(e, t) { + if (!t.languages || !t.languages.length) return ir("i18n.languages were undefined or empty", t.languages), !0; var n = t.languages[0], a = !!t.options && t.options.fallbackLng, r = t.languages[t.languages.length - 1]; @@ -2231,21 +2207,60 @@ return !!t.hasResourceBundle(n, e) || !t.services.backendConnector.backend || !(!i(n, e) || a && !i(r, e)) } - function dr(e) { + function lr(e) { return e.displayName || e.name || ("string" == typeof e && e.length > 0 ? e : "Unknown") } - var pr = n(2182), - hr = n.n(pr); - function mr(e) { + function cr(e, t) { + (null == t || t > e.length) && (t = e.length); + for (var n = 0, a = new Array(t); n < t; n++) a[n] = e[n]; + return a + } + + function ur(e, t) { + if (e) { + if ("string" == typeof e) return cr(e, t); + var n = Object.prototype.toString.call(e).slice(8, -1); + return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? cr(e, t) : void 0 + } + } + + function dr(e, t) { + return function(e) { + if (Array.isArray(e)) return e + }(e) || function(e, t) { + var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; + if (null != n) { + var a, r, i = [], + o = !0, + s = !1; + try { + for (n = n.call(e); !(o = (a = n.next()).done) && (i.push(a.value), !t || i.length !== t); o = !0); + } catch (e) { + s = !0, r = e + } finally { + try { + o || null == n.return || n.return() + } finally { + if (s) throw r + } + } + return i + } + }(e, t) || ur(e, t) || function() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") + }() + } + + function pr(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, n = t.i18n, - a = ar() && (0, E.useContext)(nr) || {}, + a = er() && (0, x.useContext)(Xa) || {}, r = a.i18n, i = a.defaultNS, o = n || r || void 0; - if (o && !o.reportNamespaces && (o.reportNamespaces = new ir), !o) { - lr("You will need pass in an i18next instance by using initReactI18next"); + if (o && !o.reportNamespaces && (o.reportNamespaces = new nr), !o) { + ir("You will need pass in an i18next instance by using initReactI18next"); var s = [function(e) { return e }, {}, !0]; @@ -2253,13 +2268,13 @@ return e }, s.i18n = {}, s.ready = !0, s } - var l = Ja()({}, rr(), o.options.react), + var l = Ja({}, tr(), o.options.react), c = t.useSuspense, u = void 0 === c ? l.useSuspense : c, d = e || i || o.options && o.options.defaultNS; d = "string" == typeof d ? [d] : d || ["translation"], o.reportNamespaces.addUsedNamespaces && o.reportNamespaces.addUsedNamespaces(d); var p = (o.isInitialized || o.initializedStoreOnce) && d.every((function(e) { - return ur(e, o) + return sr(e, o) })); function h() { @@ -2267,11 +2282,11 @@ t: o.getFixedT(null, "fallback" === l.nsMode ? d : d[0]) } } - var m = (0, E.useState)(h()), - f = hr()(m, 2), + var m = (0, x.useState)(h()), + f = dr(m, 2), g = f[0], b = f[1]; - (0, E.useEffect)((function() { + (0, x.useEffect)((function() { var e = !0, t = l.bindI18n, n = l.bindI18nStore; @@ -2279,7 +2294,7 @@ function a() { e && b(h()) } - return p || u || cr(o, d, (function() { + return p || u || or(o, d, (function() { e && b(h()) })), t && o && o.on(t, a), n && o && o.store.on(n, a), function() { @@ -2294,103 +2309,49 @@ if (y.t = g.t, y.i18n = o, y.ready = p, p) return y; if (!p && !u) return y; throw new Promise((function(e) { - cr(o, d, (function() { + or(o, d, (function() { b(h()), e() })) })) } - function fr(e) { + function hr(e) { var t = e.i18n, n = e.defaultNS, a = e.children; - return Ka = !0, x().createElement(nr.Provider, { + return Za = !0, C().createElement(Xa.Provider, { value: { i18n: t, defaultNS: n } }, a) } - var gr = n(1618), - br = n(2083), - yr = n.n(br); - const vr = JSON.parse('{"locale":"en","countries":{"AF":"Afghanistan","AL":"Albania","DZ":"Algeria","AS":"American Samoa","AD":"Andorra","AO":"Angola","AI":"Anguilla","AQ":"Antarctica","AG":"Antigua and Barbuda","AR":"Argentina","AM":"Armenia","AW":"Aruba","AU":"Australia","AT":"Austria","AZ":"Azerbaijan","BS":"Bahamas","BH":"Bahrain","BD":"Bangladesh","BB":"Barbados","BY":"Belarus","BE":"Belgium","BZ":"Belize","BJ":"Benin","BM":"Bermuda","BT":"Bhutan","BO":"Bolivia","BA":"Bosnia and Herzegovina","BW":"Botswana","BV":"Bouvet Island","BR":"Brazil","IO":"British Indian Ocean Territory","BN":"Brunei Darussalam","BG":"Bulgaria","BF":"Burkina Faso","BI":"Burundi","KH":"Cambodia","CM":"Cameroon","CA":"Canada","CV":"Cape Verde","KY":"Cayman Islands","CF":"Central African Republic","TD":"Chad","CL":"Chile","CN":"China","CX":"Christmas Island","CC":"Cocos (Keeling) Islands","CO":"Colombia","KM":"Comoros","CG":"Congo","CD":"Congo, the Democratic Republic of the","CK":"Cook Islands","CR":"Costa Rica","CI":"Cote D\'Ivoire","HR":"Croatia","CU":"Cuba","CY":"Cyprus","CZ":"Czech Republic","DK":"Denmark","DJ":"Djibouti","DM":"Dominica","DO":"Dominican Republic","EC":"Ecuador","EG":"Egypt","SV":"El Salvador","GQ":"Equatorial Guinea","ER":"Eritrea","EE":"Estonia","ET":"Ethiopia","FK":"Falkland Islands (Malvinas)","FO":"Faroe Islands","FJ":"Fiji","FI":"Finland","FR":"France","GF":"French Guiana","PF":"French Polynesia","TF":"French Southern Territories","GA":"Gabon","GM":"Gambia","GE":"Georgia","DE":"Germany","GH":"Ghana","GI":"Gibraltar","GR":"Greece","GL":"Greenland","GD":"Grenada","GP":"Guadeloupe","GU":"Guam","GT":"Guatemala","GN":"Guinea","GW":"Guinea-Bissau","GY":"Guyana","HT":"Haiti","HM":"Heard Island and McDonald Islands","VA":"Holy See (Vatican City State)","HN":"Honduras","HK":"Hong Kong","HU":"Hungary","IS":"Iceland","IN":"India","ID":"Indonesia","IR":"Iran, Islamic Republic of","IQ":"Iraq","IE":"Ireland","IL":"Israel","IT":"Italy","JM":"Jamaica","JP":"Japan","JO":"Jordan","KZ":"Kazakhstan","KE":"Kenya","KI":"Kiribati","KP":"North Korea","KR":"South Korea","KW":"Kuwait","KG":"Kyrgyzstan","LA":"Lao People\'s Democratic Republic","LV":"Latvia","LB":"Lebanon","LS":"Lesotho","LR":"Liberia","LY":"Libya","LI":"Liechtenstein","LT":"Lithuania","LU":"Luxembourg","MO":"Macao","MG":"Madagascar","MW":"Malawi","MY":"Malaysia","MV":"Maldives","ML":"Mali","MT":"Malta","MH":"Marshall Islands","MQ":"Martinique","MR":"Mauritania","MU":"Mauritius","YT":"Mayotte","MX":"Mexico","FM":"Micronesia, Federated States of","MD":"Moldova, Republic of","MC":"Monaco","MN":"Mongolia","MS":"Montserrat","MA":"Morocco","MZ":"Mozambique","MM":"Myanmar","NA":"Namibia","NR":"Nauru","NP":"Nepal","NL":"Netherlands","NC":"New Caledonia","NZ":"New Zealand","NI":"Nicaragua","NE":"Niger","NG":"Nigeria","NU":"Niue","NF":"Norfolk Island","MK":"North Macedonia, Republic of","MP":"Northern Mariana Islands","NO":"Norway","OM":"Oman","PK":"Pakistan","PW":"Palau","PS":["State of Palestine","Palestine"],"PA":"Panama","PG":"Papua New Guinea","PY":"Paraguay","PE":"Peru","PH":"Philippines","PN":"Pitcairn","PL":"Poland","PT":"Portugal","PR":"Puerto Rico","QA":"Qatar","RE":"Reunion","RO":"Romania","RU":["Russian Federation","Russia"],"RW":"Rwanda","SH":"Saint Helena","KN":"Saint Kitts and Nevis","LC":"Saint Lucia","PM":"Saint Pierre and Miquelon","VC":"Saint Vincent and the Grenadines","WS":"Samoa","SM":"San Marino","ST":"Sao Tome and Principe","SA":"Saudi Arabia","SN":"Senegal","SC":"Seychelles","SL":"Sierra Leone","SG":"Singapore","SK":"Slovakia","SI":"Slovenia","SB":"Solomon Islands","SO":"Somalia","ZA":"South Africa","GS":"South Georgia and the South Sandwich Islands","ES":"Spain","LK":"Sri Lanka","SD":"Sudan","SR":"Suriname","SJ":"Svalbard and Jan Mayen","SZ":"Eswatini","SE":"Sweden","CH":"Switzerland","SY":"Syrian Arab Republic","TW":["Taiwan, Province of China","Taiwan"],"TJ":"Tajikistan","TZ":"Tanzania, United Republic of","TH":"Thailand","TL":"Timor-Leste","TG":"Togo","TK":"Tokelau","TO":"Tonga","TT":"Trinidad and Tobago","TN":"Tunisia","TR":"Turkey","TM":"Turkmenistan","TC":"Turks and Caicos Islands","TV":"Tuvalu","UG":"Uganda","UA":"Ukraine","AE":"United Arab Emirates","GB":["United Kingdom","UK","Great Britain"],"US":["United States of America","USA"],"UM":"United States Minor Outlying Islands","UY":"Uruguay","UZ":"Uzbekistan","VU":"Vanuatu","VE":"Venezuela","VN":"Vietnam","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","WF":"Wallis and Futuna","EH":"Western Sahara","YE":"Yemen","ZM":"Zambia","ZW":"Zimbabwe","AX":"Åland Islands","BQ":"Bonaire, Sint Eustatius and Saba","CW":"Curaçao","GG":"Guernsey","IM":"Isle of Man","JE":"Jersey","ME":"Montenegro","BL":"Saint Barthélemy","MF":"Saint Martin (French part)","RS":"Serbia","SX":"Sint Maarten (Dutch part)","SS":"South Sudan","XK":"Kosovo"}}'); + var mr = n(1618), + fr = n(2083), + gr = n.n(fr); + const br = JSON.parse('{"locale":"en","countries":{"AF":"Afghanistan","AL":"Albania","DZ":"Algeria","AS":"American Samoa","AD":"Andorra","AO":"Angola","AI":"Anguilla","AQ":"Antarctica","AG":"Antigua and Barbuda","AR":"Argentina","AM":"Armenia","AW":"Aruba","AU":"Australia","AT":"Austria","AZ":"Azerbaijan","BS":"Bahamas","BH":"Bahrain","BD":"Bangladesh","BB":"Barbados","BY":"Belarus","BE":"Belgium","BZ":"Belize","BJ":"Benin","BM":"Bermuda","BT":"Bhutan","BO":"Bolivia","BA":"Bosnia and Herzegovina","BW":"Botswana","BV":"Bouvet Island","BR":"Brazil","IO":"British Indian Ocean Territory","BN":"Brunei Darussalam","BG":"Bulgaria","BF":"Burkina Faso","BI":"Burundi","KH":"Cambodia","CM":"Cameroon","CA":"Canada","CV":"Cape Verde","KY":"Cayman Islands","CF":"Central African Republic","TD":"Chad","CL":"Chile","CN":"China","CX":"Christmas Island","CC":"Cocos (Keeling) Islands","CO":"Colombia","KM":"Comoros","CG":"Congo","CD":"Congo, the Democratic Republic of the","CK":"Cook Islands","CR":"Costa Rica","CI":"Cote D\'Ivoire","HR":"Croatia","CU":"Cuba","CY":"Cyprus","CZ":"Czech Republic","DK":"Denmark","DJ":"Djibouti","DM":"Dominica","DO":"Dominican Republic","EC":"Ecuador","EG":"Egypt","SV":"El Salvador","GQ":"Equatorial Guinea","ER":"Eritrea","EE":"Estonia","ET":"Ethiopia","FK":"Falkland Islands (Malvinas)","FO":"Faroe Islands","FJ":"Fiji","FI":"Finland","FR":"France","GF":"French Guiana","PF":"French Polynesia","TF":"French Southern Territories","GA":"Gabon","GM":"Gambia","GE":"Georgia","DE":"Germany","GH":"Ghana","GI":"Gibraltar","GR":"Greece","GL":"Greenland","GD":"Grenada","GP":"Guadeloupe","GU":"Guam","GT":"Guatemala","GN":"Guinea","GW":"Guinea-Bissau","GY":"Guyana","HT":"Haiti","HM":"Heard Island and McDonald Islands","VA":"Holy See (Vatican City State)","HN":"Honduras","HK":"Hong Kong","HU":"Hungary","IS":"Iceland","IN":"India","ID":"Indonesia","IR":"Iran, Islamic Republic of","IQ":"Iraq","IE":"Ireland","IL":"Israel","IT":"Italy","JM":"Jamaica","JP":"Japan","JO":"Jordan","KZ":"Kazakhstan","KE":"Kenya","KI":"Kiribati","KP":"North Korea","KR":"South Korea","KW":"Kuwait","KG":"Kyrgyzstan","LA":"Lao People\'s Democratic Republic","LV":"Latvia","LB":"Lebanon","LS":"Lesotho","LR":"Liberia","LY":"Libya","LI":"Liechtenstein","LT":"Lithuania","LU":"Luxembourg","MO":"Macao","MG":"Madagascar","MW":"Malawi","MY":"Malaysia","MV":"Maldives","ML":"Mali","MT":"Malta","MH":"Marshall Islands","MQ":"Martinique","MR":"Mauritania","MU":"Mauritius","YT":"Mayotte","MX":"Mexico","FM":"Micronesia, Federated States of","MD":"Moldova, Republic of","MC":"Monaco","MN":"Mongolia","MS":"Montserrat","MA":"Morocco","MZ":"Mozambique","MM":"Myanmar","NA":"Namibia","NR":"Nauru","NP":"Nepal","NL":"Netherlands","NC":"New Caledonia","NZ":"New Zealand","NI":"Nicaragua","NE":"Niger","NG":"Nigeria","NU":"Niue","NF":"Norfolk Island","MK":"North Macedonia, Republic of","MP":"Northern Mariana Islands","NO":"Norway","OM":"Oman","PK":"Pakistan","PW":"Palau","PS":["State of Palestine","Palestine"],"PA":"Panama","PG":"Papua New Guinea","PY":"Paraguay","PE":"Peru","PH":"Philippines","PN":"Pitcairn","PL":"Poland","PT":"Portugal","PR":"Puerto Rico","QA":"Qatar","RE":"Reunion","RO":"Romania","RU":["Russian Federation","Russia"],"RW":"Rwanda","SH":"Saint Helena","KN":"Saint Kitts and Nevis","LC":"Saint Lucia","PM":"Saint Pierre and Miquelon","VC":"Saint Vincent and the Grenadines","WS":"Samoa","SM":"San Marino","ST":"Sao Tome and Principe","SA":"Saudi Arabia","SN":"Senegal","SC":"Seychelles","SL":"Sierra Leone","SG":"Singapore","SK":"Slovakia","SI":"Slovenia","SB":"Solomon Islands","SO":"Somalia","ZA":"South Africa","GS":"South Georgia and the South Sandwich Islands","ES":"Spain","LK":"Sri Lanka","SD":"Sudan","SR":"Suriname","SJ":"Svalbard and Jan Mayen","SZ":"Eswatini","SE":"Sweden","CH":"Switzerland","SY":"Syrian Arab Republic","TW":["Taiwan, Province of China","Taiwan"],"TJ":"Tajikistan","TZ":"Tanzania, United Republic of","TH":"Thailand","TL":"Timor-Leste","TG":"Togo","TK":"Tokelau","TO":"Tonga","TT":"Trinidad and Tobago","TN":"Tunisia","TR":"Turkey","TM":"Turkmenistan","TC":"Turks and Caicos Islands","TV":"Tuvalu","UG":"Uganda","UA":"Ukraine","AE":"United Arab Emirates","GB":["United Kingdom","UK","Great Britain"],"US":["United States of America","USA"],"UM":"United States Minor Outlying Islands","UY":"Uruguay","UZ":"Uzbekistan","VU":"Vanuatu","VE":"Venezuela","VN":"Vietnam","VG":"Virgin Islands, British","VI":"Virgin Islands, U.S.","WF":"Wallis and Futuna","EH":"Western Sahara","YE":"Yemen","ZM":"Zambia","ZW":"Zimbabwe","AX":"Åland Islands","BQ":"Bonaire, Sint Eustatius and Saba","CW":"Curaçao","GG":"Guernsey","IM":"Isle of Man","JE":"Jersey","ME":"Montenegro","BL":"Saint Barthélemy","MF":"Saint Martin (French part)","RS":"Serbia","SX":"Sint Maarten (Dutch part)","SS":"South Sudan","XK":"Kosovo"}}'); - function kr(e) { - return kr = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + function yr(e) { + return yr = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }, kr(e) - } - - function _r(e) { - return _r = "function" == typeof Symbol && "symbol" === kr(Symbol.iterator) ? function(e) { - return kr(e) - } : function(e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : kr(e) - }, _r(e) - } - - function wr(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - - function Sr(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? arguments[t] : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - wr(e, t, n[t]) - })) - } - return e - } - - function Er(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - } - - function xr(e, t) { - for (var n = 0; n < t.length; n++) { - var a = t[n]; - a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) - } - } - - function Cr(e, t, n) { - return t && xr(e.prototype, t), n && xr(e, n), e + }, yr(e) } - function Ar(e) { - if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e - } - - function jr(e, t) { - return !t || "object" !== _r(t) && "function" != typeof t ? Ar(e) : t + function vr(e, t) { + if (t && ("object" === yr(t) || "function" == typeof t)) return t; + if (void 0 !== t) throw new TypeError("Derived constructors may only return object or undefined"); + return w(e) } - function Pr(e) { - return Pr = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { + function kr(e) { + return kr = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { return e.__proto__ || Object.getPrototypeOf(e) - }, Pr(e) - } - - function Dr(e, t) { - return Dr = Object.setPrototypeOf || function(e, t) { - return e.__proto__ = t, e - }, Dr(e, t) + }, kr(e) } - function Tr(e, t) { + function _r(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); e.prototype = Object.create(t && t.prototype, { constructor: { @@ -2398,34 +2359,19 @@ writable: !0, configurable: !0 } - }), t && Dr(e, t) + }), t && S(e, t) } - function Or(e, t) { + function wr(e) { return function(e) { - if (Array.isArray(e)) return e - }(e) || function(e, t) { - var n = [], - a = !0, - r = !1, - i = void 0; - try { - for (var o, s = e[Symbol.iterator](); !(a = (o = s.next()).done) && (n.push(o.value), !t || n.length !== t); a = !0); - } catch (e) { - r = !0, i = e - } finally { - try { - a || null == s.return || s.return() - } finally { - if (r) throw i - } - } - return n - }(e, t) || function() { - throw new TypeError("Invalid attempt to destructure non-iterable instance") + if (Array.isArray(e)) return cr(e) + }(e) || function(e) { + if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e) + }(e) || ur(e) || function() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() } - var Mr = { + var Sr = { type: "logger", log: function(e) { this.output("log", e) @@ -2438,30 +2384,19 @@ }, output: function(e, t) { var n; - console && console[e] && (n = console)[e].apply(n, function(e) { - return function(e) { - if (Array.isArray(e)) { - for (var t = 0, n = new Array(e.length); t < e.length; t++) n[t] = e[t]; - return n - } - }(e) || function(e) { - if (Symbol.iterator in Object(e) || "[object Arguments]" === Object.prototype.toString.call(e)) return Array.from(e) - }(e) || function() { - throw new TypeError("Invalid attempt to spread non-iterable instance") - }() - }(t)) + console && console[e] && (n = console)[e].apply(n, wr(t)) } }, - Ir = function() { + Er = function() { function e(t) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - Er(this, e), this.init(t, n) + Ya(this, e), this.init(t, n) } - return Cr(e, [{ + return Ka(e, [{ key: "init", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - this.prefix = t.prefix || "i18next:", this.logger = e || Mr, this.options = t, this.debug = t.debug + this.prefix = t.prefix || "i18next:", this.logger = e || Sr, this.options = t, this.debug = t.debug } }, { key: "setDebug", @@ -2500,18 +2435,18 @@ }, { key: "create", value: function(t) { - return new e(this.logger, Sr({}, { + return new e(this.logger, Ja({}, { prefix: "".concat(this.prefix, ":").concat(t, ":") }, this.options)) } }]), e }(), - Nr = new Ir, - zr = function() { + xr = new Er, + Cr = function() { function e() { - Er(this, e), this.observers = {} + Ya(this, e), this.observers = {} } - return Cr(e, [{ + return Ka(e, [{ key: "on", value: function(e, t) { var n = this; @@ -2550,24 +2485,24 @@ }]), e }(); - function Rr() { + function Ar() { var e, t, n = new Promise((function(n, a) { e = n, t = a })); return n.resolve = e, n.reject = t, n } - function Lr(e) { + function Tr(e) { return null == e ? "" : "" + e } - function Fr(e, t, n) { + function Dr(e, t, n) { e.forEach((function(e) { t[e] && (n[e] = t[e]) })) } - function qr(e, t, n) { + function Pr(e, t, n) { function a(e) { return e && e.indexOf("###") > -1 ? e.replace(/###/g, ".") : e } @@ -2586,27 +2521,27 @@ } } - function Br(e, t, n) { - var a = qr(e, t, Object); + function jr(e, t, n) { + var a = Pr(e, t, Object); a.obj[a.k] = n } - function Ur(e, t) { - var n = qr(e, t), + function Mr(e, t) { + var n = Pr(e, t), a = n.obj, r = n.k; if (a) return a[r] } - function Hr(e, t, n) { - for (var a in t) a in e ? "string" == typeof e[a] || e[a] instanceof String || "string" == typeof t[a] || t[a] instanceof String ? n && (e[a] = t[a]) : Hr(e[a], t[a], n) : e[a] = t[a]; + function Ir(e, t, n) { + for (var a in t) a in e ? "string" == typeof e[a] || e[a] instanceof String || "string" == typeof t[a] || t[a] instanceof String ? n && (e[a] = t[a]) : Ir(e[a], t[a], n) : e[a] = t[a]; return e } - function Vr(e) { + function Or(e) { return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") } - var Wr = { + var Nr = { "&": "&", "<": "<", ">": ">", @@ -2615,20 +2550,20 @@ "/": "/" }; - function Yr(e) { + function Rr(e) { return "string" == typeof e ? e.replace(/[&<>"'\/]/g, (function(e) { - return Wr[e] + return Nr[e] })) : e } - var Gr = function(e) { + var zr = function(e) { function t(e) { var n, a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : { ns: ["translation"], defaultNS: "translation" }; - return Er(this, t), n = jr(this, Pr(t).call(this)), zr.call(Ar(n)), n.data = e || {}, n.options = a, void 0 === n.options.keySeparator && (n.options.keySeparator = "."), n + return Ya(this, t), n = vr(this, kr(t).call(this)), Cr.call(w(n)), n.data = e || {}, n.options = a, void 0 === n.options.keySeparator && (n.options.keySeparator = "."), n } - return Tr(t, e), Cr(t, [{ + return _r(t, e), Ka(t, [{ key: "addNamespaces", value: function(e) { this.options.ns.indexOf(e) < 0 && this.options.ns.push(e) @@ -2645,7 +2580,7 @@ var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}, r = void 0 !== a.keySeparator ? a.keySeparator : this.options.keySeparator, i = [e, t]; - return n && "string" != typeof n && (i = i.concat(n)), n && "string" == typeof n && (i = i.concat(r ? n.split(r) : n)), e.indexOf(".") > -1 && (i = e.split(".")), Ur(this.data, i) + return n && "string" != typeof n && (i = i.concat(n)), n && "string" == typeof n && (i = i.concat(r ? n.split(r) : n)), e.indexOf(".") > -1 && (i = e.split(".")), Mr(this.data, i) } }, { key: "addResource", @@ -2656,7 +2591,7 @@ i = this.options.keySeparator; void 0 === i && (i = "."); var o = [e, t]; - n && (o = o.concat(i ? n.split(i) : n)), e.indexOf(".") > -1 && (a = t, t = (o = e.split("."))[1]), this.addNamespaces(t), Br(this.data, o, a), r.silent || this.emit("added", e, t, n, a) + n && (o = o.concat(i ? n.split(i) : n)), e.indexOf(".") > -1 && (a = t, t = (o = e.split("."))[1]), this.addNamespaces(t), jr(this.data, o, a), r.silent || this.emit("added", e, t, n, a) } }, { key: "addResources", @@ -2677,8 +2612,8 @@ }, o = [e, t]; e.indexOf(".") > -1 && (a = n, n = t, t = (o = e.split("."))[1]), this.addNamespaces(t); - var s = Ur(this.data, o) || {}; - a ? Hr(s, n, r) : s = Sr({}, s, n), Br(this.data, o, s), i.silent || this.emit("added", e, t, n) + var s = Mr(this.data, o) || {}; + a ? Ir(s, n, r) : s = Ja({}, s, n), jr(this.data, o, s), i.silent || this.emit("added", e, t, n) } }, { key: "removeResourceBundle", @@ -2693,7 +2628,7 @@ }, { key: "getResourceBundle", value: function(e, t) { - return t || (t = this.options.defaultNS), "v1" === this.options.compatibilityAPI ? Sr({}, {}, this.getResource(e, t)) : this.getResource(e, t) + return t || (t = this.options.defaultNS), "v1" === this.options.compatibilityAPI ? Ja({}, {}, this.getResource(e, t)) : this.getResource(e, t) } }, { key: "getDataByLanguage", @@ -2706,8 +2641,8 @@ return this.data } }]), t - }(zr), - Kr = { + }(Cr), + Lr = { processors: {}, addPostProcessor: function(e) { this.processors[e.name] = e @@ -2719,12 +2654,12 @@ })), t } }, - $r = function(e) { + Fr = function(e) { function t(e) { var n, a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - return Er(this, t), n = jr(this, Pr(t).call(this)), zr.call(Ar(n)), Fr(["resourceStore", "languageUtils", "pluralResolver", "interpolator", "backendConnector", "i18nFormat"], e, Ar(n)), n.options = a, void 0 === n.options.keySeparator && (n.options.keySeparator = "."), n.logger = Nr.create("translator"), n + return Ya(this, t), n = vr(this, kr(t).call(this)), Cr.call(w(n)), Dr(["resourceStore", "languageUtils", "pluralResolver", "interpolator", "backendConnector", "i18nFormat"], e, w(n)), n.options = a, void 0 === n.options.keySeparator && (n.options.keySeparator = "."), n.logger = xr.create("translator"), n } - return Tr(t, e), Cr(t, [{ + return _r(t, e), Ka(t, [{ key: "changeLanguage", value: function(e) { e && (this.language = e) @@ -2758,7 +2693,7 @@ key: "translate", value: function(e, t) { var n = this; - if ("object" !== _r(t) && this.options.overloadTranslationOptionHandler && (t = this.options.overloadTranslationOptionHandler(arguments)), t || (t = {}), null == e) return ""; + if ("object" !== yr(t) && this.options.overloadTranslationOptionHandler && (t = this.options.overloadTranslationOptionHandler(arguments)), t || (t = {}), null == e) return ""; Array.isArray(e) || (e = [String(e)]); var a = void 0 !== t.keySeparator ? t.keySeparator : this.options.keySeparator, r = this.extractFromKey(e[e.length - 1], t), @@ -2792,7 +2727,7 @@ for (var S in p) if (Object.prototype.hasOwnProperty.call(p, S)) { var E = "".concat(w).concat(a).concat(S); - _[S] = this.translate(E, Sr({}, t, { + _[S] = this.translate(E, Ja({}, t, { joinArrays: !1, ns: o })), _[S] === E && (_[S] = p[S]) @@ -2810,24 +2745,24 @@ p || (p = t.defaultValue) } this.isValidLookup(p) || (C = !0, p = i); - var j = t.defaultValue && t.defaultValue !== p && this.options.updateMissing; - if (C || x || j) { - this.logger.log(j ? "updateKey" : "missingKey", l, s, i, j ? t.defaultValue : p); - var P = [], - D = this.languageUtils.getFallbackCodes(this.options.fallbackLng, t.lng || this.language); - if ("fallback" === this.options.saveMissingTo && D && D[0]) - for (var T = 0; T < D.length; T++) P.push(D[T]); - else "all" === this.options.saveMissingTo ? P = this.languageUtils.toResolveHierarchy(t.lng || this.language) : P.push(t.lng || this.language); - var O = function(e, a) { - n.options.missingKeyHandler ? n.options.missingKeyHandler(e, s, a, j ? t.defaultValue : p, j, t) : n.backendConnector && n.backendConnector.saveMissing && n.backendConnector.saveMissing(e, s, a, j ? t.defaultValue : p, j, t), n.emit("missingKey", e, s, a, p) + var T = t.defaultValue && t.defaultValue !== p && this.options.updateMissing; + if (C || x || T) { + this.logger.log(T ? "updateKey" : "missingKey", l, s, i, T ? t.defaultValue : p); + var D = [], + P = this.languageUtils.getFallbackCodes(this.options.fallbackLng, t.lng || this.language); + if ("fallback" === this.options.saveMissingTo && P && P[0]) + for (var j = 0; j < P.length; j++) D.push(P[j]); + else "all" === this.options.saveMissingTo ? D = this.languageUtils.toResolveHierarchy(t.lng || this.language) : D.push(t.lng || this.language); + var M = function(e, a) { + n.options.missingKeyHandler ? n.options.missingKeyHandler(e, s, a, T ? t.defaultValue : p, T, t) : n.backendConnector && n.backendConnector.saveMissing && n.backendConnector.saveMissing(e, s, a, T ? t.defaultValue : p, T, t), n.emit("missingKey", e, s, a, p) }; if (this.options.saveMissing) { - var M = void 0 !== t.count && "string" != typeof t.count; - this.options.saveMissingPlurals && M ? P.forEach((function(e) { + var I = void 0 !== t.count && "string" != typeof t.count; + this.options.saveMissingPlurals && I ? D.forEach((function(e) { n.pluralResolver.getPluralFormsOfKey(e, i).forEach((function(t) { - return O([e], t) + return M([e], t) })) - })) : O(P, i) + })) : M(D, i) } } p = this.extendTranslation(p, e, t, d), C && p === i && this.options.appendNamespaceToMissingKey && (p = "".concat(s, ":").concat(i)), C && this.options.parseMissingKeyHandler && (p = this.options.parseMissingKeyHandler(p)) @@ -2842,17 +2777,17 @@ resolved: a }); else if (!n.skipInterpolation) { - n.interpolation && this.interpolator.init(Sr({}, n, { - interpolation: Sr({}, this.options.interpolation, n.interpolation) + n.interpolation && this.interpolator.init(Ja({}, n, { + interpolation: Ja({}, this.options.interpolation, n.interpolation) })); var i = n.replace && "string" != typeof n.replace ? n.replace : n; - this.options.interpolation.defaultVariables && (i = Sr({}, this.options.interpolation.defaultVariables, i)), e = this.interpolator.interpolate(e, i, n.lng || this.language, n), !1 !== n.nest && (e = this.interpolator.nest(e, (function() { + this.options.interpolation.defaultVariables && (i = Ja({}, this.options.interpolation.defaultVariables, i)), e = this.interpolator.interpolate(e, i, n.lng || this.language, n), !1 !== n.nest && (e = this.interpolator.nest(e, (function() { return r.translate.apply(r, arguments) }), n)), n.interpolation && this.interpolator.reset() } var o = n.postProcess || this.options.postProcess, s = "string" == typeof o ? [o] : o; - return null != e && s && s.length && !1 !== n.applyPostProcessor && (e = Kr.handle(s, e, t, n, this)), e + return null != e && s && s.length && !1 !== n.applyPostProcessor && (e = Lr.handle(s, e, t, n, this)), e } }, { key: "resolve", @@ -2900,16 +2835,16 @@ return this.i18nFormat && this.i18nFormat.getResource ? this.i18nFormat.getResource(e, t, n, a) : this.resourceStore.getResource(e, t, n, a) } }]), t - }(zr); + }(Cr); - function Jr(e) { + function qr(e) { return e.charAt(0).toUpperCase() + e.slice(1) } - var Zr = function() { + var Br = function() { function e(t) { - Er(this, e), this.options = t, this.whitelist = this.options.whitelist || !1, this.logger = Nr.create("languageUtils") + Ya(this, e), this.options = t, this.whitelist = this.options.whitelist || !1, this.logger = xr.create("languageUtils") } - return Cr(e, [{ + return Ka(e, [{ key: "getScriptPartFromCode", value: function(e) { if (!e || e.indexOf("-") < 0) return null; @@ -2931,7 +2866,7 @@ n = e.split("-"); return this.options.lowerCaseLng ? n = n.map((function(e) { return e.toLowerCase() - })) : 2 === n.length ? (n[0] = n[0].toLowerCase(), n[1] = n[1].toUpperCase(), t.indexOf(n[1].toLowerCase()) > -1 && (n[1] = Jr(n[1].toLowerCase()))) : 3 === n.length && (n[0] = n[0].toLowerCase(), 2 === n[1].length && (n[1] = n[1].toUpperCase()), "sgn" !== n[0] && 2 === n[2].length && (n[2] = n[2].toUpperCase()), t.indexOf(n[1].toLowerCase()) > -1 && (n[1] = Jr(n[1].toLowerCase())), t.indexOf(n[2].toLowerCase()) > -1 && (n[2] = Jr(n[2].toLowerCase()))), n.join("-") + })) : 2 === n.length ? (n[0] = n[0].toLowerCase(), n[1] = n[1].toUpperCase(), t.indexOf(n[1].toLowerCase()) > -1 && (n[1] = qr(n[1].toLowerCase()))) : 3 === n.length && (n[0] = n[0].toLowerCase(), 2 === n[1].length && (n[1] = n[1].toUpperCase()), "sgn" !== n[0] && 2 === n[2].length && (n[2] = n[2].toUpperCase()), t.indexOf(n[1].toLowerCase()) > -1 && (n[1] = qr(n[1].toLowerCase())), t.indexOf(n[2].toLowerCase()) > -1 && (n[2] = qr(n[2].toLowerCase()))), n.join("-") } return this.options.cleanCode || this.options.lowerCaseLng ? e.toLowerCase() : e } @@ -2964,7 +2899,7 @@ } }]), e }(), - Qr = [{ + Ur = [{ lngs: ["ach", "ak", "am", "arn", "br", "fil", "gun", "ln", "mfe", "mg", "mi", "oc", "pt", "pt-BR", "tg", "ti", "tr", "uz", "wa"], nr: [1, 2], fc: 1 @@ -3057,7 +2992,7 @@ nr: [1, 2, 20, 21], fc: 22 }], - Xr = { + Hr = { 1: function(e) { return Number(e > 1) }, @@ -3126,23 +3061,23 @@ } }; - function ei() { + function Vr() { var e = {}; - return Qr.forEach((function(t) { + return Ur.forEach((function(t) { t.lngs.forEach((function(n) { e[n] = { numbers: t.nr, - plurals: Xr[t.fc] + plurals: Hr[t.fc] } })) })), e } - var ti = function() { + var Wr = function() { function e(t) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - Er(this, e), this.languageUtils = t, this.options = n, this.logger = Nr.create("pluralResolver"), this.rules = ei() + Ya(this, e), this.languageUtils = t, this.options = n, this.logger = xr.create("pluralResolver"), this.rules = Vr() } - return Cr(e, [{ + return Ka(e, [{ key: "addRule", value: function(e, t) { this.rules[e] = t @@ -3187,12 +3122,12 @@ } }]), e }(), - ni = function() { + Yr = function() { function e() { var t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; - Er(this, e), this.logger = Nr.create("interpolator"), this.init(t, !0) + Ya(this, e), this.logger = xr.create("interpolator"), this.init(t, !0) } - return Cr(e, [{ + return Ka(e, [{ key: "init", value: function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, @@ -3203,7 +3138,7 @@ escapeValue: !0 }); var n = e.interpolation; - this.escape = void 0 !== n.escape ? n.escape : Yr, this.escapeValue = void 0 === n.escapeValue || n.escapeValue, this.useRawValueToEscape = void 0 !== n.useRawValueToEscape && n.useRawValueToEscape, this.prefix = n.prefix ? Vr(n.prefix) : n.prefixEscaped || "{{", this.suffix = n.suffix ? Vr(n.suffix) : n.suffixEscaped || "}}", this.formatSeparator = n.formatSeparator ? n.formatSeparator : n.formatSeparator || ",", this.unescapePrefix = n.unescapeSuffix ? "" : n.unescapePrefix || "-", this.unescapeSuffix = this.unescapePrefix ? "" : n.unescapeSuffix || "", this.nestingPrefix = n.nestingPrefix ? Vr(n.nestingPrefix) : n.nestingPrefixEscaped || Vr("$t("), this.nestingSuffix = n.nestingSuffix ? Vr(n.nestingSuffix) : n.nestingSuffixEscaped || Vr(")"), this.maxReplaces = n.maxReplaces ? n.maxReplaces : 1e3, this.resetRegExp() + this.escape = void 0 !== n.escape ? n.escape : Rr, this.escapeValue = void 0 === n.escapeValue || n.escapeValue, this.useRawValueToEscape = void 0 !== n.useRawValueToEscape && n.useRawValueToEscape, this.prefix = n.prefix ? Or(n.prefix) : n.prefixEscaped || "{{", this.suffix = n.suffix ? Or(n.suffix) : n.suffixEscaped || "}}", this.formatSeparator = n.formatSeparator ? n.formatSeparator : n.formatSeparator || ",", this.unescapePrefix = n.unescapeSuffix ? "" : n.unescapePrefix || "-", this.unescapeSuffix = this.unescapePrefix ? "" : n.unescapeSuffix || "", this.nestingPrefix = n.nestingPrefix ? Or(n.nestingPrefix) : n.nestingPrefixEscaped || Or("$t("), this.nestingSuffix = n.nestingSuffix ? Or(n.nestingSuffix) : n.nestingSuffixEscaped || Or(")"), this.maxReplaces = n.maxReplaces ? n.maxReplaces : 1e3, this.resetRegExp() } }, { key: "reset", @@ -3229,11 +3164,11 @@ return e.replace(/\$/g, "$$$$") } var c = function(e) { - if (e.indexOf(s.formatSeparator) < 0) return Ur(t, e); + if (e.indexOf(s.formatSeparator) < 0) return Mr(t, e); var a = e.split(s.formatSeparator), r = a.shift().trim(), i = a.join(s.formatSeparator).trim(); - return s.format(Ur(t, r), i, n) + return s.format(Mr(t, r), i, n) }; this.resetRegExp(); var u = a && a.missingInterpolationHandler || this.options.missingInterpolationHandler; @@ -3245,7 +3180,7 @@ var d = u(e, r, a); i = "string" == typeof d ? d : "" } else this.logger.warn("missed to pass in variable ".concat(r[1], " for interpolating ").concat(e)), i = ""; - else "string" == typeof i || this.useRawValueToEscape || (i = Lr(i)); + else "string" == typeof i || this.useRawValueToEscape || (i = Tr(i)); if (i = this.escapeValue ? l(this.escape(i)) : l(i), e = e.replace(r[0], i), this.regexp.lastIndex = 0, ++o >= this.maxReplaces) break } return e @@ -3254,7 +3189,7 @@ key: "nest", value: function(e, t) { var n, a, r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, - i = Sr({}, r); + i = Ja({}, r); function o(e, t) { if (e.indexOf(",") < 0) return e; @@ -3263,7 +3198,7 @@ var a = n.join(","); a = (a = this.interpolate(a, i)).replace(/'/g, '"'); try { - i = JSON.parse(a), t && (i = Sr({}, t, i)) + i = JSON.parse(a), t && (i = Ja({}, t, i)) } catch (t) { this.logger.error("failed parsing options string in nesting for key ".concat(e), t) } @@ -3271,18 +3206,18 @@ } for (i.applyPostProcessor = !1; n = this.nestingRegexp.exec(e);) { if ((a = t(o.call(this, n[1].trim(), i), i)) && n[0] === e && "string" != typeof a) return a; - "string" != typeof a && (a = Lr(a)), a || (this.logger.warn("missed to resolve ".concat(n[1], " for nesting ").concat(e)), a = ""), e = e.replace(n[0], a), this.regexp.lastIndex = 0 + "string" != typeof a && (a = Tr(a)), a || (this.logger.warn("missed to resolve ".concat(n[1], " for nesting ").concat(e)), a = ""), e = e.replace(n[0], a), this.regexp.lastIndex = 0 } return e } }]), e }(), - ai = function(e) { + Gr = function(e) { function t(e, n, a) { var r, i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : {}; - return Er(this, t), r = jr(this, Pr(t).call(this)), zr.call(Ar(r)), r.backend = e, r.store = n, r.languageUtils = a.languageUtils, r.options = i, r.logger = Nr.create("backendConnector"), r.state = {}, r.queue = [], r.backend && r.backend.init && r.backend.init(a, i.backend, i), r + return Ya(this, t), r = vr(this, kr(t).call(this)), Cr.call(w(r)), r.backend = e, r.store = n, r.languageUtils = a.languageUtils, r.options = i, r.logger = xr.create("backendConnector"), r.state = {}, r.queue = [], r.backend && r.backend.init && r.backend.init(a, i.backend, i), r } - return Tr(t, e), Cr(t, [{ + return _r(t, e), Ka(t, [{ key: "queueLoad", value: function(e, t, n, a) { var r = this, @@ -3311,14 +3246,14 @@ }, { key: "loaded", value: function(e, t, n) { - var a = Or(e.split("|"), 2), + var a = dr(e.split("|"), 2), r = a[0], i = a[1]; t && this.emit("failedLoading", r, i, t), n && this.store.addResourceBundle(r, i, n), this.state[e] = t ? -1 : 2; var o = {}; this.queue.forEach((function(n) { var a, s, l, c, u; - a = n.loaded, s = i, (c = (l = qr(a, [r], Object)).obj)[u = l.k] = c[u] || [], c[u].push(s), + a = n.loaded, s = i, (c = (l = Pr(a, [r], Object)).obj)[u = l.k] = c[u] || [], c[u].push(s), function(e, t) { for (var n = e.indexOf(t); - 1 !== n;) e.splice(n, 1), n = e.indexOf(t) }(n.pending, e), t && n.errors.push(t), 0 !== n.pending.length || n.done || (Object.keys(n.loaded).forEach((function(e) { @@ -3375,7 +3310,7 @@ var t = this, n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "", a = e.split("|"), - r = Or(a, 2), + r = dr(a, 2), i = r[0], o = r[1]; this.read(i, o, "read", null, null, (function(a, r) { @@ -3386,14 +3321,14 @@ key: "saveMissing", value: function(e, t, n, a, r) { var i = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : {}; - this.backend && this.backend.create && this.backend.create(e, t, n, a, null, Sr({}, i, { + this.backend && this.backend.create && this.backend.create(e, t, n, a, null, Ja({}, i, { isUpdate: r })), e && e[0] && this.store.addResource(e[0], t, n, a) } }]), t - }(zr); + }(Cr); - function ri() { + function Kr() { return { debug: !1, initImmediate: !0, @@ -3428,7 +3363,7 @@ appendNamespaceToCIMode: !1, overloadTranslationOptionHandler: function(e) { var t = {}; - if ("object" === _r(e[1]) && (t = e[1]), "string" == typeof e[1] && (t.defaultValue = e[1]), "string" == typeof e[2] && (t.tDescription = e[2]), "object" === _r(e[2]) || "object" === _r(e[3])) { + if ("object" === yr(e[1]) && (t = e[1]), "string" == typeof e[1] && (t.defaultValue = e[1]), "string" == typeof e[2] && (t.tDescription = e[2]), "object" === yr(e[2]) || "object" === yr(e[3])) { var n = e[3] || e[2]; Object.keys(n).forEach((function(e) { t[e] = n[e] @@ -3452,26 +3387,26 @@ } } - function ii(e) { + function $r(e) { return "string" == typeof e.ns && (e.ns = [e.ns]), "string" == typeof e.fallbackLng && (e.fallbackLng = [e.fallbackLng]), "string" == typeof e.fallbackNS && (e.fallbackNS = [e.fallbackNS]), e.whitelist && e.whitelist.indexOf("cimode") < 0 && (e.whitelist = e.whitelist.concat(["cimode"])), e } - function oi() {} - var si = function(e) { + function Jr() {} + var Zr = function(e) { function t() { var e, n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, a = arguments.length > 1 ? arguments[1] : void 0; - if (Er(this, t), e = jr(this, Pr(t).call(this)), zr.call(Ar(e)), e.options = ii(n), e.services = {}, e.logger = Nr, e.modules = { + if (Ya(this, t), e = vr(this, kr(t).call(this)), Cr.call(w(e)), e.options = $r(n), e.services = {}, e.logger = xr, e.modules = { external: [] }, a && !e.isInitialized && !n.isClone) { - if (!e.options.initImmediate) return e.init(n, a), jr(e, Ar(e)); + if (!e.options.initImmediate) return e.init(n, a), vr(e, w(e)); setTimeout((function() { e.init(n, a) }), 0) } return e } - return Tr(t, e), Cr(t, [{ + return _r(t, e), Ka(t, [{ key: "init", value: function() { var e = this, @@ -3481,19 +3416,19 @@ function a(e) { return e ? "function" == typeof e ? new e : e : null } - if ("function" == typeof t && (n = t, t = {}), this.options = Sr({}, ri(), this.options, ii(t)), this.format = this.options.interpolation.format, n || (n = oi), !this.options.isClone) { - this.modules.logger ? Nr.init(a(this.modules.logger), this.options) : Nr.init(null, this.options); - var r = new Zr(this.options); - this.store = new Gr(this.options.resources, this.options); + if ("function" == typeof t && (n = t, t = {}), this.options = Ja({}, Kr(), this.options, $r(t)), this.format = this.options.interpolation.format, n || (n = Jr), !this.options.isClone) { + this.modules.logger ? xr.init(a(this.modules.logger), this.options) : xr.init(null, this.options); + var r = new Br(this.options); + this.store = new zr(this.options.resources, this.options); var i = this.services; - i.logger = Nr, i.resourceStore = this.store, i.languageUtils = r, i.pluralResolver = new ti(r, { + i.logger = xr, i.resourceStore = this.store, i.languageUtils = r, i.pluralResolver = new Wr(r, { prepend: this.options.pluralSeparator, compatibilityJSON: this.options.compatibilityJSON, simplifyPluralSuffix: this.options.simplifyPluralSuffix - }), i.interpolator = new ni(this.options), i.backendConnector = new ai(a(this.modules.backend), i.resourceStore, i, this.options), i.backendConnector.on("*", (function(t) { + }), i.interpolator = new Yr(this.options), i.backendConnector = new Gr(a(this.modules.backend), i.resourceStore, i, this.options), i.backendConnector.on("*", (function(t) { for (var n = arguments.length, a = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) a[r - 1] = arguments[r]; e.emit.apply(e, [t].concat(a)) - })), this.modules.languageDetector && (i.languageDetector = a(this.modules.languageDetector), i.languageDetector.init(i, this.options.detection, this.options)), this.modules.i18nFormat && (i.i18nFormat = a(this.modules.i18nFormat), i.i18nFormat.init && i.i18nFormat.init(this)), this.translator = new $r(this.services, this.options), this.translator.on("*", (function(t) { + })), this.modules.languageDetector && (i.languageDetector = a(this.modules.languageDetector), i.languageDetector.init(i, this.options.detection, this.options)), this.modules.i18nFormat && (i.i18nFormat = a(this.modules.i18nFormat), i.i18nFormat.init && i.i18nFormat.init(this)), this.translator = new Fr(this.services, this.options), this.translator.on("*", (function(t) { for (var n = arguments.length, a = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) a[r - 1] = arguments[r]; e.emit.apply(e, [t].concat(a)) })), this.modules.external.forEach((function(t) { @@ -3507,7 +3442,7 @@ return (n = e.store)[t].apply(n, arguments) } })); - var s = Rr(), + var s = Ar(), l = function() { e.changeLanguage(e.options.lng, (function(t, a) { e.isInitialized = !0, e.logger.log("initialized", e.options), e.emit("initialized", e.options), s.resolve(a), n(t, a) @@ -3519,7 +3454,7 @@ key: "loadResources", value: function() { var e = this, - t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : oi; + t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Jr; if (!this.options.resources || this.options.partialBundledLanguages) { if (this.language && "cimode" === this.language.toLowerCase()) return t(); var n = [], @@ -3543,21 +3478,21 @@ }, { key: "reloadResources", value: function(e, t, n) { - var a = Rr(); - return e || (e = this.languages), t || (t = this.options.ns), n || (n = oi), this.services.backendConnector.reload(e, t, (function(e) { + var a = Ar(); + return e || (e = this.languages), t || (t = this.options.ns), n || (n = Jr), this.services.backendConnector.reload(e, t, (function(e) { a.resolve(), n(e) })), a } }, { key: "use", value: function(e) { - return "backend" === e.type && (this.modules.backend = e), ("logger" === e.type || e.log && e.warn && e.error) && (this.modules.logger = e), "languageDetector" === e.type && (this.modules.languageDetector = e), "i18nFormat" === e.type && (this.modules.i18nFormat = e), "postProcessor" === e.type && Kr.addPostProcessor(e), "3rdParty" === e.type && this.modules.external.push(e), this + return "backend" === e.type && (this.modules.backend = e), ("logger" === e.type || e.log && e.warn && e.error) && (this.modules.logger = e), "languageDetector" === e.type && (this.modules.languageDetector = e), "i18nFormat" === e.type && (this.modules.i18nFormat = e), "postProcessor" === e.type && Lr.addPostProcessor(e), "3rdParty" === e.type && this.modules.external.push(e), this } }, { key: "changeLanguage", value: function(e, t) { var n = this, - a = Rr(); + a = Ar(); this.emit("languageChanging", e); var r = function(e) { e && (n.language = e, n.languages = n.services.languageUtils.toResolveHierarchy(e), n.translator.language || n.translator.changeLanguage(e), n.services.languageDetector && n.services.languageDetector.cacheUserLanguage(e)), n.loadResources((function(r) { @@ -3577,8 +3512,8 @@ value: function(e, t) { var n = this, a = function e(t, a) { - var r = Sr({}, a); - if ("object" !== _r(a)) { + var r = Ja({}, a); + if ("object" !== yr(a)) { for (var i = arguments.length, o = new Array(i > 2 ? i - 2 : 0), s = 2; s < i; s++) o[s - 2] = arguments[s]; r = n.options.overloadTranslationOptionHandler([t, a].concat(o)) } @@ -3607,7 +3542,7 @@ key: "loadNamespaces", value: function(e, t) { var n = this, - a = Rr(); + a = Ar(); return this.options.ns ? ("string" == typeof e && (e = [e]), e.forEach((function(e) { n.options.ns.indexOf(e) < 0 && n.options.ns.push(e) })), this.loadResources((function(e) { @@ -3617,7 +3552,7 @@ }, { key: "loadLanguages", value: function(e, t) { - var n = Rr(); + var n = Ar(); "string" == typeof e && (e = [e]); var a = this.options.preload || [], r = e.filter((function(e) { @@ -3644,62 +3579,35 @@ value: function() { var e = this, n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : oi, - r = Sr({}, this.options, n, { + a = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Jr, + r = Ja({}, this.options, n, { isClone: !0 }), i = new t(r), o = ["store", "services", "language"]; return o.forEach((function(t) { i[t] = e[t] - })), i.translator = new $r(i.services, i.options), i.translator.on("*", (function(e) { + })), i.translator = new Fr(i.services, i.options), i.translator.on("*", (function(e) { for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), a = 1; a < t; a++) n[a - 1] = arguments[a]; i.emit.apply(i, [e].concat(n)) })), i.init(r, a), i.translator.options = i.options, i } }]), t - }(zr); - const li = new si; - - function ci(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - } - - function ui(e, t) { - for (var n = 0; n < t.length; n++) { - var a = t[n]; - a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) - } - } - - function di(e) { - return di = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { - return typeof e - } : function(e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }, di(e) - } - - function pi(e) { - return pi = "function" == typeof Symbol && "symbol" === di(Symbol.iterator) ? function(e) { - return di(e) - } : function(e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : di(e) - }, pi(e) - } - var hi = [], - mi = hi.forEach, - fi = hi.slice; - - function gi(e) { - return mi.call(fi.call(arguments, 1), (function(t) { + }(Cr); + const Qr = new Zr; + var Xr = [], + ei = Xr.forEach, + ti = Xr.slice; + + function ni(e) { + return ei.call(ti.call(arguments, 1), (function(t) { if (t) for (var n in t) void 0 === e[n] && (e[n] = t[n]) })), e } - function bi(e, t) { - if (t && "object" === pi(t)) { + function ai(e, t) { + if (t && "object" === yr(t)) { var n = "", a = encodeURIComponent; for (var r in t) n += "&" + a(r) + "=" + a(t[r]); @@ -3709,8 +3617,8 @@ return e } - function yi(e, t, n, a, r) { - a && "object" === pi(a) && (r || (a._t = new Date), a = bi("", a).slice(1)), t.queryStringParams && (e = bi(e, t.queryStringParams)); + function ri(e, t, n, a, r) { + a && "object" === yr(a) && (r || (a._t = new Date), a = ai("", a).slice(1)), t.queryStringParams && (e = ai(e, t.queryStringParams)); try { var i; (i = XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject("MSXML2.XMLHTTP.3.0")).open(a ? "POST" : "GET", e, 1), t.crossDomain || i.setRequestHeader("X-Requested-With", "XMLHttpRequest"), i.withCredentials = !!t.withCredentials, a && i.setRequestHeader("Content-type", "application/x-www-form-urlencoded"), i.overrideMimeType && i.overrideMimeType("application/json"); @@ -3725,27 +3633,26 @@ } } - function vi() { + function ii() { return { loadPath: "/locales/{{lng}}/{{ns}}.json", addPath: "/locales/add/{{lng}}/{{ns}}", allowMultiLoading: !1, parse: JSON.parse, crossDomain: !1, - ajax: yi + ajax: ri } } - var ki = function() { + var oi = function() { function e(t) { var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - ci(this, e), this.init(t, n), this.type = "backend" + Ya(this, e), this.init(t, n), this.type = "backend" } - var t, n; - return t = e, n = [{ + return Ka(e, [{ key: "init", value: function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - this.services = e, this.options = gi(t, this.options || {}, vi()) + this.services = e, this.options = ni(t, this.options || {}, ii()) } }, { key: "readMulti", @@ -3800,20 +3707,20 @@ r.options.ajax(n, r.options, (function(e, t) {}), i) })) } - }], n && ui(t.prototype, n), e + }]), e }(); - ki.type = "backend"; - const _i = ki, - wi = JSON.parse('{"en":"English","af":"Afrikaans","ar":"Arabic","bg":"Bulgarian","ca":"Catalan","cs":"Czech","da":"Danish","de":"German","el":"Greek","enGB":"English (United Kingdom)","eo":"Esperanto","es":"Spanish","esUS":"Spanish (Latin America)","et":"Estonian","eu":"Basque","fi":"Finnish","fr":"French","frCA":"French (Canadian)","he":"Hebrew","hi":"Hindi","mr":"Marathi","hr":"Croatian","hu":"Hungarian","hy":"Armenian","id":"Indonesian","it":"Italian","ja":"Japanese","kab":"Kabyle","ko":"Korean","lt":"Lithuanian","ml":"Malayalam","lv":"Latvian","nl":"Dutch","oc":"Occitan","fa":"Persian","pl":"Polish","pt":"Portuguese","ptBR":"Portuguese (Brazil)","ru":"Russian","ro":"Romanian","sc":"Sardinian","sk":"Slovak","sl":"Slovenian","sr":"Serbian","sq":"Albanian","sv":"Swedish","te":"Telugu","th":"Thai","tr":"Turkish","uk":"Ukrainian","vi":"Vietnamese","zhCN":"Chinese (China)","zhTW":"Chinese (Taiwan)"}'), - Si = JSON.parse('{"addPeople":{"add":"Invite","addContacts":"Invite your contacts","copyInvite":"Copy meeting invitation","copyLink":"Copy meeting link","copyStream":"Copy live streaming link","contacts":"contacts","countryNotSupported":"We do not support this destination yet.","countryReminder":"Calling outside the US? Please make sure you start with the country code!","defaultEmail":"Your Default Email","disabled":"You can\'t invite people.","failedToAdd":"Failed to add participants","footerText":"Dialing out is disabled.","googleEmail":"Google Email","inviteMoreHeader":"You are the only one in the meeting","inviteMoreMailSubject":"Join {{appName}} meeting","inviteMorePrompt":"Invite more people","linkCopied":"Link copied to clipboard","noResults":"No matching search results","outlookEmail":"Outlook Email","phoneNumbers":"phone numbers","searching":"Searching...","shareInvite":"Share meeting invitation","shareLink":"Share the meeting link to invite others","shareStream":"Share the live streaming link","sipAddresses":"sip addresses","telephone":"Telephone: {{number}}","title":"Invite people to this meeting","yahooEmail":"Yahoo Email"},"audioDevices":{"bluetooth":"Bluetooth","headphones":"Headphones","phone":"Phone","speaker":"Speaker","none":"No audio devices available"},"audioOnly":{"audioOnly":"Low bandwidth"},"calendarSync":{"addMeetingURL":"Add a meeting link","confirmAddLink":"Do you want to add a Jitsi link to this event?","error":{"appConfiguration":"Calendar integration is not properly configured.","generic":"An error has occurred. Please check your calendar settings or try refreshing the calendar.","notSignedIn":"An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again."},"join":"Join","joinTooltip":"Join the meeting","nextMeeting":"next meeting","noEvents":"There are no upcoming events scheduled.","ongoingMeeting":"ongoing meeting","permissionButton":"Open settings","permissionMessage":"The Calendar permission is required to see your meetings in the app.","refresh":"Refresh calendar","today":"Today"},"chat":{"enter":"Enter room","error":"Error: your message was not sent. Reason: {{error}}","fieldPlaceHolder":"Type your message here","messagebox":"Type a message","messageTo":"Private message to {{recipient}}","noMessagesMessage":"There are no messages in the meeting yet. Start a conversation here!","nickname":{"popover":"Choose a nickname","title":"Enter a nickname to use chat","titleWithPolls":"Enter a nickname to use chat and polls"},"privateNotice":"Private message to {{recipient}}","message":"Message","messageAccessibleTitle":"{{user}} says:","messageAccessibleTitleMe":"me says:","smileysPanel":"Emoji panel","tabs":{"chat":"Chat","polls":"Polls"},"title":"Chat","titleWithPolls":"Chat and Polls","you":"you"},"chromeExtensionBanner":{"installExtensionText":"Install the extension for Google Calendar and Office 365 integration","buttonText":"Install Chrome Extension","dontShowAgain":"Don’t show me this again","close":"Close"},"connectingOverlay":{"joiningRoom":"Connecting you to your meeting..."},"connection":{"ATTACHED":"Attached","AUTHENTICATING":"Authenticating","AUTHFAIL":"Authentication failed","CONNECTED":"Connected","CONNECTING":"Connecting","CONNFAIL":"Connection failed","DISCONNECTED":"Disconnected","DISCONNECTING":"Disconnecting","ERROR":"Error","FETCH_SESSION_ID":"Obtaining session-id...","GET_SESSION_ID_ERROR":"Get session-id error: {{code}}","GOT_SESSION_ID":"Obtaining session-id... Done","LOW_BANDWIDTH":"Video for {{displayName}} has been turned off to save bandwidth"},"connectionindicator":{"address":"Address:","audio_ssrc":"Audio SSRC:","bandwidth":"Estimated bandwidth:","bitrate":"Bitrate:","bridgeCount":"Server count: ","codecs":"Codecs (A/V): ","connectedTo":"Connected to:","e2e_rtt":"E2E RTT:","framerate":"Frame rate:","less":"Show less","localaddress":"Local address:","localaddress_plural":"Local addresses:","localport":"Local port:","localport_plural":"Local ports:","maxEnabledResolution":"send max","more":"Show more","packetloss":"Packet loss:","quality":{"good":"Good","inactive":"Inactive","lost":"Lost","nonoptimal":"Nonoptimal","poor":"Poor"},"remoteaddress":"Remote address:","remoteaddress_plural":"Remote addresses:","remoteport":"Remote port:","remoteport_plural":"Remote ports:","resolution":"Resolution:","savelogs":"Save logs","participant_id":"Participant id:","status":"Connection:","transport":"Transport:","transport_plural":"Transports:","video_ssrc":"Video SSRC:"},"dateUtils":{"earlier":"Earlier","today":"Today","yesterday":"Yesterday"},"deepLinking":{"appNotInstalled":"You need the {{app}} mobile app to join this meeting on your phone.","description":"Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.","descriptionWithoutWeb":"Nothing happened? We tried launching your meeting in the {{app}} desktop app.","downloadApp":"Download the app","ifDoNotHaveApp":"If you don\'t have the app yet:","ifHaveApp":"If you already have the app:","joinInApp":"Join this meeting using the app","launchWebButton":"Launch in web","title":"Launching your meeting in {{app}}...","tryAgainButton":"Try again in desktop"},"defaultLink":"e.g. {{url}}","defaultNickname":"ex. Jane Pink","deviceError":{"cameraError":"Failed to access your camera","cameraPermission":"Error obtaining camera permission","microphoneError":"Failed to access your microphone","microphonePermission":"Error obtaining microphone permission"},"deviceSelection":{"noPermission":"Permission not granted","previewUnavailable":"Preview unavailable","selectADevice":"Select a device","testAudio":"Play a test sound"},"dialog":{"accessibilityLabel":{"liveStreaming":"Live Stream"},"add":"Add","allow":"Allow","alreadySharedVideoMsg":"Another participant is already sharing a video. This conference allows only one shared video at a time.","alreadySharedVideoTitle":"Only one shared video is allowed at a time","applicationWindow":"Application window","authenticationRequired":"Authentication required","Back":"Back","cameraConstraintFailedError":"Your camera does not satisfy some of the required constraints.","cameraNotFoundError":"Camera was not found.","cameraNotSendingData":"We are unable to access your camera. Please check if another application is using this device, select another device from the settings menu or try to reload the application.","cameraNotSendingDataTitle":"Unable to access camera","cameraPermissionDeniedError":"You have not granted permission to use your camera. You can still join the conference but others won\'t see you. Use the camera button in the address bar to fix this.","cameraTimeoutError":"Could not start video source. Timeout occured!","cameraUnknownError":"Cannot use camera for an unknown reason.","cameraUnsupportedResolutionError":"Your camera does not support required video resolution.","Cancel":"Cancel","close":"Close","conferenceDisconnectMsg":"You may want to check your network connection. Reconnecting in {{seconds}} sec...","conferenceDisconnectTitle":"You have been disconnected.","conferenceReloadMsg":"We\'re trying to fix this. Reconnecting in {{seconds}} sec...","conferenceReloadTitle":"Unfortunately, something went wrong.","confirm":"Confirm","confirmNo":"No","confirmYes":"Yes","connectError":"Oops! Something went wrong and we couldn\'t connect to the conference.","connectErrorWithMsg":"Oops! Something went wrong and we couldn\'t connect to the conference: {{msg}}","connecting":"Connecting","contactSupport":"Contact support","copied":"Copied","copy":"Copy","dismiss":"Dismiss","displayNameRequired":"Hi! What’s your name?","done":"Done","e2eeDescription":"End-to-End Encryption is currently EXPERIMENTAL. Please keep in mind that turning on end-to-end encryption will effectively disable server-side provided services such as: phone participation. Also keep in mind that the meeting will only work for people joining from browsers with support for insertable streams.","e2eeLabel":"Enable End-to-End Encryption","e2eeDisabledDueToMaxModeDescription":"Cannot enable End-to-End Encryption due to large number of participants in the conference.","e2eeWarning":"WARNING: Not all participants in this meeting seem to have support for End-to-End encryption. If you enable it they won\'t be able to see nor hear you.","e2eeWillDisableDueToMaxModeDescription":"WARNING: End-to-End Encryption will be automatically disabled if more participants join the conference.","enterDisplayName":"Enter your name here","embedMeeting":"Embed meeting","error":"Error","gracefulShutdown":"Our service is currently down for maintenance. Please try again later.","grantModeratorDialog":"Are you sure you want to grant moderator rights to {{participantName}}?","grantModeratorTitle":"Grant moderator rights","hideShareAudioHelper":"Don\'t show this dialog again","IamHost":"I am the host","incorrectRoomLockPassword":"Incorrect password","incorrectPassword":"Incorrect username or password","internalError":"Oops! Something went wrong. The following error occurred: {{error}}","internalErrorTitle":"Internal error","kickMessage":"You can contact {{participantDisplayName}} for more details.","kickParticipantButton":"Kick","kickParticipantDialog":"Are you sure you want to kick this participant?","kickParticipantTitle":"Kick this participant?","kickTitle":"Ouch! {{participantDisplayName}} kicked you out of the meeting","liveStreaming":"Live Streaming","liveStreamingDisabledBecauseOfActiveRecordingTooltip":"Not possible while recording is active","liveStreamingDisabledTooltip":"Start live stream disabled.","lockMessage":"Failed to lock the conference.","lockRoom":"Add meeting $t(lockRoomPassword)","lockTitle":"Lock failed","logoutQuestion":"Are you sure you want to logout and stop the conference?","login":"Login","logoutTitle":"Logout","maxUsersLimitReached":"The limit for maximum number of participants has been reached. The conference is full. Please contact the meeting owner or try again later!","maxUsersLimitReachedTitle":"Maximum participants limit reached","micConstraintFailedError":"Your microphone does not satisfy some of the required constraints.","micNotFoundError":"Microphone was not found.","micNotSendingData":"Go to your computer\'s settings to unmute your mic and adjust its level","micNotSendingDataTitle":"Your mic is muted by your system settings","micPermissionDeniedError":"You have not granted permission to use your microphone. You can still join the conference but others won\'t hear you. Use the camera button in the address bar to fix this.","micTimeoutError":"Could not start audio source. Timeout occured!","micUnknownError":"Cannot use microphone for an unknown reason.","moderationAudioLabel":"Allow attendees to unmute themselves","moderationVideoLabel":"Allow attendees to start their video","muteEveryoneElseDialog":"Once muted, you won\'t be able to unmute them, but they can unmute themselves at any time.","muteEveryoneElseTitle":"Mute everyone except {{whom}}?","muteEveryoneDialog":"The participants can unmute themselves at any time.","muteEveryoneDialogModerationOn":"The participants can send a request to speak at any time.","muteEveryoneTitle":"Mute everyone?","muteEveryoneElsesVideoDialog":"Once the camera is disabled, you won\'t be able to turn it back on, but they can turn it back on at any time.","muteEveryoneElsesVideoTitle":"Stop everyone\'s video except {{whom}}?","muteEveryonesVideoDialog":"The participants can turn on their video at any time.","muteEveryonesVideoDialogModerationOn":"The participants can send a request to turn on their video at any time.","muteEveryonesVideoDialogOk":"Disable","muteEveryonesVideoTitle":"Stop everyone\'s video?","muteEveryoneSelf":"yourself","muteEveryoneStartMuted":"Everyone starts muted from now on","muteParticipantBody":"You won\'t be able to unmute them, but they can unmute themselves at any time.","muteParticipantButton":"Mute","muteParticipantDialog":"Are you sure you want to mute this participant? You won\'t be able to unmute them, but they can unmute themselves at any time.","muteParticipantsVideoDialog":"Are you sure you want to turn off this participant\'s camera? You won\'t be able to turn the camera back on, but they can turn it back on at any time.","muteParticipantTitle":"Mute this participant?","muteParticipantsVideoButton":"Stop video","muteParticipantsVideoTitle":"Disable camera of this participant?","muteParticipantsVideoBody":"You won\'t be able to turn the camera back on, but they can turn it back on at any time.","noDropboxToken":"No valid Dropbox token","Ok":"OK","password":"Password","passwordLabel":"The meeting has been locked by a participant. Please enter the $t(lockRoomPassword) to join.","passwordNotSupported":"Setting a meeting $t(lockRoomPassword) is not supported.","passwordNotSupportedTitle":"$t(lockRoomPasswordUppercase) not supported","passwordRequired":"$t(lockRoomPasswordUppercase) required","permissionErrorTitle":"Permission required","permissionCameraRequiredError":"Camera permission is required to participate in conferences with video. Please grant it in Settings","permissionMicRequiredError":"Microphone permission is required to participate in conferences with audio. Please grant it in Settings","popupError":"Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser\'s security settings and try again.","popupErrorTitle":"Pop-up blocked","readMore":"more","recording":"Recording","recordingDisabledBecauseOfActiveLiveStreamingTooltip":"Not possible while a live stream is active","recordingDisabledTooltip":"Start recording disabled.","rejoinNow":"Rejoin now","remoteControlAllowedMessage":"{{user}} accepted your remote control request!","remoteControlDeniedMessage":"{{user}} rejected your remote control request!","remoteControlErrorMessage":"An error occurred while trying to request remote control permissions from {{user}}!","remoteControlRequestMessage":"Will you allow {{user}} to remotely control your desktop?","remoteControlShareScreenWarning":"Note that if you press \\"Allow\\" you will share your screen!","remoteControlStopMessage":"The remote control session ended!","remoteControlTitle":"Remote desktop control","Remove":"Remove","removePassword":"Remove $t(lockRoomPassword)","removeSharedVideoMsg":"Are you sure you would like to remove your shared video?","removeSharedVideoTitle":"Remove shared video","reservationError":"Reservation system error","reservationErrorMsg":"Error code: {{code}}, message: {{msg}}","retry":"Retry","screenSharingAudio":"Share audio","screenSharingFailed":"Oops! Something went wrong, we weren’t able to start screen sharing!","screenSharingFailedTitle":"Screen sharing failed!","screenSharingPermissionDeniedError":"Oops! Something went wrong with your screen sharing permissions. Please reload and try again.","sendPrivateMessage":"You recently received a private message. Did you intend to reply to that privately, or you want to send your message to the group?","sendPrivateMessageCancel":"Send to the group","sendPrivateMessageOk":"Send privately","sendPrivateMessageTitle":"Send privately?","serviceUnavailable":"Service unavailable","sessTerminated":"Call terminated","sessionRestarted":"Call restarted because of a connection issue.","Share":"Share","shareAudio":"Continue","shareAudioTitle":"How to share audio","shareAudioWarningTitle":"You need to stop screen sharing before sharing audio","shareAudioWarningH1":"If you want to share just audio:","shareAudioWarningD1":"you need to stop screen sharing before sharing your audio.","shareAudioWarningD2":"you need to restart your screen sharing and check the \\"share audio\\" option.","shareMediaWarningGenericH2":"If you want to share your screen and audio","shareVideoLinkError":"Please provide a correct video link.","shareVideoTitle":"Share video","shareYourScreen":"Share your screen","shareYourScreenDisabled":"Screen sharing disabled.","startLiveStreaming":"Start live stream","startRecording":"Start recording","startRemoteControlErrorMessage":"An error occurred while trying to start the remote control session!","shareScreenWarningTitle":"You need to stop audio sharing before sharing your screen","shareScreenWarningH1":"If you want to share just your screen:","shareScreenWarningD1":"you need to stop audio sharing before sharing your screen.","shareScreenWarningD2":"you need to stop audio sharing, start screen sharing and check the \\"share audio\\" option.","sharedVideoLinkPlaceholder":"YouTube link or direct video link","stopLiveStreaming":"Stop live stream","stopRecording":"Stop recording","stopRecordingWarning":"Are you sure you would like to stop the recording?","stopStreamingWarning":"Are you sure you would like to stop the live streaming?","streamKey":"Live stream key","Submit":"Submit","thankYou":"Thank you for using {{appName}}!","token":"token","tokenAuthFailed":"Sorry, you\'re not allowed to join this call.","tokenAuthFailedTitle":"Authentication failed","transcribing":"Transcribing","unlockRoom":"Remove meeting $t(lockRoomPassword)","user":"User","userIdentifier":"User identifier","userPassword":"User password","videoLink":"Video link","viewUpgradeOptions":"View upgrade options","viewUpgradeOptionsContent":"To get unlimited access to premium features like recording, transcriptions, RTMP Streaming & more, you\'ll need to upgrade your plan.","viewUpgradeOptionsTitle":"You discovered a premium feature!","WaitForHostMsg":"The conference {{room}} has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.","WaitForHostMsgWOk":"The conference {{room}} has not yet started. If you are the host then please press Ok to authenticate. Otherwise, please wait for the host to arrive.","WaitingForHostTitle":"Waiting for the host ...","Yes":"Yes","yourEntireScreen":"Your entire screen","remoteUserControls":"Remote user controls of {{username}}","localUserControls":"Local user controls"},"dialOut":{"statusMessage":"is now {{status}}"},"documentSharing":{"title":"Shared Document"},"e2ee":{"labelToolTip":"Audio and Video Communication on this call is end-to-end encrypted"},"embedMeeting":{"title":"Embed this meeting"},"virtualBackground":{"apply":"Apply","title":"Virtual backgrounds","blur":"Blur","slightBlur":"Slight Blur","removeBackground":"Remove background","addBackground":"Add background","pleaseWait":"Please wait...","none":"None","uploadedImage":"Uploaded image {{index}}","deleteImage":"Delete image","image1":"Beach","image2":"White neutral wall","image3":"White empty room","image4":"Black floor lamp","image5":"Mountain","image6":"Forest ","image7":"Sunrise","desktopShareError":"Could not create desktop share","desktopShare":"Desktop share","webAssemblyWarning":"WebAssembly not supported","backgroundEffectError":"Failed to apply background effect."},"feedback":{"average":"Average","bad":"Bad","detailsLabel":"Tell us more about it.","good":"Good","rateExperience":"Rate your meeting experience","veryBad":"Very Bad","veryGood":"Very Good","star":"Star"},"incomingCall":{"answer":"Answer","audioCallTitle":"Incoming call","decline":"Dismiss","productLabel":"from Jitsi Meet","videoCallTitle":"Incoming video call"},"info":{"accessibilityLabel":"Show info","addPassword":"Add $t(lockRoomPassword)","cancelPassword":"Cancel $t(lockRoomPassword)","conferenceURL":"Link:","country":"Country","dialANumber":"To join your meeting, dial one of these numbers and then enter the pin.","dialInConferenceID":"PIN:","copyNumber":"Copy number","dialInNotSupported":"Sorry, dialing in is currently not supported.","dialInNumber":"Dial-in:","dialInSummaryError":"Error fetching dial-in info now. Please try again later.","dialInTollFree":"Toll Free","genericError":"Whoops, something went wrong.","inviteLiveStream":"To view the live stream of this meeting, click this link: {{url}}","invitePhone":"To join by phone instead, tap this: {{number}},,{{conferenceID}}#\\n","invitePhoneAlternatives":"Looking for a different dial-in number?\\nSee meeting dial-in numbers: {{url}}\\n\\n\\nIf also dialing-in through a room phone, join without connecting to audio: {{silentUrl}}","inviteSipEndpoint":"To join using the SIP address, enter this: {{sipUri}}","inviteTextiOSPersonal":"{{name}} is inviting you to a meeting.","inviteTextiOSJoinSilent":"If you are dialing-in through a room phone, use this link to join without connecting to audio: {{silentUrl}}.","inviteTextiOSInviteUrl":"Click the following link to join: {{inviteUrl}}.","inviteTextiOSPhone":"To join via phone, use this number: {{number}},,{{conferenceID}}#. If you are looking for a different number, this is the full list: {{didUrl}}.","inviteURLFirstPartGeneral":"You are invited to join a meeting.","inviteURLFirstPartPersonal":"{{name}} is inviting you to a meeting.\\n","inviteURLSecondPart":"\\nJoin the meeting:\\n{{url}}\\n","liveStreamURL":"Live stream:","moreNumbers":"More numbers","noNumbers":"No dial-in numbers.","noPassword":"None","noRoom":"No room was specified to dial-in into.","numbers":"Dial-in Numbers","password":"$t(lockRoomPasswordUppercase):","sip":"SIP address","title":"Share","tooltip":"Share link and dial-in info for this meeting","label":"Dial-in info"},"inviteDialog":{"alertText":"Failed to invite some participants.","header":"Invite","searchCallOnlyPlaceholder":"Enter phone number","searchPeopleOnlyPlaceholder":"Search for participants","searchPlaceholder":"Participant or phone number","send":"Send"},"inlineDialogFailure":{"msg":"We stumbled a bit.","retry":"Try again","support":"Support","supportMsg":"If this keeps happening, reach out to"},"jitsiHome":"{{logo}} Logo, links to Homepage","keyboardShortcuts":{"focusLocal":"Focus on your video","focusRemote":"Focus on another person\'s video","fullScreen":"View or exit full screen","keyboardShortcuts":"Keyboard shortcuts","localRecording":"Show or hide local recording controls","mute":"Mute or unmute your microphone","pushToTalk":"Push to talk","raiseHand":"Raise or lower your hand","showSpeakerStats":"Show speaker stats","toggleChat":"Open or close the chat","toggleFilmstrip":"Show or hide video thumbnails","toggleParticipantsPane":"Show or hide the participants pane","toggleScreensharing":"Switch between camera and screen sharing","toggleShortcuts":"Show or hide keyboard shortcuts","videoMute":"Start or stop your camera"},"liveStreaming":{"limitNotificationDescriptionWeb":"Due to high demand your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.","limitNotificationDescriptionNative":"Your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.","busy":"We\'re working on freeing streaming resources. Please try again in a few minutes.","busyTitle":"All streamers are currently busy","changeSignIn":"Switch accounts.","choose":"Choose a live stream","chooseCTA":"Choose a streaming option. You\'re currently logged in as {{email}}.","enterStreamKey":"Enter your YouTube live stream key here.","error":"Live Streaming failed. Please try again.","errorAPI":"An error occurred while accessing your YouTube broadcasts. Please try logging in again.","errorLiveStreamNotEnabled":"Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.","expandedOff":"The live streaming has stopped","expandedOn":"The meeting is currently being streamed to YouTube.","expandedPending":"The live streaming is being started...","failedToStart":"Live Streaming failed to start","getStreamKeyManually":"We weren’t able to fetch any live streams. Try getting your live stream key from YouTube.","invalidStreamKey":"Live stream key may be incorrect.","off":"Live Streaming stopped","offBy":"{{name}} stopped the live streaming","on":"Live Streaming started","onBy":"{{name}} started the live streaming","pending":"Starting Live Stream...","serviceName":"Live Streaming service","signedInAs":"You are currently signed in as:","signIn":"Sign in with Google","signInCTA":"Sign in or enter your live stream key from YouTube.","signOut":"Sign out","start":"Start a live stream","streamIdHelp":"What\'s this?","unavailableTitle":"Live Streaming unavailable","youtubeTerms":"YouTube terms of services","googlePrivacyPolicy":"Google Privacy Policy"},"localRecording":{"clientState":{"off":"Off","on":"On","unknown":"Unknown"},"dialogTitle":"Local Recording Controls","duration":"Duration","durationNA":"N/A","encoding":"Encoding","label":"LOR","labelToolTip":"Local recording is engaged","localRecording":"Local Recording","me":"Me","messages":{"engaged":"Local recording engaged.","finished":"Recording session {{token}} finished. Please send the recorded file to the moderator.","finishedModerator":"Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.","notModerator":"You are not the moderator. You cannot start or stop local recording."},"moderator":"Moderator","no":"No","participant":"Participant","participantStats":"Participant Stats","sessionToken":"Session Token","start":"Start Recording","stop":"Stop Recording","yes":"Yes"},"lockRoomPassword":"password","lockRoomPasswordUppercase":"Password","me":"me","notify":{"allowAction":"Allow","allowedUnmute":"You can unmute your microphone, start your camera or share your screen.","connectedOneMember":"{{name}} joined the meeting","connectedThreePlusMembers":"{{name}} and many others joined the meeting","connectedTwoMembers":"{{first}} and {{second}} joined the meeting","disconnected":"disconnected","focus":"Conference focus","focusFail":"{{component}} not available - retry in {{ms}} sec","hostAskedUnmute":"The moderator would like you to speak","invitedOneMember":"{{name}} has been invited","invitedThreePlusMembers":"{{name}} and {{count}} others have been invited","invitedTwoMembers":"{{first}} and {{second}} have been invited","kickParticipant":"{{kicked}} was kicked by {{kicker}}","me":"Me","moderator":"You\'re now a moderator","muted":"You have started the conversation muted.","mutedTitle":"You\'re muted!","mutedRemotelyTitle":"You\'ve been muted by {{moderator}}","mutedRemotelyDescription":"You can always unmute when you\'re ready to speak. Mute back when you\'re done to keep noise away from the meeting.","videoMutedRemotelyTitle":"Your video has been turned off by {{moderator}}","videoMutedRemotelyDescription":"You can always turn it on again.","passwordRemovedRemotely":"$t(lockRoomPasswordUppercase) removed by another participant","passwordSetRemotely":"$t(lockRoomPasswordUppercase) set by another participant","raisedHand":"Would like to speak.","screenShareNoAudio":" Share audio box was not checked in the window selection screen.","screenShareNoAudioTitle":"Couldn\'t share system audio!","somebody":"Somebody","startSilentTitle":"You joined with no audio output!","startSilentDescription":"Rejoin the meeting to enable audio","suboptimalBrowserWarning":"We are afraid your meeting experience isn\'t going to be that great here. We are looking for ways to improve this, but until then please try using one of the fully supported browsers.","suboptimalExperienceTitle":"Browser Warning","unmute":"Unmute","newDeviceCameraTitle":"New camera detected","newDeviceAudioTitle":"New audio device detected","newDeviceAction":"Use","OldElectronAPPTitle":"Security vulnerability!","oldElectronClientDescription1":"You appear to be using an old version of the Jitsi Meet client which has known security vulnerabilities. Please make sure you update to our ","oldElectronClientDescription2":"latest build","oldElectronClientDescription3":" now!","moderationInEffectDescription":"Please raise hand if you want to speak.","moderationInEffectCSDescription":"Please raise hand if you want to share your screen.","moderationInEffectVideoDescription":"Please raise your hand if you want to start your camera.","moderationInEffectTitle":"Your microphone is muted by the moderator","moderationInEffectCSTitle":"Screen sharing is blocked by the moderator","moderationInEffectVideoTitle":"Your camera is blocked by the moderator","moderationRequestFromModerator":"The host would like you to unmute","moderationRequestFromParticipant":"Wants to speak","moderationStartedTitle":"Moderation started","moderationStoppedTitle":"Moderation stopped","moderationToggleDescription":"by {{participantDisplayName}}","raiseHandAction":"Raise hand","reactionSounds":"Disable sounds","groupTitle":"Notifications"},"participantsPane":{"close":"Close","header":"Participants","headings":{"lobby":"Lobby ({{count}})","participantsList":"Meeting participants ({{count}})","waitingLobby":"Waiting in lobby ({{count}})"},"actions":{"allow":"Allow attendees to:","allowVideo":"Allow video","audioModeration":"Unmute themselves","blockEveryoneMicCamera":"Block everyone\'s mic and camera","invite":"Invite Someone","askUnmute":"Ask to unmute","mute":"Mute","muteAll":"Mute all","muteEveryoneElse":"Mute everyone else","stopEveryonesVideo":"Stop everyone\'s video","stopVideo":"Stop video","unblockEveryoneMicCamera":"Unblock everyone\'s mic and camera","videoModeration":"Start their video"}},"passwordSetRemotely":"Set by another participant","passwordDigitsOnly":"Up to {{number}} digits","polls":{"create":{"addOption":"Add option","answerPlaceholder":"Option {{index}}","create":"Create a poll","cancel":"Cancel","pollOption":"Poll option {{index}}","pollQuestion":"Poll Question","questionPlaceholder":"Ask a question","removeOption":"Remove option","send":"Send"},"answer":{"skip":"Skip","submit":"Submit"},"results":{"vote":"Vote","changeVote":"Change vote","empty":"There are no polls in the meeting yet. Start a poll here!","hideDetailedResults":"Hide details","showDetailedResults":"Show details"},"notification":{"title":"A new poll was added to this meeting","description":"Open polls tab to vote"}},"poweredby":"powered by","prejoin":{"audioAndVideoError":"Audio and video error:","audioDeviceProblem":"There is a problem with your audio device","audioOnlyError":"Audio error:","audioTrackError":"Could not create audio track.","calling":"Calling","callMe":"Call me","callMeAtNumber":"Call me at this number:","configuringDevices":"Configuring devices...","connectedWithAudioQ":"You’re connected with audio?","connection":{"good":"Your internet connection looks good!","nonOptimal":"Your internet connection is not optimal","poor":"You have a poor internet connection"},"connectionDetails":{"audioClipping":"We expect your audio to be clipped.","audioHighQuality":"We expect your audio to have excellent quality.","audioLowNoVideo":"We expect your audio quality to be low and no video.","goodQuality":"Awesome! Your media quality is going to be great.","noMediaConnectivity":"We could not find a way to establish media connectivity for this test. This is typically caused by a firewall or NAT.","noVideo":"We expect that your video will be terrible.","undetectable":"If you still can not make calls in browser, we recommend that you make sure your speakers, microphone and camera are properly set up, that you have granted your browser rights to use your microphone and camera, and that your browser version is up-to-date. If you still have trouble calling, you should contact the web application developer.","veryPoorConnection":"We expect your call quality to be really terrible.","videoFreezing":"We expect your video to freeze, turn black, and be pixelated.","videoHighQuality":"We expect your video to have good quality.","videoLowQuality":"We expect your video to have low quality in terms of frame rate and resolution.","videoTearing":"We expect your video to be pixelated or have visual artefacts."},"copyAndShare":"Copy & share meeting link","dialInMeeting":"Dial into the meeting","dialInPin":"Dial into the meeting and enter PIN code:","dialing":"Dialing","doNotShow":"Don\'t show this screen again","errorDialOut":"Could not dial out","errorDialOutDisconnected":"Could not dial out. Disconnected","errorDialOutFailed":"Could not dial out. Call failed","errorDialOutStatus":"Error getting dial out status","errorMissingName":"Please enter your name to join the meeting","errorNoPermissions":"You need to enable microphone and camera access","errorStatusCode":"Error dialing out, status code: {{status}}","errorValidation":"Number validation failed","iWantToDialIn":"I want to dial in","joinAudioByPhone":"Join with phone audio","joinMeeting":"Join meeting","joinWithoutAudio":"Join without audio","initiated":"Call initiated","linkCopied":"Link copied to clipboard","lookGood":"Your microphone is working properly","or":"or","premeeting":"Pre meeting","showScreen":"Enable pre meeting screen","keyboardShortcuts":"Enable Keyboard shortcuts","startWithPhone":"Start with phone audio","screenSharingError":"Screen sharing error:","videoOnlyError":"Video error:","videoTrackError":"Could not create video track.","viewAllNumbers":"view all numbers"},"presenceStatus":{"busy":"Busy","calling":"Calling...","connected":"Connected","connecting":"Connecting...","connecting2":"Connecting*...","disconnected":"Disconnected","expired":"Expired","ignored":"Ignored","initializingCall":"Initializing Call...","invited":"Invited","rejected":"Rejected","ringing":"Ringing..."},"profile":{"avatar":"avatar","setDisplayNameLabel":"Set your display name","setEmailInput":"Enter e-mail","setEmailLabel":"Set your gravatar email","title":"Profile"},"raisedHand":"Would like to speak","recording":{"limitNotificationDescriptionWeb":"Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try {{app}}.","limitNotificationDescriptionNative":"Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try <3>{{app}}.","authDropboxText":"Upload to Dropbox","availableSpace":"Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)","beta":"BETA","busy":"We\'re working on freeing recording resources. Please try again in a few minutes.","busyTitle":"All recorders are currently busy","copyLink":"Copy Link","error":"Recording failed. Please try again.","errorFetchingLink":"Error fetching recording link.","expandedOff":"Recording has stopped","expandedOn":"The meeting is currently being recorded.","expandedPending":"Recording is being started...","failedToStart":"Recording failed to start","fileSharingdescription":"Share recording with meeting participants","linkGenerated":"We have generated a link to your recording.","live":"LIVE","loggedIn":"Logged in as {{userName}}","off":"Recording stopped","offBy":"{{name}} stopped the recording","on":"Recording started","onBy":"{{name}} started the recording","pending":"Preparing to record the meeting...","rec":"REC","serviceDescription":"Your recording will be saved by the recording service","serviceDescriptionCloud":"Cloud recording","serviceName":"Recording service","signIn":"Sign in","signOut":"Sign out","unavailable":"Oops! The {{serviceName}} is currently unavailable. We\'re working on resolving the issue. Please try again later.","unavailableTitle":"Recording unavailable","uploadToCloud":"Upload to the cloud"},"sectionList":{"pullToRefresh":"Pull to refresh"},"security":{"about":"You can add a $t(lockRoomPassword) to your meeting. Participants will need to provide the $t(lockRoomPassword) before they are allowed to join the meeting.","aboutReadOnly":"Moderator participants can add a $t(lockRoomPassword) to the meeting. Participants will need to provide the $t(lockRoomPassword) before they are allowed to join the meeting.","insecureRoomNameWarning":"The room name is unsafe. Unwanted participants may join your conference. Consider securing your meeting using the security button.","securityOptions":"Security options"},"settings":{"calendar":{"about":"The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.","disconnect":"Disconnect","microsoftSignIn":"Sign in with Microsoft","signedIn":"Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.","title":"Calendar"},"desktopShareFramerate":"Desktop sharing frame rate","desktopShareWarning":"You need to restart the screen share for the new settings to take effect.","desktopShareHighFpsWarning":"A higher frame rate for desktop sharing might affect your bandwidth. You need to restart the screen share for the new settings to take effect.","devices":"Devices","followMe":"Everyone follows me","framesPerSecond":"frames-per-second","incomingMessage":"Incoming message","language":"Language","loggedIn":"Logged in as {{name}}","microphones":"Microphones","moderator":"Moderator","more":"More","name":"Name","noDevice":"None","participantJoined":"Participant Joined","participantLeft":"Participant Left","playSounds":"Play sound on","reactions":"Meeting reactions","sameAsSystem":"Same as system ({{label}})","selectAudioOutput":"Audio output","selectCamera":"Camera","selectMic":"Microphone","sounds":"Sounds","speakers":"Speakers","startAudioMuted":"Everyone starts muted","startVideoMuted":"Everyone starts hidden","talkWhileMuted":"Talk while muted","title":"Settings"},"settingsView":{"advanced":"Advanced","alertOk":"OK","alertCancel":"Cancel","alertTitle":"Warning","alertURLText":"The entered server URL is invalid","buildInfoSection":"Build Information","conferenceSection":"Conference","disableCallIntegration":"Disable native call integration","disableP2P":"Disable Peer-To-Peer mode","disableCrashReporting":"Disable crash reporting","disableCrashReportingWarning":"Are you sure you want to disable crash reporting? The setting will be applied after you restart the app.","displayName":"Display name","email":"Email","header":"Settings","profileSection":"Profile","serverURL":"Server URL","showAdvanced":"Show advanced settings","startWithAudioMuted":"Start with audio muted","startWithVideoMuted":"Start with video muted","version":"Version"},"share":{"dialInfoText":"\\n\\n=====\\n\\nJust want to dial in on your phone?\\n\\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\\n{{dialInfoPageUrl}}","mainText":"Click the following link to join the meeting:\\n{{roomUrl}}"},"speaker":"Speaker","speakerStats":{"search":"Search","hours":"{{count}}h","minutes":"{{count}}m","name":"Name","seconds":"{{count}}s","speakerStats":"Speaker Stats","speakerTime":"Speaker Time"},"startupoverlay":{"policyText":" ","genericTitle":"The meeting needs to use your microphone and camera.","title":"{{app}} needs to use your microphone and camera."},"suspendedoverlay":{"rejoinKeyTitle":"Rejoin","text":"Press the Rejoin button to reconnect.","title":"Your video call was interrupted because this computer went to sleep."},"toolbar":{"accessibilityLabel":{"audioOnly":"Toggle audio only","audioRoute":"Select the sound device","boo":"Boo","callQuality":"Manage video quality","cc":"Toggle subtitles","chat":"Open / Close chat","clap":"Clap","document":"Toggle shared document","download":"Download our apps","embedMeeting":"Embed meeting","feedback":"Leave feedback","fullScreen":"Toggle full screen","grantModerator":"Grant Moderator Rights","hangup":"Leave the meeting","help":"Help","invite":"Invite people","kick":"Kick participant","laugh":"Laugh","like":"Thumbs Up","lobbyButton":"Enable/disable lobby mode","localRecording":"Toggle local recording controls","lockRoom":"Toggle meeting password","moreActions":"More actions","moreActionsMenu":"More actions menu","moreOptions":"Show more options","mute":"Mute / Unmute","muteEveryone":"Mute everyone","muteEveryoneElse":"Mute everyone else","muteEveryonesVideo":"Disable everyone\'s video","muteEveryoneElsesVideo":"Disable everyone else\'s video","participants":"Participants","pip":"Toggle Picture-in-Picture mode","privateMessage":"Send private message","profile":"Edit your profile","raiseHand":"Raise / Lower your hand","reactionsMenu":"Open / Close reactions menu","recording":"Toggle recording","remoteMute":"Mute participant","remoteVideoMute":"Disable camera of participant","security":"Security options","Settings":"Toggle settings","shareaudio":"Share audio","sharedvideo":"Toggle YouTube video sharing","shareRoom":"Invite someone","shareYourScreen":"Start / Stop sharing your screen","shortcuts":"Toggle shortcuts","show":"Show on stage","silence":"Silence","speakerStats":"Toggle speaker statistics","surprised":"Surprised","tileView":"Toggle tile view","toggleCamera":"Toggle camera","toggleFilmstrip":"Toggle filmstrip","videomute":"Start / Stop camera","videoblur":"Toggle video blur","selectBackground":"Select Background","expand":"Expand","collapse":"Collapse"},"addPeople":"Add people to your call","audioSettings":"Audio settings","videoSettings":"Video settings","audioOnlyOff":"Disable low bandwidth mode","audioOnlyOn":"Enable low bandwidth mode","audioRoute":"Select the sound device","authenticate":"Authenticate","boo":"Boo","callQuality":"Manage video quality","chat":"Open / Close chat","clap":"Clap","closeChat":"Close chat","closeReactionsMenu":"Close reactions menu","disableReactionSounds":"You can disable reaction sounds for this meeting","documentClose":"Close shared document","documentOpen":"Open shared document","download":"Download our apps","e2ee":"End-to-End Encryption","embedMeeting":"Embed meeting","enterFullScreen":"View full screen","enterTileView":"Enter tile view","exitFullScreen":"Exit full screen","exitTileView":"Exit tile view","feedback":"Leave feedback","hangup":"Leave the meeting","help":"Help","invite":"Invite people","laugh":"Laugh","like":"Thumbs Up","lobbyButtonDisable":"Disable lobby mode","lobbyButtonEnable":"Enable lobby mode","login":"Login","logout":"Logout","lowerYourHand":"Lower your hand","moreActions":"More actions","moreOptions":"More options","mute":"Mute / Unmute","muteEveryone":"Mute everyone","muteEveryonesVideo":"Disable everyone\'s camera","noAudioSignalTitle":"There is no input coming from your mic!","noAudioSignalDesc":"If you did not purposely mute it from system settings or hardware, consider switching the device.","noAudioSignalDescSuggestion":"If you did not purposely mute it from system settings or hardware, consider switching to the suggested device.","noAudioSignalDialInDesc":"You can also dial-in using:","noAudioSignalDialInLinkDesc":"Dial-in numbers","noisyAudioInputTitle":"Your microphone appears to be noisy!","noisyAudioInputDesc":"It sounds like your microphone is making noise, please consider muting or changing the device.","openChat":"Open chat","openReactionsMenu":"Open reactions menu","participants":"Participants","pip":"Enter Picture-in-Picture mode","privateMessage":"Send private message","profile":"Edit your profile","raiseHand":"Raise / Lower your hand","raiseYourHand":"Raise your hand","reactionBoo":"Send boo reaction","reactionClap":"Send clap reaction","reactionLaugh":"Send laugh reaction","reactionLike":"Send thumbs up reaction","reactionSilence":"Send silence reaction","reactionSurprised":"Send surprised reaction","security":"Security options","Settings":"Settings","shareaudio":"Share audio","sharedvideo":"Share video","shareRoom":"Invite someone","shortcuts":"View shortcuts","silence":"Silence","speakerStats":"Speaker stats","startScreenSharing":"Start screen sharing","startSubtitles":"Start subtitles","stopAudioSharing":"Stop audio sharing","stopScreenSharing":"Stop screen sharing","stopSubtitles":"Stop subtitles","stopSharedVideo":"Stop video","surprised":"Surprised","talkWhileMutedPopup":"Trying to speak? You are muted.","tileViewToggle":"Toggle tile view","toggleCamera":"Toggle camera","videomute":"Start / Stop camera","selectBackground":"Select background"},"transcribing":{"ccButtonTooltip":"Start / Stop subtitles","error":"Transcribing failed. Please try again.","expandedLabel":"Transcribing is currently on","failedToStart":"Transcribing failed to start","labelToolTip":"The meeting is being transcribed","off":"Transcribing stopped","pending":"Preparing to transcribe the meeting...","start":"Start showing subtitles","stop":"Stop showing subtitles","tr":"TR"},"userMedia":{"androidGrantPermissions":"Select Allow when your browser asks for permissions.","chromeGrantPermissions":"Select Allow when your browser asks for permissions.","edgeGrantPermissions":"Select Yes when your browser asks for permissions.","electronGrantPermissions":"Trying to access your camera and microphone","firefoxGrantPermissions":"Select Share Selected Device when your browser asks for permissions.","iexplorerGrantPermissions":"Select OK when your browser asks for permissions.","nwjsGrantPermissions":"Please grant permissions to use your camera and microphone","operaGrantPermissions":"Select Allow when your browser asks for permissions.","react-nativeGrantPermissions":"Select Allow when your browser asks for permissions.","safariGrantPermissions":"Select OK when your browser asks for permissions."},"volumeSlider":"Volume slider","videoSIPGW":{"busy":"We\'re working on freeing resources. Please try again in a few minutes.","busyTitle":"The Room service is currently busy","errorAlreadyInvited":"{{displayName}} already invited","errorInvite":"Conference not established yet. Please try again later.","errorInviteFailed":"We\'re working on resolving the issue. Please try again later.","errorInviteFailedTitle":"Inviting {{displayName}} failed","errorInviteTitle":"Error inviting room","pending":"{{displayName}} has been invited"},"videoStatus":{"audioOnly":"AUD","audioOnlyExpanded":"You are in low bandwidth mode. In this mode you will receive only audio and screen sharing.","callQuality":"Video Quality","hd":"HD","hdTooltip":"Viewing high definition video","highDefinition":"High definition","labelTooiltipNoVideo":"No video","labelTooltipAudioOnly":"Low bandwidth mode enabled","ld":"LD","ldTooltip":"Viewing low definition video","lowDefinition":"Low definition","sd":"SD","sdTooltip":"Viewing standard definition video","standardDefinition":"Standard definition"},"videothumbnail":{"connectionInfo":"Connection Info","domute":"Mute","domuteVideo":"Disable camera","domuteOthers":"Mute everyone else","domuteVideoOfOthers":"Disable camera of everyone else","flip":"Flip","grantModerator":"Grant Moderator Rights","kick":"Kick out","moderator":"Moderator","mute":"Participant is muted","muted":"Muted","videoMuted":"Camera disabled","remoteControl":"Start / Stop remote control","show":"Show on stage","videomute":"Participant has stopped the camera"},"welcomepage":{"addMeetingName":"Add Meeting name","accessibilityLabel":{"join":"Tap to join","roomname":"Enter room name"},"appDescription":"Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.","audioVideoSwitch":{"audio":"Voice","video":"Video"},"calendar":"Calendar","connectCalendarButton":"Connect your calendar","connectCalendarText":"Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.","enterRoomTitle":"Start a new meeting","getHelp":"Get help","go":"GO","goSmall":"GO","headerTitle":"Jitsi Meet","headerSubtitle":"Secure and high quality meetings","info":"Dial-in info","join":"CREATE / JOIN","jitsiOnMobile":"Jitsi on mobile – download our apps and start a meeting from anywhere","mobileDownLoadLinkIos":"Download mobile app for iOS","mobileDownLoadLinkAndroid":"Download mobile app for Android","mobileDownLoadLinkFDroid":"Download mobile app for F-Droid","moderatedMessage":"Or book a meeting URL in advance where you are the only moderator.","privacy":"Privacy","recentList":"Recent","recentListDelete":"Delete entry","recentListEmpty":"Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.","reducedUIText":"Welcome to {{app}}!","roomNameAllowedChars":"Meeting name should not contain any of these characters: ?, &, :, \', \\", %, #.","roomname":"Enter room name","roomnameHint":"Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.","sendFeedback":"Send feedback","startMeeting":"Start meeting","terms":"Terms","title":"Secure, fully featured, and completely free video conferencing","logo":{"calendar":"Calendar logo","microsoftLogo":"Microsoft logo","logoDeepLinking":"Jitsi meet logo","desktopPreviewThumbnail":"Desktop preview thumbnail","googleLogo":"Google Logo","policyLogo":"Policy logo"}},"lonelyMeetingExperience":{"button":"Invite others","youAreAlone":"You are the only one in the meeting"},"helpView":{"header":"Help center"},"lobby":{"admit":"Admit","admitAll":"Admit all","knockingParticipantList":"Knocking participant list","allow":"Allow","backToKnockModeButton":"Ask to join","dialogTitle":"Lobby mode","disableDialogContent":"Lobby mode is currently enabled. This feature ensures that unwanted participants can\'t join your meeting. Do you want to disable it?","disableDialogSubmit":"Disable","emailField":"Enter your email address","enableDialogPasswordField":"Set password (optional)","enableDialogSubmit":"Enable","enableDialogText":"Lobby mode lets you protect your meeting by only allowing people to enter after a formal approval by a moderator.","enterPasswordButton":"Enter meeting password","enterPasswordTitle":"Enter password to join meeting","errorMissingPassword":"Please enter the meeting password","invalidPassword":"Invalid password","joiningMessage":"You\'ll join the meeting as soon as someone accepts your request","joinWithPasswordMessage":"Trying to join with password, please wait...","joinRejectedMessage":"Your join request was rejected by a moderator.","joinTitle":"Join Meeting","joiningTitle":"Asking to join meeting...","joiningWithPasswordTitle":"Joining with password...","knockButton":"Ask to Join","knockTitle":"Someone wants to join the meeting","nameField":"Enter your name","notificationLobbyAccessDenied":"{{targetParticipantName}} has been rejected to join by {{originParticipantName}}","notificationLobbyAccessGranted":"{{targetParticipantName}} has been allowed to join by {{originParticipantName}}","notificationLobbyDisabled":"Lobby has been disabled by {{originParticipantName}}","notificationLobbyEnabled":"Lobby has been enabled by {{originParticipantName}}","notificationTitle":"Lobby","passwordField":"Enter meeting password","passwordJoinButton":"Join","reject":"Reject","rejectAll":"Reject all","toggleLabel":"Enable lobby"}}'); - var Ei = n(8726), - xi = n.n(Ei); - const Ci = { + oi.type = "backend"; + const si = oi, + li = JSON.parse('{"en":"English","af":"Afrikaans","ar":"Arabic","bg":"Bulgarian","ca":"Catalan","cs":"Czech","da":"Danish","de":"German","el":"Greek","enGB":"English (United Kingdom)","eo":"Esperanto","es":"Spanish","esUS":"Spanish (Latin America)","et":"Estonian","eu":"Basque","fi":"Finnish","fr":"French","frCA":"French (Canadian)","he":"Hebrew","hi":"Hindi","mr":"Marathi","hr":"Croatian","hu":"Hungarian","hy":"Armenian","id":"Indonesian","it":"Italian","ja":"Japanese","kab":"Kabyle","ko":"Korean","lt":"Lithuanian","ml":"Malayalam","lv":"Latvian","nl":"Dutch","oc":"Occitan","fa":"Persian","pl":"Polish","pt":"Portuguese","ptBR":"Portuguese (Brazil)","ru":"Russian","ro":"Romanian","sc":"Sardinian","sk":"Slovak","sl":"Slovenian","sr":"Serbian","sq":"Albanian","sv":"Swedish","te":"Telugu","th":"Thai","tr":"Turkish","uk":"Ukrainian","vi":"Vietnamese","zhCN":"Chinese (China)","zhTW":"Chinese (Taiwan)"}'), + ci = JSON.parse('{"addPeople":{"add":"Invite","addContacts":"Invite your contacts","copyInvite":"Copy meeting invitation","copyLink":"Copy meeting link","copyStream":"Copy live streaming link","contacts":"contacts","countryNotSupported":"We do not support this destination yet.","countryReminder":"Calling outside the US? Please make sure you start with the country code!","defaultEmail":"Your Default Email","disabled":"You can\'t invite people.","failedToAdd":"Failed to add participants","footerText":"Dialing out is disabled.","googleEmail":"Google Email","inviteMoreHeader":"You are the only one in the meeting","inviteMoreMailSubject":"Join {{appName}} meeting","inviteMorePrompt":"Invite more people","linkCopied":"Link copied to clipboard","noResults":"No matching search results","outlookEmail":"Outlook Email","phoneNumbers":"phone numbers","searching":"Searching...","shareInvite":"Share meeting invitation","shareLink":"Share the meeting link to invite others","shareStream":"Share the live streaming link","sipAddresses":"sip addresses","telephone":"Telephone: {{number}}","title":"Invite people to this meeting","yahooEmail":"Yahoo Email"},"audioDevices":{"bluetooth":"Bluetooth","headphones":"Headphones","phone":"Phone","speaker":"Speaker","none":"No audio devices available"},"audioOnly":{"audioOnly":"Low bandwidth"},"blankPage":{"meetingEnded":"Meeting ended."},"breakoutRooms":{"defaultName":"Breakout room #{{index}}","mainRoom":"Main room","actions":{"add":"Add breakout room","autoAssign":"Auto assign to breakout rooms","close":"Close","join":"Join","leaveBreakoutRoom":"Leave breakout room","more":"More","remove":"Remove","sendToBreakoutRoom":"Send participant to:"},"notifications":{"joinedTitle":"Breakout Rooms","joined":"Joining the \\"{{name}}\\" breakout room","joinedMainRoom":"Joining the main room"}},"calendarSync":{"addMeetingURL":"Add a meeting link","confirmAddLink":"Do you want to add a Jitsi link to this event?","error":{"appConfiguration":"Calendar integration is not properly configured.","generic":"An error has occurred. Please check your calendar settings or try refreshing the calendar.","notSignedIn":"An error occurred while authenticating to see calendar events. Please check your calendar settings and try logging in again."},"join":"Join","joinTooltip":"Join the meeting","nextMeeting":"next meeting","noEvents":"There are no upcoming events scheduled.","ongoingMeeting":"ongoing meeting","permissionButton":"Open settings","permissionMessage":"The Calendar permission is required to see your meetings in the app.","refresh":"Refresh calendar","today":"Today"},"chat":{"enter":"Enter room","error":"Error: your message was not sent. Reason: {{error}}","fieldPlaceHolder":"Type your message here","messagebox":"Type a message","messageTo":"Private message to {{recipient}}","noMessagesMessage":"There are no messages in the meeting yet. Start a conversation here!","nickname":{"popover":"Choose a nickname","title":"Enter a nickname to use chat","titleWithPolls":"Enter a nickname to use chat and polls"},"privateNotice":"Private message to {{recipient}}","message":"Message","messageAccessibleTitle":"{{user}} says:","messageAccessibleTitleMe":"me says:","smileysPanel":"Emoji panel","tabs":{"chat":"Chat","polls":"Polls"},"title":"Chat","titleWithPolls":"Chat and Polls","you":"you"},"chromeExtensionBanner":{"installExtensionText":"Install the extension for Google Calendar and Office 365 integration","buttonText":"Install Chrome Extension","dontShowAgain":"Don’t show me this again","close":"Close"},"connectingOverlay":{"joiningRoom":"Connecting you to your meeting..."},"connection":{"ATTACHED":"Attached","AUTHENTICATING":"Authenticating","AUTHFAIL":"Authentication failed","CONNECTED":"Connected","CONNECTING":"Connecting","CONNFAIL":"Connection failed","DISCONNECTED":"Disconnected","DISCONNECTING":"Disconnecting","ERROR":"Error","FETCH_SESSION_ID":"Obtaining session-id...","GET_SESSION_ID_ERROR":"Get session-id error: {{code}}","GOT_SESSION_ID":"Obtaining session-id... Done","LOW_BANDWIDTH":"Video for {{displayName}} has been turned off to save bandwidth"},"connectionindicator":{"address":"Address:","audio_ssrc":"Audio SSRC:","bandwidth":"Estimated bandwidth:","bitrate":"Bitrate:","bridgeCount":"Server count: ","codecs":"Codecs (A/V): ","connectedTo":"Connected to:","e2e_rtt":"E2E RTT:","framerate":"Frame rate:","less":"Show less","localaddress":"Local address:","localaddress_plural":"Local addresses:","localport":"Local port:","localport_plural":"Local ports:","maxEnabledResolution":"send max","more":"Show more","packetloss":"Packet loss:","quality":{"good":"Good","inactive":"Inactive","lost":"Lost","nonoptimal":"Nonoptimal","poor":"Poor"},"remoteaddress":"Remote address:","remoteaddress_plural":"Remote addresses:","remoteport":"Remote port:","remoteport_plural":"Remote ports:","resolution":"Resolution:","savelogs":"Save logs","participant_id":"Participant id:","status":"Connection:","transport":"Transport:","transport_plural":"Transports:","video_ssrc":"Video SSRC:"},"dateUtils":{"earlier":"Earlier","today":"Today","yesterday":"Yesterday"},"deepLinking":{"appNotInstalled":"You need the {{app}} mobile app to join this meeting on your phone.","description":"Nothing happened? We tried launching your meeting in the {{app}} desktop app. Try again or launch it in the {{app}} web app.","descriptionWithoutWeb":"Nothing happened? We tried launching your meeting in the {{app}} desktop app.","downloadApp":"Download the app","ifDoNotHaveApp":"If you don\'t have the app yet:","ifHaveApp":"If you already have the app:","joinInApp":"Join this meeting using the app","launchWebButton":"Launch in web","title":"Launching your meeting in {{app}}...","tryAgainButton":"Try again in desktop","unsupportedBrowser":"It looks like you\'re using a browser we don\'t support."},"defaultLink":"e.g. {{url}}","defaultNickname":"ex. Jane Pink","deviceError":{"cameraError":"Failed to access your camera","cameraPermission":"Error obtaining camera permission","microphoneError":"Failed to access your microphone","microphonePermission":"Error obtaining microphone permission"},"deviceSelection":{"noPermission":"Permission not granted","previewUnavailable":"Preview unavailable","selectADevice":"Select a device","testAudio":"Play a test sound"},"dialog":{"accessibilityLabel":{"liveStreaming":"Live Stream"},"add":"Add","allow":"Allow","alreadySharedVideoMsg":"Another participant is already sharing a video. This conference allows only one shared video at a time.","alreadySharedVideoTitle":"Only one shared video is allowed at a time","applicationWindow":"Application window","authenticationRequired":"Authentication required","Back":"Back","cameraConstraintFailedError":"Your camera does not satisfy some of the required constraints.","cameraNotFoundError":"Camera was not found.","cameraNotSendingData":"We are unable to access your camera. Please check if another application is using this device, select another device from the settings menu or try to reload the application.","cameraNotSendingDataTitle":"Unable to access camera","cameraPermissionDeniedError":"You have not granted permission to use your camera. You can still join the conference but others won\'t see you. Use the camera button in the address bar to fix this.","cameraTimeoutError":"Could not start video source. Timeout occured!","cameraUnknownError":"Cannot use camera for an unknown reason.","cameraUnsupportedResolutionError":"Your camera does not support required video resolution.","Cancel":"Cancel","close":"Close","conferenceDisconnectMsg":"You may want to check your network connection. Reconnecting in {{seconds}} sec...","conferenceDisconnectTitle":"You have been disconnected.","conferenceReloadMsg":"We\'re trying to fix this. Reconnecting in {{seconds}} sec...","conferenceReloadTitle":"Unfortunately, something went wrong.","confirm":"Confirm","confirmNo":"No","confirmYes":"Yes","connectError":"Oops! Something went wrong and we couldn\'t connect to the conference.","connectErrorWithMsg":"Oops! Something went wrong and we couldn\'t connect to the conference: {{msg}}","connecting":"Connecting","contactSupport":"Contact support","copied":"Copied","copy":"Copy","dismiss":"Dismiss","displayNameRequired":"Hi! What’s your name?","done":"Done","e2eeDescription":"End-to-End Encryption is currently EXPERIMENTAL. Please keep in mind that turning on end-to-end encryption will effectively disable server-side provided services such as: phone participation. Also keep in mind that the meeting will only work for people joining from browsers with support for insertable streams.","e2eeLabel":"Enable End-to-End Encryption","e2eeDisabledDueToMaxModeDescription":"Cannot enable End-to-End Encryption due to large number of participants in the conference.","e2eeWarning":"WARNING: Not all participants in this meeting seem to have support for End-to-End encryption. If you enable it they won\'t be able to see nor hear you.","e2eeWillDisableDueToMaxModeDescription":"WARNING: End-to-End Encryption will be automatically disabled if more participants join the conference.","enterDisplayName":"Enter your name here","embedMeeting":"Embed meeting","error":"Error","gracefulShutdown":"Our service is currently down for maintenance. Please try again later.","grantModeratorDialog":"Are you sure you want to grant moderator rights to {{participantName}}?","grantModeratorTitle":"Grant moderator rights","hideShareAudioHelper":"Don\'t show this dialog again","IamHost":"I am the host","incorrectRoomLockPassword":"Incorrect password","incorrectPassword":"Incorrect username or password","internalError":"Oops! Something went wrong. The following error occurred: {{error}}","internalErrorTitle":"Internal error","kickMessage":"You can contact {{participantDisplayName}} for more details.","kickParticipantButton":"Kick","kickParticipantDialog":"Are you sure you want to kick this participant?","kickParticipantTitle":"Kick this participant?","kickTitle":"Ouch! {{participantDisplayName}} kicked you out of the meeting","liveStreaming":"Live Streaming","liveStreamingDisabledBecauseOfActiveRecordingTooltip":"Not possible while recording is active","liveStreamingDisabledTooltip":"Start live stream disabled.","lockMessage":"Failed to lock the conference.","lockRoom":"Add meeting $t(lockRoomPassword)","lockTitle":"Lock failed","logoutQuestion":"Are you sure you want to logout and stop the conference?","login":"Login","logoutTitle":"Logout","maxUsersLimitReached":"The limit for maximum number of participants has been reached. The conference is full. Please contact the meeting owner or try again later!","maxUsersLimitReachedTitle":"Maximum participants limit reached","micConstraintFailedError":"Your microphone does not satisfy some of the required constraints.","micNotFoundError":"Microphone was not found.","micNotSendingData":"Go to your computer\'s settings to unmute your mic and adjust its level","micNotSendingDataTitle":"Your mic is muted by your system settings","micPermissionDeniedError":"You have not granted permission to use your microphone. You can still join the conference but others won\'t hear you. Use the camera button in the address bar to fix this.","micTimeoutError":"Could not start audio source. Timeout occured!","micUnknownError":"Cannot use microphone for an unknown reason.","moderationAudioLabel":"Allow attendees to unmute themselves","moderationVideoLabel":"Allow attendees to start their video","muteEveryoneElseDialog":"Once muted, you won\'t be able to unmute them, but they can unmute themselves at any time.","muteEveryoneElseTitle":"Mute everyone except {{whom}}?","muteEveryoneDialog":"The participants can unmute themselves at any time.","muteEveryoneDialogModerationOn":"The participants can send a request to speak at any time.","muteEveryoneTitle":"Mute everyone?","muteEveryoneElsesVideoDialog":"Once the camera is disabled, you won\'t be able to turn it back on, but they can turn it back on at any time.","muteEveryoneElsesVideoTitle":"Stop everyone\'s video except {{whom}}?","muteEveryonesVideoDialog":"The participants can turn on their video at any time.","muteEveryonesVideoDialogModerationOn":"The participants can send a request to turn on their video at any time.","muteEveryonesVideoDialogOk":"Disable","muteEveryonesVideoTitle":"Stop everyone\'s video?","muteEveryoneSelf":"yourself","muteEveryoneStartMuted":"Everyone starts muted from now on","muteParticipantBody":"You won\'t be able to unmute them, but they can unmute themselves at any time.","muteParticipantButton":"Mute","muteParticipantsVideoDialog":"Are you sure you want to turn off this participant\'s camera? You won\'t be able to turn the camera back on, but they can turn it back on at any time.","muteParticipantsVideoDialogModerationOn":"Are you sure you want to turn off this participant\'s camera? You won\'t be able to turn the camera back on and neither will they.","muteParticipantsVideoButton":"Stop video","muteParticipantsVideoTitle":"Disable camera of this participant?","muteParticipantsVideoBody":"You won\'t be able to turn the camera back on, but they can turn it back on at any time.","muteParticipantsVideoBodyModerationOn":"You won\'t be able to turn the camera back on and neither will they.","noDropboxToken":"No valid Dropbox token","Ok":"OK","password":"Password","passwordLabel":"The meeting has been locked by a participant. Please enter the $t(lockRoomPassword) to join.","passwordNotSupported":"Setting a meeting $t(lockRoomPassword) is not supported.","passwordNotSupportedTitle":"$t(lockRoomPasswordUppercase) not supported","passwordRequired":"$t(lockRoomPasswordUppercase) required","permissionErrorTitle":"Permission required","permissionCameraRequiredError":"Camera permission is required to participate in conferences with video. Please grant it in Settings","permissionMicRequiredError":"Microphone permission is required to participate in conferences with audio. Please grant it in Settings","popupError":"Your browser is blocking pop-up windows from this site. Please enable pop-ups in your browser\'s security settings and try again.","popupErrorTitle":"Pop-up blocked","readMore":"more","recording":"Recording","recordingDisabledBecauseOfActiveLiveStreamingTooltip":"Not possible while a live stream is active","recordingDisabledTooltip":"Start recording disabled.","rejoinNow":"Rejoin now","remoteControlAllowedMessage":"{{user}} accepted your remote control request!","remoteControlDeniedMessage":"{{user}} rejected your remote control request!","remoteControlErrorMessage":"An error occurred while trying to request remote control permissions from {{user}}!","remoteControlRequestMessage":"Will you allow {{user}} to remotely control your desktop?","remoteControlShareScreenWarning":"Note that if you press \\"Allow\\" you will share your screen!","remoteControlStopMessage":"The remote control session ended!","remoteControlTitle":"Remote desktop control","Remove":"Remove","removePassword":"Remove $t(lockRoomPassword)","removeSharedVideoMsg":"Are you sure you would like to remove your shared video?","removeSharedVideoTitle":"Remove shared video","reservationError":"Reservation system error","reservationErrorMsg":"Error code: {{code}}, message: {{msg}}","retry":"Retry","screenSharingAudio":"Share audio","screenSharingFailed":"Oops! Something went wrong, we weren’t able to start screen sharing!","screenSharingFailedTitle":"Screen sharing failed!","screenSharingPermissionDeniedError":"Oops! Something went wrong with your screen sharing permissions. Please reload and try again.","sendPrivateMessage":"You recently received a private message. Did you intend to reply to that privately, or you want to send your message to the group?","sendPrivateMessageCancel":"Send to the group","sendPrivateMessageOk":"Send privately","sendPrivateMessageTitle":"Send privately?","serviceUnavailable":"Service unavailable","sessTerminated":"Call terminated","sessionRestarted":"Call restarted because of a connection issue.","Share":"Share","shareAudio":"Continue","shareAudioTitle":"How to share audio","shareAudioWarningTitle":"You need to stop screen sharing before sharing audio","shareAudioWarningH1":"If you want to share just audio:","shareAudioWarningD1":"you need to stop screen sharing before sharing your audio.","shareAudioWarningD2":"you need to restart your screen sharing and check the \\"share audio\\" option.","shareMediaWarningGenericH2":"If you want to share your screen and audio","shareVideoLinkError":"Please provide a correct video link.","shareVideoTitle":"Share video","shareYourScreen":"Share your screen","shareYourScreenDisabled":"Screen sharing disabled.","startLiveStreaming":"Start live stream","startRecording":"Start recording","startRemoteControlErrorMessage":"An error occurred while trying to start the remote control session!","shareScreenWarningTitle":"You need to stop audio sharing before sharing your screen","shareScreenWarningH1":"If you want to share just your screen:","shareScreenWarningD1":"you need to stop audio sharing before sharing your screen.","shareScreenWarningD2":"you need to stop audio sharing, start screen sharing and check the \\"share audio\\" option.","sharedVideoLinkPlaceholder":"YouTube link or direct video link","stopLiveStreaming":"Stop live stream","stopRecording":"Stop recording","stopRecordingWarning":"Are you sure you would like to stop the recording?","stopStreamingWarning":"Are you sure you would like to stop the live streaming?","streamKey":"Live stream key","Submit":"Submit","thankYou":"Thank you for using {{appName}}!","token":"token","tokenAuthFailed":"Sorry, you\'re not allowed to join this call.","tokenAuthFailedTitle":"Authentication failed","transcribing":"Transcribing","unlockRoom":"Remove meeting $t(lockRoomPassword)","user":"User","userIdentifier":"User identifier","userPassword":"User password","videoLink":"Video link","viewUpgradeOptions":"View upgrade options","viewUpgradeOptionsContent":"To get unlimited access to premium features like recording, transcriptions, RTMP Streaming & more, you\'ll need to upgrade your plan.","viewUpgradeOptionsTitle":"You discovered a premium feature!","WaitForHostMsg":"The conference {{room}} has not yet started. If you are the host then please authenticate. Otherwise, please wait for the host to arrive.","WaitForHostMsgWOk":"The conference {{room}} has not yet started. If you are the host then please press Ok to authenticate. Otherwise, please wait for the host to arrive.","WaitingForHostTitle":"Waiting for the host ...","Yes":"Yes","yourEntireScreen":"Your entire screen","remoteUserControls":"Remote user controls of {{username}}","localUserControls":"Local user controls"},"dialOut":{"statusMessage":"is now {{status}}"},"documentSharing":{"title":"Shared Document"},"e2ee":{"labelToolTip":"Audio and Video Communication on this call is end-to-end encrypted"},"embedMeeting":{"title":"Embed this meeting"},"virtualBackground":{"apply":"Apply","title":"Virtual backgrounds","blur":"Blur","slightBlur":"Slight Blur","removeBackground":"Remove background","addBackground":"Add background","pleaseWait":"Please wait...","none":"None","uploadedImage":"Uploaded image {{index}}","deleteImage":"Delete image","image1":"Beach","image2":"White neutral wall","image3":"White empty room","image4":"Black floor lamp","image5":"Mountain","image6":"Forest ","image7":"Sunrise","desktopShareError":"Could not create desktop share","desktopShare":"Desktop share","webAssemblyWarning":"WebAssembly not supported","webAssemblyWarningDescription":"WebAssembly disabled or not supported by this browser","backgroundEffectError":"Failed to apply background effect."},"feedback":{"average":"Average","bad":"Bad","detailsLabel":"Tell us more about it.","good":"Good","rateExperience":"Rate your meeting experience","veryBad":"Very Bad","veryGood":"Very Good","star":"Star"},"incomingCall":{"answer":"Answer","audioCallTitle":"Incoming call","decline":"Dismiss","productLabel":"from Jitsi Meet","videoCallTitle":"Incoming video call"},"info":{"accessibilityLabel":"Show info","addPassword":"Add $t(lockRoomPassword)","cancelPassword":"Cancel $t(lockRoomPassword)","conferenceURL":"Link:","country":"Country","dialANumber":"To join your meeting, dial one of these numbers and then enter the pin.","dialInConferenceID":"PIN:","copyNumber":"Copy number","dialInNotSupported":"Sorry, dialing in is currently not supported.","dialInNumber":"Dial-in:","dialInSummaryError":"Error fetching dial-in info now. Please try again later.","dialInTollFree":"Toll Free","genericError":"Whoops, something went wrong.","inviteLiveStream":"To view the live stream of this meeting, click this link: {{url}}","invitePhone":"To join by phone instead, tap this: {{number}},,{{conferenceID}}#\\n","invitePhoneAlternatives":"Looking for a different dial-in number?\\nSee meeting dial-in numbers: {{url}}\\n\\n\\nIf also dialing-in through a room phone, join without connecting to audio: {{silentUrl}}","inviteSipEndpoint":"To join using the SIP address, enter this: {{sipUri}}","inviteTextiOSPersonal":"{{name}} is inviting you to a meeting.","inviteTextiOSJoinSilent":"If you are dialing-in through a room phone, use this link to join without connecting to audio: {{silentUrl}}.","inviteTextiOSInviteUrl":"Click the following link to join: {{inviteUrl}}.","inviteTextiOSPhone":"To join via phone, use this number: {{number}},,{{conferenceID}}#. If you are looking for a different number, this is the full list: {{didUrl}}.","inviteURLFirstPartGeneral":"You are invited to join a meeting.","inviteURLFirstPartPersonal":"{{name}} is inviting you to a meeting.\\n","inviteURLSecondPart":"\\nJoin the meeting:\\n{{url}}\\n","liveStreamURL":"Live stream:","moreNumbers":"More numbers","noNumbers":"No dial-in numbers.","noPassword":"None","noRoom":"No room was specified to dial-in into.","numbers":"Dial-in Numbers","password":"$t(lockRoomPasswordUppercase):","sip":"SIP address","title":"Share","tooltip":"Share link and dial-in info for this meeting","label":"Dial-in info"},"inviteDialog":{"alertText":"Failed to invite some participants.","header":"Invite","searchCallOnlyPlaceholder":"Enter phone number","searchPeopleOnlyPlaceholder":"Search for participants","searchPlaceholder":"Participant or phone number","send":"Send"},"inlineDialogFailure":{"msg":"We stumbled a bit.","retry":"Try again","support":"Support","supportMsg":"If this keeps happening, reach out to"},"jitsiHome":"{{logo}} Logo, links to Homepage","keyboardShortcuts":{"focusLocal":"Focus on your video","focusRemote":"Focus on another person\'s video","fullScreen":"View or exit full screen","keyboardShortcuts":"Keyboard shortcuts","localRecording":"Show or hide local recording controls","mute":"Mute or unmute your microphone","pushToTalk":"Push to talk","raiseHand":"Raise or lower your hand","showSpeakerStats":"Show speaker stats","toggleChat":"Open or close the chat","toggleFilmstrip":"Show or hide video thumbnails","toggleParticipantsPane":"Show or hide the participants pane","toggleScreensharing":"Switch between camera and screen sharing","toggleShortcuts":"Show or hide keyboard shortcuts","videoMute":"Start or stop your camera"},"liveStreaming":{"limitNotificationDescriptionWeb":"Due to high demand your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.","limitNotificationDescriptionNative":"Your streaming will be limited to {{limit}} min. For unlimited streaming try {{app}}.","busy":"We\'re working on freeing streaming resources. Please try again in a few minutes.","busyTitle":"All streamers are currently busy","changeSignIn":"Switch accounts.","choose":"Choose a live stream","chooseCTA":"Choose a streaming option. You\'re currently logged in as {{email}}.","enterStreamKey":"Enter your YouTube live stream key here.","error":"Live Streaming failed. Please try again.","errorAPI":"An error occurred while accessing your YouTube broadcasts. Please try logging in again.","errorLiveStreamNotEnabled":"Live Streaming is not enabled on {{email}}. Please enable live streaming or log into an account with live streaming enabled.","expandedOff":"The live streaming has stopped","expandedOn":"The meeting is currently being streamed to YouTube.","expandedPending":"The live streaming is being started...","failedToStart":"Live Streaming failed to start","getStreamKeyManually":"We weren’t able to fetch any live streams. Try getting your live stream key from YouTube.","inProgress":"Recording or live streaming in progress","invalidStreamKey":"Live stream key may be incorrect.","off":"Live Streaming stopped","offBy":"{{name}} stopped the live streaming","on":"Live Streaming started","onBy":"{{name}} started the live streaming","pending":"Starting Live Stream...","serviceName":"Live Streaming service","sessionAlreadyActive":"This session is already being recorded or live streamed.","signedInAs":"You are currently signed in as:","signIn":"Sign in with Google","signInCTA":"Sign in or enter your live stream key from YouTube.","signOut":"Sign out","start":"Start a live stream","streamIdHelp":"What\'s this?","unavailableTitle":"Live Streaming unavailable","youtubeTerms":"YouTube terms of services","googlePrivacyPolicy":"Google Privacy Policy"},"localRecording":{"clientState":{"off":"Off","on":"On","unknown":"Unknown"},"dialogTitle":"Local Recording Controls","duration":"Duration","durationNA":"N/A","encoding":"Encoding","label":"LOR","labelToolTip":"Local recording is engaged","localRecording":"Local Recording","me":"Me","messages":{"engaged":"Local recording engaged.","finished":"Recording session {{token}} finished. Please send the recorded file to the moderator.","finishedModerator":"Recording session {{token}} finished. The recording of the local track has been saved. Please ask the other participants to submit their recordings.","notModerator":"You are not the moderator. You cannot start or stop local recording."},"moderator":"Moderator","no":"No","participant":"Participant","participantStats":"Participant Stats","sessionToken":"Session Token","start":"Start Recording","stop":"Stop Recording","yes":"Yes"},"lockRoomPassword":"password","lockRoomPasswordUppercase":"Password","me":"me","notify":{"allowAction":"Allow","allowedUnmute":"You can unmute your microphone, start your camera or share your screen.","audioUnmuteBlockedTitle":"Mic unmute blocked!","audioUnmuteBlockedDescription":"Mic unmute operation has been temporarily blocked because of system limits.","connectedOneMember":"{{name}} joined the meeting","connectedThreePlusMembers":"{{name}} and many others joined the meeting","connectedTwoMembers":"{{first}} and {{second}} joined the meeting","disconnected":"disconnected","focus":"Conference focus","focusFail":"{{component}} not available - retry in {{ms}} sec","hostAskedUnmute":"The moderator would like you to speak","invitedOneMember":"{{name}} has been invited","invitedThreePlusMembers":"{{name}} and {{count}} others have been invited","invitedTwoMembers":"{{first}} and {{second}} have been invited","kickParticipant":"{{kicked}} was kicked by {{kicker}}","leftOneMember":"{{name}} left the meeting","leftThreePlusMembers":"{{name}} and many others left the meeting","leftTwoMembers":"{{first}} and {{second}} left the meeting","me":"Me","moderator":"You\'re now a moderator","muted":"You have started the conversation muted.","mutedTitle":"You\'re muted!","mutedRemotelyTitle":"You\'ve been muted by {{participantDisplayName}}","mutedRemotelyDescription":"You can always unmute when you\'re ready to speak. Mute back when you\'re done to keep noise away from the meeting.","videoMutedRemotelyTitle":"Your video has been turned off by {{participantDisplayName}}","videoMutedRemotelyDescription":"You can always turn it on again.","passwordRemovedRemotely":"$t(lockRoomPasswordUppercase) removed by another participant","passwordSetRemotely":"$t(lockRoomPasswordUppercase) set by another participant","raisedHand":"Would like to speak.","raisedHands":"{{participantName}} and {{raisedHands}} more people","screenShareNoAudio":" Share audio box was not checked in the window selection screen.","screenShareNoAudioTitle":"Couldn\'t share system audio!","selfViewTitle":"You can always un-hide the self-view from settings","somebody":"Somebody","startSilentTitle":"You joined with no audio output!","startSilentDescription":"Rejoin the meeting to enable audio","suboptimalBrowserWarning":"We are afraid your meeting experience isn\'t going to be that great here. We are looking for ways to improve this, but until then please try using one of the fully supported browsers.","suboptimalExperienceTitle":"Browser Warning","unmute":"Unmute","newDeviceCameraTitle":"New camera detected","newDeviceAudioTitle":"New audio device detected","newDeviceAction":"Use","OldElectronAPPTitle":"Security vulnerability!","oldElectronClientDescription1":"You appear to be using an old version of the Jitsi Meet client which has known security vulnerabilities. Please make sure you update to our ","oldElectronClientDescription2":"latest build","oldElectronClientDescription3":" now!","moderationInEffectDescription":"Please raise hand if you want to speak.","moderationInEffectCSDescription":"Please raise hand if you want to share your screen.","moderationInEffectVideoDescription":"Please raise your hand if you want to start your camera.","moderationInEffectTitle":"Your microphone is muted by the moderator","moderationInEffectCSTitle":"Screen sharing is blocked by the moderator","moderationInEffectVideoTitle":"Your camera is blocked by the moderator","moderationRequestFromModerator":"The host would like you to unmute","moderationRequestFromParticipant":"Wants to speak","moderationStartedTitle":"Moderation started","moderationStoppedTitle":"Moderation stopped","moderationToggleDescription":"by {{participantDisplayName}}","raiseHandAction":"Raise hand","reactionSounds":"Disable sounds","reactionSoundsForAll":"Disable sounds for all","groupTitle":"Notifications","videoUnmuteBlockedTitle":"Camera unmute blocked!","videoUnmuteBlockedDescription":"Camera unmute operation has been temporarily blocked because of system limits."},"participantsPane":{"close":"Close","header":"Participants","headings":{"lobby":"Lobby ({{count}})","participantsList":"Meeting participants ({{count}})","waitingLobby":"Waiting in lobby ({{count}})"},"actions":{"allow":"Allow attendees to:","allowVideo":"Allow video","audioModeration":"Unmute themselves","blockEveryoneMicCamera":"Block everyone\'s mic and camera","invite":"Invite Someone","askUnmute":"Ask to unmute","moreModerationActions":"More moderation options","moreParticipantOptions":"More participant options","mute":"Mute","muteAll":"Mute all","muteEveryoneElse":"Mute everyone else","stopEveryonesVideo":"Stop everyone\'s video","stopVideo":"Stop video","unblockEveryoneMicCamera":"Unblock everyone\'s mic and camera","videoModeration":"Start their video","moreModerationControls":"More moderation controls"},"search":"Search participants"},"passwordSetRemotely":"Set by another participant","passwordDigitsOnly":"Up to {{number}} digits","polls":{"by":"By {{ name }}","create":{"addOption":"Add option","answerPlaceholder":"Option {{index}}","create":"Create a poll","cancel":"Cancel","pollOption":"Poll option {{index}}","pollQuestion":"Poll Question","questionPlaceholder":"Ask a question","removeOption":"Remove option","send":"Send"},"answer":{"skip":"Skip","submit":"Submit"},"results":{"vote":"Vote","changeVote":"Change vote","empty":"There are no polls in the meeting yet. Start a poll here!","hideDetailedResults":"Hide details","showDetailedResults":"Show details"},"notification":{"title":"A new poll was added to this meeting","description":"Open polls tab to vote"}},"poweredby":"powered by","prejoin":{"audioAndVideoError":"Audio and video error:","audioDeviceProblem":"There is a problem with your audio device","audioOnlyError":"Audio error:","audioTrackError":"Could not create audio track.","calling":"Calling","callMe":"Call me","callMeAtNumber":"Call me at this number:","configuringDevices":"Configuring devices...","connectedWithAudioQ":"You’re connected with audio?","connection":{"good":"Your internet connection looks good!","nonOptimal":"Your internet connection is not optimal","poor":"You have a poor internet connection"},"connectionDetails":{"audioClipping":"We expect your audio to be clipped.","audioHighQuality":"We expect your audio to have excellent quality.","audioLowNoVideo":"We expect your audio quality to be low and no video.","goodQuality":"Awesome! Your media quality is going to be great.","noMediaConnectivity":"We could not find a way to establish media connectivity for this test. This is typically caused by a firewall or NAT.","noVideo":"We expect that your video will be terrible.","undetectable":"If you still can not make calls in browser, we recommend that you make sure your speakers, microphone and camera are properly set up, that you have granted your browser rights to use your microphone and camera, and that your browser version is up-to-date. If you still have trouble calling, you should contact the web application developer.","veryPoorConnection":"We expect your call quality to be really terrible.","videoFreezing":"We expect your video to freeze, turn black, and be pixelated.","videoHighQuality":"We expect your video to have good quality.","videoLowQuality":"We expect your video to have low quality in terms of frame rate and resolution.","videoTearing":"We expect your video to be pixelated or have visual artefacts."},"copyAndShare":"Copy & share meeting link","dialInMeeting":"Dial into the meeting","dialInPin":"Dial into the meeting and enter PIN code:","dialing":"Dialing","doNotShow":"Don\'t show this screen again","errorDialOut":"Could not dial out","errorDialOutDisconnected":"Could not dial out. Disconnected","errorDialOutFailed":"Could not dial out. Call failed","errorDialOutStatus":"Error getting dial out status","errorMissingName":"Please enter your name to join the meeting","errorNoPermissions":"You need to enable microphone and camera access","errorStatusCode":"Error dialing out, status code: {{status}}","errorValidation":"Number validation failed","iWantToDialIn":"I want to dial in","joinAudioByPhone":"Join with phone audio","joinMeeting":"Join meeting","joinWithoutAudio":"Join without audio","initiated":"Call initiated","linkCopied":"Link copied to clipboard","lookGood":"Your microphone is working properly","or":"or","premeeting":"Pre meeting","showScreen":"Enable pre meeting screen","keyboardShortcuts":"Enable Keyboard shortcuts","startWithPhone":"Start with phone audio","screenSharingError":"Screen sharing error:","videoOnlyError":"Video error:","videoTrackError":"Could not create video track.","viewAllNumbers":"view all numbers"},"presenceStatus":{"busy":"Busy","calling":"Calling...","connected":"Connected","connecting":"Connecting...","connecting2":"Connecting*...","disconnected":"Disconnected","expired":"Expired","ignored":"Ignored","initializingCall":"Initializing Call...","invited":"Invited","rejected":"Rejected","ringing":"Ringing..."},"profile":{"avatar":"avatar","setDisplayNameLabel":"Set your display name","setEmailInput":"Enter email","setEmailLabel":"Set your gravatar email","title":"Profile"},"raisedHand":"Would like to speak","recording":{"limitNotificationDescriptionWeb":"Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try {{app}}.","limitNotificationDescriptionNative":"Due to high demand your recording will be limited to {{limit}} min. For unlimited recordings try <3>{{app}}.","authDropboxText":"Upload to Dropbox","availableSpace":"Available space: {{spaceLeft}} MB (approximately {{duration}} minutes of recording)","beta":"BETA","busy":"We\'re working on freeing recording resources. Please try again in a few minutes.","busyTitle":"All recorders are currently busy","copyLink":"Copy Link","error":"Recording failed. Please try again.","errorFetchingLink":"Error fetching recording link.","expandedOff":"Recording has stopped","expandedOn":"The meeting is currently being recorded.","expandedPending":"Recording is being started...","failedToStart":"Recording failed to start","fileSharingdescription":"Share recording with meeting participants","inProgress":"Recording or live streaming in progress","linkGenerated":"We have generated a link to your recording.","live":"LIVE","loggedIn":"Logged in as {{userName}}","off":"Recording stopped","offBy":"{{name}} stopped the recording","on":"Recording started","onBy":"{{name}} started the recording","pending":"Preparing to record the meeting...","rec":"REC","serviceDescription":"Your recording will be saved by the recording service","serviceDescriptionCloud":"Cloud recording","serviceName":"Recording service","sessionAlreadyActive":"This session is already being recorded or live streamed.","signIn":"Sign in","signOut":"Sign out","unavailable":"Oops! The {{serviceName}} is currently unavailable. We\'re working on resolving the issue. Please try again later.","unavailableTitle":"Recording unavailable","uploadToCloud":"Upload to the cloud"},"sectionList":{"pullToRefresh":"Pull to refresh"},"security":{"about":"You can add a $t(lockRoomPassword) to your meeting. Participants will need to provide the $t(lockRoomPassword) before they are allowed to join the meeting.","aboutReadOnly":"Moderator participants can add a $t(lockRoomPassword) to the meeting. Participants will need to provide the $t(lockRoomPassword) before they are allowed to join the meeting.","insecureRoomNameWarning":"The room name is unsafe. Unwanted participants may join your conference. Consider securing your meeting using the security button.","securityOptions":"Security options"},"settings":{"calendar":{"about":"The {{appName}} calendar integration is used to securely access your calendar so it can read upcoming events.","disconnect":"Disconnect","microsoftSignIn":"Sign in with Microsoft","signedIn":"Currently accessing calendar events for {{email}}. Click the Disconnect button below to stop accessing calendar events.","title":"Calendar"},"desktopShareFramerate":"Desktop sharing frame rate","desktopShareWarning":"You need to restart the screen share for the new settings to take effect.","desktopShareHighFpsWarning":"A higher frame rate for desktop sharing might affect your bandwidth. You need to restart the screen share for the new settings to take effect.","devices":"Devices","followMe":"Everyone follows me","framesPerSecond":"frames-per-second","incomingMessage":"Incoming message","language":"Language","loggedIn":"Logged in as {{name}}","microphones":"Microphones","moderator":"Moderator","more":"More","name":"Name","noDevice":"None","participantJoined":"Participant Joined","participantLeft":"Participant Left","playSounds":"Play sound on","reactions":"Meeting reactions","sameAsSystem":"Same as system ({{label}})","selectAudioOutput":"Audio output","selectCamera":"Camera","selectMic":"Microphone","sounds":"Sounds","speakers":"Speakers","startAudioMuted":"Everyone starts muted","startReactionsMuted":"Mute reaction sounds for everyone","startVideoMuted":"Everyone starts hidden","talkWhileMuted":"Talk while muted","title":"Settings"},"settingsView":{"advanced":"Advanced","alertOk":"OK","alertCancel":"Cancel","alertTitle":"Warning","alertURLText":"The entered server URL is invalid","buildInfoSection":"Build Information","conferenceSection":"Conference","disableCallIntegration":"Disable native call integration","disableP2P":"Disable Peer-To-Peer mode","disableCrashReporting":"Disable crash reporting","disableCrashReportingWarning":"Are you sure you want to disable crash reporting? The setting will be applied after you restart the app.","displayName":"Display name","email":"Email","header":"Settings","profileSection":"Profile","serverURL":"Server URL","showAdvanced":"Show advanced settings","startWithAudioMuted":"Start with audio muted","startWithVideoMuted":"Start with video muted","version":"Version"},"share":{"dialInfoText":"\\n\\n=====\\n\\nJust want to dial in on your phone?\\n\\n{{defaultDialInNumber}}Click this link to see the dial in phone numbers for this meeting\\n{{dialInfoPageUrl}}","mainText":"Click the following link to join the meeting:\\n{{roomUrl}}"},"speaker":"Speaker","speakerStats":{"search":"Search","hours":"{{count}}h","minutes":"{{count}}m","name":"Name","seconds":"{{count}}s","speakerStats":"Speaker Stats","speakerTime":"Speaker Time","happy":"Happy","neutral":"Neutral","sad":"Sad","surprised":"Surprised","angry":"Angry","fearful":"Fearful","disgusted":"Disgusted"},"startupoverlay":{"policyText":" ","genericTitle":"The meeting needs to use your microphone and camera.","title":"{{app}} needs to use your microphone and camera."},"suspendedoverlay":{"rejoinKeyTitle":"Rejoin","text":"Press the Rejoin button to reconnect.","title":"Your video call was interrupted because this computer went to sleep."},"toolbar":{"accessibilityLabel":{"audioOnly":"Toggle audio only","audioRoute":"Select the sound device","boo":"Boo","breakoutRoom":"Join/leave breakout room","callQuality":"Manage video quality","cc":"Toggle subtitles","chat":"Open / Close chat","clap":"Clap","document":"Toggle shared document","download":"Download our apps","embedMeeting":"Embed meeting","feedback":"Leave feedback","fullScreen":"Toggle full screen","grantModerator":"Grant Moderator Rights","hangup":"Leave the meeting","help":"Help","invite":"Invite people","kick":"Kick participant","laugh":"Laugh","like":"Thumbs Up","lobbyButton":"Enable/disable lobby mode","localRecording":"Toggle local recording controls","lockRoom":"Toggle meeting password","moreActions":"More actions","moreActionsMenu":"More actions menu","moreOptions":"Show more options","mute":"Mute / Unmute","muteEveryone":"Mute everyone","muteEveryoneElse":"Mute everyone else","muteEveryonesVideo":"Disable everyone\'s video","muteEveryoneElsesVideo":"Disable everyone else\'s video","participants":"Participants","pip":"Toggle Picture-in-Picture mode","privateMessage":"Send private message","profile":"Edit your profile","raiseHand":"Raise / Lower your hand","reactionsMenu":"Open / Close reactions menu","recording":"Toggle recording","remoteMute":"Mute participant","remoteVideoMute":"Disable camera of participant","security":"Security options","Settings":"Toggle settings","shareaudio":"Share audio","sharedvideo":"Toggle YouTube video sharing","shareRoom":"Invite someone","shareYourScreen":"Start / Stop sharing your screen","shortcuts":"Toggle shortcuts","show":"Show on stage","silence":"Silence","speakerStats":"Toggle speaker statistics","surprised":"Surprised","tileView":"Toggle tile view","toggleCamera":"Toggle camera","toggleFilmstrip":"Toggle filmstrip","videomute":"Start / Stop camera","videoblur":"Toggle video blur","selectBackground":"Select Background","expand":"Expand","collapse":"Collapse"},"addPeople":"Add people to your call","audioSettings":"Audio settings","videoSettings":"Video settings","audioOnlyOff":"Disable low bandwidth mode","audioOnlyOn":"Enable low bandwidth mode","audioRoute":"Select the sound device","authenticate":"Authenticate","boo":"Boo","callQuality":"Manage video quality","chat":"Open / Close chat","clap":"Clap","closeChat":"Close chat","closeReactionsMenu":"Close reactions menu","disableReactionSounds":"You can disable reaction sounds for this meeting","documentClose":"Close shared document","documentOpen":"Open shared document","download":"Download our apps","e2ee":"End-to-End Encryption","embedMeeting":"Embed meeting","enterFullScreen":"View full screen","enterTileView":"Enter tile view","exitFullScreen":"Exit full screen","exitTileView":"Exit tile view","feedback":"Leave feedback","hangup":"Leave the meeting","help":"Help","invite":"Invite people","joinBreakoutRoom":"Join breakout room","laugh":"Laugh","leaveBreakoutRoom":"Leave breakout room","like":"Thumbs Up","lobbyButtonDisable":"Disable lobby mode","lobbyButtonEnable":"Enable lobby mode","login":"Login","logout":"Logout","lowerYourHand":"Lower your hand","moreActions":"More actions","moreOptions":"More options","mute":"Mute / Unmute","muteEveryone":"Mute everyone","muteEveryonesVideo":"Disable everyone\'s camera","noAudioSignalTitle":"There is no input coming from your mic!","noAudioSignalDesc":"If you did not purposely mute it from system settings or hardware, consider switching the device.","noAudioSignalDescSuggestion":"If you did not purposely mute it from system settings or hardware, consider switching to the suggested device.","noAudioSignalDialInDesc":"You can also dial-in using:","noAudioSignalDialInLinkDesc":"Dial-in numbers","noisyAudioInputTitle":"Your microphone appears to be noisy!","noisyAudioInputDesc":"It sounds like your microphone is making noise, please consider muting or changing the device.","openChat":"Open chat","openReactionsMenu":"Open reactions menu","participants":"Participants","pip":"Enter Picture-in-Picture mode","privateMessage":"Send private message","profile":"Edit your profile","raiseHand":"Raise / Lower your hand","raiseYourHand":"Raise your hand","reactionBoo":"Send boo reaction","reactionClap":"Send clap reaction","reactionLaugh":"Send laugh reaction","reactionLike":"Send thumbs up reaction","reactionSilence":"Send silence reaction","reactionSurprised":"Send surprised reaction","security":"Security options","Settings":"Settings","shareaudio":"Share audio","sharedvideo":"Share video","shareRoom":"Invite someone","shortcuts":"View shortcuts","silence":"Silence","speakerStats":"Speaker stats","startScreenSharing":"Start screen sharing","startSubtitles":"Start subtitles","stopAudioSharing":"Stop audio sharing","stopScreenSharing":"Stop screen sharing","stopSubtitles":"Stop subtitles","stopSharedVideo":"Stop video","surprised":"Surprised","talkWhileMutedPopup":"Trying to speak? You are muted.","tileViewToggle":"Toggle tile view","toggleCamera":"Toggle camera","videomute":"Start / Stop camera","selectBackground":"Select background"},"transcribing":{"ccButtonTooltip":"Start / Stop subtitles","error":"Transcribing failed. Please try again.","expandedLabel":"Transcribing is currently on","failedToStart":"Transcribing failed to start","labelToolTip":"The meeting is being transcribed","off":"Transcribing stopped","pending":"Preparing to transcribe the meeting...","start":"Start showing subtitles","stop":"Stop showing subtitles","tr":"TR"},"userMedia":{"androidGrantPermissions":"Select Allow when your browser asks for permissions.","chromeGrantPermissions":"Select Allow when your browser asks for permissions.","edgeGrantPermissions":"Select Yes when your browser asks for permissions.","electronGrantPermissions":"Trying to access your camera and microphone","firefoxGrantPermissions":"Select Share Selected Device when your browser asks for permissions.","iexplorerGrantPermissions":"Select OK when your browser asks for permissions.","nwjsGrantPermissions":"Please grant permissions to use your camera and microphone","operaGrantPermissions":"Select Allow when your browser asks for permissions.","react-nativeGrantPermissions":"Select Allow when your browser asks for permissions.","safariGrantPermissions":"Select OK when your browser asks for permissions."},"volumeSlider":"Volume slider","videoSIPGW":{"busy":"We\'re working on freeing resources. Please try again in a few minutes.","busyTitle":"The Room service is currently busy","errorAlreadyInvited":"{{displayName}} already invited","errorInvite":"Conference not established yet. Please try again later.","errorInviteFailed":"We\'re working on resolving the issue. Please try again later.","errorInviteFailedTitle":"Inviting {{displayName}} failed","errorInviteTitle":"Error inviting room","pending":"{{displayName}} has been invited"},"videoStatus":{"adjustFor":"Adjust for:","audioOnly":"AUD","bestPerformance":"Best performance","highestQuality":"Highest quality","audioOnlyExpanded":"You are in low bandwidth mode. In this mode you will receive only audio and screen sharing.","callQuality":"Video Quality","hd":"HD","hdTooltip":"Viewing high definition video","highDefinition":"High definition","labelTooiltipNoVideo":"No video","labelTooltipAudioOnly":"Low bandwidth mode enabled","ld":"LD","ldTooltip":"Viewing low definition video","lowDefinition":"Low definition","performanceSettings":"Performance settings","sd":"SD","sdTooltip":"Viewing standard definition video","standardDefinition":"Standard definition"},"videothumbnail":{"connectionInfo":"Connection Info","domute":"Mute","domuteVideo":"Disable camera","domuteOthers":"Mute everyone else","domuteVideoOfOthers":"Disable camera of everyone else","flip":"Flip","grantModerator":"Grant Moderator Rights","hideSelfView":"Hide self view","kick":"Kick out","moderator":"Moderator","mute":"Participant is muted","muted":"Muted","videoMuted":"Camera disabled","remoteControl":"Start / Stop remote control","show":"Show on stage","videomute":"Participant has stopped the camera"},"welcomepage":{"addMeetingName":"Add Meeting name","accessibilityLabel":{"join":"Tap to join","roomname":"Enter room name"},"appDescription":"Go ahead, video chat with the whole team. In fact, invite everyone you know. {{app}} is a fully encrypted, 100% open source video conferencing solution that you can use all day, every day, for free — with no account needed.","audioVideoSwitch":{"audio":"Voice","video":"Video"},"calendar":"Calendar","connectCalendarButton":"Connect your calendar","connectCalendarText":"Connect your calendar to view all your meetings in {{app}}. Plus, add {{provider}} meetings to your calendar and start them with one click.","enterRoomTitle":"Start a new meeting","getHelp":"Get help","go":"GO","goSmall":"GO","headerTitle":"Jitsi Meet","headerSubtitle":"Secure and high quality meetings","info":"Dial-in info","join":"CREATE / JOIN","jitsiOnMobile":"Jitsi on mobile – download our apps and start a meeting from anywhere","mobileDownLoadLinkIos":"Download mobile app for iOS","mobileDownLoadLinkAndroid":"Download mobile app for Android","mobileDownLoadLinkFDroid":"Download mobile app for F-Droid","moderatedMessage":"Or book a meeting URL in advance where you are the only moderator.","privacy":"Privacy","recentList":"Recent","recentListDelete":"Delete entry","recentListEmpty":"Your recent list is currently empty. Chat with your team and you will find all your recent meetings here.","reducedUIText":"Welcome to {{app}}!","roomNameAllowedChars":"Meeting name should not contain any of these characters: ?, &, :, \', \\", %, #.","roomname":"Enter room name","roomnameHint":"Enter the name or URL of the room you want to join. You may make a name up, just let the people you are meeting know it so that they enter the same name.","sendFeedback":"Send feedback","startMeeting":"Start meeting","terms":"Terms","title":"Secure, fully featured, and completely free video conferencing","logo":{"calendar":"Calendar logo","microsoftLogo":"Microsoft logo","logoDeepLinking":"Jitsi meet logo","desktopPreviewThumbnail":"Desktop preview thumbnail","googleLogo":"Google Logo","policyLogo":"Policy logo"}},"lonelyMeetingExperience":{"button":"Invite others","youAreAlone":"You are the only one in the meeting"},"termsView":{"header":"Terms"},"privacyView":{"header":"Privacy"},"helpView":{"header":"Help center"},"lobby":{"admit":"Admit","admitAll":"Admit all","knockingParticipantList":"Knocking participant list","allow":"Allow","backToKnockModeButton":"Ask to join","dialogTitle":"Lobby mode","disableDialogContent":"Lobby mode is currently enabled. This feature ensures that unwanted participants can\'t join your meeting. Do you want to disable it?","disableDialogSubmit":"Disable","emailField":"Enter your email address","enableDialogPasswordField":"Set password (optional)","enableDialogSubmit":"Enable","enableDialogText":"Lobby mode lets you protect your meeting by only allowing people to enter after a formal approval by a moderator.","enterPasswordButton":"Enter meeting password","enterPasswordTitle":"Enter password to join meeting","errorMissingPassword":"Please enter the meeting password","invalidPassword":"Invalid password","joiningMessage":"You\'ll join the meeting as soon as someone accepts your request","joinWithPasswordMessage":"Trying to join with password, please wait...","joinRejectedMessage":"Your join request was rejected by a moderator.","joinTitle":"Join Meeting","joiningTitle":"Asking to join meeting...","joiningWithPasswordTitle":"Joining with password...","knockButton":"Ask to Join","knockTitle":"Someone wants to join the meeting","nameField":"Enter your name","notificationLobbyAccessDenied":"{{targetParticipantName}} has been rejected to join by {{originParticipantName}}","notificationLobbyAccessGranted":"{{targetParticipantName}} has been allowed to join by {{originParticipantName}}","notificationLobbyDisabled":"Lobby has been disabled by {{originParticipantName}}","notificationLobbyEnabled":"Lobby has been enabled by {{originParticipantName}}","notificationTitle":"Lobby","passwordField":"Enter meeting password","passwordJoinButton":"Join","reject":"Reject","rejectAll":"Reject all","toggleLabel":"Enable lobby"}}'); + var ui = n(8726), + di = n.n(ui); + const pi = { cacheUserLanguage: Function.prototype, lookup: () => config.defaultLanguage, name: "configLanguageDetector" }, - Ai = { + hi = { cacheUserLanguage: Function.prototype, lookup() { let e = []; @@ -3822,11 +3729,10 @@ for (let t = 0; t < navigator.languages.length; t++) e.push(navigator.languages[t]); navigator.userLanguage && e.push(navigator.userLanguage), navigator.language && e.push(navigator.language) } - return e = e.map(ji), e.length > 0 ? e : void 0 + return e = e.map(mi), e.length > 0 ? e : void 0 }, name: "customNavigatorDetector" }; - // BAO begins window.ofmeet = { // BAO @@ -3910,28 +3816,28 @@ // BAO ends - function ji(e) { + function mi(e) { const [t, n] = e.replace("_", "-").split("-"); return n && t !== n ? t + n.toUpperCase() : t } - const Pi = ["querystring", "localStorage"]; - interfaceConfig.LANG_DETECTION && Pi.push(Ai.name), Pi.push(Ci.name); - const Di = new(xi())(null, { + const fi = ["querystring", "localStorage"]; + interfaceConfig.LANG_DETECTION && fi.push(hi.name), fi.push(pi.name); + const gi = new(di())(null, { caches: ["localStorage"], lookupLocalStorage: "language", lookupQuerystring: "lang", - order: Pi + order: fi }); - Di.addDetector(Ai), Di.addDetector(Ci); - const Ti = Di, - Oi = Object.keys(wi), - Mi = Oi[0], - Ii = { + gi.addDetector(hi), gi.addDetector(pi); + const bi = gi, + yi = Object.keys(li), + vi = yi[0], + ki = { backend: { loadPath: "lang/{{ns}}-{{lng}}.json" }, defaultNS: "main", - fallbackLng: Mi, + fallbackLng: vi, interpolation: { escapeValue: !1 }, @@ -3942,915 +3848,813 @@ }, returnEmptyString: !1, returnNull: !1, - whitelist: Oi.slice() + whitelist: yi.slice() }; - li.use("ReactNative" === navigator.product ? {} : _i).use(Ti).init(Ii), li.addResourceBundle(Mi, "countries", vr, !0, !0), li.addResourceBundle(Mi, "languages", wi, !0, !0), li.addResourceBundle(Mi, "main", Si, !0, !0), li.addResourceBundle(Mi, "ofmeet", ofmeet, !0, !0), n(5686); // BAO - const Ni = li; - window.i18next = li; // BAO + Qr.use("ReactNative" === navigator.product ? {} : si).use(bi).init(ki), Qr.addResourceBundle(vi, "countries", br, !0, !0), Qr.addResourceBundle(vi, "languages", li, !0, !0), Qr.addResourceBundle(vi, "main", ci, !0, !0), Qr.addResourceBundle(vi, "ofmeet", ofmeet, !0, !0), n(5686); // BAO + const _i = Qr; + window.i18next = Qr; // BAO - function zi(e) { - return yr()(e).locale(function() { - const e = Ni.language; + function wi(e) { + return gr()(e).locale(function() { + const e = _i.language; let t; if (e) { const n = new RegExp("^([a-z]{2,2})(-)*([a-z]{2,2})*$").exec(e.toLowerCase()); if (n) { const e = new RegExp(`^${n[1]}(-)*${`(${n[3]})*`||""}`); - t = yr().locales().find((t => e.exec(t))) + t = gr().locales().find((t => e.exec(t))) } } return t || "en" }()) } - function Ri(e) { - return "0" !== yr().duration(e).format("h") ? yr().duration(e).format("h:mm:ss") : yr().duration(e).format("mm:ss", { + function Si(e) { + return "0" !== gr().duration(e).format("h") ? gr().duration(e).format("h:mm:ss") : gr().duration(e).format("mm:ss", { trim: !1 }) } // BAO TODO missing functions - window.localizedDate = zi; // BAO - - function Li(e) { + window.localizedDate = wi; // BAO + + function Ei(e) { return function(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; return function(n) { function a(a, r) { - var i = mr(e, a), - o = hr()(i, 3), - s = o[0], - l = o[1], - c = o[2], - u = Ja()({}, a, { - t: s, - i18n: l, - tReady: c + var i = dr(pr(e, a), 3), + o = Ja({}, a, { + t: i[0], + i18n: i[1], + tReady: i[2] }); - return t.withRef && r && (u.ref = r), x().createElement(n, u) + return t.withRef && r && (o.ref = r), C().createElement(n, o) } - return a.displayName = "withI18nextTranslation(".concat(dr(n), ")"), a.WrappedComponent = n, t.withRef ? x().forwardRef(a) : a + return a.displayName = "withI18nextTranslation(".concat(lr(n), ")"), a.WrappedComponent = n, t.withRef ? C().forwardRef(a) : a } }(["main", "languages", "countries"])(e) } - function Fi(e, t, n = {}) { - return x().createElement("span", { + function xi(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + return C().createElement("span", { dangerouslySetInnerHTML: { __html: e(t, n) } }) } n(5135), n(5902), n(9547), n(1824), n(7075), n(5793), n(8979), n(1277), n(1633), n(3122), n(4595), n(5871), n(1329), n(3548), n(2132), n(6316), n(2835), n(7941), n(6283), n(5745), n(2348), n(2844), n(4590), n(6941), n(1638), n(5651), n(2821), n(7974), n(8806), n(794), n(8004), n(9297), n(3998), n(4989), n(7590), n(3895), n(2009), n(3800), n(5737), n(7170), n(665), n(4374), n(8669), n(4299), n(6705), n(9557), n(3497), n(7612), n(6608), n(8858), n(670), n(3520); - const qi = "_ADD_AUDIO_ELEMENT", - Bi = "_REMOVE_AUDIO_ELEMENT", - Ui = "PLAY_SOUND", - Hi = "REGISTER_SOUND", - Vi = "STOP_SOUND", - Wi = "UNREGISTER_SOUND"; - - function Yi(e) { + const Ci = "_ADD_AUDIO_ELEMENT", + Ai = "_REMOVE_AUDIO_ELEMENT", + Ti = "PLAY_SOUND", + Di = "REGISTER_SOUND", + Pi = "STOP_SOUND", + ji = "UNREGISTER_SOUND"; + + function Mi(e) { return e["features/base/config"].disabledSounds || [] } - function Gi(e) { + function Ii(e) { return (t, n) => { - const a = Yi(n()); + const a = Mi(n()); a.includes(e) || a.find((t => e.startsWith(t))) || t({ - type: Ui, + type: Ti, soundId: e }) } } - function Ki(e, t, n = {}) { + function Oi(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; return { - type: Hi, + type: Di, soundId: e, src: `sounds/${t}`, options: n } } - function $i(e) { + function Ni(e) { return { - type: Vi, + type: Pi, soundId: e } } - function Ji(e) { + function Ri(e) { return { - type: Wi, + type: ji, soundId: e } } - const Zi = "environment", - Qi = "user", - Xi = "audio", - eo = "presenter", - to = "video", - no = "camera", - ao = "desktop", - ro = "SET_NO_SRC_DATA_NOTIFICATION_UID", - io = "TOGGLE_SCREENSHARING", - oo = "TRACK_ADDED", - so = "TRACK_CREATE_CANCELED", - lo = "TRACK_CREATE_ERROR", - co = "TRACK_NO_DATA_FROM_SOURCE", - uo = "TRACK_REMOVED", - po = "TRACK_STOPPED", - ho = "TRACK_UPDATED", - mo = "TRACK_WILL_CREATE", - fo = "TRACK_UPDATE_LAST_VIDEO_MEDIA_EVENT", - go = "BACKGROUND_ENABLED", - bo = "SET_VIRTUAL_BACKGROUND", - yo = Je("features/virtual-background"); - - function vo(e, t) { - return async function(n, a) { - await n(ko(e.enabled)), await n(function(e) { - return { - type: bo, - virtualSource: null == e ? void 0 : e.url, - blurValue: null == e ? void 0 : e.blurValue, - backgroundType: null == e ? void 0 : e.backgroundType, - selectedThumbnail: null == e ? void 0 : e.selectedThumbnail - } - }(e)); - const r = a()["features/virtual-background"]; - if (t) try { - e.enabled ? await t.setEffect(await Lo(r, n)) : (await t.setEffect(void 0), n(ko(!1))) - } catch (e) { - n(ko(!1)), yo.error("Error on apply background effect:", e) - } - } - } - - function ko(e) { - return { - type: go, - backgroundEffectEnabled: e + const zi = "environment", + Li = "user", + Fi = "audio", + qi = "presenter", + Bi = "video", + Ui = 1, + Hi = 2, + Vi = 4, + Wi = "camera", + Yi = "desktop", + Gi = "#17A0DB", + Ki = "#AAAAAA", + $i = "#FFFFFF", + Ji = /^#([0-9A-F]{2,2})([0-9A-F]{2,2})([0-9A-F]{2,2})$/i, + Zi = /^#([0-9A-F]{1,1})([0-9A-F]{1,1})([0-9A-F]{1,1})$/i, + Qi = /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/i; + + function Xi(e) { + if (!e) return {}; + if (Array.isArray(e)) { + const t = {}; + for (const n of e) Object.assign(t, Xi(n)); + return t } + return e } - let _o; - function wo() { - if (void 0 === _o) { - const e = document.createElement("canvas"), - t = e.getContext("2d"); - _o = void 0 !== t.filter, e.remove() - } - return _o + function eo(e, t) { + const n = []; + return e && (Array.isArray(e) ? n.push(...e) : n.push(e)), t && (Array.isArray(t) ? n.push(...t) : n.push(t)), n } - function So(e, t, n) { - const a = { - enabled: !1, - backgroundType: "none", - selectedThumbnail: "none", - backgroundEffectEnabled: !1 - }; - t && t.on(At.LOCAL_TRACK_STOPPED, (() => { - e(vo(a, n)), e(bn({ - localFlipX: !0 - })) - })) + function to(e) { + return Number(Math.round(255 * e)).toString(16).padStart(2, "0") } - function Eo(e, t) { - return new Promise(((n, a) => { - setTimeout((() => { - a(new Error("408")) - }), e), t.then(n, a) - })) - } - const xo = "image", - Co = "desktop-share", - Ao = "blur", - jo = "none", - Po = [{ - tooltip: "image1", - id: "1", - src: "images/virtual-background/background-1.jpg" - }, { - tooltip: "image2", - id: "2", - src: "images/virtual-background/background-2.jpg" - }, { - tooltip: "image3", - id: "3", - src: "images/virtual-background/background-3.jpg" - }, { - tooltip: "image4", - id: "4", - src: "images/virtual-background/background-4.jpg" - }, { - tooltip: "image5", - id: "5", - src: "images/virtual-background/background-5.jpg" - }, { - tooltip: "image6", - id: "6", - src: "images/virtual-background/background-6.jpg" - }, { - tooltip: "image7", - id: "7", - src: "images/virtual-background/background-7.jpg" - }], - Do = URL.createObjectURL(new Blob(["\n var timer;\n\n onmessage = function(request) {\n switch (request.data.id) {\n case 1: {\n timer = setTimeout(() => {\n postMessage({ id: 3 });\n }, request.data.timeMs);\n break;\n }\n case 2: {\n if (timer) {\n clearTimeout(timer);\n }\n break;\n }\n }\n };\n"], { - type: "application/javascript" - })); - class To { - constructor(e, t) { - var n, a, r; - this._options = t, this._options.virtualBackground.backgroundType === xo && (this._virtualImage = document.createElement("img"), this._virtualImage.crossOrigin = "anonymous", this._virtualImage.src = this._options.virtualBackground.virtualSource), this._options.virtualBackground.backgroundType === Co && (this._virtualVideo = document.createElement("video"), this._virtualVideo.autoplay = !0, this._virtualVideo.srcObject = null === (n = this._options) || void 0 === n || null === (a = n.virtualBackground) || void 0 === a || null === (r = a.virtualSource) || void 0 === r ? void 0 : r.stream), this._model = e, this._segmentationPixelCount = this._options.width * this._options.height, this._onMaskFrameTimer = this._onMaskFrameTimer.bind(this), this._outputCanvasElement = document.createElement("canvas"), this._outputCanvasElement.getContext("2d"), this._inputVideoElement = document.createElement("video") - } - _onMaskFrameTimer(e) { - 3 === e.data.id && this._renderMask() - } - runPostProcessing() { - var e; - const t = this._stream.getVideoTracks()[0], - { - height: n, - width: a - } = null !== (e = t.getSettings()) && void 0 !== e ? e : t.getConstraints(), - { - backgroundType: r - } = this._options.virtualBackground; - this._outputCanvasElement.height = n, this._outputCanvasElement.width = a, this._outputCanvasCtx.globalCompositeOperation = "copy", this._outputCanvasCtx.filter = r === xo ? "blur(4px)" : "blur(8px)", r === Co && (this._outputCanvasCtx.save(), this._outputCanvasCtx.scale(-1, 1), this._outputCanvasCtx.translate(-this._outputCanvasElement.width, 0)), this._outputCanvasCtx.drawImage(this._segmentationMaskCanvas, 0, 0, this._options.width, this._options.height, 0, 0, this._inputVideoElement.width, this._inputVideoElement.height), r === Co && this._outputCanvasCtx.restore(), this._outputCanvasCtx.globalCompositeOperation = "source-in", this._outputCanvasCtx.filter = "none", r === Co && (this._outputCanvasCtx.save(), this._outputCanvasCtx.scale(-1, 1), this._outputCanvasCtx.translate(-this._outputCanvasElement.width, 0)), this._outputCanvasCtx.drawImage(this._inputVideoElement, 0, 0), r === Co && this._outputCanvasCtx.restore(), this._outputCanvasCtx.globalCompositeOperation = "destination-over", r === xo || r === Co ? this._outputCanvasCtx.drawImage(r === xo ? this._virtualImage : this._virtualVideo, 0, 0, this._outputCanvasElement.width, this._outputCanvasElement.height) : (this._outputCanvasCtx.filter = `blur(${this._options.virtualBackground.blurValue}px)`, this._outputCanvasCtx.drawImage(this._inputVideoElement, 0, 0)) - } - runInference() { - this._model._runInference(); - const e = this._model._getOutputMemoryOffset() / 4; - for (let t = 0; t < this._segmentationPixelCount; t++) { - const n = this._model.HEAPF32[e + 2 * t], - a = this._model.HEAPF32[e + 2 * t + 1], - r = Math.max(n, a), - i = Math.exp(n - r), - o = Math.exp(a - r); - this._segmentationMask.data[4 * t + 3] = 255 * o / (i + o) - } - this._segmentationMaskCtx.putImageData(this._segmentationMask, 0, 0) - } - _renderMask() { - this.resizeSource(), this.runInference(), this.runPostProcessing(), this._maskFrameTimerWorker.postMessage({ - id: 1, - timeMs: 1e3 / 30 - }) - } - resizeSource() { - this._segmentationMaskCtx.drawImage(this._inputVideoElement, 0, 0, this._inputVideoElement.width, this._inputVideoElement.height, 0, 0, this._options.width, this._options.height); - const e = this._segmentationMaskCtx.getImageData(0, 0, this._options.width, this._options.height), - t = this._model._getInputMemoryOffset() / 4; - for (let n = 0; n < this._segmentationPixelCount; n++) this._model.HEAPF32[t + 3 * n] = e.data[4 * n] / 255, this._model.HEAPF32[t + 3 * n + 1] = e.data[4 * n + 1] / 255, this._model.HEAPF32[t + 3 * n + 2] = e.data[4 * n + 2] / 255 - } - isEnabled(e) { - return e.isVideoTrack() && "camera" === e.videoType + function no(e) { + return { + ...e, + lineHeight: `${e.lineHeight}px` } - startEffect(e) { - this._stream = e, this._maskFrameTimerWorker = new Worker(Do, { - name: "Blur effect worker" - }), this._maskFrameTimerWorker.onmessage = this._onMaskFrameTimer; - const t = this._stream.getVideoTracks()[0], - { - height: n, - frameRate: a, - width: r - } = t.getSettings ? t.getSettings() : t.getConstraints(); - return this._segmentationMask = new ImageData(this._options.width, this._options.height), this._segmentationMaskCanvas = document.createElement("canvas"), this._segmentationMaskCanvas.width = this._options.width, this._segmentationMaskCanvas.height = this._options.height, this._segmentationMaskCtx = this._segmentationMaskCanvas.getContext("2d"), this._outputCanvasElement.width = parseInt(r, 10), this._outputCanvasElement.height = parseInt(n, 10), this._outputCanvasCtx = this._outputCanvasElement.getContext("2d"), this._inputVideoElement.width = parseInt(r, 10), this._inputVideoElement.height = parseInt(n, 10), this._inputVideoElement.autoplay = !0, this._inputVideoElement.srcObject = this._stream, this._inputVideoElement.onloadeddata = () => { - this._maskFrameTimerWorker.postMessage({ - id: 1, - timeMs: 1e3 / 30 - }) - }, this._outputCanvasElement.captureStream(parseInt(a, 10)) + } + class ao extends x.Component { + _render(e, t) { + const { + children: n, + style: a, + touchFeedback: r, + visible: i, + ...o + } = t || this.props, s = function(e) { + if (Array.isArray(e)) { + const t = {}; + for (const n of e) Object.assign(t, n); + return t + } + return e + }(a); + return C().createElement(e, { + style: s, + ...o + }, n) } - stopEffect() { - this._maskFrameTimerWorker.postMessage({ - id: 2 - }), this._maskFrameTimerWorker.terminate() + } + class ro extends ao { + render() { + const { + visible: e = !0 + } = this.props; + return e ? super._render("div") : null } } - var Oo = n(6360), - Mo = n.n(Oo), - Io = n(8599), - No = n.n(Io); - function zo(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const Ro = { - model96: { - height: 96, - width: 160 - }, - model144: { - height: 144, - width: 256 - } - }; - async function Lo(e, t) { - if (!MediaStreamTrack.prototype.getSettings && !MediaStreamTrack.prototype.getConstraints) throw new Error("JitsiStreamBackgroundEffect not supported!"); - let a, r; - try { - var i, o; - r = n(2759); - const e = 1e4; - a = (null === (i = r) || void 0 === i || null === (o = i.feature) || void 0 === o ? void 0 : o.simd) ? await Eo(e, No()()) : await Eo(e, Mo()()) - } catch (e) { - return void("408" === (null == e ? void 0 : e.message) ? (yo.error("Failed to download tflite model!"), t(Gf({ - titleKey: "virtualBackground.backgroundEffectError" - }))) : (yo.error("Looks like WebAssembly is disabled or not supported on this browser"), t(Gf({ - titleKey: "virtualBackground.webAssemblyWarning", - description: "WebAssembly disabled or not supported by this browser" - })))) - } - const s = a._getModelBufferMemoryOffset(), - l = await fetch(r.feature.simd ? "libs/segm_full_v679.tflite" : "libs/segm_lite_v681.tflite"); - if (!l.ok) throw new Error("Failed to download tflite model!"); - const c = await l.arrayBuffer(); - a.HEAPU8.set(new Uint8Array(c), s), a._loadModel(c.byteLength); - const u = function(e) { + function io() { + return io = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - zo(e, t, n[t]) - })) + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }({}, r.feature.simd ? Ro.model144 : Ro.model96, { - virtualBackground: e - }); - return new To(a, u) + }, io.apply(this, arguments) } - const Fo = Je("features/base/tracks"), - qo = e => e["features/base/tracks"]; + const oo = "ReactNative" === navigator.product ? "white" : void 0, + so = "ReactNative" === navigator.product ? 36 : 22; - function Bo(e, t, n) { - if (!e) return !1; - const a = qo(n); - return (null == e ? void 0 : e.local) ? ts(a, t) : !!(null == e ? void 0 : e.isFakeParticipant) || as(a, t, e.id) + function lo(e) { + var t, n; + const { + className: a, + color: r, + id: i, + containerId: o, + onClick: s, + size: l, + src: c, + style: u, + ariaHasPopup: d, + ariaLabel: p, + ariaDisabled: h, + ariaExpanded: m, + ariaControls: f, + tabIndex: g, + ariaPressed: b, + ariaDescribedBy: y, + role: v, + onKeyPress: k, + onKeyDown: _, + ...w + } = e, { + color: S, + fontSize: E, + ...A + } = Xi(null != u ? u : {}), T = null !== (t = null != r ? r : S) && void 0 !== t ? t : oo, D = null !== (n = null != l ? l : E) && void 0 !== n ? n : so, P = (0, x.useCallback)((e => { + "Enter" !== e.key && " " !== e.key || !s ? k && k(e) : (e.preventDefault(), s(e)) + }), [s, k]), j = T ? "jitsi-icon" : "jitsi-icon jitsi-icon-default"; + return C().createElement(ro, io({}, w, { + "aria-controls": f, + "aria-describedby": y, + "aria-disabled": h, + "aria-expanded": m, + "aria-haspopup": d, + "aria-label": p, + "aria-pressed": b, + className: `${j} ${a||""}`, + id: o, + onClick: s, + onKeyDown: _, + onKeyPress: P, + role: v, + style: A, + tabIndex: g + }), C().createElement(c, { + fill: T, + height: D, + id: i, + width: D + })) } - function Uo(e, t) { - return Bo(e, Xi, t) + function co() { + return co = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, co.apply(this, arguments) } + lo.defaultProps = { + className: "" + }; + var uo = C().createElement("path", { + d: "M18.984 12.984h-6v6h-1.969v-6h-6v-1.969h6v-6h1.969v6h6v1.969z" + }); + const po = function(e) { + return C().createElement("svg", co({}, e, { + viewBox: "0 0 24 24" + }), uo) + }; - function Ho(e, t) { - return Bo(e, to, t) + function ho() { + return ho = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, ho.apply(this, arguments) } + var mo = C().createElement("path", { + d: "M20 18.688c3.563 0 10.688 1.75 10.688 5.313v2.688H9.313v-2.688c0-3.563 7.125-5.313 10.688-5.313zM8 13.313h4v2.688H8v4H5.312v-4h-4v-2.688h4v-4H8v4zM20 16c-2.938 0-5.313-2.375-5.313-5.313S17.062 5.312 20 5.312s5.313 2.438 5.313 5.375S22.938 16 20 16z" + }); + const fo = function(e) { + return C().createElement("svg", ho({}, e, { + viewBox: "0 0 32 32" + }), mo) + }; - function Vo(e = {}, t) { - var n; - let { - cameraDeviceId: a, - micDeviceId: r - } = e; - const { - desktopSharingSourceDevice: i, - desktopSharingSources: o, - firePermissionPromptIsShownEvent: s, - fireSlowPromiseEvent: l, - timeout: u - } = e; - if ("undefined" != typeof APP) { - t || (t = APP.store); - const e = t.getState(); - null == a && (a = oa(e)), null == r && (r = sa(e)) - } - const d = t.getState(), - { - desktopSharingFrameRate: p, - firefox_fake_device: h, - resolution: m - } = d["features/base/config"], - f = null !== (n = e.constraints) && void 0 !== n ? n : d["features/base/config"].constraints; - return function(e) { - const t = e.getState()["features/virtual-background"], - n = t.backgroundEffectEnabled ? Lo(t).catch((e => (Fo.error("Failed to obtain the background effect instance with error: ", e), Promise.resolve()))) : Promise.resolve(); - return Promise.all([n]) - }(t).then((t => { - const n = t.filter((e => Boolean(e))); - return c.default.createLocalTracks({ - cameraDeviceId: a, - constraints: f, - desktopSharingFrameRate: p, - desktopSharingSourceDevice: i, - desktopSharingSources: o, - devices: e.devices.slice(0), - effects: n, - firefox_fake_device: h, - firePermissionPromptIsShownEvent: s, - fireSlowPromiseEvent: l, - micDeviceId: r, - resolution: m, - timeout: u - }).catch((t => (Fo.error("Failed to create local tracks", e.devices, t), Promise.reject(t)))) - })) + function go() { + return go = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, go.apply(this, arguments) } + var bo = C().createElement("path", { + clipRule: "evenodd", + d: "M8.07.248a.75.75 0 111.115 1.004L5.656 5.193a.75.75 0 01-1.115 0L1.068 1.252A.75.75 0 012.182.248L5.1 3.571 8.07.248z" + }); + const yo = function(e) { + return C().createElement("svg", go({}, e, { + viewBox: "0 0 10 6", + fill: "none" + }), bo) + }; - function Wo(e) { - return Yo(e, Xi) + function vo() { + return vo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, vo.apply(this, arguments) } + var ko = C().createElement("path", { + clipRule: "evenodd", + d: "M16.093 8.331a1 1 0 011.487 1.338l-4.705 5.256a1 1 0 01-1.487 0L6.757 9.669a1 1 0 111.486-1.338l3.889 4.43 3.961-4.43z" + }); + const _o = function(e) { + return C().createElement("svg", vo({}, e, { + viewBox: "0 0 24 24", + fill: "none" + }), ko) + }; - function Yo(e, t, n = !1) { - return Go(e, n).find((e => e.mediaType === t)) + function wo() { + return wo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, wo.apply(this, arguments) } + var So = C().createElement("path", { + clipRule: "evenodd", + d: "M8.411 6.057A.833.833 0 109.65 4.943L5.73.563a.833.833 0 00-1.24 0L.63 4.943a.833.833 0 001.24 1.114l3.24-3.691L8.41 6.057z" + }); + const Eo = function(e) { + return C().createElement("svg", wo({}, e, { + viewBox: "0 0 10 7", + fill: "none" + }), So) + }; - function Go(e, t = !1) { - return e.filter((e => e.local && (e.jitsiTrack || t))) + function xo() { + return xo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, xo.apply(this, arguments) } + var Co = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M16.522 18.27a1 1 0 11-1.338 1.487l-7.866-7.08a1 1 0 010-1.487l7.866-7.08a1 1 0 111.338 1.487l-7.04 6.336 7.04 6.337z", + fill: "#A4B8D1" + }); + const Ao = function(e) { + return C().createElement("svg", xo({}, e, { + viewBox: "0 0 24 24", + fill: "none" + }), Co) + }; - function Ko(e) { - return Yo(e, to) + function To() { + return To = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, To.apply(this, arguments) } + var Do = C().createElement("path", { + d: "M18.688 4.313c5.375 1.188 9.313 6 9.313 11.688s-3.938 10.5-9.313 11.688v-2.75c3.875-1.125 6.625-4.688 6.625-8.938s-2.75-7.813-6.625-8.938v-2.75zM22 16a5.936 5.936 0 01-3.313 5.375v-10.75c2 1 3.313 3 3.313 5.375zM4 12h5.313l6.688-6.688v21.375l-6.688-6.688H4v-8z" + }); + const Po = function(e) { + return C().createElement("svg", To({}, e, { + viewBox: "0 0 32 32" + }), Do) + }; - function $o(e) { - return Yo(e, eo) ? eo : to + function jo() { + return jo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, jo.apply(this, arguments) } + var Mo = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M5 2.5a.833.833 0 011.667 0v.833h6.666V2.5A.833.833 0 1115 2.5v.833h1.667c.92 0 1.666.747 1.666 1.667v11.667c0 .92-.746 1.666-1.666 1.666H3.333c-.92 0-1.666-.746-1.666-1.666V5c0-.92.746-1.667 1.666-1.667H5V2.5zM3.333 16.667V5h13.334v11.667H3.333zm6.667-10a.833.833 0 00-.833.833V10h-2.5a.833.833 0 000 1.667h2.5v2.5a.833.833 0 001.666 0v-2.5h2.5a.833.833 0 000-1.667h-2.5V7.5A.833.833 0 0010 6.667z", + fill: "#0163FF" + }); + const Io = function(e) { + return C().createElement("svg", jo({}, e, { + viewBox: "0 0 20 20", + fill: "none" + }), Mo) + }; - function Jo(e) { - const t = Ko(qo(e)); - return null == t ? void 0 : t.jitsiTrack + function Oo() { + return Oo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, Oo.apply(this, arguments) } + var No = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M1.667 10a8.333 8.333 0 1016.666 0 8.333 8.333 0 00-16.666 0zm15.151 0a6.818 6.818 0 11-13.636 0 6.818 6.818 0 0113.636 0zm-7.576.758v3.03h1.516v-3.03h3.03V9.242h-3.03v-3.03H9.242v3.03h-3.03v1.516h3.03z", + fill: "#669AEC" + }); + const Ro = function(e) { + return C().createElement("svg", Oo({}, e, { + viewBox: "0 0 20 20" + }), No) + }; - function Zo(e) { - const t = Wo(qo(e)); - return null == t ? void 0 : t.jitsiTrack + function zo() { + return zo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, zo.apply(this, arguments) } + var Lo = C().createElement("path", { + d: "M4.375 2.688L28 26.313l-1.688 1.688-4.25-4.25c-.188.125-.5.25-.75.25h-16c-.75 0-1.313-.563-1.313-1.313V9.313c0-.75.563-1.313 1.313-1.313h1L2.687 4.375zm23.625 6v14.25L13.062 8h8.25c.75 0 1.375.563 1.375 1.313v4.688z" + }); + const Fo = function(e) { + return C().createElement("svg", zo({}, e, { + viewBox: "0 0 32 32" + }), Lo) + }; - function Qo(e, t, n) { - return e.find((e => Boolean(e.jitsiTrack) && e.participantId === n && e.mediaType === t)) + function qo() { + return qo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, qo.apply(this, arguments) } + var Bo = C().createElement("path", { + clipRule: "evenodd", + d: "M13.75 5.5H3.667c-1.013 0-1.834.82-1.834 1.833v7.334c0 1.012.821 1.833 1.834 1.833H13.75c1.012 0 1.833-.82 1.833-1.833v-.786l3.212 1.835a.916.916 0 001.372-.796V7.08a.917.917 0 00-1.372-.796l-3.212 1.835v-.786c0-1.012-.82-1.833-1.833-1.833zm0 3.667v5.5H3.667V7.333H13.75v1.834zm4.583 4.174l-2.75-1.572v-1.538l2.75-1.572v4.682z" + }); + const Uo = function(e) { + return C().createElement("svg", qo({}, e, { + viewBox: "0 0 22 22", + fill: "none" + }), Bo) + }; - function Xo(e, t) { - return e.find((e => e.jitsiTrack === t)) + function Ho() { + return Ho = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, Ho.apply(this, arguments) } + var Vo = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M6.84 5.5h-.022L3.424 2.106a.932.932 0 10-1.318 1.318L4.182 5.5h-.515c-1.013 0-1.834.82-1.834 1.833v7.334c0 1.012.821 1.833 1.834 1.833H13.75c.404 0 .777-.13 1.08-.352l3.746 3.746a.932.932 0 101.318-1.318l-4.31-4.31v-.024L13.75 12.41v.023l-5.1-5.099h.024L6.841 5.5zm6.91 4.274V7.333h-2.44L9.475 5.5h4.274c1.012 0 1.833.82 1.833 1.833v.786l3.212-1.835a.917.917 0 011.372.796v7.84c0 .344-.19.644-.47.8l-3.736-3.735 2.372 1.356V8.659l-2.75 1.571v1.377L13.75 9.774zM3.667 7.334h2.349l7.333 7.333H3.667V7.333z" + }); + const Wo = function(e) { + return C().createElement("svg", Ho({}, e, { + viewBox: "0 0 22 22" + }), Vo) + }; - function es(e) { - const t = Yo(e, eo), - n = Yo(e, to); - return t ? ts(e, eo) : !n || "camera" !== n.videoType || ts(e, to) + function Yo() { + return Yo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, Yo.apply(this, arguments) } + var Go = C().createElement("path", { + clipRule: "evenodd", + d: "M3.333 7.5V15c0 .46.373.833.834.833h11.666c.46 0 .834-.373.834-.833V7.5a.833.833 0 00-.834-.833h-2.357L11.81 5H8.19L6.524 6.667H4.167a.833.833 0 00-.834.833zm2.5-2.5l1.179-1.179a1.667 1.667 0 011.178-.488h3.62c.442 0 .866.176 1.178.488L14.167 5h1.666a2.5 2.5 0 012.5 2.5V15a2.5 2.5 0 01-2.5 2.5H4.167a2.5 2.5 0 01-2.5-2.5V7.5a2.5 2.5 0 012.5-2.5h1.666zm-1.5 6.667l2.5-2.5 2.5 2.5h-1.69a2.487 2.487 0 003.958 1.057l1.146 1.211a4.154 4.154 0 01-6.83-2.268H4.333zM15.833 10l-2.5 2.5-2.5-2.5h1.529a2.487 2.487 0 00-3.899-1.124c-.021.017-1.04-1.302-1.04-1.302A4.154 4.154 0 0114.086 10h1.747z" + }); + const Ko = function(e) { + return C().createElement("svg", Yo({}, e, { + viewBox: "0 0 20 20", + fill: "none" + }), Go) + }; - function ts(e, t) { - const n = Yo(e, t); - return !n || n.muted + function $o() { + return $o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, $o.apply(this, arguments) } + var Jo = C().createElement("path", { + d: "M17.016 15.609L13.407 12l3.609-3.609-1.406-1.406-3.609 3.609-3.609-3.609-1.406 1.406L10.595 12l-3.609 3.609 1.406 1.406 3.609-3.609 3.609 3.609zM12 2.016q4.125 0 7.055 2.93t2.93 7.055-2.93 7.055T12 21.986t-7.055-2.93-2.93-7.055 2.93-7.055T12 2.016z" + }); + const Zo = function(e) { + return C().createElement("svg", $o({}, e, { + viewBox: "0 0 24 24" + }), Jo) + }; - function ns(e) { - const t = Ko(qo(e)); - return t && t.videoType === ao + function Qo() { + return Qo = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, Qo.apply(this, arguments) } + var Xo = C().createElement("path", { + clipRule: "evenodd", + d: "M15.583 20.196c.507 0 .917-.41.917-.917v-4.612h2.75c.506 0 .917-.41.917-.917v-11a.917.917 0 00-.917-.917H2.75a.917.917 0 00-.917.917v11c0 .506.41.917.917.917h7.843l4.283 5.195a.917.917 0 00.707.334zM3.667 3.666h14.666v9.167h-3.666v3.893l-3.21-3.893h-7.79V3.667z" + }); + const es = function(e) { + return C().createElement("svg", Qo({}, e, { + viewBox: "0 0 22 22", + fill: "none" + }), Xo) + }; - function as(e, t, n) { - const a = Qo(e, t, n); - return !a || a.muted + function ts() { + return ts = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, ts.apply(this, arguments) } + var ns = C().createElement("path", { + d: "M18 8.016V6H6v2.016h12zm-3.984 6V12H6v2.016h8.016zM6 9v2.016h12V9H6zm14.016-6.984c1.078 0 1.969.891 1.969 1.969v12c0 1.078-.891 2.016-1.969 2.016H6l-3.984 3.984v-18c0-1.078.891-1.969 1.969-1.969h16.031z" + }); + const as = function(e) { + return C().createElement("svg", ts({}, e, { + viewBox: "0 0 24 24" + }), ns) + }; - function rs(e) { - return ft.isUserInteractionRequiredForUnmute() && window && window.self !== window.top && !e["features/base/user-interaction"].interacted + function rs() { + return rs = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, rs.apply(this, arguments) } + var is = C().createElement("path", { + d: "M9 16.172L19.594 5.578 21 6.984l-12 12-5.578-5.578L4.828 12z" + }); + const os = function(e) { + return C().createElement("svg", rs({}, e, { + viewBox: "0 0 24 24" + }), is) + }; - function is(e, t) { - if (t = Boolean(t), e.isMuted() === t) return Promise.resolve(); - const n = t ? "mute" : "unmute"; - return e[n]().catch((e => { - e.name !== Ct.TRACK_IS_DISPOSED && Fo.error(`set track ${n} failed`, e) - })) + function ss() { + return ss = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, ss.apply(this, arguments) } + var ls = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M.667 9a8.333 8.333 0 1016.666 0A8.333 8.333 0 00.667 9zm13.045-3.13a.833.833 0 00-1.175.085l-4.98 5.756-2.134-2.134a.833.833 0 00-1.179 1.179l2.767 2.767a.833.833 0 001.22-.044l5.566-6.434a.833.833 0 00-.085-1.175z", + fill: "#fff" + }); - function os(e) { - const t = qe(e), - { - videoInput: n - } = t["features/base/devices"].availableDevices; - return Sa() && n.length > 1 - } - - function ss(e = {}) { - return (t, n) => { - const a = e.devices || [Xi, to], - r = { - dispatch: t, - getState: n - }; - for (const i of a) { - if (Yo(n()["features/base/tracks"], i, !0)) throw new Error(`Local track for ${i} already exists`); - const a = Vo({ - cameraDeviceId: e.cameraDeviceId, - devices: [i], - facingMode: e.facingMode || Qi, - micDeviceId: e.micDeviceId - }, r).then((e => { - if (1 !== e.length) throw new Error(`Expected exactly 1 track, but was given ${e.length} tracks for device: ${i}.`); - return a.canceled ? gs(e).then((() => t(vs(i)))) : t(ps(e[0])) - }), (e => t(a.canceled ? vs(i) : bs(e, i)))); - a.cancel = () => (a.canceled = !0, a), t({ - type: mo, - track: { - gumProcess: a, - local: !0, - mediaType: i - } - }) - } - } - } - - function ls() { - return (e, t) => { - (function(e) { - const t = e => Fo.error("gumProcess.cancel failed", JSON.stringify(e)); - return Promise.all(e()["features/base/tracks"].filter((e => e.local)).map((({ - gumProcess: e - }) => e && e.cancel().catch(t)))) - })(t).then((() => e(fs(t()["features/base/tracks"].filter((e => e.local)).map((e => e.jitsiTrack)))))) - } - } - - function cs(e) { - return async (t, n) => { - let a; - const r = Xo(n()["features/base/tracks"], e); - r && (a = r.isReceivingData ? void 0 : { - uid: (await t(Wf({ - descriptionKey: "dialog.cameraNotSendingData", - titleKey: "dialog.cameraNotSendingDataTitle" - }))).uid - }, t(hs(e, a))) - } - } - - function us(e, t = !1, n = !1) { - return { - type: io, - enabled: e, - audioOnly: t, - ignoreDidHaveVideo: n - } - } - - function ds(e, t, n) { - return async (a, r) => (n || (n = r()["features/base/conference"].conference), n && await n.replaceTrack(e, t), a(function(e, t) { - return n => (e ? n(fs([e])) : Promise.resolve()).then((() => { - if (t) { - const e = t.isVideoTrack() ? cf : lf, - a = t.isMuted(); - return Ma(mn(t.getType(), "track.replaced", a)), Fo.log(`Replace ${t.getType()} track - ${a?"muted":"unmuted"}`), n(e(a)) - } - })).then((() => { - if (t) return n((e = [t], t => Promise.all(e.map((e => t(ps(e))))))); - var e - })) - }(e, t))) - } - - function ps(e) { - return async (t, n) => { - e.on(At.TRACK_MUTE_CHANGED, (() => t(function(e) { - return { - type: ho, - track: { - jitsiTrack: e, - muted: e.isMuted() - } - } - }(e)))), e.on(At.TRACK_VIDEOTYPE_CHANGED, (n => t(function(e, t) { - return { - type: ho, - track: { - jitsiTrack: e, - videoType: t - } - } - }(e, n)))); - const a = e.isLocal(), - r = e.getType(); - let i, o, s; - if (a) { - t(ks()); - const a = Rh(n); - if (a && (s = a.id), i = e.isReceivingData(), e.on(At.NO_DATA_FROM_SOURCE, (() => t(function(e) { - return { - type: co, - track: e - } - }({ - jitsiTrack: e - })))), !i) - if (r === Xi) { - const e = await t(Yf({ - descriptionKey: "dialog.micNotSendingData", - titleKey: "dialog.micNotSendingDataTitle" - })); - t(ks(e.uid)), o = { - uid: e.uid - } - } else o = { - timeout: setTimeout((() => t(cs(e))), 5e3) - }; - e.on(At.LOCAL_TRACK_STOPPED, (() => t({ - type: po, - track: { - jitsiTrack: e - } - }))) - } else s = e.getParticipantId(), i = !0; - return t({ - type: oo, - track: { - jitsiTrack: e, - isReceivingData: i, - local: a, - mediaType: r, - mirror: ys(e), - muted: e.isMuted(), - noDataFromSourceNotificationInfo: o, - participantId: s, - videoStarted: !1, - videoType: e.videoType - } - }) - } + function cs() { + return cs = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, cs.apply(this, arguments) } + var us = C().createElement("path", { + d: "M18.984 6.422L13.406 12l5.578 5.578-1.406 1.406L12 13.406l-5.578 5.578-1.406-1.406L10.594 12 5.016 6.422l1.406-1.406L12 10.594l5.578-5.578z" + }); + const ds = function(e) { + return C().createElement("svg", cs({}, e, { + viewBox: "0 0 24 24" + }), us) + }; - function hs(e, t) { - return { - type: ho, - track: { - jitsiTrack: e, - noDataFromSourceNotificationInfo: t + function ps() { + return ps = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } - } + return e + }, ps.apply(this, arguments) } + var hs = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M10 16.667a6.667 6.667 0 100-13.334 6.667 6.667 0 000 13.334zm0 1.666a8.333 8.333 0 110-16.666 8.333 8.333 0 010 16.666zm0-9.512l2.357-2.357a.833.833 0 111.179 1.179L11.179 10l2.357 2.357a.833.833 0 11-1.179 1.179L10 11.178l-2.357 2.357a.833.833 0 01-1.178-1.179L8.822 10 6.465 7.643a.833.833 0 111.178-1.179L10 8.821z" + }); + const ms = function(e) { + return C().createElement("svg", ps({}, e, { + viewBox: "0 0 20 20" + }), hs) + }; - function ms(e) { - return e.removeAllListeners(At.TRACK_MUTE_CHANGED), e.removeAllListeners(At.TRACK_VIDEOTYPE_CHANGED), e.removeAllListeners(At.NO_DATA_FROM_SOURCE), { - type: uo, - track: { - jitsiTrack: e + function fs() { + return fs = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } - } - } - - function fs(e) { - return t => gs(e).then((() => Promise.all(e.map((e => t(ms(e))))))) - } - - function gs(e) { - return Promise.all(e.map((e => e.dispose().catch((e => { - if (e.name !== Ct.TRACK_IS_DISPOSED) throw e - }))))) - } - - function bs(e, t) { - return n => { - n({ - type: lo, - permissionDenied: "SecurityError" === (null == e ? void 0 : e.name), - trackType: t - }) - } - } - - function ys(e) { - return e && e.isLocal() && e.isVideoTrack() && e.getCameraFacingMode() === Qi - } - - function vs(e) { - return { - type: so, - trackType: e - } + return e + }, fs.apply(this, arguments) } + var gs = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M.667 9a8.333 8.333 0 1016.666 0A8.333 8.333 0 00.667 9zm11.869-3.536a.833.833 0 00-1.179 0L9 7.821 6.643 5.464a.833.833 0 10-1.178 1.179L7.822 9l-2.357 2.357a.833.833 0 101.178 1.179L9 10.178l2.357 2.357a.833.833 0 101.179-1.179L10.179 9l2.357-2.357a.833.833 0 000-1.179z" + }); + const bs = function(e) { + return C().createElement("svg", fs({}, e, { + viewBox: "0 0 20 20" + }), gs) + }; - function ks(e) { - return { - type: ro, - uid: e - } + function ys() { + return ys = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, ys.apply(this, arguments) } + var vs = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M3.667 3.667h14.666v14.666H3.667V3.667zm-1.834 0c0-1.013.821-1.834 1.834-1.834h14.666c1.013 0 1.834.821 1.834 1.834v14.666c0 1.013-.821 1.834-1.834 1.834H3.667a1.833 1.833 0 01-1.834-1.834V3.667zm5.037 10.28c.445.245.958.369 1.538.369.341 0 .675-.044 1-.132.326-.095.612-.222.859-.38a.773.773 0 00.286-.263.668.668 0 00.095-.357.655.655 0 00-.131-.418.396.396 0 00-.322-.166.629.629 0 00-.262.06c-.087.03-.19.083-.31.154-.19.103-.365.187-.524.25-.151.056-.326.084-.524.084-.493 0-.874-.16-1.144-.477-.263-.326-.394-.786-.394-1.382 0-.604.131-1.065.394-1.383.27-.325.651-.488 1.144-.488.206 0 .389.032.548.095.159.056.325.135.5.238a2.4 2.4 0 00.286.143c.095.04.187.06.274.06a.385.385 0 00.322-.155.674.674 0 00.131-.429c0-.254-.127-.465-.381-.631a3.072 3.072 0 00-.834-.358 3.41 3.41 0 00-.93-.131c-.588 0-1.108.127-1.561.381a2.681 2.681 0 00-1.06 1.085c-.247.46-.37.993-.37 1.597 0 .603.12 1.132.358 1.585.238.452.576.802 1.012 1.048zm5.82 0c.444.245.956.369 1.536.369.342 0 .676-.044 1.001-.132.326-.095.612-.222.858-.38a.773.773 0 00.286-.263.669.669 0 00.096-.357.654.654 0 00-.131-.418.396.396 0 00-.322-.166.63.63 0 00-.262.06c-.088.03-.19.083-.31.154-.19.103-.366.187-.524.25a1.514 1.514 0 01-.525.084c-.492 0-.874-.16-1.144-.477-.262-.326-.393-.786-.393-1.382 0-.604.131-1.065.393-1.383.27-.325.652-.488 1.144-.488.207 0 .39.032.548.095.16.056.326.135.5.238a2.4 2.4 0 00.287.143c.095.04.187.06.274.06a.385.385 0 00.322-.155.674.674 0 00.13-.429c0-.254-.126-.465-.38-.631a3.073 3.073 0 00-.835-.358 3.41 3.41 0 00-.93-.131c-.587 0-1.107.127-1.56.381a2.682 2.682 0 00-1.06 1.085c-.247.46-.37.993-.37 1.597 0 .603.119 1.132.357 1.585.239.452.576.802 1.013 1.048z" + }); + const ks = function(e) { + return C().createElement("svg", ys({}, e, { + viewBox: "0 0 22 22" + }), vs) + }; function _s() { - return async (e, t) => { - const n = Ko(t()["features/base/tracks"]).jitsiTrack.getCameraFacingMode(); - await APP.conference.useVideoStream(null); - const a = n === Qi ? Zi : Qi; - e(bn({ - localFlipX: a === Qi - })); - const r = await st("video", null, null, { - facingMode: a - }); - await APP.conference.useVideoStream(r) - } - } - const ws = "#17A0DB", - Ss = "#AAAAAA", - Es = "#FFFFFF", - xs = /^#([0-9A-F]{2,2})([0-9A-F]{2,2})([0-9A-F]{2,2})$/i, - Cs = /^#([0-9A-F]{1,1})([0-9A-F]{1,1})([0-9A-F]{1,1})$/i, - As = /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/i; - - function js(e) { - if (!e) return {}; - if (Array.isArray(e)) { - const t = {}; - for (const n of e) Object.assign(t, js(n)); - return t - } - return e - } - - function Ps(e, t) { - const n = []; - return e && (Array.isArray(e) ? n.push(...e) : n.push(e)), t && (Array.isArray(t) ? n.push(...t) : n.push(t)), n - } - - function Ds(e) { - return Number(Math.round(255 * e)).toString(16).padStart(2, "0") - } - - function Ts(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + return _s = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, _s.apply(this, arguments) } + var ws = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M8.691 8l2.766-2.765a.489.489 0 00-.692-.692L8 7.31 5.235 4.543a.489.489 0 00-.692.692L7.31 8l-2.766 2.765a.489.489 0 10.692.692L8 8.69l2.765 2.766a.489.489 0 10.692-.692L8.69 8z", + fill: "#fff" + }); + const Ss = function(e) { + return C().createElement("svg", _s({}, e, { + viewBox: "0 0 16 16" + }), ws) + }; - function Os(e) { - return function(e) { + function Es() { + return Es = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Ts(e, t, n[t]) - })) + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }({}, e, { - lineHeight: `${e.lineHeight}px` - }) + }, Es.apply(this, arguments) } + var xs = C().createElement("path", { + clipRule: "evenodd", + d: "M15.872 7.703a1 1 0 011.337-1.487l5.256 4.705a1 1 0 010 1.487l-5.256 4.631a1 1 0 11-1.337-1.486l4.43-3.889-4.43-3.961zM8.465 15.553a1 1 0 11-1.338 1.487l-5.256-4.705a1 1 0 010-1.487l5.256-4.632a1 1 0 011.338 1.487l-4.43 3.888 4.43 3.962z" + }); + const Cs = function(e) { + return C().createElement("svg", Es({}, e, { + viewBox: "0 0 24 24", + fill: "none" + }), xs) + }; - function Ms(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - class Is extends E.Component { - _render(e, t) { - const n = t || this.props, - { - children: a, - style: r, - touchFeedback: i, - visible: o - } = n, - s = function(e, t) { - if (null == e) return {}; - var n, a, r = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, t); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) - } - return r - }(n, ["children", "style", "touchFeedback", "visible"]), - l = function(e) { - if (Array.isArray(e)) { - const t = {}; - for (const n of e) Object.assign(t, n); - return t - } - return e - }(r); - return x().createElement(e, function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Ms(e, t, n[t]) - })) - } - return e - }({ - style: l - }, s), a) - } - } - class Ns extends Is { - render() { - const { - visible: e = !0 - } = this.props; - return e ? super._render("div") : null - } - } + function As() { + return As = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, As.apply(this, arguments) + } + var Ts = C().createElement("mask", { + id: "gauge_svg__a", + maskUnits: "userSpaceOnUse", + x: .667, + y: 1.5, + width: 18, + height: 16, + fill: "#000" + }, C().createElement("path", { + fill: "#fff", + d: "M.667 1.5h18v16h-18z" + }), C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M10 4.015a6.818 6.818 0 00-4.821 11.64l-1.072 1.07a8.334 8.334 0 1111.786 0l-1.072-1.07A6.818 6.818 0 0010 4.014zm-.444 8.058l-1.071-1.071 1.071 1.071zm4.103-4.238l-.936-.936-4.682 4.088 1.53 1.53 4.088-4.682z" + })), + Ds = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M10 4.015a6.818 6.818 0 00-4.821 11.64l-1.072 1.07a8.334 8.334 0 1111.786 0l-1.072-1.07A6.818 6.818 0 0010 4.014zm-.444 8.058l-1.071-1.071 1.071 1.071zm4.103-4.238l-.936-.936-4.682 4.088 1.53 1.53 4.088-4.682z", + fill: "#fff" + }), + Ps = C().createElement("path", { + d: "M6.212 5.164l-.111-.166.111.166zm-2.511 3.06l.185.077-.185-.077zm-.388 3.94l.196-.04-.196.04zm1.866 3.49l.141.142.142-.141-.142-.142-.141.142zm-1.072 1.072l-.141.141.141.142.142-.142-.142-.141zm-2.28-4.267l-.196.04.196-.04zM2.3 7.644l-.185-.076.185.076zm3.07-3.74l.11.167-.11-.167zm9.259 0l-.111.167.11-.167zm3.069 3.74l.185-.076-.185.076zm.474 4.815l.196.04-.196-.04zm-2.28 4.267l-.142.141.142.142.141-.142-.141-.141zm-1.072-1.071l-.141-.142-.142.142.142.14.141-.14zm1.866-3.491l.196.039-.196-.04zm-.388-3.94l.185-.076-.185.076zm-2.511-3.06l.111-.166-.111.166zm-5.303 5.838l.141-.142-.23-.23-.101.31.19.062zm1.071 1.071l.19.062.038-.117-.086-.086-.142.141zm-1.071-1.071l-.19-.062-.038.116.086.087.142-.141zm1.071 1.071l-.141.141.23.23.101-.309-.19-.062zM12.723 6.9l.141-.142-.132-.132-.14.123.13.15zm.936.936l.15.132.124-.141-.133-.132-.14.141zm-5.618 3.152l-.131-.15-.161.14.15.151.142-.141zm1.53 1.53l-.141.141.151.151.14-.16-.15-.132zM6.323 5.33A6.618 6.618 0 0110 4.215v-.4a7.018 7.018 0 00-3.9 1.183l.223.333zM3.886 8.3a6.618 6.618 0 012.437-2.97l-.222-.333a7.018 7.018 0 00-2.585 3.15l.37.153zm-.377 3.823a6.618 6.618 0 01.377-3.823l-.37-.153a7.018 7.018 0 00-.4 4.055l.393-.079zm1.811 3.39a6.618 6.618 0 01-1.811-3.39l-.392.079a7.018 7.018 0 001.92 3.593l.283-.283zM4.25 16.866l1.071-1.071-.283-.283-1.071 1.071.283.283zM1.63 12.498a8.533 8.533 0 002.335 4.37l.283-.284a8.134 8.134 0 01-2.226-4.164l-.392.078zm.485-4.93a8.533 8.533 0 00-.485 4.93l.392-.078a8.133 8.133 0 01.463-4.7l-.37-.152zm3.143-3.83a8.533 8.533 0 00-3.143 3.83l.37.153A8.133 8.133 0 015.48 4.07l-.222-.333zM10 2.3c-1.688 0-3.338.5-4.74 1.438l.221.333A8.133 8.133 0 0110 2.7v-.4zm4.74 1.438A8.533 8.533 0 0010 2.3v.4c1.609 0 3.181.477 4.519 1.37l.222-.332zm3.144 3.83a8.533 8.533 0 00-3.143-3.83l-.222.333a8.133 8.133 0 012.995 3.65l.37-.153zm.485 4.93a8.534 8.534 0 00-.485-4.93l-.37.153a8.134 8.134 0 01.463 4.7l.392.077zm-2.335 4.37a8.534 8.534 0 002.335-4.37l-.392-.078a8.135 8.135 0 01-2.226 4.164l.283.283zm-1.354-1.072l1.071 1.071.283-.283-1.071-1.07-.283.282zm1.811-3.671a6.618 6.618 0 01-1.811 3.388l.283.283a7.018 7.018 0 001.92-3.593l-.392-.079zM16.114 8.3c.501 1.209.632 2.54.377 3.823l.392.079a7.018 7.018 0 00-.399-4.055l-.37.153zm-2.437-2.97a6.618 6.618 0 012.437 2.97l.37-.153a7.018 7.018 0 00-2.585-3.15l-.222.333zM10 4.215c1.309 0 2.588.388 3.677 1.116l.222-.333A7.018 7.018 0 0010 3.815v.4zm-1.657 6.928l1.072 1.071.283-.282-1.072-1.072-.283.283zm.332-.08l-.38-.123.38.124zm1.023.869L8.626 10.86l-.283.283 1.072 1.071.283-.282zm-.332.079l.38.124-.38-.124zm3.216-4.97l.936.935.282-.282-.936-.937-.283.283zm-4.41 4.096l4.682-4.087-.263-.302-4.681 4.088.263.301zm1.54 1.238l-1.53-1.53-.282.283 1.53 1.53.283-.283zm3.796-4.671l-4.087 4.681.3.263 4.089-4.681-.302-.263z", + fill: "#fff", + mask: "url(#gauge_svg__a)" + }); + const js = function(e) { + return C().createElement("svg", As({}, e, { + viewBox: "0 0 20 20", + fill: "none" + }), Ts, Ds, Ps) + }; - function zs() { - return zs = Object.assign || function(e) { + function Ms() { + return Ms = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, zs.apply(this, arguments) + }, Ms.apply(this, arguments) } + var Is = C().createElement("path", { + d: "M28 0a4 4 0 014 4v24a4 4 0 01-8 0V4a4 4 0 014-4zM16 8a4 4 0 014 4v16a4 4 0 01-8 0V12a4 4 0 014-4zM4 20a4 4 0 014 4v4a4 4 0 01-8 0v-4a4 4 0 014-4z" + }); + const Os = function(e) { + return C().createElement("svg", Ms({}, e, { + viewBox: "0 0 32 32" + }), Is) + }; - function Rs(e, t) { - if (null == e) return {}; - var n, a, r = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, t); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) - } - return r + function Ns() { + return Ns = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, Ns.apply(this, arguments) } - const Ls = "ReactNative" === navigator.product ? "white" : void 0, - Fs = "ReactNative" === navigator.product ? 36 : 22; + var Rs = C().createElement("path", { + d: "M7.75 13c-.01-.35.15-.69.42-.92.75.16 1.45.47 2.08.92 0 .68-.56 1.24-1.25 1.24S7.76 13.69 7.75 13zm6 0c.63-.44 1.33-.75 2.08-.91.27.23.43.57.42.91 0 .7-.56 1.26-1.25 1.26s-1.25-.56-1.25-1.26zM12 9c-2.77-.04-5.5.65-7.93 2L4 12c0 1.23.29 2.44.84 3.54a47.642 47.642 0 0114.32 0c.55-1.1.84-2.31.84-3.54l-.07-1A15.849 15.849 0 0012 9zm0-7c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z" + }); + const zs = function(e) { + return C().createElement("svg", Ns({}, e, { + viewBox: "0 0 24 24" + }), Rs) + }; - function qs(e) { - var t, n, a, r, i; - const { - className: o, - color: s, - id: l, - containerId: c, - onClick: u, - size: d, - src: p, - style: h, - ariaHasPopup: m, - ariaLabel: f, - ariaDisabled: g, - ariaExpanded: b, - ariaControls: y, - tabIndex: v, - ariaPressed: k, - ariaDescribedBy: _, - role: w, - onKeyPress: S, - onKeyDown: C - } = e, A = Rs(e, ["className", "color", "id", "containerId", "onClick", "size", "src", "style", "ariaHasPopup", "ariaLabel", "ariaDisabled", "ariaExpanded", "ariaControls", "tabIndex", "ariaPressed", "ariaDescribedBy", "role", "onKeyPress", "onKeyDown"]), j = js(null !== (t = h) && void 0 !== t ? t : {}), { - color: P, - fontSize: D - } = j, T = Rs(j, ["color", "fontSize"]), O = null !== (n = null !== (a = s) && void 0 !== a ? a : P) && void 0 !== n ? n : Ls, M = null !== (r = null !== (i = d) && void 0 !== i ? i : D) && void 0 !== r ? r : Fs, I = (0, E.useCallback)((e => { - "Enter" !== e.key && " " !== e.key || !u ? S && S(e) : (e.preventDefault(), u(e)) - }), [u, S]), N = O ? "jitsi-icon" : "jitsi-icon jitsi-icon-default"; - return x().createElement(Ns, zs({}, A, { - "aria-controls": y, - "aria-describedby": _, - "aria-disabled": g, - "aria-expanded": b, - "aria-haspopup": m, - "aria-label": f, - "aria-pressed": k, - className: `${N} ${o||""}`, - id: c, - onClick: u, - onKeyDown: C, - onKeyPress: I, - role: w, - style: T, - tabIndex: v - }), x().createElement(p, { - fill: O, - height: M, - id: l, - width: M - })) + function Ls() { + return Ls = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, Ls.apply(this, arguments) } + var Fs = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M4 4a2 2 0 012-2h8a2 2 0 012 2H6v14a2 2 0 01-2-2V4zm6 4v12h8V8h-8zm0-2h8a2 2 0 012 2v12a2 2 0 01-2 2h-8a2 2 0 01-2-2V8a2 2 0 012-2z" + }); + const qs = function(e) { + return C().createElement("svg", Ls({}, e, { + viewBox: "0 0 24 24" + }), Fs) + }; function Bs() { return Bs = Object.assign || function(e) { @@ -4861,14 +4665,13 @@ return e }, Bs.apply(this, arguments) } - qs.defaultProps = { - className: "" - }; - var Us = x().createElement("path", { - d: "M18.984 12.984h-6v6h-1.969v-6h-6v-1.969h6v-6h1.969v6h6v1.969z" + var Us = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M14 4a2 2 0 01-1.298 1.873l1.527 4.07.716 1.912c.062.074.126.074.165.035l1.444-1.444 2.032-2.032a2 2 0 111.248.579L19 19a2 2 0 01-2 2H7a2 2 0 01-2-2L4.166 8.993a2 2 0 111.248-.579l2.033 2.033L8.89 11.89c.087.042.145.016.165-.035l.716-1.912 1.527-4.07A2 2 0 1114 4zM6.84 17l-.393-4.725 1.029 1.03a2.1 2.1 0 003.451-.748L12 9.696l1.073 2.86a2.1 2.1 0 003.451.748l1.03-1.03L17.16 17H6.84z" }); const Hs = function(e) { - return x().createElement("svg", Bs({}, e, { + return C().createElement("svg", Bs({}, e, { viewBox: "0 0 24 24" }), Us) }; @@ -4882,12 +4685,14 @@ return e }, Vs.apply(this, arguments) } - var Ws = x().createElement("path", { - d: "M20 18.688c3.563 0 10.688 1.75 10.688 5.313v2.688H9.313v-2.688c0-3.563 7.125-5.313 10.688-5.313zM8 13.313h4v2.688H8v4H5.312v-4h-4v-2.688h4v-4H8v4zM20 16c-2.938 0-5.313-2.375-5.313-5.313S17.062 5.312 20 5.312s5.313 2.438 5.313 5.375S22.938 16 20 16z" + var Ws = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M13.75 1.833h.537c.243 0 .476.097.648.269l3.13 3.13a.917.917 0 01.268.648v13.37c0 .506-.41.917-.916.917H4.583a.917.917 0 01-.916-.917V2.75c0-.506.41-.917.916-.917h9.167zm-1.833 1.834v2.75c0 1.012.82 1.833 1.833 1.833h2.75v10.083h-11V3.667h6.417zm4.583 2.75h-2.75v-2.75h.157L16.5 6.259v.158zm-8.25 8.25a.917.917 0 000 1.833h5.5a.917.917 0 000-1.833h-5.5zm-.917-1.834c0-.506.41-.916.917-.916h5.5a.917.917 0 010 1.833h-5.5a.917.917 0 01-.917-.917zm.917-3.666a.917.917 0 100 1.833h5.5a.917.917 0 000-1.833h-5.5z" }); const Ys = function(e) { - return x().createElement("svg", Vs({}, e, { - viewBox: "0 0 32 32" + return C().createElement("svg", Vs({}, e, { + viewBox: "0 0 22 22" }), Ws) }; @@ -4900,14 +4705,12 @@ return e }, Gs.apply(this, arguments) } - var Ks = x().createElement("path", { - clipRule: "evenodd", - d: "M8.07.248a.75.75 0 111.115 1.004L5.656 5.193a.75.75 0 01-1.115 0L1.068 1.252A.75.75 0 012.182.248L5.1 3.571 8.07.248z" + var Ks = C().createElement("path", { + d: "M26 10c1.109 0 2 .891 2 2s-.891 2-2 2v6c0 1.094-.906 2-2 2-2.781-2.312-7.266-5.484-12.688-5.938-1.859.625-2.5 2.797-1.281 4.047-1.094 1.797.313 3.063 1.969 4.359-.969 1.906-5 1.937-6.438.609-.906-2.781-2.25-5.563-1.156-9.078H2.5a2.507 2.507 0 01-2.5-2.5v-3c0-1.375 1.125-2.5 2.5-2.5H10c6 0 11-3.5 14-6 1.094 0 2 .906 2 2v6zm-2 9.437V4.531c-4.078 3.125-8.031 4.922-12 5.359v4.219c3.969.438 7.922 2.203 12 5.328z" }); const $s = function(e) { - return x().createElement("svg", Gs({}, e, { - viewBox: "0 0 10 6", - fill: "none" + return C().createElement("svg", Gs({}, e, { + viewBox: "0 0 28 28" }), Ks) }; @@ -4920,12 +4723,12 @@ return e }, Js.apply(this, arguments) } - var Zs = x().createElement("path", { + var Zs = C().createElement("path", { clipRule: "evenodd", - d: "M16.093 8.331a1 1 0 011.487 1.338l-4.705 5.256a1 1 0 01-1.487 0L6.757 9.669a1 1 0 111.486-1.338l3.889 4.43 3.961-4.43z" + d: "M11 13.37V5a1 1 0 112 0v8.467l2.631-2.924a1 1 0 011.487 1.338l-5.012 5.568a.085.085 0 01-.126 0L6.97 11.881a1 1 0 111.487-1.338L11 13.371zM20 15a1 1 0 112 0v6a1 1 0 01-1 1H3a1 1 0 01-1-1v-6a1 1 0 112 0v5h16v-5z" }); const Qs = function(e) { - return x().createElement("svg", Js({}, e, { + return C().createElement("svg", Js({}, e, { viewBox: "0 0 24 24", fill: "none" }), Zs) @@ -4940,13 +4743,13 @@ return e }, Xs.apply(this, arguments) } - var el = x().createElement("path", { + var el = C().createElement("path", { clipRule: "evenodd", - d: "M8.411 6.057A.833.833 0 109.65 4.943L5.73.563a.833.833 0 00-1.24 0L.63 4.943a.833.833 0 001.24 1.114l3.24-3.691L8.41 6.057z" + d: "M3.75 7.5h10.5V15H3.75V7.5zM14.25 6h-1.5v-.75a3.75 3.75 0 10-7.5 0V6h-1.5a1.5 1.5 0 00-1.5 1.5V15a1.5 1.5 0 001.5 1.5h10.5a1.5 1.5 0 001.5-1.5V7.5a1.5 1.5 0 00-1.5-1.5zm-4.524 5.813a1.5 1.5 0 10-1.452 0A.751.751 0 008.25 12v.75a.75.75 0 001.5 0V12a.751.751 0 00-.024-.187zM9 3a2.25 2.25 0 012.25 2.25V6h-4.5v-.75A2.25 2.25 0 019 3z" }); const tl = function(e) { - return x().createElement("svg", Xs({}, e, { - viewBox: "0 0 10 7", + return C().createElement("svg", Xs({}, e, { + viewBox: "0 0 18 18", fill: "none" }), el) }; @@ -4960,14 +4763,14 @@ return e }, nl.apply(this, arguments) } - var al = x().createElement("path", { + var al = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", - d: "M16.522 18.27a1 1 0 11-1.338 1.487l-7.866-7.08a1 1 0 010-1.487l7.866-7.08a1 1 0 111.338 1.487l-7.04 6.336 7.04 6.337z", + d: "M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zm0 4v10h16V8l-8 4-8-4zm16-2H4l8 4 8-4z", fill: "#A4B8D1" }); const rl = function(e) { - return x().createElement("svg", nl({}, e, { + return C().createElement("svg", nl({}, e, { viewBox: "0 0 24 24", fill: "none" }), al) @@ -4982,12 +4785,14 @@ return e }, il.apply(this, arguments) } - var ol = x().createElement("path", { - d: "M18.688 4.313c5.375 1.188 9.313 6 9.313 11.688s-3.938 10.5-9.313 11.688v-2.75c3.875-1.125 6.625-4.688 6.625-8.938s-2.75-7.813-6.625-8.938v-2.75zM22 16a5.936 5.936 0 01-3.313 5.375v-10.75c2 1 3.313 3 3.313 5.375zM4 12h5.313l6.688-6.688v21.375l-6.688-6.688H4v-8z" + var ol = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M8 14.667A6.667 6.667 0 118 1.333a6.667 6.667 0 010 13.334zm-.667-10a.667.667 0 111.334 0V8a.667.667 0 11-1.334 0V4.667zM8 10a.667.667 0 100 1.333A.667.667 0 008 10z" }); const sl = function(e) { - return x().createElement("svg", il({}, e, { - viewBox: "0 0 32 32" + return C().createElement("svg", il({}, e, { + viewBox: "0 0 16 16" }), ol) }; @@ -5000,207 +4805,208 @@ return e }, ll.apply(this, arguments) } - var cl = x().createElement("path", { + var cl = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", - d: "M5 2.5a.833.833 0 011.667 0v.833h6.666V2.5A.833.833 0 1115 2.5v.833h1.667c.92 0 1.666.747 1.666 1.667v11.667c0 .92-.746 1.666-1.666 1.666H3.333c-.92 0-1.666-.746-1.666-1.666V5c0-.92.746-1.667 1.666-1.667H5V2.5zM3.333 16.667V5h13.334v11.667H3.333zm6.667-10a.833.833 0 00-.833.833V10h-2.5a.833.833 0 000 1.667h2.5v2.5a.833.833 0 001.666 0v-2.5h2.5a.833.833 0 000-1.667h-2.5V7.5A.833.833 0 0010 6.667z", - fill: "#0163FF" + d: "M17.233 14.325L9.708.911a.817.817 0 00-1.417 0L.768 14.325a.78.78 0 00-.1.382.8.8 0 00.808.793h15.05a.82.82 0 00.39-.098.785.785 0 00.318-1.077zm-14.39-.41L9 2.937l6.158 10.978H2.842zm5.349-2.378c0-.438.355-.793.792-.793h.032a.793.793 0 110 1.586h-.032a.793.793 0 01-.792-.793zM9 6.781a.808.808 0 00-.808.809v1.554a.808.808 0 001.617 0V7.59A.808.808 0 009 6.782z", + fill: "#040404" }); - const ul = function(e) { - return x().createElement("svg", ll({}, e, { - viewBox: "0 0 20 20", - fill: "none" - }), cl) - }; - function dl() { - return dl = Object.assign || function(e) { + function ul() { + return ul = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, dl.apply(this, arguments) + }, ul.apply(this, arguments) } - var pl = x().createElement("path", { - fillRule: "evenodd", + var dl = C().createElement("path", { clipRule: "evenodd", - d: "M1.667 10a8.333 8.333 0 1016.666 0 8.333 8.333 0 00-16.666 0zm15.151 0a6.818 6.818 0 11-13.636 0 6.818 6.818 0 0113.636 0zm-7.576.758v3.03h1.516v-3.03h3.03V9.242h-3.03v-3.03H9.242v3.03h-3.03v1.516h3.03z", - fill: "#669AEC" + d: "M17.417 8.25v1.833h-4.584a.917.917 0 01-.916-.916V4.583h1.833V8.25h3.667zM4.583 8.25v1.833h4.584c.506 0 .916-.41.916-.916V4.583H8.25V8.25H4.583zM17.417 13.75v-1.833h-4.584a.917.917 0 00-.916.916v4.584h1.833V13.75h3.667zM4.583 13.75v-1.833h4.584c.506 0 .916.41.916.916v4.584H8.25V13.75H4.583z" }); - const hl = function(e) { - return x().createElement("svg", dl({}, e, { - viewBox: "0 0 20 20" - }), pl) + const pl = function(e) { + return C().createElement("svg", ul({}, e, { + viewBox: "0 0 22 22", + fill: "none" + }), dl) }; - function ml() { - return ml = Object.assign || function(e) { + function hl() { + return hl = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, ml.apply(this, arguments) + }, hl.apply(this, arguments) } - var fl = x().createElement("path", { - d: "M4.375 2.688L28 26.313l-1.688 1.688-4.25-4.25c-.188.125-.5.25-.75.25h-16c-.75 0-1.313-.563-1.313-1.313V9.313c0-.75.563-1.313 1.313-1.313h1L2.687 4.375zm23.625 6v14.25L13.062 8h8.25c.75 0 1.375.563 1.375 1.313v4.688z" + var ml = C().createElement("path", { + clipRule: "evenodd", + d: "M2.278 7.066l8.25-4.95a.917.917 0 01.944 0l8.25 4.95a.917.917 0 01.445.786V19.25c0 .506-.41.917-.917.917H2.75a.917.917 0 01-.917-.917V7.852c0-.322.17-.62.445-.786zm1.389 2.977v8.29h14.666v-8.29l-6.796 4.908a.917.917 0 01-1.074 0l-6.796-4.908zm.446-1.94L11 13.079l6.887-4.974L11 3.97 4.113 8.104zm4.94.605a.917.917 0 01-.969-1.557l2.432-1.513a.917.917 0 01.97.001l2.427 1.517a.917.917 0 01-.972 1.555l-1.024-.64V11a.917.917 0 01-1.834 0V8.066l-1.03.642z" }); - const gl = function(e) { - return x().createElement("svg", ml({}, e, { - viewBox: "0 0 32 32" - }), fl) + const fl = function(e) { + return C().createElement("svg", hl({}, e, { + viewBox: "0 0 22 22", + fill: "none" + }), ml) }; - function bl() { - return bl = Object.assign || function(e) { + function gl() { + return gl = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, bl.apply(this, arguments) + }, gl.apply(this, arguments) } - var yl = x().createElement("path", { + var bl = C().createElement("path", { clipRule: "evenodd", - d: "M13.75 5.5H3.667c-1.013 0-1.834.82-1.834 1.833v7.334c0 1.012.821 1.833 1.834 1.833H13.75c1.012 0 1.833-.82 1.833-1.833v-.786l3.212 1.835a.916.916 0 001.372-.796V7.08a.917.917 0 00-1.372-.796l-3.212 1.835v-.786c0-1.012-.82-1.833-1.833-1.833zm0 3.667v5.5H3.667V7.333H13.75v1.834zm4.583 4.174l-2.75-1.572v-1.538l2.75-1.572v4.682z" + d: "M8.25 2.75H3.667a.917.917 0 00-.917.917V8.25h1.833V4.583H8.25V2.75zm5.5 1.833V2.75h4.583c.507 0 .917.41.917.917V8.25h-1.833V4.583H13.75zm0 12.834h3.667V13.75h1.833v4.583c0 .507-.41.917-.917.917H13.75v-1.833zM4.583 13.75v3.667H8.25v1.833H3.667a.917.917 0 01-.917-.917V13.75h1.833z" }); - const vl = function(e) { - return x().createElement("svg", bl({}, e, { + const yl = function(e) { + return C().createElement("svg", gl({}, e, { viewBox: "0 0 22 22", fill: "none" - }), yl) + }), bl) }; - function kl() { - return kl = Object.assign || function(e) { + function vl() { + return vl = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, kl.apply(this, arguments) + }, vl.apply(this, arguments) } - var _l = x().createElement("path", { + var kl = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", - d: "M6.84 5.5h-.022L3.424 2.106a.932.932 0 10-1.318 1.318L4.182 5.5h-.515c-1.013 0-1.834.82-1.834 1.833v7.334c0 1.012.821 1.833 1.834 1.833H13.75c.404 0 .777-.13 1.08-.352l3.746 3.746a.932.932 0 101.318-1.318l-4.31-4.31v-.024L13.75 12.41v.023l-5.1-5.099h.024L6.841 5.5zm6.91 4.274V7.333h-2.44L9.475 5.5h4.274c1.012 0 1.833.82 1.833 1.833v.786l3.212-1.835a.917.917 0 011.372.796v7.84c0 .344-.19.644-.47.8l-3.736-3.735 2.372 1.356V8.659l-2.75 1.571v1.377L13.75 9.774zM3.667 7.334h2.349l7.333 7.333H3.667V7.333z" + d: "M20.236 10.354h-.676v-.034H12v3.36h4.748A5.04 5.04 0 0112 17.04 5.04 5.04 0 016.96 12 5.04 5.04 0 0112 6.96c1.285 0 2.454.484 3.344 1.276l2.375-2.375A8.36 8.36 0 0012 3.6 8.4 8.4 0 003.6 12a8.4 8.4 0 008.4 8.4 8.4 8.4 0 008.236-10.046z", + fill: "#A4B8D1" }); - const wl = function(e) { - return x().createElement("svg", kl({}, e, { - viewBox: "0 0 22 22" - }), _l) + const _l = function(e) { + return C().createElement("svg", vl({}, e, { + viewBox: "0 0 24 24", + fill: "none" + }), kl) }; - function Sl() { - return Sl = Object.assign || function(e) { + function wl() { + return wl = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Sl.apply(this, arguments) + }, wl.apply(this, arguments) } - var El = x().createElement("path", { - clipRule: "evenodd", - d: "M3.333 7.5V15c0 .46.373.833.834.833h11.666c.46 0 .834-.373.834-.833V7.5a.833.833 0 00-.834-.833h-2.357L11.81 5H8.19L6.524 6.667H4.167a.833.833 0 00-.834.833zm2.5-2.5l1.179-1.179a1.667 1.667 0 011.178-.488h3.62c.442 0 .866.176 1.178.488L14.167 5h1.666a2.5 2.5 0 012.5 2.5V15a2.5 2.5 0 01-2.5 2.5H4.167a2.5 2.5 0 01-2.5-2.5V7.5a2.5 2.5 0 012.5-2.5h1.666zm-1.5 6.667l2.5-2.5 2.5 2.5h-1.69a2.487 2.487 0 003.958 1.057l1.146 1.211a4.154 4.154 0 01-6.83-2.268H4.333zM15.833 10l-2.5 2.5-2.5-2.5h1.529a2.487 2.487 0 00-3.899-1.124c-.021.017-1.04-1.302-1.04-1.302A4.154 4.154 0 0114.086 10h1.747z" + var Sl = C().createElement("path", { + d: "M16 12c-2.125 0-4.188.313-6.125.938v4.125c0 .5-.313 1.063-.75 1.25a13.87 13.87 0 00-3.563 2.438c-.25.25-.563.375-.938.375s-.688-.125-.938-.375L.373 17.438c-.25-.25-.375-.563-.375-.938s.125-.688.375-.938c4.063-3.875 9.563-6.25 15.625-6.25s11.563 2.375 15.625 6.25c.25.25.375.563.375.938s-.125.688-.375.938l-3.313 3.313c-.25.25-.563.375-.938.375s-.688-.125-.938-.375a13.87 13.87 0 00-3.563-2.438c-.438-.188-.75-.625-.75-1.188V13c-1.938-.625-4-1-6.125-1z" }); - const xl = function(e) { - return x().createElement("svg", Sl({}, e, { - viewBox: "0 0 20 20", - fill: "none" - }), El) + const El = function(e) { + return C().createElement("svg", wl({}, e, { + viewBox: "0 0 32 32" + }), Sl) }; - function Cl() { - return Cl = Object.assign || function(e) { + function xl() { + return xl = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Cl.apply(this, arguments) + }, xl.apply(this, arguments) } - var Al = x().createElement("path", { - d: "M17.016 15.609L13.407 12l3.609-3.609-1.406-1.406-3.609 3.609-3.609-3.609-1.406 1.406L10.595 12l-3.609 3.609 1.406 1.406 3.609-3.609 3.609 3.609zM12 2.016q4.125 0 7.055 2.93t2.93 7.055-2.93 7.055T12 21.986t-7.055-2.93-2.93-7.055 2.93-7.055T12 2.016z" + var Cl = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M10 18.333a8.333 8.333 0 110-16.666 8.333 8.333 0 010 16.666zm0-1.666a6.667 6.667 0 100-13.334 6.667 6.667 0 000 13.334zm-.752-1.774c.198.171.429.257.693.257a.988.988 0 00.677-.26c.196-.174.293-.413.293-.717a.938.938 0 00-.28-.69.938.938 0 00-.69-.28.968.968 0 00-.703.28.927.927 0 00-.286.69c0 .308.099.548.296.72zM7.161 6.76c-.264.423-.397.841-.397 1.253 0 .2.084.386.251.557a.826.826 0 00.615.257c.413 0 .692-.245.84-.736.156-.468.347-.823.573-1.064.226-.24.577-.361 1.055-.361.408 0 .74.119.999.358.258.238.387.531.387.879a1 1 0 01-.127.494c-.084.152-.188.29-.312.414s-.325.307-.602.55c-.317.278-.569.518-.755.72a2.405 2.405 0 00-.45.702c-.113.268-.169.583-.169.948 0 .29.077.51.231.657a.792.792 0 00.57.222c.434 0 .692-.226.775-.677.047-.213.083-.362.107-.446a1.37 1.37 0 01.1-.254c.044-.085.11-.178.2-.28.088-.102.207-.22.354-.355.534-.478.904-.817 1.11-1.019a2.97 2.97 0 00.534-.72c.15-.277.225-.6.225-.97 0-.468-.132-.902-.394-1.301-.263-.4-.635-.716-1.117-.948-.481-.232-1.037-.348-1.666-.348-.677 0-1.27.139-1.778.417-.507.277-.894.628-1.159 1.051z" }); - const jl = function(e) { - return x().createElement("svg", Cl({}, e, { - viewBox: "0 0 24 24" - }), Al) + const Al = function(e) { + return C().createElement("svg", xl({}, e, { + viewBox: "0 0 20 20" + }), Cl) }; - function Pl() { - return Pl = Object.assign || function(e) { + function Tl() { + return Tl = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Pl.apply(this, arguments) + }, Tl.apply(this, arguments) } - var Dl = x().createElement("path", { + var Dl = C().createElement("path", { clipRule: "evenodd", - d: "M15.583 20.196c.507 0 .917-.41.917-.917v-4.612h2.75c.506 0 .917-.41.917-.917v-11a.917.917 0 00-.917-.917H2.75a.917.917 0 00-.917.917v11c0 .506.41.917.917.917h7.843l4.283 5.195a.917.917 0 00.707.334zM3.667 3.666h14.666v9.167h-3.666v3.893l-3.21-3.893h-7.79V3.667z" + d: "M6.417 11a1.833 1.833 0 11-3.667 0 1.833 1.833 0 013.667 0zM11 12.833a1.833 1.833 0 100-3.666 1.833 1.833 0 000 3.666zm6.417 0a1.833 1.833 0 100-3.666 1.833 1.833 0 000 3.666z" }); - const Tl = function(e) { - return x().createElement("svg", Pl({}, e, { + const Pl = function(e) { + return C().createElement("svg", Tl({}, e, { viewBox: "0 0 22 22", fill: "none" }), Dl) }; - function Ol() { - return Ol = Object.assign || function(e) { + function jl() { + return jl = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Ol.apply(this, arguments) + }, jl.apply(this, arguments) } - var Ml = x().createElement("path", { - d: "M18 8.016V6H6v2.016h12zm-3.984 6V12H6v2.016h8.016zM6 9v2.016h12V9H6zm14.016-6.984c1.078 0 1.969.891 1.969 1.969v12c0 1.078-.891 2.016-1.969 2.016H6l-3.984 3.984v-18c0-1.078.891-1.969 1.969-1.969h16.031z" + var Ml = C().createElement("path", { + d: "M16 2.667C8.64 2.667 2.667 8.64 2.667 16S8.64 29.333 16 29.333 29.333 23.36 29.333 16 23.36 2.667 16 2.667zm1.333 20h-2.667v-8h2.667v8zm0-10.667h-2.667V9.333h2.667V12z" }); const Il = function(e) { - return x().createElement("svg", Ol({}, e, { - viewBox: "0 0 24 24" + return C().createElement("svg", jl({}, e, { + viewBox: "0 0 32 32" }), Ml) }; - function Nl() { - return Nl = Object.assign || function(e) { + function Ol() { + return Ol = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Nl.apply(this, arguments) + }, Ol.apply(this, arguments) } - var zl = x().createElement("path", { - d: "M9 16.172L19.594 5.578 21 6.984l-12 12-5.578-5.578L4.828 12z" + var Nl = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M12.833 6.417a1.833 1.833 0 11-3.666 0 1.833 1.833 0 013.666 0zm-5.5 0a3.667 3.667 0 107.334 0 3.667 3.667 0 00-7.334 0zM11 11c-5.513 0-7.333 2.063-7.333 6.188 0 1.375.61 2.062 1.833 2.062h8.028a4.125 4.125 0 103.495-6.416C15.908 11.61 14 11 11 11zm3.817 2.432c-.85-.424-2.08-.599-3.817-.599-4.306 0-5.5 1.076-5.5 4.354 0 .1.003.176.006.23h7.352a4.123 4.123 0 011.958-3.985zm2.6 3.068h1.833v.917h-1.833v1.833H16.5v-1.833h-1.833V16.5H16.5v-1.833h.917V16.5z" }); const Rl = function(e) { - return x().createElement("svg", Nl({}, e, { - viewBox: "0 0 24 24" - }), zl) + return C().createElement("svg", Ol({}, e, { + viewBox: "0 0 22 22" + }), Nl) }; - function Ll() { - return Ll = Object.assign || function(e) { + function zl() { + return zl = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Ll.apply(this, arguments) + }, zl.apply(this, arguments) } - var Fl = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M.667 9a8.333 8.333 0 1016.666 0A8.333 8.333 0 00.667 9zm13.045-3.13a.833.833 0 00-1.175.085l-4.98 5.756-2.134-2.134a.833.833 0 00-1.179 1.179l2.767 2.767a.833.833 0 001.22-.044l5.566-6.434a.833.833 0 00-.085-1.175z", - fill: "#fff" + var Ll = C().createElement("path", { + d: "M16 6.688l8.875 13.313H7.125zm-9.312 16h18.625v2.625H6.688v-2.625z" }); + const Fl = function(e) { + return C().createElement("svg", zl({}, e, { + viewBox: "0 0 32 32" + }), Ll) + }; function ql() { return ql = Object.assign || function(e) { @@ -5211,12 +5017,14 @@ return e }, ql.apply(this, arguments) } - var Bl = x().createElement("path", { - d: "M18.984 6.422L13.406 12l5.578 5.578-1.406 1.406L12 13.406l-5.578 5.578-1.406-1.406L10.594 12 5.016 6.422l1.406-1.406L12 10.594l5.578-5.578z" + var Bl = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M11 20.167a9.167 9.167 0 110-18.334 9.167 9.167 0 010 18.334zm0-1.834c.196 0 .39-.007.582-.022-1.032-.885-1.989-1.997-2.824-3.309-1.26.193-2.583.185-3.935-.048A7.328 7.328 0 0011 18.334zm-.347-3.786c.96 1.376 2.066 2.457 3.233 3.197.27-.116.531-.247.783-.393a.93.93 0 01.007-.062c.254-1.808.2-3.442-.13-4.941a11.59 11.59 0 01-3.893 2.2zm3.286-4.134a9.78 9.78 0 01-4.27 2.518c-1.2-2.256-2.039-5.076-2.27-8.32a7.292 7.292 0 011.36-.595 818.04 818.04 0 00.56.48c.28.242.517.452.75.665a19.214 19.214 0 011.602 1.634c.968 1.121 1.733 2.317 2.268 3.618zm1.294-1.583c-.57-1.147-1.3-2.22-2.174-3.232a21.004 21.004 0 00-1.906-1.93 7.316 7.316 0 015.376 2.514 11.302 11.302 0 01-1.296 2.648zm.803 1.993c.466 1.49.684 3.096.622 4.842A7.303 7.303 0 0018.333 11a7.309 7.309 0 00-.597-2.903c-.461 1-1.034 1.913-1.7 2.726zM3.92 12.869c1.325.378 2.627.502 3.867.4-1.03-2.09-1.776-4.558-2.102-7.32A7.308 7.308 0 003.667 11c0 .653.085 1.287.246 1.89l.006-.021z" }); const Ul = function(e) { - return x().createElement("svg", ql({}, e, { - viewBox: "0 0 24 24" + return C().createElement("svg", ql({}, e, { + viewBox: "0 0 22 22" }), Bl) }; @@ -5229,14 +5037,12 @@ return e }, Hl.apply(this, arguments) } - var Vl = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M10 16.667a6.667 6.667 0 100-13.334 6.667 6.667 0 000 13.334zm0 1.666a8.333 8.333 0 110-16.666 8.333 8.333 0 010 16.666zm0-9.512l2.357-2.357a.833.833 0 111.179 1.179L11.179 10l2.357 2.357a.833.833 0 11-1.179 1.179L10 11.178l-2.357 2.357a.833.833 0 01-1.178-1.179L8.822 10 6.465 7.643a.833.833 0 111.178-1.179L10 8.821z" + var Vl = C().createElement("path", { + d: "M3 6h18v2.016H3V6zm0 6.984v-1.969h18v1.969H3zM3 18v-2.016h18V18H3z" }); const Wl = function(e) { - return x().createElement("svg", Hl({}, e, { - viewBox: "0 0 20 20" + return C().createElement("svg", Hl({}, e, { + viewBox: "0 0 24 24" }), Vl) }; @@ -5249,14 +5055,12 @@ return e }, Yl.apply(this, arguments) } - var Gl = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M3.667 3.667h14.666v14.666H3.667V3.667zm-1.834 0c0-1.013.821-1.834 1.834-1.834h14.666c1.013 0 1.834.821 1.834 1.834v14.666c0 1.013-.821 1.834-1.834 1.834H3.667a1.833 1.833 0 01-1.834-1.834V3.667zm5.037 10.28c.445.245.958.369 1.538.369.341 0 .675-.044 1-.132.326-.095.612-.222.859-.38a.773.773 0 00.286-.263.668.668 0 00.095-.357.655.655 0 00-.131-.418.396.396 0 00-.322-.166.629.629 0 00-.262.06c-.087.03-.19.083-.31.154-.19.103-.365.187-.524.25-.151.056-.326.084-.524.084-.493 0-.874-.16-1.144-.477-.263-.326-.394-.786-.394-1.382 0-.604.131-1.065.394-1.383.27-.325.651-.488 1.144-.488.206 0 .389.032.548.095.159.056.325.135.5.238a2.4 2.4 0 00.286.143c.095.04.187.06.274.06a.385.385 0 00.322-.155.674.674 0 00.131-.429c0-.254-.127-.465-.381-.631a3.072 3.072 0 00-.834-.358 3.41 3.41 0 00-.93-.131c-.588 0-1.108.127-1.561.381a2.681 2.681 0 00-1.06 1.085c-.247.46-.37.993-.37 1.597 0 .603.12 1.132.358 1.585.238.452.576.802 1.012 1.048zm5.82 0c.444.245.956.369 1.536.369.342 0 .676-.044 1.001-.132.326-.095.612-.222.858-.38a.773.773 0 00.286-.263.669.669 0 00.096-.357.654.654 0 00-.131-.418.396.396 0 00-.322-.166.63.63 0 00-.262.06c-.088.03-.19.083-.31.154-.19.103-.366.187-.524.25a1.514 1.514 0 01-.525.084c-.492 0-.874-.16-1.144-.477-.262-.326-.393-.786-.393-1.382 0-.604.131-1.065.393-1.383.27-.325.652-.488 1.144-.488.207 0 .39.032.548.095.16.056.326.135.5.238a2.4 2.4 0 00.287.143c.095.04.187.06.274.06a.385.385 0 00.322-.155.674.674 0 00.13-.429c0-.254-.126-.465-.38-.631a3.073 3.073 0 00-.835-.358 3.41 3.41 0 00-.93-.131c-.587 0-1.107.127-1.56.381a2.682 2.682 0 00-1.06 1.085c-.247.46-.37.993-.37 1.597 0 .603.119 1.132.357 1.585.239.452.576.802 1.013 1.048z" + var Gl = C().createElement("path", { + d: "M22.125 11.438L24 13.313l-8 8-8-8 1.875-1.875L16 17.563z" }); const Kl = function(e) { - return x().createElement("svg", Yl({}, e, { - viewBox: "0 0 22 22" + return C().createElement("svg", Yl({}, e, { + viewBox: "0 0 32 32" }), Gl) }; @@ -5269,15 +5073,12 @@ return e }, $l.apply(this, arguments) } - var Jl = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M8.691 8l2.766-2.765a.489.489 0 00-.692-.692L8 7.31 5.235 4.543a.489.489 0 00-.692.692L7.31 8l-2.766 2.765a.489.489 0 10.692.692L8 8.69l2.765 2.766a.489.489 0 10.692-.692L8.69 8z", - fill: "#fff" + var Jl = C().createElement("path", { + d: "M12 15.984c1.078 0 2.016.938 2.016 2.016s-.938 2.016-2.016 2.016S9.984 19.078 9.984 18s.938-2.016 2.016-2.016zm0-6c1.078 0 2.016.938 2.016 2.016s-.938 2.016-2.016 2.016S9.984 13.078 9.984 12 10.922 9.984 12 9.984zm0-1.968c-1.078 0-2.016-.938-2.016-2.016S10.922 3.984 12 3.984s2.016.938 2.016 2.016S13.078 8.016 12 8.016z" }); const Zl = function(e) { - return x().createElement("svg", $l({}, e, { - viewBox: "0 0 16 16" + return C().createElement("svg", $l({}, e, { + viewBox: "0 0 24 24" }), Jl) }; @@ -5290,14 +5091,12 @@ return e }, Ql.apply(this, arguments) } - var Xl = x().createElement("path", { - clipRule: "evenodd", - d: "M15.872 7.703a1 1 0 011.337-1.487l5.256 4.705a1 1 0 010 1.487l-5.256 4.631a1 1 0 11-1.337-1.486l4.43-3.889-4.43-3.961zM8.465 15.553a1 1 0 11-1.338 1.487l-5.256-4.705a1 1 0 010-1.487l5.256-4.632a1 1 0 011.338 1.487l-4.43 3.888 4.43 3.962z" + var Xl = C().createElement("path", { + d: "M16 10.688l8 8-1.875 1.875L16 14.438l-6.125 6.125L8 18.688z" }); const ec = function(e) { - return x().createElement("svg", Ql({}, e, { - viewBox: "0 0 24 24", - fill: "none" + return C().createElement("svg", Ql({}, e, { + viewBox: "0 0 32 32" }), Xl) }; @@ -5310,12 +5109,14 @@ return e }, tc.apply(this, arguments) } - var nc = x().createElement("path", { - d: "M28 0a4 4 0 014 4v24a4 4 0 01-8 0V4a4 4 0 014-4zM16 8a4 4 0 014 4v16a4 4 0 01-8 0V12a4 4 0 014-4zM4 20a4 4 0 014 4v4a4 4 0 01-8 0v-4a4 4 0 014-4z" + var nc = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M14.167 18.36c.46 0 .833-.373.833-.834v-4.193h2.5c.46 0 .833-.373.833-.833v-10a.833.833 0 00-.833-.833h-15a.833.833 0 00-.833.833v10c0 .46.373.833.833.833h7.13l3.894 4.724a.833.833 0 00.643.303zM3.333 3.333h13.334v8.334h-3.334v3.539l-2.917-3.54H3.333V3.334z" }); const ac = function(e) { - return x().createElement("svg", tc({}, e, { - viewBox: "0 0 32 32" + return C().createElement("svg", tc({}, e, { + viewBox: "0 0 20 20" }), nc) }; @@ -5328,229 +5129,219 @@ return e }, rc.apply(this, arguments) } - var ic = x().createElement("path", { - d: "M7.75 13c-.01-.35.15-.69.42-.92.75.16 1.45.47 2.08.92 0 .68-.56 1.24-1.25 1.24S7.76 13.69 7.75 13zm6 0c.63-.44 1.33-.75 2.08-.91.27.23.43.57.42.91 0 .7-.56 1.26-1.25 1.26s-1.25-.56-1.25-1.26zM12 9c-2.77-.04-5.5.65-7.93 2L4 12c0 1.23.29 2.44.84 3.54a47.642 47.642 0 0114.32 0c.55-1.1.84-2.31.84-3.54l-.07-1A15.849 15.849 0 0012 9zm0-7c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2z" - }); - const oc = function(e) { - return x().createElement("svg", rc({}, e, { - viewBox: "0 0 24 24" - }), ic) + var ic = C().createElement("rect", { + width: 3, + height: 12, + rx: 1 + }), + oc = C().createElement("rect", { + x: 5, + width: 3, + height: 12, + rx: 1 + }), + sc = C().createElement("rect", { + x: 10, + width: 3, + height: 12, + rx: 1 + }), + lc = C().createElement("rect", { + x: 15, + width: 3, + height: 12, + rx: 1 + }), + cc = C().createElement("rect", { + x: 20, + width: 3, + height: 12, + rx: 1 + }), + uc = C().createElement("rect", { + x: 25, + width: 3, + height: 12, + rx: 1 + }), + dc = C().createElement("rect", { + x: 30, + width: 3, + height: 12, + rx: 1 + }), + pc = C().createElement("rect", { + x: 35, + width: 3, + height: 12, + rx: 1 + }); + const hc = function(e) { + return C().createElement("svg", rc({}, e, { + viewBox: "0 0 38 12", + fill: "#5E6D7A" + }), ic, oc, sc, lc, cc, uc, dc, pc) }; - function sc() { - return sc = Object.assign || function(e) { + function mc() { + return mc = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, sc.apply(this, arguments) + }, mc.apply(this, arguments) } - var lc = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M4 4a2 2 0 012-2h8a2 2 0 012 2H6v14a2 2 0 01-2-2V4zm6 4v12h8V8h-8zm0-2h8a2 2 0 012 2v12a2 2 0 01-2 2h-8a2 2 0 01-2-2V8a2 2 0 012-2z" + var fc = C().createElement("path", { + d: "M5.688 4l22.313 22.313-1.688 1.688-5.563-5.563c-1 .625-2.25 1-3.438 1.188v4.375h-2.625v-4.375c-4.375-.625-8-4.375-8-8.938h2.25c0 4 3.375 6.75 7.063 6.75 1.063 0 2.125-.25 3.063-.688l-2.188-2.188c-.25.063-.563.125-.875.125-2.188 0-4-1.813-4-4v-1l-8-8zM20 14.875l-8-7.938v-.25c0-2.188 1.813-4 4-4s4 1.813 4 4v8.188zm5.313-.187a8.824 8.824 0 01-1.188 4.375L22.5 17.375c.375-.813.563-1.688.563-2.688h2.25z" }); - const cc = function(e) { - return x().createElement("svg", sc({}, e, { - viewBox: "0 0 24 24" - }), lc) + const gc = function(e) { + return C().createElement("svg", mc({}, e, { + viewBox: "0 0 32 32" + }), fc) }; - function uc() { - return uc = Object.assign || function(e) { + function bc() { + return bc = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, uc.apply(this, arguments) + }, bc.apply(this, arguments) } - var dc = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M14 4a2 2 0 01-1.298 1.873l1.527 4.07.716 1.912c.062.074.126.074.165.035l1.444-1.444 2.032-2.032a2 2 0 111.248.579L19 19a2 2 0 01-2 2H7a2 2 0 01-2-2L4.166 8.993a2 2 0 111.248-.579l2.033 2.033L8.89 11.89c.087.042.145.016.165-.035l.716-1.912 1.527-4.07A2 2 0 1114 4zM6.84 17l-.393-4.725 1.029 1.03a2.1 2.1 0 003.451-.748L12 9.696l1.073 2.86a2.1 2.1 0 003.451.748l1.03-1.03L17.16 17H6.84z" + var yc = C().createElement("path", { + d: "M23.063 14.688h2.25c0 4.563-3.625 8.313-8 8.938v4.375h-2.625v-4.375c-4.375-.625-8-4.375-8-8.938h2.25c0 4 3.375 6.75 7.063 6.75s7.063-2.75 7.063-6.75zm-7.063 4c-2.188 0-4-1.813-4-4v-8c0-2.188 1.813-4 4-4s4 1.813 4 4v8c0 2.188-1.813 4-4 4z" }); - const pc = function(e) { - return x().createElement("svg", uc({}, e, { - viewBox: "0 0 24 24" - }), dc) + const vc = function(e) { + return C().createElement("svg", bc({}, e, { + viewBox: "0 0 32 32" + }), yc) }; - function hc() { - return hc = Object.assign || function(e) { + function kc() { + return kc = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, hc.apply(this, arguments) + }, kc.apply(this, arguments) } - var mc = x().createElement("path", { + var _c = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", - d: "M13.75 1.833h.537c.243 0 .476.097.648.269l3.13 3.13a.917.917 0 01.268.648v13.37c0 .506-.41.917-.916.917H4.583a.917.917 0 01-.916-.917V2.75c0-.506.41-.917.916-.917h9.167zm-1.833 1.834v2.75c0 1.012.82 1.833 1.833 1.833h2.75v10.083h-11V3.667h6.417zm4.583 2.75h-2.75v-2.75h.157L16.5 6.259v.158zm-8.25 8.25a.917.917 0 000 1.833h5.5a.917.917 0 000-1.833h-5.5zm-.917-1.834c0-.506.41-.916.917-.916h5.5a.917.917 0 010 1.833h-5.5a.917.917 0 01-.917-.917zm.917-3.666a.917.917 0 100 1.833h5.5a.917.917 0 000-1.833h-5.5z" + d: "M16 6a4 4 0 00-8 0v6a4.002 4.002 0 003.008 3.876c-.005.04-.008.082-.008.124v1.917A6.002 6.002 0 016 12a1 1 0 10-2 0 8.001 8.001 0 007 7.938V21a1 1 0 102 0v-1.062A8.001 8.001 0 0020 12a1 1 0 10-2 0 6.002 6.002 0 01-5 5.917V16c0-.042-.003-.083-.008-.124A4.002 4.002 0 0016 12V6zm-4-2a2 2 0 00-2 2v6a2 2 0 104 0V6a2 2 0 00-2-2z" }); - const fc = function(e) { - return x().createElement("svg", hc({}, e, { - viewBox: "0 0 22 22" - }), mc) + const wc = function(e) { + return C().createElement("svg", kc({}, e, { + viewBox: "0 0 24 24" + }), _c) }; - function gc() { - return gc = Object.assign || function(e) { + function Sc() { + return Sc = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, gc.apply(this, arguments) + }, Sc.apply(this, arguments) } - var bc = x().createElement("path", { - d: "M26 10c1.109 0 2 .891 2 2s-.891 2-2 2v6c0 1.094-.906 2-2 2-2.781-2.312-7.266-5.484-12.688-5.938-1.859.625-2.5 2.797-1.281 4.047-1.094 1.797.313 3.063 1.969 4.359-.969 1.906-5 1.937-6.438.609-.906-2.781-2.25-5.563-1.156-9.078H2.5a2.507 2.507 0 01-2.5-2.5v-3c0-1.375 1.125-2.5 2.5-2.5H10c6 0 11-3.5 14-6 1.094 0 2 .906 2 2v6zm-2 9.437V4.531c-4.078 3.125-8.031 4.922-12 5.359v4.219c3.969.438 7.922 2.203 12 5.328z" + var Ec = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M7.333 8.65V11a3.668 3.668 0 002.757 3.553.928.928 0 00-.007.114v1.757A5.501 5.501 0 015.5 11a.917.917 0 10-1.833 0c0 3.74 2.799 6.826 6.416 7.277v.973a.917.917 0 001.834 0v-.973a7.297 7.297 0 003.568-1.475l3.091 3.092a.932.932 0 101.318-1.318l-3.091-3.091.01-.013-1.311-1.311-.01.013-1.325-1.325.008-.014-1.395-1.395a1.24 1.24 0 01-.004.018l-3.61-3.609v-.023L7.334 5.993v.023l-3.909-3.91a.932.932 0 10-1.318 1.318L7.333 8.65zm1.834 1.834V11a1.833 1.833 0 002.291 1.776l-2.291-2.292zm3.682 3.683c-.29.17-.606.3-.94.386a.928.928 0 01.008.114v1.757a5.47 5.47 0 002.257-.932l-1.325-1.325zm1.818-3.476l-1.834-1.834V5.5a1.833 1.833 0 00-3.644-.287l-1.43-1.43A3.666 3.666 0 0114.667 5.5v5.19zm1.665 1.665l1.447 1.447c.357-.864.554-1.81.554-2.803a.917.917 0 10-1.833 0c0 .468-.058.922-.168 1.356z" }); - const yc = function(e) { - return x().createElement("svg", gc({}, e, { - viewBox: "0 0 28 28" - }), bc) + const xc = function(e) { + return C().createElement("svg", Sc({}, e, { + viewBox: "0 0 22 22" + }), Ec) }; - function vc() { - return vc = Object.assign || function(e) { + function Cc() { + return Cc = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, vc.apply(this, arguments) + }, Cc.apply(this, arguments) } - var kc = x().createElement("path", { + var Ac = C().createElement("path", { clipRule: "evenodd", - d: "M11 13.37V5a1 1 0 112 0v8.467l2.631-2.924a1 1 0 011.487 1.338l-5.012 5.568a.085.085 0 01-.126 0L6.97 11.881a1 1 0 111.487-1.338L11 13.371zM20 15a1 1 0 112 0v6a1 1 0 01-1 1H3a1 1 0 01-1-1v-6a1 1 0 112 0v5h16v-5z" + d: "M12 4.5a3 3 0 10-6 0V9c0 1.4.959 2.576 2.256 2.907A.756.756 0 008.25 12v1.438A4.501 4.501 0 014.5 9 .75.75 0 003 9c0 3.06 2.29 5.585 5.25 5.954v.796a.75.75 0 001.5 0v-.796A6.001 6.001 0 0015 9a.75.75 0 00-1.5 0c0 2.23-1.622 4.08-3.75 4.438V12a.756.756 0 00-.006-.093A3.001 3.001 0 0012 9V4.5zM9 3a1.5 1.5 0 00-1.5 1.5V9a1.5 1.5 0 103 0V4.5A1.5 1.5 0 009 3z" }); - const _c = function(e) { - return x().createElement("svg", vc({}, e, { - viewBox: "0 0 24 24", + const Tc = function(e) { + return C().createElement("svg", Cc({}, e, { + viewBox: "0 0 18 18", fill: "none" - }), kc) + }), Ac) }; - function wc() { - return wc = Object.assign || function(e) { + function Dc() { + return Dc = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, wc.apply(this, arguments) + }, Dc.apply(this, arguments) } - var Sc = x().createElement("path", { - clipRule: "evenodd", - d: "M3.75 7.5h10.5V15H3.75V7.5zM14.25 6h-1.5v-.75a3.75 3.75 0 10-7.5 0V6h-1.5a1.5 1.5 0 00-1.5 1.5V15a1.5 1.5 0 001.5 1.5h10.5a1.5 1.5 0 001.5-1.5V7.5a1.5 1.5 0 00-1.5-1.5zm-4.524 5.813a1.5 1.5 0 10-1.452 0A.751.751 0 008.25 12v.75a.75.75 0 001.5 0V12a.751.751 0 00-.024-.187zM9 3a2.25 2.25 0 012.25 2.25V6h-4.5v-.75A2.25 2.25 0 019 3z" + var Pc = C().createElement("path", { + d: "M16 20.563l5 3-1.313-5.688L24.125 14l-5.875-.5L16 8.125 13.75 13.5l-5.875.5 4.438 3.875L11 23.563zm13.313-8.25l-7.25 6.313 2.188 9.375-8.25-5-8.25 5 2.188-9.375-7.25-6.313 9.563-.813 3.75-8.813 3.75 8.813z" }); - const Ec = function(e) { - return x().createElement("svg", wc({}, e, { - viewBox: "0 0 18 18", - fill: "none" - }), Sc) + const jc = function(e) { + return C().createElement("svg", Dc({}, e, { + viewBox: "0 0 32 32" + }), Pc) }; - function xc() { - return xc = Object.assign || function(e) { + function Mc() { + return Mc = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, xc.apply(this, arguments) + }, Mc.apply(this, arguments) } - var Cc = x().createElement("path", { - fillRule: "evenodd", + var Ic = C().createElement("path", { clipRule: "evenodd", - d: "M4 4h16a2 2 0 012 2v12a2 2 0 01-2 2H4a2 2 0 01-2-2V6a2 2 0 012-2zm0 4v10h16V8l-8 4-8-4zm16-2H4l8 4 8-4z", - fill: "#A4B8D1" - }); - const Ac = function(e) { - return x().createElement("svg", xc({}, e, { - viewBox: "0 0 24 24", - fill: "none" - }), Cc) - }; - - function jc() { - return jc = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, jc.apply(this, arguments) - } - var Pc = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M8 14.667A6.667 6.667 0 118 1.333a6.667 6.667 0 010 13.334zm-.667-10a.667.667 0 111.334 0V8a.667.667 0 11-1.334 0V4.667zM8 10a.667.667 0 100 1.333A.667.667 0 008 10z" - }); - const Dc = function(e) { - return x().createElement("svg", jc({}, e, { - viewBox: "0 0 16 16" - }), Pc) - }; - - function Tc() { - return Tc = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Tc.apply(this, arguments) - } - var Oc = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M17.233 14.325L9.708.911a.817.817 0 00-1.417 0L.768 14.325a.78.78 0 00-.1.382.8.8 0 00.808.793h15.05a.82.82 0 00.39-.098.785.785 0 00.318-1.077zm-14.39-.41L9 2.937l6.158 10.978H2.842zm5.349-2.378c0-.438.355-.793.792-.793h.032a.793.793 0 110 1.586h-.032a.793.793 0 01-.792-.793zM9 6.781a.808.808 0 00-.808.809v1.554a.808.808 0 001.617 0V7.59A.808.808 0 009 6.782z", - fill: "#040404" - }); - - function Mc() { - return Mc = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Mc.apply(this, arguments) - } - var Ic = x().createElement("path", { - clipRule: "evenodd", - d: "M17.417 8.25v1.833h-4.584a.917.917 0 01-.916-.916V4.583h1.833V8.25h3.667zM4.583 8.25v1.833h4.584c.506 0 .916-.41.916-.916V4.583H8.25V8.25H4.583zM17.417 13.75v-1.833h-4.584a.917.917 0 00-.916.916v4.584h1.833V13.75h3.667zM4.583 13.75v-1.833h4.584c.506 0 .916.41.916.916v4.584H8.25V13.75H4.583z" + d: "M5.5 11.988v1.762c0 1.283.879 2.361 2.068 2.665a.694.694 0 00-.005.085v1.318a4.126 4.126 0 01-3.438-4.068.687.687 0 10-1.375 0c0 2.805 2.1 5.12 4.813 5.457v.73a.687.687 0 101.375 0v-.73c1-.124 1.917-.518 2.676-1.105l2.318 2.318a.699.699 0 10.988-.988l-2.318-2.318a.835.835 0 01.007-.01l-.983-.983-.007.01-.994-.994.007-.011-1.047-1.046-.003.014-2.707-2.707v-.018L5.5 9.995v.018L2.568 7.08a.699.699 0 10-.988.988l3.92 3.92zm1.375 1.375v.387a1.375 1.375 0 001.719 1.332l-1.719-1.719zm2.762 2.762a2.73 2.73 0 01-.705.29.694.694 0 01.005.085v1.318a4.103 4.103 0 001.694-.699l-.994-.994zM11 13.518l-1.375-1.375V9.625a1.375 1.375 0 00-2.733-.215L5.819 8.337A2.75 2.75 0 0111 9.625v3.893zm1.249 1.249l1.085 1.085a5.483 5.483 0 00.416-2.102.687.687 0 10-1.375 0c0 .35-.044.691-.126 1.017zM14.667 4.325V5.5c0 .856.586 1.574 1.378 1.776a.464.464 0 00-.003.057v.879A2.75 2.75 0 0113.75 5.5a.458.458 0 00-.917 0c0 1.87 1.4 3.413 3.209 3.638v.487a.458.458 0 00.916 0v-.487a3.648 3.648 0 001.784-.737l1.546 1.546a.466.466 0 10.659-.659L19.4 7.742a.284.284 0 00.005-.006l-.655-.656-.005.007-.663-.662.005-.008-.698-.697-.002.009-1.805-1.804v-.012l-.916-.917v.012l-1.955-1.955a.466.466 0 10-.659.659l2.614 2.613zm.916.917V5.5a.917.917 0 001.146.888l-1.146-1.146zm1.842 1.841c-.146.085-.303.15-.47.193a.464.464 0 01.003.057v.879c.416-.07.8-.232 1.13-.466l-.663-.663zm.908-1.738l-.916-.916V2.75a.917.917 0 00-1.823-.143l-.714-.715a1.833 1.833 0 013.453.858v2.595zm.833.833l.723.723c.179-.431.278-.905.278-1.401a.458.458 0 10-.917 0c0 .234-.03.461-.084.678z" }); - const Nc = function(e) { - return x().createElement("svg", Mc({}, e, { + const Oc = function(e) { + return C().createElement("svg", Mc({}, e, { viewBox: "0 0 22 22", fill: "none" }), Ic) }; - function zc() { - return zc = Object.assign || function(e) { + function Nc() { + return Nc = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, zc.apply(this, arguments) + }, Nc.apply(this, arguments) } - var Rc = x().createElement("path", { - clipRule: "evenodd", - d: "M2.278 7.066l8.25-4.95a.917.917 0 01.944 0l8.25 4.95a.917.917 0 01.445.786V19.25c0 .506-.41.917-.917.917H2.75a.917.917 0 01-.917-.917V7.852c0-.322.17-.62.445-.786zm1.389 2.977v8.29h14.666v-8.29l-6.796 4.908a.917.917 0 01-1.074 0l-6.796-4.908zm.446-1.94L11 13.079l6.887-4.974L11 3.97 4.113 8.104zm4.94.605a.917.917 0 01-.969-1.557l2.432-1.513a.917.917 0 01.97.001l2.427 1.517a.917.917 0 01-.972 1.555l-1.024-.64V11a.917.917 0 01-1.834 0V8.066l-1.03.642z" - }); + var Rc = C().createElement("g", { + clipPath: "url(#mute-everyone-else_svg__clip0)", + fillRule: "evenodd", + clipRule: "evenodd" + }, C().createElement("path", { + d: "M6 13.078V15c0 1.4.959 2.576 2.256 2.907A.756.756 0 008.25 18v1.438A4.501 4.501 0 014.5 15 .75.75 0 003 15c0 3.06 2.29 5.584 5.25 5.954v.796a.75.75 0 001.5 0v-.796a5.97 5.97 0 002.92-1.207l2.529 2.53a.762.762 0 101.078-1.078l-2.53-2.53.009-.01-1.073-1.073-.008.011-1.084-1.084.007-.012-1.141-1.141-.004.015L7.5 12.422v-.019l-1.5-1.5v.019L2.801 7.723a.762.762 0 10-1.078 1.078L6 13.078zm1.5 1.5V15a1.5 1.5 0 001.875 1.453L7.5 14.578zm3.013 3.013a2.984 2.984 0 01-.769.316c.004.03.006.061.006.093v1.438a4.476 4.476 0 001.847-.763l-1.084-1.084zM12 14.747l-1.5-1.5V10.5a1.5 1.5 0 00-2.982-.235l-1.17-1.17A3 3 0 0112 10.5v4.247zm1.362 1.362l1.184 1.184A5.983 5.983 0 0015 15a.75.75 0 00-1.5 0c0 .383-.048.754-.138 1.11zM16 4.719V6a2 2 0 001.504 1.938A.508.508 0 0017.5 8v.959A3 3 0 0115 6a.5.5 0 00-1 0 4 4 0 003.5 3.969v.531a.5.5 0 001 0v-.531a3.98 3.98 0 001.946-.804l1.686 1.686a.508.508 0 00.72-.719l-1.687-1.686.006-.007-.716-.715-.005.007-.723-.722.005-.008-.76-.761-.004.01L17 4.28V4.27l-1-1v.012L13.868 1.15a.508.508 0 10-.72.719L16 4.718zm1 1V6a1 1 0 001.25.969L17 5.719zm2.009 2.008c-.159.093-.33.164-.513.211.003.02.004.041.004.062v.959a2.984 2.984 0 001.232-.509l-.723-.723zM20 5.831l-1-1V3a1 1 0 00-1.988-.157l-.78-.78A2 2 0 0120 3v2.831zm.908.908l.79.79A3.99 3.99 0 0022 6a.5.5 0 00-1 0c0 .255-.032.503-.092.74z" + })), + zc = C().createElement("defs", null, C().createElement("clipPath", { + id: "mute-everyone-else_svg__clip0" + }, C().createElement("path", { + d: "M0 0h24v24H0z" + }))); const Lc = function(e) { - return x().createElement("svg", zc({}, e, { - viewBox: "0 0 22 22", - fill: "none" - }), Rc) + return C().createElement("svg", Nc({}, e, { + viewBox: "0 0 24 24" + }), Rc, zc) }; function Fc() { @@ -5562,14 +5353,12 @@ return e }, Fc.apply(this, arguments) } - var qc = x().createElement("path", { - clipRule: "evenodd", - d: "M8.25 2.75H3.667a.917.917 0 00-.917.917V8.25h1.833V4.583H8.25V2.75zm5.5 1.833V2.75h4.583c.507 0 .917.41.917.917V8.25h-1.833V4.583H13.75zm0 12.834h3.667V13.75h1.833v4.583c0 .507-.41.917-.917.917H13.75v-1.833zM4.583 13.75v3.667H8.25v1.833H3.667a.917.917 0 01-.917-.917V13.75h1.833z" + var qc = C().createElement("path", { + d: "M3.136 7.1l14.448 14.447-1.033 1.032-2.598-2.599a.936.936 0 01-.459.153H3.709a.786.786 0 01-.803-.804V11.15c0-.459.344-.803.803-.803h.612L2.104 8.131 3.136 7.1zm14.448 3.669v8.714l-9.135-9.134h5.045c.459 0 .84.344.84.803v2.866l3.25-3.249zM14.688.818l8.164 8.165-.584.583L20.8 8.098a.536.536 0 01-.26.086h-5.528a.444.444 0 01-.454-.454V3.108c0-.26.195-.454.454-.454h.345l-1.253-1.253.584-.583zm8.164 2.074v4.924L17.69 2.654h2.851c.26 0 .476.194.476.454v1.619l1.835-1.835z" }); const Bc = function(e) { - return x().createElement("svg", Fc({}, e, { - viewBox: "0 0 22 22", - fill: "none" + return C().createElement("svg", Fc({}, e, { + viewBox: "0 0 24 24" }), qc) }; @@ -5582,16 +5371,13 @@ return e }, Uc.apply(this, arguments) } - var Hc = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M20.236 10.354h-.676v-.034H12v3.36h4.748A5.04 5.04 0 0112 17.04 5.04 5.04 0 016.96 12 5.04 5.04 0 0112 6.96c1.285 0 2.454.484 3.344 1.276l2.375-2.375A8.36 8.36 0 0012 3.6 8.4 8.4 0 003.6 12a8.4 8.4 0 008.4 8.4 8.4 8.4 0 008.236-10.046z", - fill: "#A4B8D1" + var Hc = C().createElement("path", { + fill: "#FFF", + d: "M3.136 7.1l14.448 14.447-1.033 1.032-2.598-2.599a.936.936 0 01-.459.153H3.709a.786.786 0 01-.803-.804V11.15c0-.459.344-.803.803-.803h.612L2.104 8.131 3.136 7.1zm14.448 3.669v8.714l-9.135-9.134h5.045c.459 0 .84.344.84.803v2.866l3.25-3.249zM14.688.818l8.164 8.165-.584.583L20.8 8.098a.536.536 0 01-.26.086h-5.528a.444.444 0 01-.454-.454V3.108c0-.26.195-.454.454-.454h.345l-1.253-1.253.584-.583zm8.164 2.074v4.924L17.69 2.654h2.851c.26 0 .476.194.476.454v1.619l1.835-1.835z" }); const Vc = function(e) { - return x().createElement("svg", Uc({}, e, { - viewBox: "0 0 24 24", - fill: "none" + return C().createElement("svg", Uc({}, e, { + viewBox: "0 0 24 24" }), Hc) }; @@ -5604,12 +5390,16 @@ return e }, Wc.apply(this, arguments) } - var Yc = x().createElement("path", { - d: "M16 12c-2.125 0-4.188.313-6.125.938v4.125c0 .5-.313 1.063-.75 1.25a13.87 13.87 0 00-3.563 2.438c-.25.25-.563.375-.938.375s-.688-.125-.938-.375L.373 17.438c-.25-.25-.375-.563-.375-.938s.125-.688.375-.938c4.063-3.875 9.563-6.25 15.625-6.25s11.563 2.375 15.625 6.25c.25.25.375.563.375.938s-.125.688-.375.938l-3.313 3.313c-.25.25-.563.375-.938.375s-.688-.125-.938-.375a13.87 13.87 0 00-3.563-2.438c-.438-.188-.75-.625-.75-1.188V13c-1.938-.625-4-1-6.125-1z" + var Yc = C().createElement("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M3 6l11.014-4 6.007 1.5v17L14.014 22 3 18l11.014 1.5V5L7.005 6.5v10L3 18V6z", + fill: "#A4B8D1" }); const Gc = function(e) { - return x().createElement("svg", Wc({}, e, { - viewBox: "0 0 32 32" + return C().createElement("svg", Wc({}, e, { + viewBox: "0 0 24 24", + fill: "none" }), Yc) }; @@ -5622,14 +5412,14 @@ return e }, Kc.apply(this, arguments) } - var $c = x().createElement("path", { + var $c = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", - d: "M10 18.333a8.333 8.333 0 110-16.666 8.333 8.333 0 010 16.666zm0-1.666a6.667 6.667 0 100-13.334 6.667 6.667 0 000 13.334zm-.752-1.774c.198.171.429.257.693.257a.988.988 0 00.677-.26c.196-.174.293-.413.293-.717a.938.938 0 00-.28-.69.938.938 0 00-.69-.28.968.968 0 00-.703.28.927.927 0 00-.286.69c0 .308.099.548.296.72zM7.161 6.76c-.264.423-.397.841-.397 1.253 0 .2.084.386.251.557a.826.826 0 00.615.257c.413 0 .692-.245.84-.736.156-.468.347-.823.573-1.064.226-.24.577-.361 1.055-.361.408 0 .74.119.999.358.258.238.387.531.387.879a1 1 0 01-.127.494c-.084.152-.188.29-.312.414s-.325.307-.602.55c-.317.278-.569.518-.755.72a2.405 2.405 0 00-.45.702c-.113.268-.169.583-.169.948 0 .29.077.51.231.657a.792.792 0 00.57.222c.434 0 .692-.226.775-.677.047-.213.083-.362.107-.446a1.37 1.37 0 01.1-.254c.044-.085.11-.178.2-.28.088-.102.207-.22.354-.355.534-.478.904-.817 1.11-1.019a2.97 2.97 0 00.534-.72c.15-.277.225-.6.225-.97 0-.468-.132-.902-.394-1.301-.263-.4-.635-.716-1.117-.948-.481-.232-1.037-.348-1.666-.348-.677 0-1.27.139-1.778.417-.507.277-.894.628-1.159 1.051z" + d: "M18.792 15.583h-3.37a8.607 8.607 0 00-.482-1.833h3.388c.003-.066.005-.142.005-.23 0-3.39-.802-4.353-3.666-4.353-.745 0-1.35.065-1.839.221a4.57 4.57 0 00-1.37-3.494 3.208 3.208 0 115.875 1.85c2.08.788 2.834 2.714 2.834 5.777 0 1.375-.459 2.062-1.375 2.062zm-2.75-9.625a1.375 1.375 0 11-2.75 0 1.375 1.375 0 012.75 0zM3.437 20.167c-1.069 0-1.604-.764-1.604-2.292 0-3.493.926-5.655 3.5-6.486a3.667 3.667 0 115.833 0c2.575.831 3.5 2.993 3.5 6.486 0 1.528-.534 2.292-1.604 2.292H3.438zm6.646-11a1.833 1.833 0 11-3.666 0 1.833 1.833 0 013.666 0zm2.75 8.708c0 .196-.01.349-.025.458H3.692a3.738 3.738 0 01-.025-.458c0-3.856 1.036-5.042 4.583-5.042s4.583 1.186 4.583 5.042z" }); const Jc = function(e) { - return x().createElement("svg", Kc({}, e, { - viewBox: "0 0 20 20" + return C().createElement("svg", Kc({}, e, { + viewBox: "0 0 22 22" }), $c) }; @@ -5642,14 +5432,12 @@ return e }, Zc.apply(this, arguments) } - var Qc = x().createElement("path", { - clipRule: "evenodd", - d: "M6.417 11a1.833 1.833 0 11-3.667 0 1.833 1.833 0 013.667 0zM11 12.833a1.833 1.833 0 100-3.666 1.833 1.833 0 000 3.666zm6.417 0a1.833 1.833 0 100-3.666 1.833 1.833 0 000 3.666z" + var Qc = C().createElement("path", { + d: "M6.609 10.781a15.506 15.506 0 006.609 6.609l2.203-2.203c.281-.281.703-.375 1.031-.234 1.125.375 2.344.563 3.563.563a.96.96 0 01.984.984v3.516a.96.96 0 01-.984.984C10.64 21 2.999 13.359 2.999 3.984A.96.96 0 013.983 3h3.516a.96.96 0 01.984.984c0 1.266.188 2.438.563 3.563.094.328.047.75-.234 1.031z" }); const Xc = function(e) { - return x().createElement("svg", Zc({}, e, { - viewBox: "0 0 22 22", - fill: "none" + return C().createElement("svg", Zc({}, e, { + viewBox: "0 0 24 24" }), Qc) }; @@ -5662,12 +5450,14 @@ return e }, eu.apply(this, arguments) } - var tu = x().createElement("path", { - d: "M16 2.667C8.64 2.667 2.667 8.64 2.667 16S8.64 29.333 16 29.333 29.333 23.36 29.333 16 23.36 2.667 16 2.667zm1.333 20h-2.667v-8h2.667v8zm0-10.667h-2.667V9.333h2.667V12z" + var tu = C().createElement("path", { + clipRule: "evenodd", + d: "M16.667 1.667l-15 9.166 5.966.995.7 5.255 2.311-3.85 6.023 4.684V1.667zm-7.93 8.655L6.35 9.924 15 4.638v9.87l-3.684-2.864L12.5 7.5l-3.763 2.822z" }); const nu = function(e) { - return x().createElement("svg", eu({}, e, { - viewBox: "0 0 32 32" + return C().createElement("svg", eu({}, e, { + viewBox: "0 0 20 20", + fill: "none" }), tu) }; @@ -5680,14 +5470,14 @@ return e }, au.apply(this, arguments) } - var ru = x().createElement("path", { - fillRule: "evenodd", + var ru = C().createElement("path", { clipRule: "evenodd", - d: "M12.833 6.417a1.833 1.833 0 11-3.666 0 1.833 1.833 0 013.666 0zm-5.5 0a3.667 3.667 0 107.334 0 3.667 3.667 0 00-7.334 0zM11 11c-5.513 0-7.333 2.063-7.333 6.188 0 1.375.61 2.062 1.833 2.062h8.028a4.125 4.125 0 103.495-6.416C15.908 11.61 14 11 11 11zm3.817 2.432c-.85-.424-2.08-.599-3.817-.599-4.306 0-5.5 1.076-5.5 4.354 0 .1.003.176.006.23h7.352a4.123 4.123 0 011.958-3.985zm2.6 3.068h1.833v.917h-1.833v1.833H16.5v-1.833h-1.833V16.5H16.5v-1.833h.917V16.5z" + d: "M15.667 3.667a1 1 0 00-1 1v12.666a1 1 0 001 1h1.666a1 1 0 001-1V4.667a1 1 0 00-1-1h-1.666zm-6.5 6.5a1 1 0 011-1h1.666a1 1 0 011 1v7.166a1 1 0 01-1 1h-1.666a1 1 0 01-1-1v-7.166zm-5.5 5.5a1 1 0 011-1h1.666a1 1 0 011 1v1.666a1 1 0 01-1 1H4.667a1 1 0 01-1-1v-1.666z" }); const iu = function(e) { - return x().createElement("svg", au({}, e, { - viewBox: "0 0 22 22" + return C().createElement("svg", au({}, e, { + viewBox: "0 0 22 22", + fill: "none" }), ru) }; @@ -5700,12 +5490,14 @@ return e }, ou.apply(this, arguments) } - var su = x().createElement("path", { - d: "M16 6.688l8.875 13.313H7.125zm-9.312 16h18.625v2.625H6.688v-2.625z" + var su = C().createElement("path", { + clipRule: "evenodd", + d: "M11.917 3.208v8.709a.917.917 0 001.833 0V4.833c0-.097.168-.25.458-.25.29 0 .459.153.459.25v7.084a.917.917 0 001.833 0V6.875a.458.458 0 11.917 0v6.913c-.25 2.552-2.425 4.545-5.042 4.545a5.037 5.037 0 01-4.205-2.258l-.003.001-3.495-5.255c-.168-.24-.117-.526.09-.671a.458.458 0 01.638.112l1.173 1.753h-.001a.917.917 0 001.676-.482h.002V5.043a.458.458 0 01.917-.001V11.918a.917.917 0 001.833 0V3.208a.458.458 0 11.917 0zm7.317 10.56l.016-.008V6.876a2.292 2.292 0 00-2.76-2.244c-.112-1.055-1.091-1.881-2.282-1.881-.17 0-.335.017-.495.049a2.292 2.292 0 00-4.51.004 2.292 2.292 0 00-2.786 2.238v3.663a2.293 2.293 0 00-3.27 3.135l3.302 4.94a6.875 6.875 0 0012.785-3.01z" }); const lu = function(e) { - return x().createElement("svg", ou({}, e, { - viewBox: "0 0 32 32" + return C().createElement("svg", ou({}, e, { + viewBox: "0 0 22 22", + fill: "none" }), su) }; @@ -5718,14 +5510,14 @@ return e }, cu.apply(this, arguments) } - var uu = x().createElement("path", { + var uu = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", - d: "M11 20.167a9.167 9.167 0 110-18.334 9.167 9.167 0 010 18.334zm0-1.834c.196 0 .39-.007.582-.022-1.032-.885-1.989-1.997-2.824-3.309-1.26.193-2.583.185-3.935-.048A7.328 7.328 0 0011 18.334zm-.347-3.786c.96 1.376 2.066 2.457 3.233 3.197.27-.116.531-.247.783-.393a.93.93 0 01.007-.062c.254-1.808.2-3.442-.13-4.941a11.59 11.59 0 01-3.893 2.2zm3.286-4.134a9.78 9.78 0 01-4.27 2.518c-1.2-2.256-2.039-5.076-2.27-8.32a7.292 7.292 0 011.36-.595 818.04 818.04 0 00.56.48c.28.242.517.452.75.665a19.214 19.214 0 011.602 1.634c.968 1.121 1.733 2.317 2.268 3.618zm1.294-1.583c-.57-1.147-1.3-2.22-2.174-3.232a21.004 21.004 0 00-1.906-1.93 7.316 7.316 0 015.376 2.514 11.302 11.302 0 01-1.296 2.648zm.803 1.993c.466 1.49.684 3.096.622 4.842A7.303 7.303 0 0018.333 11a7.309 7.309 0 00-.597-2.903c-.461 1-1.034 1.913-1.7 2.726zM3.92 12.869c1.325.378 2.627.502 3.867.4-1.03-2.09-1.776-4.558-2.102-7.32A7.308 7.308 0 003.667 11c0 .653.085 1.287.246 1.89l.006-.021z" + d: "M9.75 2.625V9.75a.75.75 0 001.5 0V3.955c0-.08.138-.205.375-.205s.375.125.375.205V9.75a.75.75 0 001.5 0V5.625a.375.375 0 01.75 0v5.656C14.046 13.37 12.266 15 10.125 15a4.121 4.121 0 01-3.44-1.848l-.003.001-2.86-4.3c-.137-.196-.095-.43.074-.549a.375.375 0 01.522.092l.96 1.434-.001.001a.75.75 0 001.371-.395h.002V4.126a.375.375 0 11.75 0V9.75a.75.75 0 001.5 0V2.625a.375.375 0 11.75 0zm5.987 8.64l.013-.006V5.625a1.875 1.875 0 00-2.259-1.836C13.4 2.925 12.6 2.25 11.625 2.25c-.14 0-.275.014-.405.04a1.876 1.876 0 00-3.69.004 1.875 1.875 0 00-2.28 1.831v2.996a1.876 1.876 0 00-2.675 2.566l2.701 4.041a5.625 5.625 0 0010.46-2.463z" }); const du = function(e) { - return x().createElement("svg", cu({}, e, { - viewBox: "0 0 22 22" + return C().createElement("svg", cu({}, e, { + viewBox: "0 0 18 18" }), uu) }; @@ -5738,12 +5530,12 @@ return e }, pu.apply(this, arguments) } - var hu = x().createElement("path", { - d: "M3 6h18v2.016H3V6zm0 6.984v-1.969h18v1.969H3zM3 18v-2.016h18V18H3z" + var hu = C().createElement("path", { + d: "M16 32C7.163 32 0 24.837 0 16S7.163 0 16 0s16 7.163 16 16-7.163 16-16 16zm2.167-13.556h-3.456v-1.851h3.261v-1.26h-3.261v-1.777h3.456v-1.361h-5.052v7.61h5.052v-1.361zM23.087 20c1.839 0 3.181-1.134 3.313-2.779h-1.554c-.153.838-.84 1.376-1.754 1.376-1.205 0-1.95-.997-1.95-2.6s.745-2.595 1.945-2.595c.909 0 1.601.575 1.754 1.45h1.554c-.116-1.656-1.501-2.853-3.308-2.853-2.214 0-3.578 1.524-3.578 3.997 0 2.479 1.369 4.003 3.578 4.003zM7.196 17.047h1.305l1.422 2.758h1.807l-1.607-3.006c.877-.348 1.385-1.192 1.385-2.162 0-1.514-1.03-2.442-2.706-2.442H5.6v7.61h1.596v-2.758zm0-3.565v2.341h1.4c.803 0 1.274-.432 1.274-1.165 0-.722-.497-1.176-1.289-1.176H7.196z" }); const mu = function(e) { - return x().createElement("svg", pu({}, e, { - viewBox: "0 0 24 24" + return C().createElement("svg", pu({}, e, { + viewBox: "0 0 32 32" }), hu) }; @@ -5756,12 +5548,12 @@ return e }, fu.apply(this, arguments) } - var gu = x().createElement("path", { - d: "M22.125 11.438L24 13.313l-8 8-8-8 1.875-1.875L16 17.563z" + var gu = C().createElement("path", { + d: "M21.625 14.484L.875 26.015c-.484.266-.875.031-.875-.516v-23c0-.547.391-.781.875-.516l20.75 11.531c.484.266.484.703 0 .969z" }); const bu = function(e) { - return x().createElement("svg", fu({}, e, { - viewBox: "0 0 32 32" + return C().createElement("svg", fu({}, e, { + viewBox: "0 0 22 28" }), gu) }; @@ -5774,12 +5566,12 @@ return e }, yu.apply(this, arguments) } - var vu = x().createElement("path", { - d: "M12 15.984c1.078 0 2.016.938 2.016 2.016s-.938 2.016-2.016 2.016S9.984 19.078 9.984 18s.938-2.016 2.016-2.016zm0-6c1.078 0 2.016.938 2.016 2.016s-.938 2.016-2.016 2.016S9.984 13.078 9.984 12 10.922 9.984 12 9.984zm0-1.968c-1.078 0-2.016-.938-2.016-2.016S10.922 3.984 12 3.984s2.016.938 2.016 2.016S13.078 8.016 12 8.016z" + var vu = C().createElement("path", { + d: "M24 3v22c0 .547-.453 1-1 1H1c-.547 0-1-.453-1-1V3c0-.547.453-1 1-1h22c.547 0 1 .453 1 1z" }); const ku = function(e) { - return x().createElement("svg", yu({}, e, { - viewBox: "0 0 24 24" + return C().createElement("svg", yu({}, e, { + viewBox: "0 0 24 28" }), vu) }; @@ -5792,1131 +5584,1386 @@ return e }, _u.apply(this, arguments) } - var wu = x().createElement("path", { - d: "M16 10.688l8 8-1.875 1.875L16 14.438l-6.125 6.125L8 18.688z" - }); - const Su = function(e) { - return x().createElement("svg", _u({}, e, { - viewBox: "0 0 32 32" - }), wu) - }; - - function Eu() { - return Eu = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Eu.apply(this, arguments) - } - var xu = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M14.167 18.36c.46 0 .833-.373.833-.834v-4.193h2.5c.46 0 .833-.373.833-.833v-10a.833.833 0 00-.833-.833h-15a.833.833 0 00-.833.833v10c0 .46.373.833.833.833h7.13l3.894 4.724a.833.833 0 00.643.303zM3.333 3.333h13.334v8.334h-3.334v3.539l-2.917-3.54H3.333V3.334z" - }); - const Cu = function(e) { - return x().createElement("svg", Eu({}, e, { - viewBox: "0 0 20 20" - }), xu) - }; - - function Au() { - return Au = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Au.apply(this, arguments) - } - var ju = x().createElement("rect", { - width: 3, - height: 12, - rx: 1 - }), - Pu = x().createElement("rect", { - x: 5, - width: 3, - height: 12, - rx: 1 - }), - Du = x().createElement("rect", { - x: 10, - width: 3, - height: 12, - rx: 1 - }), - Tu = x().createElement("rect", { - x: 15, - width: 3, - height: 12, - rx: 1 - }), - Ou = x().createElement("rect", { - x: 20, - width: 3, - height: 12, - rx: 1 - }), - Mu = x().createElement("rect", { - x: 25, - width: 3, - height: 12, - rx: 1 - }), - Iu = x().createElement("rect", { - x: 30, - width: 3, - height: 12, - rx: 1 + var wu = C().createElement("path", { + d: "M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z" }), - Nu = x().createElement("rect", { - x: 35, - width: 3, - height: 12, - rx: 1 - }); - const zu = function(e) { - return x().createElement("svg", Au({}, e, { - viewBox: "0 0 38 12", - fill: "#5E6D7A" - }), ju, Pu, Du, Tu, Ou, Mu, Iu, Nu) - }; - - function Ru() { - return Ru = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Ru.apply(this, arguments) - } - var Lu = x().createElement("path", { - d: "M5.688 4l22.313 22.313-1.688 1.688-5.563-5.563c-1 .625-2.25 1-3.438 1.188v4.375h-2.625v-4.375c-4.375-.625-8-4.375-8-8.938h2.25c0 4 3.375 6.75 7.063 6.75 1.063 0 2.125-.25 3.063-.688l-2.188-2.188c-.25.063-.563.125-.875.125-2.188 0-4-1.813-4-4v-1l-8-8zM20 14.875l-8-7.938v-.25c0-2.188 1.813-4 4-4s4 1.813 4 4v8.188zm5.313-.187a8.824 8.824 0 01-1.188 4.375L22.5 17.375c.375-.813.563-1.688.563-2.688h2.25z" - }); - const Fu = function(e) { - return x().createElement("svg", Ru({}, e, { - viewBox: "0 0 32 32" - }), Lu) - }; - - function qu() { - return qu = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, qu.apply(this, arguments) - } - var Bu = x().createElement("path", { - d: "M23.063 14.688h2.25c0 4.563-3.625 8.313-8 8.938v4.375h-2.625v-4.375c-4.375-.625-8-4.375-8-8.938h2.25c0 4 3.375 6.75 7.063 6.75s7.063-2.75 7.063-6.75zm-7.063 4c-2.188 0-4-1.813-4-4v-8c0-2.188 1.813-4 4-4s4 1.813 4 4v8c0 2.188-1.813 4-4 4z" - }); - const Uu = function(e) { - return x().createElement("svg", qu({}, e, { - viewBox: "0 0 32 32" - }), Bu) - }; - - function Hu() { - return Hu = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Hu.apply(this, arguments) - } - var Vu = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M16 6a4 4 0 00-8 0v6a4.002 4.002 0 003.008 3.876c-.005.04-.008.082-.008.124v1.917A6.002 6.002 0 016 12a1 1 0 10-2 0 8.001 8.001 0 007 7.938V21a1 1 0 102 0v-1.062A8.001 8.001 0 0020 12a1 1 0 10-2 0 6.002 6.002 0 01-5 5.917V16c0-.042-.003-.083-.008-.124A4.002 4.002 0 0016 12V6zm-4-2a2 2 0 00-2 2v6a2 2 0 104 0V6a2 2 0 00-2-2z" - }); - const Wu = function(e) { - return x().createElement("svg", Hu({}, e, { - viewBox: "0 0 24 24" - }), Vu) - }; - - function Yu() { - return Yu = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Yu.apply(this, arguments) - } - var Gu = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M7.333 8.65V11a3.668 3.668 0 002.757 3.553.928.928 0 00-.007.114v1.757A5.501 5.501 0 015.5 11a.917.917 0 10-1.833 0c0 3.74 2.799 6.826 6.416 7.277v.973a.917.917 0 001.834 0v-.973a7.297 7.297 0 003.568-1.475l3.091 3.092a.932.932 0 101.318-1.318l-3.091-3.091.01-.013-1.311-1.311-.01.013-1.325-1.325.008-.014-1.395-1.395a1.24 1.24 0 01-.004.018l-3.61-3.609v-.023L7.334 5.993v.023l-3.909-3.91a.932.932 0 10-1.318 1.318L7.333 8.65zm1.834 1.834V11a1.833 1.833 0 002.291 1.776l-2.291-2.292zm3.682 3.683c-.29.17-.606.3-.94.386a.928.928 0 01.008.114v1.757a5.47 5.47 0 002.257-.932l-1.325-1.325zm1.818-3.476l-1.834-1.834V5.5a1.833 1.833 0 00-3.644-.287l-1.43-1.43A3.666 3.666 0 0114.667 5.5v5.19zm1.665 1.665l1.447 1.447c.357-.864.554-1.81.554-2.803a.917.917 0 10-1.833 0c0 .468-.058.922-.168 1.356z" - }); - const Ku = function(e) { - return x().createElement("svg", Yu({}, e, { - viewBox: "0 0 22 22" - }), Gu) - }; - - function $u() { - return $u = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, $u.apply(this, arguments) - } - var Ju = x().createElement("path", { - clipRule: "evenodd", - d: "M12 4.5a3 3 0 10-6 0V9c0 1.4.959 2.576 2.256 2.907A.756.756 0 008.25 12v1.438A4.501 4.501 0 014.5 9 .75.75 0 003 9c0 3.06 2.29 5.585 5.25 5.954v.796a.75.75 0 001.5 0v-.796A6.001 6.001 0 0015 9a.75.75 0 00-1.5 0c0 2.23-1.622 4.08-3.75 4.438V12a.756.756 0 00-.006-.093A3.001 3.001 0 0012 9V4.5zM9 3a1.5 1.5 0 00-1.5 1.5V9a1.5 1.5 0 103 0V4.5A1.5 1.5 0 009 3z" - }); - const Zu = function(e) { - return x().createElement("svg", $u({}, e, { - viewBox: "0 0 18 18", - fill: "none" - }), Ju) - }; - - function Qu() { - return Qu = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Qu.apply(this, arguments) - } - var Xu = x().createElement("path", { - d: "M16 20.563l5 3-1.313-5.688L24.125 14l-5.875-.5L16 8.125 13.75 13.5l-5.875.5 4.438 3.875L11 23.563zm13.313-8.25l-7.25 6.313 2.188 9.375-8.25-5-8.25 5 2.188-9.375-7.25-6.313 9.563-.813 3.75-8.813 3.75 8.813z" - }); - const ed = function(e) { - return x().createElement("svg", Qu({}, e, { - viewBox: "0 0 32 32" - }), Xu) - }; - - function td() { - return td = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, td.apply(this, arguments) - } - var nd = x().createElement("path", { - clipRule: "evenodd", - d: "M5.5 11.988v1.762c0 1.283.879 2.361 2.068 2.665a.694.694 0 00-.005.085v1.318a4.126 4.126 0 01-3.438-4.068.687.687 0 10-1.375 0c0 2.805 2.1 5.12 4.813 5.457v.73a.687.687 0 101.375 0v-.73c1-.124 1.917-.518 2.676-1.105l2.318 2.318a.699.699 0 10.988-.988l-2.318-2.318a.835.835 0 01.007-.01l-.983-.983-.007.01-.994-.994.007-.011-1.047-1.046-.003.014-2.707-2.707v-.018L5.5 9.995v.018L2.568 7.08a.699.699 0 10-.988.988l3.92 3.92zm1.375 1.375v.387a1.375 1.375 0 001.719 1.332l-1.719-1.719zm2.762 2.762a2.73 2.73 0 01-.705.29.694.694 0 01.005.085v1.318a4.103 4.103 0 001.694-.699l-.994-.994zM11 13.518l-1.375-1.375V9.625a1.375 1.375 0 00-2.733-.215L5.819 8.337A2.75 2.75 0 0111 9.625v3.893zm1.249 1.249l1.085 1.085a5.483 5.483 0 00.416-2.102.687.687 0 10-1.375 0c0 .35-.044.691-.126 1.017zM14.667 4.325V5.5c0 .856.586 1.574 1.378 1.776a.464.464 0 00-.003.057v.879A2.75 2.75 0 0113.75 5.5a.458.458 0 00-.917 0c0 1.87 1.4 3.413 3.209 3.638v.487a.458.458 0 00.916 0v-.487a3.648 3.648 0 001.784-.737l1.546 1.546a.466.466 0 10.659-.659L19.4 7.742a.284.284 0 00.005-.006l-.655-.656-.005.007-.663-.662.005-.008-.698-.697-.002.009-1.805-1.804v-.012l-.916-.917v.012l-1.955-1.955a.466.466 0 10-.659.659l2.614 2.613zm.916.917V5.5a.917.917 0 001.146.888l-1.146-1.146zm1.842 1.841c-.146.085-.303.15-.47.193a.464.464 0 01.003.057v.879c.416-.07.8-.232 1.13-.466l-.663-.663zm.908-1.738l-.916-.916V2.75a.917.917 0 00-1.823-.143l-.714-.715a1.833 1.833 0 013.453.858v2.595zm.833.833l.723.723c.179-.431.278-.905.278-1.401a.458.458 0 10-.917 0c0 .234-.03.461-.084.678z" - }); - const ad = function(e) { - return x().createElement("svg", td({}, e, { - viewBox: "0 0 22 22", - fill: "none" - }), nd) - }; - - function rd() { - return rd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, rd.apply(this, arguments) - } - var id = x().createElement("g", { - clipPath: "url(#mute-everyone-else_svg__clip0)", - fillRule: "evenodd", - clipRule: "evenodd" - }, x().createElement("path", { - d: "M6 13.078V15c0 1.4.959 2.576 2.256 2.907A.756.756 0 008.25 18v1.438A4.501 4.501 0 014.5 15 .75.75 0 003 15c0 3.06 2.29 5.584 5.25 5.954v.796a.75.75 0 001.5 0v-.796a5.97 5.97 0 002.92-1.207l2.529 2.53a.762.762 0 101.078-1.078l-2.53-2.53.009-.01-1.073-1.073-.008.011-1.084-1.084.007-.012-1.141-1.141-.004.015L7.5 12.422v-.019l-1.5-1.5v.019L2.801 7.723a.762.762 0 10-1.078 1.078L6 13.078zm1.5 1.5V15a1.5 1.5 0 001.875 1.453L7.5 14.578zm3.013 3.013a2.984 2.984 0 01-.769.316c.004.03.006.061.006.093v1.438a4.476 4.476 0 001.847-.763l-1.084-1.084zM12 14.747l-1.5-1.5V10.5a1.5 1.5 0 00-2.982-.235l-1.17-1.17A3 3 0 0112 10.5v4.247zm1.362 1.362l1.184 1.184A5.983 5.983 0 0015 15a.75.75 0 00-1.5 0c0 .383-.048.754-.138 1.11zM16 4.719V6a2 2 0 001.504 1.938A.508.508 0 0017.5 8v.959A3 3 0 0115 6a.5.5 0 00-1 0 4 4 0 003.5 3.969v.531a.5.5 0 001 0v-.531a3.98 3.98 0 001.946-.804l1.686 1.686a.508.508 0 00.72-.719l-1.687-1.686.006-.007-.716-.715-.005.007-.723-.722.005-.008-.76-.761-.004.01L17 4.28V4.27l-1-1v.012L13.868 1.15a.508.508 0 10-.72.719L16 4.718zm1 1V6a1 1 0 001.25.969L17 5.719zm2.009 2.008c-.159.093-.33.164-.513.211.003.02.004.041.004.062v.959a2.984 2.984 0 001.232-.509l-.723-.723zM20 5.831l-1-1V3a1 1 0 00-1.988-.157l-.78-.78A2 2 0 0120 3v2.831zm.908.908l.79.79A3.99 3.99 0 0022 6a.5.5 0 00-1 0c0 .255-.032.503-.092.74z" - })), - od = x().createElement("defs", null, x().createElement("clipPath", { - id: "mute-everyone-else_svg__clip0" - }, x().createElement("path", { - d: "M0 0h24v24H0z" - }))); - const sd = function(e) { - return x().createElement("svg", rd({}, e, { - viewBox: "0 0 24 24" - }), id, od) - }; - - function ld() { - return ld = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, ld.apply(this, arguments) - } - var cd = x().createElement("path", { - d: "M3.136 7.1l14.448 14.447-1.033 1.032-2.598-2.599a.936.936 0 01-.459.153H3.709a.786.786 0 01-.803-.804V11.15c0-.459.344-.803.803-.803h.612L2.104 8.131 3.136 7.1zm14.448 3.669v8.714l-9.135-9.134h5.045c.459 0 .84.344.84.803v2.866l3.25-3.249zM14.688.818l8.164 8.165-.584.583L20.8 8.098a.536.536 0 01-.26.086h-5.528a.444.444 0 01-.454-.454V3.108c0-.26.195-.454.454-.454h.345l-1.253-1.253.584-.583zm8.164 2.074v4.924L17.69 2.654h2.851c.26 0 .476.194.476.454v1.619l1.835-1.835z" - }); - const ud = function(e) { - return x().createElement("svg", ld({}, e, { - viewBox: "0 0 24 24" - }), cd) - }; - - function dd() { - return dd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, dd.apply(this, arguments) - } - var pd = x().createElement("path", { - fill: "#FFF", - d: "M3.136 7.1l14.448 14.447-1.033 1.032-2.598-2.599a.936.936 0 01-.459.153H3.709a.786.786 0 01-.803-.804V11.15c0-.459.344-.803.803-.803h.612L2.104 8.131 3.136 7.1zm14.448 3.669v8.714l-9.135-9.134h5.045c.459 0 .84.344.84.803v2.866l3.25-3.249zM14.688.818l8.164 8.165-.584.583L20.8 8.098a.536.536 0 01-.26.086h-5.528a.444.444 0 01-.454-.454V3.108c0-.26.195-.454.454-.454h.345l-1.253-1.253.584-.583zm8.164 2.074v4.924L17.69 2.654h2.851c.26 0 .476.194.476.454v1.619l1.835-1.835z" - }); - const hd = function(e) { - return x().createElement("svg", dd({}, e, { - viewBox: "0 0 24 24" - }), pd) - }; - - function md() { - return md = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, md.apply(this, arguments) - } - var fd = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M3 6l11.014-4 6.007 1.5v17L14.014 22 3 18l11.014 1.5V5L7.005 6.5v10L3 18V6z", - fill: "#A4B8D1" - }); - const gd = function(e) { - return x().createElement("svg", md({}, e, { - viewBox: "0 0 24 24", + Su = C().createElement("path", { + d: "M0 0h24v24H0z", fill: "none" - }), fd) - }; - - function bd() { - return bd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, bd.apply(this, arguments) - } - var yd = x().createElement("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M18.792 15.583h-3.37a8.607 8.607 0 00-.482-1.833h3.388c.003-.066.005-.142.005-.23 0-3.39-.802-4.353-3.666-4.353-.745 0-1.35.065-1.839.221a4.57 4.57 0 00-1.37-3.494 3.208 3.208 0 115.875 1.85c2.08.788 2.834 2.714 2.834 5.777 0 1.375-.459 2.062-1.375 2.062zm-2.75-9.625a1.375 1.375 0 11-2.75 0 1.375 1.375 0 012.75 0zM3.437 20.167c-1.069 0-1.604-.764-1.604-2.292 0-3.493.926-5.655 3.5-6.486a3.667 3.667 0 115.833 0c2.575.831 3.5 2.993 3.5 6.486 0 1.528-.534 2.292-1.604 2.292H3.438zm6.646-11a1.833 1.833 0 11-3.666 0 1.833 1.833 0 013.666 0zm2.75 8.708c0 .196-.01.349-.025.458H3.692a3.738 3.738 0 01-.025-.458c0-3.856 1.036-5.042 4.583-5.042s4.583 1.186 4.583 5.042z" - }); - const vd = function(e) { - return x().createElement("svg", bd({}, e, { - viewBox: "0 0 22 22" - }), yd) - }; - - function kd() { - return kd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, kd.apply(this, arguments) - } - var _d = x().createElement("path", { - d: "M6.609 10.781a15.506 15.506 0 006.609 6.609l2.203-2.203c.281-.281.703-.375 1.031-.234 1.125.375 2.344.563 3.563.563a.96.96 0 01.984.984v3.516a.96.96 0 01-.984.984C10.64 21 2.999 13.359 2.999 3.984A.96.96 0 013.983 3h3.516a.96.96 0 01.984.984c0 1.266.188 2.438.563 3.563.094.328.047.75-.234 1.031z" - }); - const wd = function(e) { - return x().createElement("svg", kd({}, e, { + }); + const Eu = function(e) { + return C().createElement("svg", _u({}, e, { viewBox: "0 0 24 24" - }), _d) - }; - - function Sd() { - return Sd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Sd.apply(this, arguments) - } - var Ed = x().createElement("path", { - clipRule: "evenodd", - d: "M16.667 1.667l-15 9.166 5.966.995.7 5.255 2.311-3.85 6.023 4.684V1.667zm-7.93 8.655L6.35 9.924 15 4.638v9.87l-3.684-2.864L12.5 7.5l-3.763 2.822z" - }); - const xd = function(e) { - return x().createElement("svg", Sd({}, e, { - viewBox: "0 0 20 20", - fill: "none" - }), Ed) - }; - - function Cd() { - return Cd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Cd.apply(this, arguments) - } - var Ad = x().createElement("path", { - clipRule: "evenodd", - d: "M15.667 3.667a1 1 0 00-1 1v12.666a1 1 0 001 1h1.666a1 1 0 001-1V4.667a1 1 0 00-1-1h-1.666zm-6.5 6.5a1 1 0 011-1h1.666a1 1 0 011 1v7.166a1 1 0 01-1 1h-1.666a1 1 0 01-1-1v-7.166zm-5.5 5.5a1 1 0 011-1h1.666a1 1 0 011 1v1.666a1 1 0 01-1 1H4.667a1 1 0 01-1-1v-1.666z" - }); - const jd = function(e) { - return x().createElement("svg", Cd({}, e, { - viewBox: "0 0 22 22", - fill: "none" - }), Ad) - }; - - function Pd() { - return Pd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Pd.apply(this, arguments) - } - var Dd = x().createElement("path", { - clipRule: "evenodd", - d: "M11.917 3.208v8.709a.917.917 0 001.833 0V4.833c0-.097.168-.25.458-.25.29 0 .459.153.459.25v7.084a.917.917 0 001.833 0V6.875a.458.458 0 11.917 0v6.913c-.25 2.552-2.425 4.545-5.042 4.545a5.037 5.037 0 01-4.205-2.258l-.003.001-3.495-5.255c-.168-.24-.117-.526.09-.671a.458.458 0 01.638.112l1.173 1.753h-.001a.917.917 0 001.676-.482h.002V5.043a.458.458 0 01.917-.001V11.918a.917.917 0 001.833 0V3.208a.458.458 0 11.917 0zm7.317 10.56l.016-.008V6.876a2.292 2.292 0 00-2.76-2.244c-.112-1.055-1.091-1.881-2.282-1.881-.17 0-.335.017-.495.049a2.292 2.292 0 00-4.51.004 2.292 2.292 0 00-2.786 2.238v3.663a2.293 2.293 0 00-3.27 3.135l3.302 4.94a6.875 6.875 0 0012.785-3.01z" - }); - const Td = function(e) { - return x().createElement("svg", Pd({}, e, { - viewBox: "0 0 22 22", - fill: "none" - }), Dd) + }), wu, Su) }; - function Od() { - return Od = Object.assign || function(e) { + function xu() { + return xu = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Od.apply(this, arguments) + }, xu.apply(this, arguments) } - var Md = x().createElement("path", { + var Cu = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", - d: "M9.75 2.625V9.75a.75.75 0 001.5 0V3.955c0-.08.138-.205.375-.205s.375.125.375.205V9.75a.75.75 0 001.5 0V5.625a.375.375 0 01.75 0v5.656C14.046 13.37 12.266 15 10.125 15a4.121 4.121 0 01-3.44-1.848l-.003.001-2.86-4.3c-.137-.196-.095-.43.074-.549a.375.375 0 01.522.092l.96 1.434-.001.001a.75.75 0 001.371-.395h.002V4.126a.375.375 0 11.75 0V9.75a.75.75 0 001.5 0V2.625a.375.375 0 11.75 0zm5.987 8.64l.013-.006V5.625a1.875 1.875 0 00-2.259-1.836C13.4 2.925 12.6 2.25 11.625 2.25c-.14 0-.275.014-.405.04a1.876 1.876 0 00-3.69.004 1.875 1.875 0 00-2.28 1.831v2.996a1.876 1.876 0 00-2.675 2.566l2.701 4.041a5.625 5.625 0 0010.46-2.463z" - }); - const Id = function(e) { - return x().createElement("svg", Od({}, e, { - viewBox: "0 0 18 18" - }), Md) - }; - - function Nd() { - return Nd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Nd.apply(this, arguments) - } - var zd = x().createElement("path", { - d: "M16 32C7.163 32 0 24.837 0 16S7.163 0 16 0s16 7.163 16 16-7.163 16-16 16zm2.167-13.556h-3.456v-1.851h3.261v-1.26h-3.261v-1.777h3.456v-1.361h-5.052v7.61h5.052v-1.361zM23.087 20c1.839 0 3.181-1.134 3.313-2.779h-1.554c-.153.838-.84 1.376-1.754 1.376-1.205 0-1.95-.997-1.95-2.6s.745-2.595 1.945-2.595c.909 0 1.601.575 1.754 1.45h1.554c-.116-1.656-1.501-2.853-3.308-2.853-2.214 0-3.578 1.524-3.578 3.997 0 2.479 1.369 4.003 3.578 4.003zM7.196 17.047h1.305l1.422 2.758h1.807l-1.607-3.006c.877-.348 1.385-1.192 1.385-2.162 0-1.514-1.03-2.442-2.706-2.442H5.6v7.61h1.596v-2.758zm0-3.565v2.341h1.4c.803 0 1.274-.432 1.274-1.165 0-.722-.497-1.176-1.289-1.176H7.196z" - }); - const Rd = function(e) { - return x().createElement("svg", Nd({}, e, { - viewBox: "0 0 32 32" - }), zd) - }; - - function Ld() { - return Ld = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Ld.apply(this, arguments) - } - var Fd = x().createElement("path", { - d: "M21.625 14.484L.875 26.015c-.484.266-.875.031-.875-.516v-23c0-.547.391-.781.875-.516l20.75 11.531c.484.266.484.703 0 .969z" - }); - const qd = function(e) { - return x().createElement("svg", Ld({}, e, { - viewBox: "0 0 22 28" - }), Fd) - }; - - function Bd() { - return Bd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Bd.apply(this, arguments) - } - var Ud = x().createElement("path", { - d: "M24 3v22c0 .547-.453 1-1 1H1c-.547 0-1-.453-1-1V3c0-.547.453-1 1-1h22c.547 0 1 .453 1 1z" + d: "M8 7.167a3.33 3.33 0 01-2.756-1.458A4.163 4.163 0 003.916 8a3.333 3.333 0 012.897 4.828 4.169 4.169 0 002.374 0A3.333 3.333 0 0112.084 8a4.162 4.162 0 00-1.328-2.292A3.33 3.33 0 018 7.167zm0 7.5c.852 0 1.662-.183 2.392-.512a3.333 3.333 0 103.428-5.717 5.828 5.828 0 00-2.493-4.397 3.333 3.333 0 10-6.654 0A5.828 5.828 0 002.18 8.438a3.333 3.333 0 103.428 5.717c.73.329 1.54.512 2.392.512zM9.667 3.833a1.667 1.667 0 11-3.334 0 1.667 1.667 0 013.334 0zm-4.167 7.5a1.667 1.667 0 11-3.333 0 1.667 1.667 0 013.333 0zm8.333 0a1.667 1.667 0 11-3.333 0 1.667 1.667 0 013.333 0z", + fill: "#fff" }); - const Hd = function(e) { - return x().createElement("svg", Bd({}, e, { - viewBox: "0 0 24 28" - }), Ud) - }; - - function Vd() { - return Vd = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Vd.apply(this, arguments) - } - var Wd = x().createElement("path", { - d: "M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z" - }), - Yd = x().createElement("path", { - d: "M0 0h24v24H0z", - fill: "none" - }); - const Gd = function(e) { - return x().createElement("svg", Vd({}, e, { - viewBox: "0 0 24 24" - }), Wd, Yd) + const Au = function(e) { + return C().createElement("svg", xu({}, e, { + viewBox: "0 0 16 15" + }), Cu) }; - function Kd() { - return Kd = Object.assign || function(e) { + function Tu() { + return Tu = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Kd.apply(this, arguments) + }, Tu.apply(this, arguments) } - var $d = x().createElement("path", { + var Du = C().createElement("path", { d: "M3.876 3.008L3 3.118v10.557a7 7 0 003.29 5.935l5.18 3.238.53.331.53-.331 5.18-3.238A7 7 0 0021 13.675V3.117l-.876-.11-8-1L12 1.993l-.124.016-8 1z", fill: "url(#security-off_svg__paint0_linear)", stroke: "#fff", strokeWidth: 2 }), - Jd = x().createElement("path", { + Pu = C().createElement("path", { d: "M20 4v9.675a6 6 0 01-2.82 5.087L12 22V3l8 1z", fill: "url(#security-off_svg__paint1_linear)" }), - Zd = x().createElement("defs", null, x().createElement("linearGradient", { + ju = C().createElement("defs", null, C().createElement("linearGradient", { id: "security-off_svg__paint0_linear", x1: 11.814, y1: 4.142, x2: 11.814, y2: 23, gradientUnits: "userSpaceOnUse" - }, x().createElement("stop", { + }, C().createElement("stop", { stopColor: "#FFB800" - }), x().createElement("stop", { + }), C().createElement("stop", { offset: 1, stopColor: "#CF4B00" - })), x().createElement("linearGradient", { + })), C().createElement("linearGradient", { id: "security-off_svg__paint1_linear", x1: 11.814, y1: 4.142, x2: 11.814, y2: 23, gradientUnits: "userSpaceOnUse" - }, x().createElement("stop", { + }, C().createElement("stop", { stopColor: "#FF8A00" - }), x().createElement("stop", { + }), C().createElement("stop", { offset: 1, stopColor: "#A03B03" }))); - const Qd = function(e) { - return x().createElement("svg", Kd({}, e, { + const Mu = function(e) { + return C().createElement("svg", Tu({}, e, { viewBox: "0 0 24 25", fill: "none" - }), $d, Jd, Zd) + }), Du, Pu, ju) }; - function Xd() { - return Xd = Object.assign || function(e) { + function Iu() { + return Iu = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Xd.apply(this, arguments) + }, Iu.apply(this, arguments) } - var ep = x().createElement("path", { + var Ou = C().createElement("path", { d: "M3.876 3.008L3 3.118v10.557a7 7 0 003.29 5.935l5.18 3.238.53.331.53-.331 5.18-3.238A7 7 0 0021 13.675V3.117l-.876-.11-8-1L12 1.993l-.124.016-8 1z", fill: "url(#security-on_svg__paint0_linear)", stroke: "#fff", strokeWidth: 2 }), - tp = x().createElement("path", { + Nu = C().createElement("path", { d: "M20 4v9.675a6 6 0 01-2.82 5.087L12 22V3l8 1z", fill: "url(#security-on_svg__paint1_linear)" }), - np = x().createElement("path", { + Ru = C().createElement("path", { d: "M9 11.438L10.685 13 15 9", stroke: "#fff", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round" }), - ap = x().createElement("defs", null, x().createElement("linearGradient", { + zu = C().createElement("defs", null, C().createElement("linearGradient", { id: "security-on_svg__paint0_linear", x1: 11.814, y1: 4.142, x2: 11.814, y2: 23, gradientUnits: "userSpaceOnUse" - }, x().createElement("stop", { + }, C().createElement("stop", { stopColor: "#76CF9C" - }), x().createElement("stop", { + }), C().createElement("stop", { offset: 1, stopColor: "#279255" - })), x().createElement("linearGradient", { + })), C().createElement("linearGradient", { id: "security-on_svg__paint1_linear", x1: 11.814, y1: 4.142, x2: 11.814, y2: 23, gradientUnits: "userSpaceOnUse" - }, x().createElement("stop", { + }, C().createElement("stop", { stopColor: "#31B76A" - }), x().createElement("stop", { + }), C().createElement("stop", { offset: 1, stopColor: "#18663A" }))); - const rp = function(e) { - return x().createElement("svg", Xd({}, e, { + const Lu = function(e) { + return C().createElement("svg", Iu({}, e, { viewBox: "0 0 24 25", fill: "none" - }), ep, tp, np, ap) + }), Ou, Nu, Ru, zu) }; - function ip() { - return ip = Object.assign || function(e) { + function Fu() { + return Fu = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, ip.apply(this, arguments) + }, Fu.apply(this, arguments) } - var op = x().createElement("path", { + var qu = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.005 2.17l-.576 1.727-.634.262-1.628-.813a1.833 1.833 0 00-2.116.343l-.362.362a1.833 1.833 0 00-.343 2.116l.816 1.624-.265.638-1.727.576c-.748.25-1.253.95-1.253 1.739v.512c0 .79.505 1.49 1.253 1.74l1.727.575.262.634-.813 1.628a1.833 1.833 0 00.343 2.116l.362.362c.558.558 1.41.696 2.116.343l1.624-.816.638.265.576 1.727c.25.748.95 1.253 1.739 1.253h.512c.79 0 1.49-.505 1.74-1.253l.575-1.726.634-.263 1.628.813a1.833 1.833 0 002.116-.343l.362-.362c.558-.558.696-1.41.343-2.116l-.816-1.624.265-.638 1.727-.576a1.833 1.833 0 001.253-1.739v-.512c0-.79-.505-1.49-1.253-1.74l-1.726-.572-.264-.637.814-1.628a1.833 1.833 0 00-.343-2.116l-.362-.362a1.833 1.833 0 00-2.116-.343l-1.624.816-.638-.265-.576-1.727a1.833 1.833 0 00-1.74-1.253h-.511c-.79 0-1.49.505-1.74 1.253zM7.723 6.173l2.181-.903.84-2.52h.512l.84 2.52 2.185.908 2.372-1.193.362.362-1.188 2.376.903 2.185 2.52.836v.512l-2.52.84-.908 2.185 1.193 2.372-.362.362-2.376-1.188-2.181.903-.84 2.52h-.512l-.84-2.52-2.185-.908-2.372 1.193-.362-.362 1.188-2.376-.903-2.181-2.52-.84v-.512l2.52-.84.908-2.185-1.193-2.372.362-.362 2.376 1.188zM11 15.583a4.583 4.583 0 110-9.166 4.583 4.583 0 010 9.166zM13.75 11a2.75 2.75 0 11-5.5 0 2.75 2.75 0 015.5 0z" }); - const sp = function(e) { - return x().createElement("svg", ip({}, e, { + const Bu = function(e) { + return C().createElement("svg", Fu({}, e, { viewBox: "0 0 22 22" - }), op) + }), qu) }; - function lp() { - return lp = Object.assign || function(e) { + function Uu() { + return Uu = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, lp.apply(this, arguments) + }, Uu.apply(this, arguments) } - var cp = x().createElement("path", { + var Hu = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.317 3.07L5 6.666H2.5a.833.833 0 00-.833.833v5c0 .46.373.833.833.833H5l4.317 3.597a.417.417 0 00.683-.32V3.39a.417.417 0 00-.683-.32zM3.333 8.332h2.27l2.73-2.275v7.884l-2.73-2.275h-2.27V8.333zm8.334-1.666a3.333 3.333 0 010 6.666v-1.666a1.667 1.667 0 100-3.334V6.667zm0-3.334a6.667 6.667 0 010 13.334V15a5 5 0 000-10V3.333z", fill: "#fff" }); - const up = function(e) { - return x().createElement("svg", lp({}, e, { + const Vu = function(e) { + return C().createElement("svg", Uu({}, e, { viewBox: "0 0 20 20", fill: "none" - }), cp) + }), Hu) }; - function dp() { - return dp = Object.assign || function(e) { + function Wu() { + return Wu = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, dp.apply(this, arguments) + }, Wu.apply(this, arguments) } - var pp = x().createElement("path", { + var Yu = C().createElement("path", { clipRule: "evenodd", d: "M3.667 2.75h14.666c1.013 0 1.834.82 1.834 1.833v11c0 1.013-.821 1.834-1.834 1.834h-2.75a.917.917 0 010 1.833H6.417a.917.917 0 010-1.833h-2.75a1.833 1.833 0 01-1.834-1.834v-11c0-1.012.821-1.833 1.834-1.833zm0 1.833v11h14.666v-11H3.667zm8.25 3.667c-3.75 0-5.5 1.604-5.5 6.417 2-3.896 5.5-3.667 5.5-3.667v1.274a.5.5 0 00.813.39l3.287-2.65a.5.5 0 000-.778l-3.287-2.65a.5.5 0 00-.813.39V8.25z" }); - const hp = function(e) { - return x().createElement("svg", dp({}, e, { + const Gu = function(e) { + return C().createElement("svg", Wu({}, e, { viewBox: "0 0 22 22", fill: "none" - }), pp) + }), Yu) }; - function mp() { - return mp = Object.assign || function(e) { + function Ku() { + return Ku = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, mp.apply(this, arguments) + }, Ku.apply(this, arguments) } - var fp = x().createElement("path", { + var $u = C().createElement("path", { d: "M17.313 12h7.375l-7.375-7.313V12zm4 6.688V16H10.688v2.688h10.625zm0 5.312v-2.688H10.688V24h10.625zM18.688 2.688l8 8v16c0 1.438-1.25 2.625-2.688 2.625H8c-1.438 0-2.688-1.188-2.688-2.625l.063-21.375A2.64 2.64 0 018 2.688h10.688z" }); - const gp = function(e) { - return x().createElement("svg", mp({}, e, { + const Ju = function(e) { + return C().createElement("svg", Ku({}, e, { viewBox: "0 0 32 32" - }), fp) + }), $u) }; - function bp() { - return bp = Object.assign || function(e) { + function Zu() { + return Zu = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, bp.apply(this, arguments) + }, Zu.apply(this, arguments) } - var yp = x().createElement("path", { + var Qu = C().createElement("path", { d: "M16 26.688c5.875 0 10.688-4.813 10.688-10.688S21.875 5.312 16 5.312 5.312 10.125 5.312 16 10.125 26.688 16 26.688zm0-24c7.375 0 13.313 5.938 13.313 13.313S23.375 29.314 16 29.314 2.687 23.376 2.687 16.001 8.625 2.688 16 2.688zM13.313 22V10l8 6z" }); - const vp = function(e) { - return x().createElement("svg", bp({}, e, { + const Xu = function(e) { + return C().createElement("svg", Zu({}, e, { viewBox: "0 0 32 32" - }), yp) + }), Qu) }; - function kp() { - return kp = Object.assign || function(e) { + function ed() { + return ed = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, kp.apply(this, arguments) + }, ed.apply(this, arguments) } - var _p = x().createElement("path", { + var td = C().createElement("path", { clipRule: "evenodd", d: "M10 18.333a8.333 8.333 0 110-16.666 8.333 8.333 0 010 16.666zm0-1.666a6.667 6.667 0 100-13.334 6.667 6.667 0 000 13.334zM8.333 8.75a1.25 1.25 0 11-2.5 0 1.25 1.25 0 012.5 0zM12.917 10a1.25 1.25 0 100-2.5 1.25 1.25 0 000 2.5zM10 15c1.75 0 3.289-.898 4.182-2.259l-1.295-1.072A3.335 3.335 0 0110 13.333a3.344 3.344 0 01-2.876-1.666L5.83 12.741A5 5 0 0010 15z" }); - const wp = function(e) { - return x().createElement("svg", kp({}, e, { + const nd = function(e) { + return C().createElement("svg", ed({}, e, { viewBox: "0 0 20 20", fill: "none" - }), _p) + }), td) }; - function Sp() { - return Sp = Object.assign || function(e) { + function ad() { + return ad = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Sp.apply(this, arguments) + }, ad.apply(this, arguments) } - var Ep = x().createElement("path", { + var rd = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M6.574 5.355l-.012.01-3.45-3.45a.847.847 0 10-1.197 1.198l3.34 3.34L5 6.668H2.5a.833.833 0 00-.833.833v5c0 .46.373.833.833.833H5l4.317 3.597a.417.417 0 00.683-.32v-5.412l1.667 1.666v.47c.149 0 .296-.01.44-.03l1.36 1.362a4.987 4.987 0 01-1.8.334v1.667a6.638 6.638 0 003.06-.743l2.16 2.161a.847.847 0 101.198-1.198l-1.945-1.944.011-.01-1.18-1.18-.01.01-1.183-1.183.011-.01-1.189-1.189a.929.929 0 01-.012.009L10 8.802v-.02L8.333 7.114v.02l-.587-.587.011-.01-1.183-1.183zm5.403 3.007l-.31-.31V6.667a3.333 3.333 0 013.12 4.506L13.306 9.69a1.668 1.668 0 00-1.328-1.328zm4.063 4.063l1.213 1.214a6.667 6.667 0 00-5.587-10.306V5a5 5 0 014.374 7.425zM10 6.385L7.88 4.267 9.318 3.07a.417.417 0 01.683.32v2.996zM5.603 8.334l.836-.696L8.333 9.53v4.41l-2.73-2.274h-2.27V8.333h2.27z", fill: "#fff" }); - const xp = function(e) { - return x().createElement("svg", Sp({}, e, { + const id = function(e) { + return C().createElement("svg", ad({}, e, { viewBox: "0 0 20 20", fill: "none" - }), Ep) + }), rd) }; - function Cp() { - return Cp = Object.assign || function(e) { + function od() { + return od = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Cp.apply(this, arguments) + }, od.apply(this, arguments) } - var Ap = x().createElement("path", { + var sd = C().createElement("path", { d: "M7.228 11.464H1.996c-.723 0-1.308.587-1.308 1.309v5.232c0 .722.585 1.308 1.308 1.308h5.232c.723 0 1.308-.586 1.308-1.308v-5.232a1.31 1.31 0 00-1.308-1.309zm0 5.887a.654.654 0 01-.654.654H2.649a.654.654 0 01-.654-.654v-3.924c0-.361.292-.654.654-.654h3.924c.361 0 .654.293.654.654v3.924zm10.464-5.887H12.46c-.723 0-1.308.587-1.308 1.309v5.232c0 .722.585 1.308 1.308 1.308h5.232c.722 0 1.308-.586 1.308-1.308v-5.232a1.31 1.31 0 00-1.308-1.309zm0 5.887a.654.654 0 01-.654.654h-3.924a.654.654 0 01-.654-.654v-3.924c0-.361.293-.654.654-.654h3.924c.361 0 .654.293.654.654v3.924zM7.228 1H1.996C1.273 1 .688 1.585.688 2.308V7.54c0 .723.585 1.308 1.308 1.308h5.232c.723 0 1.308-.585 1.308-1.308V2.308C8.536 1.585 7.95 1 7.228 1zm0 5.886a.654.654 0 01-.654.654H2.649a.654.654 0 01-.654-.654V2.962c0-.361.292-.654.654-.654h3.924c.361 0 .654.292.654.654v3.924zM17.692 1H12.46c-.723 0-1.308.585-1.308 1.308V7.54c0 .723.585 1.308 1.308 1.308h5.232c.722 0 1.308-.585 1.308-1.308V2.308C19 1.585 18.414 1 17.692 1zm0 5.886a.654.654 0 01-.654.654h-3.924a.654.654 0 01-.654-.654V2.962c0-.361.293-.654.654-.654h3.924c.361 0 .654.292.654.654v3.924z" }); - const jp = function(e) { - return x().createElement("svg", Cp({}, e, { + const ld = function(e) { + return C().createElement("svg", od({}, e, { viewBox: "0 0 22 22" - }), Ap) + }), sd) }; - function Pp() { - return Pp = Object.assign || function(e) { + function cd() { + return cd = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Pp.apply(this, arguments) + }, cd.apply(this, arguments) } - var Dp = x().createElement("path", { + var ud = C().createElement("path", { clipRule: "evenodd", d: "M11 20.167a9.167 9.167 0 110-18.334 9.167 9.167 0 010 18.334zm0-1.834a7.333 7.333 0 100-14.666 7.333 7.333 0 000 14.666zM15.583 11a4.583 4.583 0 11-9.166 0 4.583 4.583 0 019.166 0z" }); - const Tp = function(e) { - return x().createElement("svg", Pp({}, e, { + const dd = function(e) { + return C().createElement("svg", cd({}, e, { viewBox: "0 0 22 22", fill: "none" - }), Dp) + }), ud) }; - function Op() { - return Op = Object.assign || function(e) { + function pd() { + return pd = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Op.apply(this, arguments) + }, pd.apply(this, arguments) } - var Mp = x().createElement("path", { + var hd = C().createElement("path", { d: "M32 464a48 48 0 0048 48h288a48 48 0 0048-48V128H32zm272-256a16 16 0 0132 0v224a16 16 0 01-32 0zm-96 0a16 16 0 0132 0v224a16 16 0 01-32 0zm-96 0a16 16 0 0132 0v224a16 16 0 01-32 0zM432 32H312l-9.4-18.7A24 24 0 00281.1 0H166.8a23.72 23.72 0 00-21.4 13.3L136 32H16A16 16 0 000 48v32a16 16 0 0016 16h416a16 16 0 0016-16V48a16 16 0 00-16-16z" }); - const Ip = function(e) { - return x().createElement("svg", Op({}, e, { + const md = function(e) { + return C().createElement("svg", pd({}, e, { "aria-hidden": "true", "data-prefix": "fas", "data-icon": "trash-alt", className: "trash_svg__svg-inline--fa trash_svg__fa-trash-alt trash_svg__fa-w-14", viewBox: "0 0 448 512" - }), Mp) + }), hd) }; - function Np() { - return Np = Object.assign || function(e) { + function fd() { + return fd = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Np.apply(this, arguments) + }, fd.apply(this, arguments) } - var zp = x().createElement("path", { + var gd = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M6.219 5h-.021L3.113 1.915a.847.847 0 10-1.198 1.198L3.802 5h-.469c-.92 0-1.666.746-1.666 1.667v6.666c0 .92.746 1.667 1.666 1.667H12.5c.367 0 .707-.119.982-.32l3.405 3.405a.847.847 0 101.198-1.198l-3.918-3.918v-.021L12.5 11.28v.021L7.865 6.667h.02L6.22 5zM12.5 8.885V6.667h-2.219L8.615 5H12.5c.92 0 1.667.746 1.667 1.667v.714l2.92-1.669a.833.833 0 011.246.724v7.128a.833.833 0 01-.427.728l-3.396-3.396 2.157 1.232V7.872l-2.5 1.428v1.252L12.5 8.885zM3.333 6.667H5.47l6.667 6.666H3.333V6.667z" }); - const Rp = function(e) { - return x().createElement("svg", Np({}, e, { + const bd = function(e) { + return C().createElement("svg", fd({}, e, { viewBox: "0 0 20 20" - }), zp) - }; - - function Lp() { - return Lp = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Lp.apply(this, arguments) - } - var Fp = x().createElement("path", { - d: "M16 32C7.163 32 0 24.837 0 16S7.163 0 16 0s16 7.163 16 16-7.163 16-16 16zM9.633 19.897h1.788l-2.74-7.891H6.74L4 19.897h1.657l.607-1.881h2.773l.596 1.881zm4.801-7.892h-1.652v5.168c0 1.75 1.285 2.926 3.303 2.926 2.023 0 3.309-1.176 3.309-2.926v-5.168h-1.652v4.998c0 .995-.596 1.63-1.657 1.63-1.055 0-1.652-.634-1.652-1.63v-4.998zM21.32 12v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894H21.32zm1.651 1.411v5.075h1.192c1.46 0 2.28-.897 2.28-2.565 0-1.597-.848-2.51-2.28-2.51h-1.192zm-15.362.235l-.99 3.095h2.067l-.979-3.095h-.098z" - }); - const qp = function(e) { - return x().createElement("svg", Lp({}, e, { - viewBox: "0 0 32 32" - }), Fp) - }; - - function Bp() { - return Bp = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Bp.apply(this, arguments) - } - var Up = x().createElement("path", { - d: "M16 32C7.163 32 0 24.837 0 16S7.163 0 16 0s16 7.163 16 16-7.163 16-16 16zm-.958-12v-7.994h-1.696v3.224h-3.65v-3.224H8V20h1.696v-3.341h3.65V20h1.696zm1.966-8v8h3.19C22.624 20 24 18.543 24 15.945 24 13.441 22.607 12 20.198 12h-3.19zm1.696 1.429v5.141h1.224c1.499 0 2.342-.909 2.342-2.598 0-1.618-.87-2.543-2.342-2.543h-1.224z" - }); - const Hp = function(e) { - return x().createElement("svg", Bp({}, e, { - viewBox: "0 0 32 32" - }), Up) + }), gd) }; - function Vp() { - return Vp = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Vp.apply(this, arguments) - } - var Wp = x().createElement("path", { - d: "M16 32C7.163 32 0 24.837 0 16S7.163 0 16 0s16 7.163 16 16-7.163 16-16 16zm-1.238-13.541h-3.511v-6.453H9.599v7.891h5.162v-1.438zM16.261 12v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894h-3.106zm1.652 1.411v5.075h1.192c1.46 0 2.28-.897 2.28-2.565 0-1.597-.848-2.51-2.28-2.51h-1.192z" - }); - - function Yp() { - return Yp = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Yp.apply(this, arguments) - } - var Gp = x().createElement("path", { - d: "M16 32C7.163 32 0 24.837 0 16S7.163 0 16 0s16 7.163 16 16-7.163 16-16 16zM8.8 17.901c.06 1.471 1.28 2.395 3.161 2.395 1.98 0 3.199-.973 3.199-2.565 0-1.225-.684-1.909-2.27-2.242l-.952-.202c-.924-.197-1.302-.476-1.302-.963 0-.602.547-.984 1.373-.984.798 0 1.378.416 1.455 1.039h1.553C14.968 12.974 13.737 12 11.998 12c-1.821 0-3.019.979-3.019 2.466 0 1.203.705 1.952 2.144 2.253l1.028.219c.968.208 1.362.498 1.362 1.001 0 .596-.607 1.012-1.466 1.012-.93 0-1.575-.41-1.652-1.05H8.798zm7.919-5.704v7.897h3.106c2.363 0 3.702-1.438 3.702-4.003 0-2.472-1.356-3.894-3.702-3.894h-3.106zm1.651 1.411v5.075h1.192c1.46 0 2.28-.897 2.28-2.565 0-1.597-.848-2.51-2.28-2.51H18.37z" - }); - - function Kp() { - return Kp = Object.assign || function(e) { + function yd() { + return yd = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Kp.apply(this, arguments) + }, yd.apply(this, arguments) } - var $p = x().createElement("path", { + var vd = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M5.333 2c.948 0 1.764.565 2.13 1.377-.455.073-.879.239-1.252.477a1 1 0 10-1.237 1.413 3.32 3.32 0 00-.307 1.4v.03c-1.545.156-2 .957-2 3.136 0 .064.001.12.004.167h.463a6.263 6.263 0 00-.35 1.333h-.45c-.667 0-1-.5-1-1.5 0-2.227.547-3.628 2.06-4.201A2.333 2.333 0 015.334 2zM9.79 3.854a3.313 3.313 0 00-1.251-.477 2.334 2.334 0 114.068 2.255c1.513.573 2.06 1.974 2.06 4.201 0 1-.333 1.5-1 1.5h-.45a6.267 6.267 0 00-.35-1.333h.463a3.19 3.19 0 00.004-.167c0-2.179-.456-2.98-2-3.136v-.03c0-.5-.11-.975-.307-1.4a1 1 0 10-1.237-1.413zM4.5 14.667c-.778 0-1.167-.556-1.167-1.667 0-2.54.673-4.113 2.546-4.717a2.667 2.667 0 114.242 0c1.873.604 2.546 2.177 2.546 4.717 0 1.111-.39 1.667-1.167 1.667h-7zm4.833-8a1.333 1.333 0 11-2.666 0 1.333 1.333 0 012.666 0zm2 6.333c0 .143-.008.254-.018.333h-6.63c-.01-.08-.018-.19-.018-.333 0-2.804.753-3.667 3.333-3.667s3.333.863 3.333 3.667z" }); - const Jp = function(e) { - return x().createElement("svg", Kp({}, e, { + const kd = function(e) { + return C().createElement("svg", yd({}, e, { viewBox: "0 0 16 16" - }), $p) + }), vd) }; - function Zp() { - return Zp = Object.assign || function(e) { + function _d() { + return _d = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Zp.apply(this, arguments) + }, _d.apply(this, arguments) } - var Qp = x().createElement("path", { + var wd = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M20 2H4a2 2 0 00-2 2v16a2 2 0 002 2h16a2 2 0 002-2V4a2 2 0 00-2-2zM9.096 14.76l2.146 3.112 3.185-7.351a1 1 0 011.81-.055L20 17.88V4H4v15.76l3.45-5a1 1 0 011.646 0zM9 12a3 3 0 110-6 3 3 0 010 6zm1-3a1 1 0 11-2 0 1 1 0 012 0zm5.416 4.269L18.833 20H12.5l2.916-6.731zm-7.143 3.82L10.28 20H6.264l2.009-2.91z" }); - const Xp = function(e) { - return x().createElement("svg", Zp({}, e, { + const Sd = function(e) { + return C().createElement("svg", _d({}, e, { viewBox: "0 0 24 24" - }), Qp) + }), wd) }; - function eh() { - return eh = Object.assign || function(e) { + function Ed() { + return Ed = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, eh.apply(this, arguments) + }, Ed.apply(this, arguments) } - var th = x().createElement("path", { + var xd = C().createElement("path", { clipRule: "evenodd", d: "M11.18 3.683L6 8H3a1 1 0 00-1 1v6a1 1 0 001 1h3l5.18 4.317a.5.5 0 00.82-.384V4.068a.5.5 0 00-.82-.385zM4 10h2.724L10 7.27v9.46L6.724 14H4v-4zm10-2a4 4 0 010 8v-2a2 2 0 100-4V8zm0-4a8 8 0 110 16v-2a6 6 0 000-12V4z" }); - const nh = function(e) { - return x().createElement("svg", eh({}, e, { + const Cd = function(e) { + return C().createElement("svg", Ed({}, e, { viewBox: "0 0 24 24", fill: "none" - }), th) + }), xd) }; - function ah() { - return ah = Object.assign || function(e) { + function Ad() { + return Ad = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, ah.apply(this, arguments) + }, Ad.apply(this, arguments) } - var rh = x().createElement("path", { + var Td = C().createElement("path", { clipRule: "evenodd", d: "M7.889 6.426l-.014.012-4.14-4.14a1.017 1.017 0 10-1.437 1.437l4.009 4.01L6 8H3a1 1 0 00-1 1v6a1 1 0 001 1h3l5.18 4.317a.5.5 0 00.82-.384v-6.496l2 2V16c.179 0 .355-.012.528-.034l1.633 1.633c-.67.259-1.399.401-2.161.401v2a7.966 7.966 0 003.672-.89l2.593 2.592a1.017 1.017 0 101.437-1.437L19.37 17.93l.013-.012-1.417-1.416a.753.753 0 00-.013.012l-1.419-1.42.014-.01-1.427-1.427-.015.01L12 10.563v-.026l-2-2v.026l-.705-.705.014-.012-1.42-1.42zM14 9.663l3.745 3.745A4 4 0 0014 8v1.663zm5.248 5.248l1.456 1.456A8 8 0 0014 4v2a6 6 0 015.248 8.91zM12 7.663L9.457 5.119l1.723-1.436a.5.5 0 01.82.385v3.595zM6.724 10l1.003-.836L10 11.437v5.293L6.724 14H4v-4h2.724z" }); - const ih = function(e) { - return x().createElement("svg", ah({}, e, { + const Dd = function(e) { + return C().createElement("svg", Ad({}, e, { viewBox: "0 0 24 24", fill: "none" - }), rh) + }), Td) }; - function oh() { - return oh = Object.assign || function(e) { + function Pd() { + return Pd = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, oh.apply(this, arguments) + }, Pd.apply(this, arguments) } - var sh = x().createElement("path", { + var jd = C().createElement("path", { d: "M0 0h24v24H0z", fill: "none" }), - lh = x().createElement("path", { + Md = C().createElement("path", { d: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z" }); - const ch = function(e) { - return x().createElement("svg", oh({}, e, { + const Id = function(e) { + return C().createElement("svg", Pd({}, e, { viewBox: "0 0 24 24" - }), sh, lh) + }), jd, Md) }; - function uh() { - return uh = Object.assign || function(e) { + function Od() { + return Od = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, uh.apply(this, arguments) + }, Od.apply(this, arguments) } - var dh = x().createElement("path", { + var Nd = C().createElement("path", { opacity: .4, d: "M13.091 6.598a7.187 7.187 0 00-2.336-1.656A6.841 6.841 0 008 4.36c-.946 0-1.882.198-2.755.582a7.187 7.187 0 00-2.336 1.656l1.454 1.544a5.134 5.134 0 011.669-1.184A4.887 4.887 0 018 6.543c.675 0 1.344.141 1.968.415a5.135 5.135 0 011.669 1.184l1.454-1.544z" }), - ph = x().createElement("path", { + Rd = C().createElement("path", { opacity: .4, d: "M16 3.51C13.877 1.264 11 0 8 0S2.123 1.263 0 3.51l1.454 1.544C3.192 3.214 5.546 2.181 8 2.181c2.454 0 4.808 1.033 6.546 2.873L16 3.511z" }), - hh = x().createElement("path", { + zd = C().createElement("path", { d: "M5.943 9.817L8 12l2.057-2.183a2.903 2.903 0 00-.944-.67 2.764 2.764 0 00-2.226 0 2.904 2.904 0 00-.944.67z" }); - function mh() { - return mh = Object.assign || function(e) { + function Ld() { + return Ld = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, mh.apply(this, arguments) + }, Ld.apply(this, arguments) } - var fh = x().createElement("path", { + var Fd = C().createElement("path", { d: "M13.091 6.598a7.188 7.188 0 00-2.336-1.656A6.841 6.841 0 008 4.36c-.946 0-1.882.198-2.755.582a7.188 7.188 0 00-2.336 1.656l1.454 1.544a5.134 5.134 0 011.669-1.184A4.887 4.887 0 018 6.543c.675 0 1.344.141 1.968.415a5.135 5.135 0 011.669 1.184l1.454-1.544z" }), - gh = x().createElement("path", { + qd = C().createElement("path", { opacity: .4, d: "M16 3.51C13.877 1.264 11 0 8 0S2.123 1.263 0 3.51l1.454 1.544C3.192 3.214 5.546 2.181 8 2.181c2.454 0 4.808 1.033 6.546 2.873L16 3.511z" }), - bh = x().createElement("path", { + Bd = C().createElement("path", { d: "M5.943 9.817L8 12l2.057-2.183a2.903 2.903 0 00-.944-.67 2.764 2.764 0 00-2.226 0 2.904 2.904 0 00-.944.67z" }); - function yh() { - return yh = Object.assign || function(e) { + function Ud() { + return Ud = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, yh.apply(this, arguments) + }, Ud.apply(this, arguments) } - var vh = x().createElement("path", { + var Hd = C().createElement("path", { d: "M13.091 6.598a7.188 7.188 0 00-2.336-1.656A6.841 6.841 0 008 4.36c-.946 0-1.882.198-2.755.582a7.188 7.188 0 00-2.336 1.656l1.454 1.544a5.134 5.134 0 011.669-1.184A4.887 4.887 0 018 6.543c.675 0 1.344.141 1.968.415a5.135 5.135 0 011.669 1.184l1.454-1.544z" }), - kh = x().createElement("path", { + Vd = C().createElement("path", { d: "M16 3.51C13.877 1.264 11 0 8 0S2.123 1.263 0 3.51l1.454 1.544C3.192 3.214 5.546 2.181 8 2.181c2.454 0 4.808 1.033 6.546 2.873L16 3.511zM5.943 9.817L8 12l2.057-2.183a2.903 2.903 0 00-.944-.67 2.764 2.764 0 00-2.226 0 2.904 2.904 0 00-.944.67z" }); - function _h() { - return _h = Object.assign || function(e) { + function Wd() { + return Wd = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, _h.apply(this, arguments) + }, Wd.apply(this, arguments) } - var wh = x().createElement("path", { + var Yd = C().createElement("path", { d: "M4 3h5.104l2.972 7.604L15.086 3h4.97l-7.483 18H7.572l2.048-4.77L4 3z", fill: "#A4B8D1" }); - const Sh = function(e) { - return x().createElement("svg", _h({}, e, { + const Gd = function(e) { + return C().createElement("svg", Wd({}, e, { viewBox: "0 0 24 24", fill: "none" - }), wh) + }), Yd) }; - function Eh() { - return Eh = Object.assign || function(e) { + function Kd() { + return Kd = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Eh.apply(this, arguments) + }, Kd.apply(this, arguments) } - var xh = x().createElement("path", { + var $d = C().createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M4.412 1.908c-.905 1.47.832 5.615 2.949 7.732l.002-.002c2.117 2.116 6.258 3.855 7.73 2.95 1.01-.621.915-3.075.15-3.82-.506-.493-2.055-.748-2.693-.62-.2.04-.76.617-1.07.939l-.15.154c-.23.228-1.69-1.02-2.124-1.453L7.6 9.398l1.605-1.611C8.772 7.354 7.53 5.899 7.76 5.671c.037-.038.09-.09.153-.15.322-.312.9-.87.94-1.07.127-.64-.128-2.188-.62-2.694-.746-.765-3.2-.86-3.821.15z", fill: "#fff" }); - const Ch = function(e) { - return x().createElement("svg", Eh({}, e, { - viewBox: "0 0 20 14", - fill: "none" - }), xh) - }, - Ah = wd, - jh = "local", - Ph = "PARTICIPANT_JOINED_SOUND", - Dh = "PARTICIPANT_LEFT_SOUND", - Th = "moderator"; + const Jd = function(e) { + return C().createElement("svg", Kd({}, e, { + viewBox: "0 0 20 14", + fill: "none" + }), $d) + }; + var Zd = n(1153); + const Qd = "https://www.gravatar.com/avatar/", + Xd = ["#6A50D3", "#FF9B42", "#DF486F", "#73348C", "#B23683", "#F96E57", "#4380E2", "#2AA076", "#00A8B3"], + ep = /\s+|\.+|_+|;+|-+|,+|\|+|\/+|\\+/, + tp = new(n.n(Zd)()); - function Oh(e) { + function np(e) { + return null != e && e.length ? tp.splitGraphemes(e)[0].toUpperCase() : "" + } + + function ap() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""; + return e.startsWith(Qd) + } + class rp extends x.PureComponent { + _isIcon(e) { + return Boolean(e) && ("object" == typeof e || "function" == typeof e) + } + } + class ip extends rp { + render() { + const { + initials: e, + url: t + } = this.props; + return this._isIcon(t) ? C().createElement("div", { + className: `${this._getAvatarClassName()} ${this._getBadgeClassName()}`, + "data-testid": this.props.testId, + id: this.props.id, + style: this._getAvatarStyle(this.props.color) + }, C().createElement(lo, { + size: "50%", + src: t + })) : t ? C().createElement("div", { + className: this._getBadgeClassName() + }, C().createElement("img", { + alt: "avatar", + className: this._getAvatarClassName(), + crossOrigin: ap(t) ? "" : void 0, + "data-testid": this.props.testId, + id: this.props.id, + onError: this.props.onAvatarLoadError, + src: t, + style: this._getAvatarStyle() + })) : e ? C().createElement("div", { + className: `${this._getAvatarClassName()} ${this._getBadgeClassName()}`, + "data-testid": this.props.testId, + id: this.props.id, + style: this._getAvatarStyle(this.props.color) + }, C().createElement("svg", { + className: "avatar-svg", + viewBox: "0 0 100 100", + xmlns: "http://www.w3.org/2000/svg", + xmlnsXlink: "http://www.w3.org/1999/xlink" + }, C().createElement("text", { + dominantBaseline: "central", + fill: "rgba(255,255,255,1)", + fontSize: "40pt", + textAnchor: "middle", + x: "50", + y: "50" + }, e))) : C().createElement("div", { + className: this._getBadgeClassName() + }, C().createElement("img", { + alt: "avatar", + className: this._getAvatarClassName("defaultAvatar"), + "data-testid": this.props.testId, + id: this.props.id, + src: this.props.defaultAvatar || "images/avatar.png", + style: this._getAvatarStyle() + })) + } + _getAvatarStyle(e) { + const { + size: t + } = this.props; + return { + background: e || void 0, + fontSize: t ? .5 * t : "180%", + height: t || "100%", + width: t || "100%" + } + } + _getAvatarClassName(e) { + return `avatar ${e||""} ${this.props.className||""}` + } + _getBadgeClassName() { + const { + status: e + } = this.props; + return e ? `avatar-badge avatar-badge-${e}` : "" + } + } + class op extends x.PureComponent { + constructor(e) { + super(e), this.state = { + avatarFailed: !1 + }, this._onAvatarLoadError = this._onAvatarLoadError.bind(this) + } + componentDidUpdate(e) { + e.url !== this.props.url && this.setState({ + avatarFailed: !1 + }) + } + render() { + const { + _customAvatarBackgrounds: e, + _initialsBase: t, + _loadableAvatarUrl: n, + className: a, + colorBase: r, + dynamicColor: i, + id: o, + size: s, + status: l, + testId: c, + url: u + } = this.props, { + avatarFailed: d + } = this.state, p = { + className: a, + color: void 0, + id: o, + initials: void 0, + onAvatarLoadError: void 0, + size: s, + status: l, + testId: c, + url: void 0 + }, h = !d && u || n; + h && (p.onAvatarLoadError = this._onAvatarLoadError, p.url = h); + const m = function(e) { + const t = _().split(e, "@")[0], + [n, a] = t.split(ep); + return np(n) + np(a) + }(t); + return m && (i && (p.color = function(e, t) { + const n = t && t.length ? t : Xd; + let a = 0; + if (e) { + let t = 0; + for (const n of e) t += n.codePointAt(0); + a = t % n.length + } + return n[a] + }(r || t, e)), p.initials = m), C().createElement(ip, p) + } + _onAvatarLoadError() { + this.setState({ + avatarFailed: !0 + }) + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(op, "defaultProps", { + dynamicColor: !0 + }); + const sp = Ne((function(e, t) { + var n; + const { + colorBase: a, + displayName: r, + participantId: i + } = t, o = i && Vh(e, i), s = null !== (n = null == o ? void 0 : o.name) && void 0 !== n ? n : r; + return { + _customAvatarBackgrounds: e["features/dynamic-branding"].avatarBackgrounds, + _initialsBase: s, + _loadableAvatarUrl: null == o ? void 0 : o.loadableAvatarUrl, + colorBase: a + } + }))(op), + lp = "SET_NO_SRC_DATA_NOTIFICATION_UID", + cp = "TOGGLE_SCREENSHARING", + up = "TRACK_ADDED", + dp = "TRACK_CREATE_CANCELED", + pp = "TRACK_CREATE_ERROR", + hp = "TRACK_NO_DATA_FROM_SOURCE", + mp = "TRACK_REMOVED", + fp = "TRACK_STOPPED", + gp = "TRACK_UPDATED", + bp = "TRACK_WILL_CREATE", + yp = "TRACK_UPDATE_LAST_VIDEO_MEDIA_EVENT", + vp = "BACKGROUND_ENABLED", + kp = "SET_VIRTUAL_BACKGROUND", + _p = "VIRTUAL_BACKGROUND_TRACK_CHANGED", + wp = $e("features/virtual-background"); + + function Sp(e, t) { + return async function(n, a) { + await n(Ep(e.enabled)), await n(function(e) { + return { + type: kp, + virtualSource: null == e ? void 0 : e.url, + blurValue: null == e ? void 0 : e.blurValue, + backgroundType: null == e ? void 0 : e.backgroundType, + selectedThumbnail: null == e ? void 0 : e.selectedThumbnail + } + }(e)); + const r = a()["features/virtual-background"]; + if (t) try { + e.enabled ? await t.setEffect(await Wp(r, n)) : (await t.setEffect(void 0), n(Ep(!1))) + } catch (e) { + n(Ep(!1)), wp.error("Error on apply background effect:", e) + } + } + } + + function Ep(e) { + return { + type: vp, + backgroundEffectEnabled: e + } + } + let xp; + + function Cp() { + if (void 0 === xp) { + const e = document.createElement("canvas"), + t = e.getContext("2d"); + xp = void 0 !== t.filter, e.remove() + } + return xp + } + + function Ap(e, t, n) { + const a = { + enabled: !1, + backgroundType: "none", + selectedThumbnail: "none", + backgroundEffectEnabled: !1 + }; + t && t.on(St.LOCAL_TRACK_STOPPED, (() => { + e(Sp(a, n)), e(hn({ + localFlipX: !0 + })) + })) + } + + function Tp(e, t) { + return new Promise(((n, a) => { + setTimeout((() => { + a(new Error("408")) + }), e), t.then(n, a) + })) + } + const Dp = "image", + Pp = "desktop-share", + jp = "blur", + Mp = "none", + Ip = [{ + tooltip: "image1", + id: "1", + src: "images/virtual-background/background-1.jpg" + }, { + tooltip: "image2", + id: "2", + src: "images/virtual-background/background-2.jpg" + }, { + tooltip: "image3", + id: "3", + src: "images/virtual-background/background-3.jpg" + }, { + tooltip: "image4", + id: "4", + src: "images/virtual-background/background-4.jpg" + }, { + tooltip: "image5", + id: "5", + src: "images/virtual-background/background-5.jpg" + }, { + tooltip: "image6", + id: "6", + src: "images/virtual-background/background-6.jpg" + }, { + tooltip: "image7", + id: "7", + src: "images/virtual-background/background-7.jpg" + }], + Op = URL.createObjectURL(new Blob(["\n var timer;\n\n onmessage = function(request) {\n switch (request.data.id) {\n case 1: {\n timer = setTimeout(() => {\n postMessage({ id: 3 });\n }, request.data.timeMs);\n break;\n }\n case 2: {\n if (timer) {\n clearTimeout(timer);\n }\n break;\n }\n }\n };\n"], { + type: "application/javascript" + })); + class Np { + constructor(e, t) { + var n, a, r; + this._options = t, this._options.virtualBackground.backgroundType === Dp && (this._virtualImage = document.createElement("img"), this._virtualImage.crossOrigin = "anonymous", this._virtualImage.src = this._options.virtualBackground.virtualSource), this._options.virtualBackground.backgroundType === Pp && (this._virtualVideo = document.createElement("video"), this._virtualVideo.autoplay = !0, this._virtualVideo.srcObject = null === (n = this._options) || void 0 === n || null === (a = n.virtualBackground) || void 0 === a || null === (r = a.virtualSource) || void 0 === r ? void 0 : r.stream), this._model = e, this._segmentationPixelCount = this._options.width * this._options.height, this._onMaskFrameTimer = this._onMaskFrameTimer.bind(this), this._outputCanvasElement = document.createElement("canvas"), this._outputCanvasElement.getContext("2d"), this._inputVideoElement = document.createElement("video") + } + _onMaskFrameTimer(e) { + 3 === e.data.id && this._renderMask() + } + runPostProcessing() { + var e; + const t = this._stream.getVideoTracks()[0], + { + height: n, + width: a + } = null !== (e = t.getSettings()) && void 0 !== e ? e : t.getConstraints(), + { + backgroundType: r + } = this._options.virtualBackground; + this._outputCanvasElement.height = n, this._outputCanvasElement.width = a, this._outputCanvasCtx.globalCompositeOperation = "copy", this._outputCanvasCtx.filter = r === Dp ? "blur(4px)" : "blur(8px)", r === Pp && (this._outputCanvasCtx.save(), this._outputCanvasCtx.scale(-1, 1), this._outputCanvasCtx.translate(-this._outputCanvasElement.width, 0)), this._outputCanvasCtx.drawImage(this._segmentationMaskCanvas, 0, 0, this._options.width, this._options.height, 0, 0, this._inputVideoElement.width, this._inputVideoElement.height), r === Pp && this._outputCanvasCtx.restore(), this._outputCanvasCtx.globalCompositeOperation = "source-in", this._outputCanvasCtx.filter = "none", r === Pp && (this._outputCanvasCtx.save(), this._outputCanvasCtx.scale(-1, 1), this._outputCanvasCtx.translate(-this._outputCanvasElement.width, 0)), this._outputCanvasCtx.drawImage(this._inputVideoElement, 0, 0), r === Pp && this._outputCanvasCtx.restore(), this._outputCanvasCtx.globalCompositeOperation = "destination-over", r === Dp || r === Pp ? this._outputCanvasCtx.drawImage(r === Dp ? this._virtualImage : this._virtualVideo, 0, 0, this._outputCanvasElement.width, this._outputCanvasElement.height) : (this._outputCanvasCtx.filter = `blur(${this._options.virtualBackground.blurValue}px)`, this._outputCanvasCtx.drawImage(this._inputVideoElement, 0, 0)) + } + runInference() { + this._model._runInference(); + const e = this._model._getOutputMemoryOffset() / 4; + for (let t = 0; t < this._segmentationPixelCount; t++) { + const n = this._model.HEAPF32[e + 2 * t], + a = this._model.HEAPF32[e + 2 * t + 1], + r = Math.max(n, a), + i = Math.exp(n - r), + o = Math.exp(a - r); + this._segmentationMask.data[4 * t + 3] = 255 * o / (i + o) + } + this._segmentationMaskCtx.putImageData(this._segmentationMask, 0, 0) + } + _renderMask() { + this.resizeSource(), this.runInference(), this.runPostProcessing(), this._maskFrameTimerWorker.postMessage({ + id: 1, + timeMs: 1e3 / 30 + }) + } + resizeSource() { + this._segmentationMaskCtx.drawImage(this._inputVideoElement, 0, 0, this._inputVideoElement.width, this._inputVideoElement.height, 0, 0, this._options.width, this._options.height); + const e = this._segmentationMaskCtx.getImageData(0, 0, this._options.width, this._options.height), + t = this._model._getInputMemoryOffset() / 4; + for (let n = 0; n < this._segmentationPixelCount; n++) this._model.HEAPF32[t + 3 * n] = e.data[4 * n] / 255, this._model.HEAPF32[t + 3 * n + 1] = e.data[4 * n + 1] / 255, this._model.HEAPF32[t + 3 * n + 2] = e.data[4 * n + 2] / 255 + } + isEnabled(e) { + return e.isVideoTrack() && "camera" === e.videoType + } + startEffect(e) { + this._stream = e, this._maskFrameTimerWorker = new Worker(Op, { + name: "Blur effect worker" + }), this._maskFrameTimerWorker.onmessage = this._onMaskFrameTimer; + const t = this._stream.getVideoTracks()[0], + { + height: n, + frameRate: a, + width: r + } = t.getSettings ? t.getSettings() : t.getConstraints(); + return this._segmentationMask = new ImageData(this._options.width, this._options.height), this._segmentationMaskCanvas = document.createElement("canvas"), this._segmentationMaskCanvas.width = this._options.width, this._segmentationMaskCanvas.height = this._options.height, this._segmentationMaskCtx = this._segmentationMaskCanvas.getContext("2d"), this._outputCanvasElement.width = parseInt(r, 10), this._outputCanvasElement.height = parseInt(n, 10), this._outputCanvasCtx = this._outputCanvasElement.getContext("2d"), this._inputVideoElement.width = parseInt(r, 10), this._inputVideoElement.height = parseInt(n, 10), this._inputVideoElement.autoplay = !0, this._inputVideoElement.srcObject = this._stream, this._inputVideoElement.onloadeddata = () => { + this._maskFrameTimerWorker.postMessage({ + id: 1, + timeMs: 1e3 / 30 + }) + }, this._outputCanvasElement.captureStream(parseInt(a, 10)) + } + stopEffect() { + this._maskFrameTimerWorker.postMessage({ + id: 2 + }), this._maskFrameTimerWorker.terminate() + } + } + var Rp = n(6360), + zp = n.n(Rp), + Lp = n(8599), + Fp = n.n(Lp); + let qp, Bp, Up = !1; + const Hp = { + height: 96, + width: 160 + }, + Vp = { + height: 144, + width: 256 + }; + async function Wp(e, t) { + if (!MediaStreamTrack.prototype.getSettings && !MediaStreamTrack.prototype.getConstraints) throw new Error("JitsiStreamBackgroundEffect not supported!"); + if (qp || Up) { + if (Up) return void t(ng({ + titleKey: "virtualBackground.backgroundEffectError" + }, Yf.LONG)) + } else try { + var a, r; + Bp = n(2759); + const e = 1e4; + qp = null !== (a = Bp) && void 0 !== a && null !== (r = a.feature) && void 0 !== r && r.simd ? await Tp(e, Fp()()) : await Tp(e, zp()()) + } catch (e) { + return Up = !0, void("408" === (null == e ? void 0 : e.message) ? (wp.error("Failed to download tflite model!"), t(ng({ + titleKey: "virtualBackground.backgroundEffectError" + }, Yf.LONG))) : (wp.error("Looks like WebAssembly is disabled or not supported on this browser", e), t(ng({ + titleKey: "virtualBackground.webAssemblyWarning", + descriptionKey: "virtualBackground.webAssemblyWarningDescription" + }, Yf.LONG)))) + } + const i = qp._getModelBufferMemoryOffset(), + o = await fetch(Bp.feature.simd ? "libs/segm_full_v679.tflite" : "libs/segm_lite_v681.tflite"); + if (!o.ok) throw new Error("Failed to download tflite model!"); + const s = await o.arrayBuffer(); + qp.HEAPU8.set(new Uint8Array(s), i), qp._loadModel(s.byteLength); + const l = { + ...Bp.feature.simd ? Vp : Hp, + virtualBackground: e + }; + return new Np(qp, l) + } + const Yp = $e("features/base/tracks"); + + function Gp(e) { + const t = e.getState()["features/virtual-background"], + n = t.backgroundEffectEnabled ? Wp(t).catch((e => (Yp.error("Failed to obtain the background effect instance with error: ", e), Promise.resolve()))) : Promise.resolve(); + return Promise.all([n]) + } + const Kp = e => e["features/base/tracks"]; + + function $p(e, t, n) { + if (!e) return !1; + const a = Kp(n); + return null != e && e.local ? ch(a, t) : !(null == e || !e.isFakeParticipant) || dh(a, t, e.id) + } + + function Jp(e, t) { + return $p(e, Fi, t) + } + + function Zp(e, t) { + return $p(e, Bi, t) + } + + function Qp() { + var e; + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + n = arguments.length > 1 ? arguments[1] : void 0, + { + cameraDeviceId: a, + micDeviceId: r + } = t; + const { + desktopSharingSourceDevice: i, + desktopSharingSources: o, + firePermissionPromptIsShownEvent: s, + fireSlowPromiseEvent: l, + timeout: u + } = t; + if ("undefined" != typeof APP) { + n || (n = APP.store); + const e = n.getState(); + null == a && (a = na(e)), null == r && (r = aa(e)) + } + const d = n.getState(), + { + desktopSharingFrameRate: p, + firefox_fake_device: h, + resolution: m + } = d["features/base/config"], + f = null !== (e = t.constraints) && void 0 !== e ? e : d["features/base/config"].constraints; + return Gp(n).then((e => { + const n = e.filter((e => Boolean(e))); + return c.default.createLocalTracks({ + cameraDeviceId: a, + constraints: f, + desktopSharingFrameRate: p, + desktopSharingSourceDevice: i, + desktopSharingSources: o, + devices: t.devices.slice(0), + effects: n, + firefox_fake_device: h, + firePermissionPromptIsShownEvent: s, + fireSlowPromiseEvent: l, + micDeviceId: r, + resolution: m, + timeout: u + }).catch((e => (Yp.error("Failed to create local tracks", t.devices, e), Promise.reject(e)))) + })) + } + + function Xp(e) { + return eh(e, Fi) + } + + function eh(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + return th(e, n).find((e => e.mediaType === t)) + } + + function th(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return e.filter((e => e.local && (e.jitsiTrack || t))) + } + + function nh(e) { + return eh(e, Bi) + } + + function ah(e) { + return eh(e, qi) ? qi : Bi + } + + function rh(e) { + const t = nh(Kp(e)); + return null == t ? void 0 : t.jitsiTrack + } + + function ih(e) { + const t = Xp(Kp(e)); + return null == t ? void 0 : t.jitsiTrack + } + + function oh(e, t, n) { + return e.find((e => Boolean(e.jitsiTrack) && e.participantId === n && e.mediaType === t)) + } + + function sh(e, t) { + return e.find((e => e.jitsiTrack === t)) + } + + function lh(e) { + const t = eh(e, qi), + n = eh(e, Bi); + return t ? ch(e, qi) : !n || "camera" !== n.videoType || ch(e, Bi) + } + + function ch(e, t) { + const n = eh(e, t); + return !n || n.muted + } + + function uh(e) { + const t = nh(Kp(e)); + return t && t.videoType === Yi + } + + function dh(e, t, n) { + const a = oh(e, t, n); + return !a || a.muted + } + + function ph(e) { + return dt.isUserInteractionRequiredForUnmute() && window && window.self !== window.top && !e["features/base/user-interaction"].interacted + } + + function hh(e, t) { + if (t = Boolean(t), e.isMuted() === t) return Promise.resolve(); + const n = t ? "mute" : "unmute"; + return e[n]().catch((e => { + e.name !== wt.TRACK_IS_DISPOSED && Yp.error(`set track ${n} failed`, e) + })) + } + + function mh(e) { + const t = Fe(e), + { + videoInput: n + } = t["features/base/devices"].availableDevices; + return va() && n.length > 1 + } + + function fh() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return (t, n) => { + const a = e.devices || [Fi, Bi], + r = { + dispatch: t, + getState: n + }; + for (const i of a) { + if (eh(n()["features/base/tracks"], i, !0)) throw new Error(`Local track for ${i} already exists`); + const a = Qp({ + cameraDeviceId: e.cameraDeviceId, + devices: [i], + facingMode: e.facingMode || Li, + micDeviceId: e.micDeviceId + }, r).then((e => { + if (1 !== e.length) throw new Error(`Expected exactly 1 track, but was given ${e.length} tracks for device: ${i}.`); + return a.canceled ? xh(e).then((() => t(Th(i)))) : t(kh(e[0])) + }), (e => t(a.canceled ? Th(i) : Ch(e, i)))); + a.cancel = () => (a.canceled = !0, a), t({ + type: bp, + track: { + gumProcess: a, + local: !0, + mediaType: i + } + }) + } + } + } + + function gh() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null; + return e ? t => { + t(Eh([e])) + } : (e, t) => { + Sh(t).then((() => e(Eh(t()["features/base/tracks"].filter((e => e.local)).map((e => e.jitsiTrack)))))) + } + } + + function bh(e) { + return async (t, n) => { + let a; + const r = sh(n()["features/base/tracks"], e); + r && (a = r.isReceivingData ? void 0 : { + uid: (await t(eg({ + descriptionKey: "dialog.cameraNotSendingData", + titleKey: "dialog.cameraNotSendingDataTitle" + }, Yf.LONG))).uid + }, t(_h(e, a))) + } + } + + function yh(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], + n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + return { + type: cp, + enabled: e, + audioOnly: t, + ignoreDidHaveVideo: n + } + } + + function vh(e, t, n) { + return async (a, r) => (n || (n = r()["features/base/conference"].conference), n && await n.replaceTrack(e, t), a(function(e, t) { + return n => (e ? n(Eh([e])) : Promise.resolve()).then((() => { + if (t) { + const e = t.isVideoTrack() ? yf : gf, + a = t.isMuted(); + return Da(cn(t.getType(), "track.replaced", a)), Yp.log(`Replace ${t.getType()} track - ${a?"muted":"unmuted"}`), n(e(a)) + } + })).then((() => { + if (t) return n((e = [t], t => Promise.all(e.map((e => t(kh(e))))))); + var e + })) + }(e, t))) + } + + function kh(e) { + return async (t, n) => { + e.on(St.TRACK_MUTE_CHANGED, (() => t(function(e) { + return { + type: gp, + track: { + jitsiTrack: e, + muted: e.isMuted() + } + } + }(e)))), e.on(St.TRACK_VIDEOTYPE_CHANGED, (n => t(function(e, t) { + return { + type: gp, + track: { + jitsiTrack: e, + videoType: t + } + } + }(e, n)))); + const a = e.isLocal(), + r = e.getType(); + let i, o, s; + if (a) { + t(Ph()); + const a = Uh(n); + if (a && (s = a.id), i = e.isReceivingData(), e.on(St.NO_DATA_FROM_SOURCE, (() => t(function(e) { + return { + type: hp, + track: e + } + }({ + jitsiTrack: e + })))), !i) + if (r === Fi) { + const e = await t(tg({ + descriptionKey: "dialog.micNotSendingData", + titleKey: "dialog.micNotSendingDataTitle" + }, Yf.LONG)); + t(Ph(e.uid)), o = { + uid: e.uid + } + } else o = { + timeout: setTimeout((() => t(bh(e))), Yf.MEDIUM) + }; + e.on(St.LOCAL_TRACK_STOPPED, (() => t({ + type: fp, + track: { + jitsiTrack: e + } + }))) + } else s = e.getParticipantId(), i = !0; + return t({ + type: up, + track: { + jitsiTrack: e, + isReceivingData: i, + local: a, + mediaType: r, + mirror: Ah(e), + muted: e.isMuted(), + noDataFromSourceNotificationInfo: o, + participantId: s, + videoStarted: !1, + videoType: e.videoType + } + }) + } + } + + function _h(e, t) { + return { + type: gp, + track: { + jitsiTrack: e, + noDataFromSourceNotificationInfo: t + } + } + } + + function wh(e) { + return e.removeAllListeners(St.TRACK_MUTE_CHANGED), e.removeAllListeners(St.TRACK_VIDEOTYPE_CHANGED), e.removeAllListeners(St.NO_DATA_FROM_SOURCE), { + type: mp, + track: { + jitsiTrack: e + } + } + } + + function Sh(e) { + const t = e => Yp.error("gumProcess.cancel failed", JSON.stringify(e)); + return Promise.all(e()["features/base/tracks"].filter((e => e.local)).map((e => { + let { + gumProcess: n + } = e; + return n && n.cancel().catch(t) + }))) + } + + function Eh(e) { + return t => xh(e).then((() => Promise.all(e.map((e => t(wh(e))))))) + } + + function xh(e) { + return Promise.all(e.map((e => e.dispose().catch((e => { + if (e.name !== wt.TRACK_IS_DISPOSED) throw e + }))))) + } + + function Ch(e, t) { + return n => { + n({ + type: pp, + permissionDenied: "SecurityError" === (null == e ? void 0 : e.name), + trackType: t + }) + } + } + + function Ah(e) { + return e && e.isLocal() && e.isVideoTrack() && e.getCameraFacingMode() === Li + } + + function Th(e) { + return { + type: dp, + trackType: e + } + } + + function Dh() { + return (e, t) => { + const n = nh(t()["features/base/tracks"]); + n && n.videoType === Yi && e(Eh([n.jitsiTrack])) + } + } + + function Ph(e) { + return { + type: lp, + uid: e + } + } + + function jh() { + return async (e, t) => { + const n = nh(t()["features/base/tracks"]).jitsiTrack.getCameraFacingMode(); + await APP.conference.useVideoStream(null); + const a = n === Li ? zi : Li; + e(hn({ + localFlipX: a === Li + })); + const r = await rt("video", null, null, { + facingMode: a + }); + await APP.conference.useVideoStream(r) + } + } + const Mh = Xc, + Ih = "local", + Oh = "PARTICIPANT_JOINED_SOUND", + Nh = "PARTICIPANT_LEFT_SOUND", + Rh = "moderator"; + + function zh(e) { return t = e, !Boolean(t) || "object" != typeof t && "function" != typeof t ? new Promise(((t, n) => { const a = document.createElement("img"); - a.onload = () => t(e), a.onerror = n, a.referrerPolicy = "no-referrer", a.src = e + ap(e) && a.setAttribute("crossOrigin", ""), a.onload = () => t(e), a.onerror = n, a.referrerPolicy = "no-referrer", a.src = e })) : Promise.resolve(e); var t } - const Mh = [], - Ih = new Map, - Nh = [(e, t) => e && e.isJigasi ? Ah : null, (e, t) => e && e.avatarURL ? e.avatarURL : null, (e, t) => { + const Lh = [], + Fh = new Map, + qh = [(e, t) => e && e.isJigasi ? Mh : null, (e, t) => e && e.avatarURL ? e.avatarURL : null, (e, t) => { if (e && e.email) { var n; - const a = null !== (n = t.getState()["features/base/config"].gravatarBaseURL) && void 0 !== n ? n : "https://www.gravatar.com/avatar/"; - return function(e, t = "https://seccdn.libravatar.org/avatar/") { - var n; - return `${t}${(n=e)&&n.indexOf("@")>0?u.hex(e.trim().toLowerCase()):e}?d=404&size=200` + const a = null !== (n = t.getState()["features/base/config"].gravatarBaseURL) && void 0 !== n ? n : Qd; + return function(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "https://seccdn.libravatar.org/avatar/"; + const n = "?d=404&size=200", + a = d(e) ? u.hex(e.trim().toLowerCase()) : e; + return `${t}${a}${n}` }(e.email, a) } return null }]; - function zh(e, t) { + function Bh(e, t) { const n = function() { const e = {}; return e.promise = new Promise(((t, n) => { @@ -6924,32 +6971,32 @@ })), e }(), a = n.promise.then((() => async function(e, t) { - for (let n = 0; n < Nh.length; n++) { - const a = Nh[n](e, t); + for (let n = 0; n < qh.length; n++) { + const a = qh[n](e, t); if (null !== a) - if (Ih.has(a)) { - if (Ih.get(a)) return a + if (Fh.has(a)) { + if (Fh.get(a)) return a } else try { - const e = await Oh(a); - return Ih.set(e, !0), e + const e = await zh(a); + return Fh.set(e, !0), e } catch (e) { - Ih.set(a, !1) + Fh.set(a, !1) } } - }(e, t))).then((e => (Mh.length && Mh.shift().resolve(), e))); - return Mh.length ? Mh.push(n) : n.resolve(), a + }(e, t))).then((e => (Lh.length && Lh.shift().resolve(), e))); + return Lh.length ? Lh.push(n) : n.resolve(), a } - function Rh(e) { - return qe(e)["features/base/participants"].local + function Uh(e) { + return Fe(e)["features/base/participants"].local } - function Lh(e) { + function Hh(e) { if (e && e.trim()) return e.trim().substring(0, 50) } - function Fh(e, t) { - const n = qe(e)["features/base/participants"], + function Vh(e, t) { + const n = Fe(e)["features/base/participants"], { local: a, remote: r @@ -6957,12 +7004,12 @@ return r.get(t) || ((null == a ? void 0 : a.id) === t ? a : void 0) } - function qh(e, t) { - return t ? Fh(e, t) : Rh(e) + function Wh(e, t) { + return t ? Vh(e, t) : Uh(e) } - function Bh(e) { - const t = qe(e)["features/base/participants"], + function Yh(e) { + const t = Fe(e)["features/base/participants"], { local: n, remote: a, @@ -6971,8 +7018,8 @@ return a.size - r.size + (n ? 1 : 0) } - function Uh(e) { - const t = qe(e)["features/base/participants"], + function Gh(e) { + const t = Fe(e)["features/base/participants"], { local: n, remote: a @@ -6980,278 +7027,312 @@ return a.size + (n ? 1 : 0) } - function Hh(e, t) { - const n = Fh(e, t); + function Kh(e, t) { + const n = Vh(e, t), + { + defaultLocalDisplayName: a, + defaultRemoteDisplayName: r + } = Fe(e)["features/base/config"]; if (n) { if (n.name) return n.name; - if (n.local) return "object" == typeof interfaceConfig ? interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME : "me" + if (n.local) return a } - return "object" == typeof interfaceConfig ? interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME : "Fellow Jitster" + return r } - function Vh(e, t) { + function $h(e, t) { if (!t) return; - const n = Fh(e, t); + const n = Vh(e, t); return n ? n.presence : void 0 } - function Wh(e) { - return qe(e)["features/base/participants"].remote + function Jh(e) { + return Fe(e)["features/base/participants"].remote } - function Yh(e) { - const t = qe(e)["features/base/participants"], + function Zh(e) { + const t = Fe(e)["features/base/participants"], { pinnedParticipant: n } = t; - if (n) return Fh(e, n) + if (n) return Vh(e, n) } - function Gh(e) { - return (null == e ? void 0 : e.role) === Th + function Qh(e) { + return (null == e ? void 0 : e.role) === Rh } - function Kh(e) { - const t = qe(e)["features/base/participants"], + function Xh(e) { + const t = Fe(e)["features/base/participants"], { dominantSpeaker: n } = t; - if (n) return Fh(e, n) + if (n) return Vh(e, n) } - function $h(e) { - return !0 === qe(e)["features/base/participants"].everyoneIsModerator + function em(e) { + return !0 === Fe(e)["features/base/participants"].everyoneIsModerator } - function Jh(e) { - const t = qe(e)["features/base/participants"], + function tm(e) { + const t = Fe(e)["features/base/participants"], { local: n } = t; - return !!n && Gh(n) + return !!n && Qh(n) } - function Zh(e) { + function nm(e) { const { raisedHandsQueue: t - } = qe(e)["features/base/participants"]; + } = Fe(e)["features/base/participants"]; return t } - const Qh = { - [Xi]: "audioWhitelist", - [to]: "videoWhitelist" + + function am(e) { + return Boolean(e && e.raisedHandTimestamp) + } + const rm = { + [Fi]: "audioWhitelist", + [Bi]: "videoWhitelist" }, - Xh = { - [Xi]: "pendingAudio", - [to]: "pendingVideo" + im = { + [Fi]: "pendingAudio", + [Bi]: "pendingVideo" }, - em = "ASKED_TO_UNMUTE_SOUND", - tm = "audio-moderation", - nm = "video-moderation", - am = "screensharing-moderation", - rm = { - [Xi]: tm, - [to]: nm, - [eo]: am + om = "ASKED_TO_UNMUTE_SOUND", + sm = "audio-moderation", + lm = "video-moderation", + cm = "screensharing-moderation", + um = { + [Fi]: sm, + [Bi]: lm, + [qi]: cm }, - im = e => e["features/av-moderation"], - om = (e, t) => { + dm = e => e["features/av-moderation"], + pm = (e, t) => { var n, a; - return !0 === (e === Xi ? null === (n = im(t)) || void 0 === n ? void 0 : n.audioModerationEnabled : null === (a = im(t)) || void 0 === a ? void 0 : a.videoModerationEnabled) + return !0 === (e === Fi ? null === (n = dm(t)) || void 0 === n ? void 0 : n.audioModerationEnabled : null === (a = dm(t)) || void 0 === a ? void 0 : a.videoModerationEnabled) }, - sm = e => t => om(e, t), - lm = (e, t) => !0 === (e === Xi ? im(t).audioUnmuteApproved : im(t).videoUnmuteApproved) || Jh(t), - cm = (e, t) => n => { - const a = Qh[t]; - return Boolean(im(n)[a][e]) + hm = e => t => pm(e, t), + mm = (e, t) => !0 === (e === Fi ? dm(t).audioUnmuteApproved : dm(t).videoUnmuteApproved) || tm(t), + fm = (e, t) => n => { + const a = rm[t]; + return Boolean(dm(n)[a][e]) }, - um = (e, t) => n => { - const a = Xh[t], - r = im(n)[a]; + gm = (e, t) => n => { + const a = im[t], + r = dm(n)[a]; return Boolean(r.find((t => t.id === e.id))) }, - dm = (e, t) => om(e, t) && !lm(e, t), - pm = "features/participants-pane", - hm = "Hover", - mm = "Permanent", - fm = "DominantSpeaker", - gm = "Muted", - bm = "ForceMuted", - ym = "Unmuted", - vm = "None", - km = "Mute", - _m = "AskToUnmute", - wm = { - [fm]: x().createElement(qs, { + bm = (e, t) => pm(e, t) && !mm(e, t), + ym = "features/breakout-rooms", + vm = e => Fe(e)[ym].rooms, + km = e => { + const t = vm(e); + return _().find(t, (e => e.isMainRoom)) + }, + _m = e => { + const t = vF(e); + return null == t ? void 0 : t.getName() + }, + wm = e => { + var t; + const n = vF(e); + return null == n || null === (t = n.getBreakoutRooms()) || void 0 === t ? void 0 : t.isBreakoutRoom() + }, + Sm = "features/participants-pane", + Em = { + HOVER: "Hover", + PERMANENT: "Permanent" + }, + xm = { + DOMINANT_SPEAKER: "DominantSpeaker", + MUTED: "Muted", + FORCE_MUTED: "ForceMuted", + UNMUTED: "Unmuted", + NONE: "None" + }, + Cm = "Mute", + Am = "AskToUnmute", + Tm = { + [xm.DOMINANT_SPEAKER]: C().createElement(lo, { className: "jitsi-icon-dominant-speaker", size: 16, - src: Wu + src: wc }), - [bm]: x().createElement(qs, { + [xm.FORCE_MUTED]: C().createElement(lo, { color: "#E04757", size: 16, - src: Ku + src: xc }), - [gm]: x().createElement(qs, { + [xm.MUTED]: C().createElement(lo, { size: 16, - src: Ku + src: xc }), - [ym]: x().createElement(qs, { + [xm.UNMUTED]: C().createElement(lo, { size: 16, - src: Wu + src: wc }), - [vm]: null + [xm.NONE]: null }, - Sm = { - [bm]: x().createElement(qs, { + Dm = { + [xm.FORCE_MUTED]: C().createElement(lo, { color: "#E04757", size: 16, - src: wl + src: Wo }), - [gm]: x().createElement(qs, { + [xm.MUTED]: C().createElement(lo, { size: 16, - src: wl + src: Wo }), - [ym]: x().createElement(qs, { + [xm.UNMUTED]: C().createElement(lo, { size: 16, - src: vl + src: Uo }), - [vm]: null + [xm.NONE]: null }, - Em = (...e) => e.filter(Boolean).join(" "), - xm = (e, t) => !e || e.matches(`.${t.styledComponentId}`) ? e : xm(e.parentElement, t); + Pm = function() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + return t.filter(Boolean).join(" ") + }, + jm = (e, t) => !e || e.classList.contains(t) ? e : jm(e.parentElement, t); - function Cm(e, t, n) { - return !(!om(t, n) || (e.local ? lm(t, n) : Gh(e) || cm(e.id, t)(n))) + function Mm(e, t, n) { + return !(!pm(t, n) || (e.local ? mm(t, n) : Qh(e) || fm(e.id, t)(n))) } - const Am = (e, t) => parseFloat(e.getPropertyValue(t)), - jm = e => { + const Im = (e, t) => parseFloat(e.getPropertyValue(t)), + Om = e => { var t; - return Boolean(null === (t = (e => e[pm])(e)) || void 0 === t ? void 0 : t.isOpen) + return Boolean(null === (t = (e => e[Sm])(e)) || void 0 === t ? void 0 : t.isOpen) }; - - function Pm(e) { - const { - id: t - } = Rh(e), n = function(e) { - return qe(e)["features/filmstrip"].remoteParticipants - }(e), a = new Set(n), r = Zh(e), i = new Set(r || []), o = Kh(e); - for (const e of i.keys()) a.has(e) ? a.delete(e) : i.delete(e); - i.delete(t); - const s = []; - return o && o.id !== t && (i.delete(o.id), a.delete(o.id), s.push(o.id)), [...s, t, ...Array.from(i.keys()), ...Array.from(a.keys())] - } - const Dm = "DISABLE_MODERATION", - Tm = "DISMISS_PENDING_PARTICIPANT", - Om = "ENABLE_MODERATION", - Mm = "REQUEST_DISABLE_AUDIO_MODERATION", - Im = "REQUEST_DISABLE_VIDEO_MODERATION", - Nm = "REQUEST_ENABLE_AUDIO_MODERATION", - zm = "REQUEST_ENABLE_VIDEO_MODERATION", - Rm = "LOCAL_PARTICIPANT_APPROVED", - Lm = "LOCAL_PARTICIPANT_REJECTED", - Fm = "LOCAL_PARTICIPANT_MODERATION_NOTIFICATION", - qm = "PARTICIPANT_APPROVED", - Bm = "PARTICIPANT_REJECTED", - Um = "PARTICIPANT_PENDING_AUDIO", - Hm = e => (t, n) => { + const Nm = "DISABLE_MODERATION", + Rm = "DISMISS_PENDING_PARTICIPANT", + zm = "ENABLE_MODERATION", + Lm = "REQUEST_DISABLE_AUDIO_MODERATION", + Fm = "REQUEST_DISABLE_VIDEO_MODERATION", + qm = "REQUEST_ENABLE_AUDIO_MODERATION", + Bm = "REQUEST_ENABLE_VIDEO_MODERATION", + Um = "LOCAL_PARTICIPANT_APPROVED", + Hm = "LOCAL_PARTICIPANT_REJECTED", + Vm = "LOCAL_PARTICIPANT_MODERATION_NOTIFICATION", + Wm = "PARTICIPANT_APPROVED", + Ym = "PARTICIPANT_REJECTED", + Gm = "PARTICIPANT_PENDING_AUDIO", + Km = e => (t, n) => { const a = n(), { conference: r - } = uI(a), - i = om(Xi, a), - o = om(to, a); - !i && o || r.avModerationApprove(Xi, e) + } = dF(a), + i = Vh(a, e), + o = pm(Fi, a), + s = pm(Bi, a), + l = Mm(i, Bi, a); + !o && s && l || r.avModerationApprove(Fi, e) }, - Vm = e => (t, n) => { + $m = e => (t, n) => { const a = n(), { conference: r - } = uI(a), - i = Cm(Fh(a, e), to, a); - om(to, a) && i && r.avModerationApprove(to, e) + } = dF(a), + i = Mm(Vh(a, e), Bi, a); + pm(Bi, a) && i && r.avModerationApprove(Bi, e) }, - Wm = e => t => { - t(Hm(e)), t(Vm(e)) + Jm = e => t => { + t(Km(e)), t($m(e)) }, - Ym = e => (t, n) => { + Zm = e => (t, n) => { const a = n(), { conference: r - } = uI(a), - i = om(Xi, a), - o = Fh(a, e), - s = Cm(o, Xi, a), - l = Gh(o); - !i || s || l || r.avModerationReject(Xi, e) + } = dF(a), + i = pm(Fi, a), + o = Vh(a, e), + s = Mm(o, Fi, a), + l = Qh(o); + !i || s || l || r.avModerationReject(Fi, e) }, - Gm = e => (t, n) => { + Qm = e => (t, n) => { const a = n(), { conference: r - } = uI(a), - i = om(to, a), - o = Fh(a, e), - s = Cm(o, to, a), - l = Gh(o); - !i || s || l || r.avModerationReject(to, e) + } = dF(a), + i = pm(Bi, a), + o = Vh(a, e), + s = Mm(o, Bi, a), + l = Qh(o); + !i || s || l || r.avModerationReject(Bi, e) }; - function Km(e, t) { + function Xm(e, t) { return { - type: Tm, + type: Rm, id: e, mediaType: t } } - const $m = () => ({ - type: Mm + const ef = () => ({ + type: Lm }), - Jm = () => ({ - type: Im + tf = () => ({ + type: Fm }), - Zm = () => ({ - type: Nm + nf = () => ({ + type: qm }), - Qm = () => ({ - type: zm + af = () => ({ + type: Bm }); - function Xm(e) { + function rf(e) { return { - type: Fm, + type: Vm, mediaType: e } } - function ef(e) { + function of (e) { return { - type: Um, + type: Gm, participant: e } } - const tf = "SET_AUDIO_MUTED", - nf = "SET_AUDIO_AVAILABLE", - af = "SET_CAMERA_FACING_MODE", - rf = "SET_VIDEO_AVAILABLE", - of = "SET_VIDEO_MUTED", - sf = "TOGGLE_CAMERA_FACING_MODE"; + const sf = "SET_AUDIO_AVAILABLE", + lf = "SET_AUDIO_MUTED", + cf = "SET_AUDIO_UNMUTE_PERMISSIONS", + uf = "SET_CAMERA_FACING_MODE", + df = "SET_VIDEO_AVAILABLE", + pf = "SET_VIDEO_MUTED", + hf = "STORE_VIDEO_TRANSFORM", + mf = "SET_VIDEO_UNMUTE_PERMISSIONS", + ff = "TOGGLE_CAMERA_FACING_MODE"; - function lf(e, t = !1) { + function gf(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; return { - type: tf, + type: lf, ensureTrack: t, muted: e } } - function cf(e, t = "video", n = 4, a = !1) { + function bf(e) { + return { + type: cf, + blocked: e + } + } + + function yf(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Bi, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : Vi, + a = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; return (r, i) => { const o = i(); - if (!e && dm(to, o)) return void(Dv(to, o) || a && r(Xm(to))); + if (!e && bm(Bi, o)) return void(jw(Bi, o) || a && r(rf(Bi))); const s = o["features/base/media"].video.muted; return r({ - type: of , + type: pf, authority: n, mediaType: t, ensureTrack: a, @@ -7259,8 +7340,15 @@ }) } } - const uf = Je("features/base/media"); - class df extends E.Component { + + function vf(e) { + return { + type: mf, + blocked: e + } + } + const kf = $e("features/base/media"); + class _f extends x.Component { constructor(e) { super(e), this.setAudioElementImpl = this.setAudioElementImpl.bind(this) } @@ -7278,18 +7366,18 @@ "function" == typeof t && t(e ? this : null) } setSinkId(e) { - this._audioElementImpl && "function" == typeof this._audioElementImpl.setSinkId && this._audioElementImpl.setSinkId(e).catch((e => uf.error("Error setting sink", e))) + this._audioElementImpl && "function" == typeof this._audioElementImpl.setSinkId && this._audioElementImpl.setSinkId(e).catch((e => kf.error("Error setting sink", e))) } stop() { this._audioElementImpl && this._audioElementImpl.stop() } } - class pf extends df { + class wf extends _f { constructor(e) { super(e), this._onCanPlayThrough = this._onCanPlayThrough.bind(this), this._setRef = this._setRef.bind(this) } render() { - return x().createElement("audio", { + return C().createElement("audio", { loop: Boolean(this.props.loop), onCanPlayThrough: this._onCanPlayThrough, preload: "auto", @@ -7310,7 +7398,7 @@ this._ref = e, e ? this._maybeSetAudioElementImpl() : (this.setAudioElementImpl(null), this._audioFileLoaded = !1) } } - class hf extends E.Component { + class Sf extends x.Component { constructor(e) { super(e), this._setRef = this._setRef.bind(this), this._play = this._play.bind(this) } @@ -7343,7 +7431,7 @@ autoPlay: e, id: t } = this.props; - return x().createElement("audio", { + return C().createElement("audio", { autoPlay: e, id: t, ref: this._setRef @@ -7355,21 +7443,22 @@ _detachTrack(e) { this._ref && e && e.jitsiTrack && (clearTimeout(this._playTimeout), this._playTimeout = void 0, e.jitsiTrack.detach(this._ref)) } - _play(e = 0) { + _play() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; if (!this._ref) return; const { autoPlay: t, id: n } = this.props; t && this._ref.play().then((() => { - 0 !== e && (this._playTimeout = void 0, Ma({ + 0 !== e && (this._playTimeout = void 0, Da({ action: "audio.play.success", attributes: { elementID: n } - }), uf.info(`Successfully played audio track! retries: ${e}`)) + }), kf.info(`Successfully played audio track! retries: ${e}`)) }), (t => { - uf.error(`Failed to play audio track! retry: ${e} ; Error: ${t}`), e < 3 ? (this._playTimeout = setTimeout((() => this._play(e + 1)), 1e3), 0 === e && Ma({ + kf.error(`Failed to play audio track! retry: ${e} ; Error: ${t}`), e < 3 ? (this._playTimeout = setTimeout((() => this._play(e + 1)), 1e3), 0 === e && Da({ action: "audio.play.error", attributes: { elementID: n @@ -7387,11 +7476,11 @@ configurable: !0, writable: !0 }) : e[t] = n - }(hf, "defaultProps", { + }(Sf, "defaultProps", { autoPlay: !0, id: "" }); - const mf = ze((function(e, t) { + const Ef = Ne((function(e, t) { const { participantsVolume: n } = e["features/filmstrip"]; @@ -7399,18 +7488,18 @@ _muted: e["features/base/config"].startSilent, _volume: n[t.participantId] } - }))(hf); + }))(Sf); - function ff() { - return ff = Object.assign || function(e) { + function xf() { + return xf = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, ff.apply(this, arguments) + }, xf.apply(this, arguments) } - class gf extends E.Component { + class Cf extends x.Component { constructor(e) { super(e), this._videoElement = null, this._onVideoPlaying = this._onVideoPlaying.bind(this), this._setVideoElement = this._setVideoElement.bind(this) } @@ -7435,7 +7524,7 @@ style: i, eventHandlers: o } = this.props; - return x().createElement("video", ff({ + return C().createElement("video", xf({ autoPlay: e, className: t, id: n, @@ -7464,51 +7553,51 @@ configurable: !0, writable: !0 }) : e[t] = n - }(gf, "defaultProps", { + }(Cf, "defaultProps", { className: "", autoPlay: !0, id: "", playsinline: !0 }); - const bf = gf, - yf = { + const Af = Cf, + Tf = { config: !0, settings: !0, urlParams: !0, jwt: !1 }; - function vf(e) { - return Boolean(ia(e, "startWithAudioMuted", yf)) + function Df(e) { + return Boolean(ta(e, "startWithAudioMuted", Tf)) } - function kf(e) { - return Boolean(ia(e, "startWithVideoMuted", yf)) + function Pf(e) { + return Boolean(ta(e, "startWithVideoMuted", Tf)) } - function _f(e) { + function jf(e) { return function(e, t) { const { muted: n - } = qe(e)["features/base/media"].video; + } = Fe(e)["features/base/media"].video; return Boolean(n & t) - }(e, 4) + }(e, Vi) } - function wf(e, t) { + function Mf(e, t) { return e && !e.muted && (!t || e.videoStarted) } - class Sf extends E.Component { + class If extends x.Component { constructor(e) { super(e), this._onVideoPlaying = this._onVideoPlaying.bind(this) } render() { const e = this.props.videoTrack || null; let t; - this.props.waitForVideoStarted && e ? (wf(e, !0) || wf(e, !1) && !e.videoStarted) && (t = !0) : t = wf(e, !1); + this.props.waitForVideoStarted && e ? (Mf(e, !0) || Mf(e, !1) && !e.videoStarted) && (t = !0) : t = Mf(e, !1); const n = t && e ? e.jitsiTrack.getOriginalStream() : null, a = this.props.zoomEnabled && n && e && "desktop" === e.videoType; - return x().createElement(bf, { + return C().createElement(Af, { mirror: e && e.mirror, onPlaying: this._onVideoPlaying, onPress: this.props.onPress, @@ -7521,17 +7610,18 @@ const { videoTrack: e } = this.props; - var t; - e && !e.videoStarted && this.props.dispatch((t = e.jitsiTrack, { - type: ho, - track: { - jitsiTrack: t, - videoStarted: !0 + e && !e.videoStarted && this.props.dispatch(function(e) { + return { + type: gp, + track: { + jitsiTrack: e, + videoStarted: !0 + } } - })) + }(e.jitsiTrack)) } } - class Ef extends Sf { + class Of extends If { render() { const { _noAutoPlayVideo: e, @@ -7542,7 +7632,7 @@ style: i, eventHandlers: o } = this.props; - return x().createElement(bf, { + return C().createElement(Af, { autoPlay: !e, className: t, eventHandlers: o, @@ -7560,17 +7650,17 @@ configurable: !0, writable: !0 }) : e[t] = n - }(Ef, "defaultProps", { + }(Of, "defaultProps", { className: "", id: "" }); - const xf = ze((function(e) { + const Nf = Ne((function(e) { const t = e["features/base/config"].testing; return { _noAutoPlayVideo: null == t ? void 0 : t.noAutoPlayVideo } - }))(Ef); - class Cf extends E.Component { + }))(Of); + class Rf extends x.Component { render() { let e = 0; const t = []; @@ -7579,7 +7669,7 @@ options: r, src: i } = a; - t.push(x().createElement(pf, { + t.push(C().createElement(wf, { key: e, setRef: this._setRef.bind(this, n), src: i, @@ -7592,7 +7682,7 @@ t ? this.props._addAudioElement(e, t) : this.props._removeAudioElement(e) } } - const Af = ze((function(e) { + const zf = Ne((function(e) { return { _sounds: e["features/base/sounds"] } @@ -7601,7 +7691,7 @@ _addAudioElement(t, n) { e(function(e, t) { return { - type: qi, + type: Ci, audioElement: t, soundId: e } @@ -7610,15 +7700,15 @@ _removeAudioElement(t) { e(function(e) { return { - type: Bi, + type: Ai, soundId: e } }(t)) } } - }))(Cf), - jf = Je("features/base/app"); - class Pf extends E.Component { + }))(Rf), + Lf = $e("features/base/app"); + class Ff extends x.Component { constructor(e) { super(e), this.state = { route: {}, @@ -7627,7 +7717,7 @@ } componentDidMount() { this._init = this._initStorage().catch((e => { - jf.error(e) + Lf.error(e) })).then((() => new Promise((e => { this.setState({ store: this._createStore() @@ -7635,23 +7725,23 @@ })))).then((() => { return this.state.store.dispatch((e = this, t => { "object" == typeof APP && APP.API.init(), t({ - type: Ya, + type: Va, app: e }) })); var e })).catch((e => { - jf.error(e) + Lf.error(e) })) } componentWillUnmount() { this.state.store.dispatch({ - type: Ga, + type: Wa, app: this }) } componentDidCatch(e, t) { - jf.error(e, t) + Lf.error(e, t) } _initStorage() { return l.getItem("_initializing") || Promise.resolve() @@ -7664,27 +7754,27 @@ }, store: n } = this.state; - return n ? x().createElement(fr, { - i18n: Ni - }, x().createElement(N, { + return n ? C().createElement(hr, { + i18n: _i + }, C().createElement(R, { store: n - }, x().createElement(E.Fragment, null, this._createMainElement(e, t), x().createElement(Af, null), this._createExtraElement(), this._renderDialogContainer()))) : null + }, C().createElement(x.Fragment, null, this._createMainElement(e, t), C().createElement(zf, null), this._createExtraElement(), this._renderDialogContainer()))) : null } _createExtraElement() { return null } _createMainElement(e, t) { - return e ? x().createElement(e, t || {}) : null + return e ? C().createElement(e, t || {}) : null } _createStore() { - const e = nt.combineReducers(); - let t, n = Be.applyMiddleware(gr.Z); - "object" == typeof window && (t = window.devToolsExtension) && (n = de(n, t())); - const a = ae(e, et.getPersistedState(), n); - return at.subscribe(a), "undefined" != typeof APP && (APP.store = a), a + const e = et.combineReducers(); + let t, n = qe.applyMiddleware(mr.Z); + "object" == typeof window && (t = window.devToolsExtension) && (n = pe(n, t())); + const a = re(e, Xe.getPersistedState(), n); + return tt.subscribe(a), "undefined" != typeof APP && (APP.store = a), a } _navigate(e) { - return k().isEqual(e, this.state.route) ? Promise.resolve() : e.href ? (window.location.href = e.href, Promise.resolve()) : new Promise((t => { + return _().isEqual(e, this.state.route) ? Promise.resolve() : e.href ? (window.location.href = e.href, Promise.resolve()) : new Promise((t => { this.setState({ route: e }, t) @@ -7692,14 +7782,14 @@ } } - function Df(e, t, n) { - const a = qe(e)["features/base/flags"]; + function qf(e, t, n) { + const a = Fe(e)["features/base/flags"]; if (a) { const e = a[t]; if (void 0 !== e) return e } const r = function(e, t) { - const n = qe(e)["features/base/app"]; + const n = Fe(e)["features/base/app"]; if (n) { const { app: e @@ -7709,167 +7799,135 @@ }(e) || {}; return r[t] || n } - const Tf = "CLEAR_NOTIFICATIONS", - Of = "HIDE_NOTIFICATION", - Mf = "SHOW_NOTIFICATION", - If = "SET_NOTIFICATIONS_ENABLED", - Nf = "HIDE_RAISE_HAND_NOTIFICATIONS", - zf = 2500, - Rf = "error", - Lf = "normal", - Ff = "warning", - qf = { - [Rf]: 5, + const Bf = "CLEAR_NOTIFICATIONS", + Uf = "HIDE_NOTIFICATION", + Hf = "SHOW_NOTIFICATION", + Vf = "SET_NOTIFICATIONS_ENABLED", + Wf = "HIDE_RAISE_HAND_NOTIFICATIONS", + Yf = { + SHORT: "short", + MEDIUM: "medium", + LONG: "long", + STICKY: "sticky" + }, + Gf = "error", + Kf = "normal", + $f = "warning", + Jf = { + [Gf]: 5, info: 3, - [Lf]: 3, + [Kf]: 3, success: 3, - [Ff]: 4 + [$f]: 4 }; - function Bf(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Uf(e, t, n[t]) - })) - } - return e - } - - function Uf(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Zf(e, t) { + var n, a, r; + return e === Yf.SHORT ? null !== (n = null == t ? void 0 : t.short) && void 0 !== n ? n : 2500 : e === Yf.MEDIUM ? null !== (a = null == t ? void 0 : t.medium) && void 0 !== a ? a : 5e3 : e === Yf.LONG && (null !== (r = null == t ? void 0 : t.long) && void 0 !== r ? r : 1e4) } - function Hf() { + function Qf() { return { - type: Tf + type: Bf } } - function Vf(e) { + function Xf(e) { return { - type: Of, + type: Uf, uid: e } } - function Wf(e) { - return Yf(Bf({}, e, { - appearance: Rf - })) + function eg(e, t) { + return tg({ + ...e, + appearance: Gf + }, t) } - function Yf(e = {}, t) { + function tg() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; return function(n, a) { const { - notifications: r + notifications: r, + notificationTimeouts: i } = a()["features/base/config"]; - if (Df(a(), "notifications.enabled", !0) && (!r || r.includes(e.descriptionKey) || r.includes(e.titleKey))) return n({ - type: Mf, + if (qf(a(), Ua, !0) && (!r || r.includes(e.descriptionKey) || r.includes(e.titleKey))) return n({ + type: Hf, props: e, - timeout: t, + timeout: Zf(t, i), uid: e.uid || window.Date.now().toString() }) } } - function Gf(e, t) { - return Yf(Bf({}, e, { - appearance: Ff - }), t) + function ng(e, t) { + return tg({ + ...e, + appearance: $f + }, t) } - let Kf = []; - const $f = Ha()(((e, t) => { - if (Bh(t()) > 30) return void(Kf = []); - const n = Kf.length; + let ag = []; + const rg = qa()(((e, t) => { + if (Yh(t()) > 30) return void(ag = []); + const n = ag.length; let a; n >= 3 ? a = { titleArguments: { - name: Kf[0] + name: ag[0] }, titleKey: "notify.connectedThreePlusMembers" } : 2 === n ? a = { titleArguments: { - first: Kf[0], - second: Kf[1] + first: ag[0], + second: ag[1] }, titleKey: "notify.connectedTwoMembers" } : n && (a = { titleArguments: { - name: Kf[0] + name: ag[0] }, titleKey: "notify.connectedOneMember" - }), a && e(Yf(a, zf)), Kf = [] + }), a && e(tg(a, Yf.SHORT)), ag = [] + }), 2e3, { + leading: !1 + }); + let ig = []; + const og = qa()(((e, t) => { + if (Yh(t()) > 30) return void(ig = []); + const n = ig.length; + let a; + n >= 3 ? a = { + titleArguments: { + name: ig[0] + }, + titleKey: "notify.leftThreePlusMembers" + } : 2 === n ? a = { + titleArguments: { + first: ig[0], + second: ig[1] + }, + titleKey: "notify.leftTwoMembers" + } : n && (a = { + titleArguments: { + name: ig[0] + }, + titleKey: "notify.leftOneMember" + }), a && e(tg(a, Yf.SHORT)), ig = [] }), 2e3, { leading: !1 }); - function Jf(e, t) { + function sg(e, t) { return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })) } - - function Zf(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - - function Qf(e, t) { - (null == t || t > e.length) && (t = e.length); - for (var n = 0, a = new Array(t); n < t; n++) a[n] = e[n]; - return a - } - - function Xf(e, t) { - if (e) { - if ("string" == typeof e) return Qf(e, t); - var n = Object.prototype.toString.call(e).slice(8, -1); - return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Qf(e, t) : void 0 - } - } - - function eg(e, t) { - return function(e) { - if (Array.isArray(e)) return e - }(e) || function(e, t) { - var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"]; - if (null != n) { - var a, r, i = [], - o = !0, - s = !1; - try { - for (n = n.call(e); !(o = (a = n.next()).done) && (i.push(a.value), !t || i.length !== t); o = !0); - } catch (e) { - s = !0, r = e - } finally { - try { - o || null == n.return || n.return() - } finally { - if (s) throw r - } - } - return i - } - }(e, t) || Xf(e, t) || function() { - throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") - }() - } - var tg = function() { + var lg = function() { function e(e) { this.isSpeedy = void 0 === e.speedy || e.speedy, this.tags = [], this.ctr = 0, this.nonce = e.nonce, this.key = e.key, this.container = e.container, this.before = null } @@ -7901,11 +7959,11 @@ })), this.tags = [], this.ctr = 0 }, e }(); - const ng = function(e) { + const cg = function(e) { function t(e, a, l, c, p) { - for (var h, m, f, g, k, w = 0, S = 0, E = 0, x = 0, C = 0, O = 0, I = f = h = 0, z = 0, R = 0, L = 0, F = 0, q = l.length, B = q - 1, U = "", H = "", V = "", W = ""; z < q;) { - if (m = l.charCodeAt(z), z === B && 0 !== S + x + E + w && (0 !== S && (m = 47 === S ? 10 : 47), x = E = w = 0, q++, B++), 0 === S + x + E + w) { - if (z === B && (0 < R && (U = U.replace(d, "")), 0 < U.trim().length)) { + for (var h, m, f, g, k, w = 0, S = 0, E = 0, x = 0, C = 0, M = 0, O = f = h = 0, R = 0, z = 0, L = 0, F = 0, q = l.length, B = q - 1, U = "", H = "", V = "", W = ""; R < q;) { + if (m = l.charCodeAt(R), R === B && 0 !== S + x + E + w && (0 !== S && (m = 47 === S ? 10 : 47), x = E = w = 0, q++, B++), 0 === S + x + E + w) { + if (R === B && (0 < z && (U = U.replace(d, "")), 0 < U.trim().length)) { switch (m) { case 32: case 9: @@ -7914,14 +7972,14 @@ case 10: break; default: - U += l.charAt(z) + U += l.charAt(R) } m = 59 } switch (m) { case 123: - for (h = (U = U.trim()).charCodeAt(0), f = 1, F = ++z; z < q;) { - switch (m = l.charCodeAt(z)) { + for (h = (U = U.trim()).charCodeAt(0), f = 1, F = ++R; R < q;) { + switch (m = l.charCodeAt(R)) { case 123: f++; break; @@ -7929,24 +7987,24 @@ f--; break; case 47: - switch (m = l.charCodeAt(z + 1)) { + switch (m = l.charCodeAt(R + 1)) { case 42: case 47: e: { - for (I = z + 1; I < B; ++I) switch (l.charCodeAt(I)) { + for (O = R + 1; O < B; ++O) switch (l.charCodeAt(O)) { case 47: - if (42 === m && 42 === l.charCodeAt(I - 1) && z + 2 !== I) { - z = I + 1; + if (42 === m && 42 === l.charCodeAt(O - 1) && R + 2 !== O) { + R = O + 1; break e } break; case 10: if (47 === m) { - z = I + 1; + R = O + 1; break e } } - z = I + R = O } } break; @@ -7956,23 +8014,23 @@ m++; case 34: case 39: - for (; z++ < B && l.charCodeAt(z) !== m;); + for (; R++ < B && l.charCodeAt(R) !== m;); } if (0 === f) break; - z++ + R++ } - if (f = l.substring(F, z), 0 === h && (h = (U = U.replace(u, "").trim()).charCodeAt(0)), 64 === h) { - switch (0 < R && (U = U.replace(d, "")), m = U.charCodeAt(1)) { + if (f = l.substring(F, R), 0 === h && (h = (U = U.replace(u, "").trim()).charCodeAt(0)), 64 === h) { + switch (0 < z && (U = U.replace(d, "")), m = U.charCodeAt(1)) { case 100: case 109: case 115: case 45: - R = a; + z = a; break; default: - R = T + z = j } - if (F = (f = t(a, R, f, m, p + 1)).length, 0 < M && (k = s(3, f, R = n(T, U, L), a, j, A, F, m, p, c), U = R.join(""), void 0 !== k && 0 === (F = (f = k.trim()).length) && (m = 0, f = "")), 0 < F) switch (m) { + if (F = (f = t(a, z, f, m, p + 1)).length, 0 < I && (k = s(3, f, z = n(j, U, L), a, T, A, F, m, p, c), U = z.join(""), void 0 !== k && 0 === (F = (f = k.trim()).length) && (m = 0, f = "")), 0 < F) switch (m) { case 115: U = U.replace(_, o); case 100: @@ -7981,34 +8039,34 @@ f = U + "{" + f + "}"; break; case 107: - f = (U = U.replace(b, "$1 $2")) + "{" + f + "}", f = 1 === D || 2 === D && i("@" + f, 3) ? "@-webkit-" + f + "@" + f : "@" + f; + f = (U = U.replace(b, "$1 $2")) + "{" + f + "}", f = 1 === P || 2 === P && i("@" + f, 3) ? "@-webkit-" + f + "@" + f : "@" + f; break; default: f = U + f, 112 === c && (H += f, f = "") } else f = "" } else f = t(a, n(a, U, L), f, c, p + 1); - V += f, f = L = R = I = h = 0, U = "", m = l.charCodeAt(++z); + V += f, f = L = z = O = h = 0, U = "", m = l.charCodeAt(++R); break; case 125: case 59: - if (1 < (F = (U = (0 < R ? U.replace(d, "") : U).trim()).length)) switch (0 === I && (h = U.charCodeAt(0), 45 === h || 96 < h && 123 > h) && (F = (U = U.replace(" ", ":")).length), 0 < M && void 0 !== (k = s(1, U, a, e, j, A, H.length, c, p, c)) && 0 === (F = (U = k.trim()).length) && (U = "\0\0"), h = U.charCodeAt(0), m = U.charCodeAt(1), h) { + if (1 < (F = (U = (0 < z ? U.replace(d, "") : U).trim()).length)) switch (0 === O && (h = U.charCodeAt(0), 45 === h || 96 < h && 123 > h) && (F = (U = U.replace(" ", ":")).length), 0 < I && void 0 !== (k = s(1, U, a, e, T, A, H.length, c, p, c)) && 0 === (F = (U = k.trim()).length) && (U = "\0\0"), h = U.charCodeAt(0), m = U.charCodeAt(1), h) { case 0: break; case 64: if (105 === m || 99 === m) { - W += U + l.charAt(z); + W += U + l.charAt(R); break } default: 58 !== U.charCodeAt(F - 1) && (H += r(U, h, m, U.charCodeAt(2))) } - L = R = I = h = 0, U = "", m = l.charCodeAt(++z) + L = z = O = h = 0, U = "", m = l.charCodeAt(++R) } } switch (m) { case 13: case 10: - 47 === S ? S = 0 : 0 === 1 + h && 107 !== c && 0 < U.length && (R = 1, U += "\0"), 0 < M * N && s(0, U, a, e, j, A, H.length, c, p, c), A = 1, j++; + 47 === S ? S = 0 : 0 === 1 + h && 107 !== c && 0 < U.length && (z = 1, U += "\0"), 0 < I * N && s(0, U, a, e, T, A, H.length, c, p, c), A = 1, T++; break; case 59: case 125: @@ -8017,7 +8075,7 @@ break } default: - switch (A++, g = l.charAt(z), m) { + switch (A++, g = l.charAt(R), m) { case 9: case 32: if (0 === x + w + S) switch (C) { @@ -8041,21 +8099,21 @@ g = "\\v"; break; case 38: - 0 === x + S + w && (R = L = 1, g = "\f" + g); + 0 === x + S + w && (z = L = 1, g = "\f" + g); break; case 108: - if (0 === x + S + w + P && 0 < I) switch (z - I) { + if (0 === x + S + w + D && 0 < O) switch (R - O) { case 2: - 112 === C && 58 === l.charCodeAt(z - 3) && (P = C); + 112 === C && 58 === l.charCodeAt(R - 3) && (D = C); case 8: - 111 === O && (P = O) + 111 === M && (D = M) } break; case 58: - 0 === x + S + w && (I = z); + 0 === x + S + w && (O = R); break; case 44: - 0 === S + E + x + w && (R = 1, g += "\r"); + 0 === S + E + x + w && (z = 1, g += "\r"); break; case 34: case 39: @@ -8071,42 +8129,42 @@ 0 === x + S + w && E--; break; case 40: - 0 === x + S + w && (0 === h && (2 * C + 3 * O == 533 || (h = 1)), E++); + 0 === x + S + w && (0 === h && (2 * C + 3 * M == 533 || (h = 1)), E++); break; case 64: - 0 === S + E + x + w + I + f && (f = 1); + 0 === S + E + x + w + O + f && (f = 1); break; case 42: case 47: if (!(0 < x + w + E)) switch (S) { case 0: - switch (2 * m + 3 * l.charCodeAt(z + 1)) { + switch (2 * m + 3 * l.charCodeAt(R + 1)) { case 235: S = 47; break; case 220: - F = z, S = 42 + F = R, S = 42 } break; case 42: - 47 === m && 42 === C && F + 2 !== z && (33 === l.charCodeAt(F + 2) && (H += l.substring(F, z + 1)), g = "", S = 0) + 47 === m && 42 === C && F + 2 !== R && (33 === l.charCodeAt(F + 2) && (H += l.substring(F, R + 1)), g = "", S = 0) } } 0 === S && (U += g) } - O = C, C = m, z++ + M = C, C = m, R++ } if (0 < (F = H.length)) { - if (R = a, 0 < M && void 0 !== (k = s(2, H, R, e, j, A, F, c, p, c)) && 0 === (H = k).length) return W + H + V; - if (H = R.join(",") + "{" + H + "}", 0 != D * P) { - switch (2 !== D || i(H, 2) || (P = 0), P) { + if (z = a, 0 < I && void 0 !== (k = s(2, H, z, e, T, A, F, c, p, c)) && 0 === (H = k).length) return W + H + V; + if (H = z.join(",") + "{" + H + "}", 0 != P * D) { + switch (2 !== P || i(H, 2) || (D = 0), D) { case 111: H = H.replace(v, ":-moz-$1") + H; break; case 112: H = H.replace(y, "::-webkit-input-$1") + H.replace(y, "::-moz-$1") + H.replace(y, ":-ms-input-$1") + H } - P = 0 + D = 0 } } return W + H + V @@ -8150,9 +8208,9 @@ if (944 === s) { e = o.indexOf(":", 9) + 1; var l = o.substring(e, o.length - 1).trim(); - return l = o.substring(0, e).trim() + l + ";", 1 === D || 2 === D && i(l, 1) ? "-webkit-" + l + l : l + return l = o.substring(0, e).trim() + l + ";", 1 === P || 2 === P && i(l, 1) ? "-webkit-" + l + l : l } - if (0 === D || 2 === D && !i(o, 1)) return o; + if (0 === P || 2 === P && !i(o, 1)) return o; switch (s) { case 1015: return 97 === o.charCodeAt(10) ? "-webkit-" + o + o : o; @@ -8246,7 +8304,7 @@ function i(e, t) { var n = e.indexOf(1 === t ? ":" : "{"), a = e.substring(0, 3 !== t ? n : 10); - return n = e.substring(n + 1, e.length - 1), I(2 !== t ? a : a.replace(E, "$1"), n, t) + return n = e.substring(n + 1, e.length - 1), O(2 !== t ? a : a.replace(E, "$1"), n, t) } function o(e, t) { @@ -8255,7 +8313,7 @@ } function s(e, t, n, a, r, i, o, s, l, u) { - for (var d, p = 0, h = t; p < M; ++p) switch (d = O[p].call(c, e, h, n, a, r, i, o, s, l, u)) { + for (var d, p = 0, h = t; p < I; ++p) switch (d = M[p].call(c, e, h, n, a, r, i, o, s, l, u)) { case void 0: case !1: case !0: @@ -8268,17 +8326,17 @@ } function l(e) { - return void 0 !== (e = e.prefix) && (I = null, e ? "function" != typeof e ? D = 1 : (D = 2, I = e) : D = 0), l + return void 0 !== (e = e.prefix) && (O = null, e ? "function" != typeof e ? P = 1 : (P = 2, O = e) : P = 0), l } function c(e, n) { var a = e; - if (33 > a.charCodeAt(0) && (a = a.trim()), a = [a], 0 < M) { - var r = s(-1, n, a, a, j, A, 0, 0, 0, 0); + if (33 > a.charCodeAt(0) && (a = a.trim()), a = [a], 0 < I) { + var r = s(-1, n, a, a, T, A, 0, 0, 0, 0); void 0 !== r && "string" == typeof r && (n = r) } - var i = t(T, a, n, 0, 0); - return 0 < M && void 0 !== (r = s(-2, i, a, a, j, A, i.length, 0, 0, 0)) && (i = r), P = 0, A = j = 1, i + var i = t(j, a, n, 0, 0); + return 0 < I && void 0 !== (r = s(-2, i, a, a, T, A, i.length, 0, 0, 0)) && (i = r), D = 0, A = T = 1, i } var u = /^\0+/g, d = /[\0\r\f]/g, @@ -8298,22 +8356,22 @@ x = /stretch|:\s*\w+\-(?:conte|avail)/, C = /([^-])(image-set\()/, A = 1, - j = 1, - P = 0, - D = 1, - T = [], - O = [], - M = 0, - I = null, + T = 1, + D = 0, + P = 1, + j = [], + M = [], + I = 0, + O = null, N = 0; return c.use = function e(t) { switch (t) { case void 0: case null: - M = O.length = 0; + I = M.length = 0; break; default: - if ("function" == typeof t) O[M++] = t; + if ("function" == typeof t) M[I++] = t; else if ("object" == typeof t) for (var n = 0, a = t.length; n < a; ++n) e(t[n]); else N = 0 | !!t @@ -8321,47 +8379,47 @@ return e }, c.set = l, void 0 !== e && l(e), c }; - var ag = "/*|*/"; + var ug = "/*|*/"; - function rg(e) { - e && ig.current.insert(e + "}") + function dg(e) { + e && pg.current.insert(e + "}") } - var ig = { + var pg = { current: null }, - og = function(e, t, n, a, r, i, o, s, l, c) { + hg = function(e, t, n, a, r, i, o, s, l, c) { switch (e) { case 1: switch (t.charCodeAt(0)) { case 64: - return ig.current.insert(t + ";"), ""; + return pg.current.insert(t + ";"), ""; case 108: if (98 === t.charCodeAt(2)) return "" } break; case 2: - if (0 === s) return t + ag; + if (0 === s) return t + ug; break; case 3: switch (s) { case 102: case 112: - return ig.current.insert(n[0] + t), ""; + return pg.current.insert(n[0] + t), ""; default: - return t + (0 === c ? ag : "") + return t + (0 === c ? ug : "") } case -2: - t.split("/*|*/}").forEach(rg) + t.split("/*|*/}").forEach(dg) } }; - function sg(e, t, n) { + function mg(e, t, n) { var a = ""; return n.split(" ").forEach((function(n) { void 0 !== e[n] ? t.push(e[n]) : a += n + " " })), a } - var lg = function(e, t, n) { + var fg = function(e, t, n) { var a = e.key + "-" + t.name; if (!1 === n && void 0 === e.registered[a] && (e.registered[a] = t.styles), void 0 === e.inserted[t.name]) { var r = t; @@ -8370,7 +8428,7 @@ } while (void 0 !== r) } }; - const cg = function(e) { + const gg = function(e) { for (var t, n = 0, a = 0, r = e.length; r >= 4; ++a, r -= 4) t = 1540483477 * (65535 & (t = 255 & e.charCodeAt(a) | (255 & e.charCodeAt(++a)) << 8 | (255 & e.charCodeAt(++a)) << 16 | (255 & e.charCodeAt(++a)) << 24)) + (59797 * (t >>> 16) << 16), n = 1540483477 * (65535 & (t ^= t >>> 24)) + (59797 * (t >>> 16) << 16) ^ 1540483477 * (65535 & n) + (59797 * (n >>> 16) << 16); switch (r) { case 3: @@ -8382,7 +8440,7 @@ } return (((n = 1540483477 * (65535 & (n ^= n >>> 13)) + (59797 * (n >>> 16) << 16)) ^ n >>> 15) >>> 0).toString(36) }, - ug = { + bg = { animationIterationCount: 1, borderImageOutset: 1, borderImageSlice: 1, @@ -8429,119 +8487,119 @@ strokeOpacity: 1, strokeWidth: 1 }, - dg = function(e) { + yg = function(e) { var t = {}; return function(n) { return void 0 === t[n] && (t[n] = e(n)), t[n] } }; - var pg = /[A-Z]|^ms/g, - hg = /_EMO_([^_]+?)_([^]*?)_EMO_/g, - mg = function(e) { + var vg = /[A-Z]|^ms/g, + kg = /_EMO_([^_]+?)_([^]*?)_EMO_/g, + _g = function(e) { return 45 === e.charCodeAt(1) }, - fg = function(e) { + wg = function(e) { return null != e && "boolean" != typeof e }, - gg = dg((function(e) { - return mg(e) ? e : e.replace(pg, "-$&").toLowerCase() + Sg = yg((function(e) { + return _g(e) ? e : e.replace(vg, "-$&").toLowerCase() })), - bg = function(e, t) { + Eg = function(e, t) { switch (e) { case "animation": case "animationName": - if ("string" == typeof t) return t.replace(hg, (function(e, t, n) { - return vg = { + if ("string" == typeof t) return t.replace(kg, (function(e, t, n) { + return Cg = { name: t, styles: n, - next: vg + next: Cg }, t })) } - return 1 === ug[e] || mg(e) || "number" != typeof t || 0 === t ? t : t + "px" + return 1 === bg[e] || _g(e) || "number" != typeof t || 0 === t ? t : t + "px" }; - function yg(e, t, n, a) { + function xg(e, t, n, a) { if (null == n) return ""; if (void 0 !== n.__emotion_styles) return n; switch (typeof n) { case "boolean": return ""; case "object": - if (1 === n.anim) return vg = { + if (1 === n.anim) return Cg = { name: n.name, styles: n.styles, - next: vg + next: Cg }, n.name; if (void 0 !== n.styles) { var r = n.next; if (void 0 !== r) - for (; void 0 !== r;) vg = { + for (; void 0 !== r;) Cg = { name: r.name, styles: r.styles, - next: vg + next: Cg }, r = r.next; return n.styles + ";" } return function(e, t, n) { var a = ""; if (Array.isArray(n)) - for (var r = 0; r < n.length; r++) a += yg(e, t, n[r], !1); + for (var r = 0; r < n.length; r++) a += xg(e, t, n[r], !1); else for (var i in n) { var o = n[i]; - if ("object" != typeof o) null != t && void 0 !== t[o] ? a += i + "{" + t[o] + "}" : fg(o) && (a += gg(i) + ":" + bg(i, o) + ";"); + if ("object" != typeof o) null != t && void 0 !== t[o] ? a += i + "{" + t[o] + "}" : wg(o) && (a += Sg(i) + ":" + Eg(i, o) + ";"); else if (!Array.isArray(o) || "string" != typeof o[0] || null != t && void 0 !== t[o[0]]) { - var s = yg(e, t, o, !1); + var s = xg(e, t, o, !1); switch (i) { case "animation": case "animationName": - a += gg(i) + ":" + s + ";"; + a += Sg(i) + ":" + s + ";"; break; default: a += i + "{" + s + "}" } } else - for (var l = 0; l < o.length; l++) fg(o[l]) && (a += gg(i) + ":" + bg(i, o[l]) + ";") + for (var l = 0; l < o.length; l++) wg(o[l]) && (a += Sg(i) + ":" + Eg(i, o[l]) + ";") } return a }(e, t, n); case "function": if (void 0 !== e) { - var i = vg, + var i = Cg, o = n(e); - return vg = i, yg(e, t, o, a) + return Cg = i, xg(e, t, o, a) } } if (null == t) return n; var s = t[n]; return void 0 === s || a ? n : s } - var vg, kg = /label:\s*([^\s;\n{]+)\s*;/g, - _g = function(e, t, n) { + var Cg, Ag = /label:\s*([^\s;\n{]+)\s*;/g, + Tg = function(e, t, n) { if (1 === e.length && "object" == typeof e[0] && null !== e[0] && void 0 !== e[0].styles) return e[0]; var a = !0, r = ""; - vg = void 0; + Cg = void 0; var i = e[0]; - null == i || void 0 === i.raw ? (a = !1, r += yg(n, t, i, !1)) : r += i[0]; - for (var o = 1; o < e.length; o++) r += yg(n, t, e[o], 46 === r.charCodeAt(r.length - 1)), a && (r += i[o]); - kg.lastIndex = 0; - for (var s, l = ""; null !== (s = kg.exec(r));) l += "-" + s[1]; + null == i || void 0 === i.raw ? (a = !1, r += xg(n, t, i, !1)) : r += i[0]; + for (var o = 1; o < e.length; o++) r += xg(n, t, e[o], 46 === r.charCodeAt(r.length - 1)), a && (r += i[o]); + Ag.lastIndex = 0; + for (var s, l = ""; null !== (s = Ag.exec(r));) l += "-" + s[1]; return { - name: cg(r) + l, + name: gg(r) + l, styles: r, - next: vg + next: Cg } }, - wg = Object.prototype.hasOwnProperty, - Sg = (0, E.createContext)("undefined" != typeof HTMLElement ? function(e) { + Dg = Object.prototype.hasOwnProperty, + Pg = (0, x.createContext)("undefined" != typeof HTMLElement ? function(e) { void 0 === e && (e = {}); var t, n = e.key || "css"; void 0 !== e.prefix && (t = { prefix: e.prefix }); - var a, r = new ng(t), + var a, r = new cg(t), i = {}; a = e.container || document.head; var o, s = document.querySelectorAll("style[data-emotion-" + n + "]"); @@ -8549,13 +8607,13 @@ e.getAttribute("data-emotion-" + n).split(" ").forEach((function(e) { i[e] = !0 })), e.parentNode !== a && a.appendChild(e) - })), r.use(e.stylisPlugins)(og), o = function(e, t, n, a) { + })), r.use(e.stylisPlugins)(hg), o = function(e, t, n, a) { var i = t.name; - ig.current = n, r(e, t.styles), a && (l.inserted[i] = !0) + pg.current = n, r(e, t.styles), a && (l.inserted[i] = !0) }; var l = { key: n, - sheet: new tg({ + sheet: new lg({ key: n, container: a, nonce: e.nonce, @@ -8568,54 +8626,54 @@ }; return l }() : null), - Eg = (0, E.createContext)({}), - xg = (Sg.Provider, function(e) { + jg = (0, x.createContext)({}), + Mg = (Pg.Provider, function(e) { var t = function(t, n) { - return (0, E.createElement)(Sg.Consumer, null, (function(a) { + return (0, x.createElement)(Pg.Consumer, null, (function(a) { return e(t, a, n) })) }; - return (0, E.forwardRef)(t) + return (0, x.forwardRef)(t) }), - Cg = "__EMOTION_TYPE_PLEASE_DO_NOT_USE__", - Ag = function(e, t) { + Ig = "__EMOTION_TYPE_PLEASE_DO_NOT_USE__", + Og = function(e, t) { var n = {}; - for (var a in t) wg.call(t, a) && (n[a] = t[a]); - return n[Cg] = e, n + for (var a in t) Dg.call(t, a) && (n[a] = t[a]); + return n[Ig] = e, n }, - jg = function(e, t, n, a) { + Ng = function(e, t, n, a) { var r = null === n ? t.css : t.css(n); "string" == typeof r && void 0 !== e.registered[r] && (r = e.registered[r]); - var i = t[Cg], + var i = t[Ig], o = [r], s = ""; - "string" == typeof t.className ? s = sg(e.registered, o, t.className) : null != t.className && (s = t.className + " "); - var l = _g(o); - lg(e, l, "string" == typeof i), s += e.key + "-" + l.name; + "string" == typeof t.className ? s = mg(e.registered, o, t.className) : null != t.className && (s = t.className + " "); + var l = Tg(o); + fg(e, l, "string" == typeof i), s += e.key + "-" + l.name; var c = {}; - for (var u in t) wg.call(t, u) && "css" !== u && u !== Cg && (c[u] = t[u]); - return c.ref = a, c.className = s, (0, E.createElement)(i, c) + for (var u in t) Dg.call(t, u) && "css" !== u && u !== Ig && (c[u] = t[u]); + return c.ref = a, c.className = s, (0, x.createElement)(i, c) }, - Pg = xg((function(e, t, n) { - return "function" == typeof e.css ? (0, E.createElement)(Eg.Consumer, null, (function(a) { - return jg(t, e, a, n) - })) : jg(t, e, null, n) + Rg = Mg((function(e, t, n) { + return "function" == typeof e.css ? (0, x.createElement)(jg.Consumer, null, (function(a) { + return Ng(t, e, a, n) + })) : Ng(t, e, null, n) })); - const Dg = function() { + const zg = function() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; - return _g(t) + return Tg(t) }; - var Tg = function(e, t) { + var Lg = function(e, t) { var n = arguments; - if (null == t || !wg.call(t, "css")) return E.createElement.apply(void 0, n); + if (null == t || !Dg.call(t, "css")) return x.createElement.apply(void 0, n); var a = n.length, r = new Array(a); - r[0] = Pg, r[1] = Ag(e, t); + r[0] = Rg, r[1] = Og(e, t); for (var i = 2; i < a; i++) r[i] = n[i]; - return E.createElement.apply(null, r) + return x.createElement.apply(null, r) }, - Og = (E.Component, function() { - var e = Dg.apply(void 0, arguments), + Fg = (x.Component, function() { + var e = zg.apply(void 0, arguments), t = "animation-" + e.name; return { name: t, @@ -8626,7 +8684,7 @@ } } }), - Mg = function e(t) { + qg = function e(t) { for (var n = t.length, a = 0, r = ""; a < n; a++) { var i = t[a]; if (null != i) { @@ -8648,36 +8706,36 @@ return r }; - function Ig(e, t, n) { + function Bg(e, t, n) { var a = [], - r = sg(e, a, n); + r = mg(e, a, n); return a.length < 2 ? n : r + t(a) } - var Ng = xg((function(e, t) { - return (0, E.createElement)(Eg.Consumer, null, (function(n) { + var Ug = Mg((function(e, t) { + return (0, x.createElement)(jg.Consumer, null, (function(n) { var a = function() { for (var e = arguments.length, n = new Array(e), a = 0; a < e; a++) n[a] = arguments[a]; - var r = _g(n, t.registered); - return lg(t, r, !1), t.key + "-" + r.name + var r = Tg(n, t.registered); + return fg(t, r, !1), t.key + "-" + r.name }, r = { css: a, cx: function() { for (var e = arguments.length, n = new Array(e), r = 0; r < e; r++) n[r] = arguments[r]; - return Ig(t.registered, a, Mg(n)) + return Bg(t.registered, a, qg(n)) }, theme: n }; return e.children(r) })) })), - zg = n(754), - Rg = n(3037), - Lg = n(4944); + Hg = n(754), + Vg = n(3037), + Wg = n(4944); - function Fg(e, t) { + function Yg(e, t) { if (null == e) return {}; - var n, a, r = R(e, t); + var n, a, r = L(e, t); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(e); for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) @@ -8685,47 +8743,47 @@ return r } - function qg(e) { + function Gg(e) { var t = function(e, t) { return e(t) }, - n = (0, E.createContext)(e); + n = (0, x.createContext)(e); return { Consumer: function(e) { var a = e.children, - r = Fg(e, ["children"]), - i = ((0, E.useContext)(n) || t)(r); - return x().createElement(x().Fragment, null, a(i)) + r = Yg(e, ["children"]), + i = ((0, x.useContext)(n) || t)(r); + return C().createElement(C().Fragment, null, a(i)) }, Provider: function(e) { - var a = (0, E.useContext)(n), + var a = (0, x.useContext)(n), r = e.value || t, - i = (0, E.useCallback)((function(e) { + i = (0, x.useCallback)((function(e) { return r(a, e) }), [a, r]); - return x().createElement(n.Provider, { + return C().createElement(n.Provider, { value: i }, e.children) } } } - const Bg = qg((function() { + const Kg = Gg((function() { return { mode: "light" } })); - var Ug = n(5617), - Hg = "__ATLASKIT_THEME__", - Vg = function() { + var $g = n(5617), + Jg = "__ATLASKIT_THEME__", + Zg = function() { return 3 }, - Wg = function() { + Qg = function() { return 8 }, - Yg = function() { + Xg = function() { return 14 }, - Gg = { + eb = { card: function() { return 100 }, @@ -8755,16 +8813,16 @@ } }; - function Kg(e, t) { + function tb(e, t) { return function(e, t) { - var n = (0, E.useState)((function() { + var n = (0, x.useState)((function() { return { inputs: t, result: e() } }))[0], - a = (0, E.useRef)(!0), - r = (0, E.useRef)(n), + a = (0, x.useRef)(!0), + r = (0, x.useRef)(n), i = a.current || Boolean(t && r.current.inputs && function(e, t) { if (e.length !== t.length) return !1; for (var n = 0; n < e.length; n++) @@ -8775,7 +8833,7 @@ inputs: t, result: e() }; - return (0, E.useEffect)((function() { + return (0, x.useEffect)((function() { a.current = !1, r.current = o }), [o]), o.result }((function() { @@ -8783,76 +8841,20 @@ }), t) } - function $g(e) { - return function(e) { - if (Array.isArray(e)) return Qf(e) - }(e) || function(e) { - if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e) - }(e) || Xf(e) || function() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") - }() - } - - function Jg(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - } - - function Zg(e, t) { - for (var n = 0; n < t.length; n++) { - var a = t[n]; - a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) - } - } - - function Qg(e, t, n) { - return t && Zg(e.prototype, t), n && Zg(e, n), e - } - - function Xg(e) { - return Xg = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { - return e.__proto__ || Object.getPrototypeOf(e) - }, Xg(e) - } - - function eb(e, t, n) { - return eb = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(e, t, n) { + function nb(e, t, n) { + return nb = "undefined" != typeof Reflect && Reflect.get ? Reflect.get : function(e, t, n) { var a = function(e, t) { - for (; !Object.prototype.hasOwnProperty.call(e, t) && null !== (e = Xg(e));); + for (; !Object.prototype.hasOwnProperty.call(e, t) && null !== (e = kr(e));); return e }(e, t); if (a) { var r = Object.getOwnPropertyDescriptor(a, t); return r.get ? r.get.call(n) : r.value } - }, eb(e, t, n || e) - } - - function tb(e, t) { - if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); - e.prototype = Object.create(t && t.prototype, { - constructor: { - value: e, - writable: !0, - configurable: !0 - } - }), t && w(e, t) - } - - function nb(e) { - return nb = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { - return typeof e - } : function(e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }, nb(e) + }, nb(e, t, n || e) } function ab(e, t) { - if (t && ("object" === nb(t) || "function" == typeof t)) return t; - if (void 0 !== t) throw new TypeError("Derived constructors may only return object or undefined"); - return _(e) - } - - function rb(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -8863,19 +8865,19 @@ return n } - function ib(e) { + function rb(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? rb(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : rb(Object(n)).forEach((function(t) { + t % 2 ? ab(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ab(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var ob = function(e) { - tb(r, e); + var ib = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -8886,51 +8888,51 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r(e) { var t; - return Jg(this, r), Zf(_(t = a.call(this, e)), "clone", (function() { + return Ya(this, r), $a(w(t = a.call(this, e)), "clone", (function() { return t.hasFired ? null : new r({ - context: $g(t.context), - handlers: $g(t.handlers), + context: wr(t.context), + handlers: wr(t.handlers), payload: JSON.parse(JSON.stringify(t.payload)) }) - })), Zf(_(t), "fire", (function(e) { + })), $a(w(t), "fire", (function(e) { t.hasFired || (t.handlers.forEach((function(n) { - return n(_(t), e) + return n(w(t), e) })), t.hasFired = !0) })), t.context = e.context || [], t.handlers = e.handlers || [], t.hasFired = !1, t } - return Qg(r, [{ + return Ka(r, [{ key: "update", value: function(e) { - return this.hasFired ? this : eb(Xg(r.prototype), "update", this).call(this, e) + return this.hasFired ? this : nb(kr(r.prototype), "update", this).call(this, e) } }]), r }(function() { function e(t) { var n = this; - Jg(this, e), Zf(this, "clone", (function() { + Ya(this, e), $a(this, "clone", (function() { return new e({ - payload: ib({}, n.payload) + payload: rb({}, n.payload) }) })), this.payload = t.payload } - return Qg(e, [{ + return Ka(e, [{ key: "update", value: function(e) { - return "function" == typeof e && (this.payload = e(this.payload)), "object" === nb(e) && (this.payload = ib(ib({}, this.payload), e)), this + return "function" == typeof e && (this.payload = e(this.payload)), "object" === yr(e) && (this.payload = rb(rb({}, this.payload), e)), this } }]), e }()); - const sb = (0, E.createContext)({ + const ob = (0, x.createContext)({ getAtlaskitAnalyticsContext: function() { return [] }, @@ -8938,15 +8940,15 @@ return [] } }); - var lb = function() { - return (0, E.useContext)(sb) + var sb = function() { + return (0, x.useContext)(ob) }; - function cb() { - var e = lb(); + function lb() { + var e = sb(); return { - createAnalyticsEvent: Kg((function(t) { - return new ob({ + createAnalyticsEvent: tb((function(t) { + return new ib({ context: e.getAtlaskitAnalyticsContext(), handlers: e.getAtlaskitAnalyticsEventHandlers(), payload: t @@ -8954,14 +8956,14 @@ }), [e]) } } - var ub = function(e) { - var t = (0, E.useRef)(e); - return (0, E.useEffect)((function() { + var cb = function(e) { + var t = (0, x.useRef)(e); + return (0, x.useEffect)((function() { t.current = e }), [e]), t }; - function db(e, t) { + function ub(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -8972,17 +8974,17 @@ return n } - function pb(e) { + function db(e) { var t = e.fn, n = e.action, a = e.componentName, r = e.packageName, i = e.packageVersion, o = e.analyticsData, - s = cb().createAnalyticsEvent, - l = ub(o), - c = ub(t), - u = (0, E.useCallback)((function(e) { + s = lb().createAnalyticsEvent, + l = cb(o), + c = cb(t), + u = (0, x.useCallback)((function(e) { var t = s({ action: n, actionSubject: a, @@ -8995,9 +8997,9 @@ o = function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? db(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : db(Object(n)).forEach((function(t) { + t % 2 ? ub(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ub(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } @@ -9013,156 +9015,156 @@ }), [n, a, r, i, s, l, c]); return u } - var hb = "normal", - mb = n(5139), - fb = { + var pb = "normal", + hb = n(5139), + mb = { error: { - light: mb.R400, - dark: mb.R300 + light: hb.R400, + dark: hb.R300 }, info: { - light: mb.N500, - dark: mb.N500 + light: hb.N500, + dark: hb.N500 }, normal: { - light: mb.N0, - dark: mb.DN50 + light: hb.N0, + dark: hb.DN50 }, success: { - light: mb.G400, - dark: mb.G300 + light: hb.G400, + dark: hb.G300 }, warning: { - light: mb.Y200, - dark: mb.Y300 + light: hb.Y200, + dark: hb.Y300 } }, - gb = function(e, t) { - return fb[e][t] + fb = function(e, t) { + return mb[e][t] }, - bb = mb.N60A, - yb = { + gb = hb.N60A, + bb = { error: { - light: mb.N0, - dark: mb.DN40 + light: hb.N0, + dark: hb.DN40 }, info: { - light: mb.N0, - dark: mb.DN600 + light: hb.N0, + dark: hb.DN600 }, normal: { - light: mb.N500, - dark: mb.DN600 + light: hb.N500, + dark: hb.DN600 }, success: { - light: mb.N0, - dark: mb.DN40 + light: hb.N0, + dark: hb.DN40 }, warning: { - light: mb.N700, - dark: mb.DN40 + light: hb.N700, + dark: hb.DN40 } }, - vb = function(e, t) { - return yb[e][t] + yb = function(e, t) { + return bb[e][t] }, - kb = mb.N50A, - _b = { + vb = hb.N50A, + kb = { error: { - light: mb.N40, - dark: mb.N40 + light: hb.N40, + dark: hb.N40 }, info: { - light: mb.N40, - dark: mb.N40 + light: hb.N40, + dark: hb.N40 }, normal: { - light: mb.B100, - dark: mb.B100 + light: hb.B100, + dark: hb.B100 }, success: { - light: mb.N40, - dark: mb.N40 + light: hb.N40, + dark: hb.N40 }, warning: { - light: mb.N200, - dark: mb.N200 + light: hb.N200, + dark: hb.N200 } }, - wb = function(e, t) { - return _b[e][t] + _b = function(e, t) { + return kb[e][t] }, - Sb = "rgba(255, 255, 255, 0.08)", - Eb = { + wb = "rgba(255, 255, 255, 0.08)", + Sb = { success: { - light: Sb, - dark: mb.N30A + light: wb, + dark: hb.N30A }, info: { - light: Sb, - dark: Sb + light: wb, + dark: wb }, error: { - light: Sb, - dark: mb.N30A + light: wb, + dark: hb.N30A }, warning: { - light: mb.N30A, - dark: mb.N30A + light: hb.N30A, + dark: hb.N30A }, normal: { light: "none", dark: "none" } }, - xb = { + Eb = { success: { - light: mb.N0, - dark: mb.DN40 + light: hb.N0, + dark: hb.DN40 }, info: { - light: mb.N0, - dark: mb.DN600 + light: hb.N0, + dark: hb.DN600 }, error: { - light: mb.N0, - dark: mb.DN600 + light: hb.N0, + dark: hb.DN600 }, warning: { - light: mb.N700, - dark: mb.DN40 + light: hb.N700, + dark: hb.DN40 }, normal: { - light: mb.B400, - dark: mb.B100 + light: hb.B400, + dark: hb.B100 } }, + xb = function(e, t) { + return Sb[e][t] + }, Cb = function(e, t) { return Eb[e][t] - }, - Ab = function(e, t) { - return xb[e][t] }; - const jb = JSON.parse('{"u2":"@atlaskit/flag","i8":"14.1.0"}'); - var Pb = { + const Ab = JSON.parse('{"u2":"@atlaskit/flag","i8":"14.1.0"}'); + var Tb = { appear: !0, isExiting: !1 }, - Db = (0, E.createContext)(Pb), - Tb = function(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Pb; - return x().createElement(Db.Provider, { + Db = (0, x.createContext)(Tb), + Pb = function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : Tb; + return C().createElement(Db.Provider, { key: "".concat(e.key, "-provider"), value: t }, e) }, - Ob = function(e) { + jb = function(e) { return e.reduce((function(e, t) { return e[t.key] = t, e }), {}) }, Mb = function() { - return (0, E.useContext)(Db) + return (0, x.useContext)(Db) }; const Ib = function(e) { var t, n = e.appear, @@ -9171,19 +9173,19 @@ i = e.exitThenEnter, o = function(e) { var t = []; - return E.Children.toArray(e).forEach((function(e) { + return x.Children.toArray(e).forEach((function(e) { "boolean" != typeof e && t.push(e) })), t }(r), - s = Ob(o), - l = (0, E.useRef)([]), - c = (0, E.useRef)([]), - u = (t = eg((0, E.useState)({}), 2)[1], (0, E.useCallback)((function() { + s = jb(o), + l = (0, x.useRef)([]), + c = (0, x.useRef)([]), + u = (t = dr((0, x.useState)({}), 2)[1], (0, x.useCallback)((function() { return t({}) }), [])), - d = (0, E.useRef)({}), - p = (0, E.useRef)(a), - h = (0, E.useMemo)((function() { + d = (0, x.useRef)({}), + p = (0, x.useRef)(a), + h = (0, x.useMemo)((function() { return { appear: p.current, isExiting: !1 @@ -9199,14 +9201,14 @@ e.current[t.key] && (n = !0, delete e.current[t.key]) })), n }(d, o)) && (c.current = l.current), l.current = o, (i ? c.current : function(e, t) { - for (var n = t.concat([]), a = Ob(t), r = 0; r < e.length; r++) { + for (var n = t.concat([]), a = jb(t), r = 0; r < e.length; r++) { var i = e[r]; !a[i.key] && n.splice(r + 1, 0, i) } return n }(o, c.current)).map((function(e) { var t = s[e.key]; - return t ? Tb(t, h) : (d.current[e.key] = !0, Tb(e, { + return t ? Pb(t, h) : (d.current[e.key] = !0, Pb(e, { isExiting: !0, appear: !0, onFinish: function() { @@ -9214,25 +9216,24 @@ } })) }))) : (l.current = o, o.map((function(e) { - return Tb(e, h) + return Pb(e, h) })))) }; - var Nb = "cubic-bezier(0.8,0,0,0.8)", - zb = function(e) { + var Ob = function(e) { if ("next-effect" !== e.cleanup) return [] }, - Rb = function() { + Nb = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : { cleanup: "unmount" }, - t = (0, E.useRef)([]); - return (0, E.useEffect)((function() { + t = (0, x.useRef)([]); + return (0, x.useEffect)((function() { return function() { t.current.length && (t.current.forEach((function(e) { return cancelAnimationFrame(e) })), t.current = []) } - }), zb(e)), (0, E.useCallback)((function(e) { + }), Ob(e)), (0, x.useCallback)((function(e) { var n = requestAnimationFrame((function(a) { t.current = t.current.filter((function(e) { return e !== n @@ -9241,18 +9242,18 @@ t.current.push(n) }), []) }, - Lb = function() { + Rb = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : { cleanup: "unmount" }, - t = (0, E.useRef)([]); - return (0, E.useEffect)((function() { + t = (0, x.useRef)([]); + return (0, x.useEffect)((function() { return function() { t.current.length && (t.current.forEach((function(e) { return clearTimeout(e) })), t.current = []) } - }), zb(e)), (0, E.useCallback)((function(e, n) { + }), Ob(e)), (0, x.useCallback)((function(e, n) { for (var a = arguments.length, r = new Array(a > 2 ? a - 2 : 0), i = 2; i < a; i++) r[i - 2] = arguments[i]; var o = setTimeout.apply(void 0, [function() { t.current = t.current.filter((function(e) { @@ -9262,7 +9263,7 @@ t.current.push(o) }), []) }, - Fb = (0, E.createContext)((function() { + zb = (0, x.createContext)((function() { return { isReady: !0, delay: 0, @@ -9270,7 +9271,7 @@ } })); - function qb(e, t) { + function Lb(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -9281,18 +9282,18 @@ return n } - function Bb(e) { + function Fb(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? qb(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : qb(Object(n)).forEach((function(t) { + t % 2 ? Lb(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Lb(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - const Ub = function(e) { + const qb = function(e) { var t, n, a = e.children, r = e.animationTimingFunction, i = e.enteringAnimation, @@ -9301,19 +9302,19 @@ l = e.onFinish, c = e.duration, u = void 0 === c ? 700 : c, - d = ((t = (0, E.useRef)("")).current || (t.current = "_" + (Number(String(Math.random()).slice(2)) + Date.now() + Math.round(performance.now())).toString(36)), n = t.current, (0, E.useContext)(Fb)(n)), + d = ((t = (0, x.useRef)("")).current || (t.current = "_" + (Number(String(Math.random()).slice(2)) + Date.now() + Math.round(performance.now())).toString(36)), n = t.current, (0, x.useContext)(zb)(n)), p = Mb(), h = p.isExiting, m = p.onFinish, f = p.appear, - g = Lb(), + g = Rb(), b = s || !d.isReady, y = h ? 0 : d.delay, v = h ? "exiting" : "entering", - k = eg((0, E.useState)(f), 2), + k = dr((0, x.useState)(f), 2), _ = k[0], w = k[1]; - return (0, E.useEffect)((function() { + return (0, x.useEffect)((function() { var e = !1; if (!b) { if (f) return w(!0), g((function() { @@ -9324,12 +9325,12 @@ }; l && l(v) } - }), [m, v, h, u, y, b, g]), x().createElement(Ng, null, (function(e) { + }), [m, v, h, u, y, b, g]), C().createElement(Ug, null, (function(e) { var t = e.css; return a({ ref: d.ref, - className: _ ? t(Bb({ - animationName: "".concat(Og(h && o || i)), + className: _ ? t(Fb({ + animationName: "".concat(Fg(h && o || i)), animationTimingFunction: r(v), animationDelay: "".concat(y, "ms"), animationFillMode: h ? "forwards" : "backwards", @@ -9345,7 +9346,7 @@ })) }; - function Hb(e, t) { + function Bb(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -9356,55 +9357,55 @@ return n } - function Vb(e) { + function Ub(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? Hb(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Hb(Object(n)).forEach((function(t) { + t % 2 ? Bb(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Bb(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var Wb = { + var Hb = { bottom: "translate3d(0, calc(5% + 4px), 0)", left: "translate3d(calc(-5% - 4px), 0, 0)", right: "translate3d(calc(5% + 4px), 0, 0)", top: "translate3d(0, calc(-5% - 4px), 0)" }, - Yb = { + Vb = { bottom: "translate3d(0, calc(-5% - 4px), 0)", left: "translate3d(calc(5% + 4px), 0, 0)", right: "translate3d(calc(-5% - 4px), 0, 0)", top: "translate3d(0, calc(5% + 4px), 0)" }, - Gb = function(e) { + Wb = function(e) { return { from: { opacity: 1, transform: void 0 !== e ? "translate3d(0, 0, 0)" : void 0 }, - to: Vb({ + to: Ub({ opacity: 0 }, void 0 !== e && { - transform: Yb[e] + transform: Vb[e] }) } }; - const Kb = function(e) { + const Yb = function(e) { var t, n = e.children, a = e.duration, r = void 0 === a ? 700 : a, i = e.entranceDirection, - o = Fg(e, ["children", "duration", "entranceDirection"]); - return x().createElement(Ub, z({ + o = Yg(e, ["children", "duration", "entranceDirection"]); + return C().createElement(qb, z({ duration: r, enteringAnimation: (t = i, { - from: Vb({ + from: Ub({ opacity: 0 }, void 0 !== t && { - transform: Wb[t] + transform: Hb[t] }), "50%": { opacity: 1 @@ -9413,160 +9414,160 @@ transform: void 0 !== t ? "none" : void 0 } }), - exitingAnimation: Gb(i), + exitingAnimation: Wb(i), animationTimingFunction: function() { return "cubic-bezier(0.15,1,0.3,1)" } }, o), n) }; - function $b() { - var e = Jf(["\n max-height: ", "px;\n transition: max-height 0.3s;\n display: flex;\n flex: 1 1 100%;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n padding: 0 0 0 ", "px;\n "]); - return $b = function() { + function Gb() { + var e = sg(["\n max-height: ", "px;\n transition: max-height 0.3s;\n display: flex;\n flex: 1 1 100%;\n flex-direction: column;\n justify-content: center;\n min-width: 0;\n padding: 0 0 0 ", "px;\n "]); + return Gb = function() { return e }, e } - const Jb = function(e) { + const Kb = function(e) { var t = e.children, n = e.isExpanded, a = e.testId; - return Tg("div", { + return Lg("div", { "aria-hidden": !n, - css: Dg($b(), n ? 150 : 0, 40), + css: zg(Gb(), n ? 150 : 0, 40), "data-testid": a && "".concat(a, "-expander") - }, Tg(Ib, { + }, Lg(Ib, { appear: !0 - }, n && Tg(Kb, null, (function(e) { - return Tg("div", e, t) + }, n && Lg(Yb, null, (function(e) { + return Lg("div", e, t) })))) }, - Zb = JSON.parse('{"u2":"@atlaskit/button","i8":"15.1.4"}'); + $b = JSON.parse('{"u2":"@atlaskit/button","i8":"15.1.4"}'); - function Qb(e) { + function Jb(e) { e.preventDefault(), e.stopPropagation() } - function Xb(e) { - 9 !== e.keyCode && Qb(e) - } - var ey = { - onMouseDownCapture: Qb, - onMouseUpCapture: Qb, - onKeyDownCapture: Xb, - onKeyUpCapture: Xb, - onTouchStartCapture: Qb, - onTouchEndCapture: Qb, - onPointerDownCapture: Qb, - onPointerUpCapture: Qb, - onClickCapture: Qb, - onClick: Qb + function Zb(e) { + 9 !== e.keyCode && Jb(e) + } + var Qb = { + onMouseDownCapture: Jb, + onMouseUpCapture: Jb, + onKeyDownCapture: Zb, + onKeyUpCapture: Zb, + onTouchStartCapture: Jb, + onTouchEndCapture: Jb, + onPointerDownCapture: Jb, + onPointerUpCapture: Jb, + onClickCapture: Jb, + onClick: Jb }, - ty = {}, - ny = "rgba(179, 212, 255, 0.6)"; - const ay = { + Xb = {}, + ey = "rgba(179, 212, 255, 0.6)"; + const ty = { background: { default: { default: { - light: mb.N20A, - dark: mb.DN70 + light: hb.N20A, + dark: hb.DN70 }, hover: { - light: mb.N30A, - dark: mb.DN60 + light: hb.N30A, + dark: hb.DN60 }, active: { - light: ny, - dark: mb.B75 + light: ey, + dark: hb.B75 }, disabled: { - light: mb.N20A, - dark: mb.DN70 + light: hb.N20A, + dark: hb.DN70 }, selected: { - light: mb.N700, - dark: mb.DN0 + light: hb.N700, + dark: hb.DN0 }, focusSelected: { - light: mb.N700, - dark: mb.DN0 + light: hb.N700, + dark: hb.DN0 } }, primary: { default: { - light: mb.B400, - dark: mb.B100 + light: hb.B400, + dark: hb.B100 }, hover: { - light: mb.B300, - dark: mb.B75 + light: hb.B300, + dark: hb.B75 }, active: { - light: mb.B500, - dark: mb.B200 + light: hb.B500, + dark: hb.B200 }, disabled: { - light: mb.N20A, - dark: mb.DN70 + light: hb.N20A, + dark: hb.DN70 }, selected: { - light: mb.N700, - dark: mb.DN0 + light: hb.N700, + dark: hb.DN0 }, focusSelected: { - light: mb.N700, - dark: mb.DN0 + light: hb.N700, + dark: hb.DN0 } }, warning: { default: { - light: mb.Y300, - dark: mb.Y300 + light: hb.Y300, + dark: hb.Y300 }, hover: { - light: mb.Y200, - dark: mb.Y200 + light: hb.Y200, + dark: hb.Y200 }, active: { - light: mb.Y400, - dark: mb.Y400 + light: hb.Y400, + dark: hb.Y400 }, disabled: { - light: mb.N20A, - dark: mb.DN70 + light: hb.N20A, + dark: hb.DN70 }, selected: { - light: mb.Y400, - dark: mb.Y400 + light: hb.Y400, + dark: hb.Y400 }, focusSelected: { - light: mb.Y400, - dark: mb.Y400 + light: hb.Y400, + dark: hb.Y400 } }, danger: { default: { - light: mb.R400, - dark: mb.R400 + light: hb.R400, + dark: hb.R400 }, hover: { - light: mb.R300, - dark: mb.R300 + light: hb.R300, + dark: hb.R300 }, active: { - light: mb.R500, - dark: mb.R500 + light: hb.R500, + dark: hb.R500 }, disabled: { - light: mb.N20A, - dark: mb.DN70 + light: hb.N20A, + dark: hb.DN70 }, selected: { - light: mb.R500, - dark: mb.R500 + light: hb.R500, + dark: hb.R500 }, focusSelected: { - light: mb.R500, - dark: mb.R500 + light: hb.R500, + dark: hb.R500 } }, link: { @@ -9575,12 +9576,12 @@ dark: "none" }, selected: { - light: mb.N700, - dark: mb.N20 + light: hb.N700, + dark: hb.N20 }, focusSelected: { - light: mb.N700, - dark: mb.N20 + light: hb.N700, + dark: hb.N20 } }, subtle: { @@ -9589,24 +9590,24 @@ dark: "none" }, hover: { - light: mb.N30A, - dark: mb.DN60 + light: hb.N30A, + dark: hb.DN60 }, active: { - light: ny, - dark: mb.B75 + light: ey, + dark: hb.B75 }, disabled: { light: "none", dark: "none" }, selected: { - light: mb.N700, - dark: mb.DN0 + light: hb.N700, + dark: hb.DN0 }, focusSelected: { - light: mb.N700, - dark: mb.DN0 + light: hb.N700, + dark: hb.DN0 } }, "subtle-link": { @@ -9615,242 +9616,242 @@ dark: "none" }, selected: { - light: mb.N700, - dark: mb.N20 + light: hb.N700, + dark: hb.N20 }, focusSelected: { - light: mb.N700, - dark: mb.N20 + light: hb.N700, + dark: hb.N20 } } }, boxShadowColor: { default: { focus: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, focusSelected: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 } }, primary: { focus: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, focusSelected: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 } }, warning: { focus: { - light: mb.Y500, - dark: mb.Y500 + light: hb.Y500, + dark: hb.Y500 }, focusSelected: { - light: mb.Y500, - dark: mb.Y500 + light: hb.Y500, + dark: hb.Y500 } }, danger: { focus: { - light: mb.R100, - dark: mb.R100 + light: hb.R100, + dark: hb.R100 }, focusSelected: { - light: mb.R100, - dark: mb.R100 + light: hb.R100, + dark: hb.R100 } }, link: { focus: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, focusSelected: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 } }, subtle: { focus: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, focusSelected: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 } }, "subtle-link": { focus: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, focusSelected: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 } } }, color: { default: { default: { - light: mb.N500, - dark: mb.DN400 + light: hb.N500, + dark: hb.DN400 }, active: { - light: mb.B400, - dark: mb.B400 + light: hb.B400, + dark: hb.B400 }, disabled: { - light: mb.N70, - dark: mb.DN30 + light: hb.N70, + dark: hb.DN30 }, selected: { - light: mb.N20, - dark: mb.DN400 + light: hb.N20, + dark: hb.DN400 }, focusSelected: { - light: mb.N20, - dark: mb.DN400 + light: hb.N20, + dark: hb.DN400 } }, primary: { default: { - light: mb.N0, - dark: mb.DN30 + light: hb.N0, + dark: hb.DN30 }, disabled: { - light: mb.N70, - dark: mb.DN30 + light: hb.N70, + dark: hb.DN30 }, selected: { - light: mb.N20, - dark: mb.DN400 + light: hb.N20, + dark: hb.DN400 }, focusSelected: { - light: mb.N20, - dark: mb.DN400 + light: hb.N20, + dark: hb.DN400 } }, warning: { default: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 }, disabled: { - light: mb.N70, - dark: mb.DN30 + light: hb.N70, + dark: hb.DN30 }, selected: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 }, focusSelected: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 } }, danger: { default: { - light: mb.N0, - dark: mb.N0 + light: hb.N0, + dark: hb.N0 }, disabled: { - light: mb.N70, - dark: mb.DN30 + light: hb.N70, + dark: hb.DN30 }, selected: { - light: mb.N0, - dark: mb.N0 + light: hb.N0, + dark: hb.N0 }, focusSelected: { - light: mb.N0, - dark: mb.N0 + light: hb.N0, + dark: hb.N0 } }, link: { default: { - light: mb.B400, - dark: mb.B100 + light: hb.B400, + dark: hb.B100 }, hover: { - light: mb.B300, - dark: mb.B75 + light: hb.B300, + dark: hb.B75 }, active: { - light: mb.B500, - dark: mb.B200 + light: hb.B500, + dark: hb.B200 }, disabled: { - light: mb.N70, - dark: mb.DN100 + light: hb.N70, + dark: hb.DN100 }, selected: { - light: mb.N20, - dark: mb.N700 + light: hb.N20, + dark: hb.N700 }, focusSelected: { - light: mb.N20, - dark: mb.N700 + light: hb.N20, + dark: hb.N700 } }, subtle: { default: { - light: mb.N500, - dark: mb.DN400 + light: hb.N500, + dark: hb.DN400 }, active: { - light: mb.B400, - dark: mb.B400 + light: hb.B400, + dark: hb.B400 }, disabled: { - light: mb.N70, - dark: mb.DN100 + light: hb.N70, + dark: hb.DN100 }, selected: { - light: mb.N20, - dark: mb.DN400 + light: hb.N20, + dark: hb.DN400 }, focusSelected: { - light: mb.N20, - dark: mb.DN400 + light: hb.N20, + dark: hb.DN400 } }, "subtle-link": { default: { - light: mb.N200, - dark: mb.DN400 + light: hb.N200, + dark: hb.DN400 }, hover: { - light: mb.N90, - dark: mb.B50 + light: hb.N90, + dark: hb.B50 }, active: { - light: mb.N400, - dark: mb.DN300 + light: hb.N400, + dark: hb.DN300 }, disabled: { - light: mb.N70, - dark: mb.DN100 + light: hb.N70, + dark: hb.DN100 }, selected: { - light: mb.N20, - dark: mb.DN400 + light: hb.N20, + dark: hb.DN400 }, focusSelected: { - light: mb.N20, - dark: mb.DN400 + light: hb.N20, + dark: hb.DN400 } } } }; - function ry(e, t) { + function ny(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -9861,85 +9862,85 @@ return n } - function iy(e) { + function ay(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? ry(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ry(Object(n)).forEach((function(t) { + t % 2 ? ny(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : ny(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var oy = { + var ry = { default: "".concat(32 / 14, "em"), compact: "".concat(24 / 14, "em"), none: "auto" }, - sy = { - default: oy.default, - compact: oy.compact, + iy = { + default: ry.default, + compact: ry.compact, none: "inherit" }, - ly = { + oy = { default: "0 ".concat(10, "px"), compact: "0 ".concat(10, "px"), none: "0" }, - cy = { + sy = { compact: "0 ".concat(2, "px"), default: "0 ".concat(2, "px"), none: "0" }, - uy = { + ly = { default: "middle", compact: "middle", none: "baseline" }, - dy = { + cy = { content: "0 ".concat(2, "px"), icon: "0 ".concat(2, "px") }; - function py(e) { + function uy(e) { var t = e.group, n = e.key, a = e.mode; return (t[n] || t.default)[a] } - function hy(e) { + function dy(e) { var t = e.appearance, n = e.key, a = e.mode; return { - background: py({ - group: ay.background[t], + background: uy({ + group: ty.background[t], key: n, mode: a }), - color: "".concat(py({ - group: ay.color[t], + color: "".concat(uy({ + group: ty.color[t], key: n, mode: a }), " !important") } } - function my(e) { + function py(e) { var t = e.appearance, n = e.spacing, a = e.mode, r = e.isSelected, i = e.shouldFitContainer, o = e.isOnlySingleIcon, - s = hy({ + s = dy({ appearance: t, key: r ? "selected" : "default", mode: a }); - return iy(iy({ + return ay(ay({ alignItems: "baseline", borderWidth: 0, borderRadius: 3, @@ -9957,14 +9958,14 @@ whiteSpace: "nowrap" }, s), {}, { cursor: "pointer", - height: oy[n], - lineHeight: sy[n], - padding: o ? cy[n] : ly[n], - verticalAlign: uy[n], + height: ry[n], + lineHeight: iy[n], + padding: o ? sy[n] : oy[n], + verticalAlign: ly[n], width: i ? "100%" : "auto", justifyContent: "center", - "&:visited": iy({}, s), - "&:hover": iy(iy({}, hy({ + "&:visited": ay({}, s), + "&:hover": ay(ay({}, dy({ appearance: t, key: r ? "selected" : "hover", mode: a @@ -9972,30 +9973,30 @@ textDecoration: r || "link" !== t && "subtle-link" !== t ? "inherit" : "underline", transitionDuration: "0s, 0.15s" }), - "&:focus": iy(iy({}, hy({ + "&:focus": ay(ay({}, dy({ appearance: t, key: r ? "focusSelected" : "focus", mode: a })), {}, { - boxShadow: "0 0 0 2px ".concat(ay.boxShadowColor[t].focus[a]), + boxShadow: "0 0 0 2px ".concat(ty.boxShadowColor[t].focus[a]), transitionDuration: "0s, 0.2s", outline: "none" }), - "&:active": iy(iy({}, hy({ + "&:active": ay(ay({}, dy({ appearance: t, key: r ? "selected" : "active", mode: a })), {}, { transitionDuration: "0s, 0s" }), - '&[data-firefox-is-active="true"]': iy(iy({}, hy({ + '&[data-firefox-is-active="true"]': ay(ay({}, dy({ appearance: t, key: r ? "selected" : "active", mode: a })), {}, { transitionDuration: "0s, 0s" }), - "&[disabled]": iy(iy({}, hy({ + "&[disabled]": ay(ay({}, dy({ appearance: t, key: "disabled", mode: a @@ -10007,7 +10008,7 @@ cursor: "default", textDecoration: "none" }, - '&[data-has-overlay="true"]:not([disabled]):hover, &[data-has-overlay="true"]:not([disabled]):active': iy({}, hy({ + '&[data-has-overlay="true"]:not([disabled]):hover, &[data-has-overlay="true"]:not([disabled]):active': ay({}, dy({ appearance: t, key: r ? "selected" : "default", mode: a @@ -10020,7 +10021,7 @@ }) } - function fy(e) { + function hy(e) { return { alignSelf: "center", display: "flex", @@ -10029,13 +10030,13 @@ lineHeight: 0, fontSize: 0, userSelect: "none", - margin: "none" === e.spacing ? 0 : dy.icon + margin: "none" === e.spacing ? 0 : cy.icon } } - function gy(e) { + function my(e) { return { - margin: "none" === e.spacing ? 0 : dy.content, + margin: "none" === e.spacing ? 0 : cy.content, flexGrow: 1, flexShrink: 1, overflow: "hidden", @@ -10043,7 +10044,7 @@ whiteSpace: "nowrap" } } - var by = { + var fy = { position: "absolute", left: 0, top: 0, @@ -10054,13 +10055,13 @@ alignItems: "center" }; - function yy() {} - var vy = { + function gy() {} + var by = { "> *": { pointerEvents: "none" } }; - const ky = x().forwardRef((function(e, t) { + const yy = C().forwardRef((function(e, t) { e.appearance; var n = e.buttonCss, a = e.spacing, @@ -10080,89 +10081,89 @@ b = e.type, y = void 0 === b ? h ? void 0 : "button" : b, v = e.onMouseDown, - k = void 0 === v ? yy : v, + k = void 0 === v ? gy : v, _ = e.onClick, - w = void 0 === _ ? yy : _, + w = void 0 === _ ? gy : _, S = e.component, - x = void 0 === S ? h ? "a" : "button" : S, + E = void 0 === S ? h ? "a" : "button" : S, C = e.testId, A = e.analyticsContext, - j = Fg(e, ["appearance", "buttonCss", "spacing", "autoFocus", "isDisabled", "shouldFitContainer", "isSelected", "iconBefore", "iconAfter", "children", "className", "href", "overlay", "tabIndex", "type", "onMouseDown", "onClick", "component", "testId", "analyticsContext"]), - P = (0, E.useRef)(), - D = (0, E.useCallback)((function(e) { - P.current = e, null != t && ("function" != typeof t ? t.current = e : t(e)) - }), [P, t]); + T = Yg(e, ["appearance", "buttonCss", "spacing", "autoFocus", "isDisabled", "shouldFitContainer", "isSelected", "iconBefore", "iconAfter", "children", "className", "href", "overlay", "tabIndex", "type", "onMouseDown", "onClick", "component", "testId", "analyticsContext"]), + D = (0, x.useRef)(), + P = (0, x.useCallback)((function(e) { + D.current = e, null != t && ("function" != typeof t ? t.current = e : t(e)) + }), [D, t]); ! function(e, t) { - var n = (0, E.useState)(t)[0]; - (0, E.useEffect)((function() { + var n = (0, x.useState)(t)[0]; + (0, x.useEffect)((function() { n && e.current && e.current.focus() }), [n, e]) - }(P, o); - var T = pb({ + }(D, o); + var j = db({ fn: w, action: "clicked", componentName: "button", - packageName: Zb.u2, - packageVersion: Zb.i8, + packageName: $b.u2, + packageVersion: $b.i8, analyticsData: A }), - O = (0, E.useCallback)((function(e) { + M = (0, x.useCallback)((function(e) { e.preventDefault(), k(e) }), [k]); - (0, E.useEffect)((function() { - var e = P.current; + (0, x.useEffect)((function() { + var e = D.current; l && e && e === document.activeElement && e.blur() }), [l]); - var M = Boolean(m), - I = function(e) { + var I = Boolean(m), + O = function(e) { return { transition: "opacity 0.3s", opacity: e.hasOverlay ? 0 : 1 } }({ - hasOverlay: M + hasOverlay: I }), - N = !l && !M; - return Tg(x, z({}, j, { - css: [n, N ? null : vy], + N = !l && !I; + return Lg(E, z({}, T, { + css: [n, N ? null : by], className: p, - ref: D, - onClick: T, - onMouseDown: O, + ref: P, + onClick: j, + onMouseDown: M, disabled: l, href: N ? h : void 0, - "data-has-overlay": !!M || void 0, + "data-has-overlay": !!I || void 0, "data-testid": C, type: y, tabIndex: l ? -1 : g }, function(e) { - return e.isInteractive ? ty : ey + return e.isInteractive ? Xb : Qb }({ isInteractive: N - })), c ? Tg("span", { - css: [I, fy({ + })), c ? Lg("span", { + css: [O, hy({ spacing: r })] - }, c) : null, d ? Tg("span", { - css: [I, gy({ + }, c) : null, d ? Lg("span", { + css: [O, my({ spacing: r })] - }, d) : null, u ? Tg("span", { - css: [I, fy({ + }, d) : null, u ? Lg("span", { + css: [O, hy({ spacing: r })] - }, u) : null, m ? Tg("span", { - css: by + }, u) : null, m ? Lg("span", { + css: fy }, m) : null) })); - function _y(e) { + function vy(e) { var t = e.children, n = e.iconBefore, a = e.iconAfter; return !(t || (!n || a) && (n || !a)) } - var wy = { + var ky = { xsmall: 8, small: 16, medium: 24, @@ -10170,36 +10171,36 @@ xlarge: 96 }; - function Sy() { - var e = Jf(["\n fill: none;\n stroke: ", ";\n stroke-width: 1.5;\n stroke-linecap: round;\n stroke-dasharray: 60;\n stroke-dashoffset: inherit;\n transform-origin: center;\n animation: ", " 0.86s infinite;\n animation-delay: ", "ms;\n animation-timing-function: cubic-bezier(0.4, 0.15, 0.6, 0.85);\n "]); - return Sy = function() { + function _y() { + var e = sg(["\n fill: none;\n stroke: ", ";\n stroke-width: 1.5;\n stroke-linecap: round;\n stroke-dasharray: 60;\n stroke-dashoffset: inherit;\n transform-origin: center;\n animation: ", " 0.86s infinite;\n animation-delay: ", "ms;\n animation-timing-function: cubic-bezier(0.4, 0.15, 0.6, 0.85);\n "]); + return _y = function() { return e }, e } - function Ey() { - var e = Jf(["\n /* align better inline with text */\n vertical-align: middle;\n /* We are going to animate this in */\n opacity: 0;\n\n animation: ", " 1s ease-in-out;\n /* When the animation completes, stay at the last frame of the animation */\n animation-fill-mode: forwards;\n animation-delay: ", "ms;\n "]); - return Ey = function() { + function wy() { + var e = sg(["\n /* align better inline with text */\n vertical-align: middle;\n /* We are going to animate this in */\n opacity: 0;\n\n animation: ", " 1s ease-in-out;\n /* When the animation completes, stay at the last frame of the animation */\n animation-fill-mode: forwards;\n animation-delay: ", "ms;\n "]); + return wy = function() { return e }, e } - function xy() { - var e = Jf(["\n from {\n transform: rotate(50deg);\n opacity: 0;\n stroke-dashoffset: 60;\n }\n to {\n transform: rotate(230deg);\n opacity: 1;\n stroke-dashoffset: 50;\n }\n"]); - return xy = function() { + function Sy() { + var e = sg(["\n from {\n transform: rotate(50deg);\n opacity: 0;\n stroke-dashoffset: 60;\n }\n to {\n transform: rotate(230deg);\n opacity: 1;\n stroke-dashoffset: 50;\n }\n"]); + return Sy = function() { return e }, e } - function Cy() { - var e = Jf(["\n to { transform: rotate(360deg); }\n"]); - return Cy = function() { + function Ey() { + var e = sg(["\n to { transform: rotate(360deg); }\n"]); + return Ey = function() { return e }, e } - var Ay = Og(Cy()), - jy = Og(xy()); - const Py = x().memo(x().forwardRef((function(e, t) { + var xy = Fg(Ey()), + Cy = Fg(Sy()); + const Ay = C().memo(C().forwardRef((function(e, t) { var n = e.testId, a = e.appearance, r = void 0 === a ? "inherit" : a, @@ -10207,16 +10208,16 @@ o = void 0 === i ? 0 : i, s = e.size, l = void 0 === s ? "medium" : s, - c = "number" == typeof l ? l : wy[l]; - return Tg(Bg.Consumer, null, (function(e) { + c = "number" == typeof l ? l : ky[l]; + return Lg(Kg.Consumer, null, (function(e) { var a = function(e) { var t = e.appearance; - return "light" === e.mode ? "inherit" === t ? mb.N500 : mb.N0 : "inherit" === t ? mb.DN900 : mb.DN500 + return "light" === e.mode ? "inherit" === t ? hb.N500 : hb.N0 : "inherit" === t ? hb.DN900 : hb.DN500 }({ mode: e.mode, appearance: r }); - return Tg("svg", { + return Lg("svg", { focusable: "false", height: c, width: c, @@ -10224,35 +10225,35 @@ xmlns: "http://www.w3.org/2000/svg", "data-testid": n, ref: t, - css: Dg(Ey(), jy, o) - }, Tg("circle", { + css: zg(wy(), Cy, o) + }, Lg("circle", { cx: "8", cy: "8", r: "7", - css: Dg(Sy(), a, Ay, o) + css: zg(_y(), a, xy, o) })) })) }))); - function Dy(e) { + function Ty(e) { var t = e.appearance, n = e.isDisabled, a = e.isSelected; return n ? "inherit" : a || "primary" === t || "danger" === t ? "invert" : "inherit" } - function Ty(e) { + function Dy(e) { var t = e.spacing, n = void 0 === t ? "default" : t, - a = Fg(e, ["spacing"]), + a = Yg(e, ["spacing"]), r = "default" === n ? "medium" : "small"; - return x().createElement(Py, { + return C().createElement(Ay, { size: r, - appearance: Dy(a) + appearance: Ty(a) }) } - function Oy(e, t) { + function Py(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -10263,18 +10264,18 @@ return n } - function My(e) { + function jy(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? Oy(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Oy(Object(n)).forEach((function(t) { + t % 2 ? Py(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Py(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var Iy = { + var My = { focus: "&:focus", focusSelected: "&:focus", hover: "&:hover", @@ -10282,7 +10283,7 @@ disabled: "&[disabled]" }; - function Ny(e) { + function Iy(e) { var t = e.appearance, n = void 0 === t ? "default" : t, a = e.spacing, @@ -10298,7 +10299,7 @@ h = e.isLoading, m = void 0 !== h && h, f = e.state, - g = my({ + g = py({ appearance: n, spacing: r, mode: o, @@ -10307,23 +10308,23 @@ isOnlySingleIcon: p }); g.outline = "none"; - var b = Iy[f]; - return b && (g = My(My({}, g), g[b])), m && (g = My(My({}, g), g['&[data-has-overlay="true"]'])), Object.keys(g).forEach((function(e) { + var b = My[f]; + return b && (g = jy(jy({}, g), g[b])), m && (g = jy(jy({}, g), g['&[data-has-overlay="true"]'])), Object.keys(g).forEach((function(e) { "&::-moz-focus-inner" !== e && 0 === e.indexOf("&") && delete g[e] })), g } - function zy(e, t) { + function Oy(e, t) { return e(t) } - const Ry = qg((function(e) { + const Ny = Gg((function(e) { return { - buttonStyles: Ny(e), + buttonStyles: Iy(e), spinnerStyles: {} } })); - function Ly(e, t) { + function Ry(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -10334,19 +10335,19 @@ return n } - function Fy(e) { + function zy(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? Ly(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Ly(Object(n)).forEach((function(t) { + t % 2 ? Ry(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Ry(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - function qy(e) { + function Ly(e) { var t = e.isDisabled, n = void 0 !== t && t, a = e.isActive, @@ -10361,12 +10362,12 @@ p = void 0 !== d && d; return n ? "disabled" : u && o ? "focusSelected" : u ? "selected" : !p && r ? "active" : !p && l ? "hover" : o ? "focus" : "default" } - var By = { + var Fy = { isHover: !1, isActive: !1, isFocus: !1 }, - Uy = x().memo(x().forwardRef((function(e, t) { + qy = C().memo(C().forwardRef((function(e, t) { var n = e.appearance, a = void 0 === n ? "default" : n, r = e.autoFocus, @@ -10388,84 +10389,84 @@ k = e.onFocus, _ = e.onBlur, w = e.theme, - S = void 0 === w ? zy : w, - C = Fy({ + S = void 0 === w ? Oy : w, + E = zy({ appearance: a, autoFocus: i, isDisabled: s, isSelected: c, shouldFitContainer: d, spacing: h - }, Fg(e, ["appearance", "autoFocus", "isDisabled", "isSelected", "shouldFitContainer", "spacing", "isLoading", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "theme"])), - A = eg((0, E.useState)(By), 2), - j = A[0], - P = A[1], - D = (0, E.useCallback)((function(e) { - P((function(e) { - return Fy(Fy({}, e), {}, { + }, Yg(e, ["appearance", "autoFocus", "isDisabled", "isSelected", "shouldFitContainer", "spacing", "isLoading", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "onFocus", "onBlur", "theme"])), + A = dr((0, x.useState)(Fy), 2), + T = A[0], + D = A[1], + P = (0, x.useCallback)((function(e) { + D((function(e) { + return zy(zy({}, e), {}, { isHover: !0 }) })), g && g(e) }), [g]), - T = (0, E.useCallback)((function(e) { - P((function(e) { - return Fy(Fy({}, e), {}, { + j = (0, x.useCallback)((function(e) { + D((function(e) { + return zy(zy({}, e), {}, { isHover: !1, isActive: !1 }) })), b && b(e) }), [b]), - O = (0, E.useCallback)((function(e) { - P((function(e) { - return Fy(Fy({}, e), {}, { + M = (0, x.useCallback)((function(e) { + D((function(e) { + return zy(zy({}, e), {}, { isActive: !0 }) })), y && y(e) }), [y]), - M = (0, E.useCallback)((function(e) { - P((function(e) { - return Fy(Fy({}, e), {}, { + I = (0, x.useCallback)((function(e) { + D((function(e) { + return zy(zy({}, e), {}, { isActive: !1 }) })), v && v(e) }), [v]), - I = (0, E.useCallback)((function(e) { - P((function(e) { - return Fy(Fy({}, e), {}, { + O = (0, x.useCallback)((function(e) { + D((function(e) { + return zy(zy({}, e), {}, { isFocus: !0 }) })), k && k(e) }), [k]), - N = (0, E.useCallback)((function(e) { - P((function(e) { - return Fy(Fy({}, e), {}, { + N = (0, x.useCallback)((function(e) { + D((function(e) { + return zy(zy({}, e), {}, { isFocus: !1 }) })), _ && _(e) }), [_]); - return x().createElement(Ry.Provider, { + return C().createElement(Ny.Provider, { value: S - }, x().createElement(Bg.Consumer, null, (function(e) { + }, C().createElement(Kg.Consumer, null, (function(e) { var n = e.mode; - return x().createElement(Ry.Consumer, z({ + return C().createElement(Ny.Consumer, z({ mode: n, - state: qy(Fy(Fy({}, j), {}, { + state: Ly(zy(zy({}, T), {}, { isLoading: f, - isSelected: C.isSelected, - isDisabled: C.isDisabled + isSelected: E.isSelected, + isDisabled: E.isDisabled })), - iconIsOnlyChild: _y(C), + iconIsOnlyChild: vy(E), isLoading: f - }, C), (function(e) { + }, E), (function(e) { var n, a = e.buttonStyles; - return x().createElement(ky, z({}, C, { + return C().createElement(yy, z({}, E, { ref: t, - overlay: f ? x().createElement(Ty, C) : null, - onMouseEnter: D, - onMouseLeave: T, - onMouseDown: O, - onMouseUp: M, - onFocus: I, + overlay: f ? C().createElement(Dy, E) : null, + onMouseEnter: P, + onMouseLeave: j, + onMouseDown: M, + onMouseUp: I, + onFocus: O, onBlur: N, buttonCss: (n = a, { "&, &:hover, &:active, &:focus, &:visited, &:disabled, &[disabled]": n @@ -10474,47 +10475,47 @@ })) }))) }))); - Uy.displayName = "CustomThemeButton"; - const Hy = Uy; + qy.displayName = "CustomThemeButton"; + const By = qy; - function Vy() { - var e = Jf(["\n &&,\n a&& {\n margin-left: ", "px;\n font-weight: 500;\n padding: 0 ", "px !important;\n background: ", ";\n color: ", " !important;\n }\n &&:focus,\n a&&:focus {\n box-shadow: 0 0 0 2px ", ";\n }\n &&:hover,\n &&:active,\n a&&:hover,\n a&&:active {\n text-decoration: underline;\n }\n "]); - return Vy = function() { + function Uy() { + var e = sg(["\n &&,\n a&& {\n margin-left: ", "px;\n font-weight: 500;\n padding: 0 ", "px !important;\n background: ", ";\n color: ", " !important;\n }\n &&:focus,\n a&&:focus {\n box-shadow: 0 0 0 2px ", ";\n }\n &&:hover,\n &&:active,\n a&&:hover,\n a&&:active {\n text-decoration: underline;\n }\n "]); + return Uy = function() { return e }, e } - function Wy() { - var e = Jf(["\n text-align: center;\n display: inline-block;\n width: ", "px;\n "]); - return Wy = function() { + function Hy() { + var e = sg(["\n text-align: center;\n display: inline-block;\n width: ", "px;\n "]); + return Hy = function() { return e }, e } - function Yy() { - var e = Jf(["\n display: flex;\n flex-wrap: wrap;\n padding-top: ", "px;\n transform: ", ";\n align-items: center;\n "]); - return Yy = function() { + function Vy() { + var e = sg(["\n display: flex;\n flex-wrap: wrap;\n padding-top: ", "px;\n transform: ", ";\n align-items: center;\n "]); + return Vy = function() { return e }, e } - const Gy = function(e) { + const Wy = function(e) { var t = e.appearance, - n = void 0 === t ? hb : t, + n = void 0 === t ? pb : t, a = e.actions, r = void 0 === a ? [] : a, i = e.linkComponent, o = e.mode, s = e.testId; if (!r.length) return null; - var l = n !== hb; - return Tg("div", { - css: Dg(Yy(), 8, n === hb ? "translateX(-".concat(2, "px)") : 0), + var l = n !== pb; + return Lg("div", { + css: zg(Vy(), 8, n === pb ? "translateX(-".concat(2, "px)") : 0), "data-testid": s && "".concat(s, "-actions") }, r.map((function(e, t) { - return [t && !l ? Tg("div", { - css: Dg(Wy(), 16), + return [t && !l ? Lg("div", { + css: zg(Hy(), 16), key: t + .5 - }, "·") : "", Tg(Hy, { + }, "·") : "", Lg(By, { onClick: e.onClick, href: e.href, target: e.target, @@ -10523,278 +10524,52 @@ spacing: "compact", testId: e.testId, key: t, - css: Dg(Vy(), t && l ? 8 : 0, "normal" === n ? 0 : 8, Cb(n, o), Ab(n, o), wb(n, o)) + css: zg(Uy(), t && l ? 8 : 0, "normal" === n ? 0 : 8, xb(n, o), Cb(n, o), _b(n, o)) }, e.content)] }))) }; - var Ky = function(e, t, n) { - var a, r = "entering" === t ? "100%" : "0%"; - return Zf(a = {}, "entering" === t ? "0%" : "100%", { - transform: { - top: "translate3d(0, -100%, 0)", - right: "translate3d(100%, 0, 0)", - bottom: "translate3d(0, 100%, 0)", - left: "translate3d(-100%, 0, 0)" - } [e], - opacity: "inout" === n || "in" === n && "entering" === t || "out" === n && "exiting" === t ? 0 : 1 - }), Zf(a, r, { - transform: "none", - opacity: 1 - }), a - }; - const $y = function(e) { - var t = e.children, - n = e.enterFrom, - a = e.exitTo, - r = e.fade, - i = void 0 === r ? "none" : r, - o = e.duration, - s = void 0 === o ? 350 : o, - l = e.animationTimingFunction, - c = void 0 === l ? function(e) { - return "entering" === e ? "cubic-bezier(0.2,0,0,1)" : Nb - } : l, - u = Fg(e, ["children", "enterFrom", "exitTo", "fade", "duration", "animationTimingFunction"]); - return x().createElement(Ub, z({ - duration: s, - enteringAnimation: Ky(n, "entering", i), - exitingAnimation: Ky(a || n, "exiting", i), - animationTimingFunction: c - }, u), t) - }; - var Jy = n(8474), - Zy = n.n(Jy); - var Qy = function(e) { - var t = document.createElement("div"); - return t.setAttribute("class", "atlaskit-portal"), t.setAttribute("style", "z-index: ".concat(e, ";")), t - }, - Xy = function() { - return function(e, t) { - if (!e) throw new Error("Invariant failed") - }(document && document.body), document.body - }, - ev = Object.keys(Gg).reduce((function(e, t) { - var n = t; - return e[Gg[n]()] = n, e - }), {}), - tv = function(e) { - return Object.prototype.hasOwnProperty.call(ev, e) ? ev[e] : null - }, - nv = function(e, t) { - var n = function(e, t) { - var n = { - layer: tv(Number(t)), - zIndex: t - }; - if ("function" == typeof CustomEvent) return new CustomEvent(e, { - detail: n - }); - var a = document.createEvent("CustomEvent"), - r = { - bubbles: !0, - cancellable: !0, - detail: n - }; - return a.initCustomEvent(e, r.bubbles, r.cancellable, r.detail), a - }(e, t); - window.dispatchEvent(n) - }, - av = function() { - var e = document.querySelector("body > .atlaskit-portal-container"); - if (!e) { - var t = document.createElement("div"); - return t.setAttribute("class", "atlaskit-portal-container"), t.setAttribute("style", "display: flex;"), Xy().appendChild(t), t - } - return e - }, - rv = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { - container: Jy.canUseDOM ? Qy(e.props.zIndex) : void 0, - portalIsMounted: !1 - }), e - } - return Qg(r, [{ - key: "componentDidUpdate", - value: function(e, t) { - var n = this.state.container, - a = this.props.zIndex; - if (n && e.zIndex !== a) { - var r = Qy(a); - av().replaceChild(n, r), this.setState({ - container: r - }) - } else !t.container && n && av().appendChild(n) - } - }, { - key: "componentDidMount", - value: function() { - var e = this.state.container, - t = this.props.zIndex; - if (e) av().appendChild(e); - else { - var n = Qy(t); - this.setState({ - container: n - }) - } - this.setState({ - portalIsMounted: !0 - }), nv("akPortalMount", Number(t)) - } - }, { - key: "componentWillUnmount", - value: function() { - var e = this.state.container, - t = this.props.zIndex; - e && (av().removeChild(e), document.querySelector("body > .atlaskit-portal-container > .atlaskit-portal") || Xy().removeChild(av())), nv("akPortalUnmount", Number(t)) - } - }, { - key: "render", - value: function() { - var e = this.state, - t = e.container, - n = e.portalIsMounted; - return t && n ? Oe().createPortal(this.props.children, t) : null - } - }]), r - }(x().Component); - Zf(rv, "defaultProps", { - zIndex: 0 + var Yy = (0, x.createContext)({ + dismissAllowed: function() { + return !1 + } }); - const iv = rv; - - function ov() { - var e = Jf(["\n border: 0;\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n "]); - return ov = function() { - return e - }, e - } - - function sv() { - var e = Jf(["\n bottom: ", "px;\n left: ", "px;\n position: fixed;\n z-index: ", ";\n @media (max-width: 560px) {\n bottom: 0;\n left: 0;\n }\n "]); - return sv = function() { - return e - }, e - } - function lv() { - var e = Jf(["\n ", "\n ", "\n "]); - return lv = function() { - return e - }, e - } - var cv = (0, E.createContext)({ - dismissAllowed: function() { - return !1 - } - }), - uv = "\n bottom: 0;\n position: absolute;\n width: ".concat(400, "px;\n transition: transform ").concat(400, "ms ease-in-out;\n\n @media (max-width: 560px) {\n width: 100vw;\n }\n\n &:first-of-type {\n transition: none;\n transform: translate(0,0);\n }\n\n &:nth-of-type(n + 2) {\n animation-duration: 0ms;\n transform: translateX(0) translateY(100%) translateY(").concat(16, "px);\n }\n\n /* Layer the 'primary' flag above the 'secondary' flag */\n &:nth-of-type(1) {\n z-index: 5;\n }\n &:nth-of-type(2) {\n z-index: 4;\n }\n\n &:nth-of-type(n + 4) {\n visibility: hidden;\n }\n"); - const dv = function(e) { - var t = e.id, - n = e.label, - a = void 0 === n ? "Flag notifications" : n, - r = e.labelTag, - i = void 0 === r ? "h2" : r, - o = e.children, - s = e.onDismissed, - l = Array.isArray(o) ? o.length > 0 : Boolean(o), - c = null; - l && o && (c = Array.isArray(o) ? o[0].props.id : o.props.id); - var u = { - onDismissed: s, - dismissAllowed: function(e) { - return e === c - } - }; - return Tg(cv.Provider, { - value: u - }, Tg(iv, { - zIndex: Gg.flag() - }, Tg("div", { - id: t, - css: Dg(sv(), 48, 80, Gg.flag()) - }, l ? Tg(i, { - css: Dg(ov()) - }, a) : null, Tg(Ib, { - appear: !1 - }, !!o && E.Children.map(o, (function(e, t) { - var n = 0 === t, - a = e.props.id; - return Tg($y, { - key: a, - enterFrom: "left", - fade: "inout", - duration: 400, - animationTimingFunction: function() { - return Nb - } - }, (function(t) { - return Tg("div", z({}, t, { - css: Dg(lv(), uv, n ? "\n && + * {\n transform: translate(0, 0);\n transition-duration: ".concat(200, "ms\n }") : "") - }), e) - })) - })))))) - }; - - function pv() { - var e = Jf(["\n color: ", ";\n word-wrap: break-word;\n overflow: auto;\n max-height: 100px; /* height is defined as 5 lines maximum by design */\n "]); - return pv = function() { + function Gy() { + var e = sg(["\n color: ", ";\n word-wrap: break-word;\n overflow: auto;\n max-height: 100px; /* height is defined as 5 lines maximum by design */\n "]); + return Gy = function() { return e }, e } - function hv() { - var e = Jf(["\n color: ", ";\n font-weight: 600;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0 0 0 ", "px;\n "]); - return hv = function() { + function Ky() { + var e = sg(["\n color: ", ";\n font-weight: 600;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0 0 0 ", "px;\n "]); + return Ky = function() { return e }, e } - function mv() { - var e = Jf(["\n display: flex;\n align-items: center;\n height: ", "px;\n "]); - return mv = function() { + function $y() { + var e = sg(["\n display: flex;\n align-items: center;\n height: ", "px;\n "]); + return $y = function() { return e }, e } - function fv() { - var e = Jf(["\n background-color: ", ";\n border-radius: ", "px;\n box-sizing: border-box;\n box-shadow: ", ";\n color: ", ";\n padding: ", "px;\n transition: background-color 200ms;\n width: 100%;\n z-index: ", ";\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n "]); - return fv = function() { + function Jy() { + var e = sg(["\n background-color: ", ";\n border-radius: ", "px;\n box-sizing: border-box;\n box-shadow: ", ";\n color: ", ";\n padding: ", "px;\n transition: background-color 200ms;\n width: 100%;\n z-index: ", ";\n\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n "]); + return Jy = function() { return e }, e } - function gv() { - var e = Jf(["\n appearance: none;\n background: none;\n border: none;\n border-radius: ", "px;\n color: ", ";\n cursor: pointer;\n flex: 0 0 auto;\n line-height: 1;\n margin-left: ", "px;\n padding: 0;\n white-space: nowrap;\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n "]); - return gv = function() { + function Zy() { + var e = sg(["\n appearance: none;\n background: none;\n border: none;\n border-radius: ", "px;\n color: ", ";\n cursor: pointer;\n flex: 0 0 auto;\n line-height: 1;\n margin-left: ", "px;\n padding: 0;\n white-space: nowrap;\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n "]); + return Zy = function() { return e }, e } - function bv(e, t) { + function Qy(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -10805,123 +10580,124 @@ return n } - function yv(e) { + function Xy(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? bv(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : bv(Object(n)).forEach((function(t) { + t % 2 ? Qy(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Qy(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - function vv() {} - var kv = { + function ev() {} + "\n bottom: 0;\n position: absolute;\n width: ".concat(400, "px;\n transition: transform ").concat(400, "ms ease-in-out;\n\n @media (max-width: 560px) {\n width: 100vw;\n }\n\n &:first-of-type {\n transition: none;\n transform: translate(0,0);\n }\n\n &:nth-of-type(n + 2) {\n animation-duration: 0ms;\n transform: translateX(0) translateY(100%) translateY(").concat(16, "px);\n }\n\n /* Layer the 'primary' flag above the 'secondary' flag */\n &:nth-of-type(1) {\n z-index: 5;\n }\n &:nth-of-type(2) {\n z-index: 4;\n }\n\n &:nth-of-type(n + 4) {\n visibility: hidden;\n }\n"); + var tv = { componentName: "flag", - packageName: jb.u2, - packageVersion: jb.i8 + packageName: Ab.u2, + packageVersion: Ab.i8 }; - const _v = function(e) { + const nv = function(e) { var t = e.actions, n = void 0 === t ? [] : t, a = e.appearance, - r = void 0 === a ? hb : a, + r = void 0 === a ? pb : a, i = e.icon, o = e.title, s = e.description, l = e.linkComponent, c = e.onMouseOver, u = e.onFocus, - d = void 0 === u ? vv : u, + d = void 0 === u ? ev : u, p = e.onMouseOut, h = e.onBlur, - m = void 0 === h ? vv : h, + m = void 0 === h ? ev : h, f = e.testId, g = e.id, b = e.analyticsContext, - y = (0, E.useContext)(cv), + y = (0, x.useContext)(Yy), v = y.onDismissed, - k = void 0 === v ? vv : v, + k = void 0 === v ? ev : v, _ = (0, y.dismissAllowed)(g), - w = eg((0, E.useState)(!1), 2), + w = dr((0, x.useState)(!1), 2), S = w[0], - x = w[1], - C = pb(yv({ + E = w[1], + C = db(Xy({ fn: k, action: "dismissed", analyticsData: b - }, kv)), - A = r !== hb, - j = (0, E.useCallback)((function(e) { + }, tv)), + A = r !== pb, + T = (0, x.useCallback)((function(e) { var t = e.mode; if (!A && !_) return null; if (A && !s && !n.length) return null; - var a = Lg.Z, + var a = Wg.Z, i = "Dismiss flag", o = function() { _ && C(g) }, l = "small", c = f && "".concat(f, "-dismiss"); - return A && (a = S ? Rg.Z : zg.Z, i = "Toggle flag body", o = function() { - return x(!S) - }, l = "large", c = f && "".concat(f, "-toggle")), Tg("button", { - css: Dg(gv(), 3, vb(r, t), 8, wb(r, t)), + return A && (a = S ? Vg.Z : Hg.Z, i = "Toggle flag body", o = function() { + return E(!S) + }, l = "large", c = f && "".concat(f, "-toggle")), Lg("button", { + css: zg(Zy(), 3, yb(r, t), 8, _b(r, t)), "aria-expanded": S, onClick: o, "data-testid": c, type: "button" - }, Tg(a, { + }, Lg(a, { label: i, size: l })) }), [n.length, r, s, g, A, _, S, C, f]), - P = (0, E.useCallback)((function(e) { + D = (0, x.useCallback)((function(e) { e.preventDefault() }), []); - (0, E.useEffect)((function() { - A && S && !s && !n.length && x(!1) + (0, x.useEffect)((function() { + A && S && !s && !n.length && E(!1) }), [n.length, s, A, S]); - var D = { + var P = { onMouseOver: c, - onFocus: pb(yv({ + onFocus: db(Xy({ fn: d, action: "focused", analyticsData: b - }, kv)), + }, tv)), onMouseOut: p, - onBlur: pb(yv({ + onBlur: db(Xy({ fn: m, action: "blurred", analyticsData: b - }, kv)) + }, tv)) }, - T = j, - O = "0 20px 32px -8px ".concat(kb); - return A || (O = "0 0 1px ".concat(bb, ", ").concat(O)), Tg(Bg.Consumer, null, (function(e) { + j = T, + M = "0 20px 32px -8px ".concat(vb); + return A || (M = "0 0 1px ".concat(gb, ", ").concat(M)), Lg(Kg.Consumer, null, (function(e) { var t = e.mode, - a = vb(r, t); - return Tg("div", z({ - css: Dg(fv(), gb(r, t), 3, O, a, 16, Gg.flag(), wb(r, t)), + a = yb(r, t); + return Lg("div", z({ + css: zg(Jy(), fb(r, t), 3, M, a, 16, eb.flag(), _b(r, t)), role: "alert", tabIndex: 0, - onMouseDown: P, + onMouseDown: D, "data-testid": f - }, D), Tg("div", { - css: Dg(mv(), 32) - }, i, Tg("span", { - css: Dg(hv(), a, 16) - }, o), Tg(T, { + }, P), Lg("div", { + css: zg($y(), 32) + }, i, Lg("span", { + css: zg(Ky(), a, 16) + }, o), Lg(j, { mode: t - })), Tg(Jb, { + })), Lg(Kb, { isExpanded: !A || S, testId: f - }, s && Tg("div", { - css: Dg(pv(), a), + }, s && Lg("div", { + css: zg(Gy(), a), "data-testid": f && "".concat(f, "-description") - }, s), Tg(Gy, { + }, s), Lg(Wy, { actions: n, appearance: r, linkComponent: l, @@ -10930,10 +10706,259 @@ }))) })) }; - var wv = n(247), - Sv = n(7737), - Ev = n(9317); - class xv extends E.Component { + var av = n(247); + const rv = { + error03: "#7A141F", + error04: "#A21B29", + error05: "#CB2233", + error06: "#E04757", + error08: "#EAA7AD", + primary01: "#00112D", + primary02: "#00225A", + primary03: "#003486", + primary04: "#0045B3", + primary05: "#0056E0", + primary06: "#246FE5", + primary07: "#669AEC", + primary08: "#99BBF3", + primary09: "#CCDDF9", + primary10: "#17A0DB", + primary11: "#1081B2", + surface00: "#111111", + surface01: "#040404", + surface02: "#141414", + surface03: "#292929", + surface04: "#3D3D3D", + surface05: "#525252", + surface06: "#666", + surface07: "#858585", + surface08: "#A3A3A3", + surface09: "#C2C2C2", + surface10: "#E0E0E0", + surface11: "#FFF", + surface12: "#AAAAAA", + surface13: "#495258", + surface14: "#555555", + success04: "#189B55", + success05: "#1EC26A", + warning05: "#F8AE1A", + warning06: "#ED9E1B", + warning07: "#D77976", + disabled01: "#00000040", + support01: "#FF9B42", + support02: "#F96E57", + support03: "#DF486F", + support04: "#B23683", + support05: "#73348C", + support06: "#6A50D3", + support07: "#4380E2", + support08: "#00A8B3", + support09: "#2AA076" + }, + iv = { + uiBackground: "surface01", + ui01: "surface02", + ui02: "surface03", + ui03: "surface04", + ui04: "surface05", + ui05: "surface06", + ui12: "surface11", + ui13: "surface14", + action01: "primary05", + action04: "primary11", + screen01Header: "primary10", + status01Bar: "primary11", + action01Hover: "primary06", + action01Active: "primary04", + action01Focus: "primary08", + action01Disabled: "primary02", + action02: "surface04", + action02Hover: "surface05", + action02Active: "surface03", + action02Focus: "surface07", + action02Disabled: "surface02", + action03: "transparent", + action03Hover: "surface05", + action03Active: "surface03", + action03Focus: "surface07", + action03Disabled: "transparent", + actionDanger: "error05", + actionDangerHover: "error06", + actionDangerActive: "error04", + actionDangerFocus: "error08", + actionDangerDisabled: "error03", + underlay01: "surface13", + bottomSheet: "surface00", + text01: "surface11", + text02: "surface09", + text03: "surface07", + text04: "surface12", + text05: "surface06", + textError: "error06", + icon01: "surface11", + icon02: "surface09", + icon03: "surface07", + icon04: "surface14", + icon05: "surface04", + iconError: "error06", + field01: "surface01", + field01Hover: "surface03", + field01Focus: "primary05", + field01Disabled: "surface05", + field02: "surface11", + dividerColor: "surface12", + field02Hover: "primary09", + field02Focus: "primary05", + field02Disabled: "surface06", + section01: "surface10", + section01Active: "primary04", + section01Inactive: "surface01", + border01: "surface08", + border02: "surface06", + border03: "surface04", + borderError: "error06", + link01: "primary07", + link01Hover: "primary08", + link01Active: "primary06", + success01: "success05", + success02: "success05", + warning01: "warning05", + warning02: "warning06", + warning03: "warning07", + tab01Disabled: "disabled01", + video01Disabled: "disabled01", + support01: "support01", + support02: "support02", + support03: "support03", + support04: "support04", + support05: "support05", + support06: "support06", + support08: "support08", + support09: "support09", + support07: "support07" + }, + ov = { + weightRegular: "400", + weightSemiBold: "600" + }, + sv = { + borderRadius: 6, + boxShadow: "inset 0px -1px 0px rgba(255, 255, 255, 0.15)" + }, + lv = [0, 4, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120, 128], + cv = { + labelRegular: { + fontSize: 12, + lineHeight: 16, + fontWeight: ov.weightRegular, + letterSpacing: .16 + }, + labelBold: { + fontSize: 12, + lineHeight: 16, + fontWeight: ov.weightSemiBold, + letterSpacing: .16 + }, + labelButton: { + fontSize: 14, + lineHeight: 24, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + labelButtonLarge: { + fontSize: 16, + lineHeight: 24, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + bodyShortRegular: { + fontSize: 14, + lineHeight: 18, + fontWeight: ov.weightRegular, + letterSpacing: 0 + }, + bodyShortBold: { + fontSize: 14, + lineHeight: 18, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + bodyShortRegularLarge: { + fontSize: 16, + lineHeight: 24, + fontWeight: ov.weightRegular, + letterSpacing: 0 + }, + bodyShortBoldLarge: { + fontSize: 16, + lineHeight: 24, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + bodyLongRegular: { + fontSize: 14, + lineHeight: 24, + fontWeight: ov.weightRegular, + letterSpacing: 0 + }, + bodyLongBold: { + fontSize: 14, + lineHeight: 24, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + heading1: { + fontSize: 54, + lineHeight: 64, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + heading2: { + fontSize: 42, + lineHeight: 50, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + heading3: { + fontSize: 32, + lineHeight: 40, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + heading4: { + fontSize: 28, + lineHeight: 36, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + heading5: { + fontSize: 20, + lineHeight: 28, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + heading6: { + fontSize: 16, + lineHeight: 26, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + }, + heading7: { + fontSize: 14, + lineHeight: 24, + fontWeight: ov.weightSemiBold, + letterSpacing: 0 + } + }, + uv = { + values: { + 0: 0, + 320: 320, + 400: 400, + 480: 480 + } + }; + class dv extends x.Component { constructor(e) { super(e), this._onDismissed = this._onDismissed.bind(this) } @@ -10959,41 +10984,37 @@ configurable: !0, writable: !0 }) : e[t] = n - }(xv, "defaultProps", { - appearance: Lf, + }(dv, "defaultProps", { + appearance: Kf, isDismissAllowed: !0 }); - const Cv = { - error: mb.R400, - info: mb.N500, - normal: mb.N0, - success: mb.G400, - warning: mb.Y200 + const pv = { + error: rv.error06, + normal: rv.primary06, + warning: rv.warning05 }, - Av = Li(class extends xv { + hv = Ei(class extends dv { render() { const { - appearance: e, - hideErrorSupportLink: t, - t: n, - title: a, - titleArguments: r, - titleKey: i, - uid: o + hideErrorSupportLink: e, + t, + title: n, + titleArguments: a, + titleKey: r, + uid: i } = this.props; - return x().createElement(_v, { - actions: this._mapAppearanceToButtons(t), - appearance: e, + return C().createElement(nv, { + actions: this._mapAppearanceToButtons(e), description: this._renderDescription(), icon: this._mapAppearanceToIcon(), - id: o, - testId: i, - title: a || n(i, r) + id: i, + testId: r, + title: n || t(r, a) }) } _renderDescription() { const e = this._getDescription(); - return x().createElement("p", { + return C().createElement("p", { "data-testid": this._getDescriptionKey() }, e) } @@ -11001,8 +11022,9 @@ window.open(interfaceConfig.SUPPORT_URL, "_blank", "noopener") } _mapAppearanceToButtons(e) { + var t, n; switch (this.props.appearance) { - case Rf: { + case Gf: { const t = [{ content: this.props.t("dialog.dismiss"), onClick: this._onDismissed @@ -11012,422 +11034,2462 @@ onClick: this._onOpenSupportLink }), t } - case Ff: + case $f: return [{ content: this.props.t("dialog.Ok"), onClick: this._onDismissed }]; default: - return this.props.customActionNameKey && this.props.customActionHandler ? [{ - content: this.props.t(this.props.customActionNameKey), + return null !== (t = this.props.customActionNameKey) && void 0 !== t && t.length && null !== (n = this.props.customActionHandler) && void 0 !== n && n.length ? this.props.customActionNameKey.map(((e, t) => ({ + content: this.props.t(e), onClick: () => { - this.props.customActionHandler() && this._onDismissed() + this.props.customActionHandler[t]() && this._onDismissed() } - }] : [] + }))) : [] } } _mapAppearanceToIcon() { const e = this.props.appearance, - t = Cv[this.props.appearance], - n = "medium"; - switch (e) { - case Rf: - return x().createElement(Sv.Z, { - label: e, - secondaryColor: t, - size: n - }); - case Ff: - return x().createElement(Ev.Z, { - label: e, - secondaryColor: t, - size: n - }); - default: - return x().createElement(wv.Z, { - label: e, - secondaryColor: t, - size: n - }) - } + t = pv[this.props.appearance]; + return C().createElement(C().Fragment, null, C().createElement("div", { + className: `ribbon ${e}` + }), C().createElement(av.Z, { + label: e, + secondaryColor: t, + size: "medium" + })) } }); + var mv = n(8474), + fv = n.n(mv); - function jv(e) { - const t = qe(e), - { - enabled: n, - notifications: a - } = t["features/notifications"]; - return n && a.length > 0 + function gv() { + var e = sg(["\n background-color: ", ";\n color: ", ";\n\n a {\n color: ", ";\n }\n a:hover {\n color: ", ";\n }\n a:active {\n color: ", ";\n }\n a:focus {\n outline-color: ", ";\n }\n h1 {\n color: ", ";\n }\n h2 {\n color: ", ";\n }\n h3 {\n color: ", ";\n }\n h4 {\n color: ", ";\n }\n h5 {\n color: ", ";\n }\n h6 {\n color: ", ";\n }\n small {\n color: ", ";\n }\n"]); + return gv = function() { + return e + }, e } - function Pv() { - var e; - return Boolean("undefined" != typeof interfaceConfig && (null === (e = interfaceConfig) || void 0 === e ? void 0 : e.DISABLE_JOIN_LEAVE_NOTIFICATIONS)) + function bv(e) { + return "\n body { background: ".concat(e, "; }\n ") } - function Dv(e, t) { - const n = qe(t), - { - notifications: a - } = n["features/notifications"]; - return Boolean(a.find((t => t.uid === rm[e]))) - } - class Tv extends E.Component { - constructor(e) { - super(e), this._notificationDismissTimeout = null, this._onDismissed = this._onDismissed.bind(this) - } - componentDidMount() { - this._manageDismissTimeout() - } - componentDidUpdate(e) { - this._manageDismissTimeout(e) + function yv(e) { + return { + theme: $a({}, Jg, { + mode: e + }) } - _manageDismissTimeout(e) { - const { - _notifications: t, - autoDismissTimeout: n - } = this.props; - if (t.length) { - const a = t[0]; - if (a !== (e && e._notifications.length ? e._notifications[0] : void 0) && (this._clearNotificationDismissTimeout(), a && (a.timeout || "number" == typeof n) && !1 !== a.props.isDismissAllowed)) { - const { - timeout: e = n, - uid: t - } = a; - this._notificationDismissTimeout = setTimeout((() => { - this._onDismissed(t) - }), e) + } + var vv = $g.default.div(gv(), (function(e) { + return e.background + }), hb.text, hb.link, hb.linkHover, hb.linkActive, hb.linkOutline, hb.heading, hb.heading, hb.heading, hb.heading, hb.heading, hb.subtleHeading, hb.subtleText), + kv = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - } else this._notificationDismissTimeout && this._clearNotificationDismissTimeout() - } - componentWillUnmount() { - this._clearNotificationDismissTimeout() - } - _clearNotificationDismissTimeout() { - this._notificationDismissTimeout && clearTimeout(this._notificationDismissTimeout), this._notificationDismissTimeout = null - } - _onDismissed(e) { - const { - _notifications: t - } = this.props; - t.length && t[0].uid !== e || this._clearNotificationDismissTimeout(), this.props.dispatch(Vf(e)) - } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); + + function r(e) { + var t; + return Ya(this, r), $a(w(t = a.call(this, e)), "getThemeMode", (function() { + return { + mode: t.state.theme[Jg].mode + } + })), t.state = yv(e.mode), t + } + return Ka(r, [{ + key: "getChildContext", + value: function() { + return { + hasAtlaskitThemeProvider: !0 + } + } + }, { + key: "UNSAFE_componentWillMount", + value: function() { + if (!this.context.hasAtlaskitThemeProvider && fv().canUseDOM) { + var e = bv(this.props.background(this.state)); + this.stylesheet = document.createElement("style"), this.stylesheet.type = "text/css", this.stylesheet.innerHTML = e, document && document.head && document.head.appendChild(this.stylesheet) + } + } + }, { + key: "UNSAFE_componentWillReceiveProps", + value: function(e) { + if (e.mode !== this.props.mode) { + var t = yv(e.mode); + if (this.stylesheet) { + var n = bv(e.background(t)); + this.stylesheet.innerHTML = n + } + this.setState(t) + } + } + }, { + key: "componentWillUnmount", + value: function() { + this.stylesheet && document && document.head && (document.head.removeChild(this.stylesheet), delete this.stylesheet) + } + }, { + key: "render", + value: function() { + var e = this.props.children, + t = this.state.theme; + return C().createElement(Kg.Provider, { + value: this.getThemeMode + }, C().createElement($g.ThemeProvider, { + theme: t + }, C().createElement(vv, { + background: this.props.background + }, e))) + } + }]), r + }(x.Component); + $a(kv, "defaultProps", { + mode: "light", + background: hb.background + }), $a(kv, "childContextTypes", { + hasAtlaskitThemeProvider: T().bool + }), $a(kv, "contextTypes", { + hasAtlaskitThemeProvider: T().bool + }); + var _v = kv, + wv = n(6383), + Sv = n.n(wv), + Ev = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e + } : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e + }; + const xv = "object" === ("undefined" == typeof window ? "undefined" : Ev(window)) && "object" === ("undefined" == typeof document ? "undefined" : Ev(document)) && 9 === document.nodeType; + var Cv = {}.constructor; + + function Av(e) { + if (null == e || "object" != typeof e) return e; + if (Array.isArray(e)) return e.map(Av); + if (e.constructor !== Cv) return e; + var t = {}; + for (var n in e) t[n] = Av(e[n]); + return t } - function Ov(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Tv(e, t, n) { + void 0 === e && (e = "unnamed"); + var a = n.jss, + r = Av(t); + return a.plugins.onCreateRule(e, r, n) || (e[0], null) } + var Dv = function(e, t) { + for (var n = "", a = 0; a < e.length && "!important" !== e[a]; a++) n && (n += t), n += e[a]; + return n + }, + Pv = function(e, t) { + if (void 0 === t && (t = !1), !Array.isArray(e)) return e; + var n = ""; + if (Array.isArray(e[0])) + for (var a = 0; a < e.length && "!important" !== e[a]; a++) n && (n += ", "), n += Dv(e[a], " "); + else n = Dv(e, ", "); + return t || "!important" !== e[e.length - 1] || (n += " !important"), n + }; - function Mv() { - return Mv = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Mv.apply(this, arguments) + function jv(e, t) { + for (var n = "", a = 0; a < t; a++) n += " "; + return n + e } - const Iv = Li(ze((function(e) { - const { - iAmSipGateway: t - } = e["features/base/config"]; - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Ov(e, t, n[t]) - })) + + function Mv(e, t, n) { + void 0 === n && (n = {}); + var a = ""; + if (!t) return a; + var r = n.indent, + i = void 0 === r ? 0 : r, + o = t.fallbacks; + if (e && i++, o) + if (Array.isArray(o)) + for (var s = 0; s < o.length; s++) { + var l = o[s]; + for (var c in l) { + var u = l[c]; + null != u && (a && (a += "\n"), a += "" + jv(c + ": " + Pv(u) + ";", i)) + } + } else + for (var d in o) { + var p = o[d]; + null != p && (a && (a += "\n"), a += "" + jv(d + ": " + Pv(p) + ";", i)) + } + for (var h in t) { + var m = t[h]; + null != m && "fallbacks" !== h && (a && (a += "\n"), a += "" + jv(h + ": " + Pv(m) + ";", i)) + } + return (a || n.allowEmpty) && e ? (a && (a = "\n" + a + "\n"), jv(e + " {" + a, --i) + jv("}", i)) : a + } + var Iv = /([[\].#*$><+~=|^:(),"'`\s])/g, + Ov = "undefined" != typeof CSS && CSS.escape, + Nv = function(e) { + return Ov ? Ov(e) : e.replace(Iv, "\\$1") + }, + Rv = function() { + function e(e, t, n) { + this.type = "style", this.key = void 0, this.isProcessed = !1, this.style = void 0, this.renderer = void 0, this.renderable = void 0, this.options = void 0; + var a = n.sheet, + r = n.Renderer; + this.key = e, this.options = n, this.style = t, a ? this.renderer = a.renderer : r && (this.renderer = new r) + } + return e.prototype.prop = function(e, t, n) { + if (void 0 === t) return this.style[e]; + var a = !!n && n.force; + if (!a && this.style[e] === t) return this; + var r = t; + n && !1 === n.process || (r = this.options.jss.plugins.onChangeValue(t, e, this)); + var i = null == r || !1 === r, + o = e in this.style; + if (i && !o && !a) return this; + var s = i && o; + if (s ? delete this.style[e] : this.style[e] = r, this.renderable && this.renderer) return s ? this.renderer.removeProperty(this.renderable, e) : this.renderer.setProperty(this.renderable, e, r), this; + var l = this.options.sheet; + return l && l.attached, this + }, e + }(), + zv = function(e) { + function t(t, n, a) { + var r; + (r = e.call(this, t, n, a) || this).selectorText = void 0, r.id = void 0, r.renderable = void 0; + var i = a.selector, + o = a.scoped, + s = a.sheet, + l = a.generateId; + return i ? r.selectorText = i : !1 !== o && (r.id = l(w(w(r)), s), r.selectorText = "." + Nv(r.id)), r + } + E(t, e); + var n = t.prototype; + return n.applyTo = function(e) { + var t = this.renderer; + if (t) { + var n = this.toJSON(); + for (var a in n) t.setProperty(e, a, n[a]) + } + return this + }, n.toJSON = function() { + var e = {}; + for (var t in this.style) { + var n = this.style[t]; + "object" != typeof n ? e[t] = n : Array.isArray(n) && (e[t] = Pv(n)) } return e - }({}, function(e) { - const { - notifications: t - } = e["features/notifications"]; - return { - _notifications: jv(e) ? t : [], - autoDismissTimeout: "undefined" == typeof interfaceConfig ? void 0 : interfaceConfig.ENFORCE_NOTIFICATION_AUTO_DISMISS_TIMEOUT + }, n.toString = function(e) { + var t = this.options.sheet, + n = t && t.options.link ? z({}, e, { + allowEmpty: !0 + }) : e; + return Mv(this.selectorText, this.style, n) + }, Ka(t, [{ + key: "selector", + set: function(e) { + if (e !== this.selectorText) { + this.selectorText = e; + var t = this.renderer, + n = this.renderable; + n && t && (t.setSelector(n, e) || t.replaceRule(n, this)) + } + }, + get: function() { + return this.selectorText } - }(e), { - _iAmSipGateway: Boolean(t) - }) - }))(class extends Tv { - render() { - return this.props._iAmSipGateway ? null : x().createElement(dv, { - id: "notifications-container", - label: this.props.t("notify.groupTitle"), - onDismissed: this._onDismissed - }, this._renderFlags()) + }]), t + }(Rv), + Lv = { + onCreateRule: function(e, t, n) { + return "@" === e[0] || n.parent && "keyframes" === n.parent.type ? null : new zv(e, t, n) } - _renderFlags() { - const { - _notifications: e - } = this.props; - return e.map((e => { - const { - props: t, - uid: n - } = e; - return x().createElement(Av, Mv({}, t, { - id: n, - key: n, - onDismissed: this._onDismissed, - uid: n - })) + }, + Fv = { + indent: 1, + children: !0 + }, + qv = /@([\w-]+)/, + Bv = function() { + function e(e, t, n) { + this.type = "conditional", this.at = void 0, this.key = void 0, this.query = void 0, this.rules = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0, this.key = e; + var a = e.match(qv); + for (var r in this.at = a ? a[1] : "unknown", this.query = n.name || "@" + this.at, this.options = n, this.rules = new dk(z({}, n, { + parent: this + })), t) this.rules.add(r, t[r]); + this.rules.process() + } + var t = e.prototype; + return t.getRule = function(e) { + return this.rules.get(e) + }, t.indexOf = function(e) { + return this.rules.indexOf(e) + }, t.addRule = function(e, t, n) { + var a = this.rules.add(e, t, n); + return a ? (this.options.jss.plugins.onProcessRule(a), a) : null + }, t.toString = function(e) { + if (void 0 === e && (e = Fv), null == e.indent && (e.indent = Fv.indent), null == e.children && (e.children = Fv.children), !1 === e.children) return this.query + " {}"; + var t = this.rules.toString(e); + return t ? this.query + " {\n" + t + "\n}" : "" + }, e + }(), + Uv = /@media|@supports\s+/, + Hv = { + onCreateRule: function(e, t, n) { + return Uv.test(e) ? new Bv(e, t, n) : null + } + }, + Vv = { + indent: 1, + children: !0 + }, + Wv = /@keyframes\s+([\w-]+)/, + Yv = function() { + function e(e, t, n) { + this.type = "keyframes", this.at = "@keyframes", this.key = void 0, this.name = void 0, this.id = void 0, this.rules = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0; + var a = e.match(Wv); + a && a[1] ? this.name = a[1] : this.name = "noname", this.key = this.type + "-" + this.name, this.options = n; + var r = n.scoped, + i = n.sheet, + o = n.generateId; + for (var s in this.id = !1 === r ? this.name : Nv(o(this, i)), this.rules = new dk(z({}, n, { + parent: this + })), t) this.rules.add(s, t[s], z({}, n, { + parent: this + })); + this.rules.process() + } + return e.prototype.toString = function(e) { + if (void 0 === e && (e = Vv), null == e.indent && (e.indent = Vv.indent), null == e.children && (e.children = Vv.children), !1 === e.children) return this.at + " " + this.id + " {}"; + var t = this.rules.toString(e); + return t && (t = "\n" + t + "\n"), this.at + " " + this.id + " {" + t + "}" + }, e + }(), + Gv = /@keyframes\s+/, + Kv = /\$([\w-]+)/g, + $v = function(e, t) { + return "string" == typeof e ? e.replace(Kv, (function(e, n) { + return n in t ? t[n] : e + })) : e + }, + Jv = function(e, t, n) { + var a = e[t], + r = $v(a, n); + r !== a && (e[t] = r) + }, + Zv = { + onCreateRule: function(e, t, n) { + return "string" == typeof e && Gv.test(e) ? new Yv(e, t, n) : null + }, + onProcessStyle: function(e, t, n) { + return "style" === t.type && n ? ("animation-name" in e && Jv(e, "animation-name", n.keyframes), "animation" in e && Jv(e, "animation", n.keyframes), e) : e + }, + onChangeValue: function(e, t, n) { + var a = n.options.sheet; + if (!a) return e; + switch (t) { + case "animation": + case "animation-name": + return $v(e, a.keyframes); + default: + return e + } + } + }, + Qv = function(e) { + function t() { + for (var t, n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + return (t = e.call.apply(e, [this].concat(a)) || this).renderable = void 0, t + } + return E(t, e), t.prototype.toString = function(e) { + var t = this.options.sheet, + n = t && t.options.link ? z({}, e, { + allowEmpty: !0 + }) : e; + return Mv(this.key, this.style, n) + }, t + }(Rv), + Xv = { + onCreateRule: function(e, t, n) { + return n.parent && "keyframes" === n.parent.type ? new Qv(e, t, n) : null + } + }, + ek = function() { + function e(e, t, n) { + this.type = "font-face", this.at = "@font-face", this.key = void 0, this.style = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0, this.key = e, this.style = t, this.options = n + } + return e.prototype.toString = function(e) { + if (Array.isArray(this.style)) { + for (var t = "", n = 0; n < this.style.length; n++) t += Mv(this.at, this.style[n]), this.style[n + 1] && (t += "\n"); + return t + } + return Mv(this.at, this.style, e) + }, e + }(), + tk = /@font-face/, + nk = { + onCreateRule: function(e, t, n) { + return tk.test(e) ? new ek(e, t, n) : null + } + }, + ak = function() { + function e(e, t, n) { + this.type = "viewport", this.at = "@viewport", this.key = void 0, this.style = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0, this.key = e, this.style = t, this.options = n + } + return e.prototype.toString = function(e) { + return Mv(this.key, this.style, e) + }, e + }(), + rk = { + onCreateRule: function(e, t, n) { + return "@viewport" === e || "@-ms-viewport" === e ? new ak(e, t, n) : null + } + }, + ik = function() { + function e(e, t, n) { + this.type = "simple", this.key = void 0, this.value = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0, this.key = e, this.value = t, this.options = n + } + return e.prototype.toString = function(e) { + if (Array.isArray(this.value)) { + for (var t = "", n = 0; n < this.value.length; n++) t += this.key + " " + this.value[n] + ";", this.value[n + 1] && (t += "\n"); + return t + } + return this.key + " " + this.value + ";" + }, e + }(), + ok = { + "@charset": !0, + "@import": !0, + "@namespace": !0 + }, + sk = { + onCreateRule: function(e, t, n) { + return e in ok ? new ik(e, t, n) : null + } + }, + lk = [Lv, Hv, Zv, Xv, nk, rk, sk], + ck = { + process: !0 + }, + uk = { + force: !0, + process: !0 + }, + dk = function() { + function e(e) { + this.map = {}, this.raw = {}, this.index = [], this.counter = 0, this.options = void 0, this.classes = void 0, this.keyframes = void 0, this.options = e, this.classes = e.classes, this.keyframes = e.keyframes + } + var t = e.prototype; + return t.add = function(e, t, n) { + var a = this.options, + r = a.parent, + i = a.sheet, + o = a.jss, + s = a.Renderer, + l = a.generateId, + c = a.scoped, + u = z({ + classes: this.classes, + parent: r, + sheet: i, + jss: o, + Renderer: s, + generateId: l, + scoped: c, + name: e, + keyframes: this.keyframes, + selector: void 0 + }, n), + d = e; + e in this.raw && (d = e + "-d" + this.counter++), this.raw[d] = t, d in this.classes && (u.selector = "." + Nv(this.classes[d])); + var p = Tv(d, t, u); + if (!p) return null; + this.register(p); + var h = void 0 === u.index ? this.index.length : u.index; + return this.index.splice(h, 0, p), p + }, t.get = function(e) { + return this.map[e] + }, t.remove = function(e) { + this.unregister(e), delete this.raw[e.key], this.index.splice(this.index.indexOf(e), 1) + }, t.indexOf = function(e) { + return this.index.indexOf(e) + }, t.process = function() { + var e = this.options.jss.plugins; + this.index.slice(0).forEach(e.onProcessRule, e) + }, t.register = function(e) { + this.map[e.key] = e, e instanceof zv ? (this.map[e.selector] = e, e.id && (this.classes[e.key] = e.id)) : e instanceof Yv && this.keyframes && (this.keyframes[e.name] = e.id) + }, t.unregister = function(e) { + delete this.map[e.key], e instanceof zv ? (delete this.map[e.selector], delete this.classes[e.key]) : e instanceof Yv && delete this.keyframes[e.name] + }, t.update = function() { + var e, t, n; + if ("string" == typeof(arguments.length <= 0 ? void 0 : arguments[0]) ? (e = arguments.length <= 0 ? void 0 : arguments[0], t = arguments.length <= 1 ? void 0 : arguments[1], n = arguments.length <= 2 ? void 0 : arguments[2]) : (t = arguments.length <= 0 ? void 0 : arguments[0], n = arguments.length <= 1 ? void 0 : arguments[1], e = null), e) this.updateOne(this.map[e], t, n); + else + for (var a = 0; a < this.index.length; a++) this.updateOne(this.index[a], t, n) + }, t.updateOne = function(t, n, a) { + void 0 === a && (a = ck); + var r = this.options, + i = r.jss.plugins, + o = r.sheet; + if (t.rules instanceof e) t.rules.update(n, a); + else { + var s = t, + l = s.style; + if (i.onUpdate(n, t, o, a), a.process && l && l !== s.style) { + for (var c in i.onProcessStyle(s.style, s, o), s.style) { + var u = s.style[c]; + u !== l[c] && s.prop(c, u, uk) + } + for (var d in l) { + var p = s.style[d], + h = l[d]; + null == p && p !== h && s.prop(d, null, uk) + } + } + } + }, t.toString = function(e) { + for (var t = "", n = this.options.sheet, a = !!n && n.options.link, r = 0; r < this.index.length; r++) { + var i = this.index[r].toString(e); + (i || a) && (t && (t += "\n"), t += i) + } + return t + }, e + }(), + pk = function() { + function e(e, t) { + for (var n in this.options = void 0, this.deployed = void 0, this.attached = void 0, this.rules = void 0, this.renderer = void 0, this.classes = void 0, this.keyframes = void 0, this.queue = void 0, this.attached = !1, this.deployed = !1, this.classes = {}, this.keyframes = {}, this.options = z({}, t, { + sheet: this, + parent: this, + classes: this.classes, + keyframes: this.keyframes + }), t.Renderer && (this.renderer = new t.Renderer(this)), this.rules = new dk(this.options), e) this.rules.add(n, e[n]); + this.rules.process() + } + var t = e.prototype; + return t.attach = function() { + return this.attached || (this.renderer && this.renderer.attach(), this.attached = !0, this.deployed || this.deploy()), this + }, t.detach = function() { + return this.attached ? (this.renderer && this.renderer.detach(), this.attached = !1, this) : this + }, t.addRule = function(e, t, n) { + var a = this.queue; + this.attached && !a && (this.queue = []); + var r = this.rules.add(e, t, n); + return r ? (this.options.jss.plugins.onProcessRule(r), this.attached ? this.deployed ? (a ? a.push(r) : (this.insertRule(r), this.queue && (this.queue.forEach(this.insertRule, this), this.queue = void 0)), r) : r : (this.deployed = !1, r)) : null + }, t.insertRule = function(e) { + this.renderer && this.renderer.insertRule(e) + }, t.addRules = function(e, t) { + var n = []; + for (var a in e) { + var r = this.addRule(a, e[a], t); + r && n.push(r) + } + return n + }, t.getRule = function(e) { + return this.rules.get(e) + }, t.deleteRule = function(e) { + var t = "object" == typeof e ? e : this.rules.get(e); + return !(!t || this.attached && !t.renderable) && (this.rules.remove(t), !(this.attached && t.renderable && this.renderer) || this.renderer.deleteRule(t.renderable)) + }, t.indexOf = function(e) { + return this.rules.indexOf(e) + }, t.deploy = function() { + return this.renderer && this.renderer.deploy(), this.deployed = !0, this + }, t.update = function() { + var e; + return (e = this.rules).update.apply(e, arguments), this + }, t.updateOne = function(e, t, n) { + return this.rules.updateOne(e, t, n), this + }, t.toString = function(e) { + return this.rules.toString(e) + }, e + }(), + hk = function() { + function e() { + this.plugins = { + internal: [], + external: [] + }, this.registry = void 0 + } + var t = e.prototype; + return t.onCreateRule = function(e, t, n) { + for (var a = 0; a < this.registry.onCreateRule.length; a++) { + var r = this.registry.onCreateRule[a](e, t, n); + if (r) return r + } + return null + }, t.onProcessRule = function(e) { + if (!e.isProcessed) { + for (var t = e.options.sheet, n = 0; n < this.registry.onProcessRule.length; n++) this.registry.onProcessRule[n](e, t); + e.style && this.onProcessStyle(e.style, e, t), e.isProcessed = !0 + } + }, t.onProcessStyle = function(e, t, n) { + for (var a = 0; a < this.registry.onProcessStyle.length; a++) t.style = this.registry.onProcessStyle[a](t.style, t, n) + }, t.onProcessSheet = function(e) { + for (var t = 0; t < this.registry.onProcessSheet.length; t++) this.registry.onProcessSheet[t](e) + }, t.onUpdate = function(e, t, n, a) { + for (var r = 0; r < this.registry.onUpdate.length; r++) this.registry.onUpdate[r](e, t, n, a) + }, t.onChangeValue = function(e, t, n) { + for (var a = e, r = 0; r < this.registry.onChangeValue.length; r++) a = this.registry.onChangeValue[r](a, t, n); + return a + }, t.use = function(e, t) { + void 0 === t && (t = { + queue: "external" + }); + var n = this.plugins[t.queue]; - 1 === n.indexOf(e) && (n.push(e), this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce((function(e, t) { + for (var n in t) n in e && e[n].push(t[n]); + return e + }), { + onCreateRule: [], + onProcessRule: [], + onProcessStyle: [], + onProcessSheet: [], + onChangeValue: [], + onUpdate: [] })) + }, e + }(), + mk = function() { + function e() { + this.registry = [] + } + var t = e.prototype; + return t.add = function(e) { + var t = this.registry, + n = e.options.index; + if (-1 === t.indexOf(e)) + if (0 === t.length || n >= this.index) t.push(e); + else + for (var a = 0; a < t.length; a++) + if (t[a].options.index > n) return void t.splice(a, 0, e) + }, t.reset = function() { + this.registry = [] + }, t.remove = function(e) { + var t = this.registry.indexOf(e); + this.registry.splice(t, 1) + }, t.toString = function(e) { + for (var t = void 0 === e ? {} : e, n = t.attached, a = L(t, ["attached"]), r = "", i = 0; i < this.registry.length; i++) { + var o = this.registry[i]; + null != n && o.attached !== n || (r && (r += "\n"), r += o.toString(a)) + } + return r + }, Ka(e, [{ + key: "index", + get: function() { + return 0 === this.registry.length ? 0 : this.registry[this.registry.length - 1].options.index + } + }]), e + }(), + fk = new mk, + gk = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window && window.Math === Math ? window : "undefined" != typeof self && self.Math === Math ? self : Function("return this")(), + bk = "2f1acc6c3a606b082e5eef5e54414ffb"; + null == gk[bk] && (gk[bk] = 0); + var yk = gk[bk]++, + vk = function(e) { + void 0 === e && (e = {}); + var t = 0; + return function(n, a) { + t += 1; + var r = "", + i = ""; + return a && (a.options.classNamePrefix && (i = a.options.classNamePrefix), null != a.options.jss.id && (r = String(a.options.jss.id))), e.minify ? "" + (i || "c") + yk + r + t : i + n.key + "-" + yk + (r ? "-" + r : "") + "-" + t + } + }, + kk = function(e) { + var t; + return function() { + return t || (t = e()), t + } + }, + _k = function(e, t) { + try { + return e.attributeStyleMap ? e.attributeStyleMap.get(t) : e.style.getPropertyValue(t) + } catch (e) { + return "" + } + }, + wk = function(e, t, n) { + try { + var a = n; + if (Array.isArray(n) && (a = Pv(n, !0), "!important" === n[n.length - 1])) return e.style.setProperty(t, a, "important"), !0; + e.attributeStyleMap ? e.attributeStyleMap.set(t, a) : e.style.setProperty(t, a) + } catch (e) { + return !1 } + return !0 + }, + Sk = function(e, t) { + try { + e.attributeStyleMap ? e.attributeStyleMap.delete(t) : e.style.removeProperty(t) + } catch (e) {} + }, + Ek = function(e, t) { + return e.selectorText = t, e.selectorText === t + }, + xk = kk((function() { + return document.querySelector("head") + })); + var Ck = kk((function() { + var e = document.querySelector('meta[property="csp-nonce"]'); + return e ? e.getAttribute("content") : null })), - Nv = "DOMINANT_SPEAKER_CHANGED", - zv = "GRANT_MODERATOR", - Rv = "KICK_PARTICIPANT", - Lv = "MUTE_REMOTE_PARTICIPANT", - Fv = "PARTICIPANT_ID_CHANGED", - qv = "PARTICIPANT_JOINED", - Bv = "PARTICIPANT_KICKED", - Uv = "PARTICIPANT_LEFT", - Hv = "PARTICIPANT_UPDATED", - Vv = "PIN_PARTICIPANT", - Wv = "HIDDEN_PARTICIPANT_JOINED", - Yv = "HIDDEN_PARTICIPANT_LEFT", - Gv = "SET_LOADABLE_AVATAR_URL", - Kv = "LOCAL_PARTICIPANT_RAISE_HAND", - $v = "RAISE_HAND_UPDATED", - Jv = Je("features/base/participants"); - - function Zv(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } + Ak = function(e, t, n) { + try { + "insertRule" in e ? e.insertRule(t, n) : "appendRule" in e && e.appendRule(t) + } catch (e) { + return !1 + } + return e.cssRules[n] + }, + Tk = function(e, t) { + var n = e.cssRules.length; + return void 0 === t || t > n ? n : t + }, + Dk = function() { + function e(e) { + this.getPropertyValue = _k, this.setProperty = wk, this.removeProperty = Sk, this.setSelector = Ek, this.element = void 0, this.sheet = void 0, this.hasInsertedRules = !1, this.cssRules = [], e && fk.add(e), this.sheet = e; + var t = this.sheet ? this.sheet.options : {}, + n = t.media, + a = t.meta, + r = t.element; + this.element = r || function() { + var e = document.createElement("style"); + return e.textContent = "\n", e + }(), this.element.setAttribute("data-jss", ""), n && this.element.setAttribute("media", n), a && this.element.setAttribute("data-meta", a); + var i = Ck(); + i && this.element.setAttribute("nonce", i) + } + var t = e.prototype; + return t.attach = function() { + if (!this.element.parentNode && this.sheet) { + ! function(e, t) { + var n = t.insertionPoint, + a = function(e) { + var t = fk.registry; + if (t.length > 0) { + var n = function(e, t) { + for (var n = 0; n < e.length; n++) { + var a = e[n]; + if (a.attached && a.options.index > t.index && a.options.insertionPoint === t.insertionPoint) return a + } + return null + }(t, e); + if (n && n.renderer) return { + parent: n.renderer.element.parentNode, + node: n.renderer.element + }; + if (n = function(e, t) { + for (var n = e.length - 1; n >= 0; n--) { + var a = e[n]; + if (a.attached && a.options.insertionPoint === t.insertionPoint) return a + } + return null + }(t, e), n && n.renderer) return { + parent: n.renderer.element.parentNode, + node: n.renderer.element.nextSibling + } + } + var a = e.insertionPoint; + if (a && "string" == typeof a) { + var r = function(e) { + for (var t = xk(), n = 0; n < t.childNodes.length; n++) { + var a = t.childNodes[n]; + if (8 === a.nodeType && a.nodeValue.trim() === e) return a + } + return null + }(a); + if (r) return { + parent: r.parentNode, + node: r.nextSibling + } + } + return !1 + }(t); + if (!1 !== a && a.parent) a.parent.insertBefore(e, a.node); + else if (n && "number" == typeof n.nodeType) { + var r = n, + i = r.parentNode; + i && i.insertBefore(e, r.nextSibling) + } else xk().appendChild(e) + }(this.element, this.sheet.options); + var e = Boolean(this.sheet && this.sheet.deployed); + this.hasInsertedRules && e && (this.hasInsertedRules = !1, this.deploy()) + } + }, t.detach = function() { + if (this.sheet) { + var e = this.element.parentNode; + e && e.removeChild(this.element), this.sheet.options.link && (this.cssRules = [], this.element.textContent = "\n") + } + }, t.deploy = function() { + var e = this.sheet; + e && (e.options.link ? this.insertRules(e.rules) : this.element.textContent = "\n" + e.toString() + "\n") + }, t.insertRules = function(e, t) { + for (var n = 0; n < e.index.length; n++) this.insertRule(e.index[n], n, t) + }, t.insertRule = function(e, t, n) { + if (void 0 === n && (n = this.element.sheet), e.rules) { + var a = e, + r = n; + if ("conditional" === e.type || "keyframes" === e.type) { + var i = Tk(n, t); + if (!1 === (r = Ak(n, a.toString({ + children: !1 + }), i))) return !1; + this.refCssRule(e, i, r) + } + return this.insertRules(a.rules, r), r + } + var o = e.toString(); + if (!o) return !1; + var s = Tk(n, t), + l = Ak(n, o, s); + return !1 !== l && (this.hasInsertedRules = !0, this.refCssRule(e, s, l), l) + }, t.refCssRule = function(e, t, n) { + e.renderable = n, e.options.parent instanceof pk && (this.cssRules[t] = n) + }, t.deleteRule = function(e) { + var t = this.element.sheet, + n = this.indexOf(e); + return -1 !== n && (t.deleteRule(n), this.cssRules.splice(n, 1), !0) + }, t.indexOf = function(e) { + return this.cssRules.indexOf(e) + }, t.replaceRule = function(e, t) { + var n = this.indexOf(e); + return -1 !== n && (this.element.sheet.deleteRule(n), this.cssRules.splice(n, 1), this.insertRule(t, n)) + }, t.getRules = function() { + return this.element.sheet.cssRules + }, e + }(), + Pk = 0, + jk = function() { + function e(e) { + this.id = Pk++, this.version = "10.6.0", this.plugins = new hk, this.options = { + id: { + minify: !1 + }, + createGenerateId: vk, + Renderer: xv ? Dk : null, + plugins: [] + }, this.generateId = vk({ + minify: !1 + }); + for (var t = 0; t < lk.length; t++) this.plugins.use(lk[t], { + queue: "internal" + }); + this.setup(e) + } + var t = e.prototype; + return t.setup = function(e) { + return void 0 === e && (e = {}), e.createGenerateId && (this.options.createGenerateId = e.createGenerateId), e.id && (this.options.id = z({}, this.options.id, e.id)), (e.createGenerateId || e.id) && (this.generateId = this.options.createGenerateId(this.options.id)), null != e.insertionPoint && (this.options.insertionPoint = e.insertionPoint), "Renderer" in e && (this.options.Renderer = e.Renderer), e.plugins && this.use.apply(this, e.plugins), this + }, t.createStyleSheet = function(e, t) { + void 0 === t && (t = {}); + var n = t.index; + "number" != typeof n && (n = 0 === fk.index ? 0 : fk.index + 1); + var a = new pk(e, z({}, t, { + jss: this, + generateId: t.generateId || this.generateId, + insertionPoint: this.options.insertionPoint, + Renderer: this.options.Renderer, + index: n + })); + return this.plugins.onProcessSheet(a), a + }, t.removeStyleSheet = function(e) { + return e.detach(), fk.remove(e), this + }, t.createRule = function(e, t, n) { + if (void 0 === t && (t = {}), void 0 === n && (n = {}), "object" == typeof e) return this.createRule(void 0, e, t); + var a = z({}, n, { + name: e, + jss: this, + Renderer: this.options.Renderer + }); + a.generateId || (a.generateId = this.generateId), a.classes || (a.classes = {}), a.keyframes || (a.keyframes = {}); + var r = Tv(e, t, a); + return r && this.plugins.onProcessRule(r), r + }, t.use = function() { + for (var e = this, t = arguments.length, n = new Array(t), a = 0; a < t; a++) n[a] = arguments[a]; + return n.forEach((function(t) { + e.plugins.use(t) + })), this + }, e + }(); - function Qv(e, t, n) { - return { - type: Nv, - participant: { - conference: n, - id: e, - previousSpeakers: t + function Mk(e) { + var t = null; + for (var n in e) { + var a = e[n], + r = typeof a; + if ("function" === r) t || (t = {}), t[n] = a; + else if ("object" === r && null !== a && !Array.isArray(a)) { + var i = Mk(a); + i && (t || (t = {}), t[n] = i) } } + return t } + var Ik = "object" == typeof CSS && null != CSS && "number" in CSS, + Ok = function(e) { + return new jk(e) + }; - function Xv(e) { - return { - type: Rv, - id: e - } + function Nk() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = e.baseClasses, + n = e.newClasses; + if (e.Component, !n) return t; + var a = z({}, t); + return Object.keys(n).forEach((function(e) { + n[e] && (a[e] = "".concat(t[e], " ").concat(n[e])) + })), a } - - function ek(e) { - return (t, n) => { - const a = Rh(n); - if (a) return t(nk(a.id, e)) + Ok(); + var Rk = { + set: function(e, t, n, a) { + var r = e.get(t); + r || (r = new Map, e.set(t, r)), r.set(n, a) + }, + get: function(e, t, n) { + var a = e.get(t); + return a ? a.get(n) : void 0 + }, + delete: function(e, t, n) { + e.get(t).delete(n) } + }; + const zk = Rk, + Lk = C().createContext(null); + + function Fk() { + return C().useContext(Lk) + } + const qk = "function" == typeof Symbol && Symbol.for ? Symbol.for("mui.nested") : "__THEME_NESTED__"; + var Bk = ["checked", "disabled", "error", "focused", "focusVisible", "required", "expanded", "selected"], + Uk = Date.now(), + Hk = "fnValues" + Uk, + Vk = "fnStyle" + ++Uk; + var Wk = "@global", + Yk = "@global ", + Gk = function() { + function e(e, t, n) { + for (var a in this.type = "global", this.at = Wk, this.rules = void 0, this.options = void 0, this.key = void 0, this.isProcessed = !1, this.key = e, this.options = n, this.rules = new dk(z({}, n, { + parent: this + })), t) this.rules.add(a, t[a]); + this.rules.process() + } + var t = e.prototype; + return t.getRule = function(e) { + return this.rules.get(e) + }, t.addRule = function(e, t, n) { + var a = this.rules.add(e, t, n); + return a && this.options.jss.plugins.onProcessRule(a), a + }, t.indexOf = function(e) { + return this.rules.indexOf(e) + }, t.toString = function() { + return this.rules.toString() + }, e + }(), + Kk = function() { + function e(e, t, n) { + this.type = "global", this.at = Wk, this.options = void 0, this.rule = void 0, this.isProcessed = !1, this.key = void 0, this.key = e, this.options = n; + var a = e.substr(Yk.length); + this.rule = n.jss.createRule(a, t, z({}, n, { + parent: this + })) + } + return e.prototype.toString = function(e) { + return this.rule ? this.rule.toString(e) : "" + }, e + }(), + $k = /\s*,\s*/g; + + function Jk(e, t) { + for (var n = e.split($k), a = "", r = 0; r < n.length; r++) a += t + " " + n[r].trim(), n[r + 1] && (a += ", "); + return a } + var Zk = /\s*,\s*/g, + Qk = /&/g, + Xk = /\$([\w-]+)/g; + var e_ = /[A-Z]/g, + t_ = /^ms-/, + n_ = {}; - function tk(e) { - return (t, n) => { - const a = Rh(n); - if (a) return t({ - type: Fv, - conference: void 0, - newValue: e, - oldValue: a.id - }) - } + function a_(e) { + return "-" + e.toLowerCase() } + const r_ = function(e) { + if (n_.hasOwnProperty(e)) return n_[e]; + var t = e.replace(e_, a_); + return n_[e] = t_.test(t) ? "-" + t : t + }; - function nk(e, t) { - return { - type: Hv, - participant: { - connectionStatus: t, - id: e - } - } + function i_(e) { + var t = {}; + for (var n in e) t[0 === n.indexOf("--") ? n : r_(n)] = e[n]; + return e.fallbacks && (Array.isArray(e.fallbacks) ? t.fallbacks = e.fallbacks.map(i_) : t.fallbacks = i_(e.fallbacks)), t } + var o_ = Ik && CSS ? CSS.px : "px", + s_ = Ik && CSS ? CSS.ms : "ms", + l_ = Ik && CSS ? CSS.percent : "%"; - function ak(e) { - if (e.local) return { - type: qv, - participant: e - }; - const { - conference: t - } = e; - if (!t) throw Error("A remote participant must be associated with a JitsiConference!"); - return (n, a) => { - const r = a()["features/base/conference"]; - if (t === r.conference || t === r.joining) return n({ - type: qv, - participant: e - }) - } + function c_(e) { + var t = /(-[a-z])/g, + n = function(e) { + return e[1].toUpperCase() + }, + a = {}; + for (var r in e) a[r] = e[r], a[r.replace(t, n)] = e[r]; + return a } + var u_ = c_({ + "animation-delay": s_, + "animation-duration": s_, + "background-position": o_, + "background-position-x": o_, + "background-position-y": o_, + "background-size": o_, + border: o_, + "border-bottom": o_, + "border-bottom-left-radius": o_, + "border-bottom-right-radius": o_, + "border-bottom-width": o_, + "border-left": o_, + "border-left-width": o_, + "border-radius": o_, + "border-right": o_, + "border-right-width": o_, + "border-top": o_, + "border-top-left-radius": o_, + "border-top-right-radius": o_, + "border-top-width": o_, + "border-width": o_, + "border-block": o_, + "border-block-end": o_, + "border-block-end-width": o_, + "border-block-start": o_, + "border-block-start-width": o_, + "border-block-width": o_, + "border-inline": o_, + "border-inline-end": o_, + "border-inline-end-width": o_, + "border-inline-start": o_, + "border-inline-start-width": o_, + "border-inline-width": o_, + "border-start-start-radius": o_, + "border-start-end-radius": o_, + "border-end-start-radius": o_, + "border-end-end-radius": o_, + margin: o_, + "margin-bottom": o_, + "margin-left": o_, + "margin-right": o_, + "margin-top": o_, + "margin-block": o_, + "margin-block-end": o_, + "margin-block-start": o_, + "margin-inline": o_, + "margin-inline-end": o_, + "margin-inline-start": o_, + padding: o_, + "padding-bottom": o_, + "padding-left": o_, + "padding-right": o_, + "padding-top": o_, + "padding-block": o_, + "padding-block-end": o_, + "padding-block-start": o_, + "padding-inline": o_, + "padding-inline-end": o_, + "padding-inline-start": o_, + "mask-position-x": o_, + "mask-position-y": o_, + "mask-size": o_, + height: o_, + width: o_, + "min-height": o_, + "max-height": o_, + "min-width": o_, + "max-width": o_, + bottom: o_, + left: o_, + top: o_, + right: o_, + inset: o_, + "inset-block": o_, + "inset-block-end": o_, + "inset-block-start": o_, + "inset-inline": o_, + "inset-inline-end": o_, + "inset-inline-start": o_, + "box-shadow": o_, + "text-shadow": o_, + "column-gap": o_, + "column-rule": o_, + "column-rule-width": o_, + "column-width": o_, + "font-size": o_, + "font-size-delta": o_, + "letter-spacing": o_, + "text-decoration-thickness": o_, + "text-indent": o_, + "text-stroke": o_, + "text-stroke-width": o_, + "word-spacing": o_, + motion: o_, + "motion-offset": o_, + outline: o_, + "outline-offset": o_, + "outline-width": o_, + perspective: o_, + "perspective-origin-x": l_, + "perspective-origin-y": l_, + "transform-origin": l_, + "transform-origin-x": l_, + "transform-origin-y": l_, + "transform-origin-z": l_, + "transition-delay": s_, + "transition-duration": s_, + "vertical-align": o_, + "flex-basis": o_, + "shape-margin": o_, + size: o_, + gap: o_, + grid: o_, + "grid-gap": o_, + "row-gap": o_, + "grid-row-gap": o_, + "grid-column-gap": o_, + "grid-template-rows": o_, + "grid-template-columns": o_, + "grid-auto-rows": o_, + "grid-auto-columns": o_, + "box-shadow-x": o_, + "box-shadow-y": o_, + "box-shadow-blur": o_, + "box-shadow-spread": o_, + "font-line-height": o_, + "text-shadow-x": o_, + "text-shadow-y": o_, + "text-shadow-blur": o_ + }); - function rk(e) { - return (t, n) => { - if (!e) return; - const a = e.getId(); - e.getFeatures().then((e => { - const r = e.has("http://jitsi.org/meet/remotecontrol"), - i = Fh(n(), a); - if (i && !i.local) return (null == i ? void 0 : i.supportsRemoteControl) !== r ? t({ - type: Hv, - participant: { - id: a, - supportsRemoteControl: r - } - }) : void 0 - })).catch((e => { - Jv.error(`Failed to get participant features for ${a}!`, e) - })) + function d_(e, t, n) { + if (null == t) return t; + if (Array.isArray(t)) + for (var a = 0; a < t.length; a++) t[a] = d_(e, t[a], n); + else if ("object" == typeof t) + if ("fallbacks" === e) + for (var r in t) t[r] = d_(r, t[r], n); + else + for (var i in t) t[i] = d_(e + "-" + i, t[i], n); + else if ("number" == typeof t && !1 === isNaN(t)) { + var o = n[e] || u_[e]; + return !o || 0 === t && o === o_ ? t.toString() : "function" == typeof o ? o(t).toString() : "" + t + o } + return t } - - function ik(e, t, n) { - return { - type: Uv, - participant: { - conference: t, - id: e, - isReplaced: n + var p_ = "", + h_ = "", + m_ = "", + f_ = "", + g_ = xv && "ontouchstart" in document.documentElement; + if (xv) { + var b_ = { + Moz: "-moz-", + ms: "-ms-", + O: "-o-", + Webkit: "-webkit-" + }, + y_ = document.createElement("p").style; + for (var v_ in b_) + if (v_ + "Transform" in y_) { + p_ = v_, h_ = b_[v_]; + break } - } + "Webkit" === p_ && "msHyphens" in y_ && (p_ = "ms", h_ = b_.ms, f_ = "edge"), "Webkit" === p_ && "-apple-trailing-word" in y_ && (m_ = "apple") } + var k_ = p_, + __ = h_, + w_ = m_, + S_ = f_, + E_ = g_, + x_ = { + noPrefill: ["appearance"], + supportedProperty: function(e) { + return "appearance" === e && ("ms" === k_ ? "-webkit-" + e : __ + e) + } + }, + C_ = { + noPrefill: ["color-adjust"], + supportedProperty: function(e) { + return "color-adjust" === e && ("Webkit" === k_ ? __ + "print-" + e : e) + } + }, + A_ = /[-\s]+(.)?/g; - function ok(e, t) { - return lk({ - id: e, - presence: t - }) + function T_(e, t) { + return t ? t.toUpperCase() : "" } - function sk(e, t) { - return lk({ - id: e, - role: t - }) + function D_(e) { + return e.replace(A_, T_) } - function lk(e = {}) { - const t = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Zv(e, t, n[t]) - })) - } - return e - }({}, e); - return e.name && (t.name = Lh(e.name)), { - type: Hv, - participant: t - } + function P_(e) { + return D_("-" + e) } - - function ck(e, t) { - return (n, a) => { - e && n(Yf({ - titleKey: t.isAudioTrack() ? "notify.mutedRemotelyTitle" : "notify.videoMutedRemotelyTitle", - titleArguments: { - moderator: Hh(a, e.getId()) + var j_, M_ = { + noPrefill: ["mask"], + supportedProperty: function(e, t) { + if (!/^mask/.test(e)) return !1; + if ("Webkit" === k_) { + var n = "mask-image"; + if (D_(n) in t) return e; + if (k_ + P_(n) in t) return __ + e } - })) - } + return e + } + }, + I_ = { + noPrefill: ["text-orientation"], + supportedProperty: function(e) { + return "text-orientation" === e && ("apple" !== w_ || E_ ? e : __ + e) + } + }, + O_ = { + noPrefill: ["transform"], + supportedProperty: function(e, t, n) { + return "transform" === e && (n.transform ? e : __ + e) + } + }, + N_ = { + noPrefill: ["transition"], + supportedProperty: function(e, t, n) { + return "transition" === e && (n.transition ? e : __ + e) + } + }, + R_ = { + noPrefill: ["writing-mode"], + supportedProperty: function(e) { + return "writing-mode" === e && ("Webkit" === k_ || "ms" === k_ && "edge" !== S_ ? __ + e : e) + } + }, + z_ = { + noPrefill: ["user-select"], + supportedProperty: function(e) { + return "user-select" === e && ("Moz" === k_ || "ms" === k_ || "apple" === w_ ? __ + e : e) + } + }, + L_ = { + supportedProperty: function(e, t) { + return !!/^break-/.test(e) && ("Webkit" === k_ ? "WebkitColumn" + P_(e) in t && __ + "column-" + e : "Moz" === k_ && "page" + P_(e) in t && "page-" + e) + } + }, + F_ = { + supportedProperty: function(e, t) { + if (!/^(border|margin|padding)-inline/.test(e)) return !1; + if ("Moz" === k_) return e; + var n = e.replace("-inline", ""); + return k_ + P_(n) in t && __ + n + } + }, + q_ = { + supportedProperty: function(e, t) { + return D_(e) in t && e + } + }, + B_ = { + supportedProperty: function(e, t) { + var n = P_(e); + return "-" === e[0] || "-" === e[0] && "-" === e[1] ? e : k_ + n in t ? __ + e : "Webkit" !== k_ && "Webkit" + n in t && "-webkit-" + e + } + }, + U_ = { + supportedProperty: function(e) { + return "scroll-snap" === e.substring(0, 11) && ("ms" === k_ ? "" + __ + e : e) + } + }, + H_ = { + supportedProperty: function(e) { + return "overscroll-behavior" === e && ("ms" === k_ ? __ + "scroll-chaining" : e) + } + }, + V_ = { + "flex-grow": "flex-positive", + "flex-shrink": "flex-negative", + "flex-basis": "flex-preferred-size", + "justify-content": "flex-pack", + order: "flex-order", + "align-items": "flex-align", + "align-content": "flex-line-pack" + }, + W_ = { + supportedProperty: function(e, t) { + var n = V_[e]; + return !!n && k_ + P_(n) in t && __ + n + } + }, + Y_ = { + flex: "box-flex", + "flex-grow": "box-flex", + "flex-direction": ["box-orient", "box-direction"], + order: "box-ordinal-group", + "align-items": "box-align", + "flex-flow": ["box-orient", "box-direction"], + "justify-content": "box-pack" + }, + G_ = Object.keys(Y_), + K_ = function(e) { + return __ + e + }, + $_ = { + supportedProperty: function(e, t, n) { + var a = n.multiple; + if (G_.indexOf(e) > -1) { + var r = Y_[e]; + if (!Array.isArray(r)) return k_ + P_(r) in t && __ + r; + if (!a) return !1; + for (var i = 0; i < r.length; i++) + if (!(k_ + P_(r[0]) in t)) return !1; + return r.map(K_) + } + return !1 + } + }, + J_ = [x_, C_, M_, I_, O_, N_, R_, z_, L_, F_, q_, B_, U_, H_, W_, $_], + Z_ = J_.filter((function(e) { + return e.supportedProperty + })).map((function(e) { + return e.supportedProperty + })), + Q_ = J_.filter((function(e) { + return e.noPrefill + })).reduce((function(e, t) { + return e.push.apply(e, wr(t.noPrefill)), e + }), []), + X_ = {}; + if (xv) { + j_ = document.createElement("p"); + var ew = window.getComputedStyle(document.documentElement, ""); + for (var tw in ew) isNaN(tw) || (X_[ew[tw]] = ew[tw]); + Q_.forEach((function(e) { + return delete X_[e] + })) } - function uk(e, t) { - return (n, a) => { - n({ - type: Bv, - kicked: t.getId(), - kicker: null == e ? void 0 : e.getId() - }), t.isReplaced && t.isReplaced() || n(Yf({ - titleArguments: { - kicked: Hh(a, t.getId()), - kicker: Hh(a, e.getId()) - }, - titleKey: "notify.kickParticipant" - }, 5e3)) + function nw(e, t) { + if (void 0 === t && (t = {}), !j_) return e; + if (null != X_[e]) return X_[e]; + "transition" !== e && "transform" !== e || (t[e] = e in j_.style); + for (var n = 0; n < Z_.length && (X_[e] = Z_[n](e, j_.style, t), !X_[e]); n++); + try { + j_.style[e] = "" + } catch (e) { + return !1 } + return X_[e] } + var aw, rw = {}, + iw = { + transition: 1, + "transition-property": 1, + "-webkit-transition": 1, + "-webkit-transition-property": 1 + }, + ow = /(^\s*[\w-]+)|, (\s*[\w-]+)(?![^()]*\))/g; - function dk(e) { - return { - type: Vv, - participant: { - id: e - } - } + function sw(e, t, n) { + return "var" === t ? "var" : "all" === t ? "all" : "all" === n ? ", all" : (t ? nw(t) : ", " + nw(n)) || t || n } - function pk(e) { - return { - type: Kv, - enabled: e - } - } + function lw(e, t) { + var n = t; + if (!aw || "content" === e) return t; + if ("string" != typeof n || !isNaN(parseInt(n, 10))) return n; + var a = e + n; + if (null != rw[a]) return rw[a]; + try { + aw.style[e] = n + } catch (e) { + return rw[a] = !1, !1 + } + if (iw[e]) n = n.replace(ow, sw); + else if ("" === aw.style[e] && ("-ms-flex" === (n = __ + n) && (aw.style[e] = "-ms-flexbox"), aw.style[e] = n, "" === aw.style[e])) return rw[a] = !1, !1; + return aw.style[e] = "", rw[a] = n, rw[a] + } + xv && (aw = document.createElement("p")); + var cw, uw = Ok({ + plugins: [{ + onCreateRule: function(e, t, n) { + if ("function" != typeof t) return null; + var a = Tv(e, {}, n); + return a[Vk] = t, a + }, + onProcessStyle: function(e, t) { + if (Hk in t || Vk in t) return e; + var n = {}; + for (var a in e) { + var r = e[a]; + "function" == typeof r && (delete e[a], n[a] = r) + } + return t[Hk] = n, e + }, + onUpdate: function(e, t, n, a) { + var r = t, + i = r[Vk]; + i && (r.style = i(e) || {}); + var o = r[Hk]; + if (o) + for (var s in o) r.prop(s, o[s](e), a) + } + }, { + onCreateRule: function(e, t, n) { + if (!e) return null; + if (e === Wk) return new Gk(e, t, n); + if ("@" === e[0] && e.substr(0, Yk.length) === Yk) return new Kk(e, t, n); + var a = n.parent; + return a && ("global" === a.type || a.options.parent && "global" === a.options.parent.type) && (n.scoped = !1), !1 === n.scoped && (n.selector = e), null + }, + onProcessRule: function(e, t) { + "style" === e.type && t && (function(e, t) { + var n = e.options, + a = e.style, + r = a ? a[Wk] : null; + if (r) { + for (var i in r) t.addRule(i, r[i], z({}, n, { + selector: Jk(i, e.selector) + })); + delete a[Wk] + } + }(e, t), function(e, t) { + var n = e.options, + a = e.style; + for (var r in a) + if ("@" === r[0] && r.substr(0, Wk.length) === Wk) { + var i = Jk(r.substr(Wk.length), e.selector); + t.addRule(i, a[r], z({}, n, { + selector: i + })), delete a[r] + } + }(e, t)) + } + }, function() { + function e(e, t) { + return function(n, a) { + var r = e.getRule(a) || t && t.getRule(a); + return r ? (r = r).selector : a + } + } - function hk(e) { - return { - type: $v, - participant: e - } - } + function t(e, t) { + for (var n = t.split(Zk), a = e.split(Zk), r = "", i = 0; i < n.length; i++) + for (var o = n[i], s = 0; s < a.length; s++) { + var l = a[s]; + r && (r += ", "), r += -1 !== l.indexOf("&") ? l.replace(Qk, o) : o + " " + l + } + return r + } - function mk(e) { - const { - participantId: t - } = e["features/large-video"]; - return Fh(e, t) - } - const fk = "SCREEN_SHARE_REMOTE_PARTICIPANTS_UPDATED", - gk = "SET_TILE_VIEW", - bk = 500, - yk = ["onAbort", "onCanPlay", "onCanPlayThrough", "onEmptied", "onEnded", "onError", "onLoadedData", "onLoadedMetadata", "onLoadStart", "onPause", "onPlay", "onPlaying", "onRateChange", "onStalled", "onSuspend", "onWaiting"], - vk = 0, - kk = 3, - _k = ["display-video", "display-avatar-only", "display-name-on-black", "display-name-on-video", "display-avatar-with-name"], - wk = "Video", - Sk = "shared-video", - Ek = { + function n(e, t, n) { + if (n) return z({}, n, { + index: n.index + 1 + }); + var a = e.options.nestingLevel; + a = void 0 === a ? 1 : a + 1; + var r = z({}, e.options, { + nestingLevel: a, + index: t.indexOf(e) + 1 + }); + return delete r.name, r + } + return { + onProcessStyle: function(a, r, i) { + if ("style" !== r.type) return a; + var o, s, l = r, + c = l.options.parent; + for (var u in a) { + var d = -1 !== u.indexOf("&"), + p = "@" === u[0]; + if (d || p) { + if (o = n(l, c, o), d) { + var h = t(u, l.selector); + s || (s = e(c, i)), h = h.replace(Xk, s), c.addRule(h, a[u], z({}, o, { + selector: h + })) + } else p && c.addRule(u, {}, o).addRule(l.key, a[u], { + selector: l.selector + }); + delete a[u] + } + } + return a + } + } + }(), { + onProcessStyle: function(e) { + if (Array.isArray(e)) { + for (var t = 0; t < e.length; t++) e[t] = i_(e[t]); + return e + } + return i_(e) + }, + onChangeValue: function(e, t, n) { + if (0 === t.indexOf("--")) return e; + var a = r_(t); + return t === a ? e : (n.prop(a, e), null) + } + }, function(e) { + void 0 === e && (e = {}); + var t = c_(e); + return { + onProcessStyle: function(e, n) { + if ("style" !== n.type) return e; + for (var a in e) e[a] = d_(a, e[a], t); + return e + }, + onChangeValue: function(e, n) { + return d_(n, e, t) + } + } + }(), "undefined" == typeof window ? null : function() { + function e(t) { + for (var n in t) { + var a = t[n]; + if ("fallbacks" === n && Array.isArray(a)) t[n] = a.map(e); + else { + var r = !1, + i = nw(n); + i && i !== n && (r = !0); + var o = !1, + s = lw(i, Pv(a)); + s && s !== a && (o = !0), (r || o) && (r && delete t[n], t[i || n] = s || a) + } + } + return t + } + return { + onProcessRule: function(e) { + if ("keyframes" === e.type) { + var t = e; + t.at = function(e) { + return "-" === e[1] || "ms" === k_ ? e : "@" + __ + "keyframes" + e.substr(10) + }(t.at) + } + }, + onProcessStyle: function(t, n) { + return "style" !== n.type ? t : e(t) + }, + onChangeValue: function(e, t) { + return lw(t, Pv(e)) || e + } + } + }(), (cw = function(e, t) { + return e.length === t.length ? e > t ? 1 : -1 : e.length - t.length + }, { + onProcessStyle: function(e, t) { + if ("style" !== t.type) return e; + for (var n = {}, a = Object.keys(e).sort(cw), r = 0; r < a.length; r++) n[a[r]] = e[a[r]]; + return n + } + })] + }), + dw = function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = e.disableGlobal, + n = void 0 !== t && t, + a = e.productionPrefix, + r = void 0 === a ? "jss" : a, + i = e.seed, + o = void 0 === i ? "" : i, + s = "" === o ? "" : "".concat(o, "-"), + l = 0, + c = function() { + return l += 1 + }; + return function(e, t) { + var a = t.options.name; + if (a && 0 === a.indexOf("Mui") && !t.options.link && !n) { + if (-1 !== Bk.indexOf(e.key)) return "Mui-".concat(e.key); + var i = "".concat(s).concat(a, "-").concat(e.key); + return t.options.theme[qk] && "" === o ? "".concat(i, "-").concat(c()) : i + } + return "".concat(s).concat(r).concat(c()) + } + }(), + pw = { + disableGeneration: !1, + generateClassName: dw, + jss: uw, + sheetsCache: null, + sheetsManager: new Map, + sheetsRegistry: null + }, + hw = C().createContext(pw), + mw = -1e9; + + function fw() { + return mw += 1 + } + + function gw(e) { + return e && "object" === yr(e) && e.constructor === Object + } + + function bw(e, t) { + var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : { + clone: !0 + }, + a = n.clone ? z({}, e) : e; + return gw(e) && gw(t) && Object.keys(t).forEach((function(r) { + "__proto__" !== r && (gw(t[r]) && r in e ? a[r] = bw(e[r], t[r], n) : a[r] = t[r]) + })), a + } + + function yw(e) { + var t = "function" == typeof e; + return { + create: function(n, a) { + var r; + try { + r = t ? e(n) : e + } catch (e) { + throw e + } + if (!a || !n.overrides || !n.overrides[a]) return r; + var i = n.overrides[a], + o = z({}, r); + return Object.keys(i).forEach((function(e) { + o[e] = bw(o[e], i[e]) + })), o + }, + options: {} + } + } + const vw = {}; + + function kw(e, t, n) { + var a = e.state; + if (e.stylesOptions.disableGeneration) return t || {}; + a.cacheClasses || (a.cacheClasses = { + value: null, + lastProp: null, + lastJSS: {} + }); + var r = !1; + return a.classes !== a.cacheClasses.lastJSS && (a.cacheClasses.lastJSS = a.classes, r = !0), t !== a.cacheClasses.lastProp && (a.cacheClasses.lastProp = t, r = !0), r && (a.cacheClasses.value = Nk({ + baseClasses: a.cacheClasses.lastJSS, + newClasses: t, + Component: n + })), a.cacheClasses.value + } + + function _w(e, t) { + var n = e.state, + a = e.theme, + r = e.stylesOptions, + i = e.stylesCreator, + o = e.name; + if (!r.disableGeneration) { + var s = zk.get(r.sheetsManager, i, a); + s || (s = { + refs: 0, + staticSheet: null, + dynamicStyles: null + }, zk.set(r.sheetsManager, i, a, s)); + var l = z({}, i.options, r, { + theme: a, + flip: "boolean" == typeof r.flip ? r.flip : "rtl" === a.direction + }); + l.generateId = l.serverGenerateClassName || l.generateClassName; + var c = r.sheetsRegistry; + if (0 === s.refs) { + var u; + r.sheetsCache && (u = zk.get(r.sheetsCache, i, a)); + var d = i.create(a, o); + u || ((u = r.jss.createStyleSheet(d, z({ + link: !1 + }, l))).attach(), r.sheetsCache && zk.set(r.sheetsCache, i, a, u)), c && c.add(u), s.staticSheet = u, s.dynamicStyles = Mk(d) + } + if (s.dynamicStyles) { + var p = r.jss.createStyleSheet(s.dynamicStyles, z({ + link: !0 + }, l)); + p.update(t), p.attach(), n.dynamicSheet = p, n.classes = Nk({ + baseClasses: s.staticSheet.classes, + newClasses: p.classes + }), c && c.add(p) + } else n.classes = s.staticSheet.classes; + s.refs += 1 + } + } + + function ww(e, t) { + var n = e.state; + n.dynamicSheet && n.dynamicSheet.update(t) + } + + function Sw(e) { + var t = e.state, + n = e.theme, + a = e.stylesOptions, + r = e.stylesCreator; + if (!a.disableGeneration) { + var i = zk.get(a.sheetsManager, r, n); + i.refs -= 1; + var o = a.sheetsRegistry; + 0 === i.refs && (zk.delete(a.sheetsManager, r, n), a.jss.removeStyleSheet(i.staticSheet), o && o.remove(i.staticSheet)), t.dynamicSheet && (a.jss.removeStyleSheet(t.dynamicSheet), o && o.remove(t.dynamicSheet)) + } + } + + function Ew(e, t) { + var n, a = C().useRef([]), + r = C().useMemo((function() { + return {} + }), t); + a.current !== r && (a.current = r, n = e()), C().useEffect((function() { + return function() { + n && n() + } + }), [r]) + } + + function xw(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = t.name, + a = t.classNamePrefix, + r = t.Component, + i = t.defaultTheme, + o = void 0 === i ? vw : i, + s = Yg(t, ["name", "classNamePrefix", "Component", "defaultTheme"]), + l = yw(e), + c = n || a || "makeStyles"; + l.options = { + index: fw(), + name: n, + meta: c, + classNamePrefix: c + }; + var u = function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = Fk() || o, + a = z({}, C().useContext(hw), s), + i = C().useRef(), + c = C().useRef(); + Ew((function() { + var r = { + name: n, + state: {}, + stylesCreator: l, + stylesOptions: a, + theme: t + }; + return _w(r, e), c.current = !1, i.current = r, + function() { + Sw(r) + } + }), [t, l]), C().useEffect((function() { + c.current && ww(i.current, e), c.current = !0 + })); + var u = kw(i.current, e.classes, r); + return u + }; + return u + } + + function Cw(e) { + var t = e.theme, + n = e.name, + a = e.props; + if (!t || !t.props || !t.props[n]) return a; + var r, i = t.props[n]; + for (r in i) void 0 === a[r] && (a[r] = i[r]); + return a + } + const Aw = function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return function(n) { + var a = t.defaultTheme, + r = t.withTheme, + i = void 0 !== r && r, + o = t.name, + s = Yg(t, ["defaultTheme", "withTheme", "name"]), + l = o, + c = xw(e, z({ + defaultTheme: a, + Component: n, + name: o || n.displayName, + classNamePrefix: l + }, s)), + u = C().forwardRef((function(e, t) { + e.classes; + var r, s = e.innerRef, + l = Yg(e, ["classes", "innerRef"]), + u = c(z({}, n.defaultProps, e)), + d = l; + return ("string" == typeof o || i) && (r = Fk() || a, o && (d = Cw({ + theme: r, + name: o, + props: l + })), i && !d.theme && (d.theme = r)), C().createElement(n, z({ + ref: s || t, + classes: u + }, d)) + })); + return Sv()(u, n), u + } + }; + var Tw = n(4981); + + function Dw(e) { + const t = Fe(e), + { + enabled: n, + notifications: a + } = t["features/notifications"]; + return n && a.length > 0 + } + + function Pw() { + var e; + return Boolean("undefined" != typeof interfaceConfig && (null === (e = interfaceConfig) || void 0 === e ? void 0 : e.DISABLE_JOIN_LEAVE_NOTIFICATIONS)) + } + + function jw(e, t) { + const n = Fe(t), + { + notifications: a + } = n["features/notifications"]; + return Boolean(a.find((t => t.uid === um[e]))) + } + + function Mw() { + return Mw = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, Mw.apply(this, arguments) + } + class Iw extends x.Component { + constructor(e) { + super(e), this._timeouts = new Map, this._onDismissed = this._onDismissed.bind(this), this._api = { + onDismissed: this._onDismissed, + dismissAllowed: () => !0 + } + } + componentDidMount() { + this._updateTimeouts() + } + componentDidUpdate() { + this._updateTimeouts() + } + render() { + return this.props._iAmSipGateway ? null : C().createElement(_v, { + mode: "light" + }, C().createElement(Yy.Provider, { + value: this._api + }, C().createElement("div", { + className: `${this.props.classes.container} ${this.props.portal?this.props.classes.containerPortal:this.props._isChatOpen?this.props.classes.containerChatOpen:""}`, + id: "notifications-container" + }, C().createElement(Tw.TransitionGroup, { + className: this.props.classes.transitionGroup + }, this._renderFlags())))) + } + _onDismissed(e) { + const t = this._timeouts.get(e); + t && (clearTimeout(t), this._timeouts.delete(e)), this.props.dispatch(Xf(e)) + } + _renderFlags() { + const { + _notifications: e + } = this.props; + return e.map((e => { + const { + props: t, + uid: n + } = e; + return C().createElement(Tw.CSSTransition, { + appear: !0, + classNames: "notification", + in: !0, + key: n, + timeout: 200 + }, C().createElement(hv, Mw({}, t, { + id: n, + onDismissed: this._onDismissed, + uid: n + }))) + })) + } + _updateTimeouts() { + const { + _notifications: e + } = this.props; + for (const t of e) + if (t.timeout && !1 !== t.props.isDismissAllowed && !this._timeouts.has(t.uid)) { + const { + timeout: e, + uid: n + } = t, a = setTimeout((() => { + this._onDismissed(n) + }), e); + this._timeouts.set(n, a) + } + } + } + const Ow = Ei(Ne((function(e) { + const { + notifications: t + } = e["features/notifications"], { + iAmSipGateway: n + } = e["features/base/config"], { + isOpen: a + } = e["features/chat"], r = Dw(e); + return { + _iAmSipGateway: Boolean(n), + _isChatOpen: a, + _notifications: r ? t : [] + } + }))(Aw((e => ({ + container: { + position: "absolute", + left: "16px", + bottom: "90px", + width: "400px", + maxWidth: "100%", + zIndex: 600 + }, + containerPortal: { + maxWidth: "calc(100% - 32px)" + }, + containerChatOpen: { + left: "331px" + }, + transitionGroup: { + "& > *": { + marginBottom: "20px", + borderRadius: "6px!important", + position: "relative" + }, + "& div > span > svg > path": { + fill: "inherit" + }, + "& div > span, & div > p": { + color: e.palette.field01 + }, + "& .ribbon": { + width: "4px", + height: "calc(100% - 16px)", + position: "absolute", + left: 0, + top: "8px", + borderRadius: "4px", + "&.normal": { + backgroundColor: e.palette.link01Active + }, + "&.error": { + backgroundColor: e.palette.iconError + }, + "&.warning": { + backgroundColor: e.palette.warning01 + } + } + } + })))(Iw))), + Nw = "DOMINANT_SPEAKER_CHANGED", + Rw = "GRANT_MODERATOR", + zw = "KICK_PARTICIPANT", + Lw = "MUTE_REMOTE_PARTICIPANT", + Fw = "PARTICIPANT_ID_CHANGED", + qw = "PARTICIPANT_JOINED", + Bw = "PARTICIPANT_KICKED", + Uw = "PARTICIPANT_LEFT", + Hw = "PARTICIPANT_UPDATED", + Vw = "PIN_PARTICIPANT", + Ww = "HIDDEN_PARTICIPANT_JOINED", + Yw = "HIDDEN_PARTICIPANT_LEFT", + Gw = "SET_LOADABLE_AVATAR_URL", + Kw = "LOCAL_PARTICIPANT_RAISE_HAND", + $w = "RAISE_HAND_UPDATED", + Jw = $e("features/base/participants"); + + function Zw(e, t, n) { + return { + type: Nw, + participant: { + conference: n, + id: e, + previousSpeakers: t + } + } + } + + function Qw(e) { + return { + type: zw, + id: e + } + } + + function Xw(e) { + return (t, n) => { + const a = Uh(n); + if (a) return t(tS(a.id, e)) + } + } + + function eS(e) { + return (t, n) => { + const a = Uh(n); + if (a) return t({ + type: Fw, + conference: void 0, + newValue: e, + oldValue: a.id + }) + } + } + + function tS(e, t) { + return { + type: Hw, + participant: { + connectionStatus: t, + id: e + } + } + } + + function nS(e) { + if (e.local) return { + type: qw, + participant: e + }; + const { + conference: t + } = e; + if (!t) throw Error("A remote participant must be associated with a JitsiConference!"); + return (n, a) => { + const r = a()["features/base/conference"]; + if (t === r.conference || t === r.joining) return n({ + type: qw, + participant: e + }) + } + } + + function aS(e) { + return (t, n) => { + if (!e) return; + const a = e.getId(); + e.getFeatures().then((e => { + const r = e.has("http://jitsi.org/meet/remotecontrol"), + i = Vh(n(), a); + if (i && !i.local) return (null == i ? void 0 : i.supportsRemoteControl) !== r ? t({ + type: Hw, + participant: { + id: a, + supportsRemoteControl: r + } + }) : void 0 + })).catch((e => { + Jw.error(`Failed to get participant features for ${a}!`, e) + })) + } + } + + function rS(e, t, n) { + return { + type: Uw, + participant: { + conference: t, + id: e, + isReplaced: n + } + } + } + + function iS(e, t) { + return sS({ + id: e, + presence: t + }) + } + + function oS(e, t) { + return sS({ + id: e, + role: t + }) + } + + function sS() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const t = { + ...e + }; + return e.name && (t.name = Hh(e.name)), { + type: Hw, + participant: t + } + } + + function lS(e, t) { + return (n, a) => { + e && n(tg({ + titleKey: t.isAudioTrack() ? "notify.mutedRemotelyTitle" : "notify.videoMutedRemotelyTitle", + titleArguments: { + participantDisplayName: Kh(a, e.getId()) + } + }, Yf.LONG)) + } + } + + function cS(e, t) { + return (n, a) => { + n({ + type: Bw, + kicked: t.getId(), + kicker: null == e ? void 0 : e.getId() + }), t.isReplaced && t.isReplaced() || n(tg({ + titleArguments: { + kicked: Kh(a, t.getId()), + kicker: Kh(a, e.getId()) + }, + titleKey: "notify.kickParticipant" + }, Yf.MEDIUM)) + } + } + + function uS(e) { + return { + type: Vw, + participant: { + id: e + } + } + } + + function dS(e) { + return { + type: Kw, + raisedHandTimestamp: e ? Date.now() : 0 + } + } + + function pS(e) { + return { + type: $w, + participant: e + } + } + + function hS(e) { + const { + participantId: t + } = e["features/large-video"]; + return Vh(e, t) + } + const mS = "SCREEN_SHARE_REMOTE_PARTICIPANTS_UPDATED", + fS = "SET_TILE_VIEW", + gS = 500, + bS = ["onAbort", "onCanPlay", "onCanPlayThrough", "onEmptied", "onEnded", "onError", "onLoadedData", "onLoadedMetadata", "onLoadStart", "onPause", "onPlay", "onPlaying", "onRateChange", "onStalled", "onSuspend", "onWaiting"], + yS = 0, + vS = 3, + kS = ["display-video", "display-avatar-only", "display-name-on-black", "display-name-on-video", "display-avatar-with-name"], + _S = "SET_FILMSTRIP_ENABLED", + wS = "SET_FILMSTRIP_VISIBLE", + SS = "SET_TILE_VIEW_DIMENSIONS", + ES = "SET_HORIZONTAL_VIEW_DIMENSIONS", + xS = "SET_REMOTE_PARTICIPANTS", + CS = "SET_VERTICAL_VIEW_DIMENSIONS", + AS = "SET_VOLUME", + TS = "SET_VISIBLE_REMOTE_PARTICIPANTS"; + + function DS(e) { + return Fe(e)["features/filmstrip"].visible + } + + function PS(e, t) { + var n; + const a = Fe(e), + r = a["features/base/tracks"], + i = t ? Vh(a, t) : Uh(a), + o = null === (n = null == i ? void 0 : i.local) || void 0 === n || n, + { + connectionStatus: s + } = i || {}, + l = o ? nh(r) : oh(r, Bi, t), + c = Boolean(a["features/base/audio-only"].enabled); + let u = !1; + if (o) { + const e = ch(r, Bi); + u = Boolean(l) && !e && !c + } else if (null == i || !i.isFakeParticipant) { + const e = dh(r, Bi, t); + u = Boolean(l) && !e && !c && s === vt.ACTIVE + } + return u + } + + function jS(e) { + const { + isAudioOnly: t, + isCurrentlyOnLargeVideo: n, + isScreenSharing: a, + canPlayEventReceived: r, + isHovered: i, + isRemoteParticipant: o, + tileViewActive: s + } = e, l = e.isVideoPlayable && (!o || r); + return !s && a && o ? i ? 4 : 1 : n && !s ? l && !t ? 2 : 4 : l && !t ? i ? vS : yS : i ? 4 : 1 + } + + function MS(e) { + return { + type: wS, + visible: e + } + } + + function IS(e) { + return { + type: xS, + participants: e + } + } + + function OS(e, t) { + return { + type: TS, + startIndex: e, + endIndex: t + } + } + + function NS(e) { + return (t, n) => { + const a = n(), + { + clientHeight: r, + clientWidth: i + } = a["features/base/responsive-ui"], + { + disableResponsiveTiles: o + } = a["features/base/config"], + { + height: s, + width: l + } = function(e) { + let { + columns: t, + minVisibleRows: n, + rows: a, + clientWidth: r, + clientHeight: i, + disableResponsiveTiles: o + } = e, s = 1.7777777777777777; + !o && r < gS && (s = 1); + const l = r - 4 * t, + c = l / t, + u = (i - 4 * n) / n, + d = c / s, + p = i / a - 4, + h = (l - 7) / t; + let m = Math.floor(Math.min(d, u)), + f = Math.floor(s * m); + if (m > p && f > h) { + const e = h / s; + m = Math.floor(Math.max(Math.min(e, u), p)), f = Math.floor(s * m) + } + return { + height: u, + width: c + } + }({ + ...e, + clientWidth: i, + clientHeight: r, + disableResponsiveTiles: o + }), + { + columns: c, + rows: u + } = e, + d = u * (4 + s), + p = c * (4 + l) + (r < d ? 7 : 0), + h = Math.min(r, d); + t({ + type: SS, + dimensions: { + gridDimensions: e, + thumbnailSize: { + height: s, + width: l + }, + filmstripHeight: h, + filmstripWidth: p + } + }) + } + } + + function RS() { + return (e, t) => { + var n, a; + const r = t(), + { + clientHeight: i = 0, + clientWidth: o = 0 + } = r["features/base/responsive-ui"], + s = qS(r), + l = function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + const t = 25, + n = Math.min(Math.max(e - t, 0), interfaceConfig.FILM_STRIP_MAX_HEIGHT || 120); + return { + local: { + height: Math.floor(n / interfaceConfig.LOCAL_THUMBNAIL_RATIO), + width: n + }, + remote: { + height: Math.floor(n / interfaceConfig.REMOTE_THUMBNAIL_RATIO), + width: n + } + } + }(o); + e({ + type: CS, + dimensions: { + ...l, + remoteVideosContainer: { + width: (null == l || null === (n = l.local) || void 0 === n ? void 0 : n.width) + 4 + 4 + 7, + height: i - (s ? 0 : null == l || null === (a = l.local) || void 0 === a ? void 0 : a.height) - 60 + } + } + }) + } + } + + function zS() { + return (e, t) => { + var n, a; + const r = t(), + { + clientHeight: i = 0, + clientWidth: o = 0 + } = r["features/base/responsive-ui"], + s = qS(r), + l = function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + const t = 15, + n = Math.min(e, (interfaceConfig.FILM_STRIP_MAX_HEIGHT || 120) + t) - t; + return { + local: { + height: n, + width: Math.floor(interfaceConfig.LOCAL_THUMBNAIL_RATIO * n) + }, + remote: { + height: n, + width: Math.floor(interfaceConfig.REMOTE_THUMBNAIL_RATIO * n) + } + } + }(i); + e({ + type: ES, + dimensions: { + ...l, + remoteVideosContainer: { + width: o - (s ? 0 : null == l || null === (n = l.local) || void 0 === n ? void 0 : n.width) - 39, + height: (null == l || null === (a = l.local) || void 0 === a ? void 0 : a.height) + 4 + 4 + 7 + } + } + }) + } + } + + function LS(e, t) { + return { + type: AS, + participantId: e, + volume: t + } + } + + function FS(e, t) { + var n; + const a = e.getState(), + { + testing: r = {} + } = a["features/base/config"]; + let i = []; + if (null !== (n = r.enableThumbnailReordering) && void 0 !== n && !n) { + if (t) { + const { + remoteParticipants: n + } = a["features/filmstrip"]; + i = [...n, t], e.dispatch(IS(i)) + } + return + } + const { + fakeParticipants: o, + sortedRemoteParticipants: s, + sortedRemoteScreenshares: l, + speakersList: c + } = a["features/base/participants"], u = new Map(s), d = new Map(l), p = o ? Array.from(o.keys()) : [], h = new Map(c); + for (const e of d.keys()) u.delete(e), h.delete(e); + for (const e of p) u.delete(e), h.delete(e); + for (const e of h.keys()) u.delete(e); + i = [...Array.from(d.keys()), ...p, ...Array.from(h.keys()), ...Array.from(u.keys())], e.dispatch(IS(i)) + } + + function qS(e) { + const { + disableSelfView: t + } = e["features/base/settings"]; + return 1 !== Yh(e) && t + } + const BS = "Video", + US = "shared-video", + HS = { PLAYING: "playing", PAUSED: "pause", STOPPED: "stop" }; - function xk(e) { + function VS(e) { return ["playing", "pause", "start"].includes(e) } - const Ck = "horizontal-filmstrip-view", - Ak = "tile-view", - jk = "vertical-filmstrip-view"; - function Pk() { + function WS(e) { + let t = !1; + for (const [n, a] of function(e) { + return Fe(e)["features/base/participants"].fakeParticipants + }(e)) + if (a.name === BS || "YouTube" === a.name) { + t = !0; + break + } return t + } + const YS = "horizontal-filmstrip-view", + GS = "tile-view", + KS = "vertical-filmstrip-view"; + + function $S() { return "object" == typeof interfaceConfig ? interfaceConfig.AUTO_PIN_LATEST_SCREEN_SHARE : "remote-only" } - function Dk(e) { - return Ok(e) ? Ak : interfaceConfig.VERTICAL_FILMSTRIP ? jk : Ck + function JS(e) { + return QS(e) ? GS : interfaceConfig.VERTICAL_FILMSTRIP ? KS : YS } - function Tk(e) { + function ZS(e) { const t = function(e) { const t = ("undefined" == typeof interfaceConfig ? 5 : interfaceConfig.TILE_VIEW_MAX_COLUMNS) || 5, { @@ -11437,7 +13499,7 @@ const { clientWidth: n } = e["features/base/responsive-ui"]; - if (2 === Bh(e) && n < bk) return Math.min(1, Math.max(t, 1)); + if (2 === Yh(e) && n < gS) return Math.min(1, Math.max(t, 1)); if (n < 300) return Math.min(1, Math.max(t, 1)); if (n < 1e3) return Math.min(2, Math.max(t, 1)) } @@ -11446,78 +13508,72 @@ { iAmRecorder: n } = e["features/base/config"], - a = Uh(e) - (n ? 1 : 0), - r = Math.ceil(Math.sqrt(a)), - i = Math.min(r, t), - o = Math.ceil(a / i); + a = qS(e), + r = Gh(e) - (n ? 1 : 0) - (a ? 1 : 0), + i = Math.ceil(Math.sqrt(r)), + o = Math.min(i, t), + s = Math.ceil(r / o); return { - columns: i, - minVisibleRows: Math.min(t, o), - rows: o + columns: o, + minVisibleRows: Math.min(t, s), + rows: s } } - function Ok(e = {}) { - var t; - const n = Bh(e), - a = Df(e, Wa, !0), + function QS() { + var e; + let t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const n = Yh(t), + a = qf(t, Ha, !0), { disableTileView: r - } = e["features/base/config"]; + } = t["features/base/config"]; if (r || !a) return !1; const { tileViewEnabled: i - } = e["features/video-layout"]; + } = t["features/video-layout"]; if (void 0 !== i) return i; const { iAmRecorder: o - } = e["features/base/config"]; - return !Boolean((null === (t = e["features/etherpad"]) || void 0 === t ? void 0 : t.editing) || Yh(e) || n < 3 || function(e) { - let t = !1; - for (const [n, a] of function(e) { - return qe(e)["features/base/participants"].fakeParticipants - }(e)) - if (a.name === wk || "YouTube" === a.name) { - t = !0; - break - } return t - }(e) || o) + } = t["features/base/config"], s = Boolean((null === (e = t["features/etherpad"]) || void 0 === e ? void 0 : e.editing) || Zh(t) || n < 3 || WS(t) || o); + return !s } - function Mk(e, { - dispatch: t, - getState: n - }) { - const a = n()["features/video-layout"].remoteScreenShares, - r = Yh(n); - if (null == r ? void 0 : r.isFakeParticipant) return; - if (!(null == a ? void 0 : a.length)) { - let n = null; - return r && !e.find((e => e === r.id)) && (n = r.id), void t(dk(n)) + function XS(e, t) { + let { + dispatch: n, + getState: a + } = t; + const r = a()["features/video-layout"].remoteScreenShares, + i = Zh(a); + if (null != i && i.isFakeParticipant) return; + if (null == r || !r.length) { + let t = null; + return i && !e.find((e => e === i.id)) && (t = i.id), void n(uS(t)) } - const i = a[a.length - 1]; - i && t(dk(i)) + const o = r[r.length - 1]; + o && n(uS(o)) } - function Ik(e) { - return Dk(e) === Ak + function eE(e) { + return JS(e) === GS } - function Nk(e) { + function tE(e) { return { - type: gk, + type: fS, enabled: e } } - function zk() { + function nE() { return (e, t) => { - e(Nk(!Ok(t()))) + e(tE(!QS(t()))) } } - var Rk = n(412); + var aE = n(412); - function Lk(e, t) { + function rE(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -11528,17 +13584,17 @@ return n } - function Fk(e) { + function iE(e) { var t = e.fn, n = e.action, a = e.componentName, r = e.packageName, i = e.packageVersion, o = e.analyticsData, - s = cb().createAnalyticsEvent, - l = ub(o), - c = ub(t), - u = (0, E.useCallback)((function() { + s = lb().createAnalyticsEvent, + l = cb(o), + c = cb(t), + u = (0, x.useCallback)((function() { var e = s({ action: n, actionSubject: a, @@ -11551,9 +13607,9 @@ t = function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? Lk(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Lk(Object(n)).forEach((function(t) { + t % 2 ? rE(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : rE(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } @@ -11569,47 +13625,47 @@ }), [n, a, r, i, s, l, c]); return u } - var qk = E.createContext(), - Bk = E.createContext(); + var oE = x.createContext(), + sE = x.createContext(); - function Uk(e) { + function lE(e) { var t = e.children, - n = E.useState(null), + n = x.useState(null), a = n[0], r = n[1]; - return E.useEffect((function() { + return x.useEffect((function() { return function() { r(null) } - }), [r]), E.createElement(qk.Provider, { + }), [r]), x.createElement(oE.Provider, { value: a - }, E.createElement(Bk.Provider, { + }, x.createElement(sE.Provider, { value: r }, t)) } - var Hk = function(e) { + var cE = function(e) { return Array.isArray(e) ? e[0] : e }, - Vk = function(e) { + uE = function(e) { if ("function" == typeof e) { for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), a = 1; a < t; a++) n[a - 1] = arguments[a]; return e.apply(void 0, n) } }, - Wk = function(e, t) { - if ("function" == typeof e) return Vk(e, t); + dE = function(e, t) { + if ("function" == typeof e) return uE(e, t); null != e && (e.current = t) }, - Yk = function(e) { + pE = function(e) { return e.reduce((function(e, t) { var n = t[0], a = t[1]; return e[n] = a, e }), {}) }, - Gk = "undefined" != typeof window && window.document && window.document.createElement ? E.useLayoutEffect : E.useEffect; + hE = "undefined" != typeof window && window.document && window.document.createElement ? x.useLayoutEffect : x.useEffect; - function Kk(e) { + function mE(e) { var t = e.getBoundingClientRect(); return { width: t.width, @@ -11623,7 +13679,7 @@ } } - function $k(e) { + function fE(e) { if ("[object Window]" !== e.toString()) { var t = e.ownerDocument; return t && t.defaultView || window @@ -11631,51 +13687,51 @@ return e } - function Jk(e) { - var t = $k(e); + function gE(e) { + var t = fE(e); return { scrollLeft: t.pageXOffset, scrollTop: t.pageYOffset } } - function Zk(e) { - return e instanceof $k(e).Element || e instanceof Element + function bE(e) { + return e instanceof fE(e).Element || e instanceof Element } - function Qk(e) { - return e instanceof $k(e).HTMLElement || e instanceof HTMLElement + function yE(e) { + return e instanceof fE(e).HTMLElement || e instanceof HTMLElement } - function Xk(e) { + function vE(e) { return e ? (e.nodeName || "").toLowerCase() : null } - function e_(e) { - return ((Zk(e) ? e.ownerDocument : e.document) || window.document).documentElement + function kE(e) { + return ((bE(e) ? e.ownerDocument : e.document) || window.document).documentElement } - function t_(e) { - return Kk(e_(e)).left + Jk(e).scrollLeft + function _E(e) { + return mE(kE(e)).left + gE(e).scrollLeft } - function n_(e) { - return $k(e).getComputedStyle(e) + function wE(e) { + return fE(e).getComputedStyle(e) } - function a_(e) { - var t = n_(e), + function SE(e) { + var t = wE(e), n = t.overflow, a = t.overflowX, r = t.overflowY; return /auto|scroll|overlay|hidden/.test(n + r + a) } - function r_(e, t, n) { + function EE(e, t, n) { void 0 === n && (n = !1); - var a, r, i = e_(t), - o = Kk(e), - s = Qk(t), + var a, r, i = kE(t), + o = mE(e), + s = yE(t), l = { scrollLeft: 0, scrollTop: 0 @@ -11684,10 +13740,10 @@ x: 0, y: 0 }; - return (s || !s && !n) && (("body" !== Xk(t) || a_(i)) && (l = (a = t) !== $k(a) && Qk(a) ? { + return (s || !s && !n) && (("body" !== vE(t) || SE(i)) && (l = (a = t) !== fE(a) && yE(a) ? { scrollLeft: (r = a).scrollLeft, scrollTop: r.scrollTop - } : Jk(a)), Qk(t) ? ((c = Kk(t)).x += t.clientLeft, c.y += t.clientTop) : i && (c.x = t_(i))), { + } : gE(a)), yE(t) ? ((c = mE(t)).x += t.clientLeft, c.y += t.clientTop) : i && (c.x = _E(i))), { x: o.left + l.scrollLeft - c.x, y: o.top + l.scrollTop - c.y, width: o.width, @@ -11695,7 +13751,7 @@ } } - function i_(e) { + function xE(e) { return { x: e.offsetLeft, y: e.offsetTop, @@ -11704,68 +13760,68 @@ } } - function o_(e) { - return "html" === Xk(e) ? e : e.assignedSlot || e.parentNode || e.host || e_(e) + function CE(e) { + return "html" === vE(e) ? e : e.assignedSlot || e.parentNode || e.host || kE(e) } - function s_(e) { - return ["html", "body", "#document"].indexOf(Xk(e)) >= 0 ? e.ownerDocument.body : Qk(e) && a_(e) ? e : s_(o_(e)) + function AE(e) { + return ["html", "body", "#document"].indexOf(vE(e)) >= 0 ? e.ownerDocument.body : yE(e) && SE(e) ? e : AE(CE(e)) } - function l_(e, t) { + function TE(e, t) { void 0 === t && (t = []); - var n = s_(e), - a = "body" === Xk(n), - r = $k(n), - i = a ? [r].concat(r.visualViewport || [], a_(n) ? n : []) : n, + var n = AE(e), + a = "body" === vE(n), + r = fE(n), + i = a ? [r].concat(r.visualViewport || [], SE(n) ? n : []) : n, o = t.concat(i); - return a ? o : o.concat(l_(o_(i))) + return a ? o : o.concat(TE(CE(i))) } - function c_(e) { - return ["table", "td", "th"].indexOf(Xk(e)) >= 0 + function DE(e) { + return ["table", "td", "th"].indexOf(vE(e)) >= 0 } - function u_(e) { - if (!Qk(e) || "fixed" === n_(e).position) return null; + function PE(e) { + if (!yE(e) || "fixed" === wE(e).position) return null; var t = e.offsetParent; if (t) { - var n = e_(t); - if ("body" === Xk(t) && "static" === n_(t).position && "static" !== n_(n).position) return n + var n = kE(t); + if ("body" === vE(t) && "static" === wE(t).position && "static" !== wE(n).position) return n } return t } - function d_(e) { - for (var t = $k(e), n = u_(e); n && c_(n) && "static" === n_(n).position;) n = u_(n); - return n && "body" === Xk(n) && "static" === n_(n).position ? t : n || function(e) { - for (var t = o_(e); Qk(t) && ["html", "body"].indexOf(Xk(t)) < 0;) { - var n = n_(t); + function jE(e) { + for (var t = fE(e), n = PE(e); n && DE(n) && "static" === wE(n).position;) n = PE(n); + return n && "body" === vE(n) && "static" === wE(n).position ? t : n || function(e) { + for (var t = CE(e); yE(t) && ["html", "body"].indexOf(vE(t)) < 0;) { + var n = wE(t); if ("none" !== n.transform || "none" !== n.perspective || n.willChange && "auto" !== n.willChange) return t; t = t.parentNode } return null }(e) || t } - var p_ = "top", - h_ = "bottom", - m_ = "right", - f_ = "left", - g_ = "auto", - b_ = [p_, h_, m_, f_], - y_ = "start", - v_ = "end", - k_ = "viewport", - __ = "popper", - w_ = b_.reduce((function(e, t) { - return e.concat([t + "-" + y_, t + "-" + v_]) + var ME = "top", + IE = "bottom", + OE = "right", + NE = "left", + RE = "auto", + zE = [ME, IE, OE, NE], + LE = "start", + FE = "end", + qE = "viewport", + BE = "popper", + UE = zE.reduce((function(e, t) { + return e.concat([t + "-" + LE, t + "-" + FE]) }), []), - S_ = [].concat(b_, [g_]).reduce((function(e, t) { - return e.concat([t, t + "-" + y_, t + "-" + v_]) + HE = [].concat(zE, [RE]).reduce((function(e, t) { + return e.concat([t, t + "-" + LE, t + "-" + FE]) }), []), - E_ = ["beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite"]; + VE = ["beforeRead", "read", "afterRead", "beforeMain", "main", "afterMain", "beforeWrite", "write", "afterWrite"]; - function x_(e) { + function WE(e) { var t = new Map, n = new Set, a = []; @@ -11784,32 +13840,32 @@ n.has(e.name) || r(e) })), a } - var C_ = { + var YE = { placement: "bottom", modifiers: [], strategy: "absolute" }; - function A_() { + function GE() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return !t.some((function(e) { return !(e && "function" == typeof e.getBoundingClientRect) })) } - function j_(e) { + function KE(e) { void 0 === e && (e = {}); var t = e, n = t.defaultModifiers, a = void 0 === n ? [] : n, r = t.defaultOptions, - i = void 0 === r ? C_ : r; + i = void 0 === r ? YE : r; return function(e, t, n) { void 0 === n && (n = i); var r, o, s = { placement: "bottom", orderedModifiers: [], - options: Object.assign(Object.assign({}, C_), i), + options: Object.assign(Object.assign({}, YE), i), modifiersData: {}, elements: { reference: e, @@ -11824,12 +13880,12 @@ state: s, setOptions: function(n) { d(), s.options = Object.assign(Object.assign(Object.assign({}, i), s.options), n), s.scrollParents = { - reference: Zk(e) ? l_(e) : e.contextElement ? l_(e.contextElement) : [], - popper: l_(t) + reference: bE(e) ? TE(e) : e.contextElement ? TE(e.contextElement) : [], + popper: TE(t) }; var r = function(e) { - var t = x_(e); - return E_.reduce((function(e, n) { + var t = WE(e); + return VE.reduce((function(e, n) { return e.concat(t.filter((function(e) { return e.phase === n }))) @@ -11869,10 +13925,10 @@ var e = s.elements, t = e.reference, n = e.popper; - if (A_(t, n)) { + if (GE(t, n)) { s.rects = { - reference: r_(t, d_(n), "fixed" === s.options.strategy), - popper: i_(n) + reference: EE(t, jE(n), "fixed" === s.options.strategy), + popper: xE(n) }, s.reset = !1, s.placement = s.options.placement, s.orderedModifiers.forEach((function(e) { return s.modifiersData[e.name] = Object.assign({}, e.data) })); @@ -11908,7 +13964,7 @@ d(), c = !0 } }; - if (!A_(e, t)) return u; + if (!GE(e, t)) return u; function d() { l.forEach((function(e) { @@ -11920,10 +13976,10 @@ })), u } } - var P_ = { + var $E = { passive: !0 }; - const D_ = { + const JE = { name: "eventListeners", enabled: !0, phase: "write", @@ -11936,60 +13992,60 @@ i = void 0 === r || r, o = a.resize, s = void 0 === o || o, - l = $k(t.elements.popper), + l = fE(t.elements.popper), c = [].concat(t.scrollParents.reference, t.scrollParents.popper); return i && c.forEach((function(e) { - e.addEventListener("scroll", n.update, P_) - })), s && l.addEventListener("resize", n.update, P_), + e.addEventListener("scroll", n.update, $E) + })), s && l.addEventListener("resize", n.update, $E), function() { i && c.forEach((function(e) { - e.removeEventListener("scroll", n.update, P_) - })), s && l.removeEventListener("resize", n.update, P_) + e.removeEventListener("scroll", n.update, $E) + })), s && l.removeEventListener("resize", n.update, $E) } }, data: {} }; - function T_(e) { + function ZE(e) { return e.split("-")[0] } - function O_(e) { + function QE(e) { return e.split("-")[1] } - function M_(e) { + function XE(e) { return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y" } - function I_(e) { + function ex(e) { var t, n = e.reference, a = e.element, r = e.placement, - i = r ? T_(r) : null, - o = r ? O_(r) : null, + i = r ? ZE(r) : null, + o = r ? QE(r) : null, s = n.x + n.width / 2 - a.width / 2, l = n.y + n.height / 2 - a.height / 2; switch (i) { - case p_: + case ME: t = { x: s, y: n.y - a.height }; break; - case h_: + case IE: t = { x: s, y: n.y + n.height }; break; - case m_: + case OE: t = { x: n.x + n.width, y: l }; break; - case f_: + case NE: t = { x: n.x - a.width, y: l @@ -12001,27 +14057,27 @@ y: n.y } } - var c = i ? M_(i) : null; + var c = i ? XE(i) : null; if (null != c) { var u = "y" === c ? "height" : "width"; switch (o) { - case y_: + case LE: t[c] = t[c] - (n[u] / 2 - a[u] / 2); break; - case v_: + case FE: t[c] = t[c] + (n[u] / 2 - a[u] / 2) } } return t } - const N_ = { + const tx = { name: "popperOffsets", enabled: !0, phase: "read", fn: function(e) { var t = e.state, n = e.name; - t.modifiersData[n] = I_({ + t.modifiersData[n] = ex({ reference: t.rects.reference, element: t.rects.popper, strategy: "absolute", @@ -12030,14 +14086,14 @@ }, data: {} }; - var z_ = { + var nx = { top: "auto", right: "auto", bottom: "auto", left: "auto" }; - function R_(e) { + function ax(e) { var t, n = e.popper, a = e.popperRect, r = e.placement, @@ -12060,19 +14116,19 @@ h = void 0 === p ? 0 : p, m = i.hasOwnProperty("x"), f = i.hasOwnProperty("y"), - g = f_, - b = p_, + g = NE, + b = ME, y = window; if (l) { - var v = d_(n); - v === $k(n) && (v = e_(n)), r === p_ && (b = h_, h -= v.clientHeight - a.height, h *= s ? 1 : -1), r === f_ && (g = m_, d -= v.clientWidth - a.width, d *= s ? 1 : -1) + var v = jE(n); + v === fE(n) && (v = kE(n)), r === ME && (b = IE, h -= v.clientHeight - a.height, h *= s ? 1 : -1), r === NE && (g = OE, d -= v.clientWidth - a.width, d *= s ? 1 : -1) } var k, _ = Object.assign({ position: o - }, l && z_); + }, l && nx); return s ? Object.assign(Object.assign({}, _), {}, ((k = {})[b] = f ? "0" : "", k[g] = m ? "0" : "", k.transform = (y.devicePixelRatio || 1) < 2 ? "translate(" + d + "px, " + h + "px)" : "translate3d(" + d + "px, " + h + "px, 0)", k)) : Object.assign(Object.assign({}, _), {}, ((t = {})[b] = f ? h + "px" : "", t[g] = m ? d + "px" : "", t.transform = "", t)) } - const L_ = { + const rx = { name: "computeStyles", enabled: !0, phase: "beforeWrite", @@ -12086,17 +14142,17 @@ s = n.roundOffsets, l = void 0 === s || s, c = { - placement: T_(t.placement), + placement: ZE(t.placement), popper: t.elements.popper, popperRect: t.rects.popper, gpuAcceleration: r }; - null != t.modifiersData.popperOffsets && (t.styles.popper = Object.assign(Object.assign({}, t.styles.popper), R_(Object.assign(Object.assign({}, c), {}, { + null != t.modifiersData.popperOffsets && (t.styles.popper = Object.assign(Object.assign({}, t.styles.popper), ax(Object.assign(Object.assign({}, c), {}, { offsets: t.modifiersData.popperOffsets, position: t.options.strategy, adaptive: o, roundOffsets: l - })))), null != t.modifiersData.arrow && (t.styles.arrow = Object.assign(Object.assign({}, t.styles.arrow), R_(Object.assign(Object.assign({}, c), {}, { + })))), null != t.modifiersData.arrow && (t.styles.arrow = Object.assign(Object.assign({}, t.styles.arrow), ax(Object.assign(Object.assign({}, c), {}, { offsets: t.modifiersData.arrow, position: "absolute", adaptive: !1, @@ -12107,7 +14163,7 @@ }, data: {} }, - F_ = { + ix = { name: "applyStyles", enabled: !0, phase: "write", @@ -12117,7 +14173,7 @@ var n = t.styles[e] || {}, a = t.attributes[e] || {}, r = t.elements[e]; - Qk(r) && Xk(r) && (Object.assign(r.style, n), Object.keys(a).forEach((function(e) { + yE(r) && vE(r) && (Object.assign(r.style, n), Object.keys(a).forEach((function(e) { var t = a[e]; !1 === t ? r.removeAttribute(e) : r.setAttribute(e, !0 === t ? "" : t) }))) @@ -12145,7 +14201,7 @@ i = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : n[e]).reduce((function(e, t) { return e[t] = "", e }), {}); - Qk(a) && Xk(a) && (Object.assign(a.style, i), Object.keys(r).forEach((function(e) { + yE(a) && vE(a) && (Object.assign(a.style, i), Object.keys(r).forEach((function(e) { a.removeAttribute(e) }))) })) @@ -12153,7 +14209,7 @@ }, requires: ["computeStyles"] }, - q_ = { + ox = { name: "offset", enabled: !0, phase: "main", @@ -12164,16 +14220,16 @@ a = e.name, r = n.offset, i = void 0 === r ? [0, 0] : r, - o = S_.reduce((function(e, n) { + o = HE.reduce((function(e, n) { return e[n] = function(e, t, n) { - var a = T_(e), - r = [f_, p_].indexOf(a) >= 0 ? -1 : 1, + var a = ZE(e), + r = [NE, ME].indexOf(a) >= 0 ? -1 : 1, i = "function" == typeof n ? n(Object.assign(Object.assign({}, t), {}, { placement: e })) : n, o = i[0], s = i[1]; - return o = o || 0, s = (s || 0) * r, [f_, m_].indexOf(a) >= 0 ? { + return o = o || 0, s = (s || 0) * r, [NE, OE].indexOf(a) >= 0 ? { x: s, y: o } : { @@ -12188,33 +14244,33 @@ null != t.modifiersData.popperOffsets && (t.modifiersData.popperOffsets.x += l, t.modifiersData.popperOffsets.y += c), t.modifiersData[a] = o } }; - var B_ = { + var sx = { left: "right", right: "left", bottom: "top", top: "bottom" }; - function U_(e) { + function lx(e) { return e.replace(/left|right|bottom|top/g, (function(e) { - return B_[e] + return sx[e] })) } - var H_ = { + var cx = { start: "end", end: "start" }; - function V_(e) { + function ux(e) { return e.replace(/start|end/g, (function(e) { - return H_[e] + return cx[e] })) } - function W_(e, t) { + function dx(e, t) { var n, a = t.getRootNode && t.getRootNode(); if (e.contains(t)) return !0; - if (a && ((n = a) instanceof $k(n).ShadowRoot || n instanceof ShadowRoot)) { + if (a && ((n = a) instanceof fE(n).ShadowRoot || n instanceof ShadowRoot)) { var r = t; do { if (r && e.isSameNode(r)) return !0; @@ -12224,7 +14280,7 @@ return !1 } - function Y_(e) { + function px(e) { return Object.assign(Object.assign({}, e), {}, { left: e.x, top: e.y, @@ -12233,10 +14289,10 @@ }) } - function G_(e, t) { - return t === k_ ? Y_(function(e) { - var t = $k(e), - n = e_(e), + function hx(e, t) { + return t === qE ? px(function(e) { + var t = fE(e), + n = kE(e), a = t.visualViewport, r = n.clientWidth, i = n.clientHeight, @@ -12245,30 +14301,30 @@ return a && (r = a.width, i = a.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (o = a.offsetLeft, s = a.offsetTop)), { width: r, height: i, - x: o + t_(e), + x: o + _E(e), y: s } - }(e)) : Qk(t) ? function(e) { - var t = Kk(e); + }(e)) : yE(t) ? function(e) { + var t = mE(e); return t.top = t.top + e.clientTop, t.left = t.left + e.clientLeft, t.bottom = t.top + e.clientHeight, t.right = t.left + e.clientWidth, t.width = e.clientWidth, t.height = e.clientHeight, t.x = t.left, t.y = t.top, t - }(t) : Y_(function(e) { - var t = e_(e), - n = Jk(e), + }(t) : px(function(e) { + var t = kE(e), + n = gE(e), a = e.ownerDocument.body, r = Math.max(t.scrollWidth, t.clientWidth, a ? a.scrollWidth : 0, a ? a.clientWidth : 0), i = Math.max(t.scrollHeight, t.clientHeight, a ? a.scrollHeight : 0, a ? a.clientHeight : 0), - o = -n.scrollLeft + t_(e), + o = -n.scrollLeft + _E(e), s = -n.scrollTop; - return "rtl" === n_(a || t).direction && (o += Math.max(t.clientWidth, a ? a.clientWidth : 0) - r), { + return "rtl" === wE(a || t).direction && (o += Math.max(t.clientWidth, a ? a.clientWidth : 0) - r), { width: r, height: i, x: o, y: s } - }(e_(e))) + }(kE(e))) } - function K_(e) { + function mx(e) { return Object.assign(Object.assign({}, { top: 0, right: 0, @@ -12277,13 +14333,13 @@ }), e) } - function $_(e, t) { + function fx(e, t) { return t.reduce((function(t, n) { return t[n] = e, t }), {}) } - function J_(e, t) { + function gx(e, t) { void 0 === t && (t = {}); var n = t, a = n.placement, @@ -12291,43 +14347,43 @@ i = n.boundary, o = void 0 === i ? "clippingParents" : i, s = n.rootBoundary, - l = void 0 === s ? k_ : s, + l = void 0 === s ? qE : s, c = n.elementContext, - u = void 0 === c ? __ : c, + u = void 0 === c ? BE : c, d = n.altBoundary, p = void 0 !== d && d, h = n.padding, m = void 0 === h ? 0 : h, - f = K_("number" != typeof m ? m : $_(m, b_)), - g = u === __ ? "reference" : __, + f = mx("number" != typeof m ? m : fx(m, zE)), + g = u === BE ? "reference" : BE, b = e.elements.reference, y = e.rects.popper, v = e.elements[p ? g : u], k = function(e, t, n) { var a = "clippingParents" === t ? function(e) { - var t = l_(o_(e)), - n = ["absolute", "fixed"].indexOf(n_(e).position) >= 0 && Qk(e) ? d_(e) : e; - return Zk(n) ? t.filter((function(e) { - return Zk(e) && W_(e, n) && "body" !== Xk(e) + var t = TE(CE(e)), + n = ["absolute", "fixed"].indexOf(wE(e).position) >= 0 && yE(e) ? jE(e) : e; + return bE(n) ? t.filter((function(e) { + return bE(e) && dx(e, n) && "body" !== vE(e) })) : [] }(e) : [].concat(t), r = [].concat(a, [n]), i = r[0], o = r.reduce((function(t, n) { - var a = G_(e, n); + var a = hx(e, n); return t.top = Math.max(a.top, t.top), t.right = Math.min(a.right, t.right), t.bottom = Math.min(a.bottom, t.bottom), t.left = Math.max(a.left, t.left), t - }), G_(e, i)); + }), hx(e, i)); return o.width = o.right - o.left, o.height = o.bottom - o.top, o.x = o.left, o.y = o.top, o - }(Zk(v) ? v : v.contextElement || e_(e.elements.popper), o, l), - _ = Kk(b), - w = I_({ + }(bE(v) ? v : v.contextElement || kE(e.elements.popper), o, l), + _ = mE(b), + w = ex({ reference: _, element: y, strategy: "absolute", placement: r }), - S = Y_(Object.assign(Object.assign({}, y), w)), - E = u === __ ? S : _, + S = px(Object.assign(Object.assign({}, y), w)), + E = u === BE ? S : _, x = { top: k.top - E.top + f.top, bottom: E.bottom - k.bottom + f.bottom, @@ -12335,17 +14391,17 @@ right: E.right - k.right + f.right }, C = e.modifiersData.offset; - if (u === __ && C) { + if (u === BE && C) { var A = C[r]; Object.keys(x).forEach((function(e) { - var t = [m_, h_].indexOf(e) >= 0 ? 1 : -1, - n = [p_, h_].indexOf(e) >= 0 ? "y" : "x"; + var t = [OE, IE].indexOf(e) >= 0 ? 1 : -1, + n = [ME, IE].indexOf(e) >= 0 ? "y" : "x"; x[e] += A[n] * t })) } return x } - const Z_ = { + const bx = { name: "flip", enabled: !0, phase: "main", @@ -12354,12 +14410,12 @@ n = e.options, a = e.name; if (!t.modifiersData[a]._skip) { - for (var r = n.mainAxis, i = void 0 === r || r, o = n.altAxis, s = void 0 === o || o, l = n.fallbackPlacements, c = n.padding, u = n.boundary, d = n.rootBoundary, p = n.altBoundary, h = n.flipVariations, m = void 0 === h || h, f = n.allowedAutoPlacements, g = t.options.placement, b = T_(g), y = l || (b !== g && m ? function(e) { - if (T_(e) === g_) return []; - var t = U_(e); - return [V_(e), t, V_(t)] - }(g) : [U_(g)]), v = [g].concat(y).reduce((function(e, n) { - return e.concat(T_(n) === g_ ? function(e, t) { + for (var r = n.mainAxis, i = void 0 === r || r, o = n.altAxis, s = void 0 === o || o, l = n.fallbackPlacements, c = n.padding, u = n.boundary, d = n.rootBoundary, p = n.altBoundary, h = n.flipVariations, m = void 0 === h || h, f = n.allowedAutoPlacements, g = t.options.placement, b = ZE(g), y = l || (b !== g && m ? function(e) { + if (ZE(e) === RE) return []; + var t = lx(e); + return [ux(e), t, ux(t)] + }(g) : [lx(g)]), v = [g].concat(y).reduce((function(e, n) { + return e.concat(ZE(n) === RE ? function(e, t) { void 0 === t && (t = {}); var n = t, a = n.placement, @@ -12368,22 +14424,22 @@ o = n.padding, s = n.flipVariations, l = n.allowedAutoPlacements, - c = void 0 === l ? S_ : l, - u = O_(a), - d = u ? s ? w_ : w_.filter((function(e) { - return O_(e) === u - })) : b_, + c = void 0 === l ? HE : l, + u = QE(a), + d = u ? s ? UE : UE.filter((function(e) { + return QE(e) === u + })) : zE, p = d.filter((function(e) { return c.indexOf(e) >= 0 })); 0 === p.length && (p = d); var h = p.reduce((function(t, n) { - return t[n] = J_(e, { + return t[n] = gx(e, { placement: n, boundary: r, rootBoundary: i, padding: o - })[T_(n)], t + })[ZE(n)], t }), {}); return Object.keys(h).sort((function(e, t) { return h[e] - h[t] @@ -12398,28 +14454,28 @@ }) : n) }), []), k = t.rects.reference, _ = t.rects.popper, w = new Map, S = !0, E = v[0], x = 0; x < v.length; x++) { var C = v[x], - A = T_(C), - j = O_(C) === y_, - P = [p_, h_].indexOf(A) >= 0, - D = P ? "width" : "height", - T = J_(t, { + A = ZE(C), + T = QE(C) === LE, + D = [ME, IE].indexOf(A) >= 0, + P = D ? "width" : "height", + j = gx(t, { placement: C, boundary: u, rootBoundary: d, altBoundary: p, padding: c }), - O = P ? j ? m_ : f_ : j ? h_ : p_; - k[D] > _[D] && (O = U_(O)); - var M = U_(O), - I = []; - if (i && I.push(T[A] <= 0), s && I.push(T[O] <= 0, T[M] <= 0), I.every((function(e) { + M = D ? T ? OE : NE : T ? IE : ME; + k[P] > _[P] && (M = lx(M)); + var I = lx(M), + O = []; + if (i && O.push(j[A] <= 0), s && O.push(j[M] <= 0, j[I] <= 0), O.every((function(e) { return e }))) { E = C, S = !1; break } - w.set(C, I) + w.set(C, O) } if (S) for (var N = function(e) { @@ -12430,7 +14486,7 @@ })) })); if (t) return E = t, "break" - }, z = m ? 3 : 1; z > 0 && "break" !== N(z); z--); + }, R = m ? 3 : 1; R > 0 && "break" !== N(R); R--); t.placement !== E && (t.modifiersData[a]._skip = !0, t.placement = E, t.reset = !0) } }, @@ -12440,10 +14496,10 @@ } }; - function Q_(e, t, n) { + function yx(e, t, n) { return Math.max(e, Math.min(t, n)) } - const X_ = { + const vx = { name: "preventOverflow", enabled: !0, phase: "main", @@ -12463,16 +14519,16 @@ h = void 0 === p || p, m = n.tetherOffset, f = void 0 === m ? 0 : m, - g = J_(t, { + g = gx(t, { boundary: l, rootBoundary: c, padding: d, altBoundary: u }), - b = T_(t.placement), - y = O_(t.placement), + b = ZE(t.placement), + y = QE(t.placement), v = !y, - k = M_(b), + k = XE(b), _ = "x" === k ? "y" : "x", w = t.modifiersData.popperOffsets, S = t.rects.reference, @@ -12486,17 +14542,17 @@ }; if (w) { if (i) { - var A = "y" === k ? p_ : f_, - j = "y" === k ? h_ : m_, - P = "y" === k ? "height" : "width", - D = w[k], - T = w[k] + g[A], - O = w[k] - g[j], - M = h ? -E[P] / 2 : 0, - I = y === y_ ? S[P] : E[P], - N = y === y_ ? -E[P] : -S[P], - z = t.elements.arrow, - R = h && z ? i_(z) : { + var A = "y" === k ? ME : NE, + T = "y" === k ? IE : OE, + D = "y" === k ? "height" : "width", + P = w[k], + j = w[k] + g[A], + M = w[k] - g[T], + I = h ? -E[D] / 2 : 0, + O = y === LE ? S[D] : E[D], + N = y === LE ? -E[D] : -S[D], + R = t.elements.arrow, + z = h && R ? xE(R) : { width: 0, height: 0 }, @@ -12507,23 +14563,23 @@ left: 0 }, F = L[A], - q = L[j], - B = Q_(0, S[P], R[P]), - U = v ? S[P] / 2 - M - B - F - x : I - B - F - x, - H = v ? -S[P] / 2 + M + B + q + x : N + B + q + x, - V = t.elements.arrow && d_(t.elements.arrow), + q = L[T], + B = yx(0, S[D], z[D]), + U = v ? S[D] / 2 - I - B - F - x : O - B - F - x, + H = v ? -S[D] / 2 + I + B + q + x : N + B + q + x, + V = t.elements.arrow && jE(t.elements.arrow), W = V ? "y" === k ? V.clientTop || 0 : V.clientLeft || 0 : 0, Y = t.modifiersData.offset ? t.modifiersData.offset[t.placement][k] : 0, G = w[k] + U - Y - W, K = w[k] + H - Y, - $ = Q_(h ? Math.min(T, G) : T, D, h ? Math.max(O, K) : O); - w[k] = $, C[k] = $ - D + $ = yx(h ? Math.min(j, G) : j, P, h ? Math.max(M, K) : M); + w[k] = $, C[k] = $ - P } if (s) { - var J = "x" === k ? p_ : f_, - Z = "x" === k ? h_ : m_, + var J = "x" === k ? ME : NE, + Z = "x" === k ? IE : OE, Q = w[_], - X = Q_(Q + g[J], Q, Q - g[Z]); + X = yx(Q + g[J], Q, Q - g[Z]); w[_] = X, C[_] = X - Q } t.modifiersData[a] = C @@ -12531,7 +14587,7 @@ }, requiresIfExists: ["offset"] }, - ew = { + kx = { name: "arrow", enabled: !0, phase: "main", @@ -12540,23 +14596,23 @@ a = e.name, r = n.elements.arrow, i = n.modifiersData.popperOffsets, - o = T_(n.placement), - s = M_(o), - l = [f_, m_].indexOf(o) >= 0 ? "height" : "width"; + o = ZE(n.placement), + s = XE(o), + l = [NE, OE].indexOf(o) >= 0 ? "height" : "width"; if (r && i) { var c = n.modifiersData[a + "#persistent"].padding, - u = i_(r), - d = "y" === s ? p_ : f_, - p = "y" === s ? h_ : m_, + u = xE(r), + d = "y" === s ? ME : NE, + p = "y" === s ? IE : OE, h = n.rects.reference[l] + n.rects.reference[s] - i[s] - n.rects.popper[l], m = i[s] - n.rects.reference[s], - f = d_(r), + f = jE(r), g = f ? "y" === s ? f.clientHeight || 0 : f.clientWidth || 0 : 0, b = h / 2 - m / 2, y = c[d], v = g - u[l] - c[p], k = g / 2 - u[l] / 2 + b, - _ = Q_(y, k, v), + _ = yx(y, k, v), w = s; n.modifiersData[a] = ((t = {})[w] = _, t.centerOffset = _ - k, t) } @@ -12569,15 +14625,15 @@ i = void 0 === r ? "[data-popper-arrow]" : r, o = n.padding, s = void 0 === o ? 0 : o; - null != i && ("string" != typeof i || (i = t.elements.popper.querySelector(i))) && W_(t.elements.popper, i) && (t.elements.arrow = i, t.modifiersData[a + "#persistent"] = { - padding: K_("number" != typeof s ? s : $_(s, b_)) + null != i && ("string" != typeof i || (i = t.elements.popper.querySelector(i))) && dx(t.elements.popper, i) && (t.elements.arrow = i, t.modifiersData[a + "#persistent"] = { + padding: mx("number" != typeof s ? s : fx(s, zE)) }) }, requires: ["popperOffsets"], requiresIfExists: ["preventOverflow"] }; - function tw(e, t, n) { + function _x(e, t, n) { return void 0 === n && (n = { x: 0, y: 0 @@ -12589,12 +14645,12 @@ } } - function nw(e) { - return [p_, m_, h_, f_].some((function(t) { + function wx(e) { + return [ME, OE, IE, NE].some((function(t) { return e[t] >= 0 })) } - const aw = { + const Sx = { name: "hide", enabled: !0, phase: "main", @@ -12605,16 +14661,16 @@ a = t.rects.reference, r = t.rects.popper, i = t.modifiersData.preventOverflow, - o = J_(t, { + o = gx(t, { elementContext: "reference" }), - s = J_(t, { + s = gx(t, { altBoundary: !0 }), - l = tw(o, a), - c = tw(s, r, i), - u = nw(l), - d = nw(c); + l = _x(o, a), + c = _x(s, r, i), + u = wx(l), + d = wx(c); t.modifiersData[n] = { referenceClippingOffsets: l, popperEscapeOffsets: c, @@ -12626,40 +14682,40 @@ }) } }; - var rw = j_({ - defaultModifiers: [D_, N_, L_, F_, q_, Z_, X_, ew, aw] + var Ex = KE({ + defaultModifiers: [JE, tx, rx, ix, ox, bx, vx, kx, Sx] }), - iw = n(3051), - ow = n.n(iw), - sw = [], - lw = function() {}, - cw = function() { + xx = n(3051), + Cx = n.n(xx), + Ax = [], + Tx = function() {}, + Dx = function() { return Promise.resolve(null) }, - uw = []; + Px = []; - function dw(e) { + function jx(e) { var t = e.placement, n = void 0 === t ? "bottom" : t, a = e.strategy, r = void 0 === a ? "absolute" : a, i = e.modifiers, - o = void 0 === i ? uw : i, + o = void 0 === i ? Px : i, s = e.referenceElement, l = e.onFirstUpdate, c = e.innerRef, u = e.children, - d = E.useContext(qk), - p = E.useState(null), + d = x.useContext(oE), + p = x.useState(null), h = p[0], m = p[1], - f = E.useState(null), + f = x.useState(null), g = f[0], b = f[1]; - E.useEffect((function() { - Wk(c, h) + x.useEffect((function() { + dE(c, h) }), [c, h]); - var y = E.useMemo((function() { + var y = x.useMemo((function() { return { placement: n, strategy: r, @@ -12675,14 +14731,14 @@ }), [n, r, l, o, g]), v = function(e, t, n) { void 0 === n && (n = {}); - var a = E.useRef(null), + var a = x.useRef(null), r = { onFirstUpdate: n.onFirstUpdate, placement: n.placement || "bottom", strategy: n.strategy || "absolute", - modifiers: n.modifiers || sw + modifiers: n.modifiers || Ax }, - i = E.useState({ + i = x.useState({ styles: { popper: { position: r.strategy, @@ -12694,7 +14750,7 @@ }), o = i[0], s = i[1], - l = E.useMemo((function() { + l = x.useMemo((function() { return { name: "updateState", enabled: !0, @@ -12703,10 +14759,10 @@ var t = e.state, n = Object.keys(t.elements); s({ - styles: Yk(n.map((function(e) { + styles: pE(n.map((function(e) { return [e, t.styles[e] || {}] }))), - attributes: Yk(n.map((function(e) { + attributes: pE(n.map((function(e) { return [e, t.attributes[e]] }))) }) @@ -12714,7 +14770,7 @@ requires: ["computeStyles"] } }), []), - c = E.useMemo((function() { + c = x.useMemo((function() { var e = { onFirstUpdate: r.onFirstUpdate, placement: r.placement, @@ -12724,14 +14780,14 @@ enabled: !1 }]) }; - return ow()(a.current, e) ? a.current || e : (a.current = e, e) + return Cx()(a.current, e) ? a.current || e : (a.current = e, e) }), [r.onFirstUpdate, r.placement, r.strategy, r.modifiers, l]), - u = E.useRef(); - return Gk((function() { + u = x.useRef(); + return hE((function() { u.current && u.current.setOptions(c) - }), [c]), Gk((function() { + }), [c]), hE((function() { if (null != e && null != t) { - var a = (n.createPopper || rw)(e, t, c); + var a = (n.createPopper || Ex)(e, t, c); return u.current = a, function() { a.destroy(), u.current = null @@ -12749,7 +14805,7 @@ _ = v.styles, w = v.forceUpdate, S = v.update, - x = E.useMemo((function() { + E = x.useMemo((function() { return { ref: m, style: _.popper, @@ -12760,13 +14816,13 @@ style: _.arrow, ref: b }, - forceUpdate: w || lw, - update: S || cw + forceUpdate: w || Tx, + update: S || Dx } }), [m, b, n, k, _, S, w]); - return Hk(u)(x) + return cE(u)(E) } - var pw = [{ + var Mx = [{ name: "flip", options: { flipVariations: !1, @@ -12782,16 +14838,16 @@ } }]; - function hw() { + function Ix() { return null } - var mw = [0, 8]; + var Ox = [0, 8]; - function fw(e) { + function Nx(e) { var t = e.children, - n = void 0 === t ? hw : t, + n = void 0 === t ? Ix : t, a = e.offset, - r = void 0 === a ? mw : a, + r = void 0 === a ? Ox : a, i = e.placement, o = void 0 === i ? "bottom-start" : i, s = e.referenceElement, @@ -12799,112 +14855,233 @@ c = e.modifiers, u = e.strategy, d = void 0 === u ? "fixed" : u, - p = eg(r, 2), + p = dr(r, 2), h = p[0], m = p[1], - f = (0, E.useMemo)((function() { - return [].concat(pw, [{ + f = (0, x.useMemo)((function() { + return [].concat(Mx, [{ name: "offset", options: { offset: [h, m] } }]) }), [h, m]), - g = (0, E.useMemo)((function() { - return null == c ? f : [].concat($g(f), $g(c)) + g = (0, x.useMemo)((function() { + return null == c ? f : [].concat(wr(f), wr(c)) }), [f, c]); - return x().createElement(dw, { + return C().createElement(jx, { modifiers: g, placement: o, strategy: d, referenceElement: l }, n) } - var gw = null; + var Rx = function(e) { + var t = document.createElement("div"); + return t.setAttribute("class", "atlaskit-portal"), t.setAttribute("style", "z-index: ".concat(e, ";")), t + }, + zx = function() { + return function(e, t) { + if (!e) throw new Error("Invariant failed") + }(document && document.body), document.body + }, + Lx = Object.keys(eb).reduce((function(e, t) { + var n = t; + return e[eb[n]()] = n, e + }), {}), + Fx = function(e) { + return Object.prototype.hasOwnProperty.call(Lx, e) ? Lx[e] : null + }, + qx = function(e, t) { + var n = function(e, t) { + var n = { + layer: Fx(Number(t)), + zIndex: t + }; + if ("function" == typeof CustomEvent) return new CustomEvent(e, { + detail: n + }); + var a = document.createEvent("CustomEvent"), + r = { + bubbles: !0, + cancellable: !0, + detail: n + }; + return a.initCustomEvent(e, r.bubbles, r.cancellable, r.detail), a + }(e, t); + window.dispatchEvent(n) + }, + Bx = function() { + var e = document.querySelector("body > .atlaskit-portal-container"); + if (!e) { + var t = document.createElement("div"); + return t.setAttribute("class", "atlaskit-portal-container"), t.setAttribute("style", "display: flex;"), zx().appendChild(t), t + } + return e + }, + Ux = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function bw() { - null != gw && (window.clearTimeout(gw), gw = null) + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { + container: mv.canUseDOM ? Rx(e.props.zIndex) : void 0, + portalIsMounted: !1 + }), e + } + return Ka(r, [{ + key: "componentDidUpdate", + value: function(e, t) { + var n = this.state.container, + a = this.props.zIndex; + if (n && e.zIndex !== a) { + var r = Rx(a); + Bx().replaceChild(n, r), this.setState({ + container: r + }) + } else !t.container && n && Bx().appendChild(n) + } + }, { + key: "componentDidMount", + value: function() { + var e = this.state.container, + t = this.props.zIndex; + if (e) Bx().appendChild(e); + else { + var n = Rx(t); + this.setState({ + container: n + }) + } + this.setState({ + portalIsMounted: !0 + }), qx("akPortalMount", Number(t)) + } + }, { + key: "componentWillUnmount", + value: function() { + var e = this.state.container, + t = this.props.zIndex; + e && (Bx().removeChild(e), document.querySelector("body > .atlaskit-portal-container > .atlaskit-portal") || zx().removeChild(Bx())), qx("akPortalUnmount", Number(t)) + } + }, { + key: "render", + value: function() { + var e = this.state, + t = e.container, + n = e.portalIsMounted; + return t && n ? Ie().createPortal(this.props.children, t) : null + } + }]), r + }(C().Component); + $a(Ux, "defaultProps", { + zIndex: 0 + }); + const Hx = Ux; + var Vx = null; + + function Wx() { + null != Vx && (window.clearTimeout(Vx), Vx = null) } - function yw(e, t) { - bw(), gw = window.setTimeout((function() { - gw = null, e() + function Yx(e, t) { + Wx(), Vx = window.setTimeout((function() { + Vx = null, e() }), t) } - var vw = null; + var Gx = null; - function kw() { - var e = Jf(["\n z-index: ", ";\n pointer-events: none;\n"]); - return kw = function() { + function Kx() { + var e = sg(["\n z-index: ", ";\n pointer-events: none;\n"]); + return Kx = function() { return e }, e } - var _w = Dg(kw(), Gg.tooltip()), - ww = (0, E.forwardRef)((function(e, t) { + var $x = zg(Kx(), eb.tooltip()), + Jx = (0, x.forwardRef)((function(e, t) { var n = e.style, a = e.className, r = e.children, i = e.placement, o = e.testId; - return Tg("div", { + return Lg("div", { role: "tooltip", ref: t, style: n, className: a, - css: _w, + css: $x, "data-placement": i, "data-testid": o }, r) })); - ww.displayName = "TooltipPrimitive"; - const Sw = ww; + Jx.displayName = "TooltipPrimitive"; + const Zx = Jx; - function Ew() { - var e = Jf(["\n background-color: ", ";\n color: ", ";\n "]); - return Ew = function() { + function Qx() { + var e = sg(["\n background-color: ", ";\n color: ", ";\n "]); + return Qx = function() { return e }, e } - function xw() { - var e = Jf(["\n max-width: 420px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"]); - return xw = function() { + function Xx() { + var e = sg(["\n max-width: 420px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"]); + return Xx = function() { return e }, e } - function Cw() { - var e = Jf(["\n border-radius: ", "px;\n box-sizing: border-box;\n font-size: 12px;\n left: 0;\n line-height: 1.3;\n max-width: 240px;\n padding: 2px 6px;\n top: 0;\n word-wrap: break-word;\n overflow-wrap: break-word;\n"]); - return Cw = function() { + function eC() { + var e = sg(["\n border-radius: ", "px;\n box-sizing: border-box;\n font-size: 12px;\n left: 0;\n line-height: 1.3;\n max-width: 240px;\n padding: 2px 6px;\n top: 0;\n word-wrap: break-word;\n overflow-wrap: break-word;\n"]); + return eC = function() { return e }, e } - var Aw = Dg(Cw(), 3), - jw = Dg(xw()), - Pw = (0, E.forwardRef)((function(e, t) { + var tC = zg(eC(), 3), + nC = zg(Xx()), + aC = (0, x.forwardRef)((function(e, t) { var n = e.style, a = e.className, r = e.children, i = e.truncate, o = e.placement, s = e.testId; - return Tg(Bg.Consumer, null, (function(e) { + return Lg(Kg.Consumer, null, (function(e) { var l = e.mode; - return Tg(Sw, { + return Lg(Zx, { ref: t, style: n, className: a, placement: o, testId: s, - css: [Aw, i ? jw : null, Dg(Ew(), "light" === l ? mb.N800 : mb.DN0, "light" === l ? mb.N0 : mb.DN600)] + css: [tC, i ? nC : null, zg(Qx(), "light" === l ? hb.N800 : hb.DN0, "light" === l ? hb.N0 : hb.DN600)] }, r) })) })); - Pw.displayName = "TooltipContainer"; - const Dw = Pw, - Tw = JSON.parse('{"u2":"@atlaskit/tooltip","i8":"17.1.2"}'); + aC.displayName = "TooltipContainer"; + const rC = aC, + iC = JSON.parse('{"u2":"@atlaskit/tooltip","i8":"17.1.2"}'); - function Ow(e, t) { + function oC(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -12915,27 +15092,27 @@ return n } - function Mw(e) { + function sC(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? Ow(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Ow(Object(n)).forEach((function(t) { + t % 2 ? oC(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : oC(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var Iw = Gg.tooltip(), - Nw = { + var lC = eb.tooltip(), + cC = { componentName: "tooltip", - packageName: Tw.u2, - packageVersion: Tw.i8 + packageName: iC.u2, + packageVersion: iC.i8 }; - function zw() {} + function uC() {} - function Rw(e) { + function dC(e) { var t = e.children, n = e.position, a = void 0 === n ? "bottom" : n, @@ -12945,72 +15122,72 @@ s = e.truncate, l = void 0 !== s && s, c = e.component, - u = void 0 === c ? Dw : c, + u = void 0 === c ? rC : c, d = e.tag, p = void 0 === d ? "div" : d, h = e.testId, m = e.delay, f = void 0 === m ? 300 : m, g = e.onShow, - b = void 0 === g ? zw : g, + b = void 0 === g ? uC : g, y = e.onHide, - v = void 0 === y ? zw : y, + v = void 0 === y ? uC : y, k = e.hideTooltipOnClick, _ = void 0 !== k && k, w = e.hideTooltipOnMouseDown, S = void 0 !== w && w, - C = e.analyticsContext, + E = e.analyticsContext, A = e.strategy, - j = void 0 === A ? "fixed" : A, - P = "mouse" === a ? i : a, - D = Fk(Mw({ + T = void 0 === A ? "fixed" : A, + D = "mouse" === a ? i : a, + P = iE(sC({ fn: b, action: "displayed", - analyticsData: C - }, Nw)), - T = Fk(Mw({ + analyticsData: E + }, cC)), + j = iE(sC({ fn: v, action: "hidden", - analyticsData: C - }, Nw)), - O = (0, E.useRef)(null), - M = eg((0, E.useState)("hide"), 2), - I = M[0], - N = M[1], - z = (0, E.useRef)(null), - R = (0, E.useRef)(null), - L = (0, E.useCallback)((function(e) { - e && null !== e.firstChild && (R.current = e, z.current = e.firstChild) + analyticsData: E + }, cC)), + M = (0, x.useRef)(null), + I = dr((0, x.useState)("hide"), 2), + O = I[0], + N = I[1], + R = (0, x.useRef)(null), + z = (0, x.useRef)(null), + L = (0, x.useCallback)((function(e) { + e && null !== e.firstChild && (z.current = e, R.current = e.firstChild) }), []), - F = (0, E.useRef)(I), - q = (0, E.useRef)(f), - B = (0, E.useRef)({ - onShowHandler: D, - onHideHandler: T + F = (0, x.useRef)(O), + q = (0, x.useRef)(f), + B = (0, x.useRef)({ + onShowHandler: P, + onHideHandler: j }), - U = (0, E.useRef)(!1); - (0, E.useEffect)((function() { - F.current = I, q.current = f, B.current = { - onShowHandler: D, - onHideHandler: T - } - }), [f, T, D, I]); - var H = (0, E.useCallback)((function(e) { - O.current = e, U.current = !1 + U = (0, x.useRef)(!1); + (0, x.useEffect)((function() { + F.current = O, q.current = f, B.current = { + onShowHandler: P, + onHideHandler: j + } + }), [f, j, P, O]); + var H = (0, x.useCallback)((function(e) { + M.current = e, U.current = !1 }), []), - V = (0, E.useCallback)((function() { - O.current && (U.current && B.current.onHideHandler(), O.current = null, U.current = !1, N("hide")) + V = (0, x.useCallback)((function() { + M.current && (U.current && B.current.onHideHandler(), M.current = null, U.current = !1, N("hide")) }), []), - W = (0, E.useCallback)((function() { - O.current && (O.current.abort(), U.current && B.current.onHideHandler(), O.current = null) + W = (0, x.useCallback)((function() { + M.current && (M.current.abort(), U.current && B.current.onHideHandler(), M.current = null) }), []); - (0, E.useEffect)((function() { + (0, x.useEffect)((function() { return function() { - O.current && W() + M.current && W() } }), [W]); - var Y = (0, E.useCallback)((function(e) { - if (O.current && !O.current.isActive() && W(), O.current && O.current.isActive()) O.current.keep(); + var Y = (0, x.useCallback)((function(e) { + if (M.current && !M.current.isActive() && W(), M.current && M.current.isActive()) M.current.keep(); else { var t = { source: e, @@ -13031,11 +15208,11 @@ var t = "waiting-to-show"; function n() { - return Boolean(vw && vw.entry === e) + return Boolean(Gx && Gx.entry === e) } function a() { - n() && (bw(), vw = null) + n() && (Wx(), Gx = null) } function r() { @@ -13051,23 +15228,23 @@ function o() { return "shown" === t || "waiting-to-hide" === t || "hide-animating" === t }! function() { - var n = Boolean(vw && vw.isVisible()); + var n = Boolean(Gx && Gx.isVisible()); function a() { t = "shown", e.show({ isImmediate: n }) } - vw && (bw(), vw.entry.hide({ + Gx && (Wx(), Gx.entry.hide({ isImmediate: !0 - }), vw.entry.done(), vw = null), vw = { + }), Gx.entry.done(), Gx = null), Gx = { entry: e, isVisible: o - }, n ? a() : (t = "waiting-to-show", yw(a, e.delay)) + }, n ? a() : (t = "waiting-to-show", Yx(a, e.delay)) }(); var s = { keep: function() { - if (n()) return "waiting-to-hide" === t ? (t = "shown", void bw()) : "hide-animating" === t ? (t = "shown", bw(), void e.show({ + if (n()) return "waiting-to-hide" === t ? (t = "shown", void Wx()) : "hide-animating" === t ? (t = "shown", Wx(), void e.show({ isImmediate: !1 })) : void 0 }, @@ -13075,7 +15252,7 @@ isActive: n, requestHide: function(a) { var r = a.isImmediate; - n() && ("waiting-to-show" !== t ? "waiting-to-hide" !== t && (r ? i() : (t = "waiting-to-hide", yw((function() { + n() && ("waiting-to-show" !== t ? "waiting-to-hide" !== t && (r ? i() : (t = "waiting-to-hide", Yx((function() { t = "hide-animating", e.hide({ isImmediate: !1 }) @@ -13093,11 +15270,11 @@ H(n) } }), [W, V, H]); - (0, E.useEffect)((function() { - return "hide" === I ? zw : (0, Rk.ak)(window, { + (0, x.useEffect)((function() { + return "hide" === O ? uC : (0, aE.ak)(window, { type: "scroll", listener: function() { - O.current && O.current.requestHide({ + M.current && M.current.requestHide({ isImmediate: !0 }) }, @@ -13107,19 +15284,19 @@ once: !0 } }) - }), [I]); - var G, K, $ = (0, E.useCallback)((function() { - S && O.current && O.current.requestHide({ + }), [O]); + var G, K, $ = (0, x.useCallback)((function() { + S && M.current && M.current.requestHide({ isImmediate: !0 }) }), [S]), - J = (0, E.useCallback)((function() { - _ && O.current && O.current.requestHide({ + J = (0, x.useCallback)((function() { + _ && M.current && M.current.requestHide({ isImmediate: !0 }) }), [_]), - Z = (0, E.useCallback)((function(e) { - if (e.target !== R.current && !e.defaultPrevented) { + Z = (0, x.useCallback)((function(e) { + if (e.target !== z.current && !e.defaultPrevented) { e.preventDefault(); var t, n, r = "mouse" === a ? { type: "mouse", @@ -13149,28 +15326,28 @@ Y(r) } }), [a, Y]), - Q = (0, E.useCallback)((function(e) { - e.target !== R.current && (e.defaultPrevented || (e.preventDefault(), O.current && O.current.requestHide({ + Q = (0, x.useCallback)((function(e) { + e.target !== z.current && (e.defaultPrevented || (e.preventDefault(), M.current && M.current.requestHide({ isImmediate: !1 }))) }), []), - X = (0, E.useCallback)((function() { + X = (0, x.useCallback)((function() { Y({ type: "keyboard" }) }), [Y]), - ee = (0, E.useCallback)((function() { - O.current && O.current.requestHide({ + ee = (0, x.useCallback)((function() { + M.current && M.current.requestHide({ isImmediate: !1 }) }), []), - te = (0, E.useCallback)((function(e) { - "exiting" === e && "fade-out" === F.current && O.current && O.current.finishHideAnimation() + te = (0, x.useCallback)((function(e) { + "exiting" === e && "fade-out" === F.current && M.current && M.current.finishHideAnimation() }), []), ne = p, - ae = "hide" !== I && Boolean(o), - re = "show-immediate" === I || "show-fade-in" === I; - return Tg(x().Fragment, null, Tg(ne, { + ae = "hide" !== O && Boolean(o), + re = "show-immediate" === O || "show-fade-in" === O; + return Lg(C().Fragment, null, Lg(ne, { onMouseOver: Z, onMouseOut: Q, onClick: J, @@ -13179,46 +15356,47 @@ onBlur: ee, ref: L, "data-testid": h ? "".concat(h, "--container") : void 0 - }, t), ae ? Tg(iv, { - zIndex: Iw - }, Tg(fw, { - placement: P, - referenceElement: (G = O.current, K = G ? G.getInitialMouse() : null, "mouse" === a && K ? K : z.current || void 0), - strategy: j + }, t), ae ? Lg(Hx, { + zIndex: lC + }, Lg(Nx, { + placement: D, + referenceElement: (G = M.current, K = G ? G.getInitialMouse() : null, "mouse" === a && K ? K : R.current || void 0), + strategy: T }, (function(e) { var t = e.ref, n = e.style; - return Tg(Ib, { + return Lg(Ib, { appear: !0 - }, re && Tg(Kb, { + }, re && Lg(Yb, { onFinish: te, - duration: "show-immediate" === I ? 0 : void 0 + duration: "show-immediate" === O ? 0 : void 0 }, (function(e) { var a = e.className; - return Tg(u, { + return Lg(u, { ref: t, className: "Tooltip ".concat(a), style: n, truncate: l, - placement: P, + placement: D, testId: h }, o) }))) }))) : null) } - Rw.displayName = "Tooltip"; - const Lw = Rw, - Fw = function({ - children: e, - content: t, - position: n - }) { - return Sa() ? e : x().createElement(Lw, { - content: t, - position: n - }, e) + dC.displayName = "Tooltip"; + const pC = dC, + hC = function(e) { + let { + children: t, + content: n, + position: a + } = e; + return va() ? t : C().createElement(pC, { + content: n, + position: a + }, t) }; - class qw extends E.Component { + class mC extends x.Component { constructor(e) { super(e), this._onClick = this._onClick.bind(this) } @@ -13237,12 +15415,12 @@ } = this.props; return "function" == typeof t ? t(e) : e } - _onClick(...e) { + _onClick() { const { - disabled: t, - onClick: n + disabled: e, + onClick: t } = this.props; - t || n && n(...e) + e || t && t(...arguments) } _renderItem() { return null @@ -13257,7 +15435,7 @@ configurable: !0, writable: !0 }) : e[t] = n - }(qw, "defaultProps", { + }(mC, "defaultProps", { disabled: !1, label: "", showLabel: !1, @@ -13266,7 +15444,7 @@ tooltipPosition: "top", visible: !0 }); - class Bw extends qw { + class fC extends mC { constructor(e) { super(e), this._onKeyPress = this._onKeyPress.bind(this) } @@ -13291,48 +15469,38 @@ tabIndex: 0, role: a ? "menuitem" : "button" }, l = a ? "li" : "div", c = this.tooltip && this.tooltip.length > 0; - let u = x().createElement(E.Fragment, null, this._renderIcon(), a && x().createElement("span", null, this.label), t); - return c && (u = x().createElement(Fw, { + let u = C().createElement(x.Fragment, null, this._renderIcon(), a && C().createElement("span", null, this.label), t); + return c && (u = C().createElement(hC, { content: this.tooltip, position: r - }, u)), x().createElement(l, s, u) + }, u)), C().createElement(l, s, u) } _renderIcon() { - var e; const { - customClass: t, - disabled: n, - icon: a, - showLabel: r, - toggled: i - } = this.props, o = x().createElement(qs, { - src: a - }), s = r ? "span" : "div", l = `${r?"overflow-menu-item-icon":"toolbox-icon"} ${i?"toggled":""} ${n?"disabled":""} ${null!==(e=t)&&void 0!==e?e:""}`; - return x().createElement(s, { - className: l - }, o) + customClass: e, + disabled: t, + icon: n, + showLabel: a, + toggled: r + } = this.props, i = C().createElement(lo, { + src: n + }), o = a ? "span" : "div", s = `${a?"overflow-menu-item-icon":"toolbox-icon"} ${r?"toggled":""} ${t?"disabled":""} ${null!=e?e:""}`; + return C().createElement(o, { + className: s + }, i) } } - function Uw() { - return Uw = Object.assign || function(e) { + function gC() { + return gC = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Uw.apply(this, arguments) - } - - function Hw(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + }, gC.apply(this, arguments) } - class Vw extends E.Component { + class bC extends x.Component { constructor(e) { super(e), this._onClick = this._onClick.bind(this) } @@ -13353,9 +15521,9 @@ toggledStyles: n } = this.props, a = (this._isToggled() ? n : t) || t; return this._isDisabled() && a && e ? { - iconStyle: Ps(a.iconStyle, e.iconStyle), - labelStyle: Ps(a.labelStyle, e.labelStyle), - style: Ps(a.style, e.style), + iconStyle: eo(a.iconStyle, e.iconStyle), + labelStyle: eo(a.labelStyle, e.labelStyle), + style: eo(a.style, e.style), underlayColor: e.underlayColor || a.underlayColor } : a } @@ -13374,18 +15542,8 @@ this._handleClick(), n && n(e), (null == e || null === (t = e.currentTarget) || void 0 === t ? void 0 : t.blur) && e.currentTarget.blur() } render() { - const e = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Hw(e, t, n[t]) - })) - } - return e - }({}, this.props, { + const e = { + ...this.props, accessibilityLabel: this.accessibilityLabel, disabled: this._isDisabled(), elementAfter: this._getElementAfter(), @@ -13394,23 +15552,29 @@ styles: this._getStyles(), toggled: this._isToggled(), tooltip: this._getTooltip() - }); - return x().createElement(Bw, Uw({ + }; + return C().createElement(fC, gC({ disabled: this._isDisabled(), onClick: this._onClick }, e)) } } - function Ww(e, t, n) { + function yC(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e - } - Hw(Vw, "defaultProps", { + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(bC, "defaultProps", { afterClick: void 0, disabledStyles: { iconStyle: { @@ -13428,9 +15592,9 @@ tooltipPosition: "top", visible: !0 }); - class Yw extends Vw { - constructor(...e) { - super(...e), Ww(this, "icon", Wu), Ww(this, "toggledIcon", Ku) + class vC extends bC { + constructor() { + super(...arguments), yC(this, "icon", wc), yC(this, "toggledIcon", xc) } _handleClick() { const { @@ -13444,9 +15608,9 @@ } _setAudioMuted(e) {} } - class Gw extends Vw { - constructor(...e) { - super(...e), + class kC extends bC { + constructor() { + super(...arguments), function(e, t, n) { t in e ? Object.defineProperty(e, t, { value: n, @@ -13454,7 +15618,7 @@ configurable: !0, writable: !0 }) : e.icon = n - }(this, "icon", Gc) + }(this, "icon", El) } _handleClick() { this._doHangup() @@ -13462,7 +15626,7 @@ _doHangup() {} } - function Kw(e, t, n) { + function _C(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, @@ -13470,9 +15634,9 @@ writable: !0 }) : e[t] = n, e } - class $w extends Vw { - constructor(...e) { - super(...e), Kw(this, "icon", vl), Kw(this, "toggledIcon", wl) + class wC extends bC { + constructor() { + super(...arguments), _C(this, "icon", Uo), _C(this, "toggledIcon", Wo) } _handleClick() { const { @@ -13486,7 +15650,7 @@ _isVideoMuted() {} _setVideoMuted(e) {} } - class Jw extends E.Component { + class SC extends x.Component { render() { const { className: e, @@ -13499,15 +15663,15 @@ tooltipKey: s, tooltipPosition: l } = this.props, c = `indicator-icon-container ${e}`, u = {}; - return r && (u.fontSize = r), x().createElement("div", { + return r && (u.fontSize = r), C().createElement("div", { className: "indicator-container" - }, x().createElement(Fw, { + }, C().createElement(hC, { content: o(s), position: l - }, x().createElement("span", { + }, C().createElement("span", { className: c, id: i - }, x().createElement(qs, { + }, C().createElement(lo, { className: n, id: a, src: t, @@ -13521,38 +15685,38 @@ configurable: !0, writable: !0 }) : e[t] = n - }(Jw, "defaultProps", { + }(SC, "defaultProps", { className: "", id: "", tooltipPosition: "top" }); - const Zw = Li(Jw); + const EC = Ei(SC); - function Qw() {} - var Xw = "undefined" != typeof navigator && navigator.userAgent.toLowerCase().indexOf("firefox") > -1, - eS = x().forwardRef((function(e, t) { + function xC() {} + var CC = "undefined" != typeof navigator && navigator.userAgent.toLowerCase().indexOf("firefox") > -1, + AC = C().forwardRef((function(e, t) { var n = e.mode, a = e.onMouseDown, - r = void 0 === a ? Qw : a, + r = void 0 === a ? xC : a, i = e.onMouseUp, - o = void 0 === i ? Qw : i, - s = Fg(e, ["mode", "onMouseDown", "onMouseUp"]), + o = void 0 === i ? xC : i, + s = Yg(e, ["mode", "onMouseDown", "onMouseUp"]), l = s.appearance || "default", c = s.spacing || "default", u = Boolean(s.shouldFitContainer), d = Boolean(s.isSelected), - p = _y(s), - h = eg((0, E.useState)(!1), 2), + p = vy(s), + h = dr((0, x.useState)(!1), 2), m = h[0], f = h[1], - g = (0, E.useCallback)((function(e) { - r(e), Xw && f(!0) + g = (0, x.useCallback)((function(e) { + r(e), CC && f(!0) }), [r, f]), - b = (0, E.useCallback)((function(e) { - o(e), Xw && f(!1) + b = (0, x.useCallback)((function(e) { + o(e), CC && f(!1) }), [o, f]), - y = (0, E.useMemo)((function() { - return my({ + y = (0, x.useMemo)((function() { + return py({ appearance: l, spacing: c, mode: n, @@ -13561,7 +15725,7 @@ isOnlySingleIcon: p }) }), [l, c, n, d, u, p]); - return x().createElement(ky, z({}, s, { + return C().createElement(yy, z({}, s, { ref: t, buttonCss: y, "data-firefox-is-active": !!m || void 0, @@ -13569,51 +15733,51 @@ onMouseUp: b })) })), - tS = x().memo(x().forwardRef((function(e, t) { - return x().createElement(Bg.Consumer, null, (function(n) { + TC = C().memo(C().forwardRef((function(e, t) { + return C().createElement(Kg.Consumer, null, (function(n) { var a = n.mode; - return x().createElement(eS, z({}, e, { + return C().createElement(AC, z({}, e, { ref: t, mode: a })) })) }))); - tS.displayName = "Button"; - const nS = tS; - class aS extends E.Component { + TC.displayName = "Button"; + const DC = TC; + class PC extends x.Component { render() { const { onValueChange: e } = this.props; - return x().createElement(nS, { + return C().createElement(DC, { appearance: "primary", onClick: e, type: "button" }, this.props.children) } } - class rS extends E.Component { + class jC extends x.Component { render() { - return x().createElement("img", this.props) + return C().createElement("img", this.props) } } - const iS = 2147483647, - oS = 36, - sS = /[^\0-\x7E]/, - lS = /[\x2E\u3002\uFF0E\uFF61]/g, - cS = { + const MC = 2147483647, + IC = 36, + OC = /[^\0-\x7E]/, + NC = /[\x2E\u3002\uFF0E\uFF61]/g, + RC = { overflow: "Overflow: input needs wider integers to process", "not-basic": "Illegal input >= 0x80 (not a basic code point)", "invalid-input": "Invalid input" }, - uS = Math.floor, - dS = String.fromCharCode; + zC = Math.floor, + LC = String.fromCharCode; - function pS(e) { - throw new RangeError(cS[e]) + function FC(e) { + throw new RangeError(RC[e]) } - function hS(e, t) { + function qC(e, t) { const n = e.split("@"); let a = ""; n.length > 1 && (a = n[0] + "@", e = n[1]); @@ -13622,11 +15786,11 @@ let a = e.length; for (; a--;) n[a] = t(e[a]); return n - }((e = e.replace(lS, ".")).split("."), t).join("."); + }((e = e.replace(NC, ".")).split("."), t).join("."); return a + r } - function mS(e) { + function BC(e) { const t = []; let n = 0; const a = e.length; @@ -13639,70 +15803,70 @@ } return t } - const fS = function(e, t) { + const UC = function(e, t) { return e + 22 + 75 * (e < 26) - ((0 != t) << 5) }, - gS = function(e, t, n) { + HC = function(e, t, n) { let a = 0; - for (e = n ? uS(e / 700) : e >> 1, e += uS(e / t); e > 455; a += oS) e = uS(e / 35); - return uS(a + 36 * e / (e + 38)) + for (e = n ? zC(e / 700) : e >> 1, e += zC(e / t); e > 455; a += IC) e = zC(e / 35); + return zC(a + 36 * e / (e + 38)) }, - bS = function(e) { + VC = function(e) { const t = []; - let n = (e = mS(e)).length, + let n = (e = BC(e)).length, a = 128, r = 0, i = 72; - for (const n of e) n < 128 && t.push(dS(n)); + for (const n of e) n < 128 && t.push(LC(n)); let o = t.length, s = o; for (o && t.push("-"); s < n;) { - let n = iS; + let n = MC; for (const t of e) t >= a && t < n && (n = t); const l = s + 1; - n - a > uS((iS - r) / l) && pS("overflow"), r += (n - a) * l, a = n; + n - a > zC((MC - r) / l) && FC("overflow"), r += (n - a) * l, a = n; for (const n of e) - if (n < a && ++r > iS && pS("overflow"), n == a) { + if (n < a && ++r > MC && FC("overflow"), n == a) { let e = r; - for (let n = oS;; n += oS) { + for (let n = IC;; n += IC) { const a = n <= i ? 1 : n >= i + 26 ? 26 : n - i; if (e < a) break; const r = e - a, - o = oS - a; - t.push(dS(fS(a + r % o, 0))), e = uS(r / o) + o = IC - a; + t.push(LC(UC(a + r % o, 0))), e = zC(r / o) } - t.push(dS(fS(e, 0))), i = gS(r, l, s == o), r = 0, ++s + t.push(LC(UC(e, 0))), i = HC(r, l, s == o), r = 0, ++s }++ r, ++a } return t.join("") }, - yS = function(e) { - return hS(e, (function(e) { - return sS.test(e) ? "xn--" + bS(e) : e + WC = function(e) { + return qC(e, (function(e) { + return OC.test(e) ? "xn--" + VC(e) : e })) }; - var vS = n(8267); - class kS extends E.Component { + var YC = n(8267); + class GC extends x.Component { render() { - return x().createElement(vS.Z, { + return C().createElement(YC.Z, { componentDecorator: this._componentDecorator }, this.props.children) } _componentDecorator(e, t, n) { - return x().createElement("a", { + return C().createElement("a", { href: e, key: n, rel: "noopener noreferrer", target: "_blank" - }, yS(t)) + }, WC(t)) } } - class _S extends E.Component { + class KC extends x.Component { render() { - return x().createElement("span", this.props) + return C().createElement("span", this.props) } } - class wS extends E.Component { + class $C extends x.Component { constructor(e) { super(e), this._onPress = this._onPress.bind(this), this._renderItem = this._renderItem.bind(this) } @@ -13712,7 +15876,7 @@ meetings: t, t: n } = this.props; - return t ? x().createElement(Ns, { + return t ? C().createElement(ro, { "aria-label": n("welcomepage.recentList"), className: "meetings-list", role: "menu", @@ -13764,7 +15928,7 @@ onItemDelete: c, t: u } = this.props, d = this._onPress(s), p = this._onKeyPress(s), h = "item " + (d ? "with-click-handler" : "without-click-handler"); - return x().createElement(Ns, { + return C().createElement(ro, { "aria-label": o, className: h, key: t, @@ -13772,38 +15936,38 @@ onKeyPress: p, role: "menuitem", tabIndex: 0 - }, x().createElement(Ns, { + }, C().createElement(ro, { className: "left-column" - }, x().createElement(_S, { + }, C().createElement(KC, { className: "title" }, function(e) { - return zi(e).format("LL") // BAO - }(n)), x().createElement(_S, { + return wi(e).format("ll") + }(n)), C().createElement(KC, { className: "subtitle" }, function(e) { - if (e && e.length > 0) return e.map((e => zi(e).format("LT"))).join(" - ") - }(i))), x().createElement(Ns, { + if (e && e.length > 0) return e.map((e => wi(e).format("LT"))).join(" - ") + }(i))), C().createElement(ro, { className: "right-column" - }, x().createElement(_S, { + }, C().createElement(KC, { className: "title" - }, o), l || !s ? null : x().createElement(_S, null, s), "number" == typeof a ? x().createElement(_S, { + }, o), l || !s ? null : C().createElement(KC, null, s), "number" == typeof a ? C().createElement(KC, { className: "subtitle" - }, Ri(a)) : null), x().createElement(Ns, { + }, Si(a)) : null), C().createElement(ro, { className: "actions" - }, r || null, c && x().createElement(qs, { + }, r || null, c && C().createElement(lo, { ariaLabel: u("welcomepage.recentListDelete"), className: "delete-meeting", onClick: this._onDelete(e), onKeyPress: this._onDeleteKeyPress(e), role: "button", - src: Ip, + src: md, tabIndex: 0 }))) } } - const SS = Li(wS); - var ES = n(1395); - const xS = function(e) { + const JC = Ei($C); + var ZC = n(1395); + const QC = function(e) { return function(t) { return function(n) { var a = n(t), @@ -13812,17 +15976,15 @@ } } }; - var CS = n(7329), - AS = n.n(CS); - var jS = { - getAtlaskitAnalyticsContext: AS().func, - getAtlaskitAnalyticsEventHandlers: AS().func + var XC = { + getAtlaskitAnalyticsContext: T().func, + getAtlaskitAnalyticsEventHandlers: T().func }, - PS = function() { + eA = function() { return [] }, - DS = function(e) { - tb(r, e); + tA = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -13833,64 +15995,64 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r(e) { var t; - return Jg(this, r), Zf(_(t = a.call(this, e)), "getChildContext", (function() { + return Ya(this, r), $a(w(t = a.call(this, e)), "getChildContext", (function() { return { getAtlaskitAnalyticsContext: t.getAnalyticsContext } - })), Zf(_(t), "getAnalyticsContext", (function() { + })), $a(w(t), "getAnalyticsContext", (function() { var e = t.props.data, n = t.context.getAtlaskitAnalyticsContext; - return [].concat($g((void 0 === n ? PS : n)()), [e]) - })), Zf(_(t), "getAnalyticsEventHandlers", (function() { + return [].concat(wr((void 0 === n ? eA : n)()), [e]) + })), $a(w(t), "getAnalyticsEventHandlers", (function() { var e = t.context.getAtlaskitAnalyticsEventHandlers; - return (void 0 === e ? PS : e)() + return (void 0 === e ? eA : e)() })), t.contextValue = { getAtlaskitAnalyticsContext: t.getAnalyticsContext, getAtlaskitAnalyticsEventHandlers: t.getAnalyticsEventHandlers }, t } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this.props.children; - return x().createElement(sb.Provider, { + return C().createElement(ob.Provider, { value: this.contextValue }, e) } }]), r - }(E.Component); - Zf(DS, "contextTypes", jS), Zf(DS, "childContextTypes", jS); - const TS = DS, - OS = n(554).env.ANALYTICS_NEXT_MODERN_CONTEXT ? function(e) { + }(x.Component); + $a(tA, "contextTypes", XC), $a(tA, "childContextTypes", XC); + const nA = tA, + aA = n(554).env.ANALYTICS_NEXT_MODERN_CONTEXT ? function(e) { var t = e.data, n = e.children, - a = ub(t), - r = lb(), - i = (0, E.useCallback)((function() { - return [].concat($g(r.getAtlaskitAnalyticsContext()), [a.current]) + a = cb(t), + r = sb(), + i = (0, x.useCallback)((function() { + return [].concat(wr(r.getAtlaskitAnalyticsContext()), [a.current]) }), [r, a]), - o = (0, E.useMemo)((function() { + o = (0, x.useMemo)((function() { return { getAtlaskitAnalyticsContext: i, getAtlaskitAnalyticsEventHandlers: r.getAtlaskitAnalyticsEventHandlers } }), [r, i]); - return x().createElement(sb.Provider, { + return C().createElement(ob.Provider, { value: o }, n) - } : TS; + } : nA; - function MS(e, t) { + function rA(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -13901,28 +16063,28 @@ return n } - function IS(e) { + function iA(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? MS(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : MS(Object(n)).forEach((function(t) { + t % 2 ? rA(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : rA(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - const NS = function(e) { + const oA = function(e) { return function(t) { - var n = (0, E.forwardRef)((function(n, a) { + var n = (0, x.forwardRef)((function(n, a) { var r = n.analyticsContext, - i = Fg(n, ["analyticsContext"]), - o = (0, E.useMemo)((function() { - return IS(IS({}, e), r) + i = Yg(n, ["analyticsContext"]), + o = (0, x.useMemo)((function() { + return iA(iA({}, e), r) }), [r]); - return x().createElement(OS, { + return C().createElement(aA, { data: o - }, x().createElement(t, z({}, i, { + }, C().createElement(t, z({}, i, { ref: a }))) })); @@ -13930,7 +16092,7 @@ } }; - function zS(e, t) { + function sA(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -13941,27 +16103,27 @@ return n } - function RS(e) { + function lA(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? zS(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : zS(Object(n)).forEach((function(t) { + t % 2 ? sA(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : sA(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - function LS() { + function cA() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = arguments.length > 1 ? arguments[1] : void 0, - n = cb(), + n = lb(), a = n.createAnalyticsEvent, - r = (0, E.useMemo)((function() { + r = (0, x.useMemo)((function() { return Object.keys(e).reduce((function(n, r) { var i = e[r]; - if (!["object", "function"].includes(nb(i))) return n; + if (!["object", "function"].includes(yr(i))) return n; var o = t[r], s = function() { var e = "function" == typeof i ? i(a, t) : a(i); @@ -13970,20 +16132,20 @@ o.apply(void 0, r.concat([e])) } }; - return s ? RS(RS({}, n), {}, Zf({}, r, s)) : n + return s ? lA(lA({}, n), {}, $a({}, r, s)) : n }), {}) }), [e, t, a]); return { patchedEventProps: r } } - const FS = function() { + const uA = function() { var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; return function(t) { - var n = (0, E.forwardRef)((function(n, a) { - var r = LS(e, n).patchedEventProps, - i = cb().createAnalyticsEvent; - return x().createElement(t, z({}, n, r, { + var n = (0, x.forwardRef)((function(n, a) { + var r = cA(e, n).patchedEventProps, + i = lb().createAnalyticsEvent; + return C().createElement(t, z({}, n, r, { createAnalyticsEvent: i, ref: a })) @@ -13991,74 +16153,74 @@ return n.displayName = "WithAnalyticsEvents(".concat(t.displayName || t.name, ")"), n } }; - var qS = n(1667), - BS = n.n(qS); + var dA = n(1667), + pA = n.n(dA); - function US(e) { + function hA(e) { var t = e.children, n = e.innerRef, - a = E.useContext(Bk), - r = E.useCallback((function(e) { - Wk(n, e), Vk(a, e) + a = x.useContext(sE), + r = x.useCallback((function(e) { + dE(n, e), uE(a, e) }), [n, a]); - return E.useEffect((function() { + return x.useEffect((function() { return function() { - return Wk(n, null) + return dE(n, null) } - })), E.useEffect((function() { - BS()(Boolean(a), "`Reference` should not be used outside of a `Manager` component.") - }), [a]), Hk(t)({ + })), x.useEffect((function() { + pA()(Boolean(a), "`Reference` should not be used outside of a `Manager` component.") + }), [a]), cE(t)({ ref: r }) } - const HS = JSON.parse('{"u2":"@atlaskit/inline-dialog","i8":"13.0.9"}'); - var VS = n(5791), - WS = ((0, VS.Z)({ - light: "box-shadow: 0 1px 1px ".concat(mb.N50A, ", 0 0 1px 1px ").concat(mb.N40A, ";"), - dark: "box-shadow: 0 1px 1px ".concat(mb.DN50A, ", 0 0 1px 1px ").concat(mb.DN40A, ";") - }), (0, VS.Z)({ - light: "box-shadow: 0 4px 8px -2px ".concat(mb.N50A, ", 0 0 1px ").concat(mb.N60A, ";"), - dark: "box-shadow: 0 4px 8px -2px ".concat(mb.DN50A, ", 0 0 1px ").concat(mb.DN60A, ";") + const mA = JSON.parse('{"u2":"@atlaskit/inline-dialog","i8":"13.0.9"}'); + var fA = n(5791), + gA = ((0, fA.Z)({ + light: "box-shadow: 0 1px 1px ".concat(hb.N50A, ", 0 0 1px 1px ").concat(hb.N40A, ";"), + dark: "box-shadow: 0 1px 1px ".concat(hb.DN50A, ", 0 0 1px 1px ").concat(hb.DN40A, ";") + }), (0, fA.Z)({ + light: "box-shadow: 0 4px 8px -2px ".concat(hb.N50A, ", 0 0 1px ").concat(hb.N60A, ";"), + dark: "box-shadow: 0 4px 8px -2px ".concat(hb.DN50A, ", 0 0 1px ").concat(hb.DN60A, ";") })); - function YS(e, t) { + function bA(e, t) { return function(n) { return e(n) * t } } - function GS(e, t) { + function yA(e, t) { return function(n) { return e(n) / t } } - function KS() { - var e = Jf(["\n background: ", ";\n border-radius: ", "px;\n box-sizing: content-box; /* do not set this to border-box or it will break the overflow handling */\n color: ", ";\n max-height: ", "px;\n max-width: ", "px;\n padding: ", "px ", "px;\n z-index: ", ";\n\n ", ";\n\n &:focus {\n outline: none;\n }\n"]); - return KS = function() { + function vA() { + var e = sg(["\n background: ", ";\n border-radius: ", "px;\n box-sizing: content-box; /* do not set this to border-box or it will break the overflow handling */\n color: ", ";\n max-height: ", "px;\n max-width: ", "px;\n padding: ", "px ", "px;\n z-index: ", ";\n\n ", ";\n\n &:focus {\n outline: none;\n }\n"]); + return vA = function() { return e }, e - }(0, VS.Z)({ - light: "box-shadow: 0 8px 16px -4px ".concat(mb.N50A, ", 0 0 1px ").concat(mb.N60A, ";"), - dark: "box-shadow: 0 8px 16px -4px ".concat(mb.DN50A, ", 0 0 1px ").concat(mb.DN60A, ";") - }), (0, VS.Z)({ - light: "box-shadow: 0 12px 24px -6px ".concat(mb.N50A, ", 0 0 1px ").concat(mb.N60A, ";"), - dark: "box-shadow: 0 12px 24px -6px ".concat(mb.DN50A, ", 0 0 1px ").concat(mb.DN60A, ";") - }), (0, VS.Z)({ - light: "box-shadow: 0 20px 32px -8px ".concat(mb.N50A, ", 0 0 1px ").concat(mb.N60A, ";"), - dark: "box-shadow: 0 20px 32px -8px ".concat(mb.DN50A, ", 0 0 1px ").concat(mb.DN60A, ";") + }(0, fA.Z)({ + light: "box-shadow: 0 8px 16px -4px ".concat(hb.N50A, ", 0 0 1px ").concat(hb.N60A, ";"), + dark: "box-shadow: 0 8px 16px -4px ".concat(hb.DN50A, ", 0 0 1px ").concat(hb.DN60A, ";") + }), (0, fA.Z)({ + light: "box-shadow: 0 12px 24px -6px ".concat(hb.N50A, ", 0 0 1px ").concat(hb.N60A, ";"), + dark: "box-shadow: 0 12px 24px -6px ".concat(hb.DN50A, ", 0 0 1px ").concat(hb.DN60A, ";") + }), (0, fA.Z)({ + light: "box-shadow: 0 20px 32px -8px ".concat(hb.N50A, ", 0 0 1px ").concat(hb.N60A, ";"), + dark: "box-shadow: 0 20px 32px -8px ".concat(hb.DN50A, ", 0 0 1px ").concat(hb.DN60A, ";") }); - var $S = (0, VS.Z)({ - light: mb.N0, - dark: mb.DN50 + var kA = (0, fA.Z)({ + light: hb.N0, + dark: hb.DN50 }), - JS = (0, VS.Z)({ - light: mb.N900, - dark: mb.DN600 + _A = (0, fA.Z)({ + light: hb.N900, + dark: hb.DN600 }), - ZS = Ug.default.div(KS(), $S, Vg, JS, YS(Wg, 56), YS(Wg, 56), YS(Wg, 2), YS(Wg, 3), Gg.dialog, WS); - var QS = function(e) { - tb(r, e); + wA = $g.default.div(vA(), kA, Zg, _A, bA(Qg, 56), bA(Qg, 56), bA(Qg, 2), bA(Qg, 3), eb.dialog, gA); + var SA = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -14069,19 +16231,19 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { var e; - Jg(this, r); + Ya(this, r); for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "handleClickOutside", (function(t) { + return $a(w(e = a.call.apply(a, [this].concat(n))), "handleClickOutside", (function(t) { var n = e.props, a = n.isOpen, r = n.onClose; @@ -14096,7 +16258,7 @@ } })), e } - return Qg(r, [{ + return Ka(r, [{ key: "componentDidUpdate", value: function(e) { "undefined" != typeof window && (!e.isOpen && this.props.isOpen ? window.addEventListener("click", this.handleClickOutside, !0) : e.isOpen && !this.props.isOpen && window.removeEventListener("click", this.handleClickOutside, !0)) @@ -14124,12 +16286,12 @@ s = t.onContentFocus, l = t.onContentClick, c = t.testId, - u = r ? x().createElement(fw, { + u = r ? C().createElement(Nx, { placement: a }, (function(t) { var n = t.ref, a = t.style; - return x().createElement(ZS, { + return C().createElement(wA, { onBlur: o, onFocus: s, onClick: l, @@ -14140,9 +16302,9 @@ "data-testid": c }, i) })) : null; - return x().createElement(Uk, null, x().createElement(US, null, (function(t) { + return C().createElement(lE, null, C().createElement(hA, null, (function(t) { var a = t.ref; - return x().createElement(ES.Z, { + return C().createElement(ZC.Z, { innerRef: function(t) { e.triggerRef = t, "function" == typeof a ? a(t) : a.current = t } @@ -14150,8 +16312,8 @@ })), u) } }]), r - }(E.Component); - Zf(QS, "defaultProps", { + }(x.Component); + $a(SA, "defaultProps", { isOpen: !1, onContentBlur: function() {}, onContentClick: function() {}, @@ -14159,23 +16321,23 @@ onClose: function() {}, placement: "bottom-start" }); - var XS = xS("atlaskit"); - const eE = NS({ + var EA = QC("atlaskit"); + const xA = oA({ componentName: "inlineDialog", - packageName: HS.u2, - packageVersion: HS.i8 - })(FS({ - onClose: XS({ + packageName: mA.u2, + packageVersion: mA.i8 + })(uA({ + onClose: EA({ action: "closed", actionSubject: "inlineDialog", attributes: { componentName: "inlineDialog", - packageName: HS.u2, - packageVersion: HS.i8 + packageName: mA.u2, + packageVersion: mA.i8 } }) - })(QS)), - tE = function(e) { + })(SA)), + CA = function(e) { var t = [], n = null, a = function() { @@ -14188,13 +16350,13 @@ n && (cancelAnimationFrame(n), n = null) }, a }; - var nE = "undefined" != typeof window && "undefined" != typeof document && "undefined" != typeof navigator, - aE = function() { + var AA = "undefined" != typeof window && "undefined" != typeof document && "undefined" != typeof navigator, + TA = function() { for (var e = ["Edge", "Trident", "Firefox"], t = 0; t < e.length; t += 1) - if (nE && navigator.userAgent.indexOf(e[t]) >= 0) return 1; + if (AA && navigator.userAgent.indexOf(e[t]) >= 0) return 1; return 0 }(), - rE = nE && window.Promise ? function(e) { + DA = AA && window.Promise ? function(e) { var t = !1; return function() { t || (t = !0, window.Promise.resolve().then((function() { @@ -14206,25 +16368,25 @@ return function() { t || (t = !0, setTimeout((function() { t = !1, e() - }), aE)) + }), TA)) } }; - function iE(e) { + function PA(e) { return e && "[object Function]" === {}.toString.call(e) } - function oE(e, t) { + function jA(e, t) { if (1 !== e.nodeType) return []; var n = e.ownerDocument.defaultView.getComputedStyle(e, null); return t ? n[t] : n } - function sE(e) { + function MA(e) { return "HTML" === e.nodeName ? e : e.parentNode || e.host } - function lE(e) { + function IA(e) { if (!e) return document.body; switch (e.nodeName) { case "HTML": @@ -14233,35 +16395,35 @@ case "#document": return e.body } - var t = oE(e), + var t = jA(e), n = t.overflow, a = t.overflowX, r = t.overflowY; - return /(auto|scroll|overlay)/.test(n + r + a) ? e : lE(sE(e)) + return /(auto|scroll|overlay)/.test(n + r + a) ? e : IA(MA(e)) } - function cE(e) { + function OA(e) { return e && e.referenceNode ? e.referenceNode : e } - var uE = nE && !(!window.MSInputMethodContext || !document.documentMode), - dE = nE && /MSIE 10/.test(navigator.userAgent); + var NA = AA && !(!window.MSInputMethodContext || !document.documentMode), + RA = AA && /MSIE 10/.test(navigator.userAgent); - function pE(e) { - return 11 === e ? uE : 10 === e ? dE : uE || dE + function zA(e) { + return 11 === e ? NA : 10 === e ? RA : NA || RA } - function hE(e) { + function LA(e) { if (!e) return document.documentElement; - for (var t = pE(10) ? document.body : null, n = e.offsetParent || null; n === t && e.nextElementSibling;) n = (e = e.nextElementSibling).offsetParent; + for (var t = zA(10) ? document.body : null, n = e.offsetParent || null; n === t && e.nextElementSibling;) n = (e = e.nextElementSibling).offsetParent; var a = n && n.nodeName; - return a && "BODY" !== a && "HTML" !== a ? -1 !== ["TH", "TD", "TABLE"].indexOf(n.nodeName) && "static" === oE(n, "position") ? hE(n) : n : e ? e.ownerDocument.documentElement : document.documentElement + return a && "BODY" !== a && "HTML" !== a ? -1 !== ["TH", "TD", "TABLE"].indexOf(n.nodeName) && "static" === jA(n, "position") ? LA(n) : n : e ? e.ownerDocument.documentElement : document.documentElement } - function mE(e) { - return null !== e.parentNode ? mE(e.parentNode) : e + function FA(e) { + return null !== e.parentNode ? FA(e.parentNode) : e } - function fE(e, t) { + function qA(e, t) { if (!(e && e.nodeType && t && t.nodeType)) return document.documentElement; var n = e.compareDocumentPosition(t) & Node.DOCUMENT_POSITION_FOLLOWING, a = n ? e : t, @@ -14269,12 +16431,12 @@ i = document.createRange(); i.setStart(a, 0), i.setEnd(r, 0); var o, s, l = i.commonAncestorContainer; - if (e !== l && t !== l || a.contains(r)) return "BODY" === (s = (o = l).nodeName) || "HTML" !== s && hE(o.firstElementChild) !== o ? hE(l) : l; - var c = mE(e); - return c.host ? fE(c.host, t) : fE(e, mE(t).host) + if (e !== l && t !== l || a.contains(r)) return "BODY" === (s = (o = l).nodeName) || "HTML" !== s && LA(o.firstElementChild) !== o ? LA(l) : l; + var c = FA(e); + return c.host ? qA(c.host, t) : qA(e, FA(t).host) } - function gE(e) { + function BA(e) { var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "top", n = "top" === t ? "scrollTop" : "scrollLeft", a = e.nodeName; @@ -14286,37 +16448,37 @@ return e[n] } - function bE(e, t) { + function UA(e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], - a = gE(t, "top"), - r = gE(t, "left"), + a = BA(t, "top"), + r = BA(t, "left"), i = n ? -1 : 1; return e.top += a * i, e.bottom += a * i, e.left += r * i, e.right += r * i, e } - function yE(e, t) { + function HA(e, t) { var n = "x" === t ? "Left" : "Top", a = "Left" === n ? "Right" : "Bottom"; return parseFloat(e["border" + n + "Width"]) + parseFloat(e["border" + a + "Width"]) } - function vE(e, t, n, a) { - return Math.max(t["offset" + e], t["scroll" + e], n["client" + e], n["offset" + e], n["scroll" + e], pE(10) ? parseInt(n["offset" + e]) + parseInt(a["margin" + ("Height" === e ? "Top" : "Left")]) + parseInt(a["margin" + ("Height" === e ? "Bottom" : "Right")]) : 0) + function VA(e, t, n, a) { + return Math.max(t["offset" + e], t["scroll" + e], n["client" + e], n["offset" + e], n["scroll" + e], zA(10) ? parseInt(n["offset" + e]) + parseInt(a["margin" + ("Height" === e ? "Top" : "Left")]) + parseInt(a["margin" + ("Height" === e ? "Bottom" : "Right")]) : 0) } - function kE(e) { + function WA(e) { var t = e.body, n = e.documentElement, - a = pE(10) && getComputedStyle(n); + a = zA(10) && getComputedStyle(n); return { - height: vE("Height", t, n, a), - width: vE("Width", t, n, a) + height: VA("Height", t, n, a), + width: VA("Width", t, n, a) } } - var _E = function(e, t) { + var YA = function(e, t) { if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") }, - wE = function() { + GA = function() { function e(e, t) { for (var n = 0; n < t.length; n++) { var a = t[n]; @@ -14327,7 +16489,7 @@ return n && e(t.prototype, n), a && e(t, a), t } }(), - SE = function(e, t, n) { + KA = function(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, @@ -14335,7 +16497,7 @@ writable: !0 }) : e[t] = n, e }, - EE = Object.assign || function(e) { + $A = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) @@ -14343,20 +16505,20 @@ return e }; - function xE(e) { - return EE({}, e, { + function JA(e) { + return $A({}, e, { right: e.left + e.width, bottom: e.top + e.height }) } - function CE(e) { + function ZA(e) { var t = {}; try { - if (pE(10)) { + if (zA(10)) { t = e.getBoundingClientRect(); - var n = gE(e, "top"), - a = gE(e, "left"); + var n = BA(e, "top"), + a = BA(e, "left"); t.top += n, t.left += a, t.bottom += n, t.right += a } else t = e.getBoundingClientRect() } catch (e) {} @@ -14366,30 +16528,30 @@ width: t.right - t.left, height: t.bottom - t.top }, - i = "HTML" === e.nodeName ? kE(e.ownerDocument) : {}, + i = "HTML" === e.nodeName ? WA(e.ownerDocument) : {}, o = i.width || e.clientWidth || r.width, s = i.height || e.clientHeight || r.height, l = e.offsetWidth - o, c = e.offsetHeight - s; if (l || c) { - var u = oE(e); - l -= yE(u, "x"), c -= yE(u, "y"), r.width -= l, r.height -= c + var u = jA(e); + l -= HA(u, "x"), c -= HA(u, "y"), r.width -= l, r.height -= c } - return xE(r) + return JA(r) } - function AE(e, t) { + function QA(e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], - a = pE(10), + a = zA(10), r = "HTML" === t.nodeName, - i = CE(e), - o = CE(t), - s = lE(e), - l = oE(t), + i = ZA(e), + o = ZA(t), + s = IA(e), + l = jA(t), c = parseFloat(l.borderTopWidth), u = parseFloat(l.borderLeftWidth); n && r && (o.top = Math.max(o.top, 0), o.left = Math.max(o.left, 0)); - var d = xE({ + var d = JA({ top: i.top - o.top - c, left: i.left - o.left - u, width: i.width, @@ -14400,55 +16562,55 @@ h = parseFloat(l.marginLeft); d.top -= c - p, d.bottom -= c - p, d.left -= u - h, d.right -= u - h, d.marginTop = p, d.marginLeft = h } - return (a && !n ? t.contains(s) : t === s && "BODY" !== s.nodeName) && (d = bE(d, t)), d + return (a && !n ? t.contains(s) : t === s && "BODY" !== s.nodeName) && (d = UA(d, t)), d } - function jE(e) { + function XA(e) { var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], n = e.ownerDocument.documentElement, - a = AE(e, n), + a = QA(e, n), r = Math.max(n.clientWidth, window.innerWidth || 0), i = Math.max(n.clientHeight, window.innerHeight || 0), - o = t ? 0 : gE(n), - s = t ? 0 : gE(n, "left"), + o = t ? 0 : BA(n), + s = t ? 0 : BA(n, "left"), l = { top: o - a.top + a.marginTop, left: s - a.left + a.marginLeft, width: r, height: i }; - return xE(l) + return JA(l) } - function PE(e) { + function eT(e) { var t = e.nodeName; if ("BODY" === t || "HTML" === t) return !1; - if ("fixed" === oE(e, "position")) return !0; - var n = sE(e); - return !!n && PE(n) + if ("fixed" === jA(e, "position")) return !0; + var n = MA(e); + return !!n && eT(n) } - function DE(e) { - if (!e || !e.parentElement || pE()) return document.documentElement; - for (var t = e.parentElement; t && "none" === oE(t, "transform");) t = t.parentElement; + function tT(e) { + if (!e || !e.parentElement || zA()) return document.documentElement; + for (var t = e.parentElement; t && "none" === jA(t, "transform");) t = t.parentElement; return t || document.documentElement } - function TE(e, t, n, a) { + function nT(e, t, n, a) { var r = arguments.length > 4 && void 0 !== arguments[4] && arguments[4], i = { top: 0, left: 0 }, - o = r ? DE(e) : fE(e, cE(t)); - if ("viewport" === a) i = jE(o, r); + o = r ? tT(e) : qA(e, OA(t)); + if ("viewport" === a) i = XA(o, r); else { var s = void 0; - "scrollParent" === a ? "BODY" === (s = lE(sE(t))).nodeName && (s = e.ownerDocument.documentElement) : s = "window" === a ? e.ownerDocument.documentElement : a; - var l = AE(s, o, r); - if ("HTML" !== s.nodeName || PE(o)) i = l; + "scrollParent" === a ? "BODY" === (s = IA(MA(t))).nodeName && (s = e.ownerDocument.documentElement) : s = "window" === a ? e.ownerDocument.documentElement : a; + var l = QA(s, o, r); + if ("HTML" !== s.nodeName || eT(o)) i = l; else { - var c = kE(e.ownerDocument), + var c = WA(e.ownerDocument), u = c.height, d = c.width; i.top += l.top - l.marginTop, i.bottom = u + l.top, i.left += l.left - l.marginLeft, i.right = d + l.left @@ -14458,14 +16620,14 @@ return i.left += p ? n : n.left || 0, i.top += p ? n : n.top || 0, i.right -= p ? n : n.right || 0, i.bottom -= p ? n : n.bottom || 0, i } - function OE(e) { + function aT(e) { return e.width * e.height } - function ME(e, t, n, a, r) { + function rT(e, t, n, a, r) { var i = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : 0; if (-1 === e.indexOf("auto")) return e; - var o = TE(n, a, i, r), + var o = nT(n, a, i, r), s = { top: { width: o.width, @@ -14485,10 +16647,10 @@ } }, l = Object.keys(s).map((function(e) { - return EE({ + return $A({ key: e }, s[e], { - area: OE(s[e]) + area: aT(s[e]) }) })).sort((function(e, t) { return t.area - e.area @@ -14503,13 +16665,13 @@ return u + (d ? "-" + d : "") } - function IE(e, t, n) { + function iT(e, t, n) { var a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, - r = a ? DE(t) : fE(t, cE(n)); - return AE(n, r, a) + r = a ? tT(t) : qA(t, OA(n)); + return QA(n, r, a) } - function NE(e) { + function oT(e) { var t = e.ownerDocument.defaultView.getComputedStyle(e), n = parseFloat(t.marginTop || 0) + parseFloat(t.marginBottom || 0), a = parseFloat(t.marginLeft || 0) + parseFloat(t.marginRight || 0); @@ -14519,7 +16681,7 @@ } } - function zE(e) { + function sT(e) { var t = { left: "right", right: "left", @@ -14531,9 +16693,9 @@ })) } - function RE(e, t, n) { + function lT(e, t, n) { n = n.split("-")[0]; - var a = NE(e), + var a = oT(e), r = { width: a.width, height: a.height @@ -14543,19 +16705,19 @@ s = i ? "left" : "top", l = i ? "height" : "width", c = i ? "width" : "height"; - return r[o] = t[o] + t[l] / 2 - a[l] / 2, r[s] = n === s ? t[s] - a[c] : t[zE(s)], r + return r[o] = t[o] + t[l] / 2 - a[l] / 2, r[s] = n === s ? t[s] - a[c] : t[sT(s)], r } - function LE(e, t) { + function cT(e, t) { return Array.prototype.find ? e.find(t) : e.filter(t)[0] } - function FE(e, t, n) { + function uT(e, t, n) { var a = void 0 === n ? e : e.slice(0, function(e, t, n) { if (Array.prototype.findIndex) return e.findIndex((function(e) { return e.name === n })); - var a = LE(e, (function(e) { + var a = cT(e, (function(e) { return e.name === n })); return e.indexOf(a) @@ -14563,11 +16725,11 @@ return a.forEach((function(e) { e.function && console.warn("`modifier.function` is deprecated, use `modifier.fn`!"); var n = e.function || e.fn; - e.enabled && iE(n) && (t.offsets.popper = xE(t.offsets.popper), t.offsets.reference = xE(t.offsets.reference), t = n(t, e)) + e.enabled && PA(n) && (t.offsets.popper = JA(t.offsets.popper), t.offsets.reference = JA(t.offsets.reference), t = n(t, e)) })), t } - function qE() { + function dT() { if (!this.state.isDestroyed) { var e = { instance: this, @@ -14577,18 +16739,18 @@ flipped: !1, offsets: {} }; - e.offsets.reference = IE(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = ME(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = RE(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", e = FE(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) + e.offsets.reference = iT(this.state, this.popper, this.reference, this.options.positionFixed), e.placement = rT(this.options.placement, e.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding), e.originalPlacement = e.placement, e.positionFixed = this.options.positionFixed, e.offsets.popper = lT(this.popper, e.offsets.reference, e.placement), e.offsets.popper.position = this.options.positionFixed ? "fixed" : "absolute", e = uT(this.modifiers, e), this.state.isCreated ? this.options.onUpdate(e) : (this.state.isCreated = !0, this.options.onCreate(e)) } } - function BE(e, t) { + function pT(e, t) { return e.some((function(e) { var n = e.name; return e.enabled && n === t })) } - function UE(e) { + function hT(e) { for (var t = [!1, "ms", "Webkit", "Moz", "O"], n = e.charAt(0).toUpperCase() + e.slice(1), a = 0; a < t.length; a++) { var r = t[a], i = r ? "" + r + n : e; @@ -14597,55 +16759,55 @@ return null } - function HE() { - return this.state.isDestroyed = !0, BE(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[UE("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this + function mT() { + return this.state.isDestroyed = !0, pT(this.modifiers, "applyStyle") && (this.popper.removeAttribute("x-placement"), this.popper.style.position = "", this.popper.style.top = "", this.popper.style.left = "", this.popper.style.right = "", this.popper.style.bottom = "", this.popper.style.willChange = "", this.popper.style[hT("transform")] = ""), this.disableEventListeners(), this.options.removeOnDestroy && this.popper.parentNode.removeChild(this.popper), this } - function VE(e) { + function fT(e) { var t = e.ownerDocument; return t ? t.defaultView : window } - function WE(e, t, n, a) { + function gT(e, t, n, a) { var r = "BODY" === e.nodeName, i = r ? e.ownerDocument.defaultView : e; i.addEventListener(t, n, { passive: !0 - }), r || WE(lE(i.parentNode), t, n, a), a.push(i) + }), r || gT(IA(i.parentNode), t, n, a), a.push(i) } - function YE(e, t, n, a) { - n.updateBound = a, VE(e).addEventListener("resize", n.updateBound, { + function bT(e, t, n, a) { + n.updateBound = a, fT(e).addEventListener("resize", n.updateBound, { passive: !0 }); - var r = lE(e); - return WE(r, "scroll", n.updateBound, n.scrollParents), n.scrollElement = r, n.eventsEnabled = !0, n + var r = IA(e); + return gT(r, "scroll", n.updateBound, n.scrollParents), n.scrollElement = r, n.eventsEnabled = !0, n } - function GE() { - this.state.eventsEnabled || (this.state = YE(this.reference, this.options, this.state, this.scheduleUpdate)) + function yT() { + this.state.eventsEnabled || (this.state = bT(this.reference, this.options, this.state, this.scheduleUpdate)) } - function KE() { + function vT() { var e, t; - this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (e = this.reference, t = this.state, VE(e).removeEventListener("resize", t.updateBound), t.scrollParents.forEach((function(e) { + this.state.eventsEnabled && (cancelAnimationFrame(this.scheduleUpdate), this.state = (e = this.reference, t = this.state, fT(e).removeEventListener("resize", t.updateBound), t.scrollParents.forEach((function(e) { e.removeEventListener("scroll", t.updateBound) })), t.updateBound = null, t.scrollParents = [], t.scrollElement = null, t.eventsEnabled = !1, t)) } - function $E(e) { + function kT(e) { return "" !== e && !isNaN(parseFloat(e)) && isFinite(e) } - function JE(e, t) { + function _T(e, t) { Object.keys(t).forEach((function(n) { - var a = ""; - 1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(n) && $E(t[n]) && (a = "px"), e.style[n] = t[n] + a + var a = ""; - 1 !== ["width", "height", "top", "right", "bottom", "left"].indexOf(n) && kT(t[n]) && (a = "px"), e.style[n] = t[n] + a })) } - var ZE = nE && /Firefox/i.test(navigator.userAgent); + var wT = AA && /Firefox/i.test(navigator.userAgent); - function QE(e, t, n) { - var a = LE(e, (function(e) { + function ST(e, t, n) { + var a = cT(e, (function(e) { return e.name === t })), r = !!a && e.some((function(e) { @@ -14658,16 +16820,16 @@ } return r } - var XE = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"], - ex = XE.slice(3); + var ET = ["auto-start", "auto", "auto-end", "top-start", "top", "top-end", "right-start", "right", "right-end", "bottom-end", "bottom", "bottom-start", "left-end", "left", "left-start"], + xT = ET.slice(3); - function tx(e) { + function CT(e) { var t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1], - n = ex.indexOf(e), - a = ex.slice(n + 1).concat(ex.slice(0, n)); + n = xT.indexOf(e), + a = xT.slice(n + 1).concat(xT.slice(0, n)); return t ? a.reverse() : a } - var nx = { + var AT = { shift: { order: 100, enabled: !0, @@ -14683,10 +16845,10 @@ l = s ? "left" : "top", c = s ? "width" : "height", u = { - start: SE({}, l, i[l]), - end: SE({}, l, i[l] + i[c] - o[c]) + start: KA({}, l, i[l]), + end: KA({}, l, i[l] + i[c] - o[c]) }; - e.offsets.popper = EE({}, o, u[a]) + e.offsets.popper = $A({}, o, u[a]) } return e } @@ -14701,13 +16863,13 @@ o = i.popper, s = i.reference, l = r.split("-")[0]; - return n = $E(+a) ? [+a, 0] : function(e, t, n, a) { + return n = kT(+a) ? [+a, 0] : function(e, t, n, a) { var r = [0, 0], i = -1 !== ["right", "left"].indexOf(a), o = e.split(/(\+|\-)/).map((function(e) { return e.trim() })), - s = o.indexOf(LE(o, (function(e) { + s = o.indexOf(cT(o, (function(e) { return -1 !== e.search(/,|\s/) }))); o[s] && -1 === o[s].indexOf(",") && console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead."); @@ -14723,12 +16885,12 @@ var r = e.match(/((?:\-|\+)?\d*\.?\d*)(.*)/), i = +r[1], o = r[2]; - return i ? 0 === o.indexOf("%") ? xE("%p" === o ? n : a)[t] / 100 * i : "vh" === o || "vw" === o ? ("vh" === o ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * i : i : e + return i ? 0 === o.indexOf("%") ? JA("%p" === o ? n : a)[t] / 100 * i : "vh" === o || "vw" === o ? ("vh" === o ? Math.max(document.documentElement.clientHeight, window.innerHeight || 0) : Math.max(document.documentElement.clientWidth, window.innerWidth || 0)) / 100 * i : i : e }(e, r, t, n) })) })), c.forEach((function(e, t) { e.forEach((function(n, a) { - $E(n) && (r[t] += n * ("-" === e[a - 1] ? -1 : 1)) + kT(n) && (r[t] += n * ("-" === e[a - 1] ? -1 : 1)) })) })), r }(a, o, s, l), "left" === l ? (o.top += n[0], o.left -= n[1]) : "right" === l ? (o.top += n[0], o.left += n[1]) : "top" === l ? (o.left += n[0], o.top -= n[1]) : "bottom" === l && (o.left += n[0], o.top += n[1]), e.popper = o, e @@ -14739,32 +16901,32 @@ order: 300, enabled: !0, fn: function(e, t) { - var n = t.boundariesElement || hE(e.instance.popper); - e.instance.reference === n && (n = hE(n)); - var a = UE("transform"), + var n = t.boundariesElement || LA(e.instance.popper); + e.instance.reference === n && (n = LA(n)); + var a = hT("transform"), r = e.instance.popper.style, i = r.top, o = r.left, s = r[a]; r.top = "", r.left = "", r[a] = ""; - var l = TE(e.instance.popper, e.instance.reference, t.padding, n, e.positionFixed); + var l = nT(e.instance.popper, e.instance.reference, t.padding, n, e.positionFixed); r.top = i, r.left = o, r[a] = s, t.boundaries = l; var c = t.priority, u = e.offsets.popper, d = { primary: function(e) { var n = u[e]; - return u[e] < l[e] && !t.escapeWithReference && (n = Math.max(u[e], l[e])), SE({}, e, n) + return u[e] < l[e] && !t.escapeWithReference && (n = Math.max(u[e], l[e])), KA({}, e, n) }, secondary: function(e) { var n = "right" === e ? "left" : "top", a = u[n]; - return u[e] > l[e] && !t.escapeWithReference && (a = Math.min(u[n], l[e] - ("right" === e ? u.width : u.height))), SE({}, n, a) + return u[e] > l[e] && !t.escapeWithReference && (a = Math.min(u[n], l[e] - ("right" === e ? u.width : u.height))), KA({}, n, a) } }; return c.forEach((function(e) { var t = -1 !== ["left", "top"].indexOf(e) ? "primary" : "secondary"; - u = EE({}, u, d[t](e)) + u = $A({}, u, d[t](e)) })), e.offsets.popper = u, e }, priority: ["left", "right", "top", "bottom"], @@ -14792,7 +16954,7 @@ enabled: !0, fn: function(e, t) { var n; - if (!QE(e.instance.modifiers, "arrow", "keepTogether")) return e; + if (!ST(e.instance.modifiers, "arrow", "keepTogether")) return e; var a = t.element; if ("string" == typeof a) { if (!(a = e.instance.popper.querySelector(a))) return e @@ -14807,14 +16969,14 @@ d = u.toLowerCase(), p = l ? "left" : "top", h = l ? "bottom" : "right", - m = NE(a)[c]; - s[h] - m < o[d] && (e.offsets.popper[d] -= o[d] - (s[h] - m)), s[d] + m > o[h] && (e.offsets.popper[d] += s[d] + m - o[h]), e.offsets.popper = xE(e.offsets.popper); + m = oT(a)[c]; + s[h] - m < o[d] && (e.offsets.popper[d] -= o[d] - (s[h] - m)), s[d] + m > o[h] && (e.offsets.popper[d] += s[d] + m - o[h]), e.offsets.popper = JA(e.offsets.popper); var f = s[d] + s[c] / 2 - m / 2, - g = oE(e.instance.popper), + g = jA(e.instance.popper), b = parseFloat(g["margin" + u]), y = parseFloat(g["border" + u + "Width"]), v = f - e.offsets.popper[d] - b - y; - return v = Math.max(Math.min(o[c] - m, v), 0), e.arrowElement = a, e.offsets.arrow = (SE(n = {}, d, Math.round(v)), SE(n, p, ""), n), e + return v = Math.max(Math.min(o[c] - m, v), 0), e.arrowElement = a, e.offsets.arrow = (KA(n = {}, d, Math.round(v)), KA(n, p, ""), n), e }, element: "[x-arrow]" }, @@ -14822,11 +16984,11 @@ order: 600, enabled: !0, fn: function(e, t) { - if (BE(e.instance.modifiers, "inner")) return e; + if (pT(e.instance.modifiers, "inner")) return e; if (e.flipped && e.placement === e.originalPlacement) return e; - var n = TE(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed), + var n = nT(e.instance.popper, e.instance.reference, t.padding, t.boundariesElement, e.positionFixed), a = e.placement.split("-")[0], - r = zE(a), + r = sT(a), i = e.placement.split("-")[1] || "", o = []; switch (t.behavior) { @@ -14834,17 +16996,17 @@ o = [a, r]; break; case "clockwise": - o = tx(a); + o = CT(a); break; case "counterclockwise": - o = tx(a, !0); + o = CT(a, !0); break; default: o = t.behavior } return o.forEach((function(s, l) { if (a !== s || o.length === l + 1) return e; - a = e.placement.split("-")[0], r = zE(a); + a = e.placement.split("-")[0], r = sT(a); var c = e.offsets.popper, u = e.offsets.reference, d = Math.floor, @@ -14860,7 +17022,7 @@ _ = v || k; (p || b || _) && (e.flipped = !0, (p || b) && (a = o[l + 1]), _ && (i = function(e) { return "end" === e ? "start" : "start" === e ? "end" : e - }(i)), e.placement = a + (i ? "-" + i : ""), e.offsets.popper = EE({}, e.offsets.popper, RE(e.instance.popper, e.offsets.reference, e.placement)), e = FE(e.instance.modifiers, e, "flip")) + }(i)), e.placement = a + (i ? "-" + i : ""), e.offsets.popper = $A({}, e.offsets.popper, lT(e.instance.popper, e.offsets.reference, e.placement)), e = uT(e.instance.modifiers, e, "flip")) })), e }, behavior: "flip", @@ -14880,16 +17042,16 @@ i = a.reference, o = -1 !== ["left", "right"].indexOf(n), s = -1 === ["top", "left"].indexOf(n); - return r[o ? "left" : "top"] = i[n] - (s ? r[o ? "width" : "height"] : 0), e.placement = zE(t), e.offsets.popper = xE(r), e + return r[o ? "left" : "top"] = i[n] - (s ? r[o ? "width" : "height"] : 0), e.placement = sT(t), e.offsets.popper = JA(r), e } }, hide: { order: 800, enabled: !0, fn: function(e) { - if (!QE(e.instance.modifiers, "hide", "preventOverflow")) return e; + if (!ST(e.instance.modifiers, "hide", "preventOverflow")) return e; var t = e.offsets.reference, - n = LE(e.instance.modifiers, (function(e) { + n = cT(e.instance.modifiers, (function(e) { return "preventOverflow" === e.name })).boundaries; if (t.bottom < n.top || t.left > n.right || t.top > n.bottom || t.right < n.left) { @@ -14909,13 +17071,13 @@ var n = t.x, a = t.y, r = e.offsets.popper, - i = LE(e.instance.modifiers, (function(e) { + i = cT(e.instance.modifiers, (function(e) { return "applyStyle" === e.name })).gpuAcceleration; void 0 !== i && console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!"); var o, s, l = void 0 !== i ? i : t.gpuAcceleration, - c = hE(e.instance.popper), - u = CE(c), + c = LA(e.instance.popper), + u = ZA(c), d = { position: r.position }, @@ -14940,10 +17102,10 @@ bottom: h(a.bottom), right: p(a.right) } - }(e, window.devicePixelRatio < 2 || !ZE), + }(e, window.devicePixelRatio < 2 || !wT), h = "bottom" === n ? "top" : "bottom", m = "right" === a ? "left" : "right", - f = UE("transform"); + f = hT("transform"); if (s = "bottom" === h ? "HTML" === c.nodeName ? -c.clientHeight + p.bottom : -u.height + p.bottom : p.top, o = "right" === m ? "HTML" === c.nodeName ? -c.clientWidth + p.right : -u.width + p.right : p.left, l && f) d[f] = "translate3d(" + o + "px, " + s + "px, 0)", d[h] = 0, d[m] = 0, d.willChange = "transform"; else { var g = "bottom" === h ? -1 : 1, @@ -14953,7 +17115,7 @@ var y = { "x-placement": e.placement }; - return e.attributes = EE({}, y, e.attributes), e.styles = EE({}, d, e.styles), e.arrowStyles = EE({}, e.offsets.arrow, e.arrowStyles), e + return e.attributes = $A({}, y, e.attributes), e.styles = $A({}, d, e.styles), e.arrowStyles = $A({}, e.offsets.arrow, e.arrowStyles), e }, gpuAcceleration: !0, x: "bottom", @@ -14964,87 +17126,87 @@ enabled: !0, fn: function(e) { var t, n; - return JE(e.instance.popper, e.styles), t = e.instance.popper, n = e.attributes, Object.keys(n).forEach((function(e) { + return _T(e.instance.popper, e.styles), t = e.instance.popper, n = e.attributes, Object.keys(n).forEach((function(e) { !1 !== n[e] ? t.setAttribute(e, n[e]) : t.removeAttribute(e) - })), e.arrowElement && Object.keys(e.arrowStyles).length && JE(e.arrowElement, e.arrowStyles), e + })), e.arrowElement && Object.keys(e.arrowStyles).length && _T(e.arrowElement, e.arrowStyles), e }, onLoad: function(e, t, n, a, r) { - var i = IE(r, t, e, n.positionFixed), - o = ME(n.placement, i, t, e, n.modifiers.flip.boundariesElement, n.modifiers.flip.padding); - return t.setAttribute("x-placement", o), JE(t, { + var i = iT(r, t, e, n.positionFixed), + o = rT(n.placement, i, t, e, n.modifiers.flip.boundariesElement, n.modifiers.flip.padding); + return t.setAttribute("x-placement", o), _T(t, { position: n.positionFixed ? "fixed" : "absolute" }), n }, gpuAcceleration: void 0 } }, - ax = { + TT = { placement: "bottom", positionFixed: !1, eventsEnabled: !0, removeOnDestroy: !1, onCreate: function() {}, onUpdate: function() {}, - modifiers: nx + modifiers: AT }, - rx = function() { + DT = function() { function e(t, n) { var a = this, r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; - _E(this, e), this.scheduleUpdate = function() { + YA(this, e), this.scheduleUpdate = function() { return requestAnimationFrame(a.update) - }, this.update = rE(this.update.bind(this)), this.options = EE({}, e.Defaults, r), this.state = { + }, this.update = DA(this.update.bind(this)), this.options = $A({}, e.Defaults, r), this.state = { isDestroyed: !1, isCreated: !1, scrollParents: [] - }, this.reference = t && t.jquery ? t[0] : t, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys(EE({}, e.Defaults.modifiers, r.modifiers)).forEach((function(t) { - a.options.modifiers[t] = EE({}, e.Defaults.modifiers[t] || {}, r.modifiers ? r.modifiers[t] : {}) + }, this.reference = t && t.jquery ? t[0] : t, this.popper = n && n.jquery ? n[0] : n, this.options.modifiers = {}, Object.keys($A({}, e.Defaults.modifiers, r.modifiers)).forEach((function(t) { + a.options.modifiers[t] = $A({}, e.Defaults.modifiers[t] || {}, r.modifiers ? r.modifiers[t] : {}) })), this.modifiers = Object.keys(this.options.modifiers).map((function(e) { - return EE({ + return $A({ name: e }, a.options.modifiers[e]) })).sort((function(e, t) { return e.order - t.order })), this.modifiers.forEach((function(e) { - e.enabled && iE(e.onLoad) && e.onLoad(a.reference, a.popper, a.options, e, a.state) + e.enabled && PA(e.onLoad) && e.onLoad(a.reference, a.popper, a.options, e, a.state) })), this.update(); var i = this.options.eventsEnabled; i && this.enableEventListeners(), this.state.eventsEnabled = i } - return wE(e, [{ + return GA(e, [{ key: "update", value: function() { - return qE.call(this) + return dT.call(this) } }, { key: "destroy", value: function() { - return HE.call(this) + return mT.call(this) } }, { key: "enableEventListeners", value: function() { - return GE.call(this) + return yT.call(this) } }, { key: "disableEventListeners", value: function() { - return KE.call(this) + return vT.call(this) } }]), e }(); - rx.Utils = ("undefined" != typeof window ? window : n.g).PopperUtils, rx.placements = XE, rx.Defaults = ax; - const ix = rx; - var ox = n(3945), - sx = Ug.default.div.withConfig({ + DT.Utils = ("undefined" != typeof window ? window : n.g).PopperUtils, DT.placements = ET, DT.Defaults = TT; + const PT = DT; + var jT = n(3945), + MT = $g.default.div.withConfig({ displayName: "ScrollBlock__Blanket", componentId: "sc-1xiww8k-0" })(["\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: transparent;\n"]); - function lx() { - return x().createElement(sx, null, x().createElement(ox.ZP, null)) + function IT() { + return C().createElement(MT, null, C().createElement(jT.ZP, null)) } - var cx = { + var OT = { "top left": { position: "top-start", animation: "top" @@ -15094,7 +17256,7 @@ animation: "left" } }; - const ux = Ug.default.div.withConfig({ + const NT = $g.default.div.withConfig({ displayName: "styledContentContainer", componentId: "p0j3f7-0" })(["\n [data-role='droplistContent'] {\n ", ";\n }\n"], (function(e) { @@ -15102,7 +17264,7 @@ return t ? "max-height: ".concat(t, "px") : "" })); - function dx(e, t) { + function RT(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -15113,18 +17275,18 @@ return n } - function px(e) { + function zT(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? dx(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : dx(Object(n)).forEach((function(t) { + t % 2 ? RT(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : RT(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var hx = Ug.default.div.withConfig({ + var LT = $g.default.div.withConfig({ displayName: "Layer__FixedTarget", componentId: "qunuuz-0" })(["\n ", ";\n"], (function(e) { @@ -15136,8 +17298,8 @@ } return "display: none;" })), - mx = function(e) { - tb(r, e); + FT = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -15148,21 +17310,21 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r(e) { var t; - return Jg(this, r), Zf(_(t = a.call(this, e)), "popper", void 0), Zf(_(t), "targetRef", void 0), Zf(_(t), "contentRef", void 0), Zf(_(t), "fixedRef", void 0), Zf(_(t), "extractStyles", (function(e) { + return Ya(this, r), $a(w(t = a.call(this, e)), "popper", void 0), $a(w(t), "targetRef", void 0), $a(w(t), "contentRef", void 0), $a(w(t), "fixedRef", void 0), $a(w(t), "extractStyles", (function(e) { if (e) { var n = e.offsets.popper.height, a = Math.round(e.offsets.popper.left), - r = "object" === nb(e.offsets.popper.position) ? e.offsets.popper.position.position : e.offsets.popper.position, + r = "object" === yr(e.offsets.popper.position) ? e.offsets.popper.position.position : e.offsets.popper.position, i = t.fixPositionTopUnderflow(e.offsets.popper.top, r), o = t.state.originalHeight || n, s = t.calculateMaxHeight(o, n, i, r); @@ -15194,9 +17356,9 @@ originalHeight: null, maxHeight: null, fixedOffset: null - }, t.extractStyles = tE(t.extractStyles.bind(_(t))), t + }, t.extractStyles = CA(t.extractStyles.bind(w(t))), t } - return Qg(r, [{ + return Ka(r, [{ key: "componentDidMount", value: function() { this.applyPopper(this.props), this.calculateFixedOffset(this.props) @@ -15264,8 +17426,8 @@ var t = e.isAlwaysFixed ? this.fixedRef : this.targetRef.firstChild, n = { placement: (r = e.position, function(e) { - return e && cx[e] ? cx[e].position : null - }(r) || cx["right middle"].position), + return e && OT[e] ? OT[e].position : null + }(r) || OT["right middle"].position), onCreate: this.extractStyles, onUpdate: this.extractStyles, modifiers: { @@ -15295,7 +17457,7 @@ a = function(e) { return e.position && Array.isArray(e.autoFlip) ? [e.position.split(" ")[0]].concat(e.autoFlip) : null }(e); - a && (n.modifiers.flip.behavior = a), this.popper = new ix(t, this.contentRef, n) + a && (n.modifiers.flip.behavior = a), this.popper = new PT(t, this.contentRef, n) } var r } @@ -15315,14 +17477,14 @@ u = s ? {} : { opacity: 0 }; - return x().createElement("div", null, x().createElement("div", { + return C().createElement("div", null, C().createElement("div", { ref: function(t) { e.targetRef = t } - }, this.props.children), x().createElement(hx, { + }, this.props.children), C().createElement(LT, { targetRef: this.targetRef, fixedOffset: c - }, x().createElement("div", { + }, C().createElement("div", { style: { height: "100%", width: "100%" @@ -15330,13 +17492,13 @@ ref: function(t) { e.fixedRef = t } - })), a && x().createElement(lx, null), x().createElement(ux, { + })), a && C().createElement(IT, null), C().createElement(NT, { maxHeight: l - }, x().createElement("div", { + }, C().createElement("div", { ref: function(t) { e.contentRef = t }, - style: px({ + style: zT({ top: 0, left: 0, position: i, @@ -15346,8 +17508,8 @@ }, this.props.content))) } }]), r - }(E.Component); - Zf(mx, "defaultProps", { + }(x.Component); + $a(FT, "defaultProps", { autoFlip: !0, boundariesElement: "viewport", children: null, @@ -15360,34 +17522,34 @@ isAlwaysFixed: !1, onPositioned: function() {} }); - const fx = Ug.default.div.withConfig({ + const qT = $g.default.div.withConfig({ displayName: "Droplist", componentId: "sc-1z05y4v-0" })(["\n display: inline-flex;\n\n ", ";\n"], (function(e) { return e.fit && "\n display: block;\n flex: 1 1 auto;\n " })); - var gx = mb.backgroundOnLayer, - bx = (0, Ug.css)(["\n box-shadow: 0 ", "px ", "px -", "px\n ", ",\n 0 0 1px ", ";\n"], GS(Wg, 2), Wg, GS(Wg, 4), mb.N50A, mb.N60A), - yx = Ug.default.div.withConfig({ + var BT = hb.backgroundOnLayer, + UT = (0, $g.css)(["\n box-shadow: 0 ", "px ", "px -", "px\n ", ",\n 0 0 1px ", ";\n"], yA(Qg, 2), Qg, yA(Qg, 4), hb.N50A, hb.N60A), + HT = $g.default.div.withConfig({ displayName: "Droplist__Content", componentId: "sc-1z05y4v-1" - })(["\n background: ", ";\n border-radius: ", "px;\n ", ";\n box-sizing: border-box;\n overflow: auto;\n padding: ", "px 0;\n max-height: ", ";\n"], gx, Vg, bx, GS(Wg, 2), (function(e) { + })(["\n background: ", ";\n border-radius: ", "px;\n ", ";\n box-sizing: border-box;\n overflow: auto;\n padding: ", "px 0;\n max-height: ", ";\n"], BT, Zg, UT, yA(Qg, 2), (function(e) { var t = e.isTall, n = e.maxHeight; return n ? "".concat(n, "px") : t ? "90vh" : "".concat(317.5, "px") })), - vx = Ug.default.div.withConfig({ + VT = $g.default.div.withConfig({ displayName: "Droplist__SpinnerContainer", componentId: "sc-1z05y4v-2" - })(["\n display: flex;\n justify-content: center;\n min-width: ", "px;\n padding: ", "px;\n"], YS(Wg, 20), YS(Wg, 2.5)), - kx = Ug.default.div.withConfig({ + })(["\n display: flex;\n justify-content: center;\n min-width: ", "px;\n padding: ", "px;\n"], bA(Qg, 20), bA(Qg, 2.5)), + WT = $g.default.div.withConfig({ displayName: "Droplist__Trigger", componentId: "sc-1z05y4v-3" })(["\n display: inline-flex;\n transition-duration: 0.2s;\n transition: box-shadow 0.15s cubic-bezier(0.47, 0.03, 0.49, 1.38);\n\n ", ";\n"], (function(e) { return e.fit && "\n box-sizing: border-box;\n display: block;\n " })), - _x = "@atlaskit-shared-theme/item", - wx = { + YT = "@atlaskit-shared-theme/item", + GT = { afterItemSpacing: { compact: 8, default: 8 @@ -15398,7 +17560,7 @@ }, borderRadius: 3, focus: { - outline: mb.B100 + outline: hb.B100 }, height: { compact: 0, @@ -15423,135 +17585,135 @@ } }, default: { - background: mb.background, - text: mb.text, - secondaryText: mb.N200 + background: hb.background, + text: hb.text, + secondaryText: hb.N200 }, selected: { - background: mb.backgroundActive, - text: mb.N500, - secondaryText: mb.N200 + background: hb.backgroundActive, + text: hb.N500, + secondaryText: hb.N200 }, active: { - background: mb.backgroundActive, - text: mb.textActive, - secondaryText: mb.N200 + background: hb.backgroundActive, + text: hb.textActive, + secondaryText: hb.N200 }, hover: { - background: mb.backgroundHover, - text: mb.textHover, - secondaryText: mb.N200 + background: hb.backgroundHover, + text: hb.textHover, + secondaryText: hb.N200 }, disabled: { - background: mb.N0, - text: mb.N200, - secondaryText: mb.N200 + background: hb.N0, + text: hb.N200, + secondaryText: hb.N200 }, dragging: { - background: mb.N20, - text: mb.N800, - secondaryText: mb.N200 + background: hb.N20, + text: hb.N800, + secondaryText: hb.N200 } }, - Sx = function(e) { + KT = function(e) { return null != e && "" !== e }, - Ex = function(e, t, n) { + $T = function(e, t, n) { var a = function(e, t, n) { - return n ? e && e[n] && Sx(e[n][t]) ? e : wx : e && Sx(e[t]) ? e : wx + return n ? e && e[n] && KT(e[n][t]) ? e : GT : e && KT(e[t]) ? e : GT }(e, t, n); return n ? a[n][t] : a[t] }, - xx = { - bottom: Wg, - left: YS(Wg, 1.5), - right: YS(Wg, 1.5), - top: Wg + JT = { + bottom: Qg, + left: bA(Qg, 1.5), + right: bA(Qg, 1.5), + top: Qg }, - Cx = { + ZT = { padding: { - default: xx, - compact: xx + default: JT, + compact: JT }, borderRadius: function() { return 0 }, default: { - background: (0, VS.Z)({ - light: mb.N0, - dark: mb.DN50 + background: (0, fA.Z)({ + light: hb.N0, + dark: hb.DN50 }), - text: (0, VS.Z)({ - light: mb.N800, - dark: mb.DN600 + text: (0, fA.Z)({ + light: hb.N800, + dark: hb.DN600 }), - secondaryText: (0, VS.Z)({ - light: mb.N200, - dark: mb.DN300 + secondaryText: (0, fA.Z)({ + light: hb.N200, + dark: hb.DN300 }) }, hover: { - background: (0, VS.Z)({ - light: mb.N20, - dark: mb.DN70 + background: (0, fA.Z)({ + light: hb.N20, + dark: hb.DN70 }), - text: (0, VS.Z)({ - light: mb.N800, - dark: mb.DN600 + text: (0, fA.Z)({ + light: hb.N800, + dark: hb.DN600 }), - secondaryText: (0, VS.Z)({ - light: mb.N200, - dark: mb.DN300 + secondaryText: (0, fA.Z)({ + light: hb.N200, + dark: hb.DN300 }) }, active: { - background: (0, VS.Z)({ - light: mb.B75, - dark: mb.B75 + background: (0, fA.Z)({ + light: hb.B75, + dark: hb.B75 }), - text: (0, VS.Z)({ - light: mb.N800, - dark: mb.B400 + text: (0, fA.Z)({ + light: hb.N800, + dark: hb.B400 }), - secondaryText: (0, VS.Z)({ - light: mb.N200, - dark: mb.DN300 + secondaryText: (0, fA.Z)({ + light: hb.N200, + dark: hb.DN300 }) }, selected: { background: "transparent", - text: (0, VS.Z)({ - light: mb.N800, - dark: mb.DN600 + text: (0, fA.Z)({ + light: hb.N800, + dark: hb.DN600 }), - secondaryText: (0, VS.Z)({ - light: mb.N200, - dark: mb.DN300 + secondaryText: (0, fA.Z)({ + light: hb.N200, + dark: hb.DN300 }) }, disabled: { background: "transparent", - text: (0, VS.Z)({ - light: mb.N70, - dark: mb.DN80 + text: (0, fA.Z)({ + light: hb.N70, + dark: hb.DN80 }), - secondaryText: (0, VS.Z)({ - light: mb.N50, - dark: mb.DN70 + secondaryText: (0, fA.Z)({ + light: hb.N50, + dark: hb.DN70 }) }, focus: { - outline: (0, VS.Z)({ - light: mb.B100, - dark: mb.B75 + outline: (0, fA.Z)({ + light: hb.B100, + dark: hb.B75 }) } }; - const Ax = Zf({}, _x, Cx), - jx = JSON.parse('{"u2":"@atlaskit/droplist","i8":"11.0.6"}'); - var Px = "0, ".concat(8, "px"), - Dx = function(e) { - tb(r, e); + const QT = $a({}, YT, ZT), + XT = JSON.parse('{"u2":"@atlaskit/droplist","i8":"11.0.6"}'); + var eD = "0, ".concat(8, "px"), + tD = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -15562,49 +17724,49 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { var e; - Jg(this, r); + Ya(this, r); for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "componentDidMount", (function() { + return $a(w(e = a.call.apply(a, [this].concat(n))), "componentDidMount", (function() { e.setContentWidth(), document.addEventListener("click", e.handleClickOutside, !0), document.addEventListener("keydown", e.handleEsc) - })), Zf(_(e), "componentDidUpdate", (function() { + })), $a(w(e), "componentDidUpdate", (function() { e.props.isOpen && e.setContentWidth() - })), Zf(_(e), "componentWillUnmount", (function() { + })), $a(w(e), "componentWillUnmount", (function() { document.removeEventListener("click", e.handleClickOutside, !0), document.removeEventListener("keydown", e.handleEsc) - })), Zf(_(e), "setContentWidth", (function() { - var t = _(e), + })), $a(w(e), "setContentWidth", (function() { + var t = w(e), n = t.dropContentRef, a = t.triggerRef; e.props.shouldFitContainer && n && a && (n.style.width = "".concat(a.offsetWidth - 2, "px")) - })), Zf(_(e), "handleEsc", (function(t) { + })), $a(w(e), "handleEsc", (function(t) { "Escape" !== t.key && "Esc" !== t.key || !e.props.isOpen || e.close(t) - })), Zf(_(e), "handleClickOutside", (function(t) { + })), $a(w(e), "handleClickOutside", (function(t) { if (e.props.isOpen && t.target instanceof Node) { var n = e.triggerRef && e.triggerRef.contains(t.target), a = e.dropContentRef && e.dropContentRef.contains(t.target); n || a || e.close(t) } - })), Zf(_(e), "close", (function(t) { + })), $a(w(e), "close", (function(t) { e.props.onOpenChange && e.props.onOpenChange({ isOpen: !1, event: t }) - })), Zf(_(e), "handleContentRef", (function(t) { + })), $a(w(e), "handleContentRef", (function(t) { e.dropContentRef = t, t && t.focus() - })), Zf(_(e), "handleTriggerRef", (function(t) { + })), $a(w(e), "handleTriggerRef", (function(t) { e.triggerRef = t })), e } - return Qg(r, [{ + return Ka(r, [{ key: "getChildContext", value: function() { return { @@ -15630,37 +17792,37 @@ h = e.trigger, m = e.onPositioned, f = e.testId, - g = i ? x().createElement(yx, { + g = i ? C().createElement(HT, { "data-role": "droplistContent", "data-testid": f && "".concat(f, "--content"), isTall: "tall" === t, innerRef: this.handleContentRef, maxHeight: o - }, r ? x().createElement(vx, null, x().createElement(Py, { + }, r ? C().createElement(VT, null, C().createElement(Ay, { size: "small" - })) : x().createElement(Ug.ThemeProvider, { - theme: Ax - }, x().createElement("div", null, a))) : null; - return x().createElement(fx, { + })) : C().createElement($g.ThemeProvider, { + theme: QT + }, C().createElement("div", null, a))) : null; + return C().createElement(qT, { fit: d, onClick: s, onKeyDown: l - }, x().createElement(mx, { + }, C().createElement(FT, { autoFlip: p, boundariesElement: n, content: g, - offset: Px, + offset: eD, position: c, isAlwaysFixed: i && u, onPositioned: m - }, x().createElement(kx, { + }, C().createElement(WT, { fit: d, innerRef: this.handleTriggerRef }, h))) } }]), r - }(E.Component); - Zf(Dx, "defaultProps", { + }(x.Component); + $a(tD, "defaultProps", { appearance: "default", boundariesElement: "viewport", children: null, @@ -15676,57 +17838,57 @@ shouldFlip: !0, trigger: null, onPositioned: function() {} - }), Zf(Dx, "childContextTypes", { - shouldAllowMultilineItems: AS().bool + }), $a(tD, "childContextTypes", { + shouldAllowMultilineItems: T().bool }); - var Tx = xS("atlaskit"); - const Ox = NS({ + var nD = QC("atlaskit"); + const aD = oA({ componentName: "droplist", - packageName: jx.u2, - packageVersion: jx.i8 - })(FS({ - onOpenChange: Tx({ + packageName: XT.u2, + packageVersion: XT.i8 + })(uA({ + onOpenChange: nD({ action: "toggled", actionSubject: "droplist", attributes: { componentName: "droplist", - packageName: jx.u2, - packageVersion: jx.i8 + packageName: XT.u2, + packageVersion: XT.i8 } }) - })(Dx)); - var Mx = Ug.default.label.withConfig({ + })(tD)); + var rD = $g.default.label.withConfig({ displayName: "Label__LabelWrapper", componentId: "sc-17towfw-0" })(["\n display: block;\n"]), - Ix = (0, VS.Z)({ - light: mb.N200, - dark: mb.DN90 + iD = (0, fA.Z)({ + light: hb.N200, + dark: hb.DN90 }), - Nx = (0, VS.Z)({ - light: mb.N60, - dark: mb.DN300 + oD = (0, fA.Z)({ + light: hb.N60, + dark: hb.DN300 }), - zx = Ug.default.div.withConfig({ + sD = $g.default.div.withConfig({ displayName: "Label__LabelInner", componentId: "sc-17towfw-1" })(["\n color: ", ";\n font-size: ", "px;\n font-weight: 600;\n line-height: ", ";\n ", ";\n\n ", ";\n"], (function(e) { - return e.isDisabled ? Nx(e) : Ix(e) + return e.isDisabled ? oD(e) : iD(e) }), 12, 1.3333333333333333, (function(e) { var t = e.firstChild, n = 4, a = 0, r = 20; - return e.inlineEdit && (n = 0, a = 8, r = 8), t && (r = 4), (0, Ug.css)(["\n padding: ", "px ", "px ", "px ", "px;\n "], r, 0, n, a) + return e.inlineEdit && (n = 0, a = 8, r = 8), t && (r = 4), (0, $g.css)(["\n padding: ", "px ", "px ", "px ", "px;\n "], r, 0, n, a) }), (function(e) { return e.isHidden && "display: none;" })), - Rx = Ug.default.span.withConfig({ + lD = $g.default.span.withConfig({ displayName: "Label__RequiredIndicator", componentId: "sc-17towfw-2" - })(["\n color: ", ";\n padding-left: 2px;\n"], mb.red); - var Lx = function(e) { - tb(r, e); + })(["\n color: ", ";\n padding-left: 2px;\n"], hb.red); + var cD = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -15737,18 +17899,18 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { - return Jg(this, r), a.apply(this, arguments) + return Ya(this, r), a.apply(this, arguments) } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this.props, @@ -15761,53 +17923,53 @@ s = e.isRequired, l = e.label, c = e.onClick; - return x().createElement(Mx, { + return C().createElement(rD, { htmlFor: a - }, x().createElement(zx, { + }, C().createElement(sD, { isHidden: i, inlineEdit: "inline-edit" === t, firstChild: r, isDisabled: o - }, x().createElement("span", { + }, C().createElement("span", { onClick: c - }, l), s ? x().createElement(Rx, { + }, l), s ? C().createElement(lD, { role: "presentation" }, "*") : null), n) } }]), r - }(E.Component); - Zf(Lx, "defaultProps", { + }(x.Component); + $a(cD, "defaultProps", { appearance: "default" }); - var Fx = (0, Ug.css)(["\n color: ", ";\n"], mb.placeholderText), - qx = (Ug.default.input.withConfig({ + var uD = (0, $g.css)(["\n color: ", ";\n"], hb.placeholderText), + dD = ($g.default.input.withConfig({ displayName: "Stateless__Input", componentId: "wsqt66-0" - })(["\n display: inline-block;\n flex: 1 0 10px;\n margin: 0;\n padding: 0;\n outline: 0;\n border: 0;\n background: none;\n align-self: center;\n font-size: ", "px;\n line-height: ", ";\n\n ", ";\n"], Yg, 1.1428571428571428, function(e) { - return (0, Ug.css)(["\n &::-webkit-input-placeholder {\n /* WebKit, Blink, Edge */\n ", ";\n }\n &::-moz-placeholder {\n /* Mozilla Firefox 19+ */\n ", " opacity: 1;\n }\n &::-ms-input-placeholder {\n /* Microsoft Edge */\n ", ";\n }\n &:-moz-placeholder {\n /* Mozilla Firefox 4 to 18 */\n ", " opacity: 1;\n }\n &:-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n ", ";\n }\n"], e, e, e, e, e) - }(Fx)), Ug.default.div.withConfig({ + })(["\n display: inline-block;\n flex: 1 0 10px;\n margin: 0;\n padding: 0;\n outline: 0;\n border: 0;\n background: none;\n align-self: center;\n font-size: ", "px;\n line-height: ", ";\n\n ", ";\n"], Xg, 1.1428571428571428, function(e) { + return (0, $g.css)(["\n &::-webkit-input-placeholder {\n /* WebKit, Blink, Edge */\n ", ";\n }\n &::-moz-placeholder {\n /* Mozilla Firefox 19+ */\n ", " opacity: 1;\n }\n &::-ms-input-placeholder {\n /* Microsoft Edge */\n ", ";\n }\n &:-moz-placeholder {\n /* Mozilla Firefox 4 to 18 */\n ", " opacity: 1;\n }\n &:-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n ", ";\n }\n"], e, e, e, e, e) + }(uD)), $g.default.div.withConfig({ displayName: "Stateless__SelectWrapper", componentId: "wsqt66-1" })(["\n display: inline-block;\n\n ", ";\n"], (function(e) { - return e.shouldFitContainer ? (0, Ug.css)(["\n display: block;\n "]) : (0, Ug.css)(["\n display: inline-block;\n "]) + return e.shouldFitContainer ? (0, $g.css)(["\n display: block;\n "]) : (0, $g.css)(["\n display: inline-block;\n "]) }))), - Bx = { - light: mb.N20, - dark: mb.DN20 + pD = { + light: hb.N20, + dark: hb.DN20 }, - Ux = { - light: mb.R400, - dark: mb.R400 + hD = { + light: hb.R400, + dark: hb.R400 }, - Hx = (0, VS.Z)("appearance", { + mD = (0, fA.Z)("appearance", { standard: { - light: mb.N10, - dark: mb.DN10 + light: hb.N10, + dark: hb.DN10 }, - disabled: Bx, + disabled: pD, invalid: { - light: mb.N10, - dark: mb.DN10 + light: hb.N10, + dark: hb.DN10 }, subtle: { light: "transparent", @@ -15818,54 +17980,54 @@ dark: "transparent" } }), - Vx = (0, VS.Z)("appearance", { + fD = (0, fA.Z)("appearance", { standard: { - light: mb.N0, - dark: mb.DN10 + light: hb.N0, + dark: hb.DN10 }, - disabled: Bx, + disabled: pD, invalid: { - light: mb.N0, - dark: mb.DN10 + light: hb.N0, + dark: hb.DN10 }, subtle: { - light: mb.N0, - dark: mb.DN10 + light: hb.N0, + dark: hb.DN10 }, none: { light: "transparent", dark: "transparent" } }), - Wx = (0, VS.Z)("appearance", { + gD = (0, fA.Z)("appearance", { standard: { - light: mb.N30, - dark: mb.DN30 + light: hb.N30, + dark: hb.DN30 }, - disabled: Bx, + disabled: pD, invalid: { - light: mb.N30, - dark: mb.DN30 + light: hb.N30, + dark: hb.DN30 }, subtle: { - light: mb.N30, - dark: mb.DN30 + light: hb.N30, + dark: hb.DN30 }, none: { light: "transparent", dark: "transparent" } }), - Yx = (0, VS.Z)("appearance", { + bD = (0, fA.Z)("appearance", { standard: { - light: mb.N40, - dark: mb.DN40 + light: hb.N40, + dark: hb.DN40 }, disabled: { - light: mb.N40, - dark: mb.DN40 + light: hb.N40, + dark: hb.DN40 }, - invalid: Ux, + invalid: hD, subtle: { light: "transparent", dark: "transparent" @@ -15875,90 +18037,93 @@ dark: "transparent" } }), - Gx = (0, VS.Z)("appearance", { + yD = (0, fA.Z)("appearance", { standard: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, disabled: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, invalid: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, subtle: { - light: mb.B100, - dark: mb.B75 + light: hb.B100, + dark: hb.B75 }, none: { light: "transparent", dark: "transparent" } }), - Kx = "0.2s", - $x = (0, VS.Z)({ - light: mb.N70, - dark: mb.DN90 + vD = "0.2s", + kD = (0, fA.Z)({ + light: hb.N70, + dark: hb.DN90 }), - Jx = Ug.default.div.withConfig({ + _D = $g.default.div.withConfig({ displayName: "Content__ChildWrapper", componentId: "ve26fj-0" })(["\n display: flex;\n flex-direction: column;\n flex: 1 0 auto;\n max-width: 100%;\n ", ";\n"], (function(e) { - return t = e.compact ? 32 : 40, (0, Ug.css)(["\n min-height: ", "px;\n "], t); - var t + return function(e) { + var t = e.compact ? 32 : 40; + return (0, $g.css)(["\n min-height: ", "px;\n "], t) + }(e) })), - Zx = (0, VS.Z)({ - light: mb.N900, - dark: mb.DN600 + wD = (0, fA.Z)({ + light: hb.N900, + dark: hb.DN600 }), - Qx = Ug.default.div.withConfig({ + SD = $g.default.div.withConfig({ displayName: "Content", componentId: "ve26fj-1" })(["\n align-items: center;\n background-color: ", ";\n border-color: ", ";\n border-radius: ", ";\n border-style: ", ";\n box-sizing: border-box;\n color: ", ";\n display: flex;\n flex: 1 0 auto;\n font-size: ", "px;\n justify-content: space-between;\n line-height: ", ";\n max-width: 100%;\n overflow: hidden;\n transition: background-color ", " ease-in-out,\n border-color ", " ease-in-out;\n word-wrap: break-word;\n ", " ", " ", ";\n"], (function(e) { - return e.isFocused ? Vx(e) : Hx(e) + return e.isFocused ? fD(e) : mD(e) }), (function(e) { - return e.isFocused ? Gx(e) : Yx(e) + return e.isFocused ? yD(e) : bD(e) }), "3px", (function(e) { return "none" === e.appearance ? "none" : "solid" - }), Zx, Yg, (function(e) { + }), wD, Xg, (function(e) { return (e.compact ? 16 : 20) / 14 - }), Kx, Kx, (function(e) { + }), vD, vD, (function(e) { var t = e.paddingDisabled, n = e.compact, a = t ? "0" : "".concat(((n ? 32 : 40) - 4 - 24) / 2, "px ").concat(6, "px"); - return (0, Ug.css)(["\n border-width: ", "px;\n padding: ", ";\n "], 2, a) + return (0, $g.css)(["\n border-width: ", "px;\n padding: ", ";\n "], 2, a) }), (function(e) { - return e.readOnly || e.isFocused || e.none ? null : (0, Ug.css)(["\n &:hover {\n background-color: ", ";\n }\n "], Wx(e)) + return e.readOnly || e.isFocused || e.none ? null : (0, $g.css)(["\n &:hover {\n background-color: ", ";\n }\n "], gD(e)) }), (function(e) { - return e.disabled && (0, Ug.css)(["\n color: ", ";\n pointer-events: none;\n "], $x(e)) + return e.disabled && (0, $g.css)(["\n color: ", ";\n pointer-events: none;\n "], kD(e)) })), - Xx = function(e) { + ED = function(e) { return e ? "".concat(e, "px") : "100%" }, - eC = Ug.default.div.withConfig({ + xD = $g.default.div.withConfig({ displayName: "Content__ContentWrapper", componentId: "ve26fj-2" })(["\n ", " ", " ", " max-width: ", ";\n"], (function(e) { return e.disabled && "\n cursor: not-allowed;\n " }), (function(e) { - return e.grow ? (0, Ug.css)(["\n flex: 0 0 ", ";\n "], Xx(e.maxWidth)) : "\n flex: 0 0 auto;\n " + return e.grow ? (0, $g.css)(["\n flex: 0 0 ", ";\n "], ED(e.maxWidth)) : "\n flex: 0 0 auto;\n " }), (function(e) { return e.grow ? "\n display: block;\n " : "\n display: inline-block;\n vertical-align: top;\n " }), (function(e) { - return Xx(e.maxWidth) - })); - var tC = Ug.default.div.withConfig({ + return ED(e.maxWidth) + })), + CD = n(9317); + var AD = $g.default.div.withConfig({ displayName: "ValidationElement__WarningIcon", componentId: "sc-1fk9yms-0" - })(["\n align-items: center;\n color: ", ";\n display: flex;\n flex-shrink: 0;\n"], mb.yellow), - nC = Ug.default.div.withConfig({ + })(["\n align-items: center;\n color: ", ";\n display: flex;\n flex-shrink: 0;\n"], hb.yellow), + TD = $g.default.div.withConfig({ displayName: "ValidationElement__SpinnerParent", componentId: "sc-1fk9yms-1" })(["\n height: 20px;\n margin-left: 10px;\n"]), - aC = function(e) { - tb(r, e); + DD = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -15969,35 +18134,35 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { - return Jg(this, r), a.apply(this, arguments) + return Ya(this, r), a.apply(this, arguments) } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { - return !this.props.isDisabled && this.props.isInvalid ? x().createElement(tC, null, x().createElement(Ev.Z, { + return !this.props.isDisabled && this.props.isInvalid ? C().createElement(AD, null, C().createElement(CD.Z, { label: "warning" - })) : this.props.isLoading ? x().createElement(nC, null, x().createElement(Py, { + })) : this.props.isLoading ? C().createElement(TD, null, C().createElement(Ay, { size: "small" })) : null } }]), r - }(E.Component); - Zf(aC, "defaultProps", { + }(x.Component); + $a(DD, "defaultProps", { isDisabled: !1, isInvalid: !1, isLoading: !1 }); - var rC = function(e) { - tb(r, e); + var PD = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -16008,18 +18173,18 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { - return Jg(this, r), a.apply(this, arguments) + return Ya(this, r), a.apply(this, arguments) } - return Qg(r, [{ + return Ka(r, [{ key: "componentDidUpdate", value: function() { this.props.shouldReset && this.props.onBlur() @@ -16047,20 +18212,20 @@ y = t.onDialogFocus, v = t.onFocus, k = t.isValidationHidden; - return x().createElement(eC, { + return C().createElement(xD, { disabled: s, maxWidth: m, grow: l - }, x().createElement(eE, { + }, C().createElement(xA, { content: r, isOpen: o && !!r && !k, onContentBlur: g, onContentClick: b, onContentFocus: y, placement: "right" - }, x().createElement(Jx, { + }, C().createElement(_D, { compact: i - }, x().createElement(Qx, { + }, C().createElement(SD, { appearance: (e = n, s ? "disabled" : u ? "invalid" : e), compact: i, disabled: s, @@ -16072,15 +18237,15 @@ paddingDisabled: p, readOnly: h, subtle: "subtle" === n - }, a, k ? null : x().createElement(aC, { + }, a, k ? null : C().createElement(DD, { isDisabled: s, isInvalid: u, isLoading: d }))))) } }]), r - }(E.Component); - Zf(rC, "defaultProps", { + }(x.Component); + $a(PD, "defaultProps", { appearance: "standard", invalidMessage: "", isCompact: !1, @@ -16098,11 +18263,11 @@ shouldReset: !1, isValidationHidden: !1 }); - const iC = (0, E.forwardRef)((function(e, t) { + const jD = (0, x.forwardRef)((function(e, t) { var n, a = e.alignment, r = void 0 === a ? "start" : a, i = e.children; - return Tg("div", { + return Lg("div", { ref: t, css: (n = r, { display: "flex", @@ -16112,28 +18277,28 @@ }) }, i) })); - var oC = n(1951), - sC = "undefined" == typeof window ? E.useEffect : E.useLayoutEffect; - const lC = function(e) { + var MD = n(1951), + ID = "undefined" == typeof window ? x.useEffect : x.useLayoutEffect; + const OD = function(e) { var t = e.children, n = e.duration, a = void 0 === n ? 100 : n, r = e.onFinish, i = function() { - var e = (0, E.useRef)(null), - t = (0, E.useCallback)((function(t) { + var e = (0, x.useRef)(null), + t = (0, x.useCallback)((function(t) { e.current = t }), []); return [e.current, t] }(), - o = eg(i, 2), + o = dr(i, 2), s = o[0], l = o[1], c = Mb(), - u = Rb(), - d = Lb(), + u = Nb(), + d = Rb(), p = c.isExiting ? "exiting" : "entering"; - return sC((function() { + return ID((function() { if (c.isExiting && s) { var e = { width: "".concat(s.offsetWidth, "px"), @@ -16146,7 +18311,7 @@ var e = { width: "0px", margin: "0px", - transitionTimingFunction: Nb, + transitionTimingFunction: "cubic-bezier(0.8,0,0,0.8)", transitionDuration: "".concat(a, "ms"), transitionProperty: "width,margin" }; @@ -16160,294 +18325,294 @@ ref: l }, p) }; - var cC = { + var ND = { standard: { - light: mb.N700, - dark: mb.DN600 + light: hb.N700, + dark: hb.DN600 }, green: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 }, purple: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 }, red: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 }, yellow: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 }, grey: { - light: mb.N0, - dark: mb.N0 + light: hb.N0, + dark: hb.N0 }, teal: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 }, blue: { - light: mb.N800, - dark: mb.N800 + light: hb.N800, + dark: hb.N800 }, tealLight: { - light: mb.N500, - dark: mb.N500 + light: hb.N500, + dark: hb.N500 }, blueLight: { - light: mb.B500, - dark: mb.B500 + light: hb.B500, + dark: hb.B500 }, greenLight: { - light: mb.G500, - dark: mb.G500 + light: hb.G500, + dark: hb.G500 }, purpleLight: { - light: mb.P500, - dark: mb.P500 + light: hb.P500, + dark: hb.P500 }, redLight: { - light: mb.N500, - dark: mb.N500 + light: hb.N500, + dark: hb.N500 }, yellowLight: { - light: mb.N500, - dark: mb.N500 + light: hb.N500, + dark: hb.N500 }, greyLight: { - light: mb.N500, - dark: mb.N500 + light: hb.N500, + dark: hb.N500 } }, - uC = { + RD = { standard: { - light: mb.N20, - dark: mb.DN100A + light: hb.N20, + dark: hb.DN100A }, green: { - light: mb.G200, - dark: mb.G200 + light: hb.G200, + dark: hb.G200 }, purple: { - light: mb.P100, - dark: mb.P100 + light: hb.P100, + dark: hb.P100 }, red: { - light: mb.R100, - dark: mb.R100 + light: hb.R100, + dark: hb.R100 }, yellow: { - light: mb.Y200, - dark: mb.Y200 + light: hb.Y200, + dark: hb.Y200 }, grey: { - light: mb.N500, - dark: mb.N500 + light: hb.N500, + dark: hb.N500 }, teal: { - light: mb.T200, - dark: mb.T200 + light: hb.T200, + dark: hb.T200 }, blue: { - light: mb.B100, - dark: mb.B100 + light: hb.B100, + dark: hb.B100 }, tealLight: { - light: mb.T100, - dark: mb.T100 + light: hb.T100, + dark: hb.T100 }, blueLight: { - light: mb.B75, - dark: mb.B75 + light: hb.B75, + dark: hb.B75 }, greenLight: { - light: mb.G100, - dark: mb.G100 + light: hb.G100, + dark: hb.G100 }, purpleLight: { - light: mb.P75, - dark: mb.P75 + light: hb.P75, + dark: hb.P75 }, redLight: { - light: mb.R75, - dark: mb.R75 + light: hb.R75, + dark: hb.R75 }, yellowLight: { - light: mb.Y100, - dark: mb.Y100 + light: hb.Y100, + dark: hb.Y100 }, greyLight: { - light: mb.N30, - dark: mb.N30 + light: hb.N30, + dark: hb.N30 } }, - dC = { + zD = { standard: { - light: mb.N30, - dark: mb.DN60 + light: hb.N30, + dark: hb.DN60 }, green: { - light: mb.G100, - dark: mb.DN60 + light: hb.G100, + dark: hb.DN60 }, purple: { - light: mb.P75, - dark: mb.DN60 + light: hb.P75, + dark: hb.DN60 }, red: { - light: mb.R75, - dark: mb.DN60 + light: hb.R75, + dark: hb.DN60 }, yellow: { - light: mb.Y100, - dark: mb.DN60 + light: hb.Y100, + dark: hb.DN60 }, grey: { - light: mb.N50, - dark: mb.DN60 + light: hb.N50, + dark: hb.DN60 }, teal: { - light: mb.T100, - dark: mb.DN60 + light: hb.T100, + dark: hb.DN60 }, blue: { - light: mb.B75, - dark: mb.DN60 + light: hb.B75, + dark: hb.DN60 }, tealLight: { - light: mb.T75, - dark: mb.DN60 + light: hb.T75, + dark: hb.DN60 }, blueLight: { - light: mb.B50, - dark: mb.DN60 + light: hb.B50, + dark: hb.DN60 }, greenLight: { - light: mb.G75, - dark: mb.DN60 + light: hb.G75, + dark: hb.DN60 }, purpleLight: { - light: mb.P50, - dark: mb.DN60 + light: hb.P50, + dark: hb.DN60 }, redLight: { - light: mb.R50, - dark: mb.DN60 + light: hb.R50, + dark: hb.DN60 }, yellowLight: { - light: mb.Y75, - dark: mb.DN60 + light: hb.Y75, + dark: hb.DN60 }, greyLight: { - light: mb.N30, - dark: mb.DN60 + light: hb.N30, + dark: hb.DN60 } }, - pC = { - light: mb.B100, - dark: mb.B75 + LD = { + light: hb.B100, + dark: hb.B75 }, - hC = { - light: mb.R300, - dark: mb.R200 + FD = { + light: hb.R300, + dark: hb.R200 }, - mC = { - light: mb.B100, - dark: mb.B75 + qD = { + light: hb.B100, + dark: hb.B75 }, - fC = { - light: mb.B300, - dark: mb.B200 + BD = { + light: hb.B300, + dark: hb.B200 }, - gC = function(e, t) { - return uC[e || "standard"][t] + UD = function(e, t) { + return RD[e || "standard"][t] }, - bC = function(e, t) { + HD = function(e, t) { return { - light: mb.R500, - dark: mb.DN30 + light: hb.R500, + dark: hb.DN30 } [t] }, - yC = function(e, t) { + VD = function(e, t) { return { - light: mb.R50, - dark: mb.R100 + light: hb.R50, + dark: hb.R100 } [t] }, - vC = function(e, t) { + WD = function(e, t) { var n = function(e, t) { - var n = gC(e, t), - a = yC(0, t), + var n = UD(e, t), + a = VD(0, t), r = function(e, t) { - return cC[e || "standard"][t] + return ND[e || "standard"][t] }(e, t); return { backgroundColor: n, backgroundColorHover: a, textColor: r, - textColorHover: bC(0, t) + textColorHover: HD(0, t) } }(e, t), a = function(e, t) { - var n = yC(0, t), - a = bC(0, t), + var n = VD(0, t), + a = HD(0, t), r = function(e, t) { - return dC[e || "standard"][t] + return zD[e || "standard"][t] }(e, t); return { hoverBackgroundColor: r, - hoverTextColor: fC[t], + hoverTextColor: BD[t], hoverBackgroundColorRemoval: n, hoverTextColorRemoval: a, - focusRingColor: pC[t] + focusRingColor: LD[t] } }(e, t), r = function(e, t) { return { - backgroundColor: gC(e, t), - backgroundColorHover: yC(0, t), - focusBoxShadowColor: mC[t], - hoverBoxShadowColor: hC[t] + backgroundColor: UD(e, t), + backgroundColorHover: VD(0, t), + focusBoxShadowColor: qD[t], + hoverBoxShadowColor: FD[t] } }(e, t); return { chromeColors: n, chromeLinkColors: a, buttonColors: r, - linkHoverColor: fC[t] + linkHoverColor: BD[t] } }; - const kC = JSON.parse('{"u2":"@atlaskit/tag","i8":"11.0.5"}'); - var _C = x().forwardRef((function(e, t) { + const YD = JSON.parse('{"u2":"@atlaskit/tag","i8":"11.0.5"}'); + var GD = C().forwardRef((function(e, t) { var n = e.before, a = e.contentElement, r = e.after, i = e.testId, o = e.role, s = e.tagCss, - l = Fg(e, ["before", "contentElement", "after", "testId", "role", "tagCss"]); - return Tg("span", z({}, l, { + l = Yg(e, ["before", "contentElement", "after", "testId", "role", "tagCss"]); + return Lg("span", z({}, l, { role: o, ref: t, css: s, "data-testid": i }), n, a, r) })); - const wC = _C; - var SC = "".concat(20, "px"), - EC = ("".concat(200, "px"), "".concat(180, "px")), - xC = "".concat(3, "px"), - CC = "".concat(10, "px"), - AC = "".concat(4, "px"), - jC = "".concat(4, "px"), - PC = "".concat(16, "px"), - DC = "".concat(20, "px"), - TC = "".concat(14, "px"); - - function OC(e, t) { + const KD = GD; + var $D = "".concat(20, "px"), + JD = ("".concat(200, "px"), "".concat(180, "px")), + ZD = "".concat(3, "px"), + QD = "".concat(10, "px"), + XD = "".concat(4, "px"), + eP = "".concat(4, "px"), + tP = "".concat(16, "px"), + nP = "".concat(20, "px"), + aP = "".concat(14, "px"); + + function rP(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -16458,29 +18623,29 @@ return n } - function MC(e) { + function iP(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? OC(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : OC(Object(n)).forEach((function(t) { + t % 2 ? rP(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : rP(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var IC = { - borderRadius: "".concat(CC) + var oP = { + borderRadius: "".concat(QD) }, - NC = { + sP = { position: "absolute", left: 0, - borderRadius: "".concat(xC), + borderRadius: "".concat(ZD), alignItems: "center", display: "flex", justifyContent: "center" }, - zC = function(e) { + lP = function(e) { var t = e.backgroundColor, n = e.backgroundColorHover, a = e.textColor; @@ -16499,18 +18664,18 @@ backgroundColor: t, color: a }, - borderRadius: "".concat(xC), + borderRadius: "".concat(ZD), cursor: "default", display: "inline-flex", position: "relative", - height: "".concat(SC), + height: "".concat($D), lineHeight: 1, - margin: "".concat(AC), + margin: "".concat(XD), padding: 0, overflow: "hidden" } }, - RC = function(e) { + cP = function(e) { var t = e.hoverBackgroundColor, n = e.hoverTextColor, a = e.hoverBackgroundColorRemoval, @@ -16535,29 +18700,29 @@ } } }, - LC = { - paddingRight: "".concat(PC), + uP = { + paddingRight: "".concat(tP), maxWidth: "".concat(160, "px") }, - FC = { - paddingLeft: "".concat(DC) + dP = { + paddingLeft: "".concat(nP) }, - qC = { - fontSize: TC, + pP = { + fontSize: aP, fontWeight: "normal", lineHeight: 1, - paddingLeft: jC, - paddingRight: jC, + paddingLeft: eP, + paddingRight: eP, paddingTop: "2px", paddingBottom: "2px", - borderRadius: xC, - maxWidth: EC, + borderRadius: ZD, + maxWidth: JD, overflow: "hidden", textOverflow: "ellipsis", whiteSpace: "nowrap" }, - BC = function(e) { - return MC(MC({}, qC), {}, { + hP = function(e) { + return iP(iP({}, pP), {}, { ':not([data-color="standard"])': { color: "inherit", textDecoration: "underline" @@ -16571,14 +18736,14 @@ } }) }; - const UC = function(e) { + const mP = function(e) { var t = e.elemBefore, n = e.isRounded; - return t ? Tg("span", { - css: [NC, n ? IC : void 0] + return t ? Lg("span", { + css: [sP, n ? oP : void 0] }, t) : null }, - HC = function(e) { + fP = function(e) { var t = e.elemBefore, n = void 0 === t ? null : t, a = e.isRemovable, @@ -16593,16 +18758,16 @@ p = e.linkComponent, h = void 0 === p ? "a" : p, m = e.linkHoverColor; - return d ? Tg(h, { + return d ? Lg(h, { href: c, "data-color": l, - css: [BC(m), u ? IC : void 0, n ? FC : void 0, r ? LC : void 0] - }, o) : Tg("span", { - css: [qC, u ? IC : void 0, n ? FC : void 0, r ? LC : void 0] + css: [hP(m), u ? oP : void 0, n ? dP : void 0, r ? uP : void 0] + }, o) : Lg("span", { + css: [pP, u ? oP : void 0, n ? dP : void 0, r ? uP : void 0] }, o) }; - function VC() { + function gP() { for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; return function(e) { t.forEach((function(t) { @@ -16610,7 +18775,7 @@ })) } } - var WC = function(e) { + var bP = function(e) { var t = e.backgroundColor, n = e.backgroundColorHover, a = e.focusBoxShadowColor; @@ -16622,8 +18787,8 @@ alignSelf: "center", appearance: "none", border: "none", - borderRadius: xC, - color: mb.N500, + borderRadius: ZD, + color: hb.N500, display: "flex", justifyContent: "center", height: "16px", @@ -16641,12 +18806,12 @@ }, "&:hover": { backgroundColor: "".concat(n, " !important"), - color: mb.R500 + color: hb.R500 } } }; - function YC(e, t) { + function yP(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -16657,26 +18822,26 @@ return n } - function GC(e) { + function vP(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? YC(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : YC(Object(n)).forEach((function(t) { + t % 2 ? yP(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : yP(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var KC, $C = function() { + var kP, _P = function() { return !0 }, - JC = function() {}; + wP = function() {}; ! function(e) { e.Showing = "showing", e.Removing = "removing", e.Removed = "removed" - }(KC || (KC = {})); - var ZC = (0, E.forwardRef)((function(e, t) { - var n, a, r, i, o, s, l = eg((0, E.useState)(KC.Showing), 2), + }(kP || (kP = {})); + var SP = (0, x.forwardRef)((function(e, t) { + var n, a, r, i, o, s, l = dr((0, x.useState)(kP.Showing), 2), c = l[0], u = l[1], d = e.appearance, @@ -16692,81 +18857,81 @@ _ = e.mode, w = void 0 === _ ? "light" : _, S = e.href, - x = e.removeButtonLabel, + E = e.removeButtonLabel, C = e.testId, A = e.onBeforeRemoveAction, - j = void 0 === A ? $C : A, - P = e.onAfterRemoveAction, - D = void 0 === P ? JC : P, - T = "rounded" === p, - O = Boolean(S), - M = (n = D, a = { + T = void 0 === A ? _P : A, + D = e.onAfterRemoveAction, + P = void 0 === D ? wP : D, + j = "rounded" === p, + M = Boolean(S), + I = (n = P, a = { action: "removed", actionSubject: "tag", attributes: { componentName: "tag", - packageName: kC.u2, - packageVersion: kC.i8 + packageName: YD.u2, + packageVersion: YD.i8 } - }, r = "atlaskit", i = cb().createAnalyticsEvent, o = ub(n), s = ub(a), (0, E.useCallback)((function() { + }, r = "atlaskit", i = lb().createAnalyticsEvent, o = cb(n), s = cb(a), (0, x.useCallback)((function() { var e = "function" == typeof s.current ? s.current.apply(s, arguments) : s.current; i(e).fire(r), o.current.apply(o, arguments) }), [i, o, s, r])), - I = (0, E.useCallback)((function() { - M(y), u(KC.Removed) - }), [M, y]), - N = (0, E.useCallback)((function() { - j && j() && I() - }), [I, j]), - R = (0, E.useCallback)((function(e) { + O = (0, x.useCallback)((function() { + I(y), u(kP.Removed) + }), [I, y]), + N = (0, x.useCallback)((function() { + T && T() && O() + }), [O, T]), + R = (0, x.useCallback)((function(e) { (" " === e.key || "Enter" === e.key) && (e.stopPropagation(), N()) }), [N]), - L = (0, E.useCallback)((function() { - return u(KC.Removing) + L = (0, x.useCallback)((function() { + return u(kP.Removing) }), []), - F = (0, E.useCallback)((function() { - return u(KC.Showing) + F = (0, x.useCallback)((function() { + return u(kP.Showing) }), []), - q = (0, E.useMemo)((function() { - return vC(k, w) + q = (0, x.useMemo)((function() { + return WD(k, w) }), [k, w]), B = q.chromeColors, U = q.chromeLinkColors, H = q.buttonColors, V = q.linkHoverColor, - W = [RC(U), T ? IC : void 0], - Y = [zC(GC({}, B)), T ? IC : void 0], - G = g ? Tg("button", { - css: [WC(GC({}, H)), T ? IC : void 0], + W = [cP(U), j ? oP : void 0], + Y = [lP(vP({}, B)), j ? oP : void 0], + G = g ? Lg("button", { + css: [bP(vP({}, H)), j ? oP : void 0], tabIndex: 0, - "aria-label": x, + "aria-label": E, onClick: N, onFocus: L, onBlur: F, onKeyPress: R, type: "button", "data-testid": "close-button-".concat(C) - }, Tg(oC.Z, { + }, Lg(MD.Z, { label: "close tag", size: "small" })) : void 0, - K = [].concat(Y, [O ? W : void 0]), - $ = Tg(HC, z({}, e, { + K = [].concat(Y, [M ? W : void 0]), + $ = Lg(fP, z({}, e, { isRemovable: g, - isLink: O, - isRounded: T, + isLink: M, + isRounded: j, linkHoverColor: V })); - return Tg(Ib, null, !(c === KC.Removed) && Tg(lC, null, (function(e) { - return Tg(wC, { - ref: VC(e.ref, t), + return Lg(Ib, null, !(c === kP.Removed) && Lg(OD, null, (function(e) { + return Lg(KD, { + ref: gP(e.ref, t), testId: C, tagCss: K, "data-removable": !0, - "data-removing": c === KC.Removing, - role: O ? "link" : void 0, - before: Tg(UC, { - isRounded: T, + "data-removing": c === kP.Removing, + role: M ? "link" : void 0, + before: Lg(mP, { + isRounded: j, elemBefore: m }), contentElement: $, @@ -16774,44 +18939,44 @@ }) }))) })); - const QC = (0, E.memo)((0, E.forwardRef)((function(e, t) { - return Tg(Bg.Consumer, null, (function(n) { - return Tg(ZC, z({}, e, { + const EP = (0, x.memo)((0, x.forwardRef)((function(e, t) { + return Lg(Kg.Consumer, null, (function(n) { + return Lg(SP, z({}, e, { mode: n.mode, ref: t })) })) }))); - var XC = (0, Ug.css)(["\n color: ", ";\n"], mb.placeholderText), - eA = Ug.default.div.withConfig({ + var xP = (0, $g.css)(["\n color: ", ";\n"], hb.placeholderText), + CP = $g.default.div.withConfig({ displayName: "Trigger__Content", componentId: "p117u5-0" })(["\n flex: 1 1 auto;\n margin: 3px ", "px; /* magic number to make multi-select the same height as field-text. */\n white-space: nowrap;\n width: 100%;\n"], 8), - tA = Ug.default.div.withConfig({ + AP = $g.default.div.withConfig({ displayName: "Trigger__Expand", componentId: "p117u5-1" })(["\n align-items: center;\n display: flex;\n flex: 0 0 ", "px;\n justify-content: center;\n margin: 0 ", "px;\n"], 24, 8), - nA = Ug.default.input.withConfig({ + TP = $g.default.input.withConfig({ displayName: "Trigger__Input", componentId: "p117u5-2" - })(["\n display: inline-block;\n flex: 1 0 10px;\n margin: 0;\n padding: 0;\n outline: 0;\n border: 0;\n background: none;\n align-self: center;\n font-size: ", "px;\n line-height: ", ";\n color: ", ";\n\n ", ";\n"], Yg, 1.1428571428571428, mb.text, function(e) { - return (0, Ug.css)(["\n &::-webkit-input-placeholder {\n /* WebKit, Blink, Edge */\n ", ";\n }\n &::-moz-placeholder {\n /* Mozilla Firefox 19+ */\n ", " opacity: 1;\n }\n &::-ms-input-placeholder {\n /* Microsoft Edge */\n ", ";\n }\n &:-moz-placeholder {\n /* Mozilla Firefox 4 to 18 */\n ", " opacity: 1;\n }\n &:-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n ", ";\n }\n"], e, e, e, e, e) - }(XC)), - aA = Ug.default.div.withConfig({ + })(["\n display: inline-block;\n flex: 1 0 10px;\n margin: 0;\n padding: 0;\n outline: 0;\n border: 0;\n background: none;\n align-self: center;\n font-size: ", "px;\n line-height: ", ";\n color: ", ";\n\n ", ";\n"], Xg, 1.1428571428571428, hb.text, function(e) { + return (0, $g.css)(["\n &::-webkit-input-placeholder {\n /* WebKit, Blink, Edge */\n ", ";\n }\n &::-moz-placeholder {\n /* Mozilla Firefox 19+ */\n ", " opacity: 1;\n }\n &::-ms-input-placeholder {\n /* Microsoft Edge */\n ", ";\n }\n &:-moz-placeholder {\n /* Mozilla Firefox 4 to 18 */\n ", " opacity: 1;\n }\n &:-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n ", ";\n }\n"], e, e, e, e, e) + }(xP)), + DP = $g.default.div.withConfig({ displayName: "Trigger__TriggerDiv", componentId: "p117u5-3" })(["\n align-items: center;\n display: flex;\n width: 100%;\n min-height: 37px; /* magic number to make multi-select the same height as field-text. */\n\n ", ";\n"], (function(e) { - return e.isDisabled ? (0, Ug.css)(["\n cursor: not-allowed;\n "]) : "" + return e.isDisabled ? (0, $g.css)(["\n cursor: not-allowed;\n "]) : "" })), - rA = { + PP = { default: "standard", subtle: "subtle" }, - iA = function(e) { - return rA[e] + jP = function(e) { + return PP[e] }; - var oA = function(e) { - tb(r, e); + var MP = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -16822,18 +18987,18 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { - return Jg(this, r), a.apply(this, arguments) + return Ya(this, r), a.apply(this, arguments) } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this.props, @@ -16855,8 +19020,8 @@ g = e.placeholder, b = e.selectedItems, y = e.tagGroupRefFunction; - return x().createElement(rC, { - appearance: iA(t), + return C().createElement(PD, { + appearance: jP(t), isDisabled: l, isFitContainerWidthEnabled: !0, isDialogOpen: c, @@ -16867,13 +19032,13 @@ isRequired: h, onBlur: m, onFocus: f - }, x().createElement(aA, { + }, C().createElement(DP, { isDisabled: l, onClick: i - }, x().createElement(eA, null, x().createElement(iC, { + }, C().createElement(CP, null, C().createElement(jD, { ref: y }, b.map((function(e) { - return x().createElement(QC, { + return C().createElement(EP, { appearance: e.tag ? e.tag.appearance : void 0, elemBefore: e.tag ? e.tag.elemBefore : void 0, key: e.value, @@ -16883,121 +19048,121 @@ removeButtonText: l ? void 0 : "".concat(e.content, ", remove"), text: e.content }) - })), l ? null : x().createElement(nA, { + })), l ? null : C().createElement(TP, { disabled: l, onChange: r, placeholder: g, innerRef: o, type: "text", value: n - }))), x().createElement(tA, null, c && p ? x().createElement(Py, null) : s))) + }))), C().createElement(AP, null, c && p ? C().createElement(Ay, null) : s))) } }]), r - }(E.PureComponent); - Zf(oA, "defaultProps", { + }(x.PureComponent); + $a(MP, "defaultProps", { isDisabled: !1, isLoading: !1, onClick: function() {}, - icon: x().createElement(zg.Z, { + icon: C().createElement(Hg.Z, { label: "" }) }); - var sA = n(9406), - lA = n(251), - cA = (0, VS.Z)({ - light: mb.B75, - dark: mb.DN30 + var IP = n(9406), + OP = n(251), + NP = (0, fA.Z)({ + light: hb.B75, + dark: hb.DN30 }), - uA = (0, VS.Z)({ - light: mb.N20, - dark: mb.DN60 + RP = (0, fA.Z)({ + light: hb.N20, + dark: hb.DN60 }), - dA = (0, VS.Z)({ - light: mb.N0, - dark: mb.DN30 + zP = (0, fA.Z)({ + light: hb.N0, + dark: hb.DN30 }), - pA = (0, VS.Z)({ - light: mb.N800, - dark: mb.DN300 + LP = (0, fA.Z)({ + light: hb.N800, + dark: hb.DN300 }), - hA = (0, VS.Z)({ - light: mb.N800, - dark: mb.DN600 + FP = (0, fA.Z)({ + light: hb.N800, + dark: hb.DN600 }), - mA = (0, VS.Z)({ - light: mb.N70, - dark: mb.DN70 + qP = (0, fA.Z)({ + light: hb.N70, + dark: hb.DN70 }), - fA = (0, VS.Z)({ - light: mb.B400, - dark: mb.B400 + BP = (0, fA.Z)({ + light: hb.B400, + dark: hb.B400 }), - gA = (0, VS.Z)({ - light: mb.N800, - dark: mb.N800 + UP = (0, fA.Z)({ + light: hb.N800, + dark: hb.N800 }), - bA = (0, Ug.css)(["\n box-shadow: 0 0 0 2px ", "\n inset;\n outline: none;\n outline-offset: 0;\n position: relative; /* prevents bgcolor of a hovered element from obfuscating focus ring of a focused sibling element */\n"], (0, VS.Z)({ - light: mb.B100, - dark: mb.B75 + HP = (0, $g.css)(["\n box-shadow: 0 0 0 2px ", "\n inset;\n outline: none;\n outline-offset: 0;\n position: relative; /* prevents bgcolor of a hovered element from obfuscating focus ring of a focused sibling element */\n"], (0, fA.Z)({ + light: hb.B100, + dark: hb.B75 })), - yA = (0, Ug.css)(["\n &,\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n"], dA, gA), - vA = (0, Ug.css)(["\n color: ", ";\n"], fA), - kA = function(e) { - return (0, Ug.css)(["\n align-items: center;\n box-sizing: border-box;\n color: ", ";\n cursor: ", ";\n display: ", ";\n flex-wrap: nowrap;\n font-size: ", "px;\n font-weight: normal;\n padding: 0 ", "px;\n text-decoration: none;\n\n &:hover {\n background-color: ", ";\n color: ", ";\n text-decoration: none;\n\n ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n\n ", ";\n }\n &:focus {\n ", ";\n }\n\n ", " ", " ", ";\n"], e.isDisabled ? mA : hA, e.isDisabled ? "not-allowed" : "pointer", e.isHidden ? "none" : "flex", Yg, YS(Wg, 1.5), !e.isDisabled && uA, e.isDisabled ? mA : hA, e.isPrimary && vA, !e.isDisabled && cA, !e.isDisabled && pA, e.isPrimary && vA, bA, e.isFocused && bA, e.isActive && yA, e.isPrimary && vA) + VP = (0, $g.css)(["\n &,\n &:hover {\n background-color: ", ";\n color: ", ";\n }\n"], zP, UP), + WP = (0, $g.css)(["\n color: ", ";\n"], BP), + YP = function(e) { + return (0, $g.css)(["\n align-items: center;\n box-sizing: border-box;\n color: ", ";\n cursor: ", ";\n display: ", ";\n flex-wrap: nowrap;\n font-size: ", "px;\n font-weight: normal;\n padding: 0 ", "px;\n text-decoration: none;\n\n &:hover {\n background-color: ", ";\n color: ", ";\n text-decoration: none;\n\n ", ";\n }\n &:active {\n background-color: ", ";\n color: ", ";\n\n ", ";\n }\n &:focus {\n ", ";\n }\n\n ", " ", " ", ";\n"], e.isDisabled ? qP : FP, e.isDisabled ? "not-allowed" : "pointer", e.isHidden ? "none" : "flex", Xg, bA(Qg, 1.5), !e.isDisabled && RP, e.isDisabled ? qP : FP, e.isPrimary && WP, !e.isDisabled && NP, !e.isDisabled && LP, e.isPrimary && WP, HP, e.isFocused && HP, e.isActive && VP, e.isPrimary && WP) }, - _A = Ug.default.a.withConfig({ + GP = $g.default.a.withConfig({ displayName: "Item__Anchor", componentId: "aiqnor-0" })(["\n ", ";\n"], (function(e) { - return kA(e) + return YP(e) })), - wA = Ug.default.span.withConfig({ + KP = $g.default.span.withConfig({ displayName: "Item__Span", componentId: "aiqnor-1" })(["\n ", ";\n"], (function(e) { - return kA(e) + return YP(e) })), - SA = Ug.default.span.withConfig({ + $P = $g.default.span.withConfig({ displayName: "Item__InputWrapper", componentId: "aiqnor-2" })(["\n display: flex;\n margin: 0 2px;\n"]), - EA = Ug.default.span.withConfig({ + JP = $g.default.span.withConfig({ displayName: "Item__Before", componentId: "aiqnor-3" })(["\n display: flex;\n"]), - xA = Ug.default.span.withConfig({ + ZP = $g.default.span.withConfig({ displayName: "Item__After", componentId: "aiqnor-4" })(["\n align-items: center;\n display: flex;\n"]), - CA = Ug.default.span.withConfig({ + QP = $g.default.span.withConfig({ displayName: "Item__ContentWrapper", componentId: "aiqnor-5" - })(["\n display: flex;\n flex-direction: column;\n margin: 0 ", "px;\n padding: ", "px 0;\n overflow: hidden;\n\n &:first-child {\n margin: 0;\n }\n"], Wg, Wg), - AA = Ug.default.span.withConfig({ + })(["\n display: flex;\n flex-direction: column;\n margin: 0 ", "px;\n padding: ", "px 0;\n overflow: hidden;\n\n &:first-child {\n margin: 0;\n }\n"], Qg, Qg), + XP = $g.default.span.withConfig({ displayName: "Item__Content", componentId: "aiqnor-6" })(["\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n ", ";\n"], (function(e) { - return e.allowMultiline && (0, Ug.css)(["\n white-space: normal;\n "]) + return e.allowMultiline && (0, $g.css)(["\n white-space: normal;\n "]) })), - jA = Ug.default.span.withConfig({ + ej = $g.default.span.withConfig({ displayName: "Item__Description", componentId: "aiqnor-7" - })(["\n color: ", ";\n flex: 1 1 auto;\n font-size: 12px;\n line-height: 16 / 12;\n margin-top: ", "px;\n"], mb.subtleText, GS(Wg, 2)); + })(["\n color: ", ";\n flex: 1 1 auto;\n font-size: 12px;\n line-height: 16 / 12;\n margin-top: ", "px;\n"], hb.subtleText, yA(Qg, 2)); - function PA(e) { + function tj(e) { var t = e.isChecked, n = e.isDisabled, a = e.isHovered, r = e.isPressed, - i = mb.N40; - return a && (i = mb.N50), r && (i = mb.B200), t && (i = mb.B400), n && (i = mb.N20), t && n && (i = mb.N600), i + i = hb.N40; + return a && (i = hb.N50), r && (i = hb.B200), t && (i = hb.B400), n && (i = hb.N20), t && n && (i = hb.N600), i } - function DA(e) { - return e.isChecked ? mb.N0 : "transparent" + function nj(e) { + return e.isChecked ? hb.N0 : "transparent" } - function TA(e, t) { + function aj(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -17008,26 +19173,26 @@ return n } - function OA(e) { + function rj(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? TA(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : TA(Object(n)).forEach((function(t) { + t % 2 ? aj(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : aj(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - Ug.default.span.withConfig({ + $g.default.span.withConfig({ displayName: "Item__SecondaryText", componentId: "aiqnor-8" - })(["\n color: ", ";\n"], mb.subtleText); - var MA = function() { + })(["\n color: ", ";\n"], hb.subtleText); + var ij = function() { return /Mac OS X/.test(navigator.userAgent) }, - IA = function(e) { - tb(r, e); + oj = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -17038,23 +19203,23 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { var e; - Jg(this, r); + Ya(this, r); for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "handleMouseDown", (function(t) { + return $a(w(e = a.call.apply(a, [this].concat(n))), "handleMouseDown", (function(t) { t.preventDefault(), e.props.handleMouseDown() })), e } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this.props, @@ -17082,10 +19247,10 @@ "aria-selected": !!o }, d = { - checkbox: MA() ? "checkbox" : "menuitemcheckbox", + checkbox: ij() ? "checkbox" : "menuitemcheckbox", link: "menuitem", option: "option", - radio: MA() ? "radio" : "menuitemradio" + radio: ij() ? "radio" : "menuitemradio" }, p = { "data-role": "droplistItem", @@ -17099,20 +19264,20 @@ title: e.title, tabIndex: "option" === e.type ? null : 0 }, - h = OA(OA(OA(OA({}, c), u), p), {}); - return e.href && !a ? x().createElement(_A, z({ + h = rj(rj(rj(rj({}, c), u), p), {}); + return e.href && !a ? C().createElement(GP, z({ href: e.href, target: e.target - }, h), e.children) : x().createElement(wA, h, e.children) + }, h), e.children) : C().createElement(KP, h, e.children) } }]), r - }(E.PureComponent); - var NA = { - checkbox: sA.Z, - radio: lA.Z + }(x.PureComponent); + var sj = { + checkbox: IP.Z, + radio: OP.Z }, - zA = function(e) { - tb(r, e); + lj = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -17123,56 +19288,56 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { var e; - Jg(this, r); + Ya(this, r); for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { isHovered: !1, isPressed: !1 - }), Zf(_(e), "componentDidMount", (function() { + }), $a(w(e), "componentDidMount", (function() { return document.addEventListener("mouseup", e.handleMouseUp) - })), Zf(_(e), "componentWillUnmount", (function() { + })), $a(w(e), "componentWillUnmount", (function() { return document.removeEventListener("mouseup", e.handleMouseUp) - })), Zf(_(e), "guardedActivate", (function(t) { + })), $a(w(e), "guardedActivate", (function(t) { var n = e.props, a = n.isDisabled, r = n.onActivate; !a && r && r({ - item: _(e), + item: w(e), event: t }) - })), Zf(_(e), "handleClick", (function(t) { + })), $a(w(e), "handleClick", (function(t) { return e.guardedActivate(t) - })), Zf(_(e), "handleKeyPress", (function(t) { + })), $a(w(e), "handleKeyPress", (function(t) { ["Enter", " "].indexOf(t.key) > -1 && e.guardedActivate(t) - })), Zf(_(e), "handleMouseDown", (function() { + })), $a(w(e), "handleMouseDown", (function() { return e.setState({ isPressed: !0 }) - })), Zf(_(e), "handleMouseUp", (function() { + })), $a(w(e), "handleMouseUp", (function() { return e.setState({ isPressed: !1 }) - })), Zf(_(e), "handleMouseOut", (function() { + })), $a(w(e), "handleMouseOut", (function() { return e.setState({ isHovered: !1 }) - })), Zf(_(e), "handleMouseOver", (function() { + })), $a(w(e), "handleMouseOver", (function() { return e.setState({ isHovered: !0 }) })), e } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this.props, @@ -17181,7 +19346,7 @@ a = t.isPressed, r = e.type || "", i = ["checkbox", "radio"].indexOf(r) > -1, - o = NA[r], + o = sj[r], s = { isActive: "link" === e.type && e.isActive || "option" === e.type && e.isSelected, isChecked: ["checkbox", "radio"].indexOf(r) > -1 && e.isChecked, @@ -17193,7 +19358,7 @@ isSelected: "option" === r && e.isSelected, isPrimary: "primary" === e.appearance }, - l = x().createElement(IA, z({}, s, { + l = C().createElement(oj, z({}, s, { handleClick: this.handleClick, handleKeyPress: this.handleKeyPress, handleMouseOut: this.handleMouseOut, @@ -17204,24 +19369,24 @@ target: e.target, title: e.title, type: e.type - }), i && x().createElement(SA, s, x().createElement(o, { + }), i && C().createElement($P, s, C().createElement(o, { label: "", - primaryColor: PA(s), - secondaryColor: DA(s), + primaryColor: tj(s), + secondaryColor: nj(s), size: "medium" - })), !!e.elemBefore && x().createElement(EA, null, e.elemBefore), x().createElement(CA, null, x().createElement(AA, { + })), !!e.elemBefore && C().createElement(JP, null, e.elemBefore), C().createElement(QP, null, C().createElement(XP, { allowMultiline: this.context.shouldAllowMultilineItems - }, e.children), !!e.description && x().createElement(jA, null, e.description)), !!e.elemAfter && x().createElement(xA, null, e.elemAfter)); - return x().createElement("span", { + }, e.children), !!e.description && C().createElement(ej, null, e.description)), !!e.elemAfter && C().createElement(ZP, null, e.elemAfter)); + return C().createElement("span", { role: "presentation" - }, e.tooltipDescription ? x().createElement(Lw, { + }, e.tooltipDescription ? C().createElement(pC, { content: e.tooltipDescription, position: e.tooltipPosition }, l) : l) } }]), r - }(E.PureComponent); - Zf(zA, "defaultProps", { + }(x.PureComponent); + $a(lj, "defaultProps", { appearance: "default", children: null, description: "", @@ -17241,34 +19406,34 @@ tooltipDescription: null, tooltipPosition: "right", type: "link" - }), Zf(zA, "contextTypes", { - shouldAllowMultilineItems: AS().bool + }), $a(lj, "contextTypes", { + shouldAllowMultilineItems: T().bool }); - var RA = xS("atlaskit"); - const LA = NS({ + var cj = QC("atlaskit"); + const uj = oA({ componentName: "droplistItem", - packageName: jx.u2, - packageVersion: jx.i8 - })(FS({ - onActivate: RA({ + packageName: XT.u2, + packageVersion: XT.i8 + })(uA({ + onActivate: cj({ action: "selected", actionSubject: "droplistItem", attributes: { componentName: "droplistItem", - packageName: jx.u2, - packageVersion: jx.i8 + packageName: XT.u2, + packageVersion: XT.i8 } }) - })(zA)); - var FA = Ug.default.div.withConfig({ + })(lj)); + var dj = $g.default.div.withConfig({ displayName: "Footer__FooterDiv", componentId: "sc-1xuos4y-0" })(["\n padding: ", "px 0 ", "px 0;\n border-top: ", ";\n"], 8, 4, (function(e) { - return e.shouldHideSeparator ? "0" : "2px solid ".concat(mb.N40A) + return e.shouldHideSeparator ? "0" : "2px solid ".concat(hb.N40A) })); - const qA = FA; - var BA = function(e) { - tb(r, e); + const pj = dj; + var hj = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -17279,18 +19444,18 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { - return Jg(this, r), a.apply(this, arguments) + return Ya(this, r), a.apply(this, arguments) } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this.props, @@ -17300,10 +19465,10 @@ r = e.isFocused, i = e.onClick, o = e.shouldHideSeparator; - return x().createElement(qA, { + return C().createElement(pj, { onClick: i, shouldHideSeparator: o - }, x().createElement(LA, { + }, C().createElement(uj, { appearance: t, elemBefore: a, isFocused: r, @@ -17311,8 +19476,8 @@ }, n)) } }]), r - }(E.PureComponent), - UA = function(e, t, n) { + }(x.PureComponent), + mj = function(e, t, n) { var a = t && t.toLowerCase().trim(), r = n ? n.map((function(e) { return e.value @@ -17329,48 +19494,48 @@ }(e, a) })) : i }, - HA = function(e, t) { + fj = function(e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], a = e, r = n && a === t - 1; return null == a ? a = 0 : a < t - 1 ? a++ : a = r ? t : 0, a }, - VA = function(e, t) { + gj = function(e, t) { var n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], a = e, r = n && 0 === a; return a && a > 0 ? a-- : a = r ? t : t - 1, a }, - WA = function(e) { + bj = function(e) { var t = e[0] || {}; - return Array.isArray(t.items) ? e : YA(e) + return Array.isArray(t.items) ? e : yj(e) }, - YA = function(e) { + yj = function(e) { return [{ items: e }] }; - const GA = Ug.default.div.withConfig({ + const vj = $g.default.div.withConfig({ displayName: "Group", componentId: "sc-1q26u8b-0" - })(["\n box-sizing: border-box;\n display: block;\n margin-top: ", "px;\n\n &:first-child {\n margin-top: 0;\n }\n"], Wg); - var KA = Ug.default.div.withConfig({ + })(["\n box-sizing: border-box;\n display: block;\n margin-top: ", "px;\n\n &:first-child {\n margin-top: 0;\n }\n"], Qg); + var kj = $g.default.div.withConfig({ displayName: "Group__Heading", componentId: "sc-1q26u8b-1" - })(["\n align-items: baseline;\n color: ", ";\n display: flex;\n flex: 1 1 auto;\n font-weight: normal;\n font-size: 14px;\n line-height: 1;\n margin: 0;\n padding: ", "px ", "px;\n"], (0, VS.Z)({ - light: mb.N300, - dark: mb.DN300 - }), Wg, YS(Wg, 1.5)), - $A = Ug.default.div.withConfig({ + })(["\n align-items: baseline;\n color: ", ";\n display: flex;\n flex: 1 1 auto;\n font-weight: normal;\n font-size: 14px;\n line-height: 1;\n margin: 0;\n padding: ", "px ", "px;\n"], (0, fA.Z)({ + light: hb.N300, + dark: hb.DN300 + }), Qg, bA(Qg, 1.5)), + _j = $g.default.div.withConfig({ displayName: "Group__HeadingAfter", componentId: "sc-1q26u8b-2" })(["\n flex: 0 0 auto;\n"]), - JA = Ug.default.div.withConfig({ + wj = $g.default.div.withConfig({ displayName: "Group__HeadingText", componentId: "sc-1q26u8b-3" })(["\n flex: 1 1 auto;\n font-size: 12px;\n text-transform: uppercase;\n"]); - var ZA = function(e) { - tb(r, e); + var Sj = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -17381,29 +19546,29 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { var e; - Jg(this, r); + Ya(this, r); for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { ariaLabel: e.props.heading - }), Zf(_(e), "componentDidMount", (function() { + }), $a(w(e), "componentDidMount", (function() { (e.props.heading || e.props.elemAfter) && e.setState({ ariaLabel: e.getAriaLabel() }) - })), Zf(_(e), "componentDidUpdate", (function() { + })), $a(w(e), "componentDidUpdate", (function() { (e.props.heading || e.props.elemAfter) && e.setState({ ariaLabel: e.getAriaLabel() }) - })), Zf(_(e), "getAriaLabel", (function() { + })), $a(w(e), "getAriaLabel", (function() { var t = e.props, n = t.elemAfter, a = t.heading, @@ -17411,7 +19576,7 @@ return "".concat(a || "", " ").concat(r || "") })), e } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this, @@ -17420,31 +19585,31 @@ a = t.elemAfter, r = t.heading, i = this.state.ariaLabel; - return x().createElement(GA, { + return C().createElement(vj, { "aria-label": i, role: "group" - }, r ? x().createElement(KA, { + }, r ? C().createElement(kj, { "aria-hidden": "true", "data-role": "droplistGroupHeading" - }, x().createElement(JA, null, r), a ? x().createElement($A, { + }, C().createElement(wj, null, r), a ? C().createElement(_j, { innerRef: function(t) { e.headingElement = t } }, a) : null) : null, n) } }]), r - }(E.PureComponent); - ZA.displayName = "Group"; - const QA = ZA, - XA = Ug.default.div.withConfig({ + }(x.PureComponent); + Sj.displayName = "Group"; + const Ej = Sj, + xj = $g.default.div.withConfig({ displayName: "NoMatch__NoMatches", componentId: "sc-1au7ofu-0" })(["\n padding: 6px ", "px;\n"], 24), - ej = Ug.default.div.withConfig({ + Cj = $g.default.div.withConfig({ displayName: "InitialLoading", componentId: "vq33zx-0" })(["\n padding: 6px ", "px;\n"], 24); - var tj = Ug.default.div.withConfig({ + var Aj = $g.default.div.withConfig({ displayName: "GroupsContainer", componentId: "sc-1dbou9n-0" })(["\n overflow: ", ";\n max-height: ", ";\n"], (function(e) { @@ -17452,8 +19617,8 @@ }), (function(e) { return e.hasFooter ? "".concat(304, "px") : "none" })); - const nj = tj; - const aj = function(e) { + const Tj = Aj; + const Dj = function(e) { var t = e.filterValue, n = e.focusedItemIndex, a = e.hasFooter, @@ -17465,8 +19630,8 @@ c = e.isLoading, u = e.loadingMessage, d = r.map((function(e, a) { - var r = UA(e.items, t, s); - return r.length > 0 ? x().createElement(QA, { + var r = mj(e.items, t, s); + return r.length > 0 ? C().createElement(Ej, { heading: e.heading, key: a }, function(e) { @@ -17474,7 +19639,7 @@ n = e.focusedItemIndex, a = e.handleItemSelect; return t && t.length ? t.map((function(e, t) { - return x().createElement(LA, z({}, e, { + return C().createElement(uj, z({}, e, { elemBefore: e.elemBefore, isFocused: t === n, key: t, @@ -17491,19 +19656,19 @@ })).filter((function(e) { return !!e })); - return d.length > 0 || l ? x().createElement(nj, { + return d.length > 0 || l ? C().createElement(Tj, { hasFooter: a }, d) : function(e) { var t = e.noMatchesFound, n = e.isLoading, a = e.loadingMessage; return n ? function(e) { - return x().createElement(ej, { + return C().createElement(Cj, { "aria-live": "polite", role: "status" }, e) }(a) : function(e) { - return x().createElement(XA, null, e) + return C().createElement(xj, null, e) }(t) }({ noMatchesFound: o, @@ -17512,7 +19677,7 @@ }) }; - function rj(e, t) { + function Pj(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -17523,24 +19688,24 @@ return n } - function ij(e) { + function jj(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? rj(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : rj(Object(n)).forEach((function(t) { + t % 2 ? Pj(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Pj(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var oj = function(e) { + var Mj = function(e) { return e.map((function(e) { return e.value })) }, - sj = function(e) { - tb(r, e); + Ij = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -17551,65 +19716,65 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { var e; - Jg(this, r); + Ya(this, r); for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { isFocused: e.props.isOpen || e.props.shouldFocus, focusedItemIndex: void 0, - groupedItems: WA(e.props.items) - }), Zf(_(e), "componentDidMount", (function() { + groupedItems: bj(e.props.items) + }), $a(w(e), "componentDidMount", (function() { e.state.isFocused && e.inputNode && e.inputNode.focus() - })), Zf(_(e), "UNSAFE_componentWillReceiveProps", (function(t) { + })), $a(w(e), "UNSAFE_componentWillReceiveProps", (function(t) { e.props.items !== t.items && e.setState({ - groupedItems: WA(t.items) + groupedItems: bj(t.items) }) - })), Zf(_(e), "componentDidUpdate", (function(t) { + })), $a(w(e), "componentDidUpdate", (function(t) { !t.shouldFocus && e.props.shouldFocus && e.inputNode && e.inputNode.focus() - })), Zf(_(e), "onFocus", (function() { + })), $a(w(e), "onFocus", (function() { e.props.isDisabled || (e.setState({ isFocused: !0 }), document.activeElement && "button" !== document.activeElement.tagName.toLowerCase() && e.inputNode && e.inputNode.focus()) - })), Zf(_(e), "onBlur", (function() { + })), $a(w(e), "onBlur", (function() { e.props.isDisabled || e.setState({ isFocused: !1 }) - })), Zf(_(e), "onOpenChange", (function(t) { + })), $a(w(e), "onOpenChange", (function(t) { var n = t.event.currentTarget, - a = Oe().findDOMNode(e.tagGroup), - r = $g(a ? a.children : []).some((function(e) { + a = Ie().findDOMNode(e.tagGroup), + r = wr(a ? a.children : []).some((function(e) { return e.contains(n) && "INPUT" !== e.tagName })), - i = ij(ij({}, t), {}, { + i = jj(jj({}, t), {}, { inputNode: e.inputNode }); r || e.props.onOpenChange(i); var o = a ? a.querySelector("input") : void 0; t.isOpen && o && o.focus() - })), Zf(_(e), "getPlaceholder", (function() { + })), $a(w(e), "getPlaceholder", (function() { var t = e.props, n = t.isOpen, a = t.selectedItems, r = t.placeholder; if (!n && 0 === a.length) return r - })), Zf(_(e), "getAllVisibleItems", (function(t) { + })), $a(w(e), "getAllVisibleItems", (function(t) { var n = e.props, a = n.filterValue, r = n.selectedItems; return t.reduce((function(e, t) { - var n = UA(t.items, a, r); + var n = mj(t.items, a, r); return e.concat(n) }), []) - })), Zf(_(e), "handleItemCreate", (function(t) { + })), $a(w(e), "handleItemCreate", (function(t) { var n = e.props, a = n.filterValue, r = n.items; @@ -17623,32 +19788,32 @@ value: a }) } - })), Zf(_(e), "handleItemSelect", (function(t, n) { + })), $a(w(e), "handleItemSelect", (function(t, n) { e.isFooterFocused() ? e.props.shouldAllowCreateItem ? e.handleItemCreate(n.event) : e.handleFooterActivate(n.event) : t.isDisabled || (e.props.onOpenChange({ isOpen: !1, event: n.event }), e.props.onSelected(t), e.props.onFilterChange(""), e.setState({ focusedItemIndex: void 0 })) - })), Zf(_(e), "handleItemRemove", (function(t) { + })), $a(w(e), "handleItemRemove", (function(t) { e.props.onRemoved(t) - })), Zf(_(e), "removeLatestItem", (function() { + })), $a(w(e), "removeLatestItem", (function() { if (e.props.selectedItems.length) { var t = e.props.selectedItems; e.handleItemRemove(t[t.length - 1]) } - })), Zf(_(e), "hasVisibleFooter", (function() { + })), $a(w(e), "hasVisibleFooter", (function() { var t = e.props, n = t.footer, a = t.shouldAllowCreateItem, r = t.filterValue; return n && n.content && !a || a && !!r - })), Zf(_(e), "isFooterFocused", (function() { + })), $a(w(e), "isFooterFocused", (function() { var t = e.state, n = t.focusedItemIndex, a = t.groupedItems; return n === e.getAllVisibleItems(a).length - })), Zf(_(e), "handleOnChange", (function(t) { + })), $a(w(e), "handleOnChange", (function(t) { var n = t.currentTarget.value; n !== e.props.filterValue && (e.props.shouldAllowCreateItem && e.setState({ focusedItemIndex: void 0 @@ -17656,29 +19821,29 @@ event: t, isOpen: !0 })) - })), Zf(_(e), "handleTriggerClick", (function(t) { + })), $a(w(e), "handleTriggerClick", (function(t) { e.props.isDisabled || e.onOpenChange({ event: t, isOpen: !0 }) - })), Zf(_(e), "handleFooterActivate", (function(t) { + })), $a(w(e), "handleFooterActivate", (function(t) { var n = e.props.footer; n && n.onActivate && n.onActivate(t) - })), Zf(_(e), "focusNextItem", (function() { + })), $a(w(e), "focusNextItem", (function() { var t = e.getAllVisibleItems(e.props.items), n = e.hasVisibleFooter(), a = e.state.focusedItemIndex; e.setState({ - focusedItemIndex: HA(a, t.length, n) + focusedItemIndex: fj(a, t.length, n) }) - })), Zf(_(e), "focusPreviousItem", (function() { + })), $a(w(e), "focusPreviousItem", (function() { var t = e.getAllVisibleItems(e.props.items), n = e.hasVisibleFooter(), a = e.state.focusedItemIndex; e.setState({ - focusedItemIndex: VA(a, t.length, n) + focusedItemIndex: gj(a, t.length, n) }) - })), Zf(_(e), "handleKeyboardInteractions", (function(t) { + })), $a(w(e), "handleKeyboardInteractions", (function(t) { var n = e.props, a = n.isOpen, r = n.items, @@ -17714,21 +19879,21 @@ focusedItemIndex: void 0 }) } - })), Zf(_(e), "renderFooter", (function() { + })), $a(w(e), "renderFooter", (function() { var t = e.props, n = t.filterValue, a = t.shouldAllowCreateItem, r = t.footer, i = t.createNewItemLabel; if (a) { - if (n) return x().createElement(BA, { + if (n) return C().createElement(hj, { appearance: r && r.appearance, isFocused: e.isFooterFocused(), newLabel: e.props.createNewItemLabel, onClick: e.handleItemCreate, shouldHideSeparator: !e.getAllVisibleItems(e.props.items).length }, n, " (", i, ")") - } else if (r && r.content) return x().createElement(BA, { + } else if (r && r.content) return C().createElement(hj, { appearance: r.appearance, elemBefore: r.elemBefore, isFocused: e.isFooterFocused(), @@ -17738,7 +19903,7 @@ return null })), e } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this, @@ -17766,10 +19931,10 @@ w = _.groupedItems, S = _.isFocused, E = _.focusedItemIndex; - return x().createElement(qx, { + return C().createElement(dD, { shouldFitContainer: v, onKeyDown: this.handleKeyboardInteractions - }, x().createElement("select", { + }, C().createElement("select", { disabled: i, id: r, multiple: !0, @@ -17779,26 +19944,26 @@ style: { display: "none" }, - value: oj(b) + value: Mj(b) }, w.map((function(e, t) { - return x().createElement("optgroup", { + return C().createElement("optgroup", { key: t, label: e.heading }, (n = e.items) && n.length ? n.map((function(e, t) { - return x().createElement("option", { + return C().createElement("option", { disabled: e.isDisabled, key: t, value: e.value }, e.content) })) : []); var n - }))), p ? x().createElement(Lx, { + }))), p ? C().createElement(cD, { htmlFor: r, isDisabled: i, isFirstChild: o, isRequired: d, label: p - }) : null, x().createElement(Ox, { + }) : null, C().createElement(aD, { appearance: this.hasVisibleFooter() ? "tall" : "default", isKeyboardInteractionDisabled: !0, isOpen: u, @@ -17808,7 +19973,7 @@ position: g, shouldFitContainer: !0, shouldFlip: k, - trigger: x().createElement(oA, { + trigger: C().createElement(MP, { appearance: n, filterValue: a, handleItemRemove: this.handleItemRemove, @@ -17834,7 +19999,7 @@ }, icon: this.props.icon }) - }, aj({ + }, Dj({ groups: w, hasFooter: this.hasVisibleFooter(), filterValue: a, @@ -17848,8 +20013,8 @@ }), this.renderFooter())) } }]), r - }(E.PureComponent); - Zf(sj, "defaultProps", { + }(x.PureComponent); + $a(Ij, "defaultProps", { appearance: "default", createNewItemLabel: "New item", filterValue: "", @@ -17869,37 +20034,37 @@ position: "bottom left", selectedItems: [], shouldAllowCreateItem: !1, - icon: x().createElement(zg.Z, { + icon: C().createElement(Hg.Z, { label: "" }) }); - var lj = n(3645), - cj = n.n(lj); - const uj = Je("features/base/react"); - class dj extends E.Component { + var Oj = n(3645), + Nj = n.n(Oj); + const Rj = $e("features/base/react"); + class zj extends x.Component { render() { const { t: e, showSupportLink: t - } = this.props, n = interfaceConfig.SUPPORT_URL, a = e("inlineDialogFailure.supportMsg"), r = n && t ? x().createElement("div", { + } = this.props, n = interfaceConfig.SUPPORT_URL, a = e("inlineDialogFailure.supportMsg"), r = n && t ? C().createElement("div", { className: "inline-dialog-error-text" - }, x().createElement("span", null, a.padEnd(a.length + 1)), x().createElement("span", null, x().createElement("a", { + }, C().createElement("span", null, a.padEnd(a.length + 1)), C().createElement("span", null, C().createElement("a", { href: n, rel: "noopener noreferrer", target: "_blank" - }, e("inlineDialogFailure.support"))), x().createElement("span", null, ".")) : null; - return x().createElement("div", { + }, e("inlineDialogFailure.support"))), C().createElement("span", null, ".")) : null; + return C().createElement("div", { className: "inline-dialog-error" - }, x().createElement("div", { + }, C().createElement("div", { className: "inline-dialog-error-text" - }, e("inlineDialogFailure.msg")), r, x().createElement(nS, { + }, e("inlineDialogFailure.msg")), r, C().createElement(DC, { className: "inline-dialog-error-button", onClick: this.props.onRetry }, e("inlineDialogFailure.retry"))) } } - const pj = Li(dj); - class hj extends E.Component { + const Lj = Ei(zj); + class Fj extends x.Component { constructor(e) { super(e); const t = this.props.defaultValue || []; @@ -17910,9 +20075,10 @@ error: !1, items: [], selectedItems: [...t] - }, this._onFilterChange = this._onFilterChange.bind(this), this._onRetry = this._onRetry.bind(this), this._onSelectionChange = this._onSelectionChange.bind(this), this._sendQuery = cj()(this._sendQuery.bind(this), 200) + }, this._onFilterChange = this._onFilterChange.bind(this), this._onRetry = this._onRetry.bind(this), this._onSelectionChange = this._onSelectionChange.bind(this), this._sendQuery = Nj()(this._sendQuery.bind(this), 200) } - setSelectedItems(e = []) { + setSelectedItems() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; this.setState({ selectedItems: e }) @@ -17923,7 +20089,7 @@ n = this.props.isDisabled || !1, a = this.props.placeholder || "", r = this.props.noMatchesFound || ""; - return x().createElement("div", null, x().createElement(sj, { + return C().createElement("div", null, C().createElement(Ij, { filterValue: this.state.filterValue, footer: this.props.footer, icon: null, @@ -17964,13 +20130,13 @@ } _renderError() { if (!this.state.error) return null; - const e = x().createElement("div", { + const e = C().createElement("div", { className: "autocomplete-error" - }, x().createElement(pj, { + }, C().createElement(Lj, { onRetry: this._onRetry, showSupportLink: this.props.showSupportLink })); - return x().createElement(eE, { + return C().createElement(xA, { content: e, isOpen: !0 }) @@ -17998,7 +20164,7 @@ error: !1 }) })).catch((e => { - uj.error("MultiSelectAutocomplete error in query", e), this.setState({ + Rj.error("MultiSelectAutocomplete error in query", e), this.setState({ error: !0, loading: !1, isOpen: !1 @@ -18006,42 +20172,42 @@ })) } } - const mj = hj; - var fj = n(2854), - gj = { + const qj = Fj; + var Bj = n(2854), + Uj = { light: { - backgroundColorChecked: mb.G400, - backgroundColorCheckedHover: mb.G300, - backgroundColorCheckedDisabled: mb.N20, - backgroundColorUnchecked: mb.N200, - backgroundColorUncheckedHover: mb.N70, - backgroundColorUncheckedDisabled: mb.N20, - borderColorFocus: mb.B100, - iconColorChecked: mb.N0, - iconColorDisabled: mb.N70, - iconColorUnchecked: mb.N0, - handleBackgroundColor: mb.N0, - handleBackgroundColorChecked: mb.N0, - handleBackgroundColorDisabled: mb.N0 + backgroundColorChecked: hb.G400, + backgroundColorCheckedHover: hb.G300, + backgroundColorCheckedDisabled: hb.N20, + backgroundColorUnchecked: hb.N200, + backgroundColorUncheckedHover: hb.N70, + backgroundColorUncheckedDisabled: hb.N20, + borderColorFocus: hb.B100, + iconColorChecked: hb.N0, + iconColorDisabled: hb.N70, + iconColorUnchecked: hb.N0, + handleBackgroundColor: hb.N0, + handleBackgroundColorChecked: hb.N0, + handleBackgroundColorDisabled: hb.N0 }, dark: { - backgroundColorChecked: mb.G300, - backgroundColorCheckedHover: mb.G200, - backgroundColorCheckedDisabled: mb.DN70, - backgroundColorUnchecked: mb.DN70, - backgroundColorUncheckedHover: mb.DN60, - backgroundColorUncheckedDisabled: mb.DN70, - borderColorFocus: mb.B75, - iconColorChecked: mb.DN30, - iconColorDisabled: mb.DN30, - iconColorUnchecked: mb.DN600, - handleBackgroundColor: mb.DN600, - handleBackgroundColorChecked: mb.DN0, - handleBackgroundColorDisabled: mb.DN0 + backgroundColorChecked: hb.G300, + backgroundColorCheckedHover: hb.G200, + backgroundColorCheckedDisabled: hb.DN70, + backgroundColorUnchecked: hb.DN70, + backgroundColorUncheckedHover: hb.DN60, + backgroundColorUncheckedDisabled: hb.DN70, + borderColorFocus: hb.B75, + iconColorChecked: hb.DN30, + iconColorDisabled: hb.DN30, + iconColorUnchecked: hb.DN600, + handleBackgroundColor: hb.DN600, + handleBackgroundColorChecked: hb.DN0, + handleBackgroundColorDisabled: hb.DN0 } }; - function bj(e, t) { + function Hj(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -18051,7 +20217,7 @@ } return n } - var yj = { + var Vj = { regular: { height: 16, width: 32 @@ -18061,18 +20227,18 @@ width: 40 } }, - vj = function(e) { + Wj = function(e) { var t = e.size; - return yj[t].height + return Vj[t].height }, - kj = function(e) { + Yj = function(e) { var t = e.size; - return yj[t].width + return Vj[t].width }, - _j = "transform 0.2s ease"; - const wj = JSON.parse('{"u2":"@atlaskit/toggle","i8":"12.0.3"}'); + Gj = "transform 0.2s ease"; + const Kj = JSON.parse('{"u2":"@atlaskit/toggle","i8":"12.0.3"}'); - function Sj(e, t) { + function $j(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -18083,37 +20249,37 @@ return n } - function Ej(e) { + function Jj(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? Sj(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Sj(Object(n)).forEach((function(t) { + t % 2 ? $j(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : $j(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var xj = function(e) { + var Zj = function(e) { return "large" === e ? "large" : "small" }, - Cj = function() {}, - Aj = { + Qj = function() {}, + Xj = { componentName: "toggle", - packageName: wj.u2, - packageVersion: wj.i8 + packageName: Kj.u2, + packageVersion: Kj.i8 }, - jj = (0, E.forwardRef)((function(e, t) { + eM = (0, x.forwardRef)((function(e, t) { var n = e.defaultChecked, a = void 0 !== n && n, r = e.isDisabled, i = void 0 !== r && r, o = e.onBlur, - s = void 0 === o ? Cj : o, + s = void 0 === o ? Qj : o, l = e.onChange, - c = void 0 === l ? Cj : l, + c = void 0 === l ? Qj : l, u = e.onFocus, - d = void 0 === u ? Cj : u, + d = void 0 === u ? Qj : u, p = e.size, h = void 0 === p ? "regular" : p, m = e.name, @@ -18126,20 +20292,20 @@ _ = e.testId, w = e.mode, S = void 0 === y, - x = eg((0, E.useState)(a), 2), - C = x[0], - A = x[1], - j = pb(Ej({ + E = dr((0, x.useState)(a), 2), + C = E[0], + A = E[1], + T = db(Jj({ fn: s, action: "blur", analyticsData: v - }, Aj)), - P = pb(Ej({ + }, Xj)), + D = db(Jj({ fn: d, action: "focus", analyticsData: v - }, Aj)), - D = pb(Ej({ + }, Xj)), + P = db(Jj({ fn: function(e, t) { return S && A((function(e) { return !e @@ -18147,25 +20313,25 @@ }, action: "change", analyticsData: v - }, Aj)), - T = S ? C : y, - O = { - "data-checked": T || void 0, + }, Xj)), + j = S ? C : y, + M = { + "data-checked": j || void 0, "data-disabled": i || void 0, "data-size": h, "data-testid": _ || void 0 }, - M = (0, E.useMemo)((function() { + I = (0, x.useMemo)((function() { return function(e, t) { var n = function(e) { - return gj[e] + return Uj[e] }(t); return function(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? bj(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : bj(Object(n)).forEach((function(t) { + t % 2 ? Hj(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Hj(Object(n)).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } @@ -18177,16 +20343,16 @@ margin: 2, backgroundClip: "content-box", backgroundColor: n.backgroundColorUnchecked, - borderRadius: "".concat(vj({ + borderRadius: "".concat(Wj({ size: e }), "px"), border: "".concat(2, "px solid transparent"), - height: "".concat(vj({ + height: "".concat(Wj({ size: e }), "px"), position: "relative", - transition: "".concat(_j), - width: "".concat(kj({ + transition: "".concat(Gj), + width: "".concat(Yj({ size: e }), "px"), "&[data-checked]": { @@ -18237,19 +20403,19 @@ content: '""', position: "absolute", transform: "initial", - transition: _j, + transition: Gj, bottom: "".concat(4, "px"), - height: "".concat(vj({ + height: "".concat(Wj({ size: e }) - 4, "px"), - width: "".concat(vj({ + width: "".concat(Wj({ size: e }) - 4, "px"), left: "".concat(4, "px") }, "&[data-checked]::before": { backgroundColor: n.handleBackgroundColorChecked, - transform: "translateX(".concat(vj({ + transform: "translateX(".concat(Wj({ size: e }), "px)") }, @@ -18276,106 +20442,91 @@ }) }(h, w) }), [h, w]); - return Tg("label", z({}, O, { - css: M - }), Tg("input", { + return Lg("label", z({}, M, { + css: I + }), Lg("input", { ref: t, - checked: T, + checked: j, disabled: i, id: k, name: f, - onBlur: j, - onChange: D, - onFocus: P, + onBlur: T, + onChange: P, + onFocus: D, type: "checkbox", value: b, "data-testid": _ && "".concat(_, "--input") - }), Tg(fj.Z, { + }), Lg(Bj.Z, { label: "check", - size: xj(h) - }), Tg(oC.Z, { + size: Zj(h) + }), Lg(MD.Z, { label: "cross", - size: xj(h) + size: Zj(h) })) })), - Pj = (0, E.memo)((0, E.forwardRef)((function(e, t) { - return Tg(Bg.Consumer, null, (function(n) { + tM = (0, x.memo)((0, x.forwardRef)((function(e, t) { + return Lg(Kg.Consumer, null, (function(n) { var a = n.mode; - return Tg(jj, z({}, e, { + return Lg(eM, z({}, e, { mode: a, ref: t })) })) }))); - Pj.displayName = "Toggle"; - const Dj = Pj; + tM.displayName = "Toggle"; + const nM = tM; - function Tj() { - return Tj = Object.assign || function(e) { + function aM() { + return aM = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Tj.apply(this, arguments) + }, aM.apply(this, arguments) } - class Oj extends E.Component { + class rM extends x.Component { render() { - const e = this.props, - { - className: t, - disabled: n, - onValueChange: a, - value: r, - id: i - } = e, - o = function(e, t) { - if (null == e) return {}; - var n, a, r = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, t); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) - } - return r - }(e, ["className", "disabled", "onValueChange", "value", "id"]); - return x().createElement("div", { - className: t - }, x().createElement(Dj, Tj({ - id: i, - isChecked: r, - isDisabled: n, - onChange: a - }, o))) + const { + className: e, + disabled: t, + onValueChange: n, + value: a, + id: r, + ...i + } = this.props; + return C().createElement("div", { + className: e + }, C().createElement(nM, aM({ + id: r, + isChecked: a, + isDisabled: t, + onChange: n + }, i))) } } - const Mj = "recording", - Ij = Je("features/jaas"); + const iM = "recording", + oM = $e("features/jaas"); - function Nj(e) { + function sM(e) { const [, t] = e.split("/"); return t.startsWith("vpaas-magic-cookie-") ? t : "" } - function zj(e) { - return Nj(e["features/base/connection"].locationURL.pathname) + function lM(e) { + return sM(e["features/base/connection"].locationURL.pathname) } - function Rj(e) { + function cM(e) { var t; const n = e["features/base/connection"]; var a; - return !!(null == n || null === (t = n.locationURL) || void 0 === t ? void 0 : t.pathname) && Boolean(Nj(null == n || null === (a = n.locationURL) || void 0 === a ? void 0 : a.pathname)) + return !(null == n || null === (t = n.locationURL) || void 0 === t || !t.pathname) && Boolean(sM(null == n || null === (a = n.locationURL) || void 0 === a ? void 0 : a.pathname)) } - const Lj = { + const uM = { backgroundImage: "url(images/rightwatermark.png)" }; - class Fj extends E.Component { + class dM extends x.Component { constructor(e) { super(e); const t = interfaceConfig.SHOW_BRAND_WATERMARK; @@ -18386,19 +20537,19 @@ } } render() { - return x().createElement("div", null, this._renderJitsiWatermark(), this._renderBrandWatermark(), this._renderPoweredBy()) + return C().createElement("div", null, this._renderJitsiWatermark(), this._renderBrandWatermark(), this._renderPoweredBy()) } _renderBrandWatermark() { let e = null; if (this.state.showBrandWatermark) { - e = x().createElement("div", { + e = C().createElement("div", { className: "watermark rightwatermark", - style: Lj + style: uM }); const { brandWatermarkLink: t } = this.state; - t && (e = x().createElement("a", { + t && (e = C().createElement("a", { href: t, target: "_new" }, e)) @@ -18421,10 +20572,10 @@ maxHeight: 70, position: e ? "static" : "absolute" }; - r = x().createElement("div", { + r = C().createElement("div", { className: "watermark leftwatermark", style: n - }), e && (r = x().createElement("a", { + }), e && (r = C().createElement("a", { "aria-label": a("jitsiHome", { logo: interfaceConfig.APP_NAME }), @@ -18440,16 +20591,16 @@ const { t: e } = this.props; - return x().createElement("a", { + return C().createElement("a", { className: "poweredby", href: "http://jitsi.org", target: "_new" - }, x().createElement("span", null, e("poweredby"), " jitsi.org")) + }, C().createElement("span", null, e("poweredby"), " jitsi.org")) } return null } } - const qj = ze((function(e, t) { + const pM = Ne((function(e, t) { const { customizationReady: n, customizationFailed: a, @@ -18465,29 +20616,29 @@ let p = n && !a && d || !l, h = s, m = o; - return i ? Rj(e) ? p = !a && Boolean(s) : r && (h = c, m = u) : (h = t.defaultJitsiLogoURL || c, m = u), { + return i ? cM(e) ? p = !a && Boolean(s) : r && (h = c, m = u) : (h = t.defaultJitsiLogoURL || c, m = u), { _logoLink: m, _logoUrl: h, _showJitsiWatermark: p } - }))(Li(Fj)); - class Bj extends E.Component { + }))(Ei(dM)); + class hM extends x.Component { static refresh() {} } - function Uj(e) { + function mM(e) { var t; return "string" == typeof e ? e : null == e || null === (t = e.target) || void 0 === t ? void 0 : t.value } - class Hj extends E.Component { + class fM extends x.Component { render() { - return x().createElement(Ns, { + return C().createElement(ro, { className: "beta-tag" - }, x().createElement(_S, null, this.props.t("recording.beta"))) + }, C().createElement(KC, null, this.props.t("recording.beta"))) } } - Li(Hj); - class Vj extends E.Component { + Ei(fM); + class gM extends x.Component { constructor(e) { super(e), this._onKeyPress = this._onKeyPress.bind(this) } @@ -18504,7 +20655,7 @@ onClick: i } = this.props; let o = "overflow-menu-item"; - return o += this.props.disabled ? " disabled" : "", x().createElement("li", { + return o += this.props.disabled ? " disabled" : "", C().createElement("li", { "aria-disabled": t, "aria-label": e, className: o, @@ -18512,35 +20663,35 @@ onKeyPress: this._onKeyPress, role: "menuitem", tabIndex: 0 - }, x().createElement("span", { + }, C().createElement("span", { className: "overflow-menu-item-icon" - }, x().createElement(qs, { + }, C().createElement(lo, { id: r, src: a })), this._renderText(), n || null) } _renderText() { - const e = x().createElement("span", { + const e = C().createElement("span", { className: "overflow-menu-item-text" }, this.props.text); - return this.props.tooltip ? x().createElement(Fw, { + return this.props.tooltip ? C().createElement(hC, { content: this.props.tooltip, position: this.props.tooltipPosition }, e) : e } } - function Wj() { - return Wj = Object.assign || function(e) { + function bM() { + return bM = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n = arguments[t]; for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - }, Wj.apply(this, arguments) + }, bM.apply(this, arguments) } - function Yj(e) { + function yM(e) { const { children: t, icon: n, @@ -18555,13 +20706,13 @@ ariaExpanded: d, iconId: p } = e, h = {}; - return a ? h.className = "settings-button-small-icon settings-button-small-icon--disabled" : (h.className = "settings-button-small-icon", h.onClick = i, h.onKeyDown = o, h.role = "button", h.tabIndex = 0, h.ariaControls = u, h.ariaExpanded = d, h.containerId = p), x().createElement("div", { + return a ? h.className = "settings-button-small-icon settings-button-small-icon--disabled" : (h.className = "settings-button-small-icon", h.onClick = i, h.onKeyDown = o, h.role = "button", h.tabIndex = 0, h.ariaControls = u, h.ariaExpanded = d, h.containerId = p), C().createElement("div", { className: "settings-button-container", styles: s - }, t, x().createElement("div", null, x().createElement(Fw, { + }, t, C().createElement("div", null, C().createElement(hC, { content: r, position: "top" - }, x().createElement(qs, Wj({}, h, { + }, C().createElement(lo, bM({}, h, { ariaHasPopup: c, ariaLabel: l, size: 9, @@ -18574,13 +20725,428 @@ configurable: !0, writable: !0 }) : e[t] = n - }(Vj, "defaultProps", { + }(gM, "defaultProps", { tooltipPosition: "left", disabled: !1 }); - const Gj = Je("features/video-layout"); + const vM = "CLEAR_TOOLBOX_TIMEOUT", + kM = "FULL_SCREEN_CHANGED", + _M = "SET_FULL_SCREEN", + wM = "SET_OVERFLOW_DRAWER", + SM = "SET_OVERFLOW_MENU_VISIBLE", + EM = "SET_TOOLBAR_HOVERED", + xM = "SET_TOOLBOX_ENABLED", + CM = "SET_TOOLBOX_TIMEOUT", + AM = "SET_TOOLBOX_VISIBLE", + TM = "TOGGLE_TOOLBOX_VISIBLE", + DM = "NOTIFY_CAMERA_ERROR", + PM = "NOTIFY_MIC_ERROR", + jM = "SET_AUDIO_INPUT_DEVICE", + MM = "SET_VIDEO_INPUT_DEVICE", + IM = "UPDATE_DEVICE_LIST", + OM = "ADD_PENDING_DEVICE_REQUEST", + NM = "REMOVE_PENDING_DEVICE_REQUESTS", + RM = "CHECK_AND_NOTIFY_FOR_NEW_DEVICE", + zM = "DEVICE_PERMISSIONS_CHANGED", + LM = $e("features/base/devices"), + FM = { + audioinput: "audioInput", + audiooutput: "audioOutput", + videoinput: "videoInput" + }; + + function qM(e) { + if (APP.conference._localTracksInitialized) return !0; + for (const t of ["audioInput", "audioOutput", "videoInput"]) + if ((e["features/base/devices"].availableDevices[t] || []).find((e => Boolean(e.label)))) return !0; + return !1 + } + + function BM() { + return c.default.mediaDevices.getAudioOutputDevice() + } + + function UM(e, t) { + const n = FM[t] || t, + a = (e["features/base/devices"].availableDevices[n] || []).find((e => "default" === e.deviceId)), + r = (e["features/base/devices"].availableDevices[n] || []).find((e => "default" !== e.deviceId && e.groupId === a.groupId)); + if (r) return r.deviceId + } + + function HM(e, t, n) { + const a = FM[n] || n, + r = (e["features/base/devices"].availableDevices[a] || []).find((e => e.label === t)); + if (r) return r.deviceId + } + + function VM(e, t, n) { + const a = FM[n] || n, + r = (e["features/base/devices"].availableDevices[a] || []).find((e => e.deviceId === t)); + if (r) return r.label + } + + function WM(e) { + return { + audioInput: e.filter((e => "audioinput" === e.kind)), + audioOutput: e.filter((e => "audiooutput" === e.kind)), + videoInput: e.filter((e => "videoinput" === e.kind)) + } + } + + function YM(e) { + let t = e; + const n = t.lastIndexOf("("); + return -1 !== n && (t = t.substr(0, n)), t + } + + function GM(e) { + return e["features/base/devices"].availableDevices.audioInput.map((e => { + let { + deviceId: t, + label: n + } = e; + return { + deviceId: t, + label: n + } + })) + } + + function KM(e) { + return e["features/base/devices"].availableDevices.audioOutput.map((e => { + let { + deviceId: t, + label: n + } = e; + return { + deviceId: t, + label: n + } + })) + } + + function $M(e) { + return e["features/base/devices"].availableDevices.videoInput.map((e => { + let { + deviceId: t + } = e; + return t + })) + } + + function JM(e, t) { + return void 0 === e["features/base/devices"] || e["features/base/devices"].availableDevices[t].length > 0 + } + + function ZM() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "default", + t = arguments.length > 1 ? arguments[1] : void 0, + n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2], + a = arguments.length > 3 ? arguments[3] : void 0; + return LM.debug(`setAudioOutputDevice: ${String(a)}[${e}]`), c.default.mediaDevices.isDeviceChangeAvailable("output") ? c.default.mediaDevices.setAudioOutputDevice(e).then((() => { + const r = { + audioOutputDeviceId: e, + userSelectedAudioOutputDeviceId: void 0, + userSelectedAudioOutputDeviceLabel: void 0 + }; + return n ? (r.userSelectedAudioOutputDeviceId = e, r.userSelectedAudioOutputDeviceLabel = a) : (delete r.userSelectedAudioOutputDeviceId, delete r.userSelectedAudioOutputDeviceLabel), t(hn(r)) + })) : (LM.warn("Adjusting audio output is not supported"), Promise.resolve()) + } + const QM = { + audioInput: { + currentDeviceId: "micDeviceId", + userSelectedDeviceId: "userSelectedMicDeviceId", + userSelectedDeviceLabel: "userSelectedMicDeviceLabel" + }, + audioOutput: { + currentDeviceId: "audioOutputDeviceId", + userSelectedDeviceId: "userSelectedAudioOutputDeviceId", + userSelectedDeviceLabel: "userSelectedAudioOutputDeviceLabel" + }, + videoInput: { + currentDeviceId: "audioOutputDeviceId", + userSelectedDeviceId: "userSelectedCameraDeviceId", + userSelectedDeviceLabel: "userSelectedCameraDeviceLabel" + } + }; + + function XM(e) { + return { + type: OM, + request: e + } + } + + function eI() { + return e => new Promise((t => { + const { + mediaDevices: n + } = c.default; + n.isDeviceListAvailable() && n.isDeviceChangeAvailable() ? n.enumerateDevices((n => { + e(lI(n)), t(n) + })) : t([]) + })) + } + + function tI(e) { + return { + type: DM, + error: e + } + } + + function nI(e) { + return { + type: PM, + error: e + } + } + + function aI(e) { + return { + type: jM, + deviceId: e + } + } - function Kj(e, t, n) { + function rI(e) { + return function(t, n) { + const a = VM(n(), e, "audioInput"); + t(aI(e)), t(hn({ + userSelectedMicDeviceId: e, + userSelectedMicDeviceLabel: a + })) + } + } + + function iI(e) { + return function(t, n) { + const a = VM(n(), e, "audioOutput"); + return ZM(e, t, !0, a) + } + } + + function oI(e) { + return { + type: MM, + deviceId: e + } + } + + function sI(e) { + return function(t, n) { + const a = VM(n(), e, "videoInput"); + t(oI(e)), t(hn({ + userSelectedCameraDeviceId: e, + userSelectedCameraDeviceLabel: a + })) + } + } + + function lI(e) { + return { + type: IM, + devices: e + } + } + + function cI(e, t) { + return { + type: RM, + newDevices: e, + oldDevices: t + } + } + const uI = [{ + width: 520, + order: ["microphone", "camera", "desktop", "chat", "raisehand", "participants", "tileview"] + }, { + width: 470, + order: ["microphone", "camera", "desktop", "chat", "raisehand", "participants"] + }, { + width: 420, + order: ["microphone", "camera", "desktop", "chat", "participants"] + }, { + width: 370, + order: ["microphone", "camera", "chat", "participants"] + }, { + width: 320, + order: ["microphone", "camera", "chat"] + }, { + width: 270, + order: ["microphone", "camera"] + }], + dI = "N/A"; + + function pI(e) { + const { + available: t, + muted: n, + unmuteBlocked: a + } = e["features/base/media"].audio; + return !t || n && a + } + + function hI() { + const e = document.getElementById("new-toolbox"); + return e && e.clientHeight || 0 + } + + function mI(e, t) { + return -1 !== $n(t).indexOf(e) + } + + function fI(e) { + const { + iAmSipGateway: t, + toolbarConfig: n + } = e["features/base/config"], { + alwaysVisible: a + } = n || {}, { + timeoutID: r, + visible: i + } = e["features/toolbox"], { + audioSettingsVisible: o, + videoSettingsVisible: s + } = e["features/settings"]; + return Boolean(!t && (r || i || a || o || s)) + } + + function gI(e) { + return !(JM(e, "audioInput") && JM(e, "audioOutput")) || e["features/base/config"].startSilent + } + + function bI(e) { + return !JM(e, "videoInput") + } + + function yI(e) { + const { + muted: t, + unmuteBlocked: n + } = e["features/base/media"].video; + return !JM(e, "videoInput") || n && Boolean(t) + } + + function vI(e) { + return e["features/toolbox"].overflowDrawer + } + + function kI(e) { + const { + toolbarConfig: { + timeout: t + } + } = e["features/base/config"]; + return t || 4e3 + } + + function _I(e) { + return { + type: xM, + enabled: e + } + } + + function wI(e) { + return (t, n) => { + const { + toolbarConfig: { + alwaysVisible: a + } + } = n()["features/base/config"]; + !e && a || t({ + type: AM, + visible: e + }) + } + } + + function SI(e) { + return (t, n) => { + const a = n(), + { + visible: r + } = a["features/toolbox"], + i = kI(a); + e ? (r || t(xI()), t(CI())) : t(r ? DI((() => t(EI())), i) : xI()) + } + } + + function EI() { + let e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; + return (t, n) => { + const a = n(), + { + toolbarConfig: { + alwaysVisible: r + } + } = a["features/base/config"], + { + hovered: i + } = a["features/toolbox"], + o = kI(a); + r || (t(CI()), !e && (i || a["features/invite"].calleeInfoVisible || a["features/chat"].isOpen || document.querySelector(".toolbox-content-items:focus-within,.filmstrip:focus-within,.remotevideomenu:hover")) ? t(DI((() => t(EI())), o)) : t(wI(!1))) + } + } + + function xI() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; + return (t, n) => { + const a = n(), + { + toolbarConfig: { + initialTimeout: r, + alwaysVisible: i + }, + toolbarConfig: o + } = a["features/base/config"], + s = kI(a), + { + enabled: l, + visible: c + } = a["features/toolbox"]; + l && !c && (t(wI(!0)), i || ("number" == typeof r && t(Xn({ + toolbarConfig: { + ...o, + initialTimeout: null + } + })), t(DI((() => t(EI())), e || r || s)))) + } + } + + function CI() { + return { + type: vM + } + } + + function AI(e) { + return { + type: SM, + visible: e + } + } + + function TI(e) { + return { + type: EM, + hovered: e + } + } + + function DI(e, t) { + return function(n) { + va() || n({ + type: CM, + handler: e, + timeoutMS: t + }) + } + } + const PI = $e("features/video-layout"); + + function jI(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, @@ -18588,18 +21154,18 @@ writable: !0 }) : e[t] = n, e } - const $j = Li(ze((function(e, t) { - const n = Df(e, Wa, !0), + const MI = Ei(Ne((function(e, t) { + const n = qf(e, Ha, !0), { visible: a = n } = t; return { - _tileViewEnabled: Ok(e), + _tileViewEnabled: QS(e), visible: a } - }))(class extends Vw { - constructor(...e) { - super(...e), Kj(this, "accessibilityLabel", "toolbar.accessibilityLabel.tileView"), Kj(this, "icon", jp), Kj(this, "label", "toolbar.enterTileView"), Kj(this, "toggledLabel", "toolbar.exitTileView"), Kj(this, "tooltip", "toolbar.tileViewToggle") + }))(class extends bC { + constructor() { + super(...arguments), jI(this, "accessibilityLabel", "toolbar.accessibilityLabel.tileView"), jI(this, "icon", ld), jI(this, "label", "toolbar.enterTileView"), jI(this, "toggledLabel", "toolbar.exitTileView"), jI(this, "tooltip", "toolbar.tileViewToggle") } _handleClick() { const { @@ -18609,15 +21175,17 @@ } = this.props; if (n) return void n(); const a = !e; - Ma(hn("tileview.button", { + Da(ln("tileview.button", { is_enabled: a - })), Gj.debug("Tile view " + (a ? "enable" : "disable")), t(Nk(a)) + })), PI.debug("Tile view " + (a ? "enable" : "disable")), (0, Me.unstable_batchedUpdates)((() => { + t(tE(a)), "ReactNative" !== navigator.product && t(AI(!1)) + })) } _isToggled() { return this.props._tileViewEnabled } })); - class Jj extends E.Component { + class II extends x.Component { render() { const { _requestingSubtitles: e, @@ -18630,65 +21198,48 @@ } } - function Zj(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function OI(e) { + const { + _requestingSubtitles: t + } = e["features/subtitles"], n = function(e) { + const { + _transcriptMessages: t + } = e["features/subtitles"], n = new Map; + for (const [e, a] of t) + if (a) { + let t = `${a.participantName}: `; + a.final ? t += a.final : t += (a.stable || "") + (a.unstable || ""), n.set(e, t) + } return n + }(e); + return { + _requestingSubtitles: t, + _transcripts: 0 === n.size ? void 0 : n + } } - const Qj = ze((function(e) { - const t = Ik(e), - n = mk(e), - a = Rh(e); - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Zj(e, t, n[t]) - })) - } - return e - }({}, function(e) { - const { - _requestingSubtitles: t - } = e["features/subtitles"], n = function(e) { - const { - _transcriptMessages: t - } = e["features/subtitles"], n = new Map; - for (const [e, a] of t) - if (a) { - let t = `${a.participantName}: `; - a.final ? t += a.final : t += (a.stable || "") + (a.unstable || ""), n.set(e, t) - } return n - }(e); - return { - _requestingSubtitles: t, - _transcripts: 0 === n.size ? void 0 : n - } - }(e), { + const NI = Ne((function(e) { + const t = eE(e), + n = hS(e), + a = Uh(e); + return { + ...OI(e), _isLifted: n && (null == n ? void 0 : n.id) !== (null == a ? void 0 : a.id) && !t - }) - }))(class extends Jj { + } + }))(class extends II { _renderParagraph(e, t) { - return x().createElement("p", { + return C().createElement("p", { key: e - }, x().createElement("span", null, t)) + }, C().createElement("span", null, t)) } _renderSubtitlesContainer(e) { const t = this.props._isLifted ? "transcription-subtitles lifted" : "transcription-subtitles"; - return x().createElement("div", { + return C().createElement("div", { className: t }, e) } }), - Xj = "HIDE_DIALOG", - eP = "OPEN_DIALOG", - tP = { + RI = "HIDE_DIALOG", + zI = "OPEN_DIALOG", + LI = { _defaultTheme: { background: "rgb(255, 255, 255)", errorText: "#D00000", @@ -18710,23 +21261,20 @@ }, Dialog: { border: "rgba(0, 3, 6, 0.6)", - buttonBackground: ws, - buttonLabel: Es + buttonBackground: Gi, + buttonLabel: $i }, Header: { - background: ws, - icon: Es, + background: Gi, + icon: $i, statusBar: "#1081b2", - statusBarContent: Es, - text: Es + statusBarContent: $i, + text: $i }, Modal: {}, LargeVideo: { background: "#040404" }, - LoadConfigOverlay: { - background: "rgb(249, 249, 249)" - }, Thumbnail: { activeParticipantHighlight: "rgb(81, 214, 170)", activeParticipantTint: "rgba(49, 183, 106, 0.3)", @@ -18736,27 +21284,14 @@ button: "rgb(255, 255, 255)", buttonToggled: "rgb(38, 58, 76)", buttonToggledBorder: function(e, t) { - let n = e.match(xs); - return n ? `#${n[1]}${n[2]}${n[3]}${Ds(.6)}` : (n = e.match(Cs), n ? `#${n[1]}${n[1]}${n[2]}${n[2]}${n[3]}${n[3]}${Ds(.6)}` : (n = e.match(As), n ? `rgba(${n[1]}, ${n[2]}, ${n[3]}, 0.6)` : e)) + let n = e.match(Ji); + return n ? `#${n[1]}${n[2]}${n[3]}${to(.6)}` : (n = e.match(Zi), n ? `#${n[1]}${n[1]}${n[2]}${n[2]}${n[3]}${n[3]}${to(.6)}` : (n = e.match(Qi), n ? `rgba(${n[1]}, ${n[2]}, ${n[3]}, 0.6)` : e)) }("#a4b8d1"), hangup: "rgb(227,79,86)" } }; - function nP(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - aP(e, t, n[t]) - })) - } - return e - } - - function aP(e, t, n) { + function FI(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, @@ -18764,9 +21299,9 @@ writable: !0 }) : e[t] = n, e } - const rP = new class { + const qI = new class { constructor() { - aP(this, "_schemedStyles", new Map), aP(this, "_styleTemplates", new Map) + FI(this, "_schemedStyles", new Map), FI(this, "_styleTemplates", new Map) } clear() { this._schemedStyles.clear() @@ -18784,7 +21319,9 @@ a = []; for (const r of n) a.push(this._applyColorScheme(e, t, r)) } else { - a = nP({}, n); + a = { + ...n + }; for (const [n, r] of Object.entries(a)) if ("object" == typeof r) a[n] = this._applyColorScheme(e, t, r); else if ("function" == typeof r) { @@ -18795,46 +21332,48 @@ return a } _getColor(e, t, n) { - const a = qe(e)["features/base/color-scheme"]; - return nP({}, tP._defaultTheme, a._defaultTheme, tP[t], a[t])[n] + const a = Fe(e)["features/base/color-scheme"] || {}; + return { + ...LI._defaultTheme, + ...a._defaultTheme, + ...LI[t], + ...a[t] + } [n] } }; - function iP(e, t) { - return qe(e)["features/base/dialog"].component === t + function BI(e, t) { + return Fe(e)["features/base/dialog"].component === t + } + + function UI(e) { + return { + _dialogStyles: qI.get(e, "Dialog") + } } - function oP(e) { + function HI(e) { return { - type: Xj, + type: RI, component: e } } - function sP(e, t, n) { + function VI(e, t, n) { return { rawDialog: n, - type: eP, + type: zI, component: e, componentProps: t } } - function lP(e, t) { + function WI(e, t) { return (n, a) => { - iP(a, e) ? n(oP(e)) : n(sP(e, t)) + BI(a, e) ? n(HI(e)) : n(VI(e, t)) } } - - function cP(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - class uP extends E.Component { + class YI extends x.Component { constructor(e) { super(e), this._onChange = this._onChange.bind(this) } @@ -18843,22 +21382,14 @@ onTabStateChange: t, tabId: n } = this.props; - t(n, function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - cP(e, t, n[t]) - })) - } - return e - }({}, this.props, e)) + t(n, { + ...this.props, + ...e + }) } } - const dP = uP; - class pP extends E.Component { + const GI = YI; + class KI extends x.Component { constructor(e) { super(e), this._onCancel = this._onCancel.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onSubmitFulfilled = this._onSubmitFulfilled.bind(this), this._onSubmitRejected = this._onSubmitRejected.bind(this) } @@ -18869,7 +21400,7 @@ this._mounted = !1 } _hide() { - return this.props.dispatch(oP()) + return this.props.dispatch(HI()) } _onCancel() { const { @@ -18908,7 +21439,7 @@ }) } } - var hP = { + var $I = { flex: "1 0 auto", display: "flex", "& + &::before": { @@ -18918,23 +21449,23 @@ } }; - function mP(e) { + function JI(e) { var t = e.appearance, n = e.children; - return Tg("div", { + return Lg("div", { css: { display: "inline-flex" } - }, x().Children.map(n, (function(e, n) { - return e ? Tg("div", { + }, C().Children.map(n, (function(e, n) { + return e ? Lg("div", { key: n, - css: hP - }, t ? x().cloneElement(e, { + css: $I + }, t ? C().cloneElement(e, { appearance: t }) : e) : null }))) } - var fP = function() { + var ZI = function() { var e = 1, t = new WeakMap, n = function(a, r) { @@ -18942,52 +21473,59 @@ }; return n }, - gP = fP(), - bP = function(e) { + QI = ZI(), + XI = function(e) { return void 0 === e && (e = ""), { value: 1, prefix: e, - uid: fP() + uid: ZI() } }, - yP = bP(), - vP = E.createContext(bP()), - kP = function(e) { + eO = XI(), + tO = x.createContext(XI()), + nO = function(e) { return e.value++ }, - _P = function(e) { + aO = function(e) { return e ? e.prefix : "" }, - wP = function(e, t) { - return wP = Object.setPrototypeOf || { + rO = function(e, t) { + return rO = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]) - }, wP(e, t) + }, rO(e, t) }, - SP = function(e, t, n) { + iO = function() { + return iO = Object.assign || function(e) { + for (var t, n = 1, a = arguments.length; n < a; n++) + for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); + return e + }, iO.apply(this, arguments) + }, + oO = function(e, t, n) { var a = t + e; return String(n ? n(a) : a) }, - EP = function(e) { + sO = function(e) { function t() { var t = null !== e && e.apply(this, arguments) || this; return t.state = { - quartz: t.props.idSource || yP, - prefix: _P(t.props.idSource), - id: kP(t.props.idSource || yP) + quartz: t.props.idSource || eO, + prefix: aO(t.props.idSource), + id: nO(t.props.idSource || eO) }, t.uid = function(e) { - return SP(t.state.id + "-" + t.state.quartz.uid(e), t.state.prefix, t.props.name) + return oO(t.state.id + "-" + t.state.quartz.uid(e), t.state.prefix, t.props.name) }, t } return function(e, t) { function n() { this.constructor = e } - wP(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) + rO(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) }(t, e), t.prototype.render = function() { var e = this.props, t = e.children, @@ -18995,22 +21533,22 @@ a = this.state, r = a.id, i = a.prefix; - return t(SP(r, i, n), this.uid) + return t(oO(r, i, n), this.uid) }, t - }(E.Component), - xP = function(e) { + }(x.Component), + lO = function(e) { var t = e.children, n = e.prefix, a = void 0 === n ? "" : n; - return E.createElement(vP.Provider, { - value: bP(a) + return x.createElement(tO.Provider, { + value: XI(a) }, t) }, - CP = function(e) { + cO = function(e) { var t = e.name, n = e.children; - return E.createElement(vP.Consumer, null, (function(e) { - return E.createElement(EP, { + return x.createElement(tO.Consumer, null, (function(e) { + return x.createElement(sO, { name: t, idSource: e, children: n @@ -19018,24 +21556,24 @@ })) }; - function AP() { - var e = Jf(["\n background: ", ";\n bottom: 0;\n left: 0;\n opacity: ", ";\n pointer-events: ", ";\n position: fixed;\n right: 0;\n top: 0;\n transition: opacity 220ms;\n z-index: ", ";\n"]); - return AP = function() { + function uO() { + var e = sg(["\n background: ", ";\n bottom: 0;\n left: 0;\n opacity: ", ";\n pointer-events: ", ";\n position: fixed;\n right: 0;\n top: 0;\n transition: opacity 220ms;\n z-index: ", ";\n"]); + return uO = function() { return e }, e } - var jP = (0, VS.Z)({ - light: mb.N100A, - dark: mb.DN90A + var dO = (0, fA.Z)({ + light: hb.N100A, + dark: hb.DN90A }); - const PP = Ug.default.div(AP(), jP, (function(e) { + const pO = $g.default.div(uO(), dO, (function(e) { return e.isTinted ? 1 : 0 }), (function(e) { return e.canClickThrough ? "none" : "initial" - }), Gg.blanket), - DP = JSON.parse('{"u2":"@atlaskit/blanket","i8":"11.1.0"}'); - var TP = function(e) { - tb(r, e); + }), eb.blanket), + hO = JSON.parse('{"u2":"@atlaskit/blanket","i8":"11.1.0"}'); + var mO = function(e) { + _r(r, e); var t, n, a = (t = r, n = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; @@ -19046,18 +21584,18 @@ return !1 } }(), function() { - var e, a = Xg(t); + var e, a = kr(t); if (n) { - var r = Xg(this).constructor; + var r = kr(this).constructor; e = Reflect.construct(a, arguments, r) } else e = a.apply(this, arguments); - return ab(this, e) + return vr(this, e) }); function r() { - return Jg(this, r), a.apply(this, arguments) + return Ya(this, r), a.apply(this, arguments) } - return Qg(r, [{ + return Ka(r, [{ key: "render", value: function() { var e = this.props, @@ -19069,32 +21607,32 @@ isTinted: n, onClick: t ? void 0 : a }; - return x().createElement(PP, r) + return C().createElement(pO, r) } }]), r - }(x().Component); - Zf(TP, "defaultProps", { + }(C().Component); + $a(mO, "defaultProps", { canClickThrough: !1, isTinted: !1, onBlanketClicked: function() {} }); - var OP = xS("atlaskit"); - const MP = NS({ + var fO = QC("atlaskit"); + const gO = oA({ componentName: "blanket", - packageName: DP.u2, - packageVersion: DP.i8 - })(FS({ - onBlanketClicked: OP({ + packageName: hO.u2, + packageVersion: hO.i8 + })(uA({ + onBlanketClicked: fO({ action: "clicked", actionSubject: "blanket", attributes: { componentName: "blanket", - packageName: DP.u2, - packageVersion: DP.i8 + packageName: hO.u2, + packageVersion: hO.i8 } }) - })(TP)); - var IP = { + })(mO)); + var bO = { values: ["small", "medium", "large", "x-large"], widths: { small: 400, @@ -19104,18 +21642,18 @@ }, defaultValue: "medium" }, - NP = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/, - zP = dg((function(e) { - return NP.test(e) || 111 === e.charCodeAt(0) && 110 === e.charCodeAt(1) && e.charCodeAt(2) < 91 + yO = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/, + vO = yg((function(e) { + return yO.test(e) || 111 === e.charCodeAt(0) && 110 === e.charCodeAt(1) && e.charCodeAt(2) < 91 })), - RP = function(e) { + kO = function(e) { return "theme" !== e && "innerRef" !== e }, - LP = function(e) { - return "string" == typeof e && e.charCodeAt(0) > 96 ? zP : RP + _O = function(e) { + return "string" == typeof e && e.charCodeAt(0) > 96 ? vO : kO }; - function FP(e, t) { + function wO(e, t) { var n = Object.keys(e); if (Object.getOwnPropertySymbols) { var a = Object.getOwnPropertySymbols(e); @@ -19126,18 +21664,18 @@ return n } - function qP(e) { + function SO(e) { for (var t = 1; t < arguments.length; t++) { var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? FP(n, !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : FP(n).forEach((function(t) { + t % 2 ? wO(n, !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : wO(n).forEach((function(t) { Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) } return e } - var BP = function e(t, n) { + var EO = function e(t, n) { var a, r, i; void 0 !== n && (a = n.label, i = n.target, r = t.__emotion_forwardProp && n.shouldForwardProp ? function(e) { return t.__emotion_forwardProp(e) && n.shouldForwardProp(e) @@ -19145,7 +21683,7 @@ var o = t.__emotion_real === t, s = o && t.__emotion_base || t; "function" != typeof r && o && (r = t.__emotion_forwardProp); - var l = r || LP(s), + var l = r || _O(s), c = !l("as"); return function() { var u = arguments, @@ -19155,8 +21693,8 @@ d.push(u[0][0]); for (var p = u.length, h = 1; h < p; h++) d.push(u[h], u[0][h]) } - var m = xg((function(e, t, n) { - return (0, E.createElement)(Eg.Consumer, null, (function(a) { + var m = Mg((function(e, t, n) { + return (0, x.createElement)(jg.Consumer, null, (function(a) { var o = c && e.as || s, u = "", p = [], @@ -19165,13 +21703,13 @@ for (var m in h = {}, e) h[m] = e[m]; h.theme = a } - "string" == typeof e.className ? u = sg(t.registered, p, e.className) : null != e.className && (u = e.className + " "); - var f = _g(d.concat(p), t.registered, h); - lg(t, f, "string" == typeof o), u += t.key + "-" + f.name, void 0 !== i && (u += " " + i); - var g = c && void 0 === r ? LP(o) : l, + "string" == typeof e.className ? u = mg(t.registered, p, e.className) : null != e.className && (u = e.className + " "); + var f = Tg(d.concat(p), t.registered, h); + fg(t, f, "string" == typeof o), u += t.key + "-" + f.name, void 0 !== i && (u += " " + i); + var g = c && void 0 === r ? _O(o) : l, b = {}; for (var y in e) c && "as" === y || g(y) && (b[y] = e[y]); - return b.className = u, b.ref = n || e.innerRef, (0, E.createElement)(o, b) + return b.className = u, b.ref = n || e.innerRef, (0, x.createElement)(o, b) })) })); return m.displayName = void 0 !== a ? a : "Styled(" + ("string" == typeof s ? s : s.displayName || s.name || "Component") + ")", m.defaultProps = t.defaultProps, m.__emotion_real = m, m.__emotion_base = s, m.__emotion_styles = d, m.__emotion_forwardProp = r, Object.defineProperty(m, "toString", { @@ -19179,35 +21717,38 @@ return "." + i } }), m.withComponent = function(t, a) { - return e(t, void 0 !== a ? qP({}, n || {}, {}, a) : n).apply(void 0, d) + return e(t, void 0 !== a ? SO({}, n || {}, {}, a) : n).apply(void 0, d) }, m } }.bind(); ["a", "abbr", "address", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "big", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "marquee", "menu", "menuitem", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "script", "section", "select", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "u", "ul", "var", "video", "wbr", "circle", "clipPath", "defs", "ellipse", "foreignObject", "g", "image", "line", "linearGradient", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "text", "tspan"].forEach((function(e) { - BP[e] = BP(e) + EO[e] = EO(e) })); - const UP = BP, - HP = { + const xO = EO, + CO = { small: 400, medium: 600, large: 800, "x-large": 968 }, - VP = ({ - widthName: e, - widthValue: t - }) => "number" == typeof t ? `${t}px` : e ? `${HP[e]}px` : t || "auto", - WP = UP.div` + AO = e => { + let { + widthName: t, + widthValue: n + } = e; + return "number" == typeof n ? `${n}px` : t ? `${CO[t]}px` : n || "auto" + }, + TO = xO.div` height: 100vh; left: 0; overflow-y: auto; position: absolute; top: ${e=>e.scrollDistance}px; width: 100%; - z-index: ${Gg.modal}; + z-index: ${eb.modal}; -webkit-overflow-scrolling: touch; `, - YP = e => Dg` + DO = e => zg` display: flex; flex-direction: column; height: ${"calc(100% - 119px)"}; @@ -19217,11 +21758,11 @@ margin-right: auto; max-width: ${"calc(100% - 120px)"}; top: ${60}px; - width: ${VP(e)}; - z-index: ${Gg.modal()}; + width: ${AO(e)}; + z-index: ${eb.modal()}; pointer-events: none; `, - GP = Dg` + PO = zg` height: 100%; left: 0; position: fixed; @@ -19229,45 +21770,45 @@ max-width: 100%; width: 100%; `, - KP = UP.div` - ${YP}; + jO = xO.div` + ${DO}; position: absolute; @media (min-width: 320px) and (max-width: 480px) { - ${GP}; + ${PO}; } `, - $P = UP.div` + MO = xO.div` margin: ${60}px auto; position: relative; - width: ${VP}; - z-index: ${Gg.modal}; + width: ${AO}; + z-index: ${eb.modal}; @media (min-width: 320px) and (max-width: 480px) { - ${GP}; + ${PO}; margin: 0; } `, - JP = UP.div` - ${YP}; + IO = xO.div` + ${DO}; position: fixed; @media (min-width: 320px) and (max-width: 480px) { - ${GP}; + ${PO}; } `, - ZP = UP.div` - ${e=>e.isChromeless?null:`\n background-color: ${(({isChromeless:e})=>e?"transparent":(0,VS.Z)({light:mb.N0,dark:mb.DN50})())(e)};\n border-radius: 3px;\n box-shadow: ${(({isChromeless:e})=>e?"none":`\n 0 0 0 1px ${mb.N30A}, 0 2px 1px ${mb.N30A},\n 0 0 20px -6px ${mb.N60A}\n `)(e) - };\ - n `} - color: ${mb.text}; + OO = xO.div` + ${e=>e.isChromeless?null:`\n background-color: ${(e=>{let{isChromeless:t}=e;return t?"transparent":(0,fA.Z)({light:hb.N0,dark:hb.DN50})()})(e)};\n border-radius: 3px;\n box-shadow: ${(e=>{let{isChromeless:t}=e;return t?"none":`\n 0 0 0 1px ${hb.N30A}, 0 2px 1px ${hb.N30A},\n 0 0 20px -6px ${hb.N60A}\n ` + })(e) + };\ n `} + color: ${hb.text}; display: flex; flex-direction: column; - height: ${e=>(({heightValue:e})=>"number"==typeof e?` - $ { - e - } - px`:e||"auto")({heightValue:e.heightValue})}; + height: ${e=>(e=>{let{heightValue:t}=e;return"number"==typeof t?` + $ { + t + } + px`:t||"auto"})({heightValue:e.heightValue})}; max-height: 100%; outline: 0; pointer-events: auto; @@ -19279,1794 +21820,2225 @@ } `; - function QP() { - return QP = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + function NO() { + return NO = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, NO.apply(this, arguments) + } + jO.displayName = "PositionerAbsolute", OO.displayName = "Dialog", TO.displayName = "FillScreen", MO.displayName = "PositionerRelative", IO.displayName = "PositionerFixed"; + const RO = e => { + const t = { + backgroundColor: e.isChromeless ? "transparent" : (0, fA.Z)({ + light: hb.N0, + dark: hb.DN50 + })({ + theme: { + mode: "dark" } - return e - }, QP.apply(this, arguments) - } - KP.displayName = "PositionerAbsolute", ZP.displayName = "Dialog", WP.displayName = "FillScreen", $P.displayName = "PositionerRelative", JP.displayName = "PositionerFixed"; - const XP = e => { - const t = { - backgroundColor: e.isChromeless ? "transparent" : (0, VS.Z)({ - light: mb.N0, - dark: mb.DN50 - })({ - theme: { - mode: "dark" - } - }) - }; - return x().createElement(ZP, QP({}, e, { - "aria-modal": !0, - style: t, - theme: { - mode: "dark" - } - })) - }, - eD = JSON.parse('{"u2":"@atlaskit/modal-dialog","i8":"11.2.4"}'), - tD = x().createContext(null); - var nD = "unmounted", - aD = "exited", - rD = "entering", - iD = "entered", - oD = "exiting", - sD = function(e) { - function t(t, n) { - var a; - a = e.call(this, t, n) || this; - var r, i = n && !n.isMounting ? t.enter : t.appear; - return a.appearStatus = null, t.in ? i ? (r = aD, a.appearStatus = rD) : r = iD : r = t.unmountOnExit || t.mountOnEnter ? nD : aD, a.state = { - status: r - }, a.nextCallback = null, a - } - S(t, e), t.getDerivedStateFromProps = function(e, t) { - return e.in && t.status === nD ? { - status: aD - } : null - }; - var n = t.prototype; - return n.componentDidMount = function() { - this.updateStatus(!0, this.appearStatus) - }, n.componentDidUpdate = function(e) { - var t = null; - if (e !== this.props) { - var n = this.state.status; - this.props.in ? n !== rD && n !== iD && (t = rD) : n !== rD && n !== iD || (t = oD) - } - this.updateStatus(!1, t) - }, n.componentWillUnmount = function() { - this.cancelNextCallback() - }, n.getTimeouts = function() { - var e, t, n, a = this.props.timeout; - return e = t = n = a, null != a && "number" != typeof a && (e = a.exit, t = a.enter, n = void 0 !== a.appear ? a.appear : t), { - exit: e, - enter: t, - appear: n - } - }, n.updateStatus = function(e, t) { - void 0 === e && (e = !1), null !== t ? (this.cancelNextCallback(), t === rD ? this.performEnter(e) : this.performExit()) : this.props.unmountOnExit && this.state.status === aD && this.setState({ - status: nD - }) - }, n.performEnter = function(e) { - var t = this, - n = this.props.enter, - a = this.context ? this.context.isMounting : e, - r = this.props.nodeRef ? [a] : [Oe().findDOMNode(this), a], - i = r[0], - o = r[1], - s = this.getTimeouts(), - l = a ? s.appear : s.enter; - e || n ? (this.props.onEnter(i, o), this.safeSetState({ - status: rD - }, (function() { - t.props.onEntering(i, o), t.onTransitionEnd(l, (function() { - t.safeSetState({ - status: iD - }, (function() { - t.props.onEntered(i, o) - })) - })) - }))) : this.safeSetState({ - status: iD + }) + }; + return C().createElement(OO, NO({}, e, { + "aria-modal": !0, + style: t, + theme: { + mode: "dark" + } + })) + }, zO = JSON.parse('{"u2":"@atlaskit/modal-dialog","i8":"11.2.4"}'), LO = C().createContext(null); + var FO = "unmounted", qO = "exited", BO = "entering", UO = "entered", HO = "exiting", VO = function(e) { + function t(t, n) { + var a; + a = e.call(this, t, n) || this; + var r, i = n && !n.isMounting ? t.enter : t.appear; + return a.appearStatus = null, t.in ? i ? (r = qO, a.appearStatus = BO) : r = UO : r = t.unmountOnExit || t.mountOnEnter ? FO : qO, a.state = { + status: r + }, a.nextCallback = null, a + } + E(t, e), t.getDerivedStateFromProps = function(e, t) { + return e.in && t.status === FO ? { + status: qO + } : null + }; + var n = t.prototype; + return n.componentDidMount = function() { + this.updateStatus(!0, this.appearStatus) + }, n.componentDidUpdate = function(e) { + var t = null; + if (e !== this.props) { + var n = this.state.status; + this.props.in ? n !== BO && n !== UO && (t = BO) : n !== BO && n !== UO || (t = HO) + } + this.updateStatus(!1, t) + }, n.componentWillUnmount = function() { + this.cancelNextCallback() + }, n.getTimeouts = function() { + var e, t, n, a = this.props.timeout; + return e = t = n = a, null != a && "number" != typeof a && (e = a.exit, t = a.enter, n = void 0 !== a.appear ? a.appear : t), { + exit: e, + enter: t, + appear: n + } + }, n.updateStatus = function(e, t) { + void 0 === e && (e = !1), null !== t ? (this.cancelNextCallback(), t === BO ? this.performEnter(e) : this.performExit()) : this.props.unmountOnExit && this.state.status === qO && this.setState({ + status: FO + }) + }, n.performEnter = function(e) { + var t = this, + n = this.props.enter, + a = this.context ? this.context.isMounting : e, + r = this.props.nodeRef ? [a] : [Ie().findDOMNode(this), a], + i = r[0], + o = r[1], + s = this.getTimeouts(), + l = a ? s.appear : s.enter; + e || n ? (this.props.onEnter(i, o), this.safeSetState({ + status: BO + }, (function() { + t.props.onEntering(i, o), t.onTransitionEnd(l, (function() { + t.safeSetState({ + status: UO }, (function() { - t.props.onEntered(i) + t.props.onEntered(i, o) })) - }, n.performExit = function() { - var e = this, - t = this.props.exit, - n = this.getTimeouts(), - a = this.props.nodeRef ? void 0 : Oe().findDOMNode(this); - t ? (this.props.onExit(a), this.safeSetState({ - status: oD - }, (function() { - e.props.onExiting(a), e.onTransitionEnd(n.exit, (function() { - e.safeSetState({ - status: aD - }, (function() { - e.props.onExited(a) - })) - })) - }))) : this.safeSetState({ - status: aD + })) + }))) : this.safeSetState({ + status: UO + }, (function() { + t.props.onEntered(i) + })) + }, n.performExit = function() { + var e = this, + t = this.props.exit, + n = this.getTimeouts(), + a = this.props.nodeRef ? void 0 : Ie().findDOMNode(this); + t ? (this.props.onExit(a), this.safeSetState({ + status: HO + }, (function() { + e.props.onExiting(a), e.onTransitionEnd(n.exit, (function() { + e.safeSetState({ + status: qO }, (function() { e.props.onExited(a) })) - }, n.cancelNextCallback = function() { - null !== this.nextCallback && (this.nextCallback.cancel(), this.nextCallback = null) - }, n.safeSetState = function(e, t) { - t = this.setNextCallback(t), this.setState(e, t) - }, n.setNextCallback = function(e) { - var t = this, - n = !0; - return this.nextCallback = function(a) { - n && (n = !1, t.nextCallback = null, e(a)) - }, this.nextCallback.cancel = function() { - n = !1 - }, this.nextCallback - }, n.onTransitionEnd = function(e, t) { - this.setNextCallback(t); - var n = this.props.nodeRef ? this.props.nodeRef.current : Oe().findDOMNode(this), - a = null == e && !this.props.addEndListener; - if (n && !a) { - if (this.props.addEndListener) { - var r = this.props.nodeRef ? [this.nextCallback] : [n, this.nextCallback], - i = r[0], - o = r[1]; - this.props.addEndListener(i, o) - } - null != e && setTimeout(this.nextCallback, e) - } else setTimeout(this.nextCallback, 0) - }, n.render = function() { - var e = this.state.status; - if (e === nD) return null; - var t = this.props, - n = t.children, - a = (t.in, t.mountOnEnter, t.unmountOnExit, t.appear, t.enter, t.exit, t.timeout, t.addEndListener, t.onEnter, t.onEntering, t.onEntered, t.onExit, t.onExiting, t.onExited, t.nodeRef, R(t, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"])); - return x().createElement(tD.Provider, { - value: null - }, "function" == typeof n ? n(e, a) : x().cloneElement(x().Children.only(n), a)) - }, t - }(x().Component); - - function lD() {} - sD.contextType = tD, sD.propTypes = {}, sD.defaultProps = { - in: !1, - mountOnEnter: !1, - unmountOnExit: !1, - appear: !1, - enter: !0, - exit: !0, - onEnter: lD, - onEntering: lD, - onEntered: lD, - onExit: lD, - onExiting: lD, - onExited: lD - }, sD.UNMOUNTED = nD, sD.EXITED = aD, sD.ENTERING = rD, sD.ENTERED = iD, sD.EXITING = oD; - const cD = sD; - - function uD(e, t) { - var n = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var a = Object.getOwnPropertySymbols(e); - t && (a = a.filter((function(t) { - return Object.getOwnPropertyDescriptor(e, t).enumerable - }))), n.push.apply(n, a) - } - return n - } - - function dD(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? uD(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : uD(Object(n)).forEach((function(t) { - Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) })) - } - return e + }))) : this.safeSetState({ + status: qO + }, (function() { + e.props.onExited(a) + })) + }, n.cancelNextCallback = function() { + null !== this.nextCallback && (this.nextCallback.cancel(), this.nextCallback = null) + }, n.safeSetState = function(e, t) { + t = this.setNextCallback(t), this.setState(e, t) + }, n.setNextCallback = function(e) { + var t = this, + n = !0; + return this.nextCallback = function(a) { + n && (n = !1, t.nextCallback = null, e(a)) + }, this.nextCallback.cancel = function() { + n = !1 + }, this.nextCallback + }, n.onTransitionEnd = function(e, t) { + this.setNextCallback(t); + var n = this.props.nodeRef ? this.props.nodeRef.current : Ie().findDOMNode(this), + a = null == e && !this.props.addEndListener; + if (n && !a) { + if (this.props.addEndListener) { + var r = this.props.nodeRef ? [this.nextCallback] : [n, this.nextCallback], + i = r[0], + o = r[1]; + this.props.addEndListener(i, o) + } + null != e && setTimeout(this.nextCallback, e) + } else setTimeout(this.nextCallback, 0) + }, n.render = function() { + var e = this.state.status; + if (e === FO) return null; + var t = this.props, + n = t.children, + a = (t.in, t.mountOnEnter, t.unmountOnExit, t.appear, t.enter, t.exit, t.timeout, t.addEndListener, t.onEnter, t.onEntering, t.onEntered, t.onExit, t.onExiting, t.onExited, t.nodeRef, L(t, ["children", "in", "mountOnEnter", "unmountOnExit", "appear", "enter", "exit", "timeout", "addEndListener", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "nodeRef"])); + return C().createElement(LO.Provider, { + value: null + }, "function" == typeof n ? n(e, a) : C().cloneElement(C().Children.only(n), a)) + }, t + }(C().Component); + + function WO() {} + VO.contextType = LO, VO.propTypes = {}, VO.defaultProps = { + in: !1, + mountOnEnter: !1, + unmountOnExit: !1, + appear: !1, + enter: !0, + exit: !0, + onEnter: WO, + onEntering: WO, + onEntered: WO, + onExit: WO, + onExiting: WO, + onExited: WO + }, VO.UNMOUNTED = FO, VO.EXITED = qO, VO.ENTERING = BO, VO.ENTERED = UO, VO.EXITING = HO; + const YO = VO; + + function GO(e, t) { + var n = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var a = Object.getOwnPropertySymbols(e); + t && (a = a.filter((function(t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable + }))), n.push.apply(n, a) + } + return n + } + + function KO(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {}; + t % 2 ? GO(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : GO(Object(n)).forEach((function(t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) + })) } - var pD = function(e) { - var t = e.in, - n = e.stackIndex, - a = void 0 === n ? 0 : n, - r = e.onExited, - i = e.onEntered, - o = e.children; - return x().createElement(cD, { - in: t, - timeout: { - enter: 0, - exit: 500 + return e + } + var $O = function(e) { + var t = e.in, + n = e.stackIndex, + a = void 0 === n ? 0 : n, + r = e.onExited, + i = e.onEntered, + o = e.children; + return C().createElement(YO, { + in: t, + timeout: { + enter: 0, + exit: 500 + }, + onExited: r, + onEntered: i, + appear: !0 + }, (function(e) { + var n = t && "exited" === e ? "entering" : e, + r = { + transition: "opacity ".concat(250, "ms"), + opacity: 1 }, - onExited: r, - onEntered: i, - appear: !0 - }, (function(e) { - var n = t && "exited" === e ? "entering" : e, - r = { - transition: "opacity ".concat(250, "ms"), - opacity: 1 + i = { + transition: "transform ".concat(500, "ms ").concat("cubic-bezier(0.23, 1, 0.32, 1)"), + transform: "translate3d(0, ".concat(32, "px, 0)") + }, + s = { + entering: {}, + entered: { + transform: a > 0 ? "translate3d(0, ".concat(8 * a, "px, 0)") : null }, - i = { - transition: "transform ".concat(500, "ms ").concat("cubic-bezier(0.23, 1, 0.32, 1)"), - transform: "translate3d(0, ".concat(32, "px, 0)") + exiting: { + transform: "translate3d(0, -".concat(32, "px, 0)") }, - s = { - entering: {}, - entered: { - transform: a > 0 ? "translate3d(0, ".concat(8 * a, "px, 0)") : null - }, - exiting: { - transform: "translate3d(0, -".concat(32, "px, 0)") - }, - exited: {} - }; - return o({ - fade: dD(dD({}, r), { - entering: { - opacity: 0 - }, - entered: {}, - exiting: { - opacity: 0 - }, - exited: {} - } [n]), - slide: dD(dD({}, i), s[n]) - }) - })) - }; - - function hD() { - var e = Jf(["\n flex: 1 0 auto;\n margin: 0 ", "px;\n"]); - return hD = function() { - return e - }, e - } + exited: {} + }; + return o({ + fade: KO(KO({}, r), { + entering: { + opacity: 0 + }, + entered: {}, + exiting: { + opacity: 0 + }, + exited: {} + } [n]), + slide: KO(KO({}, i), s[n]) + }) + })) + }; - function mD() { - var e = Jf(["\n display: inline-flex;\n margin: 0 -", "px;\n"]); - return mD = function() { - return e - }, e - } + function JO() { + var e = sg(["\n flex: 1 0 auto;\n margin: 0 ", "px;\n"]); + return JO = function() { + return e + }, e + } - function fD() { - var e = Jf(["\n position: relative;\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: space-between;\n transition: box-shadow 200ms;\n padding: ", "px ", "px ", "px\n ", "px;\n box-shadow: ", ";\n"]); - return fD = function() { - return e - }, e - } + function ZO() { + var e = sg(["\n display: inline-flex;\n margin: 0 -", "px;\n"]); + return ZO = function() { + return e + }, e + } - function gD() { - var e = Jf(["\n ", ";\n"]); - return gD = function() { - return e - }, e - } + function QO() { + var e = sg(["\n position: relative;\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: space-between;\n transition: box-shadow 200ms;\n padding: ", "px ", "px ", "px\n ", "px;\n box-shadow: ", ";\n"]); + return QO = function() { + return e + }, e + } - function bD() { - var e = Jf(["\n flex: 1 1 auto;\n ", "\n @media (min-width: 320px) and (max-width: 480px) {\n overflow-y: auto;\n height: 100%;\n }\n &:focus {\n outline-offset: -1px;\n outline-style: dotted;\n outline-color: ", ";\n outline-width: thin;\n }\n"]); - return bD = function() { - return e - }, e - } + function XO() { + var e = sg(["\n ", ";\n"]); + return XO = function() { + return e + }, e + } - function yD() { - var e = Jf(["\n color: ", ";\n margin-right: ", "px;\n flex: 0 0 auto;\n"]); - return yD = function() { - return e - }, e - } + function eN() { + var e = sg(["\n flex: 1 1 auto;\n ", "\n @media (min-width: 320px) and (max-width: 480px) {\n overflow-y: auto;\n height: 100%;\n }\n &:focus {\n outline-offset: -1px;\n outline-style: dotted;\n outline-color: ", ";\n outline-width: thin;\n }\n"]); + return eN = function() { + return e + }, e + } - function vD() { - var e = Jf(["\n flex: 1 1 auto;\n min-width: 0;\n word-wrap: break-word;\n width: 100%;\n ", ";\n"]); - return vD = function() { - return e - }, e - } + function tN() { + var e = sg(["\n color: ", ";\n margin-right: ", "px;\n flex: 0 0 auto;\n"]); + return tN = function() { + return e + }, e + } - function kD() { - var e = Jf(["\n align-items: center;\n display: flex;\n font-size: 20px;\n font-style: inherit;\n font-weight: 500;\n letter-spacing: -0.008em;\n line-height: 1;\n margin: 0;\n min-width: 0;\n"]); - return kD = function() { - return e - }, e - } + function nN() { + var e = sg(["\n flex: 1 1 auto;\n min-width: 0;\n word-wrap: break-word;\n width: 100%;\n ", ";\n"]); + return nN = function() { + return e + }, e + } - function _D() { - var e = Jf(["\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: space-between;\n transition: box-shadow 200ms;\n position: relative;\n padding: ", "px ", "px ", "px\n ", "px;\n box-shadow: ", ";\n"]); - return _D = function() { - return e - }, e - } + function aN() { + var e = sg(["\n align-items: center;\n display: flex;\n font-size: 20px;\n font-style: inherit;\n font-weight: 500;\n letter-spacing: -0.008em;\n line-height: 1;\n margin: 0;\n min-width: 0;\n"]); + return aN = function() { + return e + }, e + } - function wD() { - var e = Jf(["\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n max-height: 100%;\n"]); - return wD = function() { - return e - }, e - } - var SD = 24, - ED = (0, VS.Z)({ - light: mb.N30, - dark: mb.DN30 - }), - xD = Dg(wD()), - CD = UP.header(_D(), SD, SD, 22, SD, (function(e) { - return e.showKeyline ? "0 ".concat(2, "px 0 0 ").concat(ED(e)) : "none" - })), - AD = UP.h4(kD()), - jD = UP.span(vD(), (function(e) { - return !e.isHeadingMultiline && "\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n " - })), - PD = { - danger: mb.R400, - warning: mb.Y400 - }, - DD = function(e) { - return Dg(yD(), PD[e], 8) - }, - TD = function(e) { - return Dg(bD(), e ? "\n overflow-y: auto;\n overflow-x: hidden;\n padding: ".concat(2, "px ").concat(SD, "px;\n ") : "\n padding: 0 ".concat(SD, "px;\n "), mb.N800) - }, - OD = UP.div(gD(), (function(e) { - return TD(e.shouldScroll) - })), - MD = UP.footer(fD(), 22, SD, SD, SD, (function(e) { - return e.showKeyline ? "0 -".concat(2, "px 0 0 ").concat(ED(e)) : "none" - })), - ID = UP.div(mD(), GS(Wg, 2)), - ND = UP.div(hD(), GS(Wg, 2)); - var zD = function(e) { - return x().createElement("span", e) - }, - RD = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + function rN() { + var e = sg(["\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n justify-content: space-between;\n transition: box-shadow 200ms;\n position: relative;\n padding: ", "px ", "px ", "px\n ", "px;\n box-shadow: ", ";\n"]); + return rN = function() { + return e + }, e + } - function r() { - return Jg(this, r), a.apply(this, arguments) - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this.props, - t = e.actions, - n = e.appearance, - a = e.component, - r = e.onClose, - i = e.showKeyline; - return a || t ? a && t ? (console.warn("You can provide `component` OR `actions`, not both."), null) : a ? x().createElement(a, { - appearance: n, - onClose: r, - showKeyline: i - }) : x().createElement(MD, { - showKeyline: i - }, x().createElement(zD, null), x().createElement(ID, null, t ? t.map((function(e, t) { - var a = e.text, - r = Fg(e, ["text"]), - i = 0 !== t ? "subtle" : n || "primary"; - return x().createElement(ND, { - key: t - }, x().createElement(Hy, z({ - appearance: i - }, r), a)) - })) : null)) : null - } - }]), r - }(x().Component); - var LD = function(e) { - var t = e.appearance; - if (!t) return null; - var n = "danger" === t ? Sv.Z : Ev.Z; - return Tg("span", { - css: DD(t) - }, Tg(n, { - label: "".concat(t, " icon") - })) - }, - FD = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + function iN() { + var e = sg(["\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n max-height: 100%;\n"]); + return iN = function() { + return e + }, e + } + var oN = 24, sN = (0, fA.Z)({ + light: hb.N30, + dark: hb.DN30 + }), lN = zg(iN()), cN = xO.header(rN(), oN, oN, 22, oN, (function(e) { + return e.showKeyline ? "0 ".concat(2, "px 0 0 ").concat(sN(e)) : "none" + })), uN = xO.h4(aN()), dN = xO.span(nN(), (function(e) { + return !e.isHeadingMultiline && "\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n " + })), pN = { + danger: hb.R400, + warning: hb.Y400 + }, hN = function(e) { + return zg(tN(), pN[e], 8) + }, mN = function(e) { + return zg(eN(), e ? "\n overflow-y: auto;\n overflow-x: hidden;\n padding: ".concat(2, "px ").concat(oN, "px;\n ") : "\n padding: 0 ".concat(oN, "px;\n "), hb.N800) + }, fN = xO.div(XO(), (function(e) { + return mN(e.shouldScroll) + })), gN = xO.footer(QO(), 22, oN, oN, oN, (function(e) { + return e.showKeyline ? "0 -".concat(2, "px 0 0 ").concat(sN(e)) : "none" + })), bN = xO.div(ZO(), yA(Qg, 2)), yN = xO.div(JO(), yA(Qg, 2)); + var vN = function(e) { + return C().createElement("span", e) + }, kN = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function r() { - return Jg(this, r), a.apply(this, arguments) - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this.props, - t = e.id, - n = e.appearance, - a = e.component, - r = e.heading, - i = e.onClose, - o = e.showKeyline, - s = e.isHeadingMultiline, - l = e.testId; - return a || r ? a && r ? (console.warn("You can provide `component` OR `heading`, not both."), null) : a ? x().createElement(a, { - id: t, - testId: l, - appearance: n, - onClose: i, - showKeyline: o, - isHeadingMultiline: s - }) : Tg(CD, { - showKeyline: o - }, Tg(AD, null, Tg(LD, { - appearance: n - }), Tg(jD, { - isHeadingMultiline: s, - id: t, - "data-testid": l && "".concat(l, "-heading") - }, r))) : null - } - }]), r - }(x().Component); + function r() { + return Ya(this, r), a.apply(this, arguments) + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this.props, + t = e.actions, + n = e.appearance, + a = e.component, + r = e.onClose, + i = e.showKeyline; + return a || t ? a && t ? (console.warn("You can provide `component` OR `actions`, not both."), null) : a ? C().createElement(a, { + appearance: n, + onClose: r, + showKeyline: i + }) : C().createElement(gN, { + showKeyline: i + }, C().createElement(vN, null), C().createElement(bN, null, t ? t.map((function(e, t) { + var a = e.text, + r = Yg(e, ["text"]), + i = 0 !== t ? "subtle" : n || "primary"; + return C().createElement(yN, { + key: t + }, C().createElement(By, z({ + appearance: i + }, r), a)) + })) : null)) : null + } + }]), r + }(C().Component), _N = n(7737); + var wN = function(e) { + var t = e.appearance; + if (!t) return null; + var n = "danger" === t ? _N.Z : CD.Z; + return Lg("span", { + css: hN(t) + }, Lg(n, { + label: "".concat(t, " icon") + })) + }, SN = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function qD(e) { - return function(t) { - e.forEach((function(e) { - "function" == typeof e ? e(t) : null != e && (e.current = t) - })) + function r() { + return Ya(this, r), a.apply(this, arguments) + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this.props, + t = e.id, + n = e.appearance, + a = e.component, + r = e.heading, + i = e.onClose, + o = e.showKeyline, + s = e.isHeadingMultiline, + l = e.testId; + return a || r ? a && r ? (console.warn("You can provide `component` OR `heading`, not both."), null) : a ? C().createElement(a, { + id: t, + testId: l, + appearance: n, + onClose: i, + showKeyline: o, + isHeadingMultiline: s + }) : Lg(cN, { + showKeyline: o + }, Lg(uN, null, Lg(wN, { + appearance: n + }), Lg(dN, { + isHeadingMultiline: s, + id: t, + "data-testid": l && "".concat(l, "-heading") + }, r))) : null } + }]), r + }(C().Component); + + function EN(e) { + return function(t) { + e.forEach((function(e) { + "function" == typeof e ? e(t) : null != e && (e.current = t) + })) } - Zf(FD, "defaultProps", { - isHeadingMultiline: !0 + } + $a(SN, "defaultProps", { + isHeadingMultiline: !0 + }); + var xN = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) }); - var BD = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "escapeIsHeldDown", !1), Zf(_(e), "_isMounted", !1), Zf(_(e), "scrollContainer", null), Zf(_(e), "state", { - showFooterKeyline: !1, - showHeaderKeyline: !1, - showContentFocus: !1, - tabbableElements: [] - }), Zf(_(e), "determineKeylines", tE((function() { - if (e.scrollContainer) { - var t = e.scrollContainer, - n = t.scrollTop, - a = t.scrollHeight, - r = t.clientHeight, - i = n > 2, - o = n <= a - r - 2, - s = a > r; - e.setState({ - showHeaderKeyline: i, - showFooterKeyline: o, - showContentFocus: s - }) - } - }))), Zf(_(e), "getScrollContainer", (function(t) { - t && (e.scrollContainer = t) - })), Zf(_(e), "handleKeyUp", (function() { - e.escapeIsHeldDown = !1 - })), Zf(_(e), "handleKeyDown", (function(t) { - var n = e.props, - a = n.onClose, - r = n.shouldCloseOnEscapePress, - i = n.stackIndex, - o = void 0 === i ? 0 : i, - s = "Escape" === t.key; - e.escapeIsHeldDown || (s && (e.escapeIsHeldDown = !0), !e._isMounted || o > 0 || s && r && a(t)) - })), Zf(_(e), "handleStackChange", (function(t) { - var n = e.props.onStackChange; - n && n(t) - })), e - } - return Qg(r, [{ - key: "componentDidMount", - value: function() { - if (this._isMounted = !0, document.addEventListener("keydown", this.handleKeyDown, !1), document.addEventListener("keyup", this.handleKeyUp, !1), this.scrollContainer) { - var e = this.scrollContainer; - window.addEventListener("resize", this.determineKeylines, !1), e.addEventListener("scroll", this.determineKeylines, !1), this.determineKeylines() - } - this.props.header && console.warn("@atlaskit/modal-dialog: Deprecation warning - Use of the header prop in ModalDialog is deprecated. Please compose your ModalDialog using the 'components' prop instead"), this.props.footer && console.warn("@atlaskit/modal-dialog: Deprecation warning - Use of the footer prop in ModalDialog is deprecated. Please compose your ModalDialog using the 'components' prop instead"), this.props.body && console.warn("@atlaskit/modal-dialog: Deprecation warning - Use of the body prop in ModalDialog is deprecated. Please compose your ModalDialog using the 'components' prop instead"), this.props.components.Body && (this.scrollContainer instanceof HTMLElement || console.warn("@atlaskit/modal-dialog: Warning - Ref must attach to a DOM element; check you are using forwardRef and attaching the ref to an appropriate element. Check the examples for more details.")) + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "escapeIsHeldDown", !1), $a(w(e), "_isMounted", !1), $a(w(e), "scrollContainer", null), $a(w(e), "state", { + showFooterKeyline: !1, + showHeaderKeyline: !1, + showContentFocus: !1, + tabbableElements: [] + }), $a(w(e), "determineKeylines", CA((function() { + if (e.scrollContainer) { + var t = e.scrollContainer, + n = t.scrollTop, + a = t.scrollHeight, + r = t.clientHeight, + i = n > 2, + o = n <= a - r - 2, + s = a > r; + e.setState({ + showHeaderKeyline: i, + showFooterKeyline: o, + showContentFocus: s + }) } - }, { - key: "UNSAFE_componentWillReceiveProps", - value: function(e) { - var t = this.props.stackIndex; - e.stackIndex && e.stackIndex !== t && this.handleStackChange(e.stackIndex) + }))), $a(w(e), "getScrollContainer", (function(t) { + t && (e.scrollContainer = t) + })), $a(w(e), "handleKeyUp", (function() { + e.escapeIsHeldDown = !1 + })), $a(w(e), "handleKeyDown", (function(t) { + var n = e.props, + a = n.onClose, + r = n.shouldCloseOnEscapePress, + i = n.stackIndex, + o = void 0 === i ? 0 : i, + s = "Escape" === t.key; + e.escapeIsHeldDown || (s && (e.escapeIsHeldDown = !0), !e._isMounted || o > 0 || s && r && a(t)) + })), $a(w(e), "handleStackChange", (function(t) { + var n = e.props.onStackChange; + n && n(t) + })), e + } + return Ka(r, [{ + key: "componentDidMount", + value: function() { + if (this._isMounted = !0, document.addEventListener("keydown", this.handleKeyDown, !1), document.addEventListener("keyup", this.handleKeyUp, !1), this.scrollContainer) { + var e = this.scrollContainer; + window.addEventListener("resize", this.determineKeylines, !1), e.addEventListener("scroll", this.determineKeylines, !1), this.determineKeylines() } - }, { - key: "componentWillUnmount", - value: function() { - if (this._isMounted = !1, document.removeEventListener("keydown", this.handleKeyDown, !1), document.removeEventListener("keyup", this.handleKeyUp, !1), this.scrollContainer) { - var e = this.scrollContainer; - window.removeEventListener("resize", this.determineKeylines, !1), e.removeEventListener("scroll", this.determineKeylines, !1) - } + this.props.header && console.warn("@atlaskit/modal-dialog: Deprecation warning - Use of the header prop in ModalDialog is deprecated. Please compose your ModalDialog using the 'components' prop instead"), this.props.footer && console.warn("@atlaskit/modal-dialog: Deprecation warning - Use of the footer prop in ModalDialog is deprecated. Please compose your ModalDialog using the 'components' prop instead"), this.props.body && console.warn("@atlaskit/modal-dialog: Deprecation warning - Use of the body prop in ModalDialog is deprecated. Please compose your ModalDialog using the 'components' prop instead"), this.props.components.Body && (this.scrollContainer instanceof HTMLElement || console.warn("@atlaskit/modal-dialog: Warning - Ref must attach to a DOM element; check you are using forwardRef and attaching the ref to an appropriate element. Check the examples for more details.")) + } + }, { + key: "UNSAFE_componentWillReceiveProps", + value: function(e) { + var t = this.props.stackIndex; + e.stackIndex && e.stackIndex !== t && this.handleStackChange(e.stackIndex) + } + }, { + key: "componentWillUnmount", + value: function() { + if (this._isMounted = !1, document.removeEventListener("keydown", this.handleKeyDown, !1), document.removeEventListener("keyup", this.handleKeyUp, !1), this.scrollContainer) { + var e = this.scrollContainer; + window.removeEventListener("resize", this.determineKeylines, !1), e.removeEventListener("scroll", this.determineKeylines, !1) } - }, { - key: "render", - value: function() { - var e = this, - t = this.props, - n = t.actions, - a = t.appearance, - r = t.body, - i = t.children, - o = t.components, - s = t.footer, - l = t.header, - c = t.heading, - u = t.isChromeless, - d = t.isHeadingMultiline, - p = t.onClose, - h = t.shouldScroll, - m = t.testId, - f = t.headingId, - g = this.state, - b = g.showFooterKeyline, - y = g.showHeaderKeyline, - v = g.showContentFocus, - k = o.Container, - _ = void 0 === k ? "div" : k, - w = o.Body || r || OD; - return Tg(_, { - css: xD, - "data-testid": m - }, u ? i : Tg(x().Fragment, null, Tg(FD, { - id: f, - appearance: a, - component: o.Header ? o.Header : l, - heading: c, - onClose: p, - isHeadingMultiline: d, - showKeyline: y, - testId: m - }), this.scrollContainer instanceof HTMLElement ? Tg(ox.in, null, (function(t) { - return Tg(w, z({ - tabIndex: v ? 0 : void 0, - css: TD(h) - }, w.hasOwnProperty("styledComponentId") ? { - innerRef: qD([t, e.getScrollContainer]) - } : { - ref: qD([t, e.getScrollContainer]) - }), i) - })) : Tg(w, z({ + } + }, { + key: "render", + value: function() { + var e = this, + t = this.props, + n = t.actions, + a = t.appearance, + r = t.body, + i = t.children, + o = t.components, + s = t.footer, + l = t.header, + c = t.heading, + u = t.isChromeless, + d = t.isHeadingMultiline, + p = t.onClose, + h = t.shouldScroll, + m = t.testId, + f = t.headingId, + g = this.state, + b = g.showFooterKeyline, + y = g.showHeaderKeyline, + v = g.showContentFocus, + k = o.Container, + _ = void 0 === k ? "div" : k, + w = o.Body || r || fN; + return Lg(_, { + css: lN, + "data-testid": m + }, u ? i : Lg(C().Fragment, null, Lg(SN, { + id: f, + appearance: a, + component: o.Header ? o.Header : l, + heading: c, + onClose: p, + isHeadingMultiline: d, + showKeyline: y, + testId: m + }), this.scrollContainer instanceof HTMLElement ? Lg(jT.in, null, (function(t) { + return Lg(w, z({ tabIndex: v ? 0 : void 0, - css: TD(h) + css: mN(h) }, w.hasOwnProperty("styledComponentId") ? { - innerRef: this.getScrollContainer + innerRef: EN([t, e.getScrollContainer]) } : { - ref: this.getScrollContainer - }), i), Tg(RD, { - actions: n, - appearance: a, - component: o.Footer ? o.Footer : s, - onClose: p, - showKeyline: b - })), Tg(ox.ZP, null)) - } - }]), r - }(x().Component); - Zf(BD, "defaultProps", { - autoFocus: !1, - components: {}, - isChromeless: !1, - stackIndex: 0, - isHeadingMultiline: !0 - }); - var UD = "data-focus-lock", - HD = "data-focus-lock-disabled", - VD = "data-autofocus-inside"; - var WD = { - width: "1px", - height: "0px", - padding: 0, - overflow: "hidden", - position: "fixed", - top: "1px", - left: "1px" - }, - YD = function(e) { - var t = e.children; - return E.createElement(E.Fragment, null, E.createElement("div", { - key: "guard-first", - "data-focus-guard": !0, - "data-focus-auto-guard": !0, - style: WD - }), t, t && E.createElement("div", { - key: "guard-last", - "data-focus-guard": !0, - "data-focus-auto-guard": !0, - style: WD - })) - }; - YD.propTypes = {}, YD.defaultProps = { - children: null - }; - var GD = function() { - return GD = Object.assign || function(e) { - for (var t, n = 1, a = arguments.length; n < a; n++) - for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); - return e - }, GD.apply(this, arguments) - }; + ref: EN([t, e.getScrollContainer]) + }), i) + })) : Lg(w, z({ + tabIndex: v ? 0 : void 0, + css: mN(h) + }, w.hasOwnProperty("styledComponentId") ? { + innerRef: this.getScrollContainer + } : { + ref: this.getScrollContainer + }), i), Lg(kN, { + actions: n, + appearance: a, + component: o.Footer ? o.Footer : s, + onClose: p, + showKeyline: b + })), Lg(jT.ZP, null)) + } + }]), r + }(C().Component); $a(xN, "defaultProps", { + autoFocus: !1, + components: {}, + isChromeless: !1, + stackIndex: 0, + isHeadingMultiline: !0 + }); + var CN = "data-focus-lock", AN = "data-focus-lock-disabled", TN = "data-autofocus-inside"; + var DN = { + width: "1px", + height: "0px", + padding: 0, + overflow: "hidden", + position: "fixed", + top: "1px", + left: "1px" + }, PN = function(e) { + var t = e.children; + return x.createElement(x.Fragment, null, x.createElement("div", { + key: "guard-first", + "data-focus-guard": !0, + "data-focus-auto-guard": !0, + style: DN + }), t, t && x.createElement("div", { + key: "guard-last", + "data-focus-guard": !0, + "data-focus-auto-guard": !0, + style: DN + })) + }; - function KD(e) { - return e - } + function jN(e) { + return e + } - function $D(e, t) { - void 0 === t && (t = KD); - var n = [], - a = !1; - return { - read: function() { - if (a) throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`."); - return n.length ? n[n.length - 1] : e - }, - useMedium: function(e) { - var r = t(e, a); - return n.push(r), - function() { - n = n.filter((function(e) { - return e !== r - })) - } - }, - assignSyncMedium: function(e) { - for (a = !0; n.length;) { - var t = n; - n = [], t.forEach(e) - } - n = { - push: function(t) { - return e(t) - }, - filter: function() { - return n - } + function MN(e, t) { + void 0 === t && (t = jN); + var n = [], + a = !1; + return { + read: function() { + if (a) throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`."); + return n.length ? n[n.length - 1] : e + }, + useMedium: function(e) { + var r = t(e, a); + return n.push(r), + function() { + n = n.filter((function(e) { + return e !== r + })) } - }, - assignMedium: function(e) { - a = !0; - var t = []; - if (n.length) { - var r = n; - n = [], r.forEach(e), t = n + }, + assignSyncMedium: function(e) { + for (a = !0; n.length;) { + var t = n; + n = [], t.forEach(e) + } + n = { + push: function(t) { + return e(t) + }, + filter: function() { + return n } - var i = function() { - var n = t; - t = [], n.forEach(e) - }, - o = function() { - return Promise.resolve().then(i) - }; - o(), n = { - push: function(e) { - t.push(e), o() - }, - filter: function(e) { - return t = t.filter(e), n - } + } + }, + assignMedium: function(e) { + a = !0; + var t = []; + if (n.length) { + var r = n; + n = [], r.forEach(e), t = n + } + var i = function() { + var n = t; + t = [], n.forEach(e) + }, + o = function() { + return Promise.resolve().then(i) + }; + o(), n = { + push: function(e) { + t.push(e), o() + }, + filter: function(e) { + return t = t.filter(e), n } } } } + } - function JD(e, t) { - return void 0 === t && (t = KD), $D(e, t) - } - var ZD = JD({}, (function(e) { + function IN(e, t) { + return void 0 === t && (t = jN), MN(e, t) + } + PN.propTypes = {}, PN.defaultProps = { + children: null + }; + var ON = IN({}, (function(e) { + return { + target: e.target, + currentTarget: e.currentTarget + } + })), NN = IN(), RN = IN(), zN = function(e) { + void 0 === e && (e = {}); + var t = MN(null); + return t.options = iO({ + async: !0, + ssr: !1 + }, e), t + }({ + async: !0 + }), LN = [], FN = x.forwardRef((function(e, t) { + var n, a, r, i, o, s, l = x.useState(), + c = l[0], + u = l[1], + d = x.useRef(), + p = x.useRef(!1), + h = x.useRef(null), + m = e.children, + f = e.disabled, + g = e.noFocusGuards, + b = e.persistentFocus, + y = e.crossFrame, + v = e.autoFocus, + k = (e.allowTextSelection, e.group), + _ = e.className, + w = e.whiteList, + S = e.shards, + E = void 0 === S ? LN : S, + C = e.as, + A = void 0 === C ? "div" : C, + T = e.lockProps, + D = void 0 === T ? {} : T, + P = e.sideCar, + j = e.returnFocus, + M = e.onActivation, + I = e.onDeactivation, + O = x.useState({})[0], + N = x.useCallback((function() { + h.current = h.current || document && document.activeElement, d.current && M && M(d.current), p.current = !0 + }), [M]), + R = x.useCallback((function() { + p.current = !1, I && I(d.current) + }), [I]), + L = x.useCallback((function(e) { + var t = h.current; + if (Boolean(j) && t && t.focus) { + var n = "object" == typeof j ? j : void 0; + h.current = null, e ? Promise.resolve().then((function() { + return t.focus(n) + })) : t.focus(n) + } + }), [j]), + F = x.useCallback((function(e) { + p.current && ON.useMedium(e) + }), []), + q = NN.useMedium, + B = x.useCallback((function(e) { + d.current !== e && (d.current = e, u(e)) + }), []), + U = z(((n = {})[AN] = f && "disabled", n[CN] = k, n), D), + H = !0 !== g, + V = H && "tail" !== g, + W = (a = [t, B], i = r, o = function(e) { + return a.forEach((function(t) { + return function(e, t) { + return "function" == typeof e ? e(t) : e && (e.current = t), e + }(t, e) + })) + }, (s = (0, x.useState)((function() { return { - target: e.target, - currentTarget: e.currentTarget - } - })), - QD = JD(), - XD = JD(), - eT = function(e) { - void 0 === e && (e = {}); - var t = $D(null); - return t.options = GD({ - async: !0, - ssr: !1 - }, e), t - }({ - async: !0 - }), - tT = [], - nT = E.forwardRef((function(e, t) { - var n, a, r, i, o, s, l = E.useState(), - c = l[0], - u = l[1], - d = E.useRef(), - p = E.useRef(!1), - h = E.useRef(null), - m = e.children, - f = e.disabled, - g = e.noFocusGuards, - b = e.persistentFocus, - y = e.crossFrame, - v = e.autoFocus, - k = (e.allowTextSelection, e.group), - _ = e.className, - w = e.whiteList, - S = e.shards, - x = void 0 === S ? tT : S, - C = e.as, - A = void 0 === C ? "div" : C, - j = e.lockProps, - P = void 0 === j ? {} : j, - D = e.sideCar, - T = e.returnFocus, - O = e.onActivation, - M = e.onDeactivation, - I = E.useState({})[0], - N = E.useCallback((function() { - h.current = h.current || document && document.activeElement, d.current && O && O(d.current), p.current = !0 - }), [O]), - R = E.useCallback((function() { - p.current = !1, M && M(d.current) - }), [M]), - L = E.useCallback((function(e) { - var t = h.current; - if (Boolean(T) && t && t.focus) { - var n = "object" == typeof T ? T : void 0; - h.current = null, e ? Promise.resolve().then((function() { - return t.focus(n) - })) : t.focus(n) - } - }), [T]), - F = E.useCallback((function(e) { - p.current && ZD.useMedium(e) - }), []), - q = QD.useMedium, - B = E.useCallback((function(e) { - d.current !== e && (d.current = e, u(e)) - }), []), - U = z(((n = {})[HD] = f && "disabled", n[UD] = k, n), P), - H = !0 !== g, - V = H && "tail" !== g, - W = (a = [t, B], i = r, o = function(e) { - return a.forEach((function(t) { - return function(e, t) { - return "function" == typeof e ? e(t) : e && (e.current = t), e - }(t, e) - })) - }, (s = (0, E.useState)((function() { - return { - value: i, - callback: o, - facade: { - get current() { - return s.value - }, - set current(e) { - var t = s.value; - t !== e && (s.value = e, s.callback(e, t)) - } - } - } - }))[0]).callback = o, s.facade); - return E.createElement(E.Fragment, null, H && [E.createElement("div", { - key: "guard-first", - "data-focus-guard": !0, - tabIndex: f ? -1 : 0, - style: WD - }), E.createElement("div", { - key: "guard-nearest", - "data-focus-guard": !0, - tabIndex: f ? -1 : 1, - style: WD - })], !f && E.createElement(D, { - id: I, - sideCar: eT, - observed: c, - disabled: f, - persistentFocus: b, - crossFrame: y, - autoFocus: v, - whiteList: w, - shards: x, - onActivation: N, - onDeactivation: R, - returnFocus: L - }), E.createElement(A, z({ - ref: W - }, U, { - className: _, - onBlur: q, - onFocus: F - }), m), V && E.createElement("div", { - "data-focus-guard": !0, - tabIndex: f ? -1 : 0, - style: WD + value: i, + callback: o, + facade: { + get current() { + return s.value + }, + set current(e) { + var t = s.value; + t !== e && (s.value = e, s.callback(e, t)) + } + } + } + }))[0]).callback = o, s.facade); + return x.createElement(x.Fragment, null, H && [x.createElement("div", { + key: "guard-first", + "data-focus-guard": !0, + tabIndex: f ? -1 : 0, + style: DN + }), x.createElement("div", { + key: "guard-nearest", + "data-focus-guard": !0, + tabIndex: f ? -1 : 1, + style: DN + })], !f && x.createElement(P, { + id: O, + sideCar: zN, + observed: c, + disabled: f, + persistentFocus: b, + crossFrame: y, + autoFocus: v, + whiteList: w, + shards: E, + onActivation: N, + onDeactivation: R, + returnFocus: L + }), x.createElement(A, z({ + ref: W + }, U, { + className: _, + onBlur: q, + onFocus: F + }), m), V && x.createElement("div", { + "data-focus-guard": !0, + tabIndex: f ? -1 : 0, + style: DN + })) + })); FN.propTypes = {}, FN.defaultProps = { + children: void 0, + disabled: !1, + returnFocus: !1, + noFocusGuards: !1, + autoFocus: !0, + persistentFocus: !1, + crossFrame: !0, + allowTextSelection: void 0, + group: void 0, + className: void 0, + whiteList: void 0, + shards: void 0, + as: "div", + lockProps: {}, + onActivation: void 0, + onDeactivation: void 0 + }; + const qN = FN; + var BN = function(e) { + return "INPUT" === e.tagName && "radio" === e.type + }, UN = function(e, t) { + return BN(e) && e.name ? function(e, t) { + return t.filter(BN).filter((function(t) { + return t.name === e.name + })).filter((function(e) { + return e.checked + }))[0] || e + }(e, t) : e + }, HN = function(e) { + return e[0] && e.length > 1 ? UN(e[0], e) : e[0] + }, VN = function(e, t) { + return e.length > 1 ? e.indexOf(UN(e[t], e)) : t + }, WN = function(e, t) { + var n = e.get(t); + if (void 0 !== n) return n; + var a = function(e, t) { + return !e || e === document || e && e.nodeType === Node.DOCUMENT_NODE || !((n = window.getComputedStyle(e, null)) && n.getPropertyValue && ("none" === n.getPropertyValue("display") || "hidden" === n.getPropertyValue("visibility"))) && t(e.parentNode && e.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? e.parentNode.host : e.parentNode); + var n + }(t, WN.bind(void 0, e)); + return e.set(t, a), a + }, YN = function(e) { + return Boolean(e && e.dataset && e.dataset.focusGuard) + }, GN = function(e) { + return !YN(e) + }, KN = function(e) { + return Boolean(e) + }, $N = "NEW_FOCUS", JN = function(e) { + for (var t = Array(e.length), n = 0; n < e.length; ++n) t[n] = e[n]; + return t + }, ZN = function(e) { + return Array.isArray(e) ? e : [e] + }, QN = function(e) { + return e.parentNode ? QN(e.parentNode) : e + }, XN = function(e) { + return ZN(e).filter(Boolean).reduce((function(e, t) { + var n = t.getAttribute(CN); + return e.push.apply(e, n ? function(e) { + for (var t = new Set, n = e.length, a = 0; a < n; a += 1) + for (var r = a + 1; r < n; r += 1) { + var i = e[a].compareDocumentPosition(e[r]); + (i & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0 && t.add(r), (i & Node.DOCUMENT_POSITION_CONTAINS) > 0 && t.add(a) + } + return e.filter((function(e, n) { + return !t.has(n) })) + }(JN(QN(t).querySelectorAll('[data-focus-lock="' + n + '"]:not([' + AN + '="disabled"])'))) : [t]), e + }), []) + }, eR = function(e, t) { + var n = e.tabIndex - t.tabIndex, + a = e.index - t.index; + if (n) { + if (!e.tabIndex) return 1; + if (!t.tabIndex) return -1 + } + return n || a + }, tR = function(e, t, n) { + return JN(e).map((function(e, t) { + return { + node: e, + index: t, + tabIndex: n && -1 === e.tabIndex ? (e.dataset || {}).focusGuard ? 0 : -1 : e.tabIndex + } + })).filter((function(e) { + return !t || e.tabIndex >= 0 + })).sort(eR) + }, nR = ["button:enabled", "select:enabled", "textarea:enabled", "input:enabled", "a[href]", "area[href]", "summary", "iframe", "object", "embed", "audio[controls]", "video[controls]", "[tabindex]", "[contenteditable]", "[autofocus]"].join(","), aR = nR + ", [data-focus-guard]", rR = function(e, t) { + return e.reduce((function(e, n) { + return e.concat(JN(n.querySelectorAll(t ? aR : nR)), n.parentNode ? JN(n.parentNode.querySelectorAll(nR)).filter((function(e) { + return e === n + })) : []) + }), []) + }, iR = function(e, t) { + return JN(e).filter((function(e) { + return WN(t, e) + })).filter((function(e) { + return function(e) { + return !(("INPUT" === e.tagName || "BUTTON" === e.tagName) && ("hidden" === e.type || e.disabled)) + }(e) + })) + }, oR = function(e, t, n) { + return tR(iR(rR(e, n), t), !0, n) + }, sR = function(e, t) { + return tR(iR(rR(e), t), !1) + }, lR = function(e, t) { + return void 0 === t && (t = []), t.push(e), e.parentNode && lR(e.parentNode, t), t + }, cR = function(e, t) { + for (var n = lR(e), a = lR(t), r = 0; r < n.length; r += 1) { + var i = n[r]; + if (a.indexOf(i) >= 0) return i + } + return !1 + }, uR = function(e, t, n) { + var a = ZN(e), + r = ZN(t), + i = a[0], + o = !1; + return r.filter(Boolean).forEach((function(e) { + o = cR(o || e, e) || o, n.filter(Boolean).forEach((function(e) { + var t = cR(i, e); + t && (o = !o || t.contains(o) ? t : cR(t, o)) + })) + })), o + }, dR = function(e, t) { + var n = document && document.activeElement, + a = XN(e).filter(GN), + r = uR(n || e, e, a), + i = new Map, + o = sR(a, i), + s = oR(a, i).filter((function(e) { + var t = e.node; + return GN(t) })); - nT.propTypes = {}, nT.defaultProps = { - children: void 0, - disabled: !1, - returnFocus: !1, - noFocusGuards: !1, - autoFocus: !0, - persistentFocus: !1, - crossFrame: !0, - allowTextSelection: void 0, - group: void 0, - className: void 0, - whiteList: void 0, - shards: void 0, - as: "div", - lockProps: {}, - onActivation: void 0, - onDeactivation: void 0 - }; - const aT = nT; - - function rT(e, t) { - return rT = Object.setPrototypeOf || function(e, t) { - return e.__proto__ = t, e - }, rT(e, t) - } - var iT = function(e) { - return "INPUT" === e.tagName && "radio" === e.type - }, - oT = function(e, t) { - return iT(e) && e.name ? function(e, t) { - return t.filter(iT).filter((function(t) { - return t.name === e.name - })).filter((function(e) { - return e.checked - }))[0] || e - }(e, t) : e - }, - sT = function(e) { - return e[0] && e.length > 1 ? oT(e[0], e) : e[0] - }, - lT = function(e, t) { - return e.length > 1 ? e.indexOf(oT(e[t], e)) : t - }, - cT = function(e, t) { - var n = e.get(t); - if (void 0 !== n) return n; - var a = function(e, t) { - return !e || e === document || e && e.nodeType === Node.DOCUMENT_NODE || !((n = window.getComputedStyle(e, null)) && n.getPropertyValue && ("none" === n.getPropertyValue("display") || "hidden" === n.getPropertyValue("visibility"))) && t(e.parentNode && e.parentNode.nodeType === Node.DOCUMENT_FRAGMENT_NODE ? e.parentNode.host : e.parentNode); - var n - }(t, cT.bind(void 0, e)); - return e.set(t, a), a - }, - uT = function(e) { - return Boolean(e && e.dataset && e.dataset.focusGuard) - }, - dT = function(e) { - return !uT(e) - }, - pT = function(e) { - return Boolean(e) - }, - hT = "NEW_FOCUS", - mT = function(e) { - for (var t = Array(e.length), n = 0; n < e.length; ++n) t[n] = e[n]; - return t - }, - fT = function(e) { - return Array.isArray(e) ? e : [e] - }, - gT = function(e) { - return e.parentNode ? gT(e.parentNode) : e - }, - bT = function(e) { - return fT(e).filter(Boolean).reduce((function(e, t) { - var n = t.getAttribute(UD); - return e.push.apply(e, n ? function(e) { - for (var t = new Set, n = e.length, a = 0; a < n; a += 1) - for (var r = a + 1; r < n; r += 1) { - var i = e[a].compareDocumentPosition(e[r]); - (i & Node.DOCUMENT_POSITION_CONTAINED_BY) > 0 && t.add(r), (i & Node.DOCUMENT_POSITION_CONTAINS) > 0 && t.add(a) - } - return e.filter((function(e, n) { - return !t.has(n) - })) - }(mT(gT(t).querySelectorAll('[data-focus-lock="' + n + '"]:not([' + HD + '="disabled"])'))) : [t]), e - }), []) - }, - yT = function(e, t) { - var n = e.tabIndex - t.tabIndex, - a = e.index - t.index; - if (n) { - if (!e.tabIndex) return 1; - if (!t.tabIndex) return -1 - } - return n || a - }, - vT = function(e, t, n) { - return mT(e).map((function(e, t) { - return { - node: e, - index: t, - tabIndex: n && -1 === e.tabIndex ? (e.dataset || {}).focusGuard ? 0 : -1 : e.tabIndex - } - })).filter((function(e) { - return !t || e.tabIndex >= 0 - })).sort(yT) - }, - kT = ["button:enabled", "select:enabled", "textarea:enabled", "input:enabled", "a[href]", "area[href]", "summary", "iframe", "object", "embed", "audio[controls]", "video[controls]", "[tabindex]", "[contenteditable]", "[autofocus]"].join(","), - _T = kT + ", [data-focus-guard]", - wT = function(e, t) { - return e.reduce((function(e, n) { - return e.concat(mT(n.querySelectorAll(t ? _T : kT)), n.parentNode ? mT(n.parentNode.querySelectorAll(kT)).filter((function(e) { - return e === n - })) : []) - }), []) - }, - ST = function(e, t) { - return mT(e).filter((function(e) { - return cT(t, e) - })).filter((function(e) { - return function(e) { - return !(("INPUT" === e.tagName || "BUTTON" === e.tagName) && ("hidden" === e.type || e.disabled)) - }(e) - })) - }, - ET = function(e, t, n) { - return vT(ST(wT(e, n), t), !0, n) - }, - xT = function(e, t) { - return vT(ST(wT(e), t), !1) - }, - CT = function(e, t) { - return void 0 === t && (t = []), t.push(e), e.parentNode && CT(e.parentNode, t), t - }, - AT = function(e, t) { - for (var n = CT(e), a = CT(t), r = 0; r < n.length; r += 1) { - var i = n[r]; - if (a.indexOf(i) >= 0) return i + if (s[0] || (s = o)[0]) { + var l, c, u, d, p = sR([r], i).map((function(e) { + return e.node + })), + h = (l = p, c = s, u = new Map, c.forEach((function(e) { + return u.set(e.node, e) + })), l.map((function(e) { + return u.get(e) + })).filter(KN)), + m = h.map((function(e) { + return e.node + })), + f = function(e, t, n, a) { + var r = e.length, + i = e[0], + o = e[r - 1], + s = YN(n); + if (!(e.indexOf(n) >= 0)) { + var l, c, u = t.indexOf(n), + d = a ? t.indexOf(a) : u, + p = a ? e.indexOf(a) : -1, + h = u - d, + m = t.indexOf(i), + f = t.indexOf(o), + g = (l = t, c = new Set, l.forEach((function(e) { + return c.add(UN(e, l)) + })), l.filter((function(e) { + return c.has(e) + }))), + b = g.indexOf(n) - (a ? g.indexOf(a) : u), + y = VN(e, 0), + v = VN(e, r - 1); + return -1 === u || -1 === p ? $N : !h && p >= 0 ? p : u <= m && s && Math.abs(h) > 1 ? v : u >= f && s && Math.abs(h) > 1 ? y : h && Math.abs(b) > 1 ? p : u <= m ? v : u > f ? y : h ? Math.abs(h) > 1 ? p : (r + p + h) % r : void 0 + } + }(m, p, n, t); + if (f === $N) { + var g = o.map((function(e) { + return e.node + })).filter((d = function(e, t) { + return e.reduce((function(e, n) { + return e.concat(function(e, t) { + return iR((n = e.querySelectorAll("[" + TN + "]"), JN(n).map((function(e) { + return rR([e]) + })).reduce((function(e, t) { + return e.concat(t) + }), [])), t); + var n + }(n, t)) + }), []) + }(a, i), function(e) { + return e.autofocus || e.dataset && !!e.dataset.autofocus || d.indexOf(e) >= 0 + })); + return { + node: g && g.length ? HN(g) : HN(m) } - return !1 - }, - jT = function(e, t, n) { - var a = fT(e), - r = fT(t), - i = a[0], - o = !1; - return r.filter(Boolean).forEach((function(e) { - o = AT(o || e, e) || o, n.filter(Boolean).forEach((function(e) { - var t = AT(i, e); - t && (o = !o || t.contains(o) ? t : AT(t, o)) - })) - })), o - }, - PT = function(e, t) { - var n = document && document.activeElement, - a = bT(e).filter(dT), - r = jT(n || e, e, a), - i = new Map, - o = xT(a, i), - s = ET(a, i).filter((function(e) { - var t = e.node; - return dT(t) - })); - if (s[0] || (s = o)[0]) { - var l, c, u, d, p = xT([r], i).map((function(e) { - return e.node - })), - h = (l = p, c = s, u = new Map, c.forEach((function(e) { - return u.set(e.node, e) - })), l.map((function(e) { - return u.get(e) - })).filter(pT)), - m = h.map((function(e) { + } + return void 0 === f ? f : h[f] + } + }, pR = 0, hR = !1; + const mR = function(e, t) { + var n, a = dR(e, t); + if (!hR && a) { + if (pR > 2) return console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"), hR = !0, void setTimeout((function() { + hR = !1 + }), 1); + pR++, (n = a.node).focus(), "contentWindow" in n && n.contentWindow && n.contentWindow.focus(), pR-- + } + }; + var fR = function(e) { + var t = document && document.activeElement; + return !(!t || t.dataset && t.dataset.focusGuard) && XN(e).reduce((function(e, n) { + return e || n.contains(t) || function(e) { + return Boolean(JN(e.querySelectorAll("iframe")).some((function(e) { + return e === document.activeElement + }))) + }(n) + }), !1) + }; + + function gR(e) { + var t = window.setImmediate; + void 0 !== t ? t(e) : setTimeout(e, 1) + } + var bR = null, yR = null, vR = null, kR = !1, _R = function() { + return !0 + }; + + function wR(e, t, n, a) { + var r = null, + i = e; + do { + var o = a[i]; + if (o.guard) o.node.dataset.focusAutoGuard && (r = o); + else { + if (!o.lockItem) break; + if (i !== e) return; + r = null + } + } while ((i += n) !== t); + r && (r.node.tabIndex = 0) + } + var SR = function(e) { + return e && "current" in e ? e.current : e + }, ER = function() { + var e, t, n, a, r, i, o, s = !1; + if (bR) { + var l = bR, + c = l.observed, + u = l.persistentFocus, + d = l.autoFocus, + p = l.shards, + h = l.crossFrame, + m = c || vR && vR.portaledElement, + f = document && document.activeElement; + if (m) { + var g = [m].concat(p.map(SR).filter(Boolean)); + if (f && ! function(e) { + return (bR.whiteList || _R)(e) + }(f) || (u || (h ? Boolean(kR) : "meanwhile" === kR) || !(document && document.activeElement === document.body || document && JN(document.querySelectorAll("[data-no-focus-lock]")).some((function(e) { + return e.contains(document.activeElement) + }))) || !yR && d) && (!m || fR(g) || (o = f, vR && vR.portaledElement === o) || (document && !yR && f && !d ? (f.blur && f.blur(), document.body.focus()) : (s = mR(g, yR), vR = {})), kR = !1, yR = document && document.activeElement), document) { + var b = document && document.activeElement, + y = (t = XN(e = g).filter(GN), n = uR(e, e, t), a = new Map, r = oR([n], a, !0), i = oR(t, a).filter((function(e) { + var t = e.node; + return GN(t) + })).map((function(e) { return e.node - })), - f = function(e, t, n, a) { - var r = e.length, - i = e[0], - o = e[r - 1], - s = uT(n); - if (!(e.indexOf(n) >= 0)) { - var l, c, u = t.indexOf(n), - d = a ? t.indexOf(a) : u, - p = a ? e.indexOf(a) : -1, - h = u - d, - m = t.indexOf(i), - f = t.indexOf(o), - g = (l = t, c = new Set, l.forEach((function(e) { - return c.add(oT(e, l)) - })), l.filter((function(e) { - return c.has(e) - }))), - b = g.indexOf(n) - (a ? g.indexOf(a) : u), - y = lT(e, 0), - v = lT(e, r - 1); - return -1 === u || -1 === p ? hT : !h && p >= 0 ? p : u <= m && s && Math.abs(h) > 1 ? v : u >= f && s && Math.abs(h) > 1 ? y : h && Math.abs(b) > 1 ? p : u <= m ? v : u > f ? y : h ? Math.abs(h) > 1 ? p : (r + p + h) % r : void 0 + })), r.map((function(e) { + var t = e.node; + return { + node: t, + index: e.index, + lockItem: i.indexOf(t) >= 0, + guard: YN(t) } - }(m, p, n, t); - if (f === hT) { - var g = o.map((function(e) { + }))), + v = y.map((function(e) { return e.node - })).filter((d = function(e, t) { - return e.reduce((function(e, n) { - return e.concat(function(e, t) { - return ST((n = e.querySelectorAll("[" + VD + "]"), mT(n).map((function(e) { - return wT([e]) - })).reduce((function(e, t) { - return e.concat(t) - }), [])), t); - var n - }(n, t)) - }), []) - }(a, i), function(e) { - return e.autofocus || e.dataset && !!e.dataset.autofocus || d.indexOf(e) >= 0 - })); - return { - node: g && g.length ? sT(g) : sT(m) - } - } - return void 0 === f ? f : h[f] + })).indexOf(b); + v > -1 && (y.filter((function(e) { + var t = e.guard, + n = e.node; + return t && n.dataset.focusAutoGuard + })).forEach((function(e) { + return e.node.removeAttribute("tabIndex") + })), wR(v, y.length, 1, y), wR(v, -1, -1, y)) + } + } + } + return s + }, xR = function(e) { + ER() && e && (e.stopPropagation(), e.preventDefault()) + }, CR = function() { + return gR(ER) + }, AR = function() { + kR = "just", setTimeout((function() { + kR = "meanwhile" + }), 0) + }; ON.assignSyncMedium((function(e) { + var t = e.target, + n = e.currentTarget; + n.contains(t) || (vR = { + observerNode: n, + portaledElement: t + }) + })), NN.assignMedium(CR), RN.assignMedium((function(e) { + return e({ + moveFocusInside: mR, + focusInside: fR + }) + })); + const TR = (DR = function(e) { + return e.filter((function(e) { + return !e.disabled + })) + }, PR = function(e) { + var t = e.slice(-1)[0]; + t && !bR && (document.addEventListener("focusin", xR, !0), document.addEventListener("focusout", CR), window.addEventListener("blur", AR)); + var n = bR, + a = n && t && t.id === n.id; + bR = t, n && !a && (n.onDeactivation(), e.filter((function(e) { + return e.id === n.id + })).length || n.returnFocus(!t)), t ? (yR = null, a && n.observed === t.observed || t.onActivation(), ER(), gR(ER)) : (document.removeEventListener("focusin", xR, !0), document.removeEventListener("focusout", CR), window.removeEventListener("blur", AR), yR = null) + }, function(e) { + var t, n = []; + + function a() { + t = DR(n.map((function(e) { + return e.props + }))), PR(t) + } + var r = function(r) { + function i() { + return r.apply(this, arguments) || this + } + E(i, r), i.peek = function() { + return t + }; + var o = i.prototype; + return o.componentDidMount = function() { + n.push(this), a() + }, o.componentDidUpdate = function() { + a() + }, o.componentWillUnmount = function() { + var e = n.indexOf(this); + n.splice(e, 1), a() + }, o.render = function() { + return C().createElement(e, this.props) + }, i + }(x.PureComponent); + return $a(r, "displayName", "SideEffect(" + function(e) { + return e.displayName || e.name || "Component" + }(e) + ")"), r + })((function() { + return null + })); + var DR, PR, jR = x.forwardRef((function(e, t) { + return x.createElement(qN, z({ + sideCar: TR, + ref: t + }, e)) + })), MR = qN.propTypes || {}; MR.sideCar, L(MR, ["sideCar"]), jR.propTypes = {}; + const IR = jR; + + function OR(e) { + var t, n, a = e.disabled, + r = e.className, + i = e.children, + o = x.useRef(null); + return t = a ? void 0 : o, x.useEffect((function() { + var e = !0; + return RN.useMedium((function(n) { + var a = t && t.current; + e && a && (n.focusInside(a) || n.moveFocusInside(a, null)) + })), + function() { + e = !1 } - }, - DT = 0, - TT = !1; - const OT = function(e, t) { - var n, a = PT(e, t); - if (!TT && a) { - if (DT > 2) return console.error("FocusLock: focus-fighting detected. Only one focus management system could be active. See https://github.com/theKashey/focus-lock/#focus-fighting"), TT = !0, void setTimeout((function() { - TT = !1 - }), 1); - DT++, (n = a.node).focus(), "contentWindow" in n && n.contentWindow && n.contentWindow.focus(), DT-- + }), [t]), x.createElement("div", z({}, ((n = {})[TN] = !a, n), { + ref: o, + className: r + }), i) + } + OR.propTypes = {}, OR.defaultProps = { + disabled: !1, + className: void 0 + }; + const NR = OR; + + function RR() { + return RR = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } + return e + }, RR.apply(this, arguments) + } + const zR = e => { + const { + children: t, + ...n + } = e, a = { + ...n, + crossFrame: !1 }; - var MT = function(e) { - var t = document && document.activeElement; - return !(!t || t.dataset && t.dataset.focusGuard) && bT(e).reduce((function(e, n) { - return e || n.contains(t) || function(e) { - return Boolean(mT(e.querySelectorAll("iframe")).some((function(e) { - return e === document.activeElement - }))) - }(n) - }), !1) - }; + return C().createElement(IR, RR({}, a, { + className: "focus-lock" + }), C().createElement(NR, null, t)) + }; + var LR = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function IT(e) { - var t = window.setImmediate; - void 0 !== t ? t(e) : setTimeout(e, 1) + function r() { + return Ya(this, r), a.apply(this, arguments) } - var NT = null, - zT = null, - RT = null, - LT = !1, - FT = function() { - return !0 - }; - - function qT(e, t, n, a) { - var r = null, - i = e; - do { - var o = a[i]; - if (o.guard) o.node.dataset.focusAutoGuard && (r = o); - else { - if (!o.lockItem) break; - if (i !== e) return; - r = null - } - } while ((i += n) !== t); - r && (r.node.tabIndex = 0) - } - var BT = function(e) { - return e && "current" in e ? e.current : e - }, - UT = function() { - var e, t, n, a, r, i, o, s = !1; - if (NT) { - var l = NT, - c = l.observed, - u = l.persistentFocus, - d = l.autoFocus, - p = l.shards, - h = l.crossFrame, - m = c || RT && RT.portaledElement, - f = document && document.activeElement; - if (m) { - var g = [m].concat(p.map(BT).filter(Boolean)); - if (f && ! function(e) { - return (NT.whiteList || FT)(e) - }(f) || (u || (h ? Boolean(LT) : "meanwhile" === LT) || !(document && document.activeElement === document.body || document && mT(document.querySelectorAll("[data-no-focus-lock]")).some((function(e) { - return e.contains(document.activeElement) - }))) || !zT && d) && (!m || MT(g) || (o = f, RT && RT.portaledElement === o) || (document && !zT && f && !d ? (f.blur && f.blur(), document.body.focus()) : (s = OT(g, zT), RT = {})), LT = !1, zT = document && document.activeElement), document) { - var b = document && document.activeElement, - y = (t = bT(e = g).filter(dT), n = jT(e, e, t), a = new Map, r = ET([n], a, !0), i = ET(t, a).filter((function(e) { - var t = e.node; - return dT(t) - })).map((function(e) { - return e.node - })), r.map((function(e) { - var t = e.node; - return { - node: t, - index: e.index, - lockItem: i.indexOf(t) >= 0, - guard: uT(t) - } - }))), - v = y.map((function(e) { - return e.node - })).indexOf(b); - v > -1 && (y.filter((function(e) { - var t = e.guard, - n = e.node; - return t && n.dataset.focusAutoGuard - })).forEach((function(e) { - return e.node.removeAttribute("tabIndex") - })), qT(v, y.length, 1, y), qT(v, -1, -1, y)) - } - } + return Ka(r, [{ + key: "componentDidMount", + value: function() { + var e = this.props, + t = e.isEnabled, + n = e.autoFocus; + if ("function" == typeof n && t) { + var a = n(); + a && a.focus && a.focus() } - return s - }, - HT = function(e) { - UT() && e && (e.stopPropagation(), e.preventDefault()) - }, - VT = function() { - return IT(UT) - }, - WT = function() { - LT = "just", setTimeout((function() { - LT = "meanwhile" - }), 0) - }; - ZD.assignSyncMedium((function(e) { - var t = e.target, - n = e.currentTarget; - n.contains(t) || (RT = { - observerNode: n, - portaledElement: t - }) - })), QD.assignMedium(VT), XD.assignMedium((function(e) { - return e({ - moveFocusInside: OT, - focusInside: MT - }) - })); - const YT = (GT = function(e) { - return e.filter((function(e) { - return !e.disabled - })) - }, KT = function(e) { - var t = e.slice(-1)[0]; - t && !NT && (document.addEventListener("focusin", HT, !0), document.addEventListener("focusout", VT), window.addEventListener("blur", WT)); - var n = NT, - a = n && t && t.id === n.id; - NT = t, n && !a && (n.onDeactivation(), e.filter((function(e) { - return e.id === n.id - })).length || n.returnFocus(!t)), t ? (zT = null, a && n.observed === t.observed || t.onActivation(), UT(), IT(UT)) : (document.removeEventListener("focusin", HT, !0), document.removeEventListener("focusout", VT), window.removeEventListener("blur", WT), zT = null) - }, function(e) { - var t, n = []; - - function a() { - t = GT(n.map((function(e) { - return e.props - }))), KT(t) } - var r = function(r) { - var i, o; - - function s() { - return r.apply(this, arguments) || this - } - o = r, (i = s).prototype = Object.create(o.prototype), i.prototype.constructor = i, rT(i, o), s.peek = function() { - return t - }; - var l = s.prototype; - return l.componentDidMount = function() { - n.push(this), a() - }, l.componentDidUpdate = function() { - a() - }, l.componentWillUnmount = function() { - var e = n.indexOf(this); - n.splice(e, 1), a() - }, l.render = function() { - return x().createElement(e, this.props) - }, s - }(E.PureComponent); - return function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(r, "displayName", "SideEffect(" + function(e) { - return e.displayName || e.name || "Component" - }(e) + ")"), r - })((function() { - return null - })); - var GT, KT, $T = E.forwardRef((function(e, t) { - return E.createElement(aT, z({ - sideCar: YT, - ref: t - }, e)) - })), - JT = aT.propTypes || {}; - JT.sideCar, R(JT, ["sideCar"]), $T.propTypes = {}; - const ZT = $T; - - function QT(e) { - var t, n, a = e.disabled, - r = e.className, - i = e.children, - o = E.useRef(null); - return t = a ? void 0 : o, E.useEffect((function() { - var e = !0; - return XD.useMedium((function(n) { - var a = t && t.current; - e && a && (n.focusInside(a) || n.moveFocusInside(a, null)) - })), - function() { - e = !1 - } - }), [t]), E.createElement("div", z({}, ((n = {})[VD] = !a, n), { - ref: o, - className: r - }), i) - } - QT.propTypes = {}, QT.defaultProps = { - disabled: !1, - className: void 0 - }; - const XT = QT; + }, { + key: "render", + value: function() { + var e = this.props, + t = e.isEnabled, + n = e.autoFocus, + a = e.shouldReturnFocus; + return C().createElement(zR, { + disabled: !t, + autoFocus: !!n, + returnFocus: a + }, this.props.children) + } + }]), r + }(C().Component); $a(LR, "defaultProps", { + autoFocus: !0, + isEnabled: !0, + shouldReturnFocus: !0 + }); + const FR = function(e) { + var t = e.scrollBehavior, + n = Yg(e, ["scrollBehavior"]), + r = jO; + return "outside" === t ? r = MO : "inside-wide" === t && (r = a.PositionerFixed), C().createElement(r, n) + }; - function eO() { - return eO = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, eO.apply(this, arguments) - } + function qR() { + return window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body && document.body.scrollTop || 0 + } + var BR = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function tO(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { + dialogNode: null, + scrollDistance: mv.canUseDOM ? qR() : 0, + isExiting: !1 + }), $a(w(e), "handleWindowScroll", (function() { + qR() !== e.state.scrollDistance && window.scrollTo(window.pageXOffset, e.state.scrollDistance) + })), $a(w(e), "handleOverlayClick", (function(t) { + e.props.shouldCloseOnOverlayClick && e.props.onClose(t) + })), e } - const nO = e => { - const { - children: t - } = e, n = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - tO(e, t, n[t]) - })) - } - return e - }({}, function(e, t) { - if (null == e) return {}; - var n, a, r = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, t); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) - } - return r - }(e, ["children"]), { - crossFrame: !1 - }); - return x().createElement(ZT, eO({}, n, { - className: "focus-lock" - }), x().createElement(XT, null, t)) - }; - var aO = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - return Jg(this, r), a.apply(this, arguments) + return Ka(r, [{ + key: "componentDidMount", + value: function() { + var e = qR(); + qR() !== this.state.scrollDistance && this.setState({ + scrollDistance: e + }), window.addEventListener("scroll", this.handleWindowScroll) } - return Qg(r, [{ - key: "componentDidMount", - value: function() { - var e = this.props, - t = e.isEnabled, - n = e.autoFocus; - if ("function" == typeof n && t) { - var a = n(); - a && a.focus && a.focus() - } - } - }, { - key: "render", - value: function() { - var e = this.props, - t = e.isEnabled, - n = e.autoFocus, - a = e.shouldReturnFocus; - return x().createElement(nO, { - disabled: !t, - autoFocus: !!n, - returnFocus: a - }, this.props.children) - } - }]), r - }(x().Component); - Zf(aO, "defaultProps", { - autoFocus: !0, - isEnabled: !0, - shouldReturnFocus: !0 + }, { + key: "componentWillUnmount", + value: function() { + window.removeEventListener("scroll", this.handleWindowScroll) + } + }, { + key: "render", + value: function() { + var e = this, + t = this.props, + n = t.actions, + a = t.appearance, + r = t.autoFocus, + i = t.body, + o = t.children, + s = t.components, + l = t.footer, + c = t.header, + u = t.height, + d = t.isBlanketHidden, + p = t.isChromeless, + h = t.isHeadingMultiline, + m = t.isOpen, + f = t.onClose, + g = t.onCloseComplete, + b = t.onOpenComplete, + y = t.onStackChange, + v = t.shouldCloseOnEscapePress, + k = t.stackIndex, + _ = t.heading, + w = t.width, + S = t.scrollBehavior, + E = t.testId, + x = this.state.scrollDistance, + A = null != k && k > 0, + T = w && -1 !== bO.values.indexOf(w.toString()) ? w : void 0, + D = T ? void 0 : w; + return C().createElement($O, { + in: m, + onExited: g, + onEntered: b, + stackIndex: k + }, (function(t) { + var g = t.fade, + b = t.slide; + return C().createElement(TO, { + style: g, + "aria-hidden": A, + scrollDistance: x + }, C().createElement(LR, { + isEnabled: 0 === k && m, + autoFocus: r + }, C().createElement(gO, { + isTinted: !d, + onBlanketClicked: e.handleOverlayClick + }), C().createElement(FR, { + style: b, + scrollBehavior: S, + widthName: T, + widthValue: D + }, C().createElement(lO, null, C().createElement(cO, null, (function(e, t) { + return C().createElement(RO, { + heightValue: u, + isChromeless: p, + role: "dialog", + "aria-labelledby": "dialog-heading-".concat(e), + "data-testid": E, + tabIndex: -1 + }, C().createElement(xN, { + actions: n, + appearance: a, + components: s, + footer: l, + heading: _, + headingId: "dialog-heading-".concat(e), + testId: E && "".concat(E, "-dialog-content"), + isHeadingMultiline: h, + header: c, + onClose: f, + shouldScroll: "inside" === S || "inside-wide" === S, + shouldCloseOnEscapePress: v, + onStackChange: y, + isChromeless: p, + stackIndex: k, + body: i + }, o)) + })))))) + })) + } + }]), r + }(C().Component); $a(BR, "defaultProps", { + autoFocus: !0, + scrollBehavior: "inside", + shouldCloseOnEscapePress: !0, + shouldCloseOnOverlayClick: !0, + isBlanketHidden: !1, + isChromeless: !1, + isOpen: !0, + stackIndex: 0, + width: "medium", + isHeadingMultiline: !0, + onClose: function() {} + }); + var UR = QC("atlaskit"); + const HR = oA({ + componentName: "modalDialog", + packageName: zO.u2, + packageVersion: zO.i8 + })(uA({ + onClose: UR({ + action: "closed", + actionSubject: "modalDialog", + attributes: { + componentName: "modalDialog", + packageName: zO.u2, + packageVersion: zO.i8 + } + }) + })(BR)); + var VR = C().createContext({ + isOpen: !0, + onExited: function() {} + }), WR = VR.Consumer, YR = VR.Provider, GR = function(e) { + return C().Children.count(e) > 0 && C().Children.map(e, (function(e) { + return !!e + })).filter(Boolean).length > 0 + }, KR = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) }); - const rO = function(e) { - var t = e.scrollBehavior, - n = Fg(e, ["scrollBehavior"]), - r = KP; - return "outside" === t ? r = $P : "inside-wide" === t && (r = a.PositionerFixed), x().createElement(r, n) - }; - function iO() { - return window.pageYOffset || document.documentElement && document.documentElement.scrollTop || document.body && document.body.scrollTop || 0 + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { + currentChildren: void 0 + }), $a(w(e), "onExited", (function() { + e.setState({ + currentChildren: e.props.children + }) + })), e } - var oO = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + return Ka(r, [{ + key: "render", + value: function() { + return C().createElement(YR, { + value: { + onExited: this.onExited, + isOpen: GR(this.props.children) + } + }, this.state.currentChildren) + } + }], [{ + key: "getDerivedStateFromProps", + value: function(e, t) { + var n = t.currentChildren; + return { + currentChildren: GR(n) && !GR(e.children) ? n : e.children + } + } + }]), r + }(C().Component), $R = WR; + const JR = KR; + var ZR = []; + const QR = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { - dialogNode: null, - scrollDistance: Jy.canUseDOM ? iO() : 0, - isExiting: !1 - }), Zf(_(e), "handleWindowScroll", (function() { - iO() !== e.state.scrollDistance && window.scrollTo(window.pageXOffset, e.state.scrollDistance) - })), Zf(_(e), "handleOverlayClick", (function(t) { - e.props.shouldCloseOnOverlayClick && e.props.onClose(t) - })), e + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { + stackIndex: 0 + }), $a(w(e), "update", (function() { + var t = ZR.indexOf(e.update); + e.state.stackIndex !== t && e.setState({ + stackIndex: t + }) + })), e + } + return Ka(r, [{ + key: "componentDidMount", + value: function() { + ZR.forEach((function(e) { + return e() + })) } - return Qg(r, [{ - key: "componentDidMount", - value: function() { - var e = iO(); - iO() !== this.state.scrollDistance && this.setState({ - scrollDistance: e - }), window.addEventListener("scroll", this.handleWindowScroll) - } - }, { - key: "componentWillUnmount", - value: function() { - window.removeEventListener("scroll", this.handleWindowScroll) - } - }, { - key: "render", - value: function() { - var e = this, - t = this.props, - n = t.actions, - a = t.appearance, - r = t.autoFocus, - i = t.body, - o = t.children, - s = t.components, - l = t.footer, - c = t.header, - u = t.height, - d = t.isBlanketHidden, - p = t.isChromeless, - h = t.isHeadingMultiline, - m = t.isOpen, - f = t.onClose, - g = t.onCloseComplete, - b = t.onOpenComplete, - y = t.onStackChange, - v = t.shouldCloseOnEscapePress, - k = t.stackIndex, - _ = t.heading, - w = t.width, - S = t.scrollBehavior, - E = t.testId, - C = this.state.scrollDistance, - A = null != k && k > 0, - j = w && -1 !== IP.values.indexOf(w.toString()) ? w : void 0, - P = j ? void 0 : w; - return x().createElement(pD, { - in: m, - onExited: g, - onEntered: b, - stackIndex: k - }, (function(t) { - var g = t.fade, - b = t.slide; - return x().createElement(WP, { - style: g, - "aria-hidden": A, - scrollDistance: C - }, x().createElement(aO, { - isEnabled: 0 === k && m, - autoFocus: r - }, x().createElement(MP, { - isTinted: !d, - onBlanketClicked: e.handleOverlayClick - }), x().createElement(rO, { - style: b, - scrollBehavior: S, - widthName: j, - widthValue: P - }, x().createElement(xP, null, x().createElement(CP, null, (function(e, t) { - return x().createElement(XP, { - heightValue: u, - isChromeless: p, - role: "dialog", - "aria-labelledby": "dialog-heading-".concat(e), - "data-testid": E, - tabIndex: -1 - }, x().createElement(BD, { - actions: n, - appearance: a, - components: s, - footer: l, - heading: _, - headingId: "dialog-heading-".concat(e), - testId: E && "".concat(E, "-dialog-content"), - isHeadingMultiline: h, - header: c, - onClose: f, - shouldScroll: "inside" === S || "inside-wide" === S, - shouldCloseOnEscapePress: v, - onStackChange: y, - isChromeless: p, - stackIndex: k, - body: i - }, o)) - })))))) - })) - } - }]), r - }(x().Component); - Zf(oO, "defaultProps", { - autoFocus: !0, - scrollBehavior: "inside", - shouldCloseOnEscapePress: !0, - shouldCloseOnOverlayClick: !0, - isBlanketHidden: !1, - isChromeless: !1, - isOpen: !0, - stackIndex: 0, - width: "medium", - isHeadingMultiline: !0, - onClose: function() {} + }, { + key: "componentWillUnmount", + value: function() { + var e = this; - 1 !== ZR.indexOf(this.update) && (ZR = ZR.filter((function(t) { + return t !== e.update + }))).forEach((function(e) { + return e() + })) + } + }, { + key: "componentDidUpdate", + value: function(e) { + var t = this; + e.isOpen && !this.props.isOpen && (ZR = ZR.filter((function(e) { + return e !== t.update + }))).forEach((function(e) { + return e() + })) + } + }, { + key: "render", + value: function() { + return -1 === ZR.indexOf(this.update) && (ZR = [this.update].concat(wr(ZR))), this.props.children(this.state.stackIndex) + } + }]), r + }(C().Component); + var XR = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) }); - var sO = xS("atlaskit"); - const lO = NS({ - componentName: "modalDialog", - packageName: eD.u2, - packageVersion: eD.i8 - })(FS({ - onClose: sO({ - action: "closed", - actionSubject: "modalDialog", - attributes: { - componentName: "modalDialog", - packageName: eD.u2, - packageVersion: eD.i8 - } - }) - })(oO)); - var cO = x().createContext({ - isOpen: !0, - onExited: function() {} - }), - uO = cO.Consumer, - dO = cO.Provider, - pO = function(e) { - return x().Children.count(e) > 0 && x().Children.map(e, (function(e) { - return !!e - })).filter(Boolean).length > 0 - }, - hO = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { - currentChildren: void 0 - }), Zf(_(e), "onExited", (function() { - e.setState({ - currentChildren: e.props.children - }) - })), e - } - return Qg(r, [{ - key: "render", - value: function() { - return x().createElement(dO, { - value: { - onExited: this.onExited, - isOpen: pO(this.props.children) - } - }, this.state.currentChildren) - } - }], [{ - key: "getDerivedStateFromProps", - value: function(e, t) { - var n = t.currentChildren; - return { - currentChildren: pO(n) && !pO(e.children) ? n : e.children - } - } - }]), r - }(x().Component), - mO = uO; - const fO = hO; - var gO = []; - const bO = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "onModalClosed", (function(t) { + return function(n) { + t && t(), e.props.onCloseComplete && e.props.onCloseComplete(n) } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + })), e + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this; + return C().createElement($R, null, (function(t) { + var n = t.isOpen, + a = t.onExited; + return C().createElement(Hx, { + zIndex: eb.modal() + }, C().createElement(QR, { + isOpen: n + }, (function(t) { + return C().createElement(HR, z({}, e.props, { + isOpen: n, + stackIndex: e.props.stackIndex || t, + onCloseComplete: e.onModalClosed(a) + }), e.props.children) + }))) + })) + } + }]), r + }(C().Component); $a(XR, "defaultProps", { + autoFocus: !0, + scrollBehavior: "inside", + shouldCloseOnEscapePress: !0, + shouldCloseOnOverlayClick: !0, + isChromeless: !1, + width: "medium", + isHeadingMultiline: !0, + onClose: function() {} + }); + const ez = XR; + var tz = ["xs", "sm", "md", "lg", "xl"]; + + function nz(e) { + var t = e.values, + n = void 0 === t ? { + xs: 0, + sm: 600, + md: 960, + lg: 1280, + xl: 1920 + } : t, + a = e.unit, + r = void 0 === a ? "px" : a, + i = e.step, + o = void 0 === i ? 5 : i, + s = Yg(e, ["values", "unit", "step"]); - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { - stackIndex: 0 - }), Zf(_(e), "update", (function() { - var t = gO.indexOf(e.update); - e.state.stackIndex !== t && e.setState({ - stackIndex: t - }) - })), e + function l(e) { + var t = "number" == typeof n[e] ? n[e] : e; + return "@media (min-width:".concat(t).concat(r, ")") + } + + function c(e, t) { + var a = tz.indexOf(t); + return a === tz.length - 1 ? l(e) : "@media (min-width:".concat("number" == typeof n[e] ? n[e] : e).concat(r, ") and ") + "(max-width:".concat((-1 !== a && "number" == typeof n[tz[a + 1]] ? n[tz[a + 1]] : t) - o / 100).concat(r, ")") + } + return z({ + keys: tz, + values: n, + up: l, + down: function(e) { + var t = tz.indexOf(e) + 1, + a = n[tz[t]]; + return t === tz.length ? l("xs") : "@media (max-width:".concat(("number" == typeof a && t > 0 ? a : e) - o / 100).concat(r, ")") + }, + between: c, + only: function(e) { + return c(e, e) + }, + width: function(e) { + return n[e] } - return Qg(r, [{ - key: "componentDidMount", - value: function() { - gO.forEach((function(e) { - return e() - })) - } - }, { - key: "componentWillUnmount", - value: function() { - var e = this; - 1 !== gO.indexOf(this.update) && (gO = gO.filter((function(t) { - return t !== e.update - }))).forEach((function(e) { - return e() - })) - } - }, { - key: "componentDidUpdate", - value: function(e) { - var t = this; - e.isOpen && !this.props.isOpen && (gO = gO.filter((function(e) { - return e !== t.update - }))).forEach((function(e) { - return e() - })) - } - }, { - key: "render", - value: function() { - return -1 === gO.indexOf(this.update) && (gO = [this.update].concat($g(gO))), this.props.children(this.state.stackIndex) - } - }]), r - }(x().Component); - var yO = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + }, s) + } - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "onModalClosed", (function(t) { + function az(e, t, n) { + var a; + return z({ + gutters: function() { + var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return z({ + paddingLeft: t(2), + paddingRight: t(2) + }, n, $a({}, e.up("sm"), z({ + paddingLeft: t(3), + paddingRight: t(3) + }, n[e.up("sm")]))) + }, + toolbar: (a = { + minHeight: 56 + }, $a(a, "".concat(e.up("xs"), " and (orientation: landscape)"), { + minHeight: 48 + }), $a(a, e.up("sm"), { + minHeight: 64 + }), a) + }, n) + } + + function rz(e) { + for (var t = "https://material-ui.com/production-error/?code=" + e, n = 1; n < arguments.length; n += 1) t += "&args[]=" + encodeURIComponent(arguments[n]); + return "Minified Material-UI error #" + e + "; visit " + t + " for the full message." + } + const iz = { + black: "#000", + white: "#fff" + }, oz = { + 50: "#fafafa", + 100: "#f5f5f5", + 200: "#eeeeee", + 300: "#e0e0e0", + 400: "#bdbdbd", + 500: "#9e9e9e", + 600: "#757575", + 700: "#616161", + 800: "#424242", + 900: "#212121", + A100: "#d5d5d5", + A200: "#aaaaaa", + A400: "#303030", + A700: "#616161" + }, sz = "#7986cb", lz = "#3f51b5", cz = "#303f9f", uz = "#ff4081", dz = "#f50057", pz = "#c51162", hz = "#e57373", mz = "#f44336", fz = "#d32f2f", gz = "#ffb74d", bz = "#ff9800", yz = "#f57c00", vz = "#64b5f6", kz = "#2196f3", _z = "#1976d2", wz = "#81c784", Sz = "#4caf50", Ez = "#388e3c"; + + function xz(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1; + return Math.min(Math.max(t, e), n) + } + + function Cz(e) { + if (e.type) return e; + if ("#" === e.charAt(0)) return Cz(function(e) { + e = e.substr(1); + var t = new RegExp(".{1,".concat(e.length >= 6 ? 2 : 1, "}"), "g"), + n = e.match(t); + return n && 1 === n[0].length && (n = n.map((function(e) { + return e + e + }))), n ? "rgb".concat(4 === n.length ? "a" : "", "(").concat(n.map((function(e, t) { + return t < 3 ? parseInt(e, 16) : Math.round(parseInt(e, 16) / 255 * 1e3) / 1e3 + })).join(", "), ")") : "" + }(e)); + var t = e.indexOf("("), + n = e.substring(0, t); + if (-1 === ["rgb", "rgba", "hsl", "hsla"].indexOf(n)) throw new Error(rz(3, e)); + var a = e.substring(t + 1, e.length - 1).split(","); + return { + type: n, + values: a = a.map((function(e) { + return parseFloat(e) + })) + } + } + + function Az(e) { + var t = e.type, + n = e.values; + return -1 !== t.indexOf("rgb") ? n = n.map((function(e, t) { + return t < 3 ? parseInt(e, 10) : e + })) : -1 !== t.indexOf("hsl") && (n[1] = "".concat(n[1], "%"), n[2] = "".concat(n[2], "%")), "".concat(t, "(").concat(n.join(", "), ")") + } + + function Tz(e) { + var t = "hsl" === (e = Cz(e)).type ? Cz(function(e) { + var t = (e = Cz(e)).values, + n = t[0], + a = t[1] / 100, + r = t[2] / 100, + i = a * Math.min(r, 1 - r), + o = function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (e + n / 30) % 12; + return r - i * Math.max(Math.min(t - 3, 9 - t, 1), -1) + }, + s = "rgb", + l = [Math.round(255 * o(0)), Math.round(255 * o(8)), Math.round(255 * o(4))]; + return "hsla" === e.type && (s += "a", l.push(t[3])), Az({ + type: s, + values: l + }) + }(e)).values : e.values; + return t = t.map((function(e) { + return (e /= 255) <= .03928 ? e / 12.92 : Math.pow((e + .055) / 1.055, 2.4) + })), Number((.2126 * t[0] + .7152 * t[1] + .0722 * t[2]).toFixed(3)) + } + var Dz = { + text: { + primary: "rgba(0, 0, 0, 0.87)", + secondary: "rgba(0, 0, 0, 0.54)", + disabled: "rgba(0, 0, 0, 0.38)", + hint: "rgba(0, 0, 0, 0.38)" + }, + divider: "rgba(0, 0, 0, 0.12)", + background: { + paper: iz.white, + default: oz[50] + }, + action: { + active: "rgba(0, 0, 0, 0.54)", + hover: "rgba(0, 0, 0, 0.04)", + hoverOpacity: .04, + selected: "rgba(0, 0, 0, 0.08)", + selectedOpacity: .08, + disabled: "rgba(0, 0, 0, 0.26)", + disabledBackground: "rgba(0, 0, 0, 0.12)", + disabledOpacity: .38, + focus: "rgba(0, 0, 0, 0.12)", + focusOpacity: .12, + activatedOpacity: .12 + } + }, Pz = { + text: { + primary: iz.white, + secondary: "rgba(255, 255, 255, 0.7)", + disabled: "rgba(255, 255, 255, 0.5)", + hint: "rgba(255, 255, 255, 0.5)", + icon: "rgba(255, 255, 255, 0.5)" + }, + divider: "rgba(255, 255, 255, 0.12)", + background: { + paper: oz[800], + default: "#303030" + }, + action: { + active: iz.white, + hover: "rgba(255, 255, 255, 0.08)", + hoverOpacity: .08, + selected: "rgba(255, 255, 255, 0.16)", + selectedOpacity: .16, + disabled: "rgba(255, 255, 255, 0.3)", + disabledBackground: "rgba(255, 255, 255, 0.12)", + disabledOpacity: .38, + focus: "rgba(255, 255, 255, 0.12)", + focusOpacity: .12, + activatedOpacity: .24 + } + }; + + function jz(e, t, n, a) { + var r = a.light || a, + i = a.dark || 1.5 * a; + e[t] || (e.hasOwnProperty(n) ? e[t] = e[n] : "light" === t ? e.light = function(e, t) { + if (e = Cz(e), t = xz(t), -1 !== e.type.indexOf("hsl")) e.values[2] += (100 - e.values[2]) * t; + else if (-1 !== e.type.indexOf("rgb")) + for (var n = 0; n < 3; n += 1) e.values[n] += (255 - e.values[n]) * t; + return Az(e) + }(e.main, r) : "dark" === t && (e.dark = function(e, t) { + if (e = Cz(e), t = xz(t), -1 !== e.type.indexOf("hsl")) e.values[2] *= 1 - t; + else if (-1 !== e.type.indexOf("rgb")) + for (var n = 0; n < 3; n += 1) e.values[n] *= 1 - t; + return Az(e) + }(e.main, i))) + } + + function Mz(e) { + var t = e.primary, + n = void 0 === t ? { + light: sz, + main: lz, + dark: cz + } : t, + a = e.secondary, + r = void 0 === a ? { + light: uz, + main: dz, + dark: pz + } : a, + i = e.error, + o = void 0 === i ? { + light: hz, + main: mz, + dark: fz + } : i, + s = e.warning, + l = void 0 === s ? { + light: gz, + main: bz, + dark: yz + } : s, + c = e.info, + u = void 0 === c ? { + light: vz, + main: kz, + dark: _z + } : c, + d = e.success, + p = void 0 === d ? { + light: wz, + main: Sz, + dark: Ez + } : d, + h = e.type, + m = void 0 === h ? "light" : h, + f = e.contrastThreshold, + g = void 0 === f ? 3 : f, + b = e.tonalOffset, + y = void 0 === b ? .2 : b, + v = Yg(e, ["primary", "secondary", "error", "warning", "info", "success", "type", "contrastThreshold", "tonalOffset"]); + + function k(e) { + var t = function(e, t) { + var n = Tz(e), + a = Tz(t); + return (Math.max(n, a) + .05) / (Math.min(n, a) + .05) + }(e, Pz.text.primary) >= g ? Pz.text.primary : Dz.text.primary; + return t + } + var _ = function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 500, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 300, + a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 700; + if (!(e = z({}, e)).main && e[t] && (e.main = e[t]), !e.main) throw new Error(rz(4, t)); + if ("string" != typeof e.main) throw new Error(rz(5, JSON.stringify(e.main))); + return jz(e, "light", n, y), jz(e, "dark", a, y), e.contrastText || (e.contrastText = k(e.main)), e + }, + w = { + dark: Pz, + light: Dz + }; + return bw(z({ + common: iz, + type: m, + primary: _(n), + secondary: _(r, "A400", "A200", "A700"), + error: _(o), + warning: _(l), + info: _(u), + success: _(p), + grey: oz, + contrastThreshold: g, + getContrastText: k, + augmentColor: _, + tonalOffset: y + }, w[m]), v) + } + + function Iz(e) { + return Math.round(1e5 * e) / 1e5 + } + var Oz = { + textTransform: "uppercase" + }, Nz = '"Roboto", "Helvetica", "Arial", sans-serif'; + + function Rz(e, t) { + var n = "function" == typeof t ? t(e) : t, + a = n.fontFamily, + r = void 0 === a ? Nz : a, + i = n.fontSize, + o = void 0 === i ? 14 : i, + s = n.fontWeightLight, + l = void 0 === s ? 300 : s, + c = n.fontWeightRegular, + u = void 0 === c ? 400 : c, + d = n.fontWeightMedium, + p = void 0 === d ? 500 : d, + h = n.fontWeightBold, + m = void 0 === h ? 700 : h, + f = n.htmlFontSize, + g = void 0 === f ? 16 : f, + b = n.allVariants, + y = n.pxToRem, + v = Yg(n, ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"]), + k = o / 14, + _ = y || function(e) { + return "".concat(e / g * k, "rem") + }, + w = function(e, t, n, a, i) { + return z({ + fontFamily: r, + fontWeight: e, + fontSize: _(t), + lineHeight: n + }, r === Nz ? { + letterSpacing: "".concat(Iz(a / t), "em") + } : {}, i, b) + }, + S = { + h1: w(l, 96, 1.167, -1.5), + h2: w(l, 60, 1.2, -.5), + h3: w(u, 48, 1.167, 0), + h4: w(u, 34, 1.235, .25), + h5: w(u, 24, 1.334, 0), + h6: w(p, 20, 1.6, .15), + subtitle1: w(u, 16, 1.75, .15), + subtitle2: w(p, 14, 1.57, .1), + body1: w(u, 16, 1.5, .15), + body2: w(u, 14, 1.43, .15), + button: w(p, 14, 1.75, .4, Oz), + caption: w(u, 12, 1.66, .4), + overline: w(u, 12, 2.66, 1, Oz) + }; + return bw(z({ + htmlFontSize: g, + pxToRem: _, + round: Iz, + fontFamily: r, + fontSize: o, + fontWeightLight: l, + fontWeightRegular: u, + fontWeightMedium: p, + fontWeightBold: m + }, S), v, { + clone: !1 + }) + } + + function zz() { + return ["".concat(arguments.length <= 0 ? void 0 : arguments[0], "px ").concat(arguments.length <= 1 ? void 0 : arguments[1], "px ").concat(arguments.length <= 2 ? void 0 : arguments[2], "px ").concat(arguments.length <= 3 ? void 0 : arguments[3], "px rgba(0,0,0,").concat(.2, ")"), "".concat(arguments.length <= 4 ? void 0 : arguments[4], "px ").concat(arguments.length <= 5 ? void 0 : arguments[5], "px ").concat(arguments.length <= 6 ? void 0 : arguments[6], "px ").concat(arguments.length <= 7 ? void 0 : arguments[7], "px rgba(0,0,0,").concat(.14, ")"), "".concat(arguments.length <= 8 ? void 0 : arguments[8], "px ").concat(arguments.length <= 9 ? void 0 : arguments[9], "px ").concat(arguments.length <= 10 ? void 0 : arguments[10], "px ").concat(arguments.length <= 11 ? void 0 : arguments[11], "px rgba(0,0,0,").concat(.12, ")")].join(",") + } + const Lz = ["none", zz(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), zz(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), zz(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), zz(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), zz(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), zz(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), zz(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), zz(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), zz(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), zz(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), zz(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), zz(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), zz(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), zz(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), zz(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), zz(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), zz(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), zz(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), zz(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), zz(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), zz(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), zz(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), zz(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), zz(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)], Fz = { + borderRadius: 4 + }; + var qz = { + xs: 0, + sm: 600, + md: 960, + lg: 1280, + xl: 1920 + }, Bz = { + keys: ["xs", "sm", "md", "lg", "xl"], + up: function(e) { + return "@media (min-width:".concat(qz[e], "px)") + } + }; + const Uz = function(e, t) { + return t ? bw(e, t, { + clone: !1 + }) : e + }; + var Hz = { + m: "margin", + p: "padding" + }, Vz = { + t: "Top", + r: "Right", + b: "Bottom", + l: "Left", + x: ["Left", "Right"], + y: ["Top", "Bottom"] + }, Wz = { + marginX: "mx", + marginY: "my", + paddingX: "px", + paddingY: "py" + }, Yz = function(e) { + var t = {}; + return function(e) { + return void 0 === t[e] && (t[e] = function(e) { + if (e.length > 2) { + if (!Wz[e]) return [e]; + e = Wz[e] + } + var t = dr(e.split(""), 2), + n = t[0], + a = t[1], + r = Hz[n], + i = Vz[a] || ""; + return Array.isArray(i) ? i.map((function(e) { + return r + e + })) : [r + i] + }(e)), t[e] + } + }(), Gz = ["m", "mt", "mr", "mb", "ml", "mx", "my", "p", "pt", "pr", "pb", "pl", "px", "py", "margin", "marginTop", "marginRight", "marginBottom", "marginLeft", "marginX", "marginY", "padding", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "paddingX", "paddingY"]; + + function Kz(e) { + var t = e.spacing || 8; + return "number" == typeof t ? function(e) { + return t * e + } : Array.isArray(t) ? function(e) { + return t[e] + } : "function" == typeof t ? t : function() {} + } + + function $z(e) { + var t = Kz(e.theme); + return Object.keys(e).map((function(n) { + if (-1 === Gz.indexOf(n)) return null; + var a = function(e, t) { return function(n) { - t && t(), e.props.onCloseComplete && e.props.onCloseComplete(n) + return e.reduce((function(e, a) { + return e[a] = function(e, t) { + if ("string" == typeof t || null == t) return t; + var n = e(Math.abs(t)); + return t >= 0 ? n : "number" == typeof n ? -n : "-".concat(n) + }(t, n), e + }), {}) } - })), e - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this; - return x().createElement(mO, null, (function(t) { - var n = t.isOpen, - a = t.onExited; - return x().createElement(iv, { - zIndex: Gg.modal() - }, x().createElement(bO, { - isOpen: n - }, (function(t) { - return x().createElement(lO, z({}, e.props, { - isOpen: n, - stackIndex: e.props.stackIndex || t, - onCloseComplete: e.onModalClosed(a) - }), e.props.children) - }))) - })) + }(Yz(n), t), + r = e[n]; + return function(e, t, n) { + if (Array.isArray(t)) { + var a = e.theme.breakpoints || Bz; + return t.reduce((function(e, r, i) { + return e[a.up(a.keys[i])] = n(t[i]), e + }), {}) } - }]), r - }(x().Component); - Zf(yO, "defaultProps", { - autoFocus: !0, - scrollBehavior: "inside", - shouldCloseOnEscapePress: !0, - shouldCloseOnOverlayClick: !0, - isChromeless: !1, - width: "medium", - isHeadingMultiline: !0, - onClose: function() {} - }); - const vO = yO, - kO = 24, - _O = (0, VS.Z)({ - light: mb.N30, - dark: mb.DN30 + if ("object" === yr(t)) { + var r = e.theme.breakpoints || Bz; + return Object.keys(t).reduce((function(e, a) { + return e[r.up(a)] = n(t[a]), e + }), {}) + } + return n(t) + }(e, r, a) + })).reduce(Uz, {}) + } + + function Jz() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 8; + if (e.mui) return e; + var t = Kz({ + spacing: e }), - wO = (Dg` + n = function() { + for (var e = arguments.length, n = new Array(e), a = 0; a < e; a++) n[a] = arguments[a]; + return 0 === n.length ? t(1) : 1 === n.length ? t(n[0]) : n.map((function(e) { + if ("string" == typeof e) return e; + var n = t(e); + return "number" == typeof n ? "".concat(n, "px") : n + })).join(" ") + }; + return Object.defineProperty(n, "unit", { + get: function() { + return e + } + }), n.mui = !0, n + } + $z.propTypes = {}, $z.filterProps = Gz; + var Zz = { + easeInOut: "cubic-bezier(0.4, 0, 0.2, 1)", + easeOut: "cubic-bezier(0.0, 0, 0.2, 1)", + easeIn: "cubic-bezier(0.4, 0, 1, 1)", + sharp: "cubic-bezier(0.4, 0, 0.6, 1)" + }, Qz = { + shortest: 150, + shorter: 200, + short: 250, + standard: 300, + complex: 375, + enteringScreen: 225, + leavingScreen: 195 + }; + + function Xz(e) { + return "".concat(Math.round(e), "ms") + } + const eL = { + easing: Zz, + duration: Qz, + create: function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ["all"], + t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = t.duration, + a = void 0 === n ? Qz.standard : n, + r = t.easing, + i = void 0 === r ? Zz.easeInOut : r, + o = t.delay, + s = void 0 === o ? 0 : o; + return Yg(t, ["duration", "easing", "delay"]), (Array.isArray(e) ? e : [e]).map((function(e) { + return "".concat(e, " ").concat("string" == typeof a ? a : Xz(a), " ").concat(i, " ").concat("string" == typeof s ? s : Xz(s)) + })).join(",") + }, + getAutoHeightDuration: function(e) { + if (!e) return 0; + var t = e / 36; + return Math.round(10 * (4 + 15 * Math.pow(t, .25) + t / 5)) + } + }, tL = { + mobileStepper: 1e3, + speedDial: 1050, + appBar: 1100, + drawer: 1200, + modal: 1300, + snackbar: 1400, + tooltip: 1500 + }, nL = function() { + for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e.breakpoints, n = void 0 === t ? {} : t, a = e.mixins, r = void 0 === a ? {} : a, i = e.palette, o = void 0 === i ? {} : i, s = e.spacing, l = e.typography, c = void 0 === l ? {} : l, u = Yg(e, ["breakpoints", "mixins", "palette", "spacing", "typography"]), d = Mz(o), p = nz(n), h = Jz(s), m = bw({ + breakpoints: p, + direction: "ltr", + mixins: az(p, h, r), + overrides: {}, + palette: d, + props: {}, + shadows: Lz, + typography: Rz(d, c), + spacing: h, + shape: Fz, + transitions: eL, + zIndex: tL + }, u), f = arguments.length, g = new Array(f > 1 ? f - 1 : 0), b = 1; b < f; b++) g[b - 1] = arguments[b]; + return g.reduce((function(e, t) { + return bw(e, t) + }), m) + }, aL = nL(), rL = function(e, t) { + return Aw(e, z({ + defaultTheme: aL + }, t)) + }, iL = 24, oL = (0, fA.Z)({ + light: hb.N30, + dark: hb.DN30 + }), sL = (zg` display: flex; flex-direction: column; flex: 1 1 auto; max-height: 100%; -`, UP.header` +`, xO.header` align-items: center; display: flex; flex: 0 0 auto; justify-content: space-between; transition: box-shadow 200ms; position: relative; - padding: ${kO}px ${kO}px ${22}px - ${kO}px; - box-shadow: ${e=>e.showKeyline?`0 2px 0 0 ${_O(e)}`:"none"}; -`), - SO = UP.h4` + padding: ${iL}px ${iL}px ${22}px + ${iL}px; + box-shadow: ${e=>e.showKeyline?`0 2px 0 0 ${oL(e)}`:"none"}; +`), lL = xO.h4` align-items: center; display: flex; font-size: 20px; @@ -21076,25 +24048,21 @@ line-height: 1; margin: 0; min-width: 0; -`, - EO = UP.span` +`, cL = xO.span` flex: 1 1 auto; min-width: 0; word-wrap: break-word; width: 100%; ${e=>!e.isHeadingMultiline&&"\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n "}; -`, - xO = { - danger: mb.R400, - warning: mb.Y400 - }, - CO = e => Dg` - color: ${xO[e]}; +`, uL = { + danger: hb.R400, + warning: hb.Y400 + }, dL = e => zg` + color: ${uL[e]}; margin-right: ${8}px; flex: 0 0 auto; -`; - UP.div` - ${e=>{return t=e.shouldScroll,Dg` +`; xO.div` + ${e=>{return t=e.shouldScroll,zg` flex: 1 1 auto; ${t?"\n overflow-y: auto;\n overflow-x: hidden;\n padding: 2px 24px;\n ":"\n padding: 0 24px;\n "} @media (min-width: 320px) and (max-width: 480px) { @@ -21104,74533 +24072,71953 @@ &:focus { outline-offset: -1px; outline-style: dotted; - outline-color: ${mb.N800}; + outline-color: ${hb.N800}; outline-width: thin; } `;var t}}; -`, UP.footer` +`, xO.footer` position: relative; align-items: center; display: flex; flex: 0 0 auto; justify-content: space-between; transition: box-shadow 200ms; - padding: ${22}px ${kO}px ${kO}px - ${kO}px; - box-shadow: ${e=>e.showKeyline?`0 -2px 0 0 ${_O(e)}`:"none"}; -`, UP.div` + padding: ${22}px ${iL}px ${iL}px + ${iL}px; + box-shadow: ${e=>e.showKeyline?`0 -2px 0 0 ${oL(e)}`:"none"}; +`, xO.div` display: inline-flex; - margin: 0 -${GS(Wg,2)}px; -`, UP.div` + margin: 0 -${yA(Qg,2)}px; +`, xO.div` flex: 1 0 auto; - margin: 0 ${GS(Wg,2)}px; + margin: 0 ${yA(Qg,2)}px; `; - const AO = ({ - appearance: e - }) => { - if (!e) return null; - const t = "danger" === e ? Sv.Z : Ev.Z; - return x().createElement("span", { - css: CO(e) - }, x().createElement(t, { - label: `${e} icon` - })) - }; - class jO extends x().Component { - constructor(e) { - super(e), this._onKeyPress = this._onKeyPress.bind(this) - } - _onKeyPress(e) { - !this.props.onClose || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.onClose()) + const pL = e => { + let { + appearance: t + } = e; + if (!t) return null; + const n = "danger" === t ? _N.Z : CD.Z; + return C().createElement("span", { + css: dL(t) + }, C().createElement(n, { + label: `${t} icon` + })) + }; class hL extends C().Component { + constructor(e) { + super(e), this._onKeyPress = this._onKeyPress.bind(this) + } + _onKeyPress(e) { + !this.props.onClose || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.onClose()) + } + render() { + const { + id: e, + appearance: t, + classes: n, + heading: a, + hideCloseIconButton: r, + onClose: i, + showKeyline: o, + isHeadingMultiline: s, + testId: l, + t: c + } = this.props; + return a ? C().createElement(sL, { + className: n.header, + showKeyline: o + }, C().createElement(lL, null, C().createElement(pL, { + appearance: t + }), C().createElement(cL, { + "data-testid": l && `${l}-heading`, + id: e, + isHeadingMultiline: s + }, a)), !r && C().createElement("div", { + className: n.closeButton, + id: "modal-header-close-button", + onClick: i + }, C().createElement(lo, { + ariaLabel: c("dialog.close"), + onKeyPress: this._onKeyPress, + role: "button", + src: ds, + tabIndex: 0 + }))) : null + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(hL, "defaultProps", { + isHeadingMultiline: !0 + }); + const mL = Ei(rL((e => ({ + closeButton: { + borderRadius: e.shape.borderRadius, + cursor: "pointer", + padding: 13, + [e.breakpoints.down("480")]: { + background: e.palette.action02 + }, + "&:hover": { + background: e.palette.action02 } - render() { - const { - id: e, - appearance: t, - heading: n, - hideCloseIconButton: a, - onClose: r, - showKeyline: i, - isHeadingMultiline: o, - testId: s, - t: l - } = this.props; - return n ? x().createElement(wO, { - showKeyline: i - }, x().createElement(SO, null, x().createElement(AO, { - appearance: t - }), x().createElement(EO, { - "data-testid": s && `${s}-heading`, - id: e, - isHeadingMultiline: o - }, n)), !a && x().createElement(qs, { - ariaLabel: l("dialog.close"), - onClick: r, - onKeyPress: this._onKeyPress, - role: "button", - src: Ul, - tabIndex: 0 - })) : null + }, + header: { + boxShadow: "none", + "& h4": { + ...no(e.typography.heading5), + color: e.palette.text01 } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(jO, "defaultProps", { - isHeadingMultiline: !0 - }); - const PO = Li(jO); - - function DO() { - return DO = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, DO.apply(this, arguments) } - class TO extends E.Component { - constructor(e) { - super(e), this._onCancel = this._onCancel.bind(this), this._onDialogDismissed = this._onDialogDismissed.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._onSubmit = this._onSubmit.bind(this), this._renderFooter = this._renderFooter.bind(this), this._onDialogRef = this._onDialogRef.bind(this) + })))(hL)); + + function fL() { + return fL = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } - render() { + return e + }, fL.apply(this, arguments) + } + class gL extends x.Component { + constructor(e) { + super(e), this._onCancel = this._onCancel.bind(this), this._onDialogDismissed = this._onDialogDismissed.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._onSubmit = this._onSubmit.bind(this), this._renderFooter = this._renderFooter.bind(this), this._onDialogRef = this._onDialogRef.bind(this) + } + render() { + const { + customHeader: e, + children: t, + hideCloseIconButton: n, + t: a = _().identity, + titleString: r, + titleKey: i, + width: o + } = this.props; + return C().createElement(ez, { + autoFocus: !0, + components: { + Header: e || (e => C().createElement(mL, fL({}, e, { + heading: r || a(i), + hideCloseIconButton: n + }))) + }, + footer: this._renderFooter, + i18n: this.props.i18n, + onClose: this._onDialogDismissed, + onDialogDismissed: this._onDialogDismissed, + shouldCloseOnEscapePress: !0, + width: o || "medium" + }, C().createElement("div", { + onKeyPress: this._onKeyPress, + ref: this._onDialogRef + }, C().createElement("form", { + className: "modal-dialog-form", + id: "modal-dialog-form", + onSubmit: this._onSubmit + }, t))) + } + _renderFooter(e) { + const t = [this._renderOKButton(), this._renderCancelButton()].filter(Boolean); + return this.props.disableFooter ? null : C().createElement(gN, { + className: this.props.classes.footer, + showKeyline: e.showKeyline + }, C().createElement("span", null), C().createElement(JI, null, t)) + } + _onCancel() { + if (!this.props.isModal) { const { - customHeader: e, - children: t, - hideCloseIconButton: n, - t: a = k().identity, - titleString: r, - titleKey: i, - width: o + onCancel: e } = this.props; - return x().createElement(vO, { - autoFocus: !0, - components: { - Header: e || (e => x().createElement(PO, DO({}, e, { - heading: r || a(i), - hideCloseIconButton: n - }))) - }, - footer: this._renderFooter, - i18n: this.props.i18n, - onClose: this._onDialogDismissed, - onDialogDismissed: this._onDialogDismissed, - shouldCloseOnEscapePress: !0, - width: o || "medium" - }, x().createElement("div", { - onKeyPress: this._onKeyPress, - ref: this._onDialogRef - }, x().createElement("form", { - className: "modal-dialog-form", - id: "modal-dialog-form", - onSubmit: this._onSubmit - }, t))) - } - _renderFooter(e) { - const t = [this._renderOKButton(), this._renderCancelButton()].filter(Boolean); - return this.props.disableFooter ? null : x().createElement(MD, { - showKeyline: e.showKeyline - }, x().createElement("span", null), x().createElement(mP, null, t)) - } - _onCancel() { - if (!this.props.isModal) { - const { - onCancel: e - } = this.props; - e && e() - } - } - _onDialogDismissed() { - this.props.disableBlanketClickDismiss || this._onCancel() + e && e() } - _onSubmit(e) { - const { - onSubmit: t - } = this.props; - t && t(e) + } + _onDialogDismissed() { + this.props.disableBlanketClickDismiss || this._onCancel() + } + _onSubmit(e) { + const { + onSubmit: t + } = this.props; + t && t(e) + } + _renderCancelButton() { + if (this.props.cancelDisabled || this.props.isModal || this.props.hideCancelButton) return null; + const { + t: e = _().identity, + onDecline: t + } = this.props; + return C().createElement(DC, { + appearance: "subtle", + id: "modal-dialog-cancel-button", + key: "cancel", + onClick: t || this._onCancel, + type: "button" + }, e(this.props.cancelKey || "dialog.Cancel")) + } + _renderOKButton() { + if (this.props.submitDisabled) return null; + const { + t: e = _().identity + } = this.props; + return C().createElement(DC, { + appearance: "primary", + form: "modal-dialog-form", + id: "modal-dialog-ok-button", + isDisabled: this.props.okDisabled, + key: "submit", + onClick: this._onSubmit, + type: "button" + }, e(this.props.okKey || "dialog.Ok")) + } + _onDialogRef(e) { + this.props.onDialogRef && this.props.onDialogRef(e && e.parentNode) + } + _onKeyPress(e) { + e.defaultPrevented || "Enter" !== e.key || this.props.disableEnter || (e.preventDefault(), e.stopPropagation(), this.props.submitDisabled && !this.props.cancelDisabled ? this._onCancel() : this.props.okDisabled || this._onSubmit()) + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(gL, "defaultProps", { + hideCloseIconButton: !1 + }); + const bL = Ei(rL((() => ({ + footer: { + boxShadow: "none" + } + })))(gL)), yL = Ne()(class extends KI { + constructor(e) { + super(e), this._onCancel = this._onCancel.bind(this), this._onSubmit = this._onSubmit.bind(this) + } + render() { + const e = { + ...this.props, + onCancel: this._onCancel, + onSubmit: this._onSubmit + }; + return delete e.dispatch, C().createElement(bL, e) + } + _onCancel() { + this.props.isModal || super._onCancel() + } + }); class vL extends x.Component { + _renderDialogContent() { + const { + _component: e, + _reducedUI: t + } = this.props; + return e && !t ? C().createElement(e, this.props._componentProps) : null + } + } + const kL = Ne((function(e) { + const t = e["features/base/dialog"], + { + reducedUI: n + } = e["features/base/responsive-ui"]; + return { + _component: t.component, + _componentProps: t.componentProps, + _rawDialog: t.rawDialog, + _reducedUI: n + } + }))(class extends vL { + render() { + return this.props._rawDialog ? this._renderDialogContent() : C().createElement(JR, null, this._renderDialogContent()) + } + }); + var _L = { + light: { + labelColor: hb.N500, + activeLabelColor: hb.B500, + hoverLabelColor: hb.B400, + selectedColor: hb.B400 + }, + dark: { + labelColor: hb.DN400, + activeLabelColor: hb.B200, + hoverLabelColor: hb.B75, + selectedColor: hb.B75 + } + }, wL = { + light: { + lineColor: hb.N30, + selectedColor: hb.B400 + }, + dark: { + lineColor: hb.DN0, + selectedColor: hb.B75 + } + }; + + function SL() { + var e = sg(["\n color: ", ";\n cursor: pointer;\n line-height: 1.8;\n margin: 0;\n padding: ", "px ", "px;\n position: relative;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover {\n color: ", ";\n }\n &:active,\n &:active::before {\n color: ", ";\n }\n\n &:focus {\n border-radius: ", "px;\n /*\n You can only focus on the selected tab\n so use the selected color\n */\n box-shadow: 0 0 0 2px ", " inset;\n outline: none;\n }\n\n /* If selected then don't use any of these styles */\n &&[data-selected] {\n color: ", ";\n }\n "]); + return SL = function() { + return e + }, e + } + + function EL() { + var e = sg(["\n background-color: ", ";\n border-radius: ", ";\n bottom: 0;\n content: '';\n height: ", ";\n left: ", "px;\n margin: 0;\n position: absolute;\n right: ", "px;\n width: inherit;\n &[data-selected] {\n background-color: ", ";\n }\n "]); + return EL = function() { + return e + }, e + } + + function xL() { + var e = sg(["\n display: flex;\n font-weight: 500;\n list-style-type: none;\n margin: 0;\n padding: 0;\n"]); + return xL = function() { + return e + }, e + } + + function CL() { + var e = sg(["\n position: relative;\n"]); + return CL = function() { + return e + }, e + } + + function AL() { + var e = sg(["\n flex-grow: 1;\n min-height: 0%; /* See min-height note */\n padding-left: ", "px;\n padding-right: ", "px;\n display: none;\n &[data-selected] {\n display: flex;\n }\n"]); + return AL = function() { + return e + }, e + } + + function TL() { + var e = sg(["\n display: flex;\n flex-basis: 100%;\n flex-direction: column;\n flex-grow: 1;\n max-width: 100%;\n min-height: 0%; /* See min-height note */\n"]); + return TL = function() { + return e + }, e + } + var DL = zg(TL()), PL = zg(AL(), 8, 8), jL = zg(CL()), ML = zg(xL()), IL = function(e) { + var t = function(e) { + return _L[e] + }(e); + return zg(SL(), t.labelColor, 4, 8, t.hoverLabelColor, t.activeLabelColor, 3, t.selectedColor, t.selectedColor) + }; + const OL = JSON.parse('{"u2":"@atlaskit/tabs","i8":"12.1.2"}'); + var NL = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - _renderCancelButton() { - if (this.props.cancelDisabled || this.props.isModal || this.props.hideCancelButton) return null; - const { - t: e = k().identity, - onDecline: t - } = this.props; - return x().createElement(nS, { - appearance: "subtle", - id: "modal-dialog-cancel-button", - key: "cancel", - onClick: t || this._onCancel, - type: "button" - }, e(this.props.cancelKey || "dialog.Cancel")) - } - _renderOKButton() { - if (this.props.submitDisabled) return null; - const { - t: e = k().identity - } = this.props; - return x().createElement(nS, { - appearance: "primary", - form: "modal-dialog-form", - id: "modal-dialog-ok-button", - isDisabled: this.props.okDisabled, - key: "submit", - onClick: this._onSubmit, - type: "button" - }, e(this.props.okKey || "dialog.Ok")) - } - _onDialogRef(e) { - this.props.onDialogRef && this.props.onDialogRef(e && e.parentNode) - } - _onKeyPress(e) { - e.defaultPrevented || "Enter" !== e.key || this.props.disableEnter || (e.preventDefault(), e.stopPropagation(), this.props.submitDisabled && !this.props.cancelDisabled ? this._onCancel() : this.props.okDisabled || this._onSubmit()) - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(TO, "defaultProps", { - hideCloseIconButton: !1 + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) }); - const OO = Li(TO); - function MO(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const IO = ze()(class extends pP { - constructor(e) { - super(e), this._onCancel = this._onCancel.bind(this), this._onSubmit = this._onSubmit.bind(this) + function r() { + return Ya(this, r), a.apply(this, arguments) + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this.props, + t = e.data, + n = e.elementProps, + a = e.isSelected; + return Lg("div", z({ + css: PL + }, n, { + "data-selected": a ? "true" : void 0 + }), t.content) + } + }]), r + }(x.Component); $a(NL, "defaultProps", { + data: {}, + elementProps: {}, + isSelected: !1 + }); + const RL = function(e) { + var t = e.status, + n = e.mode; + return Lg("span", { + css: (0, x.useMemo)((function() { + return function(e) { + var t = function(e) { + return wL[e] + }(e); + return zg(EL(), t.lineColor, "2px", "2px", 8, 8, t.selectedColor) + }(n) + }), [n]), + "data-selected": "selected" === t || void 0 + }) + }; + var zL = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - render() { - const e = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - MO(e, t, n[t]) - })) - } - return e - }({}, this.props, { - onCancel: this._onCancel, - onSubmit: this._onSubmit - }); - return delete e.dispatch, x().createElement(OO, e) + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); + + function r() { + return Ya(this, r), a.apply(this, arguments) + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this.props, + t = e.data, + n = e.elementProps, + a = e.innerRef, + r = e.isSelected, + i = e.mode; + return Lg("div", z({ + css: IL(i) + }, n, { + ref: a, + "data-selected": !!r || void 0 + }), t.label, r && Lg(RL, { + status: "selected", + mode: i + })) } - _onCancel() { - this.props.isModal || super._onCancel() + }]), r + }(x.Component); $a(zL, "defaultProps", { + data: {}, + elementProps: {}, + innerRef: function() {}, + isSelected: !1, + mode: "light" + }); + var LL = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) }); - class NO extends E.Component { - _renderDialogContent() { - const { - _component: e, - _reducedUI: t - } = this.props; - return e && !t ? x().createElement(e, this.props._componentProps) : null - } + + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "elementRefs", []), $a(w(e), "tabKeyDownHandler", (function(t) { + if (["ArrowRight", "ArrowLeft"].includes(t.key)) { + var n = e.props, + a = n.selected, + r = n.tabs, + i = "ArrowRight" === t.key ? 1 : -1, + o = r.indexOf(a) + i; + o < 0 || o >= r.length || (e.onSelect(r[o], o), e.elementRefs[o].focus()) + } + })), $a(w(e), "onSelect", (function(t, n) { + e.props.onSelect(t, n) + })), $a(w(e), "tabMouseDownHandler", (function(e) { + return e.preventDefault() + })), e } - const zO = ze((function(e) { - const t = e["features/base/dialog"], - { - reducedUI: n - } = e["features/base/responsive-ui"]; - return { - _component: t.component, - _componentProps: t.componentProps, - _rawDialog: t.rawDialog, - _reducedUI: n + return Ka(r, [{ + key: "UNSAFE_componentWillReceiveProps", + value: function(e) { + e.tabs !== this.props.tabs && (this.elementRefs = []) } - }))(class extends NO { - render() { - return this.props._rawDialog ? this._renderDialogContent() : x().createElement(fO, null, this._renderDialogContent()) + }, { + key: "render", + value: function() { + var e = this, + t = this.props, + n = t.selected, + a = t.component, + r = t.tabs; + return Lg(Kg.Consumer, null, (function(t) { + var i = t.mode; + return Lg("div", { + css: jL + }, Lg(RL, { + status: "normal", + mode: i + }), Lg("div", { + role: "tablist", + css: ML + }, r.map((function(t, o) { + var s = t === n, + l = { + "aria-posinset": o + 1, + "aria-selected": s, + "aria-setsize": r.length, + "data-testid": t.testId, + onClick: function() { + return e.onSelect(t, o) + }, + onKeyDown: e.tabKeyDownHandler, + onMouseDown: e.tabMouseDownHandler, + role: "tab", + tabIndex: s ? 0 : -1 + }; + return Lg(a, z({ + key: o + }, { + elementProps: l, + innerRef: function(t) { + e.elementRefs[o] = t + }, + data: t, + isSelected: s, + mode: i + })) + })))) + })) } - }); - var RO = { - light: { - labelColor: mb.N500, - activeLabelColor: mb.B500, - hoverLabelColor: mb.B400, - selectedColor: mb.B400 - }, - dark: { - labelColor: mb.DN400, - activeLabelColor: mb.B200, - hoverLabelColor: mb.B75, - selectedColor: mb.B75 - } - }, - LO = { - light: { - lineColor: mb.N30, - selectedColor: mb.B400 - }, - dark: { - lineColor: mb.DN0, - selectedColor: mb.B75 - } - }; + }]), r + }(x.Component); - function FO() { - var e = Jf(["\n color: ", ";\n cursor: pointer;\n line-height: 1.8;\n margin: 0;\n padding: ", "px ", "px;\n position: relative;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:hover {\n color: ", ";\n }\n &:active,\n &:active::before {\n color: ", ";\n }\n\n &:focus {\n border-radius: ", "px;\n /*\n You can only focus on the selected tab\n so use the selected color\n */\n box-shadow: 0 0 0 2px ", " inset;\n outline: none;\n }\n\n /* If selected then don't use any of these styles */\n &&[data-selected] {\n color: ", ";\n }\n "]); - return FO = function() { - return e - }, e + function FL(e, t) { + var n = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var a = Object.getOwnPropertySymbols(e); + t && (a = a.filter((function(t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable + }))), n.push.apply(n, a) } + return n + } - function qO() { - var e = Jf(["\n background-color: ", ";\n border-radius: ", ";\n bottom: 0;\n content: '';\n height: ", ";\n left: ", "px;\n margin: 0;\n position: absolute;\n right: ", "px;\n width: inherit;\n &[data-selected] {\n background-color: ", ";\n }\n "]); - return qO = function() { - return e - }, e + function qL(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {}; + t % 2 ? FL(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : FL(Object(n)).forEach((function(t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) + })) } + return e + } + var BL = function(e, t, n) { + return e === n + }, UL = function(e, t) { + return e === t + }, HL = { + Content: NL, + Item: zL + }, VL = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function BO() { - var e = Jf(["\n display: flex;\n font-weight: 500;\n list-style-type: none;\n margin: 0;\n padding: 0;\n"]); - return BO = function() { - return e - }, e + function r(e) { + var t; + Ya(this, r), $a(w(t = a.call(this, e)), "resolveSelected", (function(e, n) { + var a = n || t.props, + r = a.tabs, + i = a.isSelectedTest || ("number" == typeof e ? BL : UL); + return r.find((function(t, n) { + return i(e, t, n) + })) || r[0] + })), $a(w(t), "onSelect", (function(e, n) { + var a = t.props, + r = a.onSelect, + i = a.selected; + "function" == typeof r && r(e, n), void 0 === i && t.setState({ + selected: e + }) + })); + var n = t.props.selected || t.props.defaultSelected || t.props.tabs[0], + i = t.resolveSelected(n); + return t.state = { + selected: i + }, t } + return Ka(r, [{ + key: "UNSAFE_componentWillReceiveProps", + value: function(e) { + if (void 0 !== e.selected && e.selected !== this.state.selected) { + var t = this.resolveSelected(e.selected, e); + this.setState({ + selected: t + }) + } else if (e.tabs !== this.props.tabs) { + var n = this.resolveSelected(this.state.selected, e); + this.setState({ + selected: n + }) + } + } + }, { + key: "render", + value: function() { + var e = this.props, + t = e.components, + n = e.tabs, + a = e.testId, + r = e.isContentPersisted, + i = this.state.selected, + o = qL(qL({}, HL), t), + s = o.Content, + l = o.Item, + c = { + data: i, + elementProps: { + role: "tabpanel" + }, + isSelected: !0 + }; + return Lg("div", { + "data-testid": a, + css: DL + }, Lg(LL, { + component: l, + onSelect: this.onSelect, + selected: i, + tabs: n + }), r ? n.map((function(e, t) { + return Lg(s, z({ + key: t + }, { + data: e, + elementProps: { + role: "tabpanel" + }, + isSelected: e === i + })) + })) : Lg(s, c)) + } + }]), r + }(x.Component); $a(VL, "defaultProps", { + components: {}, + isContentPersisted: !1 + }); + var WL = QC("atlaskit"); + const YL = oA({ + componentName: "tabs", + packageName: OL.u2, + packageVersion: OL.i8 + })(uA({ + onSelect: WL({ + action: "clicked", + actionSubject: "tab", + attributes: { + componentName: "tabs", + packageName: OL.u2, + packageVersion: OL.i8 + } + }) + })(VL)), GL = $e("features/base/dialog"); - function UO() { - var e = Jf(["\n position: relative;\n"]); - return UO = function() { - return e - }, e + function KL() { + return KL = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, KL.apply(this, arguments) + } + class $L extends x.Component { + constructor(e) { + super(e), this.state = { + selectedTab: this.props.defaultTab || 0, + tabStates: this.props.tabs.map((e => e.props)) + }, this._onSubmit = this._onSubmit.bind(this), this._onTabSelected = this._onTabSelected.bind(this), this._onTabStateChange = this._onTabStateChange.bind(this) + } + render() { + const e = this.props.closeDialog; + return C().createElement(bL, { + disableBlanketClickDismiss: this.props.disableBlanketClickDismiss, + onCancel: e, + onSubmit: this._onSubmit, + titleKey: this.props.titleKey + }, C().createElement("div", { + className: this.props.cssClassName + }, this._renderTabs())) } - - function HO() { - var e = Jf(["\n flex-grow: 1;\n min-height: 0%; /* See min-height note */\n padding-left: ", "px;\n padding-right: ", "px;\n display: none;\n &[data-selected] {\n display: flex;\n }\n"]); - return HO = function() { - return e - }, e + _getTabProps(e) { + const { + tabs: t + } = this.props, { + tabStates: n + } = this.state, a = t[e], r = n[e]; + return a.propsUpdateFunction ? a.propsUpdateFunction(r, a.props) : { + ...r + } } - - function VO() { - var e = Jf(["\n display: flex;\n flex-basis: 100%;\n flex-direction: column;\n flex-grow: 1;\n max-width: 100%;\n min-height: 0%; /* See min-height note */\n"]); - return VO = function() { - return e - }, e + _onTabSelected(e, t) { + this.setState({ + selectedTab: t + }) } - var WO = Dg(VO()), - YO = Dg(HO(), 8, 8), - GO = Dg(UO()), - KO = Dg(BO()), - $O = function(e) { - var t = function(e) { - return RO[e] - }(e); - return Dg(FO(), t.labelColor, 4, 8, t.hoverLabelColor, t.activeLabelColor, 3, t.selectedColor, t.selectedColor) - }; - const JO = JSON.parse('{"u2":"@atlaskit/tabs","i8":"12.1.2"}'); - var ZO = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - return Jg(this, r), a.apply(this, arguments) - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this.props, - t = e.data, - n = e.elementProps, - a = e.isSelected; - return Tg("div", z({ - css: YO - }, n, { - "data-selected": a ? "true" : void 0 - }), t.content) - } - }]), r - }(E.Component); - Zf(ZO, "defaultProps", { - data: {}, - elementProps: {}, - isSelected: !1 - }); - const QO = function(e) { - var t = e.status, - n = e.mode; - return Tg("span", { - css: (0, E.useMemo)((function() { - return function(e) { - var t = function(e) { - return LO[e] - }(e); - return Dg(qO(), t.lineColor, "2px", "2px", 8, 8, t.selectedColor) - }(n) - }), [n]), - "data-selected": "selected" === t || void 0 - }) - }; - var XO = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - return Jg(this, r), a.apply(this, arguments) - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this.props, - t = e.data, - n = e.elementProps, - a = e.innerRef, - r = e.isSelected, - i = e.mode; - return Tg("div", z({ - css: $O(i) - }, n, { - ref: a, - "data-selected": !!r || void 0 - }), t.label, r && Tg(QO, { - status: "selected", - mode: i - })) - } - }]), r - }(E.Component); - Zf(XO, "defaultProps", { - data: {}, - elementProps: {}, - innerRef: function() {}, - isSelected: !1, - mode: "light" - }); - var eM = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "elementRefs", []), Zf(_(e), "tabKeyDownHandler", (function(t) { - if (["ArrowRight", "ArrowLeft"].includes(t.key)) { - var n = e.props, - a = n.selected, - r = n.tabs, - i = "ArrowRight" === t.key ? 1 : -1, - o = r.indexOf(a) + i; - o < 0 || o >= r.length || (e.onSelect(r[o], o), e.elementRefs[o].focus()) - } - })), Zf(_(e), "onSelect", (function(t, n) { - e.props.onSelect(t, n) - })), Zf(_(e), "tabMouseDownHandler", (function(e) { - return e.preventDefault() - })), e - } - return Qg(r, [{ - key: "UNSAFE_componentWillReceiveProps", - value: function(e) { - e.tabs !== this.props.tabs && (this.elementRefs = []) - } - }, { - key: "render", - value: function() { - var e = this, - t = this.props, - n = t.selected, - a = t.component, - r = t.tabs; - return Tg(Bg.Consumer, null, (function(t) { - var i = t.mode; - return Tg("div", { - css: GO - }, Tg(QO, { - status: "normal", - mode: i - }), Tg("div", { - role: "tablist", - css: KO - }, r.map((function(t, o) { - var s = t === n, - l = { - "aria-posinset": o + 1, - "aria-selected": s, - "aria-setsize": r.length, - "data-testid": t.testId, - onClick: function() { - return e.onSelect(t, o) - }, - onKeyDown: e.tabKeyDownHandler, - onMouseDown: e.tabMouseDownHandler, - role: "tab", - tabIndex: s ? 0 : -1 - }; - return Tg(a, z({ - key: o - }, { - elementProps: l, - innerRef: function(t) { - e.elementRefs[o] = t - }, - data: t, - isSelected: s, - mode: i - })) - })))) - })) - } - }]), r - }(E.Component); - - function tM(e, t) { - var n = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var a = Object.getOwnPropertySymbols(e); - t && (a = a.filter((function(t) { - return Object.getOwnPropertyDescriptor(e, t).enumerable - }))), n.push.apply(n, a) - } - return n - } - - function nM(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? tM(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : tM(Object(n)).forEach((function(t) { - Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) - })) - } - return e - } - var aM = function(e, t, n) { - return e === n - }, - rM = function(e, t) { - return e === t - }, - iM = { - Content: ZO, - Item: XO - }, - oM = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r(e) { - var t; - Jg(this, r), Zf(_(t = a.call(this, e)), "resolveSelected", (function(e, n) { - var a = n || t.props, - r = a.tabs, - i = a.isSelectedTest || ("number" == typeof e ? aM : rM); - return r.find((function(t, n) { - return i(e, t, n) - })) || r[0] - })), Zf(_(t), "onSelect", (function(e, n) { - var a = t.props, - r = a.onSelect, - i = a.selected; - "function" == typeof r && r(e, n), void 0 === i && t.setState({ - selected: e - }) - })); - var n = t.props.selected || t.props.defaultSelected || t.props.tabs[0], - i = t.resolveSelected(n); - return t.state = { - selected: i - }, t - } - return Qg(r, [{ - key: "UNSAFE_componentWillReceiveProps", - value: function(e) { - if (void 0 !== e.selected && e.selected !== this.state.selected) { - var t = this.resolveSelected(e.selected, e); - this.setState({ - selected: t - }) - } else if (e.tabs !== this.props.tabs) { - var n = this.resolveSelected(this.state.selected, e); - this.setState({ - selected: n - }) - } - } - }, { - key: "render", - value: function() { - var e = this.props, - t = e.components, - n = e.tabs, - a = e.testId, - r = e.isContentPersisted, - i = this.state.selected, - o = nM(nM({}, iM), t), - s = o.Content, - l = o.Item, - c = { - data: i, - elementProps: { - role: "tabpanel" - }, - isSelected: !0 - }; - return Tg("div", { - "data-testid": a, - css: WO - }, Tg(eM, { - component: l, - onSelect: this.onSelect, - selected: i, - tabs: n - }), r ? n.map((function(e, t) { - return Tg(s, z({ - key: t - }, { - data: e, - elementProps: { - role: "tabpanel" - }, - isSelected: e === i - })) - })) : Tg(s, c)) - } - }]), r - }(E.Component); - Zf(oM, "defaultProps", { - components: {}, - isContentPersisted: !1 - }); - var sM = xS("atlaskit"); - const lM = NS({ - componentName: "tabs", - packageName: JO.u2, - packageVersion: JO.i8 - })(FS({ - onSelect: sM({ - action: "clicked", - actionSubject: "tab", - attributes: { - componentName: "tabs", - packageName: JO.u2, - packageVersion: JO.i8 + _renderTabs() { + const { + t: e, + tabs: t + } = this.props; + return 1 === t.length ? this._renderTab({ + ...t[0], + tabId: 0 + }) : t.length > 1 ? C().createElement(YL, { + onSelect: this._onTabSelected, + selected: this.state.selectedTab, + tabs: t.map(((t, n) => { + let { + component: a, + label: r, + styles: i + } = t; + return { + content: this._renderTab({ + component: a, + styles: i, + tabId: n + }), + label: e(r) } - }) - })(oM)), - cM = Je("features/base/dialog"); - - function uM() { - return uM = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, uM.apply(this, arguments) - } - - function dM(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - pM(e, t, n[t]) })) - } - return e + }) : (GL.warn("No settings tabs configured to display."), null) } - - function pM(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _renderTab(e) { + let { + component: t, + styles: n, + tabId: a + } = e; + const { + closeDialog: r + } = this.props, i = t; + return C().createElement("div", { + className: n + }, C().createElement(i, KL({ + closeDialog: r, + mountCallback: this.props.tabs[a].onMount, + onTabStateChange: this._onTabStateChange, + tabId: a + }, this._getTabProps(a)))) + } + _onTabStateChange(e, t) { + const n = [...this.state.tabStates]; + n[e] = t, this.setState({ + tabStates: n + }) } - class hM extends E.Component { - constructor(e) { - super(e), this.state = { - selectedTab: this.props.defaultTab || 0, - tabStates: this.props.tabs.map((e => e.props)) - }, this._onSubmit = this._onSubmit.bind(this), this._onTabSelected = this._onTabSelected.bind(this), this._onTabStateChange = this._onTabStateChange.bind(this) - } - render() { - const e = this.props.closeDialog; - return x().createElement(OO, { - disableBlanketClickDismiss: this.props.disableBlanketClickDismiss, - onCancel: e, - onSubmit: this._onSubmit, - titleKey: this.props.titleKey - }, x().createElement("div", { - className: this.props.cssClassName - }, this._renderTabs())) - } - _getTabProps(e) { - const { - tabs: t - } = this.props, { - tabStates: n - } = this.state, a = t[e], r = n[e]; - return a.propsUpdateFunction ? a.propsUpdateFunction(r, a.props) : dM({}, r) - } - _onTabSelected(e, t) { - this.setState({ - selectedTab: t - }) - } - _renderTabs() { - const { - t: e, - tabs: t - } = this.props; - return 1 === t.length ? this._renderTab(dM({}, t[0], { - tabId: 0 - })) : t.length > 1 ? x().createElement(lM, { - onSelect: this._onTabSelected, - selected: this.state.selectedTab, - tabs: t.map((({ - component: t, - label: n, - styles: a - }, r) => ({ - content: this._renderTab({ - component: t, - styles: a, - tabId: r - }), - label: e(n) - }))) - }) : (cM.warn("No settings tabs configured to display."), null) - } - _renderTab({ - component: e, - styles: t, - tabId: n - }) { - const { - closeDialog: a - } = this.props, r = e; - return x().createElement("div", { - className: t - }, x().createElement(r, uM({ - closeDialog: a, - mountCallback: this.props.tabs[n].onMount, - onTabStateChange: this._onTabStateChange, - tabId: n - }, this._getTabProps(n)))) - } - _onTabStateChange(e, t) { - const n = [...this.state.tabStates]; - n[e] = t, this.setState({ - tabStates: n - }) - } - _onSubmit() { - const { - onSubmit: e, - tabs: t - } = this.props; - t.forEach((({ - submit: e - }, t) => { - e && e(this.state.tabStates[t]) - })), e() - } + _onSubmit() { + const { + onSubmit: e, + tabs: t + } = this.props; + t.forEach(((e, t) => { + let { + submit: n + } = e; + n && n(this.state.tabStates[t]) + })), e() } - const mM = Li(hM); - class fM extends E.PureComponent { - constructor(e) { - super(e), this._onSubmitValue = this._onSubmitValue.bind(this) - } - _onSubmitValue() { - Sn("https://jaas.8x8.vc/#/plan/upgrade", !0) - } - render() { - const { - t: e - } = this.props; - return x().createElement(IO, { - hideCancelButton: !0, - okKey: e("dialog.viewUpgradeOptions"), - onSubmit: this._onSubmitValue, - titleKey: e("dialog.viewUpgradeOptionsTitle"), - width: "small" - }, x().createElement("span", null, e("dialog.viewUpgradeOptionsContent"))) - } + } + const JL = Ei($L); class ZL extends x.PureComponent { + constructor(e) { + super(e), this._onSubmitValue = this._onSubmitValue.bind(this) } - const gM = Li(fM); - - function bM(e) { - return function(t, n) { - return !! function(e, t) { - return e["features/jaas"].disabledFeatures.includes(t) - }(n(), e) && (t(sP(gM)), !0) - } + _onSubmitValue() { + vn("https://jaas.8x8.vc/#/plan/upgrade", !0) } - class yM extends Vw { - async _handleClick() { - const { - _requestingSubtitles: e, - dispatch: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("transcribing.ccButton", { - requesting_subtitles: Boolean(e) - })), await t(bM(Mj)) || t(Ba())) - } - _isDisabled() { - return !1 - } - _isToggled() { - return this.props._requestingSubtitles - } + render() { + const { + t: e + } = this.props; + return C().createElement(yL, { + hideCancelButton: !0, + okKey: e("dialog.viewUpgradeOptions"), + onSubmit: this._onSubmitValue, + titleKey: e("dialog.viewUpgradeOptionsTitle"), + width: "small" + }, C().createElement("span", null, e("dialog.viewUpgradeOptionsContent"))) } + } + const QL = Ei(ZL); - function vM(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function XL(e) { + return function(t, n) { + return !! function(e, t) { + return e["features/jaas"].disabledFeatures.includes(t) + }(n(), e) && (t(VI(QL)), !0) } - const kM = Li(ze((function(e, t) { - const { - _requestingSubtitles: n - } = e["features/subtitles"], { - transcribingEnabled: a - } = e["features/base/config"], { - isTranscribing: r - } = e["features/transcribing"], { - visible: i = Boolean(a && (Jh(e) || r)) - } = t; - return { - _requestingSubtitles: n, - visible: i - } - }))(class extends yM { - constructor(...e) { - super(...e), vM(this, "accessibilityLabel", "toolbar.accessibilityLabel.cc"), vM(this, "icon", Kl), vM(this, "tooltip", "transcribing.ccButtonTooltip"), vM(this, "label", "toolbar.startSubtitles"), vM(this, "toggledLabel", "toolbar.stopSubtitles") - } - })), - _M = "NOTIFY_CAMERA_ERROR", - wM = "NOTIFY_MIC_ERROR", - SM = "SET_AUDIO_INPUT_DEVICE", - EM = "SET_VIDEO_INPUT_DEVICE", - xM = "UPDATE_DEVICE_LIST", - CM = "ADD_PENDING_DEVICE_REQUEST", - AM = "REMOVE_PENDING_DEVICE_REQUESTS", - jM = "CHECK_AND_NOTIFY_FOR_NEW_DEVICE", - PM = "DEVICE_PERMISSIONS_CHANGED", - DM = Je("features/base/devices"), - TM = { - audioinput: "audioInput", - audiooutput: "audioOutput", - videoinput: "videoInput" - }; - - function OM(e) { - if (APP.conference._localTracksInitialized) return !0; - for (const t of ["audioInput", "audioOutput", "videoInput"]) - if ((e["features/base/devices"].availableDevices[t] || []).find((e => Boolean(e.label)))) return !0; - return !1 + } + class eF extends bC { + async _handleClick() { + const { + _requestingSubtitles: e, + dispatch: t, + handleClick: n + } = this.props; + n ? n() : (Da(ln("transcribing.ccButton", { + requesting_subtitles: Boolean(e) + })), await t(XL(iM)) || t(La())) } - - function MM() { - return c.default.mediaDevices.getAudioOutputDevice() + _isDisabled() { + return !1 } - - function IM(e, t) { - const n = TM[t] || t, - a = (e["features/base/devices"].availableDevices[n] || []).find((e => "default" === e.deviceId)), - r = (e["features/base/devices"].availableDevices[n] || []).find((e => "default" !== e.deviceId && e.groupId === a.groupId)); - if (r) return r.deviceId + _isToggled() { + return this.props._requestingSubtitles } + } - function NM(e, t, n) { - const a = TM[n] || n, - r = (e["features/base/devices"].availableDevices[a] || []).find((e => e.label === t)); - if (r) return r.deviceId - } + function tF(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const nF = Ei(Ne((function(e, t) { + const { + _requestingSubtitles: n + } = e["features/subtitles"], { + transcribingEnabled: a + } = e["features/base/config"], { + isTranscribing: r + } = e["features/transcribing"], { + visible: i = Boolean(a && (tm(e) || r)) + } = t; + return { + _requestingSubtitles: n, + visible: i + } + }))(class extends eF { + constructor() { + super(...arguments), tF(this, "accessibilityLabel", "toolbar.accessibilityLabel.cc"), tF(this, "icon", ks), tF(this, "tooltip", "transcribing.ccButtonTooltip"), tF(this, "label", "toolbar.startSubtitles"), tF(this, "toggledLabel", "toolbar.stopSubtitles") + } + })), aF = JSON.parse('{"en":"en-US","af":"af-ZA","ar":"ar-EG","bg":"bg-BG","ca":"ca-ES","cs":"cs-CZ","da":"da-DK","de":"de-DE","el":"el-GR","enGB":"en-GB","es":"es-ES","esUS":"es-US","et":"et-EE","eu":"eu-ES","fi":"fi-FI","fr":"fr-FR","frCA":"fr-CA","he":"iw-IL","hi":"hi-IN","mr":"mr-IN","hr":"hr-HR","hu":"hu-HU","hy":"hy-AM","id":"id-ID","it":"it-IT","ja":"ja-JP","ko":"ko-KR","lt":"lt-LT","ml":"ml-IN","lv":"lv-LV","nl":"nl-NL","fa":"fa-IR","pl":"pl-PL","pt":"pt-PT","ptBR":"pt-BR","ru":"ru-RU","ro":"ro-RO","sk":"sk-SK","sl":"sl-SL","sr":"sr-RS","sq":"sq-AL","sv":"sv-SE","te":"te-IN","th":"th-TH","tr":"tr-TR","uk":"uk-UA","vi":"vi-VN","zhCN":"zh","zhTW":"zh-TW"}'), rF = $e("features/transcribing"), iF = JSON.parse('{"af-ZA":"Afrikaans (South Africa)","id-ID":"Indonesian (Indonesia)","ms-MY":"Malay (Malaysia)","ca-ES":"Catalan (Spain)","cs-CZ":"Czech (Czech Republic)","da-DK":"Danish (Denmark)","de-DE":"German (Germany)","en-AU":"English (Australia)","en-CA":"English (Canada)","en-GB":"English (United Kingdom)","en-IN":"English (India)","en-IE":"English (Ireland)","en-NZ":"English (New Zealand)","en-PH":"English (Philippines)","en-ZA":"English (South Africa)","en-US":"English (United States)","es-AR":"Spanish (Argentina)","es-BO":"Spanish (Bolivia)","es-CL":"Spanish (Chile)","es-CO":"Spanish (Colombia)","es-CR":"Spanish (Costa Rica)","es-EC":"Spanish (Ecuador)","es-SV":"Spanish (El Salvador)","es-ES":"Spanish (Spain)","es-US":"Spanish (United States)","es-GT":"Spanish (Guatemala)","es-HN":"Spanish (Honduras)","es-MX":"Spanish (Mexico)","es-NI":"Spanish (Nicaragua)","es-PA":"Spanish (Panama)","es-PY":"Spanish (Paraguay)","es-PE":"Spanish (Peru)","es-PR":"Spanish (Puerto Rico)","es-DO":"Spanish (Dominican Republic)","es-UY":"Spanish (Uruguay)","es-VE":"Spanish (Venezuela)","eu-ES":"Basque (Spain)","fil-PH":"Filipino (Philippines)","fr-CA":"French (Canada)","fr-FR":"French (France)","gl-ES":"Galician (Spain)","hr-HR":"Croatian (Croatia)","zu-ZA":"Zulu (South Africa)","is-IS":"Icelandic (Iceland)","it-IT":"Italian (Italy)","lt-LT":"Lithuanian (Lithuania)","hu-HU":"Hungarian (Hungary)","nl-NL":"Dutch (Netherlands)","no-NO":"Norwegian Bokmål (Norway)","pl-PL":"Polish (Poland)","pt-BR":"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)","ro-RO":"Romanian (Romania)","sk-SK":"Slovak (Slovakia)","sl-SI":"Slovenian (Slovenia)","fi-FI":"Finnish (Finland)","sv-SE":"Swedish (Sweden)","vi-VN":"Vietnamese (Vietnam)","tr-TR":"Turkish (Turkey)","el-GR":"Greek (Greece)","bg-BG":"Bulgarian (Bulgaria)","ru-RU":"Russian (Russia)","sr-RS":"Serbian (Serbia)","uk-UA":"Ukrainian (Ukraine)","iw-IL":"Hebrew","ar-IL":"Arabic (Israel)","ar-JO":"Arabic (Jordan)","ar-AE":"Arabic (United Arab Emirates)","ar-BH":"Arabic (Bahrain)","ar-DZ":"Arabic (Algeria)","ar-SA":"Arabic (Saudi Arabia)","ar-IQ":"Arabic (Iraq)","ar-KW":"Arabic (Kuwait)","ar-MA":"Arabic (Morocco)","ar-TN":"Arabic (Tunisia)","ar-OM":"Arabic (Oman)","ar-PS":"Arabic (State of Palestine)","ar-QA":"Arabic (Qatar)","ar-LB":"Arabic (Lebanon)","ar-EG":"Arabic (Egypt)","fa-IR":"Persian (Iran)","hi-IN":"Hindi (India)","th-TH":"Thai (Thailand)","ko-KR":"Korean (South Korea)","zh-TW":"Chinese Mandarin (Traditional, Taiwan)","ja-JP":"Japanese (Japan)","zh":"Chinese Mandarin (Simplified, China)"}'), oF = "avatar-url", sF = "email", lF = Symbol("url"), cF = ["The meeting has been terminated"], uF = $e("features/base/conference"), dF = e => e["features/base/conference"]; + + function pF(e, t) { + const n = e.getLocalTracks(), + a = []; + for (const r of t) - 1 === n.indexOf(r) && a.push(e.addTrack(r).catch((e => { + EF("Failed to add local track to conference", e) + }))); + return Promise.all(a) + } - function zM(e, t, n) { - const a = TM[n] || n, - r = (e["features/base/devices"].availableDevices[a] || []).find((e => e.deviceId === t)); - if (r) return r.label + function hF(e, t, n) { + let { + dispatch: a + } = e; + const r = n.getId(), + i = n.getDisplayName(); + if (n.isHidden()) a(function(e, t) { + return { + type: Ww, + id: e, + displayName: t + } + }(r, i)); + else { + const e = n.isReplacing && n.isReplacing(); + a(nS({ + botType: n.getBotType(), + connectionStatus: n.getConnectionStatus(), + conference: t, + id: r, + name: i, + presence: n.getStatus(), + role: n.getRole(), + isReplacing: e + })) } + } - function RM(e) { + function mF(e, t, n) { + let { + dispatch: a + } = e; + const r = n.getId(); + n.isHidden() ? a(function(e) { return { - audioInput: e.filter((e => "audioinput" === e.kind)), - audioOutput: e.filter((e => "audiooutput" === e.kind)), - videoInput: e.filter((e => "videoinput" === e.kind)) + type: Yw, + id: e } - } + }(r)) : a(rS(r, t, n.isReplaced && n.isReplaced())) + } - function LM(e) { - let t = e; - const n = t.lastIndexOf("("); - return -1 !== n && (t = t.substr(0, n)), t - } + function fF(e, t) { + const n = dF(Fe(e)); + for (const e of Object.values(n)) + if (e && "object" == typeof e) { + const n = e[lF]; + if ((n || "function" == typeof e.myUserId) && !t(e, n)) return !1 + } return !0 + } - function FM(e) { - return e["features/base/devices"].availableDevices.audioInput.map((({ - deviceId: e, - label: t - }) => ({ - deviceId: e, - label: t - }))) - } + function gF(e) { + const t = Fe(e), + { + callee: n + } = t["features/base/jwt"], + { + callDisplayName: a + } = t["features/base/config"], + { + pendingSubjectChange: r, + room: i, + subject: o + } = dF(t); + return r || o || a || n && n.name || CF(Dn(i)) + } - function qM(e) { - return e["features/base/devices"].availableDevices.audioOutput.map((({ - deviceId: e, - label: t - }) => ({ - deviceId: e, - label: t - }))) - } + function bF(e) { + const t = Fe(e), + n = t["features/base/config"], + { + locationURL: a + } = t["features/base/connection"], + { + tenant: r + } = t["features/base/jwt"], + { + email: i, + name: o + } = Uh(t), + s = { + ...n + }; + var l, c, u, d; + return r && (s.siteID = r), s.enableDisplayNameInStats && o && (s.statisticsDisplayName = o), s.enableEmailInStats && i && (s.statisticsId = i), a && (s.confID = `${a.host}${l=a.pathname,l?l.split("/").map(Sn).join("/"):l}`), s.applicationName = ha(), s.transcriptionLanguage = function(e) { + const { + preferredTranscribeLanguage: t, + transcribeWithAppLanguage: n = !0, + transcribingEnabled: a + } = e; + if (!a) return; + const r = n ? aF[Qr.language] : t; + let i = iF[r] && r; + return i || (i = "en-US", rF.warn(`Transcriber language ${r} is not supported, using default en-US`)), rF.info(`Transcriber language set to ${i}`), i + }(s), s.disableThirdPartyRequests ? (null === (c = n.analytics) || void 0 === c || delete c.scriptURLs, null === (u = n.analytics) || void 0 === u || delete u.amplitudeAPPKey, null === (d = n.analytics) || void 0 === d || delete d.googleAnalyticsTrackingId, delete s.callStatsID, delete s.callStatsSecret) : s.getWiFiStatsMethod = _F, s + } - function BM(e) { - return e["features/base/devices"].availableDevices.videoInput.map((({ - deviceId: e - }) => e)) - } + function yF(e) { + const t = Fe(e), + { + conferenceTimestamp: n + } = dF(t); + return n + } - function UM(e, t) { - return void 0 === e["features/base/devices"] || e["features/base/devices"].availableDevices[t].length > 0 - } + function vF(e) { + const { + conference: t, + joining: n, + leaving: a, + membersOnly: r, + passwordRequired: i + } = dF(Fe(e)); + return t ? t === a ? void 0 : t : n || i || r + } - function HM(e = "default", t, n = !1, a) { - return DM.debug(`setAudioOutputDevice: ${String(a)}[${e}]`), c.default.mediaDevices.isDeviceChangeAvailable("output") ? c.default.mediaDevices.setAudioOutputDevice(e).then((() => { - const r = { - audioOutputDeviceId: e, - userSelectedAudioOutputDeviceId: void 0, - userSelectedAudioOutputDeviceLabel: void 0 - }; - return n ? (r.userSelectedAudioOutputDeviceId = e, r.userSelectedAudioOutputDeviceLabel = a) : (delete r.userSelectedAudioOutputDeviceId, delete r.userSelectedAudioOutputDeviceLabel), t(bn(r)) - })) : (DM.warn("Adjusting audio output is not supported"), Promise.resolve()) - } - const VM = { - audioInput: { - currentDeviceId: "micDeviceId", - userSelectedDeviceId: "userSelectedMicDeviceId", - userSelectedDeviceLabel: "userSelectedMicDeviceLabel" - }, - audioOutput: { - currentDeviceId: "audioOutputDeviceId", - userSelectedDeviceId: "userSelectedAudioOutputDeviceId", - userSelectedDeviceLabel: "userSelectedAudioOutputDeviceLabel" - }, - videoInput: { - currentDeviceId: "audioOutputDeviceId", - userSelectedDeviceId: "userSelectedCameraDeviceId", - userSelectedDeviceLabel: "userSelectedCameraDeviceLabel" - } - }; + function kF(e) { + return dF(e).room + } - function WM(e) { - return { - type: CM, - request: e - } - } + function _F() { + const e = Dt(); + return e.getWiFiStats ? e.getWiFiStats() : Promise.resolve("{}") + } - function YM() { - return e => new Promise((t => { - const { - mediaDevices: n - } = c.default; - n.isDeviceListAvailable() && n.isDeviceChangeAvailable() ? n.enumerateDevices((n => { - e(eI(n)), t(n) - })) : t([]) - })) - } + function wF(e) { + if ("Data channels support is disabled!" !== e.message) throw e + } - function GM(e) { - return { - type: _M, - error: e - } - } + function SF(e) { + return "string" == typeof e && "" !== e + } - function KM(e) { - return { - type: wM, - error: e - } - } + function EF(e, t) { + uF.error(e, t) + } - function $M(e) { - return { - type: SM, - deviceId: e - } - } + function xF(e, t) { + const { + avatarURL: n, + email: a, + features: r, + name: i + } = Uh(e); + n && t.sendCommand(oF, { + value: n + }), a && t.sendCommand(sF, { + value: a + }), r && "true" === r["screen-sharing"] && t.setLocalParticipantProperty("features_screen-sharing", !0), t.setDisplayName(i) + } - function JM(e) { - return function(t, n) { - const a = zM(n(), e, "audioInput"); - t($M(e)), t(bn({ - userSelectedMicDeviceId: e, - userSelectedMicDeviceLabel: a - })) - } + function CF() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""; + return _().words(`${e}`.replace(/['\u2019]/g, "")).reduce(((e, t, n) => e + (n ? " " : "") + _().upperFirst(t)), "") + } + const AF = "CONNECTION_DISCONNECTED", TF = "CONNECTION_ESTABLISHED", DF = "CONNECTION_FAILED", PF = "CONNECTION_WILL_CONNECT", jF = "SET_LOCATION_URL", MF = "SHOW_CONNECTION_INFO", IF = Symbol("conference"), OF = (Symbol("url"), $e("features/base/connection")); + + function NF() { + return (e, t) => { + const n = Sn(t()["features/base/conference"].room); + return e(((e, t) => { + const n = function(e) { + const t = It(e["features/base/connection"].locationURL), + n = t["devices.audioOutput"], + a = t["devices.videoInput"], + r = t["devices.audioInput"]; + if (!n && !a && !r) return; + const i = {}; + return n && (i.audioOutput = n), a && (i.videoInput = a), r && (i.audioInput = r), i + }(t()); + let a; + return a = n ? e(eI()).then((() => { + const a = t(); + if (!qM(a)) return void Object.keys(n).forEach((t => { + e(XM({ + type: "devices", + name: "setDevice", + device: { + kind: t.toLowerCase(), + label: n[t] + }, + responseCallback() {} + })) + })); + const r = {}; + Object.keys(n).forEach((e => { + const t = n[e], + i = HM(a, t, e); + if (i) { + const n = QM[e]; + r[n.currentDeviceId] = i, r[n.userSelectedDeviceId] = i, r[n.userSelectedDeviceLabel] = t + } + })), e(hn(r)) + })) : Promise.resolve(), a.then((() => ZM(ra(t()), e).catch((e => LM.warn(`Failed to set audio output device.\n Default audio output device will be used instead ${e}`))))) + })).then((() => APP.conference.init({ + roomName: n + }).catch((e => { + APP.API.notifyConferenceLeft(APP.conference.roomName), OF.error(e) + })))) } + } - function ZM(e) { - return function(t, n) { - const a = zM(n(), e, "audioOutput"); - return HM(e, t, !0, a) - } - } + function RF() { + let e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; + return () => APP.conference.hangup(e) + } - function QM(e) { - return { - type: EM, - deviceId: e - } - } + function zF(e) { + const t = Fe(e); + let n = t instanceof URL ? t : t["features/base/connection"].locationURL; + if (n || (n = t["features/base/config"].locationURL), !n) throw new Error("Can not get invite URL - the app is not ready"); + const { + inviteDomain: a + } = t["features/dynamic-branding"], r = LF(n); + return a ? `${a}/${t["features/base/config"].brandingRoomAlias||r.pathname.replace(/\//,"")}` : r.href + } - function XM(e) { - return function(t, n) { - const a = zM(n(), e, "videoInput"); - t(QM(e)), t(bn({ - userSelectedCameraDeviceId: e, - userSelectedCameraDeviceLabel: a - })) - } + function LF(e) { + const { + hash: t, + search: n + } = e; + if (t && t.length > 1 || n && n.length > 1) { + (e = new URL(e.href)).hash = "", e.search = ""; + let { + href: t + } = e; + t && (t.endsWith("#") && (t = t.substring(0, t.length - 1)), t.endsWith("?") && (t = t.substring(0, t.length - 1)), e.href === t || (e = new URL(t))) } + return e + } - function eI(e) { - return { - type: xM, - devices: e - } - } + function FF(e) { + const t = LF(e).href; + return t ? t.toLowerCase() : "" + } - function tI(e, t) { - return { - type: jM, - newDevices: e, - oldDevices: t + function qF(e, t) { + let { + authdomain: n, + domain: a + } = t; + return e.indexOf("@") >= 0 ? e : `${e}@${n||a}` + } + const BF = "AUTH_STATUS_CHANGED", UF = "CONFERENCE_FAILED", HF = "CONFERENCE_JOINED", VF = "CONFERENCE_LEFT", WF = "CONFERENCE_SUBJECT_CHANGED", YF = "CONFERENCE_TIMESTAMP_CHANGED", GF = "CONFERENCE_UNIQUE_ID_SET", KF = "CONFERENCE_WILL_JOIN", $F = "CONFERENCE_WILL_LEAVE", JF = "DATA_CHANNEL_OPENED", ZF = "KICKED_OUT", QF = "LOCK_STATE_CHANGED", XF = "P2P_STATUS_CHANGED", eq = "SEND_TONES", tq = "SET_FOLLOW_ME", nq = "SET_START_REACTIONS_MUTED", aq = "SET_PASSWORD", rq = "SET_PASSWORD_FAILED", iq = "SET_PENDING_SUBJECT_CHANGE", oq = "SET_ROOM", sq = "SET_START_MUTED_POLICY"; + + function lq(e, t) { + for (var n = arguments.length, a = new Array(n > 2 ? n - 2 : 0), r = 2; r < n; r++) a[r - 2] = arguments[r]; + return { + type: UF, + conference: e, + error: { + name: t, + params: a, + recoverable: void 0 } } - const nI = JSON.parse('{"en":"en-US","af":"af-ZA","ar":"ar-EG","bg":"bg-BG","ca":"ca-ES","cs":"cs-CZ","da":"da-DK","de":"de-DE","el":"el-GR","enGB":"en-GB","es":"es-ES","esUS":"es-US","et":"et-EE","eu":"eu-ES","fi":"fi-FI","fr":"fr-FR","frCA":"fr-CA","he":"iw-IL","hi":"hi-IN","mr":"mr-IN","hr":"hr-HR","hu":"hu-HU","hy":"hy-AM","id":"id-ID","it":"it-IT","ja":"ja-JP","ko":"ko-KR","lt":"lt-LT","ml":"ml-IN","lv":"lv-LV","nl":"nl-NL","fa":"fa-IR","pl":"pl-PL","pt":"pt-PT","ptBR":"pt-BR","ru":"ru-RU","ro":"ro-RO","sk":"sk-SK","sl":"sl-SL","sr":"sr-RS","sq":"sq-AL","sv":"sv-SE","te":"te-IN","th":"th-TH","tr":"tr-TR","uk":"uk-UA","vi":"vi-VN","zhCN":"zh","zhTW":"zh-TW"}'), - aI = Je("features/transcribing"), - rI = JSON.parse('{"af-ZA":"Afrikaans (South Africa)","id-ID":"Indonesian (Indonesia)","ms-MY":"Malay (Malaysia)","ca-ES":"Catalan (Spain)","cs-CZ":"Czech (Czech Republic)","da-DK":"Danish (Denmark)","de-DE":"German (Germany)","en-AU":"English (Australia)","en-CA":"English (Canada)","en-GB":"English (United Kingdom)","en-IN":"English (India)","en-IE":"English (Ireland)","en-NZ":"English (New Zealand)","en-PH":"English (Philippines)","en-ZA":"English (South Africa)","en-US":"English (United States)","es-AR":"Spanish (Argentina)","es-BO":"Spanish (Bolivia)","es-CL":"Spanish (Chile)","es-CO":"Spanish (Colombia)","es-CR":"Spanish (Costa Rica)","es-EC":"Spanish (Ecuador)","es-SV":"Spanish (El Salvador)","es-ES":"Spanish (Spain)","es-US":"Spanish (United States)","es-GT":"Spanish (Guatemala)","es-HN":"Spanish (Honduras)","es-MX":"Spanish (Mexico)","es-NI":"Spanish (Nicaragua)","es-PA":"Spanish (Panama)","es-PY":"Spanish (Paraguay)","es-PE":"Spanish (Peru)","es-PR":"Spanish (Puerto Rico)","es-DO":"Spanish (Dominican Republic)","es-UY":"Spanish (Uruguay)","es-VE":"Spanish (Venezuela)","eu-ES":"Basque (Spain)","fil-PH":"Filipino (Philippines)","fr-CA":"French (Canada)","fr-FR":"French (France)","gl-ES":"Galician (Spain)","hr-HR":"Croatian (Croatia)","zu-ZA":"Zulu (South Africa)","is-IS":"Icelandic (Iceland)","it-IT":"Italian (Italy)","lt-LT":"Lithuanian (Lithuania)","hu-HU":"Hungarian (Hungary)","nl-NL":"Dutch (Netherlands)","no-NO":"Norwegian Bokmål (Norway)","pl-PL":"Polish (Poland)","pt-BR":"Portuguese (Brazil)","pt-PT":"Portuguese (Portugal)","ro-RO":"Romanian (Romania)","sk-SK":"Slovak (Slovakia)","sl-SI":"Slovenian (Slovenia)","fi-FI":"Finnish (Finland)","sv-SE":"Swedish (Sweden)","vi-VN":"Vietnamese (Vietnam)","tr-TR":"Turkish (Turkey)","el-GR":"Greek (Greece)","bg-BG":"Bulgarian (Bulgaria)","ru-RU":"Russian (Russia)","sr-RS":"Serbian (Serbia)","uk-UA":"Ukrainian (Ukraine)","iw-IL":"Hebrew","ar-IL":"Arabic (Israel)","ar-JO":"Arabic (Jordan)","ar-AE":"Arabic (United Arab Emirates)","ar-BH":"Arabic (Bahrain)","ar-DZ":"Arabic (Algeria)","ar-SA":"Arabic (Saudi Arabia)","ar-IQ":"Arabic (Iraq)","ar-KW":"Arabic (Kuwait)","ar-MA":"Arabic (Morocco)","ar-TN":"Arabic (Tunisia)","ar-OM":"Arabic (Oman)","ar-PS":"Arabic (State of Palestine)","ar-QA":"Arabic (Qatar)","ar-LB":"Arabic (Lebanon)","ar-EG":"Arabic (Egypt)","fa-IR":"Persian (Iran)","hi-IN":"Hindi (India)","th-TH":"Thai (Thailand)","ko-KR":"Korean (South Korea)","zh-TW":"Chinese Mandarin (Traditional, Taiwan)","ja-JP":"Japanese (Japan)","zh":"Chinese Mandarin (Simplified, China)"}'), - iI = "avatar-url", - oI = "email", - sI = Symbol("url"), - lI = Je("features/base/conference"); + } - function cI(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function cq(e) { + return { + type: HF, + conference: e } - const uI = e => e["features/base/conference"]; + } - function dI(e, t) { - const n = e.getLocalTracks(), - a = []; - for (const r of t) - 1 === n.indexOf(r) && a.push(e.addTrack(r).catch((e => { - SI("Failed to add local track to conference", e) - }))); - return Promise.all(a) + function uq(e) { + return { + type: VF, + conference: e } + } - function pI({ - dispatch: e - }, t, n) { - const a = n.getId(), - r = n.getDisplayName(); - if (n.isHidden()) e(function(e, t) { - return { - type: Wv, - id: e, - displayName: t - } - }(a, r)); - else { - const i = n.isReplacing && n.isReplacing(); - e(ak({ - botType: n.getBotType(), - connectionStatus: n.getConnectionStatus(), - conference: t, - id: a, - name: r, - presence: n.getStatus(), - role: n.getRole(), - isReplacing: i - })) - } + function dq(e) { + return { + type: WF, + subject: e } + } - function hI({ - dispatch: e - }, t, n) { - const a = n.getId(); - n.isHidden() ? e(function(e) { - return { - type: Yv, - id: e - } - }(a)) : e(ik(a, t, n.isReplaced && n.isReplaced())) + function pq(e) { + return { + type: YF, + conferenceTimestamp: e } + } - function mI(e, t) { - const n = uI(qe(e)); - for (const e of Object.values(n)) - if (e && "object" == typeof e) { - const n = e[sI]; - if ((n || "function" == typeof e.myUserId) && !t(e, n)) return !1 - } return !0 + function hq(e) { + return { + type: GF, + conference: e } + } - function fI(e) { - const t = qe(e), - { - callee: n - } = t["features/base/jwt"], - { - callDisplayName: a - } = t["features/base/config"], - { - pendingSubjectChange: r, - room: i, - subject: o - } = uI(t); - return r || o || a || n && n.name || xI(Mn(i)) + function mq(e) { + return (t, n) => { + const a = th(n()["features/base/tracks"]).map((e => e.jitsiTrack)); + a.length && pF(e, a), t(fq(e)) } + } - function gI(e) { - const t = qe(e), - n = t["features/base/config"], - { - locationURL: a - } = t["features/base/connection"], - { - tenant: r - } = t["features/base/jwt"], - { - email: i, - name: o - } = Rh(t), - s = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - cI(e, t, n[t]) - })) - } - return e - }({}, n); - var l, c, u, d; - return r && (s.siteID = r), s.enableDisplayNameInStats && o && (s.statisticsDisplayName = o), s.enableEmailInStats && i && (s.statisticsId = i), a && (s.confID = `${a.host}${l=a.pathname,l?l.split("/").map(An).join("/"):l}`), s.applicationName = ba(), s.transcriptionLanguage = function(e) { - const { - preferredTranscribeLanguage: t, - transcribeWithAppLanguage: n = !0, - transcribingEnabled: a - } = e; - if (!a) return; - const r = n ? nI[li.language] : t; - let i = rI[r] && r; - return i || (i = "en-US", aI.warn(`Transcriber language ${r} is not supported, using default en-US`)), aI.info(`Transcriber language set to ${i}`), i - }(s), s.disableThirdPartyRequests ? (null === (c = n.analytics) || void 0 === c || delete c.scriptURLs, null === (u = n.analytics) || void 0 === u || delete u.amplitudeAPPKey, null === (d = n.analytics) || void 0 === d || delete d.googleAnalyticsTrackingId, delete s.callStatsID, delete s.callStatsSecret) : s.getWiFiStatsMethod = kI, s + function fq(e) { + return { + type: KF, + conference: e } + } - function bI(e) { - const t = qe(e), - { - conferenceTimestamp: n - } = uI(t); - return n + function gq(e) { + return { + type: $F, + conference: e } + } - function yI(e) { + function bq(e) { + return (t, n) => { + const a = n(), + { + connection: r, + locationURL: i + } = a["features/base/connection"]; + if (!r) throw new Error("Cannot create a conference without a connection!"); const { - conference: t, - joining: n, - leaving: a, - membersOnly: r, - passwordRequired: i - } = uI(qe(e)); - return t ? t === a ? void 0 : t : n || i || r - } - - function vI(e) { - return uI(e).room - } - - function kI() { - const e = It(); - return e.getWiFiStats ? e.getWiFiStats() : Promise.resolve("{}") + password: o, + room: s + } = a["features/base/conference"]; + if (!s) throw new Error("Cannot join a conference without a room name!"); + const l = e || s; + let c = Sn(l); + l.domain && (c = new String(l), c.domain = l.domain); + const u = r.initJitsiConference(c, bF(a)); + r[IF] = u, u[lF] = i, t(mq(u)), + function(e, t, n) { + e.on(ht.CONFERENCE_ERROR, (e => uF.error("Conference error.", e))), e.on(ht.CONFERENCE_FAILED, (function() { + for (var n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + return t(lq(e, ...a)) + })), e.on(ht.CONFERENCE_JOINED, (function() { + for (var n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + return t(cq(e, ...a)) + })), e.on(ht.CONFERENCE_LEFT, (function() { + t(pq(0)); + for (var n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + t(uq(e, ...a)) + })), e.on(ht.SUBJECT_CHANGED, (function() { + return t(dq(...arguments)) + })), e.on(ht.CONFERENCE_CREATED_TIMESTAMP, (function() { + return t(pq(...arguments)) + })), e.on(ht.KICKED, (function() { + for (var n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + return t(yq(e, ...a)) + })), e.on(ht.PARTICIPANT_KICKED, ((e, n) => t(cS(e, n)))), e.on(ht.LOCK_STATE_CHANGED, (function() { + for (var n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + return t(vq(e, ...a)) + })), e.on(ht.STARTED_MUTED, (() => { + const a = Boolean(e.isStartAudioMuted()), + r = Boolean(e.isStartVideoMuted()), + i = th(n["features/base/tracks"]); + Da(sn("remote", a, r)), uF.log(`Start muted: ${a?"audio, ":""}${r?"video":""}`), t(gf(a)), t(yf(r)); + for (const n of i) { + const i = n.jitsiTrack.getType(); + (a && i === Fi && "ReactNative" !== navigator.product || r && i === Bi) && t(vh(n.jitsiTrack, null, e)) + } + })), e.on(ht.AUDIO_UNMUTE_PERMISSIONS_CHANGED, (e => { + t(bf(e)) + })), e.on(ht.VIDEO_UNMUTE_PERMISSIONS_CHANGED, (e => { + t(vf(e)) + })), e.on(ht.TRACK_ADDED, (e => e && !e.isLocal() && t(kh(e)))), e.on(ht.TRACK_REMOVED, (e => e && !e.isLocal() && t(wh(e)))), e.on(ht.TRACK_MUTE_CHANGED, ((e, n) => { + n && t(lS(n, e)) + })), e.on(ht.TRACK_UNMUTE_REJECTED, (e => t(gh(e)))), e.on(ht.DISPLAY_NAME_CHANGED, ((n, a) => t(sS({ + conference: e, + id: n, + name: Hh(a) + })))), e.on(ht.DOMINANT_SPEAKER_CHANGED, ((n, a) => t(Zw(n, a, e)))), e.on(ht.ENDPOINT_MESSAGE_RECEIVED, (function() { + return t(Ra(...arguments)) + })), e.on(ht.NON_PARTICIPANT_MESSAGE_RECEIVED, (function() { + return t(kq(...arguments)) + })), e.on(ht.PARTICIPANT_CONN_STATUS_CHANGED, (function() { + return t(tS(...arguments)) + })), e.on(ht.USER_JOINED, ((n, a) => hF({ + dispatch: t + }, e, a))), e.on(ht.USER_LEFT, ((n, a) => mF({ + dispatch: t + }, e, a))), e.on(ht.USER_ROLE_CHANGED, (function() { + return t(oS(...arguments)) + })), e.on(ht.USER_STATUS_CHANGED, (function() { + return t(iS(...arguments)) + })), e.on(ht.BOT_TYPE_CHANGED, ((n, a) => t(sS({ + conference: e, + id: n, + botType: a + })))), e.addCommandListener(oF, ((n, a) => t(sS({ + conference: e, + id: a, + avatarURL: n.value + })))), e.addCommandListener(sF, ((n, a) => t(sS({ + conference: e, + id: a, + email: n.value + })))) + }(u, t, a), xF(a, u); + const d = Kn(a); + u.join(o, d) } + } - function _I(e) { - if ("Data channels support is disabled!" !== e.message) throw e + function yq(e, t) { + return { + type: ZF, + conference: e, + participant: t } + } - function wI(e) { - return "string" == typeof e && "" !== e + function vq(e, t) { + return { + type: QF, + conference: e, + locked: t } + } - function SI(e, t) { - lI.error(e, t) + function kq(e, t) { + return { + type: "NON_PARTICIPANT_MESSAGE_RECEIVED", + id: e, + json: t } + } - function EI(e, t) { - const { - avatarURL: n, - email: a, - features: r, - name: i - } = Rh(e); - n && t.sendCommand(iI, { - value: n - }), a && t.sendCommand(oI, { - value: a - }), r && "true" === r["screen-sharing"] && t.setLocalParticipantProperty("features_screen-sharing", !0), t.setDisplayName(i) - } - - function xI(e = "") { - return k().words(`${e}`.replace(/['\u2019]/g, "")).reduce(((e, t, n) => e + (n ? " " : "") + k().upperFirst(t)), "") - } - const CI = "CONNECTION_DISCONNECTED", - AI = "CONNECTION_ESTABLISHED", - jI = "CONNECTION_FAILED", - PI = "CONNECTION_WILL_CONNECT", - DI = "SET_LOCATION_URL", - TI = "SHOW_CONNECTION_INFO", - OI = Symbol("conference"), - MI = (Symbol("url"), Je("features/base/connection")); - - function II() { - return (e, t) => { - const n = An(t()["features/base/conference"].room); - return e(((e, t) => { - const n = function(e) { - const t = Lt(e["features/base/connection"].locationURL), - n = t["devices.audioOutput"], - a = t["devices.videoInput"], - r = t["devices.audioInput"]; - if (!n && !a && !r) return; - const i = {}; - return n && (i.audioOutput = n), a && (i.videoInput = a), r && (i.audioInput = r), i - }(t()); - let a; - return a = n ? e(YM()).then((() => { - const a = t(); - if (!OM(a)) return void Object.keys(n).forEach((t => { - e(WM({ - type: "devices", - name: "setDevice", - device: { - kind: t.toLowerCase(), - label: n[t] - }, - responseCallback() {} - })) - })); - const r = {}; - Object.keys(n).forEach((e => { - const t = n[e], - i = NM(a, t, e); - if (i) { - const n = VM[e]; - r[n.currentDeviceId] = i, r[n.userSelectedDeviceId] = i, r[n.userSelectedDeviceLabel] = t - } - })), e(bn(r)) - })) : Promise.resolve(), a.then((() => HM(la(t()), e).catch((e => DM.warn(`Failed to set audio output device.\n Default audio output device will be used instead ${e}`))))) - })).then((() => APP.conference.init({ - roomName: n - }).catch((e => { - APP.API.notifyConferenceLeft(APP.conference.roomName), MI.error(e) - })))) - } + function _q(e, t) { + return { + type: sq, + startAudioMutedPolicy: e, + startVideoMutedPolicy: t } + } - function NI(e = !1) { - return () => APP.conference.hangup(e) + function wq(e, t, n) { + return { + type: eq, + tones: e, + duration: t, + pause: n } + } - function zI(e) { - const t = qe(e); - let n = t instanceof URL ? t : t["features/base/connection"].locationURL; - if (n || (n = t["features/base/config"].locationURL), !n) throw new Error("Can not get invite URL - the app is not ready"); - const { - inviteDomain: a - } = t["features/dynamic-branding"], r = RI(n); - return a ? `${a}/${t["features/base/config"].brandingRoomAlias||r.pathname.replace(/\//,"")}` : r.href + function Sq(e) { + return { + type: tq, + enabled: e } + } - function RI(e) { - const { - hash: t, - search: n - } = e; - if (t && t.length > 1 || n && n.length > 1) { - (e = new URL(e.href)).hash = "", e.search = ""; - let { - href: t - } = e; - t && (t.endsWith("#") && (t = t.substring(0, t.length - 1)), t.endsWith("?") && (t = t.substring(0, t.length - 1)), e.href === t || (e = new URL(t))) - } - return e + function Eq(e) { + return { + type: nq, + muted: e } + } - function LI(e) { - const t = RI(e).href; - return t ? t.toLowerCase() : "" - } - - function FI(e, { - authdomain: t, - domain: n - }) { - return e.indexOf("@") >= 0 ? e : `${e}@${t||n}` - } - const qI = "AUTH_STATUS_CHANGED", - BI = "CONFERENCE_FAILED", - UI = "CONFERENCE_JOINED", - HI = "CONFERENCE_LEFT", - VI = "CONFERENCE_SUBJECT_CHANGED", - WI = "CONFERENCE_TIMESTAMP_CHANGED", - YI = "CONFERENCE_UNIQUE_ID_SET", - GI = "CONFERENCE_WILL_JOIN", - KI = "CONFERENCE_WILL_LEAVE", - $I = "DATA_CHANNEL_OPENED", - JI = "KICKED_OUT", - ZI = "LOCK_STATE_CHANGED", - QI = "P2P_STATUS_CHANGED", - XI = "SEND_TONES", - eN = "SET_FOLLOW_ME", - tN = "SET_PASSWORD", - nN = "SET_PASSWORD_FAILED", - aN = "SET_PENDING_SUBJECT_CHANGE", - rN = "SET_ROOM", - iN = "SET_START_MUTED_POLICY"; - - function oN(e, t, ...n) { - return { - type: BI, - conference: e, - error: { - name: t, - params: n, - recoverable: void 0 + function xq(e, t, n) { + return (a, r) => { + switch (t) { + case e.join: { + let i = r()["features/base/conference"]; + a({ + type: aq, + conference: e, + method: t, + password: n + }), i = r()["features/base/conference"], i.password !== n || i.conference || t.call(e, n); + break } + case e.lock: + return r()["features/base/conference"].conference === e ? t.call(e, n).then((() => a({ + type: aq, + conference: e, + method: t, + password: n + }))).catch((e => a({ + type: rq, + error: e + }))) : Promise.reject() } } + } - function sN(e) { - return { - type: UI, - conference: e - } + function Cq(e) { + return (t, n) => { + const { + conference: a + } = n()["features/base/conference"]; + a ? a.setSubject(e || "") : t({ + type: iq, + subject: e + }) } + } + const Aq = "MEDIA_PERMISSION_PROMPT_VISIBILITY_CHANGED", Tq = "TOGGLE_SLOW_GUM_OVERLAY", Dq = "SET_FATAL_ERROR"; - function lN(e) { - return { - type: HI, - conference: e - } + function Pq(e, t) { + return { + type: Aq, + browser: t, + isVisible: e } + } - function cN(e) { - return { - type: VI, - subject: e - } + function jq(e) { + return { + type: Tq, + isVisible: e } + } - function uN(e) { - return { - type: WI, - conferenceTimestamp: e - } + function Mq(e) { + return { + type: Dq, + fatalError: e } - - function dN(e) { - return (t, n) => { - const a = Go(n()["features/base/tracks"]).map((e => e.jitsiTrack)); - a.length && dI(e, a), t(pN(e)) - } + } + class Iq extends x.Component { + render() { + return C().createElement("div", { + className: this.props.isLightOverlay ? "overlay__container-light" : "overlay__container", + id: "overlay" + }, C().createElement("div", { + className: "overlay__content" + }, this.props.children)) } + } - function pN(e) { - return { - type: GI, - conference: e - } - } + function Oq(e) { + return e[Nq(0, e.length - 1)] + } - function hN(e) { - return { - type: KI, - conference: e - } - } + function Nq(e, t) { + return Math.floor(Math.random() * (t - e + 1)) + e + } + const Rq = { + _ADJECTIVE_: ["Able", "Absent", "Absolute", "Abstract", "Absurd", "Academic", "Acceptable", "Accessible", "Accountable", "Accurate", "Acid", "Active", "Actual", "Acute", "Additional", "Adequate", "Adjacent", "Administrative", "Adult", "Advance", "Advanced", "Adverse", "Aesthetic", "Affordable", "Afraid", "Aged", "Agricultural", "Alert", "Alien", "Alike", "Alive", "Alone", "Alternative", "Amateur", "Amazed", "Amazing", "Ambitious", "Amusing", "Ancient", "Angry", "Annoyed", "Annoying", "Annual", "Anonymous", "Anxious", "Apparent", "Appealing", "Applicable", "Appropriate", "Arbitrary", "Architectural", "Artificial", "Artistic", "Ashamed", "Asleep", "Assistant", "Associated", "Astonishing", "Attractive", "Audio", "Authentic", "Automatic", "Available", "Average", "Aware", "Awful", "Awkward", "Back", "Bad", "Balanced", "Bare", "Based", "Basic", "Beautiful", "Beloved", "Beneficial", "Bent", "Best", "Better", "Big", "Biological", "Bitter", "Bizarre", "Blank", "Blind", "Blonde", "Blue", "Bold", "Bored", "Boring", "Bottom", "Bound", "Brave", "Brief", "Bright", "Brilliant", "Broad", "Broken", "Brown", "Busy", "Calm", "Capable", "Capital", "Capitalist", "Careful", "Careless", "Casual", "Cautious", "Central", "Certain", "Challenging", "Characteristic", "Charming", "Cheap", "Cheerful", "Chemical", "Chief", "Chronic", "Civic", "Civil", "Civilian", "Classic", "Classical", "Clean", "Clear", "Clever", "Clinical", "Close", "Closed", "Coastal", "Cognitive", "Cold", "Collective", "Colonial", "Coloured", "Colourful", "Comfortable", "Comic", "Commercial", "Common", "Communist", "Comparable", "Comparative", "Compelling", "Competent", "Competitive", "Complete", "Complex", "Complicated", "Comprehensive", "Compulsory", "Concerned", "Concrete", "Confident", "Confused", "Confusing", "Congressional", "Connected", "Conscious", "Consecutive", "Conservative", "Considerable", "Consistent", "Constant", "Constitutional", "Contemporary", "Content", "Continuous", "Contrary", "Controversial", "Convenient", "Conventional", "Convinced", "Convincing", "Cool", "Cooperative", "Core", "Corporate", "Correct", "Corresponding", "Costly", "Countless", "Covered", "Cream", "Creative", "Credible", "Critical", "Crowded", "Crucial", "Crude", "Cruel", "Cult", "Cultural", "Curious", "Curly", "Current", "Curved", "Cute", "Cynical", "Daily", "Dairy", "Damaging", "Dangerous", "Dark", "Dead", "Dear", "Decent", "Decisive", "Dedicated", "Deep", "Defensive", "Definite", "Deliberate", "Delicate", "Delicious", "Delighted", "Democratic", "Dense", "Dependent", "Depressed", "Depressing", "Desirable", "Desperate", "Destructive", "Detailed", "Determined", "Different", "Difficult", "Digital", "Diplomatic", "Direct", "Dirty", "Disabled", "Disappointed", "Disappointing", "Disastrous", "Dishonest", "Distant", "Distinct", "Distinctive", "Disturbing", "Diverse", "Divine", "Divorced", "Domestic", "Dominant", "Double", "Downstairs", "Downtown", "Dramatic", "Dressed", "Driving", "Dry", "Dual", "Due", "Dull", "Dumb", "Dynamic", "Eager", "Early", "East", "Eastern", "Easy", "Ecological", "Economic", "Editorial", "Educated", "Educational", "Effective", "Efficient", "Elaborate", "Elderly", "Electoral", "Electric", "Electrical", "Electronic", "Elegant", "Elementary", "Eligible", "Embarrassed", "Embarrassing", "Emotional", "Empirical", "Empty", "Encouraging", "Endless", "Engaged", "Engaging", "Enjoyable", "Enormous", "Entertaining", "Enthusiastic", "Entire", "Environmental", "Equal", "Equivalent", "Essential", "Eternal", "Ethical", "Ethnic", "Even", "Everyday", "Evident", "Evil", "Evolutionary", "Exact", "Excellent", "Exceptional", "Excess", "Excessive", "Excited", "Exciting", "Exclusive", "Executive", "Exotic", "Expected", "Expensive", "Experienced", "Experimental", "Expert", "Explicit", "Explosive", "Extensive", "External", "Extra", "Extraordinary", "Extreme", "Fabulous", "Failed", "Fair", "Fake", "False", "Familiar", "Family", "Famous", "Fancy", "Fantastic", "Far", "Fascinating", "Fashionable", "Fast", "Fat", "Fatal", "Favourable", "Favourite", "Federal", "Fellow", "Feminist", "Few", "Fierce", "Final", "Financial", "Fine", "Firm", "Fit", "Fixed", "Flat", "Flawed", "Flexible", "Flying", "Folding", "Folk", "Following", "Fond", "Foreign", "Formal", "Former", "Forthcoming", "Fortunate", "Forward", "Fragile", "Free", "Frequent", "Fresh", "Friendly", "Frightened", "Frightening", "Front", "Frozen", "Frustrated", "Frustrating", "Full", "FullTime", "Fun", "Functional", "Fundamental", "Funny", "Furious", "Further", "Future", "General", "Generic", "Generous", "Genetic", "Gentle", "Genuine", "Giant", "Glad", "Global", "Glorious", "Gold", "Golden", "Good", "Gorgeous", "Grand", "Graphic", "Grateful", "Grave", "Great", "Green", "Grey", "Gross", "Guilty", "Handy", "Happy", "Hard", "Harmful", "Harsh", "Healthy", "Heavy", "Helpful", "Hidden", "High", "HighProfile", "Hilarious", "Historic", "Historical", "Hollow", "Holy", "Home", "Homeless", "Honest", "Hopeful", "Horrible", "Hot", "Huge", "Human", "Humanitarian", "Humble", "Humorous", "Hungry", "Hurt", "Ideal", "Identical", "Ideological", "Ill", "Illegal", "Imaginary", "Immediate", "Immense", "Imminent", "Immune", "Impatient", "Important", "Impossible", "Impressed", "Impressive", "Inadequate", "Inappropriate", "Inclined", "Included", "Incorrect", "Incredible", "Independent", "Indigenous", "Indirect", "Individual", "Indoor", "Industrial", "Inevitable", "Infamous", "Influential", "Informal", "Inherent", "Initial", "Injured", "Inner", "Innocent", "Innovative", "Inside", "Instant", "Institutional", "Instrumental", "Insufficient", "Intact", "Integral", "Integrated", "Intellectual", "Intelligent", "Intended", "Intense", "Intensive", "Interactive", "Interested", "Interesting", "Interim", "Interior", "Intermediate", "Internal", "International", "Intimate", "Intriguing", "Invisible", "Involved", "Ironic", "Irrelevant", "Isolated", "Joint", "Judicial", "Junior", "Just", "Keen", "Key", "Kind", "Large", "LargeScale", "Late", "Later", "Latest", "Latter", "Lazy", "Leading", "Left", "Legal", "Legendary", "Legislative", "Legitimate", "Lengthy", "Lesser", "Level", "Liable", "Liberal", "Lifelong", "Light", "Likely", "Limited", "Linear", "Liquid", "Literary", "Little", "Live", "Lively", "Living", "Local", "Located", "Logical", "Lonely", "Long", "LongStanding", "LongTerm", "LongTime", "Loose", "Lost", "Loud", "Lovely", "Low", "Loyal", "Lucky", "Luxury", "Mad", "Magic", "Magical", "Magnetic", "Magnificent", "Main", "Mainstream", "Major", "Mandatory", "Marginal", "Marine", "Married", "Martial", "Mass", "Massive", "Matching", "Material", "Mathematical", "Mature", "Maximum", "Meaningful", "Mechanical", "Medical", "Medieval", "Medium", "Memorable", "Mental", "Mere", "Middle", "Mild", "Minimal", "Minimum", "Minute", "Miserable", "Misleading", "Missing", "Mixed", "Mobile", "Moderate", "Modern", "Modest", "Monthly", "Moral", "Motor", "Moving", "Multiple", "Municipal", "Musical", "Mutual", "Mysterious", "Narrative", "Narrow", "National", "Nationwide", "Native", "Natural", "Naval", "Near", "Nearby", "Neat", "Necessary", "Negative", "Neighbouring", "Nervous", "Net", "Neutral", "New", "Next", "Nice", "Noble", "Noisy", "NonProfit", "Normal", "North", "Northern", "Notable", "Notorious", "Novel", "Nuclear", "Numerous", "Objective", "Obvious", "Occasional", "Odd", "Offensive", "Official", "Ok", "Old", "OldFashioned", "Ongoing", "Online", "Only", "Open", "Operational", "Opposed", "Opposite", "Optical", "Optimistic", "Orange", "Ordinary", "Organic", "Organizational", "Organized", "Original", "Other", "Outdoor", "Outer", "Outside", "Outstanding", "Overall", "Overseas", "Overwhelming", "Own", "Painful", "Pale", "Parallel", "Parental", "Parliamentary", "PartTime", "Partial", "Particular", "Passionate", "Passive", "Past", "Patient", "Peaceful", "Peculiar", "Perfect", "Permanent", "Persistent", "Personal", "Philosophical", "Physical", "Pink", "Plain", "Plastic", "Pleasant", "Pleased", "Plus", "Pointed", "Poisonous", "Polite", "Political", "Poor", "Pop", "Popular", "Positive", "Possible", "PostWar", "Potential", "Powerful", "Practical", "Precious", "Precise", "Predictable", "Preliminary", "Premier", "Prepared", "Present", "Presidential", "Prestigious", "Pretty", "Previous", "Primary", "Prime", "Principal", "Prior", "Private", "Probable", "Problematic", "Productive", "Professional", "Profitable", "Profound", "Progressive", "Prominent", "Promising", "Pronounced", "Proper", "Prospective", "Protective", "Proud", "Provincial", "Psychiatric", "Psychological", "Public", "Pure", "Purple", "Qualified", "Quick", "Quiet", "Radical", "Random", "Rapid", "Rare", "Rational", "Raw", "Ready", "Real", "Realistic", "Rear", "Reasonable", "Recent", "Red", "Regional", "Regular", "Regulatory", "Related", "Relative", "Relaxed", "Relaxing", "Relevant", "Reliable", "Relieved", "Religious", "Reluctant", "Remarkable", "Remote", "Renowned", "Repeated", "Representative", "Resident", "Residential", "Respective", "Responsible", "Retired", "Reverse", "Revolutionary", "Rich", "Ridiculous", "Right", "Risky", "Rival", "Robust", "Romantic", "Rough", "Round", "Routine", "Royal", "Rubber", "Rude", "Rural", "Sacred", "Sad", "Safe", "Same", "Satisfied", "Scary", "Scattered", "Sceptical", "Scientific", "Secondary", "Secret", "Secular", "Secure", "Selective", "Senior", "Sensible", "Sensitive", "Separate", "Serial", "Serious", "Severe", "Shallow", "Shaped", "Sharp", "Sheer", "Shiny", "Shocked", "Shocking", "Short", "ShortTerm", "Shut", "Shy", "Significant", "Silent", "Silly", "Silver", "Similar", "Simple", "Sincere", "Single", "Situated", "Ski", "Skilled", "Slight", "Slow", "Small", "Smart", "Smooth", "SoCalled", "Social", "Socialist", "Soft", "Solar", "Sole", "Solid", "Solo", "Sophisticated", "Sound", "South", "Spare", "Special", "Specialist", "Specialized", "Specific", "Spectacular", "Spicy", "Spiritual", "Spoken", "Sporting", "Square", "Stable", "Standard", "Standing", "Stark", "State", "Statistical", "Steady", "Steep", "Sticky", "Stiff", "Still", "Straight", "Straightforward", "Strange", "Strategic", "Strict", "Striking", "Strong", "Structural", "Stunning", "Subject", "Subsequent", "Substantial", "Subtle", "Suburban", "Successful", "Successive", "Sudden", "Sufficient", "Suitable", "Super", "Superb", "Superior", "Supportive", "Supreme", "Sure", "Surgical", "Surprised", "Surprising", "Surrounding", "Suspicious", "Sustainable", "Sweet", "Symbolic", "Sympathetic", "Systematic", "Tactical", "Talented", "Tall", "Technical", "Technological", "Temporary", "Tender", "Terminal", "Terrible", "Terrific", "Theatrical", "Theoretical", "Thick", "Thin", "Thirsty", "Thorough", "ThoughtProvoking", "Thoughtful", "Thrilled", "Tidy", "Tight", "Timely", "Tiny", "Tired", "Top", "Total", "Tough", "Toxic", "Toy", "Traditional", "Transparent", "Tremendous", "Tribal", "Tropical", "True", "Twin", "Typical", "Ultimate", "Unable", "Unacceptable", "Uncomfortable", "Underground", "Underlying", "Unemployed", "Unexpected", "Unfair", "Unfortunate", "Unique", "United", "Universal", "Unknown", "Unlikely", "Unnecessary", "Unpleasant", "Unprecedented", "Unusual", "Upcoming", "Upper", "Upset", "Upstairs", "Urban", "Urgent", "Used", "Useful", "Useless", "Usual", "Vague", "Valid", "Valuable", "Variable", "Varied", "Various", "Vast", "Verbal", "Vertical", "Very", "Viable", "Vibrant", "Virtual", "Visible", "Visual", "Vital", "Vocal", "Voluntary", "Vulnerable", "Warm", "Waste", "Weak", "Wealthy", "Weekly", "Weird", "Welcome", "Well", "West", "Western", "Wet", "White", "Whole", "Wide", "Widespread", "Wild", "Willing", "Wise", "Wonderful", "Wooden", "Working", "Worldwide", "Worried", "Worse", "Worst", "Worth", "Worthwhile", "Worthy", "Written", "Wrong", "Yellow"], + _ADVERB_: ["About", "Above", "Abroad", "Absently", "Absolutely", "Accidentally", "Accordingly", "Accurately", "Accusingly", "Across", "Actually", "Additionally", "Adequately", "Adorably", "After", "Afterwards", "Again", "Ago", "Ahead", "Alike", "All", "Allegedly", "AllTheTime", "Almost", "Alone", "Along", "Already", "Also", "Altogether", "Always", "Amazingly", "Angrily", "Annually", "Anxiously", "Any", "Anyway", "Anywhere", "Apart", "Appallingly", "Apparently", "Appropriately", "Approximately", "Arguably", "Around", "Articulately", "As", "Aside", "Astonishingly", "Automatically", "Away", "Back", "Backwards", "Badly", "Barely", "Basically", "Beautifully", "Before", "Behind", "Below", "Besides", "Best", "Better", "Between", "Beyond", "Blindly", "Bravely", "Briefly", "Brightly", "Briskly", "Broadly", "By", "Calmly", "Carefully", "Casually", "Cautiously", "Certainly", "Cheaply", "Clearly", "Cleverly", "Close", "Closely", "Commonly", "Completely", "Consequently", "Considerably", "Consistently", "Constantly", "Continually", "Correctly", "Crazily", "Critically", "Curiously", "Currently", "Cynically", "Daily", "Dangerously", "Deeply", "Definitely", "Deliberately", "Delicately", "Desperately", "Differently", "Directly", "Discreetly", "Double", "Down", "Downstairs", "Downtown", "Downwards", "Dramatically", "Each", "Eagerly", "Early", "Easily", "East", "Effectively", "Efficiently", "Either", "Else", "Elsewhere", "Emotionally", "Enough", "Entirely", "Equally", "Especially", "Essentially", "Euphoricly", "Even", "Evenly", "Eventually", "Ever", "Everywhere", "Exactly", "Exclusively", "Expectantly", "Explicitly", "Extensively", "Extra", "Extremely", "Fairly", "Far", "Fast", "Ferociously", "Fiercely", "Finally", "Finely", "Firmly", "First", "Firstly", "Flatly", "Forever", "Formerly", "Forth", "Fortunately", "Forward", "Frankly", "Free", "Freely", "Frequently", "Frighteningly", "FullTime", "Fully", "Fundamentally", "Further", "Furthermore", "Generally", "Gently", "Genuinely", "Gloriously", "Gradually", "Greatly", "Grimly", "Guiltily", "Half", "Halfway", "Happily", "Hard", "Hardly", "Hastily", "Heavily", "Hence", "Here", "Heroically", "High", "Highly", "Home", "Hopefully", "Hourly", "How", "However", "Humbly", "Hysterically", "Immediately", "Immensely", "Impartially", "Impolitely", "In", "Increasingly", "Incredibly", "Indeed", "Indifferently", "Indoors", "Inevitably", "Initially", "Inside", "Instantly", "Instead", "Intensely", "Ironically", "Jealously", "Jovially", "Just", "Kindly", "Largely", "Last", "Late", "Lately", "Later", "Lazily", "Least", "Left", "Less", "Lightly", "Likewise", "Literally", "Little", "Live", "Long", "LongTerm", "Lot", "Loud", "Loudly", "Lovingly", "Low", "Loyally", "Magnificently", "Mainly", "Maybe", "Meanwhile", "Merely", "Merrily", "Mightily", "Miserably", "More", "Moreover", "Most", "Mostly", "Much", "Mysteriously", "Namely", "Naturally", "Near", "Nearby", "Nearly", "Necessarily", "Neither", "Nervously", "Never", "Nevertheless", "Newly", "Next", "Nicely", "Nonetheless", "Nor", "Normally", "North", "Not", "NOT", "Notably", "Now", "Nowadays", "Nowhere", "Objectively", "Obnoxiously", "Obsessively", "Obviously", "Occasionally", "Off", "Often", "Ok", "On", "Once", "Online", "Only", "Openly", "Opposite", "Originally", "Otherwise", "Out", "Outdoors", "Outside", "Over", "Overall", "Overly", "Overnight", "Overseas", "Painfully", "Partially", "Particularly", "Partly", "Past", "Patiently", "Perfectly", "Perhaps", "Permanently", "Personally", "Playfully", "Politely", "Poorly", "Possibly", "Potentially", "Precisely", "Predominantly", "Presently", "Presumably", "Pretty", "Previously", "Primarily", "Probably", "Promptly", "Properly", "Purely", "Quickly", "Quietly", "Quite", "Randomly", "Rapidly", "Rarely", "Rather", "Readily", "Really", "Reasonably", "Recently", "Recklessly", "Regardless", "Regularly", "Relatively", "Remarkably", "Remorsefully", "Reportedly", "Respectively", "Responsibly", "Right", "Roughly", "Round", "Rudely", "Ruthlessly", "Sadly", "Same", "Scornfully", "Seamlessly", "Second", "Secondly", "Seemingly", "Seldom", "Selfishly", "Seriously", "Severely", "Shakily", "Sharply", "Shortly", "Sideways", "Significantly", "Silently", "Similarly", "Simply", "Simultaneously", "Since", "Sleepily", "Slightly", "Slowly", "Slyly", "Smoothly", "So", "Softly", "Solely", "Solemnly", "Somehow", "Sometime", "Sometimes", "Somewhat", "Somewhere", "Soon", "South", "Specifically", "Steadily", "Sternly", "Still", "Straight", "Strangely", "Strictly", "Strongly", "Stunningly", "Subsequently", "Substantially", "Successfully", "Suddenly", "Sufficiently", "Supposedly", "Sure", "Surely", "Temporarily", "Tenderly", "Terribly", "Thankfully", "That", "Then", "There", "Thereafter", "Thereby", "Therefore", "This", "Thoroughly", "Though", "Thoughtfully", "Through", "Throughout", "Thus", "Tightly", "Today", "Together", "Tomorrow", "Tonight", "Too", "Totally", "Truly", "Twice", "Typically", "Ultimately", "Under", "Underground", "Undoubtedly", "Uneasily", "Unfortunately", "Up", "Upstairs", "Upwards", "Usually", "Utterly", "Vanishingly", "Very", "Warmly", "Way", "Weakly", "Wearily", "Weekly", "Weirdly", "Well", "West", "Whatever", "Whatsoever", "When", "Where", "Whereby", "Wholly", "Why", "Wickedly", "Widely", "Wildly", "Wisely", "Wonderfully", "Worldwide", "Worse", "Worst", "Wrong", "Yearly", "Yesterday", "Yet"], + _PLURALNOUN_: ["Abilities", "Absences", "Abundances", "Academics", "Academies", "Accents", "Acceptances", "Accesses", "Accidents", "Accommodations", "Accomplishments", "Accordances", "Accountabilities", "Accountants", "Accounts", "Accumulations", "Accuracies", "Accusations", "Accused", "Achievements", "Acids", "Acquisitions", "Acres", "Actions", "Activations", "Activists", "Activities", "Actors", "Actresses", "Acts", "Adaptations", "Addictions", "Additions", "Addresses", "Adjustments", "Administrations", "Administrators", "Admissions", "Adolescents", "Adoptions", "Ads", "Adults", "Advances", "Advantages", "Adventures", "Advertisements", "Advertisings", "Advice", "Advocates", "Affairs", "Affections", "Aftermaths", "Afternoons", "Agencies", "Agendas", "Agents", "Ages", "Aggressions", "Agreements", "Agricultures", "Aides", "Alarms", "Albums", "Alerts", "Aliens", "Alignments", "Allegations", "Alliances", "Allies", "Allocations", "Allowances", "Alternatives", "Aluminium", "Amateurs", "Ambassadors", "Ambitions", "Ambulances", "Amendments", "Amounts", "Analogies", "Analyses", "Analysts", "Ancestors", "Anchors", "Angels", "Angers", "Angles", "Animals", "Animations", "Ankles", "Anniversaries", "Announcements", "Answers", "Anxieties", "Apartments", "Apologies", "Apparatus", "Appeals", "Appearances", "Appetites", "Apples", "Applicants", "Applications", "Appointments", "Appreciations", "Approaches", "Approvals", "Apps", "Aprils", "Architects", "Architectures", "Archives", "Areas", "Arenas", "Arguments", "Armies", "Arrangements", "Arrays", "Arrests", "Arrivals", "Arrows", "Articles", "Artists", "Arts", "Artworks", "Ashes", "Aspects", "Aspirations", "Assaults", "Assemblies", "Assertions", "Assessments", "Assets", "Assignments", "Assistances", "Assistants", "Associations", "Assumptions", "Assurances", "Asylums", "Athletes", "Atmospheres", "Attachments", "Attacks", "Attempts", "Attendances", "Attentions", "Attitudes", "Attorneys", "Attractions", "Attributes", "Auctions", "Audiences", "Audits", "Augusts", "Aunts", "Authorities", "Authors", "Autonomies", "Autos", "Autumns", "Availabilities", "Averages", "Awards", "Awarenesses", "Babies", "Backdrops", "Backgrounds", "Backings", "Backs", "Backups", "Bacterias", "Badges", "Bags", "Bails", "Balances", "Ballets", "Balloons", "Ballots", "Balls", "Bananas", "Bands", "Banks", "Banners", "Bans", "Bargains", "Barrels", "Barriers", "Bars", "Baseballs", "Basements", "Bases", "Basketballs", "Baskets", "Basses", "Bathrooms", "Baths", "Bats", "Batteries", "Battlefields", "Battles", "Bays", "Beaches", "Beams", "Beans", "Bears", "Beasts", "Beats", "Beauties", "Bedrooms", "Beds", "Beefs", "Beers", "Bees", "Beginnings", "Behalves", "Behaviours", "Beings", "Beliefs", "Bells", "Belts", "Benches", "Benchmarks", "Bends", "Beneficiaries", "Benefits", "Bests", "Bets", "Betters", "Biases", "Bicycles", "Bids", "Bikes", "Bills", "Bins", "Biographies", "Biologies", "Birds", "Birthdays", "Births", "Biscuits", "Bishops", "Bites", "Bits", "Blades", "Blames", "Blankets", "Blanks", "Blasts", "Blends", "Blessings", "Blocks", "Blogs", "Bloods", "Blows", "Blues", "Boards", "Boats", "Bonds", "Bones", "Bonus", "Bookings", "Books", "Booms", "Boosts", "Boots", "Borders", "Bosses", "Bottles", "Boundaries", "Bowls", "Bows", "Boxes", "Brains", "Branches", "Brands", "Breaches", "Breads", "Breakdowns", "Breakfasts", "Breaks", "Breakthroughs", "Breathings", "Breaths", "Breeds", "Brethren", "Bricks", "Brides", "Bridges", "Broadbands", "Broadcasters", "Broadcasts", "Browsers", "Brushes", "Bubbles", "Bucks", "Buddies", "Budgets", "Buffers", "Bugs", "Buildings", "Bulks", "Bullets", "Bunches", "Burdens", "Bureaucracies", "Burials", "Burns", "Buses", "Bushes", "Businesses", "Businessmen", "Butters", "Buttons", "Cabinets", "Cabins", "Cables", "Cafes", "Cakes", "Calculations", "Calls", "Calms", "Cameras", "Campaigns", "Campings", "Camps", "Campus", "Canals", "Candidates", "Candles", "Cans", "Canvas", "Capabilities", "Capacities", "Capitalisms", "Capitals", "Caps", "Captains", "Captures", "Carbons", "Cards", "Careers", "Cares", "Cargoes", "Carpets", "Carriages", "Carrots", "Cars", "Cartoons", "Cases", "Cashes", "Casinos", "Castles", "Casts", "Catalogues", "Catches", "Categories", "Cats", "Cattle", "Causes", "Cautions", "Caves", "Cds", "Ceilings", "Celebrations", "Celebrities", "Cells", "Cemeteries", "Centres", "Cents", "Centuries", "Ceremonies", "Certainties", "Certificates", "Chains", "Chairmen", "Chairs", "Challenges", "Chambers", "Champions", "Championships", "Chances", "Changes", "Channels", "Chaos", "Chapters", "Characteristics", "Characters", "Charges", "Charities", "Charms", "Charters", "Charts", "Chases", "Chats", "Cheats", "Checks", "Cheeks", "Cheers", "Cheeses", "Chefs", "Chemicals", "Chemistries", "Chests", "Chickens", "Chiefs", "Childhoods", "Chips", "Chocolates", "Choices", "Choirs", "Chunks", "Churches", "Cigarettes", "Cinemas", "Circles", "Circuits", "Circulations", "Circumstances", "Cities", "Citizens", "Citizenships", "Civilians", "Civilizations", "Claims", "Clarities", "Clashes", "Classes", "Classics", "Classifications", "Classrooms", "Clauses", "Clerks", "Clicks", "Clients", "Cliffs", "Climates", "Climbs", "Clinics", "Clips", "Clocks", "Closes", "Closures", "Clothes", "Clothings", "Cloths", "Clouds", "Clubs", "Clues", "Clusters", "Coaches", "Coalitions", "Coals", "Coasts", "Coats", "Cocktails", "Codes", "Coffees", "Coincidences", "Coins", "Colds", "Collaborations", "Collapses", "Colleagues", "Collections", "Collectors", "Colleges", "Collisions", "Colonies", "Colours", "Columnists", "Columns", "Combats", "Combinations", "Comedies", "Comforts", "Comics", "Commanders", "Commands", "Commentaries", "Commentators", "Comments", "Commerces", "Commercials", "Commissioners", "Commissions", "Commitments", "Committees", "Commodities", "Communications", "Communities", "Companies", "Companions", "Comparisons", "Compassions", "Compensations", "Competences", "Competitions", "Competitors", "Complaints", "Completions", "Complexes", "Complexities", "Compliances", "Complications", "Components", "Composers", "Compositions", "Compounds", "Compromises", "Computers", "Concentrations", "Conceptions", "Concepts", "Concerns", "Concerts", "Concessions", "Conclusions", "Concretes", "Conditions", "Conducts", "Conferences", "Confessions", "Confidences", "Configurations", "Confirmations", "Conflicts", "Confrontations", "Confusions", "Congregations", "Connections", "Consciences", "Consciousnesses", "Consensus", "Consents", "Consequences", "Conservations", "Conservatives", "Considerations", "Consistencies", "Conspiracies", "Constituencies", "Constitutions", "Constraints", "Constructions", "Consultants", "Consultations", "Consumers", "Consumptions", "Contacts", "Containers", "Contempts", "Contenders", "Contentions", "Contents", "Contests", "Contexts", "Continents", "Contractors", "Contracts", "Contradictions", "Contraries", "Contrasts", "Contributions", "Contributors", "Controls", "Controversies", "Conveniences", "Conventions", "Conversations", "Conversions", "Convictions", "Cookers", "Cookings", "Cooks", "Coordinations", "Coordinators", "Copies", "Coppers", "Cops", "Copyrights", "Cores", "Corners", "Corporations", "Corrections", "Correlations", "Correspondences", "Correspondents", "Corridors", "Corruptions", "Costs", "Costumes", "Cottages", "Cottons", "Councillors", "Councils", "Counsellings", "Counsellors", "Counterparts", "Counters", "Counties", "Countries", "Countrysides", "Counts", "Couples", "Coups", "Courages", "Courses", "Courtesies", "Courts", "Cousins", "Coverages", "Covers", "Cows", "Cracks", "Crafts", "Crashes", "Creams", "Creations", "Creativities", "Creators", "Creatures", "Credibilities", "Credits", "Crews", "Cries", "Crises", "Criteria", "Criticisms", "Critics", "Critiques", "Crops", "Crosses", "Crowds", "Crowns", "Cruises", "Crystals", "Cues", "Cults", "Cultures", "Cupboards", "Cups", "Cures", "Curiosities", "Currencies", "Currents", "Curricula", "Curtains", "Custodies", "Customers", "Customs", "Cuts", "Cuttings", "Cycles", "Dads", "Dairies", "Damages", "Dams", "Dancers", "Dances", "Dancings", "Dangers", "Darknesses", "Darks", "Databases", "Dates", "Daughters", "Dawns", "Days", "Deadlines", "Dealers", "Deals", "Debates", "Debris", "Debts", "Debuts", "Decades", "Decembers", "DecisionMakings", "Decisions", "Decks", "Declarations", "Declines", "Decorations", "Decreases", "Dedications", "Deeds", "Defaults", "Defeats", "Defects", "Defences", "Defenders", "Deficiencies", "Deficits", "Definitions", "Degrees", "Delays", "Delegates", "Delegations", "Delights", "Deliveries", "Demands", "Democracies", "Demons", "Demonstrations", "Denials", "Densities", "Dentists", "Departments", "Departures", "Dependences", "Deployments", "Deposits", "Depressions", "Depths", "Deputies", "Descents", "Descriptions", "Deserts", "Designers", "Designs", "Desires", "Desks", "Desktops", "Destinations", "Destructions", "Details", "Detections", "Detectives", "Detentions", "Determinations", "Developments", "Devices", "Devils", "Diagnoses", "Diagrams", "Dialogues", "Diamonds", "Diaries", "Dictators", "Dictionaries", "Diets", "Differences", "Difficulties", "Dignities", "Dilemmas", "Dimensions", "Dinners", "Diplomats", "Directions", "Directories", "Directors", "Dirts", "Disabilities", "Disadvantages", "Disagreements", "Disappointments", "Disciplines", "Disclosures", "Discounts", "Discourses", "Discoveries", "Discretions", "Discs", "Discussions", "Dishes", "Disks", "Dislikes", "Dismissals", "Disorders", "Displays", "Disposals", "Disputes", "Disruptions", "Distances", "Distinctions", "Distresses", "Distributions", "Districts", "Diversities", "Dives", "Divides", "Divisions", "Divorces", "Doctors", "Doctrines", "Documentaries", "Documentations", "Documents", "Dogs", "Dollars", "Domains", "Dominances", "Donations", "Donors", "Doors", "Doses", "Dots", "Doubts", "Downloads", "Downtowns", "Dozens", "Drafts", "Dramas", "Drawings", "Dreams", "Dresses", "Drinks", "Drivers", "Drives", "Drivings", "Drops", "Droughts", "Drums", "Duos", "Durations", "Dusts", "Duties", "Dvds", "Dynamics", "Earnings", "Ears", "Earthquakes", "Earths", "Eases", "Easts", "Echoes", "Economics", "Economies", "Economists", "Edges", "Editions", "Editors", "Educations", "Educators", "Effectivenesses", "Effects", "Efficiencies", "Efforts", "Eggs", "Egos", "Elbows", "Elections", "Electricities", "Electronics", "Elements", "Elephants", "Elites", "Emails", "Embarrassments", "Embassies", "Emergences", "Emergencies", "Emissions", "Emotions", "Emphases", "Empires", "Employees", "Employers", "Employments", "Encounters", "Encouragements", "Endeavours", "Endings", "Endorsements", "Ends", "Enemies", "Energies", "Enforcements", "Engagements", "Engineerings", "Engineers", "Engines", "Enquiries", "Enterprises", "Entertainments", "Enthusiasms", "Enthusiasts", "Entities", "Entrances", "Entrepreneurs", "Entries", "Envelopes", "Environments", "Epidemics", "Episodes", "Equalities", "Equals", "Equations", "Equipment", "Equivalents", "Eras", "Errors", "Escapes", "Essays", "Essences", "Establishments", "Estates", "Estimates", "Ethics", "Euros", "Evaluations", "Evenings", "Events", "Evidence", "Evils", "Evolutions", "Examinations", "Examples", "Exams", "Excellences", "Exceptions", "Excesses", "Exchanges", "Excitements", "Exclusions", "Excuses", "Executives", "Exercises", "Exhibitions", "Exhibits", "Exiles", "Existences", "Exits", "Expansions", "Expectations", "Expeditions", "Expenditures", "Expenses", "Experiences", "Experiments", "Expertises", "Experts", "Explanations", "Exploitations", "Explorations", "Explosions", "Explosives", "Exports", "Exposures", "Expressions", "Extensions", "Extents", "Extracts", "Extras", "Extremes", "Eyes", "Fabrics", "Faces", "Facilities", "Factions", "Factories", "Factors", "Facts", "Faculties", "Failures", "Fairnesses", "Faiths", "Falls", "Fames", "Families", "Fans", "Fantasies", "Fares", "Farmers", "Farmings", "Farms", "Fashions", "Fates", "Fats", "Faults", "Favourites", "Favours", "Fears", "Feathers", "Feats", "Features", "Februaries", "Feedbacks", "Feeds", "Feelings", "Feels", "Fees", "Feet", "Feminists", "Fences", "Festivals", "Fevers", "Fibres", "Fictions", "Fields", "Fightings", "Fights", "Figures", "Files", "FilmMakers", "Films", "Filters", "Finals", "Finances", "Findings", "Fines", "Fingers", "Finishes", "Firefighters", "Fires", "Fireworks", "Firms", "Firsts", "Fish", "Fishings", "Fitnesses", "Fits", "Fixes", "Fixtures", "Flags", "Flames", "Flashes", "Flats", "Flavours", "Flaws", "Fleets", "Fleshes", "Flexibilities", "Flies", "Flights", "Floods", "Floors", "Flours", "Flowers", "Flows", "Fluids", "Flus", "Flyings", "Foci", "Folds", "Folks", "Followings", "Foods", "Fools", "Footages", "Footballs", "Forces", "Forecasts", "Foreigners", "Forests", "Forks", "Formations", "Formats", "Forms", "Formulae", "Fortunes", "Forums", "Fossils", "Foundations", "Founders", "Fractions", "Fragments", "Frames", "Frameworks", "Franchises", "Frauds", "Freedoms", "Frequencies", "Fridays", "Fridges", "Friends", "Friendships", "Frogs", "Fronts", "Fruits", "Frustrations", "Fuels", "Functions", "Fundings", "Fundraisings", "Funds", "Funerals", "Funs", "Furnitures", "Furs", "Futures", "Gains", "Galleries", "Gallons", "Gamblings", "Games", "Gamings", "Gaps", "Garages", "Gardens", "Gases", "Gates", "Gatherings", "Gazes", "Gears", "Genders", "Generations", "Genes", "Genius", "Genres", "Gentlemen", "Geographies", "Gestures", "Ghosts", "Giants", "Gifts", "Gigs", "Glances", "Glasses", "Glimpses", "Globalizations", "Globes", "Glories", "Gloves", "Goals", "Gods", "Goes", "Gold", "Golfs", "Goodbyes", "Goodnesses", "Goods", "Governances", "Governments", "Governors", "Graces", "Grades", "Graduates", "Grains", "Grandfathers", "Grandmothers", "Grandparents", "Grants", "Graphics", "Grasps", "Grasses", "Graves", "Gravities", "Greenhouses", "Greens", "Greys", "Grids", "Griefs", "Grins", "Grips", "Groceries", "Grounds", "Groups", "Growths", "Guarantees", "Guards", "Guerrillas", "Guesses", "Guests", "Guidances", "Guidelines", "Guides", "Guilts", "Guitars", "Guts", "Guys", "Gyms", "Habitats", "Habits", "Hairs", "Halls", "Halts", "Halves", "Handfuls", "Handles", "Handlings", "Hands", "Happinesses", "Harassments", "Harbours", "Hardwares", "Harmonies", "Harms", "Harvests", "Hats", "Hazards", "Headaches", "Headlines", "Headquarters", "Heads", "Healthcares", "Healths", "Hearings", "Hearts", "Heatings", "Heats", "Heavens", "Heels", "Heights", "Helicopters", "Hellos", "Hells", "Helmets", "Helps", "Herbs", "Heritages", "Heroes", "Hierarchies", "Highlights", "Highs", "Highways", "Hills", "Hints", "Hips", "Hires", "Historians", "Histories", "Hits", "Hobbies", "Hockeys", "Holds", "Holes", "Holidays", "Homelands", "Homes", "Homework", "Honesties", "Honours", "Hooks", "Hopes", "Horizons", "Horns", "Horrors", "Horses", "Hospitals", "Hosts", "Hotels", "Hours", "Households", "Houses", "Housings", "Humanities", "Humans", "Humours", "Hungers", "Huntings", "Hunts", "Hurricanes", "Hurries", "Hurts", "Hydrogens", "Hypotheses", "Ices", "Icons", "Ideals", "Ideas", "Identifications", "Identities", "Ideologies", "Ids", "Ignorances", "Illusions", "Illustrations", "Imageries", "Images", "Imaginations", "Immigrations", "Impacts", "Implementations", "Implications", "Importances", "Imports", "Impressions", "Imprisonments", "Improvements", "Inabilities", "Incentives", "Inches", "Incidences", "Incidents", "Inclusions", "Incomes", "Increases", "Independences", "Indications", "Indicators", "Indices", "Indictments", "Individuals", "Industries", "Inequalities", "Infections", "Inflations", "Influences", "Information", "Infos", "Infrastructures", "Ingredients", "Inhabitants", "Initiatives", "Injections", "Injuries", "Injustices", "Inks", "Innovations", "Inputs", "Inquiries", "Insects", "Insertions", "Insiders", "Insides", "Insights", "Inspections", "Inspectors", "Inspirations", "Installations", "Instances", "Instincts", "Institutes", "Institutions", "Instructions", "Instructors", "Instruments", "Insults", "Insurances", "Intakes", "Integrations", "Integrities", "Intellectuals", "Intelligences", "Intensities", "Intentions", "Intents", "Interactions", "Interests", "Interfaces", "Interferences", "Interiors", "Interpretations", "Intervals", "Interventions", "Interviews", "Introductions", "Invasions", "Inventions", "Investigations", "Investigators", "Investments", "Investors", "Invitations", "Involvements", "Ironies", "Irons", "Islands", "Isolations", "Issues", "Items", "Its", "Jackets", "Jails", "Jams", "Januaries", "Jazzes", "Jeans", "Jets", "Jewelleries", "Jobs", "Joints", "Jokes", "Journalisms", "Journalists", "Journals", "Journeys", "Joys", "Judgements", "Judges", "Juices", "Julies", "Jumps", "Junctions", "Junes", "Juries", "Jurisdictions", "Justices", "Justifications", "Keyboards", "Keys", "Kicks", "Kidneys", "Kilometres", "Kinds", "Kingdoms", "Kings", "Kisses", "Kitchens", "Kits", "Knees", "Knives", "Knocks", "Knowledges", "Labels", "Laboratories", "Labours", "Labs", "Lacks", "Ladders", "Lakes", "Lamps", "Landings", "Landlords", "Landmarks", "Lands", "Landscapes", "Lanes", "Languages", "Laps", "Laptops", "Lasers", "Lasts", "Latests", "Laughs", "Laughters", "Launches", "Lawns", "Laws", "Lawsuits", "Lawyers", "Layers", "Layouts", "Leaders", "Leaderships", "Leads", "Leaflets", "Leagues", "Leaks", "Leaps", "Learnings", "Leathers", "Leaves", "Lectures", "Lefts", "Legacies", "Legends", "Legislations", "Legislatures", "Legs", "Leisures", "Lemons", "Lengths", "Lens", "Lessons", "Letters", "Levels", "Liberals", "Liberations", "Liberties", "Libraries", "Licences", "Lies", "Lifestyles", "Lifetimes", "Lifts", "Lightings", "Lights", "Likelihoods", "Likes", "Limbs", "Limitations", "Limits", "LineUps", "Lines", "Links", "Lions", "Lips", "Liquids", "Listeners", "Listings", "Lists", "Literacies", "Literatures", "Litres", "Litters", "Livers", "Lives", "Livings", "Loads", "Loans", "Lobbies", "Locals", "Locations", "Locks", "Logics", "Logos", "Logs", "Looks", "Loops", "Lords", "Lorries", "Losses", "Lotteries", "Loves", "Lows", "Loyalties", "Luck", "Lunches", "Lungs", "Luxuries", "Lyrics", "Machineries", "Machines", "Magazines", "Magics", "Magistrates", "Magnitudes", "Mails", "Mainlands", "Mainstreams", "Maintenances", "Majorities", "MakeUps", "Makes", "Makings", "Malls", "Managements", "Managers", "Mandates", "Manipulations", "Manners", "Manufacturings", "Manuscripts", "Maps", "Marathons", "Marches", "Margins", "Markers", "Marketings", "Marketplaces", "Markets", "Marks", "Marriages", "Masks", "Masses", "Masters", "Matches", "Materials", "Mates", "Mathematics", "Maths", "Matters", "Maximums", "Mayors", "Mays", "Meals", "Meanings", "Means", "Meantimes", "Measurements", "Measures", "Meats", "Mechanics", "Mechanisms", "Medals", "Media", "Medications", "Medicines", "Meditations", "Meetings", "Melodies", "Members", "Memberships", "Memoirs", "Memorials", "Memories", "Memos", "Mentions", "Mentors", "Menus", "Merchants", "Mercies", "Mergers", "Merits", "Messages", "Messes", "Metals", "Metaphors", "Methodologies", "Methods", "Metres", "Mice", "Middles", "Midnights", "Midsts", "Migrations", "Miles", "Milks", "Mills", "Minds", "Minerals", "Miners", "Mines", "Minimums", "Minings", "Ministers", "Ministries", "Minutes", "Miracles", "Mirrors", "Miseries", "Missiles", "Missions", "Mistakes", "Mixes", "Mixtures", "Mobiles", "Mobilities", "Mobs", "Modes", "Modifications", "Momenta", "Moments", "Mondays", "Moneys", "Monitors", "Monkeys", "Monks", "Monopolies", "Monsters", "Months", "Monuments", "Moods", "Moons", "Moralities", "Morals", "Mornings", "Mortgages", "Mothers", "Motions", "Motivations", "Motives", "Motorcycles", "Motorists", "Motors", "Mountains", "Mouths", "Movements", "Moves", "Movies", "Muds", "Mums", "Muscles", "Museums", "Music", "Musicals", "Musicians", "Mysteries", "Myths", "Nails", "Names", "Narratives", "Nationals", "Nations", "Natures", "Navigations", "Necessities", "Necks", "Needles", "Needs", "Negatives", "Neglects", "Negotiations", "Neighbourhoods", "Neighbours", "Nerves", "Nests", "Nets", "Networks", "News", "Newsletters", "Newspapers", "Niches", "Nightmares", "Nights", "Noises", "Nominations", "Nominees", "Nonsenses", "Noons", "Normals", "Norms", "Norths", "Noses", "Notebooks", "Notes", "Notices", "Notions", "Novelists", "Novels", "Novembers", "Numbers", "Nurseries", "Nurses", "Nursings", "Nutritions", "Nuts", "Obesities", "Objections", "Objectives", "Objects", "Obligations", "Observations", "Observers", "Obsessions", "Obstacles", "Occasions", "Occupations", "Occurrences", "Oceans", "Octobers", "Odds", "Offences", "Offerings", "Offers", "Officers", "Offices", "Officials", "Offspring", "Oils", "Onions", "Openings", "Operas", "Operations", "Operators", "Opinions", "Opponents", "Opportunities", "Opposites", "Oppositions", "Optimisms", "Options", "Oranges", "Orchestras", "Orders", "Organizations", "Organizers", "Organs", "Orientations", "Originals", "Origins", "Outbreaks", "Outcomes", "Outfits", "Outings", "Outlets", "Outlines", "Outlooks", "Outputs", "Outrages", "Outsiders", "Outsides", "Ovens", "Owners", "Ownerships", "Oxygens", "Paces", "Packages", "Packets", "Packs", "Pads", "Pages", "Pains", "Painters", "Paintings", "Paints", "Pairs", "Palaces", "Palms", "Panels", "Panics", "Pans", "Pants", "Papers", "Parades", "Paragraphs", "Parallels", "Parameters", "Parents", "Parishes", "Parkings", "Parks", "Parliaments", "Participants", "Participations", "Parties", "Partners", "Partnerships", "Parts", "Passages", "Passengers", "Passes", "Passings", "Passions", "Passports", "Passwords", "Pastors", "Pasts", "Patches", "Patents", "Paths", "Pathways", "Patiences", "Patients", "Patrols", "Patrons", "Patterns", "Pauses", "Payments", "Pays", "Peaces", "Peaks", "Peasants", "Peers", "Penalties", "Pencils", "Pennies", "Pens", "Pensions", "People", "Peoples", "Peppers", "Percentages", "Perceptions", "Performances", "Periods", "Permissions", "Permits", "Personalities", "Personnels", "Perspectives", "Petitions", "Petrols", "Pets", "Phases", "Phenomena", "Philosophers", "Philosophies", "Phones", "Photographers", "Photographies", "Photographs", "Photos", "Phrases", "Physicians", "Physics", "Pianos", "Picks", "Pictures", "Pieces", "Pigs", "Piles", "Pills", "Pilots", "Pinks", "Pins", "Pioneers", "Pipelines", "Pipes", "Pirates", "Pitches", "Pities", "Pits", "Placements", "Places", "Planes", "Planets", "Plannings", "Plans", "Plants", "Plastics", "Plates", "Platforms", "Players", "Plays", "Pleas", "Pleasures", "Pledges", "Plots", "Plugs", "Plus", "Pockets", "Poems", "Poetries", "Poets", "Points", "Poisons", "Poles", "Police", "Policemen", "Policies", "Politicians", "Politics", "Polls", "Pollutions", "Ponds", "Pools", "Pops", "Popularities", "Populations", "Portfolios", "Portions", "Portraits", "Ports", "Positions", "Positives", "Possessions", "Possibilities", "Posters", "Posts", "Potatoes", "Potentials", "Pots", "Pounds", "Poverties", "Powders", "Powers", "Practices", "Practitioners", "Praises", "Prayers", "Precedents", "Precisions", "Predators", "Predecessors", "Predictions", "Preferences", "Pregnancies", "Prejudices", "Premises", "Premiums", "Preparations", "Prescriptions", "Presences", "Presentations", "Presents", "Preservations", "Presidencies", "Presidents", "Presses", "Pressures", "Prevalences", "Preventions", "Preys", "Prices", "Prides", "Priests", "Princes", "Princesses", "Principals", "Principles", "Printers", "Printings", "Prints", "Priorities", "Prisons", "Privacies", "Privatizations", "Privileges", "Prizes", "Probabilities", "Probes", "Problems", "Procedures", "Proceedings", "Proceeds", "Processes", "Processings", "Processors", "Producers", "Produces", "Productions", "Productivities", "Products", "Professionals", "Professions", "Professors", "Profiles", "Profits", "Programmes", "Programmings", "Programs", "Progresses", "Projections", "Projects", "Promises", "Promotions", "Proofs", "Propagandas", "Properties", "Proportions", "Proposals", "Propositions", "Prosecutions", "Prosecutors", "Prospects", "Prosperities", "Protections", "Proteins", "Protesters", "Protests", "Protocols", "Provinces", "Provisions", "Psychologies", "Psychologists", "Publications", "Publicities", "Publics", "Publishings", "Pubs", "Pulls", "Pulses", "Pumps", "Punches", "Punishments", "Punks", "Pupils", "Purchases", "Purples", "Purposes", "Pursuits", "Pushes", "Puzzles", "Qualifications", "Qualities", "Quantities", "Quarters", "Queens", "Queries", "Questionnaires", "Questions", "Quests", "Queues", "Quotas", "Quotations", "Quotes", "Races", "Racings", "Radars", "Radiations", "Radios", "Rages", "Raids", "Rails", "Railways", "Rains", "Rallies", "Ranges", "Rankings", "Ranks", "Rates", "Ratings", "Ratios", "Rats", "Rays", "Reaches", "Reactions", "Readers", "Readings", "Realities", "Realizations", "Realms", "Rears", "Reasonings", "Reasons", "Rebellions", "Rebels", "Receipts", "Receivers", "Receptions", "Recessions", "Recipes", "Recipients", "Recognitions", "Recommendations", "Reconstructions", "Recordings", "Records", "Recoveries", "Recruitments", "Recruits", "Reductions", "Referees", "References", "Referendums", "Reflections", "Reforms", "Refusals", "Regards", "Regimes", "Regions", "Registers", "Registrations", "Regrets", "Regulations", "Regulators", "Rehabilitations", "Reigns", "Rejections", "Relations", "Relationships", "Relatives", "Releases", "Relevances", "Reliabilities", "Reliefs", "Religions", "Remainders", "Remains", "Remarks", "Remedies", "Reminders", "Removals", "Rentals", "Rents", "Repairs", "Repeats", "Replacements", "Replies", "Reporters", "Reportings", "Reports", "Representations", "Representatives", "Reproductions", "Republics", "Reputations", "Requests", "Requirements", "Rescues", "Researchers", "Researches", "Reservations", "Reserves", "Residences", "Residents", "Residues", "Resignations", "Resistances", "Resolutions", "Resorts", "Resources", "Respects", "Responses", "Responsibilities", "Restaurants", "Restorations", "Restraints", "Restrictions", "Rests", "Results", "Retails", "Retirements", "Retreats", "Returns", "Revelations", "Revenges", "Revenues", "Reverses", "Reviews", "Revisions", "Revivals", "Revolutions", "Rewards", "Rhetorics", "Rhythms", "Rices", "Rides", "Rifles", "Rights", "Rings", "Riots", "Rises", "Risks", "Rituals", "Rivals", "Rivers", "Roads", "Robberies", "Robots", "Rockets", "Rocks", "Rods", "Roles", "Rolls", "Romances", "Roofs", "Rooms", "Roots", "Ropes", "Roses", "Rotations", "Rounds", "Routes", "Routines", "Rows", "Rubbers", "Rubbishes", "Rugbies", "Ruins", "Rules", "Rulings", "Rumours", "Runners", "Runnings", "Runs", "Rushes", "Sacrifices", "Safeties", "Sailings", "Sailors", "Sails", "Saints", "Sakes", "Salads", "Salaries", "Sales", "Salts", "Samples", "Sanctions", "Sands", "Sandwiches", "Satellites", "Satisfactions", "Saturdays", "Sauces", "Savings", "Says", "Scales", "Scandals", "Scares", "Scenarios", "Scenes", "Schedules", "Schemes", "Scholars", "Scholarships", "Schools", "Sciences", "Scientists", "Scopes", "Scores", "Scratches", "Screams", "Screenings", "Screens", "Screws", "Scripts", "Scrutinies", "Sculptures", "Seals", "Searches", "Seas", "Seasons", "Seats", "Seconds", "Secretaries", "Secrets", "Sections", "Sectors", "Securities", "Seeds", "Seekers", "Segments", "Selections", "Selves", "Seminars", "Senators", "Sensations", "Senses", "Sensitivities", "Sentences", "Sentiments", "Separations", "Septembers", "Sequences", "Series", "Servants", "Services", "Sessions", "SetUps", "Sets", "Settings", "Settlements", "Settlers", "Shades", "Shadows", "Shakes", "Shames", "Shapes", "Shareholders", "Shares", "Sheep", "Sheets", "Shells", "Shelters", "Shelves", "Shifts", "Shippings", "Ships", "Shirts", "Shocks", "Shoes", "Shootings", "Shoots", "Shoppings", "Shops", "Shores", "Shortages", "Shots", "Shoulders", "Shouts", "Showers", "Shows", "Siblings", "Sides", "Sighs", "Sights", "Signals", "Signatures", "Significances", "Signs", "Silences", "Silks", "Silver", "Similarities", "Simulations", "Singers", "Singings", "Singles", "Sins", "Sirs", "Sites", "Situations", "Sizes", "Sketches", "Skies", "Skiings", "Skills", "Skins", "Skirts", "Skis", "Skulls", "Sleeps", "Slices", "Slides", "Slogans", "Slopes", "Slots", "Smartphones", "Smells", "Smiles", "Smokes", "Smokings", "Snakes", "Snows", "Soaps", "Soccers", "Societies", "Socks", "Softwares", "Soils", "Soldiers", "Solicitors", "Solidarities", "Solids", "Solos", "Solutions", "Songs", "Sons", "Sorts", "Souls", "Sounds", "Soups", "Sources", "Sovereignties", "Spaces", "Spams", "Spans", "Speakers", "Specialists", "Species", "Specifications", "Specimens", "Spectacles", "Spectators", "Spectra", "Speculations", "Speeches", "Speeds", "Spellings", "Spells", "Spendings", "Spheres", "Spices", "Spiders", "Spies", "Spines", "Spins", "Spirits", "Spites", "Splits", "Spokesmen", "Spokespeople", "Sponsors", "Sponsorships", "Spoons", "Sports", "Spotlights", "Spots", "Spouses", "Spreads", "Springs", "Squads", "Squares", "Stabilities", "Stadiums", "Staffs", "Stages", "Stairs", "Stakes", "Stalls", "Stamps", "Stances", "Standards", "Stands", "Stars", "Starts", "Statements", "States", "Stations", "Statistics", "Statues", "Status", "Stays", "Steams", "Steels", "Stems", "Steps", "Stereotypes", "Sticks", "Stimuli", "Stocks", "Stomachs", "Stones", "Stops", "Storages", "Stores", "Stories", "Storms", "Strains", "Strands", "Strangers", "Strategies", "Streams", "Streets", "Strengths", "Stresses", "Stretches", "Strikes", "Strings", "Strips", "Strokes", "Structures", "Struggles", "Students", "Studies", "Studios", "Stuffs", "Styles", "Subjects", "Submissions", "Subscribers", "Subscriptions", "Subsidies", "Substances", "Substitutes", "Substitutions", "Suburbs", "Successes", "Successions", "Successors", "Sufferings", "Sugars", "Suggestions", "Suites", "Suits", "Summaries", "Summers", "Summits", "Sums", "Sundays", "Suns", "Supermarkets", "Supervisions", "Supervisors", "Supplements", "Supplies", "Supporters", "Supports", "Surfaces", "Surgeons", "Surgeries", "Surges", "Surplus", "Surprises", "Surveillances", "Surveys", "Survivals", "Survivors", "Suspects", "Suspensions", "Suspicions", "Sweaters", "Sweets", "Swimmings", "Swims", "Swings", "Switches", "Swords", "Symbols", "Sympathies", "Symptoms", "Syndromes", "Syntheses", "Systems", "TShirts", "Tables", "Tablets", "Tackles", "Tactics", "Tags", "Tails", "Talents", "Tales", "Talks", "Tanks", "Tapes", "Taps", "Targets", "Tasks", "Tastes", "Taxes", "Taxis", "Taxpayers", "Teachers", "Teachings", "Teams", "Tears", "Teas", "Techniques", "Technologies", "Teenagers", "Teens", "Teeth", "Telephones", "Televisions", "Temperatures", "Temples", "Tenants", "Tendencies", "Tennis", "Tensions", "Tents", "Tenures", "Terminals", "Terms", "Terrains", "Territories", "Testimonies", "Testings", "Tests", "Textbooks", "Texts", "Textures", "Thanks", "Theatres", "Thefts", "Themes", "Theologies", "Theories", "Therapies", "Therapists", "Theses", "Thieves", "Things", "Thinkings", "Thirds", "Thoughts", "Threads", "Threats", "Thresholds", "Throats", "Thumbs", "Thursdays", "Tickets", "Tides", "Ties", "Timbers", "Times", "Timings", "Tins", "Tips", "Tissues", "Titles", "Tobaccos", "Todays", "Toes", "Toilets", "Tolerances", "Tolls", "Tomatoes", "Tomorrows", "Tones", "Tongues", "Tonights", "Tonnes", "Tons", "Tools", "Topics", "Tops", "Tortoises", "Totals", "Touches", "Tourisms", "Tourists", "Tournaments", "Tours", "Towels", "Towers", "Towns", "Toys", "Traces", "Tracks", "Trademarks", "Trades", "Tradings", "Traditions", "Traffics", "Tragedies", "Trailers", "Trails", "Trainers", "Trainings", "Trains", "Traits", "Transactions", "Transcripts", "Transfers", "Transformations", "Transitions", "Transits", "Translations", "Transmissions", "Transparencies", "Transportations", "Transports", "Traps", "Traumas", "Travellers", "Travels", "Treasures", "Treaties", "Treatments", "Trees", "Trends", "Trials", "Tribes", "Tribunals", "Tributes", "Tricks", "Tries", "Triggers", "Trios", "Trips", "Triumphs", "Troops", "Trophies", "Troubles", "Trousers", "Trucks", "Trustees", "Trusts", "Truths", "Tsunamis", "Tubes", "Tuesdays", "Tuitions", "Tunes", "Tunnels", "Turnouts", "Turnovers", "Turns", "Tvs", "Twists", "Types", "Tyres", "Umbrellas", "Uncertainties", "Uncles", "Undergraduates", "Understandings", "Underwears", "Unemployments", "Uniforms", "Unions", "Unities", "Units", "Universes", "Universities", "Updates", "Upgrades", "Usages", "Users", "Uses", "Utilities", "Vacations", "Vacuums", "Validities", "Valleys", "Values", "Vans", "Variables", "Variations", "Varieties", "Vegetables", "Vehicles", "Veins", "Ventures", "Venues", "Verdicts", "Verses", "Versions", "Vessels", "Veterans", "Vices", "Victories", "Videos", "Viewers", "Viewpoints", "Views", "Villagers", "Villages", "Violations", "Violences", "Virtues", "Viruses", "Visas", "Visions", "Visitors", "Visits", "Vitamins", "Voices", "Volumes", "Volunteers", "Votes", "Votings", "Vulnerabilities", "Wages", "Waiters", "Waits", "Walks", "Walls", "Wards", "Warehouses", "Warfares", "Warmings", "Warnings", "Warrants", "Warriors", "Washes", "Washings", "Wastes", "Watches", "Waters", "Waves", "Ways", "Weaknesses", "Wealths", "Weathers", "Webs", "Websites", "Weddings", "Wednesdays", "Weeds", "Weekends", "Weeks", "Weights", "Welcomes", "Welfares", "WellBeings", "Wells", "Wests", "Wheat", "Wheels", "Whispers", "Wholes", "Widows", "Widths", "Wildlives", "Willingnesses", "Wills", "Windows", "Winds", "Wines", "Wings", "Winners", "Wins", "Winters", "Wires", "Wisdoms", "Wishes", "Withdrawals", "Witnesses", "Wits", "Wonders", "Woods", "Wools", "Words", "Workers", "Workforces", "Workouts", "Workplaces", "Works", "Workshops", "Worlds", "Worms", "Worries", "Worses", "Worships", "Worsts", "Worths", "Wounds", "Wrists", "Writers", "Writings", "Wrongs", "Yards", "Years", "Yellows", "Yesterdays", "Yields", "Zones"], + _VERB_: ["Abolish", "Absorb", "Accelerate", "Accept", "Access", "Accommodate", "Accompany", "Accomplish", "Account", "Accumulate", "Accuse", "Achieve", "Acknowledge", "Acquire", "Act", "Activate", "Adapt", "Add", "Address", "Adhere", "Adjust", "Administer", "Admire", "Admit", "Adopt", "Advance", "Advertise", "Advise", "Advocate", "Affect", "Afford", "Age", "Agree", "Aid", "Aim", "Alarm", "Alert", "Align", "Allege", "Allocate", "Allow", "Alter", "Amend", "Amount", "Analyse", "Announce", "Annoy", "Answer", "Anticipate", "Apologize", "Appeal", "Appear", "Applaud", "Apply", "Appoint", "Appreciate", "Approach", "Approve", "Argue", "Arise", "Arm", "Arrange", "Arrest", "Arrive", "Articulate", "Ask", "Aspire", "Assemble", "Assert", "Assess", "Assign", "Assist", "Associate", "Assume", "Assure", "Attach", "Attain", "Attempt", "Attend", "Attract", "Attribute", "Authorize", "Average", "Avoid", "Await", "Award", "Back", "Bake", "Balance", "Ban", "Bar", "Base", "Bat", "Battle", "Be", "Bear", "Beat", "Become", "Beg", "Begin", "Behave", "Believe", "Belong", "Bend", "Benefit", "Bet", "Betray", "Bid", "Bill", "Bind", "Bite", "Blame", "Blast", "Blend", "Bless", "Block", "Blow", "Board", "Boast", "Boil", "Book", "Boost", "Border", "Borrow", "Bother", "Bounce", "Bow", "Brand", "Breach", "Break", "Breathe", "Breed", "Bring", "Broadcast", "Brush", "Build", "Burn", "Burst", "Bury", "Buy", "Calculate", "Call", "Calm", "Camp", "Campaign", "Cancel", "Capture", "Care", "Carry", "Carve", "Cast", "Catch", "Cater", "Cause", "Cease", "Celebrate", "Centre", "Chain", "Chair", "Challenge", "Change", "Characterize", "Charge", "Chart", "Chase", "Chat", "Cheat", "Check", "Cheer", "Choose", "Chop", "Circle", "Circulate", "Cite", "Claim", "Clarify", "Classify", "Clean", "Clear", "Click", "Climb", "Cling", "Close", "Coach", "Coincide", "Collaborate", "Collapse", "Collect", "Combat", "Combine", "Come", "Comfort", "Command", "Commence", "Comment", "Commission", "Commit", "Communicate", "Compare", "Compel", "Compensate", "Compete", "Compile", "Complain", "Complement", "Complete", "Comply", "Compose", "Comprise", "Compromise", "Compute", "Conceal", "Concede", "Conceive", "Concentrate", "Concern", "Conclude", "Condemn", "Conduct", "Confer", "Confess", "Confine", "Confirm", "Conflict", "Confront", "Confuse", "Congratulate", "Connect", "Conquer", "Consent", "Conserve", "Consider", "Consist", "Consolidate", "Constitute", "Construct", "Consult", "Consume", "Contact", "Contain", "Contemplate", "Contend", "Contest", "Continue", "Contract", "Contrast", "Contribute", "Control", "Convert", "Convey", "Convict", "Convince", "Cook", "Cool", "Cooperate", "Coordinate", "Cope", "Copy", "Correct", "Correlate", "Correspond", "Cost", "Count", "Counter", "Cover", "Crack", "Craft", "Crash", "Crawl", "Create", "Credit", "Creep", "Criticize", "Cross", "Cruise", "Crush", "Cry", "Cultivate", "Cure", "Curve", "Cut", "Cycle", "Damage", "Dance", "Dare", "Date", "Deal", "Debate", "Decide", "Declare", "Decline", "Decorate", "Decrease", "Deem", "Defeat", "Defend", "Define", "Defy", "Delay", "Delete", "Delight", "Deliver", "Demand", "Demonstrate", "Denounce", "Deny", "Depart", "Depend", "Depict", "Deploy", "Deposit", "Deprive", "Derive", "Descend", "Describe", "Desert", "Deserve", "Design", "Designate", "Desire", "Destroy", "Detail", "Detain", "Detect", "Deteriorate", "Determine", "Devastate", "Develop", "Devise", "Devote", "Diagnose", "Dictate", "Differ", "Differentiate", "Dig", "Diminish", "Dip", "Direct", "Disagree", "Disappear", "Disappoint", "Discard", "Discharge", "Disclose", "Discount", "Discourage", "Discover", "Discuss", "Dislike", "Dismiss", "Displace", "Display", "Dispose", "Dispute", "Disrupt", "Dissolve", "Distinguish", "Distort", "Distract", "Distress", "Distribute", "Disturb", "Dive", "Divert", "Divide", "Divorce", "Do", "Document", "Dominate", "Donate", "Double", "Doubt", "Download", "Draft", "Drag", "Drain", "Draw", "Dream", "Dress", "Drift", "Drink", "Drive", "Drop", "Dry", "Dub", "Dump", "Earn", "Ease", "Eat", "Echo", "Edit", "Educate", "Elect", "Elevate", "Eliminate", "Email", "Embark", "Embed", "Embody", "Embrace", "Emerge", "Emphasize", "Employ", "Empower", "Empty", "Enable", "Enact", "Encompass", "Encounter", "Encourage", "End", "Endorse", "Endure", "Enforce", "Engage", "Enhance", "Enjoy", "Enquire", "Enrich", "Enrol", "Ensue", "Ensure", "Enter", "Entertain", "Entitle", "Equal", "Equip", "Erect", "Erupt", "Escalate", "Escape", "Establish", "Estimate", "Evacuate", "Evaluate", "Evoke", "Evolve", "Exaggerate", "Examine", "Exceed", "Exchange", "Exclude", "Excuse", "Execute", "Exercise", "Exert", "Exhibit", "Exist", "Exit", "Expand", "Expect", "Experience", "Experiment", "Expire", "Explain", "Explode", "Exploit", "Explore", "Export", "Expose", "Express", "Extend", "Extract", "Face", "Facilitate", "Fade", "Fail", "Fall", "Fancy", "Farm", "Fasten", "Favour", "Fear", "Feature", "Feed", "Feel", "Fight", "Figure", "File", "Fill", "Film", "Filter", "Finance", "Find", "Fine", "Finish", "Fire", "Fish", "Fit", "Fix", "Flash", "Flee", "Float", "Flood", "Flourish", "Flow", "Fly", "Focus", "Fold", "Follow", "Forbid", "Force", "Forecast", "Forge", "Forget", "Forgive", "Form", "Formulate", "Foster", "Found", "Frame", "Free", "Freeze", "Frighten", "Fry", "Fuel", "Fulfil", "Function", "Fund", "Gain", "Gather", "Gaze", "Generate", "Get", "Give", "Glance", "Go", "Govern", "Grab", "Grade", "Graduate", "Grant", "Grasp", "Greet", "Grin", "Grind", "Grip", "Grow", "Guarantee", "Guard", "Guess", "Guide", "Hail", "Halt", "Hand", "Handle", "Hang", "Happen", "Harvest", "Haunt", "Have", "Head", "Heal", "Hear", "Heat", "Heighten", "Help", "Hesitate", "Hide", "Highlight", "Hint", "Hire", "Hit", "Hold", "Honour", "Hook", "Hope", "Host", "House", "Hunt", "Hurry", "Identify", "Ignore", "Illustrate", "Imagine", "Impact", "Implement", "Imply", "Import", "Impose", "Impress", "Improve", "Include", "Incorporate", "Increase", "Incur", "Indicate", "Induce", "Indulge", "Infect", "Infer", "Inflict", "Influence", "Inform", "Inherit", "Inhibit", "Initiate", "Inject", "Injure", "Insert", "Insist", "Inspect", "Inspire", "Install", "Instruct", "Insult", "Integrate", "Intend", "Intensify", "Interact", "Interest", "Interfere", "Interpret", "Interrupt", "Intervene", "Interview", "Introduce", "Invade", "Invent", "Invest", "Investigate", "Invite", "Invoke", "Involve", "Iron", "Isolate", "Issue", "Join", "Joke", "Judge", "Jump", "Justify", "Keep", "Key", "Kick", "Kiss", "Knock", "Know", "Label", "Lack", "Land", "Last", "Laugh", "Launch", "Lay", "Lead", "Leak", "Lean", "Leap", "Learn", "Leave", "Lecture", "Lend", "Let", "Level", "License", "Lift", "Light", "Like", "Limit", "Line", "Linger", "Link", "List", "Listen", "Live", "Load", "Lobby", "Locate", "Lock", "Log", "Look", "Loom", "Lose", "Love", "Lower", "Mail", "Maintain", "Make", "Manage", "Manifest", "Manipulate", "Manufacture", "Map", "March", "Mark", "Market", "Marry", "Master", "Match", "Mate", "Matter", "Mature", "Maximize", "Mean", "Measure", "Meet", "Melt", "Mention", "Merge", "Mind", "Minimize", "Miss", "Mistake", "Mix", "Mobilize", "Model", "Modify", "Monitor", "Motivate", "Mount", "Move", "Multiply", "Name", "Narrow", "Need", "Neglect", "Negotiate", "Nod", "Nominate", "Note", "Notice", "Notify", "Number", "Obey", "Object", "Oblige", "Observe", "Obsess", "Obtain", "Occupy", "Occur", "Offend", "Offer", "Open", "Operate", "Oppose", "Opt", "Order", "Organize", "Originate", "Outline", "Outrage", "Overcome", "Overlook", "Oversee", "Overturn", "Overwhelm", "Owe", "Own", "Pace", "Pack", "Package", "Paint", "Park", "Participate", "Pass", "Patrol", "Pause", "Pay", "Perceive", "Perform", "Permit", "Persist", "Persuade", "Phone", "Photograph", "Pick", "Picture", "Pile", "Pin", "Pioneer", "Place", "Plan", "Plant", "Play", "Plead", "Please", "Pledge", "Plot", "Plug", "Plunge", "Point", "Pop", "Portray", "Pose", "Position", "Possess", "Post", "Postpone", "Pour", "Power", "Practise", "Praise", "Pray", "Preach", "Precede", "Predict", "Prefer", "Prepare", "Prescribe", "Present", "Preserve", "Preside", "Press", "Presume", "Pretend", "Prevail", "Prevent", "Price", "Print", "Probe", "Proceed", "Process", "Proclaim", "Produce", "Program", "Progress", "Prohibit", "Project", "Promise", "Promote", "Prompt", "Pronounce", "Propose", "Prosecute", "Protect", "Protest", "Prove", "Provide", "Provoke", "Publish", "Pull", "Pump", "Punch", "Punish", "Purchase", "Pursue", "Push", "Put", "Qualify", "Question", "Queue", "Quit", "Quote", "Race", "Raid", "Rain", "Raise", "Rally", "Range", "Rank", "Rate", "Reach", "React", "Read", "Realize", "Reassure", "Rebuild", "Recall", "Receive", "Reckon", "Recognize", "Recommend", "Record", "Recount", "Recover", "Recruit", "Recycle", "Reduce", "Refer", "Reflect", "Reform", "Refuse", "Regain", "Regard", "Register", "Regret", "Regulate", "Reign", "Reinforce", "Reject", "Relate", "Relax", "Release", "Relieve", "Rely", "Remain", "Remark", "Remember", "Remind", "Remove", "Render", "Renew", "Rent", "Repair", "Repeat", "Replace", "Reply", "Report", "Represent", "Reproduce", "Request", "Require", "Rescue", "Research", "Resemble", "Reserve", "Reside", "Resign", "Resist", "Resolve", "Respect", "Respond", "Rest", "Restore", "Restrict", "Result", "Resume", "Retain", "Retire", "Retreat", "Retrieve", "Return", "Reveal", "Reverse", "Review", "Revise", "Revive", "Reward", "Rid", "Ride", "Ring", "Rip", "Rise", "Risk", "Rob", "Rock", "Roll", "Rotate", "Rub", "Ruin", "Rule", "Run", "Rush", "Sack", "Sacrifice", "Sail", "Sample", "Satisfy", "Save", "Say", "Scan", "Scare", "Schedule", "Score", "Scratch", "Scream", "Screen", "Screw", "Seal", "Search", "Seat", "Secure", "See", "Seek", "Seize", "Select", "Sell", "Send", "Sense", "Sentence", "Separate", "Serve", "Set", "Settle", "Shake", "Shape", "Share", "Shatter", "Shed", "Shelter", "Shift", "Shine", "Ship", "Shock", "Shoot", "Shop", "Shout", "Show", "Shrink", "Shrug", "Shut", "Sigh", "Sign", "Signal", "Simulate", "Sing", "Sink", "Sit", "Ski", "Skip", "Slam", "Slap", "Slash", "Sleep", "Slice", "Slide", "Slip", "Slope", "Slow", "Smash", "Smell", "Smile", "Smoke", "Snap", "Snow", "Soak", "Soar", "Solve", "Sort", "Sound", "Span", "Spare", "Spark", "Speak", "Specialize", "Specify", "Speculate", "Speed", "Spell", "Spend", "Spill", "Spin", "Split", "Spoil", "Sponsor", "Spot", "Spread", "Spring", "Spy", "Squeeze", "Stab", "Stabilize", "Stage", "Stand", "Star", "Stare", "Start", "Starve", "State", "Stay", "Steal", "Steer", "Stem", "Step", "Stick", "Stimulate", "Stir", "Stop", "Store", "Strengthen", "Stress", "Stretch", "Strike", "Strip", "Strive", "Structure", "Struggle", "Study", "Stuff", "Stumble", "Stun", "Submit", "Substitute", "Succeed", "Sue", "Suffer", "Suggest", "Suit", "Sum", "Summarize", "Supervise", "Supplement", "Supply", "Support", "Suppose", "Suppress", "Surge", "Surprise", "Surrender", "Surround", "Survey", "Survive", "Suspect", "Suspend", "Sustain", "Swallow", "Swear", "Sweep", "Swim", "Swing", "Switch", "Tackle", "Tag", "Take", "Talk", "Tap", "Target", "Taste", "Tax", "Teach", "Tear", "Telephone", "Tell", "Tempt", "Tend", "Term", "Terminate", "Terrify", "Test", "Testify", "Text", "Thank", "Think", "Thrive", "Throw", "Tidy", "Tie", "Tighten", "Time", "Tip", "Title", "Tolerate", "Top", "Toss", "Total", "Touch", "Tour", "Trace", "Track", "Trade", "Trail", "Train", "Transfer", "Transform", "Translate", "Transmit", "Transport", "Trap", "Travel", "Treat", "Trick", "Trigger", "Trip", "Trouble", "Trust", "Try", "Turn", "Twist", "Type", "Undergo", "Undermine", "Understand", "Undertake", "Unfold", "Unify", "Unite", "Unveil", "Update", "Upgrade", "Uphold", "Upset", "Urge", "Use", "Utilize", "Value", "Vanish", "Vary", "Venture", "Verify", "View", "Visit", "Volunteer", "Vote", "Vow", "Wait", "Wake", "Walk", "Wander", "Want", "Warm", "Warn", "Warrant", "Wash", "Waste", "Watch", "Water", "Wave", "Weaken", "Wear", "Weave", "Weigh", "Welcome", "Whip", "Whisper", "Widen", "Win", "Wind", "Wipe", "Wish", "Withdraw", "Witness", "Wonder", "Work", "Worry", "Worship", "Wound", "Wrap", "Write", "Yell", "Yield"] + }, zq = ["_ADJECTIVE__PLURALNOUN__VERB__ADVERB_"]; + + function Lq() { + let e = Oq(zq); + for (; Fq(e);) + for (const t in Rq) { + const n = Oq(Rq[t]); + e = e.replace(t, n) + } + return e + } - function mN(e, t) { - return { - type: JI, - conference: e, - participant: t - } + function Fq(e) { + for (const t in Rq) + if (e.indexOf(t) >= 0) return !0; + return !1 + } + const qq = $e("features/overlay"); class Bq extends x.Component { + render() { + return C().createElement("button", { + className: "button-control button-control_overlay button-control_center", + onClick: this.props._reloadNow + }, this.props.t(this.props.textKey)) } - - function fN(e, t) { - return { - type: ZI, - conference: e, - locked: t + } + const Uq = Ei(Ne(void 0, (function(e) { + return { + _reloadNow() { + e(rB()) } } - - function gN(e, t) { - return { - type: iN, - startAudioMutedPolicy: e, - startVideoMutedPolicy: t - } + }))(Bq)); class Hq extends x.Component { + static needsRender(e) { + return "undefined" == typeof APP ? Boolean(e["features/overlay"].fatalError) : this.needsRenderWeb(e) } - - function bN(e) { - return { - type: eN, - enabled: e - } + static needsRenderWeb(e) { + const t = e["features/base/conference"].error, + n = e["features/base/config"].error, + a = e["features/base/connection"].error; + return a && st(a) || t && ot(t) || n } - - function yN(e, t, n) { - return (a, r) => { - switch (t) { - case e.join: { - let i = r()["features/base/conference"]; - a({ - type: tN, - conference: e, - method: t, - password: n - }), i = r()["features/base/conference"], i.password !== n || i.conference || t.call(e, n); - break + constructor(e) { + super(e); + const t = 10 + Nq(0, 20); + let n, a; + this.props.isNetworkFailure ? (a = "dialog.conferenceDisconnectTitle", n = "dialog.conferenceDisconnectMsg") : (a = "dialog.conferenceReloadTitle", n = "dialog.conferenceReloadMsg"), this.state = { + message: n, + timeLeft: t, + timeoutSeconds: t, + title: a + } + } + componentDidMount() { + "undefined" != typeof APP && APP.conference && APP.conference._room && APP.conference._room.sendApplicationLog(JSON.stringify({ + name: "page.reload", + label: this.props.reason + })), Da(function(e, t, n) { + return { + action: "page.reload.scheduled", + attributes: { + reason: e, + timeout: t, + ...n } - case e.lock: - return r()["features/base/conference"].conference === e ? t.call(e, n).then((() => a({ - type: tN, - conference: e, - method: t, - password: n - }))).catch((e => a({ - type: nN, - error: e - }))) : Promise.reject() } - } + }(this.props.reason, this.state.timeoutSeconds, this.props.details)), qq.info(`The conference will be reloaded after ${this.state.timeoutSeconds} seconds.`), this._interval = setInterval((() => { + 0 === this.state.timeLeft ? (this._interval && (clearInterval(this._interval), this._interval = void 0), this.props.dispatch(rB())) : this.setState((e => ({ + timeLeft: e.timeLeft - 1 + }))) + }), 1e3) } - - function vN(e) { - return (t, n) => { - const { - conference: a - } = n()["features/base/conference"]; - a ? a.setSubject(e || "") : t({ - type: aN, - subject: e - }) - } + componentWillUnmount() { + this._interval && (clearInterval(this._interval), this._interval = void 0) } - const kN = "MEDIA_PERMISSION_PROMPT_VISIBILITY_CHANGED", - _N = "TOGGLE_SLOW_GUM_OVERLAY", - wN = "SET_FATAL_ERROR"; - - function SN(e, t) { - return { - type: kN, - browser: t, - isVisible: e - } + _renderButton() { + return this.props.isNetworkFailure ? C().createElement(Uq, { + textKey: "dialog.rejoinNow" + }) : null } - - function EN(e) { - return { - type: _N, - isVisible: e - } + _renderProgressBar() { + const { + timeLeft: e, + timeoutSeconds: t + } = this.state, n = t - e, a = Math.floor(n / t * 100); + return C().createElement("div", { + className: "progress-indicator", + id: "reloadProgressBar" + }, C().createElement("div", { + className: "progress-indicator-fill", + style: { + width: `${a}%` + } + })) } - - function xN(e) { - return { - type: wN, - fatalError: e - } + } + const Vq = Ei(Ne((function(e) { + const { + error: t + } = e["features/base/config"], { + error: n + } = e["features/base/connection"], { + fatalError: a + } = e["features/overlay"]; + return { + details: a && a.details, + error: a, + isNetworkFailure: a === t || a === n, + reason: a && (a.message || a.name) + } + }))(class extends Hq { + render() { + const { + isNetworkFailure: e, + t + } = this.props, { + message: n, + timeLeft: a, + title: r + } = this.state; + return C().createElement(Iq, { + isLightOverlay: e + }, C().createElement("div", { + "aria-describedby": "reload_overlay_text", + "aria-labelledby": "reload_overlay_title", + className: "inlay", + role: "dialog" + }, C().createElement("span", { + className: "reload_overlay_title", + id: "reload_overlay_title", + role: "heading" + }, t(r)), C().createElement("span", { + className: "reload_overlay_text", + id: "reload_overlay_text" + }, t(n, { + seconds: a + })), this._renderProgressBar(), this._renderButton())) } - class CN extends E.Component { - render() { - return x().createElement("div", { - className: this.props.isLightOverlay ? "overlay__container-light" : "overlay__container", - id: "overlay" - }, x().createElement("div", { - className: "overlay__content" - }, this.props.children)) - } + })); class Wq extends x.Component { + static needsRender(e) { + return e["features/power-monitor"].suspendDetected } - - function AN(e) { - return e[jN(0, e.length - 1)] + } + const Yq = Ei(class extends Wq { + render() { + const { + t: e + } = this.props; + return C().createElement(Iq, null, C().createElement("div", { + className: "inlay" + }, C().createElement("span", { + className: "inlay__icon icon-microphone" + }), C().createElement("span", { + className: "inlay__icon icon-camera" + }), C().createElement("h3", { + className: "inlay__title" + }, e("suspendedoverlay.title")), C().createElement(Uq, { + textKey: "suspendedoverlay.rejoinKeyTitle" + }))) } - - function jN(e, t) { - return Math.floor(Math.random() * (t - e + 1)) + e + }); class Gq extends x.Component { + static needsRender(e) { + return e["features/overlay"].isMediaPermissionPromptVisible } - const PN = { - _ADJECTIVE_: ["Able", "Absent", "Absolute", "Abstract", "Absurd", "Academic", "Acceptable", "Accessible", "Accountable", "Accurate", "Acid", "Active", "Actual", "Acute", "Additional", "Adequate", "Adjacent", "Administrative", "Adult", "Advance", "Advanced", "Adverse", "Aesthetic", "Affordable", "Afraid", "Aged", "Agricultural", "Alert", "Alien", "Alike", "Alive", "Alone", "Alternative", "Amateur", "Amazed", "Amazing", "Ambitious", "Amusing", "Ancient", "Angry", "Annoyed", "Annoying", "Annual", "Anonymous", "Anxious", "Apparent", "Appealing", "Applicable", "Appropriate", "Arbitrary", "Architectural", "Artificial", "Artistic", "Ashamed", "Asleep", "Assistant", "Associated", "Astonishing", "Attractive", "Audio", "Authentic", "Automatic", "Available", "Average", "Aware", "Awful", "Awkward", "Back", "Bad", "Balanced", "Bare", "Based", "Basic", "Beautiful", "Beloved", "Beneficial", "Bent", "Best", "Better", "Big", "Biological", "Bitter", "Bizarre", "Blank", "Blind", "Blonde", "Blue", "Bold", "Bored", "Boring", "Bottom", "Bound", "Brave", "Brief", "Bright", "Brilliant", "Broad", "Broken", "Brown", "Busy", "Calm", "Capable", "Capital", "Capitalist", "Careful", "Careless", "Casual", "Cautious", "Central", "Certain", "Challenging", "Characteristic", "Charming", "Cheap", "Cheerful", "Chemical", "Chief", "Chronic", "Civic", "Civil", "Civilian", "Classic", "Classical", "Clean", "Clear", "Clever", "Clinical", "Close", "Closed", "Coastal", "Cognitive", "Cold", "Collective", "Colonial", "Coloured", "Colourful", "Comfortable", "Comic", "Commercial", "Common", "Communist", "Comparable", "Comparative", "Compelling", "Competent", "Competitive", "Complete", "Complex", "Complicated", "Comprehensive", "Compulsory", "Concerned", "Concrete", "Confident", "Confused", "Confusing", "Congressional", "Connected", "Conscious", "Consecutive", "Conservative", "Considerable", "Consistent", "Constant", "Constitutional", "Contemporary", "Content", "Continuous", "Contrary", "Controversial", "Convenient", "Conventional", "Convinced", "Convincing", "Cool", "Cooperative", "Core", "Corporate", "Correct", "Corresponding", "Costly", "Countless", "Covered", "Cream", "Creative", "Credible", "Critical", "Crowded", "Crucial", "Crude", "Cruel", "Cult", "Cultural", "Curious", "Curly", "Current", "Curved", "Cute", "Cynical", "Daily", "Dairy", "Damaging", "Dangerous", "Dark", "Dead", "Dear", "Decent", "Decisive", "Dedicated", "Deep", "Defensive", "Definite", "Deliberate", "Delicate", "Delicious", "Delighted", "Democratic", "Dense", "Dependent", "Depressed", "Depressing", "Desirable", "Desperate", "Destructive", "Detailed", "Determined", "Different", "Difficult", "Digital", "Diplomatic", "Direct", "Dirty", "Disabled", "Disappointed", "Disappointing", "Disastrous", "Dishonest", "Distant", "Distinct", "Distinctive", "Disturbing", "Diverse", "Divine", "Divorced", "Domestic", "Dominant", "Double", "Downstairs", "Downtown", "Dramatic", "Dressed", "Driving", "Dry", "Dual", "Due", "Dull", "Dumb", "Dynamic", "Eager", "Early", "East", "Eastern", "Easy", "Ecological", "Economic", "Editorial", "Educated", "Educational", "Effective", "Efficient", "Elaborate", "Elderly", "Electoral", "Electric", "Electrical", "Electronic", "Elegant", "Elementary", "Eligible", "Embarrassed", "Embarrassing", "Emotional", "Empirical", "Empty", "Encouraging", "Endless", "Engaged", "Engaging", "Enjoyable", "Enormous", "Entertaining", "Enthusiastic", "Entire", "Environmental", "Equal", "Equivalent", "Essential", "Eternal", "Ethical", "Ethnic", "Even", "Everyday", "Evident", "Evil", "Evolutionary", "Exact", "Excellent", "Exceptional", "Excess", "Excessive", "Excited", "Exciting", "Exclusive", "Executive", "Exotic", "Expected", "Expensive", "Experienced", "Experimental", "Expert", "Explicit", "Explosive", "Extensive", "External", "Extra", "Extraordinary", "Extreme", "Fabulous", "Failed", "Fair", "Fake", "False", "Familiar", "Family", "Famous", "Fancy", "Fantastic", "Far", "Fascinating", "Fashionable", "Fast", "Fat", "Fatal", "Favourable", "Favourite", "Federal", "Fellow", "Feminist", "Few", "Fierce", "Final", "Financial", "Fine", "Firm", "Fit", "Fixed", "Flat", "Flawed", "Flexible", "Flying", "Folding", "Folk", "Following", "Fond", "Foreign", "Formal", "Former", "Forthcoming", "Fortunate", "Forward", "Fragile", "Free", "Frequent", "Fresh", "Friendly", "Frightened", "Frightening", "Front", "Frozen", "Frustrated", "Frustrating", "Full", "FullTime", "Fun", "Functional", "Fundamental", "Funny", "Furious", "Further", "Future", "General", "Generic", "Generous", "Genetic", "Gentle", "Genuine", "Giant", "Glad", "Global", "Glorious", "Gold", "Golden", "Good", "Gorgeous", "Grand", "Graphic", "Grateful", "Grave", "Great", "Green", "Grey", "Gross", "Guilty", "Handy", "Happy", "Hard", "Harmful", "Harsh", "Healthy", "Heavy", "Helpful", "Hidden", "High", "HighProfile", "Hilarious", "Historic", "Historical", "Hollow", "Holy", "Home", "Homeless", "Honest", "Hopeful", "Horrible", "Hot", "Huge", "Human", "Humanitarian", "Humble", "Humorous", "Hungry", "Hurt", "Ideal", "Identical", "Ideological", "Ill", "Illegal", "Imaginary", "Immediate", "Immense", "Imminent", "Immune", "Impatient", "Important", "Impossible", "Impressed", "Impressive", "Inadequate", "Inappropriate", "Inclined", "Included", "Incorrect", "Incredible", "Independent", "Indigenous", "Indirect", "Individual", "Indoor", "Industrial", "Inevitable", "Infamous", "Influential", "Informal", "Inherent", "Initial", "Injured", "Inner", "Innocent", "Innovative", "Inside", "Instant", "Institutional", "Instrumental", "Insufficient", "Intact", "Integral", "Integrated", "Intellectual", "Intelligent", "Intended", "Intense", "Intensive", "Interactive", "Interested", "Interesting", "Interim", "Interior", "Intermediate", "Internal", "International", "Intimate", "Intriguing", "Invisible", "Involved", "Ironic", "Irrelevant", "Isolated", "Joint", "Judicial", "Junior", "Just", "Keen", "Key", "Kind", "Large", "LargeScale", "Late", "Later", "Latest", "Latter", "Lazy", "Leading", "Left", "Legal", "Legendary", "Legislative", "Legitimate", "Lengthy", "Lesser", "Level", "Liable", "Liberal", "Lifelong", "Light", "Likely", "Limited", "Linear", "Liquid", "Literary", "Little", "Live", "Lively", "Living", "Local", "Located", "Logical", "Lonely", "Long", "LongStanding", "LongTerm", "LongTime", "Loose", "Lost", "Loud", "Lovely", "Low", "Loyal", "Lucky", "Luxury", "Mad", "Magic", "Magical", "Magnetic", "Magnificent", "Main", "Mainstream", "Major", "Mandatory", "Marginal", "Marine", "Married", "Martial", "Mass", "Massive", "Matching", "Material", "Mathematical", "Mature", "Maximum", "Meaningful", "Mechanical", "Medical", "Medieval", "Medium", "Memorable", "Mental", "Mere", "Middle", "Mild", "Minimal", "Minimum", "Minute", "Miserable", "Misleading", "Missing", "Mixed", "Mobile", "Moderate", "Modern", "Modest", "Monthly", "Moral", "Motor", "Moving", "Multiple", "Municipal", "Musical", "Mutual", "Mysterious", "Narrative", "Narrow", "National", "Nationwide", "Native", "Natural", "Naval", "Near", "Nearby", "Neat", "Necessary", "Negative", "Neighbouring", "Nervous", "Net", "Neutral", "New", "Next", "Nice", "Noble", "Noisy", "NonProfit", "Normal", "North", "Northern", "Notable", "Notorious", "Novel", "Nuclear", "Numerous", "Objective", "Obvious", "Occasional", "Odd", "Offensive", "Official", "Ok", "Old", "OldFashioned", "Ongoing", "Online", "Only", "Open", "Operational", "Opposed", "Opposite", "Optical", "Optimistic", "Orange", "Ordinary", "Organic", "Organizational", "Organized", "Original", "Other", "Outdoor", "Outer", "Outside", "Outstanding", "Overall", "Overseas", "Overwhelming", "Own", "Painful", "Pale", "Parallel", "Parental", "Parliamentary", "PartTime", "Partial", "Particular", "Passionate", "Passive", "Past", "Patient", "Peaceful", "Peculiar", "Perfect", "Permanent", "Persistent", "Personal", "Philosophical", "Physical", "Pink", "Plain", "Plastic", "Pleasant", "Pleased", "Plus", "Pointed", "Poisonous", "Polite", "Political", "Poor", "Pop", "Popular", "Positive", "Possible", "PostWar", "Potential", "Powerful", "Practical", "Precious", "Precise", "Predictable", "Preliminary", "Premier", "Prepared", "Present", "Presidential", "Prestigious", "Pretty", "Previous", "Primary", "Prime", "Principal", "Prior", "Private", "Probable", "Problematic", "Productive", "Professional", "Profitable", "Profound", "Progressive", "Prominent", "Promising", "Pronounced", "Proper", "Prospective", "Protective", "Proud", "Provincial", "Psychiatric", "Psychological", "Public", "Pure", "Purple", "Qualified", "Quick", "Quiet", "Radical", "Random", "Rapid", "Rare", "Rational", "Raw", "Ready", "Real", "Realistic", "Rear", "Reasonable", "Recent", "Red", "Regional", "Regular", "Regulatory", "Related", "Relative", "Relaxed", "Relaxing", "Relevant", "Reliable", "Relieved", "Religious", "Reluctant", "Remarkable", "Remote", "Renowned", "Repeated", "Representative", "Resident", "Residential", "Respective", "Responsible", "Retired", "Reverse", "Revolutionary", "Rich", "Ridiculous", "Right", "Risky", "Rival", "Robust", "Romantic", "Rough", "Round", "Routine", "Royal", "Rubber", "Rude", "Rural", "Sacred", "Sad", "Safe", "Same", "Satisfied", "Scary", "Scattered", "Sceptical", "Scientific", "Secondary", "Secret", "Secular", "Secure", "Selective", "Senior", "Sensible", "Sensitive", "Separate", "Serial", "Serious", "Severe", "Shallow", "Shaped", "Sharp", "Sheer", "Shiny", "Shocked", "Shocking", "Short", "ShortTerm", "Shut", "Shy", "Significant", "Silent", "Silly", "Silver", "Similar", "Simple", "Sincere", "Single", "Situated", "Ski", "Skilled", "Slight", "Slow", "Small", "Smart", "Smooth", "SoCalled", "Social", "Socialist", "Soft", "Solar", "Sole", "Solid", "Solo", "Sophisticated", "Sound", "South", "Spare", "Special", "Specialist", "Specialized", "Specific", "Spectacular", "Spicy", "Spiritual", "Spoken", "Sporting", "Square", "Stable", "Standard", "Standing", "Stark", "State", "Statistical", "Steady", "Steep", "Sticky", "Stiff", "Still", "Straight", "Straightforward", "Strange", "Strategic", "Strict", "Striking", "Strong", "Structural", "Stunning", "Subject", "Subsequent", "Substantial", "Subtle", "Suburban", "Successful", "Successive", "Sudden", "Sufficient", "Suitable", "Super", "Superb", "Superior", "Supportive", "Supreme", "Sure", "Surgical", "Surprised", "Surprising", "Surrounding", "Suspicious", "Sustainable", "Sweet", "Symbolic", "Sympathetic", "Systematic", "Tactical", "Talented", "Tall", "Technical", "Technological", "Temporary", "Tender", "Terminal", "Terrible", "Terrific", "Theatrical", "Theoretical", "Thick", "Thin", "Thirsty", "Thorough", "ThoughtProvoking", "Thoughtful", "Thrilled", "Tidy", "Tight", "Timely", "Tiny", "Tired", "Top", "Total", "Tough", "Toxic", "Toy", "Traditional", "Transparent", "Tremendous", "Tribal", "Tropical", "True", "Twin", "Typical", "Ultimate", "Unable", "Unacceptable", "Uncomfortable", "Underground", "Underlying", "Unemployed", "Unexpected", "Unfair", "Unfortunate", "Unique", "United", "Universal", "Unknown", "Unlikely", "Unnecessary", "Unpleasant", "Unprecedented", "Unusual", "Upcoming", "Upper", "Upset", "Upstairs", "Urban", "Urgent", "Used", "Useful", "Useless", "Usual", "Vague", "Valid", "Valuable", "Variable", "Varied", "Various", "Vast", "Verbal", "Vertical", "Very", "Viable", "Vibrant", "Virtual", "Visible", "Visual", "Vital", "Vocal", "Voluntary", "Vulnerable", "Warm", "Waste", "Weak", "Wealthy", "Weekly", "Weird", "Welcome", "Well", "West", "Western", "Wet", "White", "Whole", "Wide", "Widespread", "Wild", "Willing", "Wise", "Wonderful", "Wooden", "Working", "Worldwide", "Worried", "Worse", "Worst", "Worth", "Worthwhile", "Worthy", "Written", "Wrong", "Yellow"], - _ADVERB_: ["About", "Above", "Abroad", "Absently", "Absolutely", "Accidentally", "Accordingly", "Accurately", "Accusingly", "Across", "Actually", "Additionally", "Adequately", "Adorably", "After", "Afterwards", "Again", "Ago", "Ahead", "Alike", "All", "Allegedly", "AllTheTime", "Almost", "Alone", "Along", "Already", "Also", "Altogether", "Always", "Amazingly", "Angrily", "Annually", "Anxiously", "Any", "Anyway", "Anywhere", "Apart", "Appallingly", "Apparently", "Appropriately", "Approximately", "Arguably", "Around", "Articulately", "As", "Aside", "Astonishingly", "Automatically", "Away", "Back", "Backwards", "Badly", "Barely", "Basically", "Beautifully", "Before", "Behind", "Below", "Besides", "Best", "Better", "Between", "Beyond", "Blindly", "Bravely", "Briefly", "Brightly", "Briskly", "Broadly", "By", "Calmly", "Carefully", "Casually", "Cautiously", "Certainly", "Cheaply", "Clearly", "Cleverly", "Close", "Closely", "Commonly", "Completely", "Consequently", "Considerably", "Consistently", "Constantly", "Continually", "Correctly", "Crazily", "Critically", "Curiously", "Currently", "Cynically", "Daily", "Dangerously", "Deeply", "Definitely", "Deliberately", "Delicately", "Desperately", "Differently", "Directly", "Discreetly", "Double", "Down", "Downstairs", "Downtown", "Downwards", "Dramatically", "Each", "Eagerly", "Early", "Easily", "East", "Effectively", "Efficiently", "Either", "Else", "Elsewhere", "Emotionally", "Enough", "Entirely", "Equally", "Especially", "Essentially", "Euphoricly", "Even", "Evenly", "Eventually", "Ever", "Everywhere", "Exactly", "Exclusively", "Expectantly", "Explicitly", "Extensively", "Extra", "Extremely", "Fairly", "Far", "Fast", "Ferociously", "Fiercely", "Finally", "Finely", "Firmly", "First", "Firstly", "Flatly", "Forever", "Formerly", "Forth", "Fortunately", "Forward", "Frankly", "Free", "Freely", "Frequently", "Frighteningly", "FullTime", "Fully", "Fundamentally", "Further", "Furthermore", "Generally", "Gently", "Genuinely", "Gloriously", "Gradually", "Greatly", "Grimly", "Guiltily", "Half", "Halfway", "Happily", "Hard", "Hardly", "Hastily", "Heavily", "Hence", "Here", "Heroically", "High", "Highly", "Home", "Hopefully", "Hourly", "How", "However", "Humbly", "Hysterically", "Immediately", "Immensely", "Impartially", "Impolitely", "In", "Increasingly", "Incredibly", "Indeed", "Indifferently", "Indoors", "Inevitably", "Initially", "Inside", "Instantly", "Instead", "Intensely", "Ironically", "Jealously", "Jovially", "Just", "Kindly", "Largely", "Last", "Late", "Lately", "Later", "Lazily", "Least", "Left", "Less", "Lightly", "Likewise", "Literally", "Little", "Live", "Long", "LongTerm", "Lot", "Loud", "Loudly", "Lovingly", "Low", "Loyally", "Magnificently", "Mainly", "Maybe", "Meanwhile", "Merely", "Merrily", "Mightily", "Miserably", "More", "Moreover", "Most", "Mostly", "Much", "Mysteriously", "Namely", "Naturally", "Near", "Nearby", "Nearly", "Necessarily", "Neither", "Nervously", "Never", "Nevertheless", "Newly", "Next", "Nicely", "Nonetheless", "Nor", "Normally", "North", "Not", "NOT", "Notably", "Now", "Nowadays", "Nowhere", "Objectively", "Obnoxiously", "Obsessively", "Obviously", "Occasionally", "Off", "Often", "Ok", "On", "Once", "Online", "Only", "Openly", "Opposite", "Originally", "Otherwise", "Out", "Outdoors", "Outside", "Over", "Overall", "Overly", "Overnight", "Overseas", "Painfully", "Partially", "Particularly", "Partly", "Past", "Patiently", "Perfectly", "Perhaps", "Permanently", "Personally", "Playfully", "Politely", "Poorly", "Possibly", "Potentially", "Precisely", "Predominantly", "Presently", "Presumably", "Pretty", "Previously", "Primarily", "Probably", "Promptly", "Properly", "Purely", "Quickly", "Quietly", "Quite", "Randomly", "Rapidly", "Rarely", "Rather", "Readily", "Really", "Reasonably", "Recently", "Recklessly", "Regardless", "Regularly", "Relatively", "Remarkably", "Remorsefully", "Reportedly", "Respectively", "Responsibly", "Right", "Roughly", "Round", "Rudely", "Ruthlessly", "Sadly", "Same", "Scornfully", "Seamlessly", "Second", "Secondly", "Seemingly", "Seldom", "Selfishly", "Seriously", "Severely", "Shakily", "Sharply", "Shortly", "Sideways", "Significantly", "Silently", "Similarly", "Simply", "Simultaneously", "Since", "Sleepily", "Slightly", "Slowly", "Slyly", "Smoothly", "So", "Softly", "Solely", "Solemnly", "Somehow", "Sometime", "Sometimes", "Somewhat", "Somewhere", "Soon", "South", "Specifically", "Steadily", "Sternly", "Still", "Straight", "Strangely", "Strictly", "Strongly", "Stunningly", "Subsequently", "Substantially", "Successfully", "Suddenly", "Sufficiently", "Supposedly", "Sure", "Surely", "Temporarily", "Tenderly", "Terribly", "Thankfully", "That", "Then", "There", "Thereafter", "Thereby", "Therefore", "This", "Thoroughly", "Though", "Thoughtfully", "Through", "Throughout", "Thus", "Tightly", "Today", "Together", "Tomorrow", "Tonight", "Too", "Totally", "Truly", "Twice", "Typically", "Ultimately", "Under", "Underground", "Undoubtedly", "Uneasily", "Unfortunately", "Up", "Upstairs", "Upwards", "Usually", "Utterly", "Vanishingly", "Very", "Warmly", "Way", "Weakly", "Wearily", "Weekly", "Weirdly", "Well", "West", "Whatever", "Whatsoever", "When", "Where", "Whereby", "Wholly", "Why", "Wickedly", "Widely", "Wildly", "Wisely", "Wonderfully", "Worldwide", "Worse", "Worst", "Wrong", "Yearly", "Yesterday", "Yet"], - _PLURALNOUN_: ["Abilities", "Absences", "Abundances", "Academics", "Academies", "Accents", "Acceptances", "Accesses", "Accidents", "Accommodations", "Accomplishments", "Accordances", "Accountabilities", "Accountants", "Accounts", "Accumulations", "Accuracies", "Accusations", "Accused", "Achievements", "Acids", "Acquisitions", "Acres", "Actions", "Activations", "Activists", "Activities", "Actors", "Actresses", "Acts", "Adaptations", "Addictions", "Additions", "Addresses", "Adjustments", "Administrations", "Administrators", "Admissions", "Adolescents", "Adoptions", "Ads", "Adults", "Advances", "Advantages", "Adventures", "Advertisements", "Advertisings", "Advice", "Advocates", "Affairs", "Affections", "Aftermaths", "Afternoons", "Agencies", "Agendas", "Agents", "Ages", "Aggressions", "Agreements", "Agricultures", "Aides", "Alarms", "Albums", "Alerts", "Aliens", "Alignments", "Allegations", "Alliances", "Allies", "Allocations", "Allowances", "Alternatives", "Aluminium", "Amateurs", "Ambassadors", "Ambitions", "Ambulances", "Amendments", "Amounts", "Analogies", "Analyses", "Analysts", "Ancestors", "Anchors", "Angels", "Angers", "Angles", "Animals", "Animations", "Ankles", "Anniversaries", "Announcements", "Answers", "Anxieties", "Apartments", "Apologies", "Apparatus", "Appeals", "Appearances", "Appetites", "Apples", "Applicants", "Applications", "Appointments", "Appreciations", "Approaches", "Approvals", "Apps", "Aprils", "Architects", "Architectures", "Archives", "Areas", "Arenas", "Arguments", "Armies", "Arrangements", "Arrays", "Arrests", "Arrivals", "Arrows", "Articles", "Artists", "Arts", "Artworks", "Ashes", "Aspects", "Aspirations", "Assaults", "Assemblies", "Assertions", "Assessments", "Assets", "Assignments", "Assistances", "Assistants", "Associations", "Assumptions", "Assurances", "Asylums", "Athletes", "Atmospheres", "Attachments", "Attacks", "Attempts", "Attendances", "Attentions", "Attitudes", "Attorneys", "Attractions", "Attributes", "Auctions", "Audiences", "Audits", "Augusts", "Aunts", "Authorities", "Authors", "Autonomies", "Autos", "Autumns", "Availabilities", "Averages", "Awards", "Awarenesses", "Babies", "Backdrops", "Backgrounds", "Backings", "Backs", "Backups", "Bacterias", "Badges", "Bags", "Bails", "Balances", "Ballets", "Balloons", "Ballots", "Balls", "Bananas", "Bands", "Banks", "Banners", "Bans", "Bargains", "Barrels", "Barriers", "Bars", "Baseballs", "Basements", "Bases", "Basketballs", "Baskets", "Basses", "Bathrooms", "Baths", "Bats", "Batteries", "Battlefields", "Battles", "Bays", "Beaches", "Beams", "Beans", "Bears", "Beasts", "Beats", "Beauties", "Bedrooms", "Beds", "Beefs", "Beers", "Bees", "Beginnings", "Behalves", "Behaviours", "Beings", "Beliefs", "Bells", "Belts", "Benches", "Benchmarks", "Bends", "Beneficiaries", "Benefits", "Bests", "Bets", "Betters", "Biases", "Bicycles", "Bids", "Bikes", "Bills", "Bins", "Biographies", "Biologies", "Birds", "Birthdays", "Births", "Biscuits", "Bishops", "Bites", "Bits", "Blades", "Blames", "Blankets", "Blanks", "Blasts", "Blends", "Blessings", "Blocks", "Blogs", "Bloods", "Blows", "Blues", "Boards", "Boats", "Bonds", "Bones", "Bonus", "Bookings", "Books", "Booms", "Boosts", "Boots", "Borders", "Bosses", "Bottles", "Boundaries", "Bowls", "Bows", "Boxes", "Brains", "Branches", "Brands", "Breaches", "Breads", "Breakdowns", "Breakfasts", "Breaks", "Breakthroughs", "Breathings", "Breaths", "Breeds", "Brethren", "Bricks", "Brides", "Bridges", "Broadbands", "Broadcasters", "Broadcasts", "Browsers", "Brushes", "Bubbles", "Bucks", "Buddies", "Budgets", "Buffers", "Bugs", "Buildings", "Bulks", "Bullets", "Bunches", "Burdens", "Bureaucracies", "Burials", "Burns", "Buses", "Bushes", "Businesses", "Businessmen", "Butters", "Buttons", "Cabinets", "Cabins", "Cables", "Cafes", "Cakes", "Calculations", "Calls", "Calms", "Cameras", "Campaigns", "Campings", "Camps", "Campus", "Canals", "Candidates", "Candles", "Cans", "Canvas", "Capabilities", "Capacities", "Capitalisms", "Capitals", "Caps", "Captains", "Captures", "Carbons", "Cards", "Careers", "Cares", "Cargoes", "Carpets", "Carriages", "Carrots", "Cars", "Cartoons", "Cases", "Cashes", "Casinos", "Castles", "Casts", "Catalogues", "Catches", "Categories", "Cats", "Cattle", "Causes", "Cautions", "Caves", "Cds", "Ceilings", "Celebrations", "Celebrities", "Cells", "Cemeteries", "Centres", "Cents", "Centuries", "Ceremonies", "Certainties", "Certificates", "Chains", "Chairmen", "Chairs", "Challenges", "Chambers", "Champions", "Championships", "Chances", "Changes", "Channels", "Chaos", "Chapters", "Characteristics", "Characters", "Charges", "Charities", "Charms", "Charters", "Charts", "Chases", "Chats", "Cheats", "Checks", "Cheeks", "Cheers", "Cheeses", "Chefs", "Chemicals", "Chemistries", "Chests", "Chickens", "Chiefs", "Childhoods", "Chips", "Chocolates", "Choices", "Choirs", "Chunks", "Churches", "Cigarettes", "Cinemas", "Circles", "Circuits", "Circulations", "Circumstances", "Cities", "Citizens", "Citizenships", "Civilians", "Civilizations", "Claims", "Clarities", "Clashes", "Classes", "Classics", "Classifications", "Classrooms", "Clauses", "Clerks", "Clicks", "Clients", "Cliffs", "Climates", "Climbs", "Clinics", "Clips", "Clocks", "Closes", "Closures", "Clothes", "Clothings", "Cloths", "Clouds", "Clubs", "Clues", "Clusters", "Coaches", "Coalitions", "Coals", "Coasts", "Coats", "Cocktails", "Codes", "Coffees", "Coincidences", "Coins", "Colds", "Collaborations", "Collapses", "Colleagues", "Collections", "Collectors", "Colleges", "Collisions", "Colonies", "Colours", "Columnists", "Columns", "Combats", "Combinations", "Comedies", "Comforts", "Comics", "Commanders", "Commands", "Commentaries", "Commentators", "Comments", "Commerces", "Commercials", "Commissioners", "Commissions", "Commitments", "Committees", "Commodities", "Communications", "Communities", "Companies", "Companions", "Comparisons", "Compassions", "Compensations", "Competences", "Competitions", "Competitors", "Complaints", "Completions", "Complexes", "Complexities", "Compliances", "Complications", "Components", "Composers", "Compositions", "Compounds", "Compromises", "Computers", "Concentrations", "Conceptions", "Concepts", "Concerns", "Concerts", "Concessions", "Conclusions", "Concretes", "Conditions", "Conducts", "Conferences", "Confessions", "Confidences", "Configurations", "Confirmations", "Conflicts", "Confrontations", "Confusions", "Congregations", "Connections", "Consciences", "Consciousnesses", "Consensus", "Consents", "Consequences", "Conservations", "Conservatives", "Considerations", "Consistencies", "Conspiracies", "Constituencies", "Constitutions", "Constraints", "Constructions", "Consultants", "Consultations", "Consumers", "Consumptions", "Contacts", "Containers", "Contempts", "Contenders", "Contentions", "Contents", "Contests", "Contexts", "Continents", "Contractors", "Contracts", "Contradictions", "Contraries", "Contrasts", "Contributions", "Contributors", "Controls", "Controversies", "Conveniences", "Conventions", "Conversations", "Conversions", "Convictions", "Cookers", "Cookings", "Cooks", "Coordinations", "Coordinators", "Copies", "Coppers", "Cops", "Copyrights", "Cores", "Corners", "Corporations", "Corrections", "Correlations", "Correspondences", "Correspondents", "Corridors", "Corruptions", "Costs", "Costumes", "Cottages", "Cottons", "Councillors", "Councils", "Counsellings", "Counsellors", "Counterparts", "Counters", "Counties", "Countries", "Countrysides", "Counts", "Couples", "Coups", "Courages", "Courses", "Courtesies", "Courts", "Cousins", "Coverages", "Covers", "Cows", "Cracks", "Crafts", "Crashes", "Creams", "Creations", "Creativities", "Creators", "Creatures", "Credibilities", "Credits", "Crews", "Cries", "Crises", "Criteria", "Criticisms", "Critics", "Critiques", "Crops", "Crosses", "Crowds", "Crowns", "Cruises", "Crystals", "Cues", "Cults", "Cultures", "Cupboards", "Cups", "Cures", "Curiosities", "Currencies", "Currents", "Curricula", "Curtains", "Custodies", "Customers", "Customs", "Cuts", "Cuttings", "Cycles", "Dads", "Dairies", "Damages", "Dams", "Dancers", "Dances", "Dancings", "Dangers", "Darknesses", "Darks", "Databases", "Dates", "Daughters", "Dawns", "Days", "Deadlines", "Dealers", "Deals", "Debates", "Debris", "Debts", "Debuts", "Decades", "Decembers", "DecisionMakings", "Decisions", "Decks", "Declarations", "Declines", "Decorations", "Decreases", "Dedications", "Deeds", "Defaults", "Defeats", "Defects", "Defences", "Defenders", "Deficiencies", "Deficits", "Definitions", "Degrees", "Delays", "Delegates", "Delegations", "Delights", "Deliveries", "Demands", "Democracies", "Demons", "Demonstrations", "Denials", "Densities", "Dentists", "Departments", "Departures", "Dependences", "Deployments", "Deposits", "Depressions", "Depths", "Deputies", "Descents", "Descriptions", "Deserts", "Designers", "Designs", "Desires", "Desks", "Desktops", "Destinations", "Destructions", "Details", "Detections", "Detectives", "Detentions", "Determinations", "Developments", "Devices", "Devils", "Diagnoses", "Diagrams", "Dialogues", "Diamonds", "Diaries", "Dictators", "Dictionaries", "Diets", "Differences", "Difficulties", "Dignities", "Dilemmas", "Dimensions", "Dinners", "Diplomats", "Directions", "Directories", "Directors", "Dirts", "Disabilities", "Disadvantages", "Disagreements", "Disappointments", "Disciplines", "Disclosures", "Discounts", "Discourses", "Discoveries", "Discretions", "Discs", "Discussions", "Dishes", "Disks", "Dislikes", "Dismissals", "Disorders", "Displays", "Disposals", "Disputes", "Disruptions", "Distances", "Distinctions", "Distresses", "Distributions", "Districts", "Diversities", "Dives", "Divides", "Divisions", "Divorces", "Doctors", "Doctrines", "Documentaries", "Documentations", "Documents", "Dogs", "Dollars", "Domains", "Dominances", "Donations", "Donors", "Doors", "Doses", "Dots", "Doubts", "Downloads", "Downtowns", "Dozens", "Drafts", "Dramas", "Drawings", "Dreams", "Dresses", "Drinks", "Drivers", "Drives", "Drivings", "Drops", "Droughts", "Drums", "Duos", "Durations", "Dusts", "Duties", "Dvds", "Dynamics", "Earnings", "Ears", "Earthquakes", "Earths", "Eases", "Easts", "Echoes", "Economics", "Economies", "Economists", "Edges", "Editions", "Editors", "Educations", "Educators", "Effectivenesses", "Effects", "Efficiencies", "Efforts", "Eggs", "Egos", "Elbows", "Elections", "Electricities", "Electronics", "Elements", "Elephants", "Elites", "Emails", "Embarrassments", "Embassies", "Emergences", "Emergencies", "Emissions", "Emotions", "Emphases", "Empires", "Employees", "Employers", "Employments", "Encounters", "Encouragements", "Endeavours", "Endings", "Endorsements", "Ends", "Enemies", "Energies", "Enforcements", "Engagements", "Engineerings", "Engineers", "Engines", "Enquiries", "Enterprises", "Entertainments", "Enthusiasms", "Enthusiasts", "Entities", "Entrances", "Entrepreneurs", "Entries", "Envelopes", "Environments", "Epidemics", "Episodes", "Equalities", "Equals", "Equations", "Equipment", "Equivalents", "Eras", "Errors", "Escapes", "Essays", "Essences", "Establishments", "Estates", "Estimates", "Ethics", "Euros", "Evaluations", "Evenings", "Events", "Evidence", "Evils", "Evolutions", "Examinations", "Examples", "Exams", "Excellences", "Exceptions", "Excesses", "Exchanges", "Excitements", "Exclusions", "Excuses", "Executives", "Exercises", "Exhibitions", "Exhibits", "Exiles", "Existences", "Exits", "Expansions", "Expectations", "Expeditions", "Expenditures", "Expenses", "Experiences", "Experiments", "Expertises", "Experts", "Explanations", "Exploitations", "Explorations", "Explosions", "Explosives", "Exports", "Exposures", "Expressions", "Extensions", "Extents", "Extracts", "Extras", "Extremes", "Eyes", "Fabrics", "Faces", "Facilities", "Factions", "Factories", "Factors", "Facts", "Faculties", "Failures", "Fairnesses", "Faiths", "Falls", "Fames", "Families", "Fans", "Fantasies", "Fares", "Farmers", "Farmings", "Farms", "Fashions", "Fates", "Fats", "Faults", "Favourites", "Favours", "Fears", "Feathers", "Feats", "Features", "Februaries", "Feedbacks", "Feeds", "Feelings", "Feels", "Fees", "Feet", "Feminists", "Fences", "Festivals", "Fevers", "Fibres", "Fictions", "Fields", "Fightings", "Fights", "Figures", "Files", "FilmMakers", "Films", "Filters", "Finals", "Finances", "Findings", "Fines", "Fingers", "Finishes", "Firefighters", "Fires", "Fireworks", "Firms", "Firsts", "Fish", "Fishings", "Fitnesses", "Fits", "Fixes", "Fixtures", "Flags", "Flames", "Flashes", "Flats", "Flavours", "Flaws", "Fleets", "Fleshes", "Flexibilities", "Flies", "Flights", "Floods", "Floors", "Flours", "Flowers", "Flows", "Fluids", "Flus", "Flyings", "Foci", "Folds", "Folks", "Followings", "Foods", "Fools", "Footages", "Footballs", "Forces", "Forecasts", "Foreigners", "Forests", "Forks", "Formations", "Formats", "Forms", "Formulae", "Fortunes", "Forums", "Fossils", "Foundations", "Founders", "Fractions", "Fragments", "Frames", "Frameworks", "Franchises", "Frauds", "Freedoms", "Frequencies", "Fridays", "Fridges", "Friends", "Friendships", "Frogs", "Fronts", "Fruits", "Frustrations", "Fuels", "Functions", "Fundings", "Fundraisings", "Funds", "Funerals", "Funs", "Furnitures", "Furs", "Futures", "Gains", "Galleries", "Gallons", "Gamblings", "Games", "Gamings", "Gaps", "Garages", "Gardens", "Gases", "Gates", "Gatherings", "Gazes", "Gears", "Genders", "Generations", "Genes", "Genius", "Genres", "Gentlemen", "Geographies", "Gestures", "Ghosts", "Giants", "Gifts", "Gigs", "Glances", "Glasses", "Glimpses", "Globalizations", "Globes", "Glories", "Gloves", "Goals", "Gods", "Goes", "Gold", "Golfs", "Goodbyes", "Goodnesses", "Goods", "Governances", "Governments", "Governors", "Graces", "Grades", "Graduates", "Grains", "Grandfathers", "Grandmothers", "Grandparents", "Grants", "Graphics", "Grasps", "Grasses", "Graves", "Gravities", "Greenhouses", "Greens", "Greys", "Grids", "Griefs", "Grins", "Grips", "Groceries", "Grounds", "Groups", "Growths", "Guarantees", "Guards", "Guerrillas", "Guesses", "Guests", "Guidances", "Guidelines", "Guides", "Guilts", "Guitars", "Guts", "Guys", "Gyms", "Habitats", "Habits", "Hairs", "Halls", "Halts", "Halves", "Handfuls", "Handles", "Handlings", "Hands", "Happinesses", "Harassments", "Harbours", "Hardwares", "Harmonies", "Harms", "Harvests", "Hats", "Hazards", "Headaches", "Headlines", "Headquarters", "Heads", "Healthcares", "Healths", "Hearings", "Hearts", "Heatings", "Heats", "Heavens", "Heels", "Heights", "Helicopters", "Hellos", "Hells", "Helmets", "Helps", "Herbs", "Heritages", "Heroes", "Hierarchies", "Highlights", "Highs", "Highways", "Hills", "Hints", "Hips", "Hires", "Historians", "Histories", "Hits", "Hobbies", "Hockeys", "Holds", "Holes", "Holidays", "Homelands", "Homes", "Homework", "Honesties", "Honours", "Hooks", "Hopes", "Horizons", "Horns", "Horrors", "Horses", "Hospitals", "Hosts", "Hotels", "Hours", "Households", "Houses", "Housings", "Humanities", "Humans", "Humours", "Hungers", "Huntings", "Hunts", "Hurricanes", "Hurries", "Hurts", "Hydrogens", "Hypotheses", "Ices", "Icons", "Ideals", "Ideas", "Identifications", "Identities", "Ideologies", "Ids", "Ignorances", "Illusions", "Illustrations", "Imageries", "Images", "Imaginations", "Immigrations", "Impacts", "Implementations", "Implications", "Importances", "Imports", "Impressions", "Imprisonments", "Improvements", "Inabilities", "Incentives", "Inches", "Incidences", "Incidents", "Inclusions", "Incomes", "Increases", "Independences", "Indications", "Indicators", "Indices", "Indictments", "Individuals", "Industries", "Inequalities", "Infections", "Inflations", "Influences", "Information", "Infos", "Infrastructures", "Ingredients", "Inhabitants", "Initiatives", "Injections", "Injuries", "Injustices", "Inks", "Innovations", "Inputs", "Inquiries", "Insects", "Insertions", "Insiders", "Insides", "Insights", "Inspections", "Inspectors", "Inspirations", "Installations", "Instances", "Instincts", "Institutes", "Institutions", "Instructions", "Instructors", "Instruments", "Insults", "Insurances", "Intakes", "Integrations", "Integrities", "Intellectuals", "Intelligences", "Intensities", "Intentions", "Intents", "Interactions", "Interests", "Interfaces", "Interferences", "Interiors", "Interpretations", "Intervals", "Interventions", "Interviews", "Introductions", "Invasions", "Inventions", "Investigations", "Investigators", "Investments", "Investors", "Invitations", "Involvements", "Ironies", "Irons", "Islands", "Isolations", "Issues", "Items", "Its", "Jackets", "Jails", "Jams", "Januaries", "Jazzes", "Jeans", "Jets", "Jewelleries", "Jobs", "Joints", "Jokes", "Journalisms", "Journalists", "Journals", "Journeys", "Joys", "Judgements", "Judges", "Juices", "Julies", "Jumps", "Junctions", "Junes", "Juries", "Jurisdictions", "Justices", "Justifications", "Keyboards", "Keys", "Kicks", "Kidneys", "Kilometres", "Kinds", "Kingdoms", "Kings", "Kisses", "Kitchens", "Kits", "Knees", "Knives", "Knocks", "Knowledges", "Labels", "Laboratories", "Labours", "Labs", "Lacks", "Ladders", "Lakes", "Lamps", "Landings", "Landlords", "Landmarks", "Lands", "Landscapes", "Lanes", "Languages", "Laps", "Laptops", "Lasers", "Lasts", "Latests", "Laughs", "Laughters", "Launches", "Lawns", "Laws", "Lawsuits", "Lawyers", "Layers", "Layouts", "Leaders", "Leaderships", "Leads", "Leaflets", "Leagues", "Leaks", "Leaps", "Learnings", "Leathers", "Leaves", "Lectures", "Lefts", "Legacies", "Legends", "Legislations", "Legislatures", "Legs", "Leisures", "Lemons", "Lengths", "Lens", "Lessons", "Letters", "Levels", "Liberals", "Liberations", "Liberties", "Libraries", "Licences", "Lies", "Lifestyles", "Lifetimes", "Lifts", "Lightings", "Lights", "Likelihoods", "Likes", "Limbs", "Limitations", "Limits", "LineUps", "Lines", "Links", "Lions", "Lips", "Liquids", "Listeners", "Listings", "Lists", "Literacies", "Literatures", "Litres", "Litters", "Livers", "Lives", "Livings", "Loads", "Loans", "Lobbies", "Locals", "Locations", "Locks", "Logics", "Logos", "Logs", "Looks", "Loops", "Lords", "Lorries", "Losses", "Lotteries", "Loves", "Lows", "Loyalties", "Luck", "Lunches", "Lungs", "Luxuries", "Lyrics", "Machineries", "Machines", "Magazines", "Magics", "Magistrates", "Magnitudes", "Mails", "Mainlands", "Mainstreams", "Maintenances", "Majorities", "MakeUps", "Makes", "Makings", "Malls", "Managements", "Managers", "Mandates", "Manipulations", "Manners", "Manufacturings", "Manuscripts", "Maps", "Marathons", "Marches", "Margins", "Markers", "Marketings", "Marketplaces", "Markets", "Marks", "Marriages", "Masks", "Masses", "Masters", "Matches", "Materials", "Mates", "Mathematics", "Maths", "Matters", "Maximums", "Mayors", "Mays", "Meals", "Meanings", "Means", "Meantimes", "Measurements", "Measures", "Meats", "Mechanics", "Mechanisms", "Medals", "Media", "Medications", "Medicines", "Meditations", "Meetings", "Melodies", "Members", "Memberships", "Memoirs", "Memorials", "Memories", "Memos", "Mentions", "Mentors", "Menus", "Merchants", "Mercies", "Mergers", "Merits", "Messages", "Messes", "Metals", "Metaphors", "Methodologies", "Methods", "Metres", "Mice", "Middles", "Midnights", "Midsts", "Migrations", "Miles", "Milks", "Mills", "Minds", "Minerals", "Miners", "Mines", "Minimums", "Minings", "Ministers", "Ministries", "Minutes", "Miracles", "Mirrors", "Miseries", "Missiles", "Missions", "Mistakes", "Mixes", "Mixtures", "Mobiles", "Mobilities", "Mobs", "Modes", "Modifications", "Momenta", "Moments", "Mondays", "Moneys", "Monitors", "Monkeys", "Monks", "Monopolies", "Monsters", "Months", "Monuments", "Moods", "Moons", "Moralities", "Morals", "Mornings", "Mortgages", "Mothers", "Motions", "Motivations", "Motives", "Motorcycles", "Motorists", "Motors", "Mountains", "Mouths", "Movements", "Moves", "Movies", "Muds", "Mums", "Muscles", "Museums", "Music", "Musicals", "Musicians", "Mysteries", "Myths", "Nails", "Names", "Narratives", "Nationals", "Nations", "Natures", "Navigations", "Necessities", "Necks", "Needles", "Needs", "Negatives", "Neglects", "Negotiations", "Neighbourhoods", "Neighbours", "Nerves", "Nests", "Nets", "Networks", "News", "Newsletters", "Newspapers", "Niches", "Nightmares", "Nights", "Noises", "Nominations", "Nominees", "Nonsenses", "Noons", "Normals", "Norms", "Norths", "Noses", "Notebooks", "Notes", "Notices", "Notions", "Novelists", "Novels", "Novembers", "Numbers", "Nurseries", "Nurses", "Nursings", "Nutritions", "Nuts", "Obesities", "Objections", "Objectives", "Objects", "Obligations", "Observations", "Observers", "Obsessions", "Obstacles", "Occasions", "Occupations", "Occurrences", "Oceans", "Octobers", "Odds", "Offences", "Offerings", "Offers", "Officers", "Offices", "Officials", "Offspring", "Oils", "Onions", "Openings", "Operas", "Operations", "Operators", "Opinions", "Opponents", "Opportunities", "Opposites", "Oppositions", "Optimisms", "Options", "Oranges", "Orchestras", "Orders", "Organizations", "Organizers", "Organs", "Orientations", "Originals", "Origins", "Outbreaks", "Outcomes", "Outfits", "Outings", "Outlets", "Outlines", "Outlooks", "Outputs", "Outrages", "Outsiders", "Outsides", "Ovens", "Owners", "Ownerships", "Oxygens", "Paces", "Packages", "Packets", "Packs", "Pads", "Pages", "Pains", "Painters", "Paintings", "Paints", "Pairs", "Palaces", "Palms", "Panels", "Panics", "Pans", "Pants", "Papers", "Parades", "Paragraphs", "Parallels", "Parameters", "Parents", "Parishes", "Parkings", "Parks", "Parliaments", "Participants", "Participations", "Parties", "Partners", "Partnerships", "Parts", "Passages", "Passengers", "Passes", "Passings", "Passions", "Passports", "Passwords", "Pastors", "Pasts", "Patches", "Patents", "Paths", "Pathways", "Patiences", "Patients", "Patrols", "Patrons", "Patterns", "Pauses", "Payments", "Pays", "Peaces", "Peaks", "Peasants", "Peers", "Penalties", "Pencils", "Pennies", "Pens", "Pensions", "People", "Peoples", "Peppers", "Percentages", "Perceptions", "Performances", "Periods", "Permissions", "Permits", "Personalities", "Personnels", "Perspectives", "Petitions", "Petrols", "Pets", "Phases", "Phenomena", "Philosophers", "Philosophies", "Phones", "Photographers", "Photographies", "Photographs", "Photos", "Phrases", "Physicians", "Physics", "Pianos", "Picks", "Pictures", "Pieces", "Pigs", "Piles", "Pills", "Pilots", "Pinks", "Pins", "Pioneers", "Pipelines", "Pipes", "Pirates", "Pitches", "Pities", "Pits", "Placements", "Places", "Planes", "Planets", "Plannings", "Plans", "Plants", "Plastics", "Plates", "Platforms", "Players", "Plays", "Pleas", "Pleasures", "Pledges", "Plots", "Plugs", "Plus", "Pockets", "Poems", "Poetries", "Poets", "Points", "Poisons", "Poles", "Police", "Policemen", "Policies", "Politicians", "Politics", "Polls", "Pollutions", "Ponds", "Pools", "Pops", "Popularities", "Populations", "Portfolios", "Portions", "Portraits", "Ports", "Positions", "Positives", "Possessions", "Possibilities", "Posters", "Posts", "Potatoes", "Potentials", "Pots", "Pounds", "Poverties", "Powders", "Powers", "Practices", "Practitioners", "Praises", "Prayers", "Precedents", "Precisions", "Predators", "Predecessors", "Predictions", "Preferences", "Pregnancies", "Prejudices", "Premises", "Premiums", "Preparations", "Prescriptions", "Presences", "Presentations", "Presents", "Preservations", "Presidencies", "Presidents", "Presses", "Pressures", "Prevalences", "Preventions", "Preys", "Prices", "Prides", "Priests", "Princes", "Princesses", "Principals", "Principles", "Printers", "Printings", "Prints", "Priorities", "Prisons", "Privacies", "Privatizations", "Privileges", "Prizes", "Probabilities", "Probes", "Problems", "Procedures", "Proceedings", "Proceeds", "Processes", "Processings", "Processors", "Producers", "Produces", "Productions", "Productivities", "Products", "Professionals", "Professions", "Professors", "Profiles", "Profits", "Programmes", "Programmings", "Programs", "Progresses", "Projections", "Projects", "Promises", "Promotions", "Proofs", "Propagandas", "Properties", "Proportions", "Proposals", "Propositions", "Prosecutions", "Prosecutors", "Prospects", "Prosperities", "Protections", "Proteins", "Protesters", "Protests", "Protocols", "Provinces", "Provisions", "Psychologies", "Psychologists", "Publications", "Publicities", "Publics", "Publishings", "Pubs", "Pulls", "Pulses", "Pumps", "Punches", "Punishments", "Punks", "Pupils", "Purchases", "Purples", "Purposes", "Pursuits", "Pushes", "Puzzles", "Qualifications", "Qualities", "Quantities", "Quarters", "Queens", "Queries", "Questionnaires", "Questions", "Quests", "Queues", "Quotas", "Quotations", "Quotes", "Races", "Racings", "Radars", "Radiations", "Radios", "Rages", "Raids", "Rails", "Railways", "Rains", "Rallies", "Ranges", "Rankings", "Ranks", "Rates", "Ratings", "Ratios", "Rats", "Rays", "Reaches", "Reactions", "Readers", "Readings", "Realities", "Realizations", "Realms", "Rears", "Reasonings", "Reasons", "Rebellions", "Rebels", "Receipts", "Receivers", "Receptions", "Recessions", "Recipes", "Recipients", "Recognitions", "Recommendations", "Reconstructions", "Recordings", "Records", "Recoveries", "Recruitments", "Recruits", "Reductions", "Referees", "References", "Referendums", "Reflections", "Reforms", "Refusals", "Regards", "Regimes", "Regions", "Registers", "Registrations", "Regrets", "Regulations", "Regulators", "Rehabilitations", "Reigns", "Rejections", "Relations", "Relationships", "Relatives", "Releases", "Relevances", "Reliabilities", "Reliefs", "Religions", "Remainders", "Remains", "Remarks", "Remedies", "Reminders", "Removals", "Rentals", "Rents", "Repairs", "Repeats", "Replacements", "Replies", "Reporters", "Reportings", "Reports", "Representations", "Representatives", "Reproductions", "Republics", "Reputations", "Requests", "Requirements", "Rescues", "Researchers", "Researches", "Reservations", "Reserves", "Residences", "Residents", "Residues", "Resignations", "Resistances", "Resolutions", "Resorts", "Resources", "Respects", "Responses", "Responsibilities", "Restaurants", "Restorations", "Restraints", "Restrictions", "Rests", "Results", "Retails", "Retirements", "Retreats", "Returns", "Revelations", "Revenges", "Revenues", "Reverses", "Reviews", "Revisions", "Revivals", "Revolutions", "Rewards", "Rhetorics", "Rhythms", "Rices", "Rides", "Rifles", "Rights", "Rings", "Riots", "Rises", "Risks", "Rituals", "Rivals", "Rivers", "Roads", "Robberies", "Robots", "Rockets", "Rocks", "Rods", "Roles", "Rolls", "Romances", "Roofs", "Rooms", "Roots", "Ropes", "Roses", "Rotations", "Rounds", "Routes", "Routines", "Rows", "Rubbers", "Rubbishes", "Rugbies", "Ruins", "Rules", "Rulings", "Rumours", "Runners", "Runnings", "Runs", "Rushes", "Sacrifices", "Safeties", "Sailings", "Sailors", "Sails", "Saints", "Sakes", "Salads", "Salaries", "Sales", "Salts", "Samples", "Sanctions", "Sands", "Sandwiches", "Satellites", "Satisfactions", "Saturdays", "Sauces", "Savings", "Says", "Scales", "Scandals", "Scares", "Scenarios", "Scenes", "Schedules", "Schemes", "Scholars", "Scholarships", "Schools", "Sciences", "Scientists", "Scopes", "Scores", "Scratches", "Screams", "Screenings", "Screens", "Screws", "Scripts", "Scrutinies", "Sculptures", "Seals", "Searches", "Seas", "Seasons", "Seats", "Seconds", "Secretaries", "Secrets", "Sections", "Sectors", "Securities", "Seeds", "Seekers", "Segments", "Selections", "Selves", "Seminars", "Senators", "Sensations", "Senses", "Sensitivities", "Sentences", "Sentiments", "Separations", "Septembers", "Sequences", "Series", "Servants", "Services", "Sessions", "SetUps", "Sets", "Settings", "Settlements", "Settlers", "Shades", "Shadows", "Shakes", "Shames", "Shapes", "Shareholders", "Shares", "Sheep", "Sheets", "Shells", "Shelters", "Shelves", "Shifts", "Shippings", "Ships", "Shirts", "Shocks", "Shoes", "Shootings", "Shoots", "Shoppings", "Shops", "Shores", "Shortages", "Shots", "Shoulders", "Shouts", "Showers", "Shows", "Siblings", "Sides", "Sighs", "Sights", "Signals", "Signatures", "Significances", "Signs", "Silences", "Silks", "Silver", "Similarities", "Simulations", "Singers", "Singings", "Singles", "Sins", "Sirs", "Sites", "Situations", "Sizes", "Sketches", "Skies", "Skiings", "Skills", "Skins", "Skirts", "Skis", "Skulls", "Sleeps", "Slices", "Slides", "Slogans", "Slopes", "Slots", "Smartphones", "Smells", "Smiles", "Smokes", "Smokings", "Snakes", "Snows", "Soaps", "Soccers", "Societies", "Socks", "Softwares", "Soils", "Soldiers", "Solicitors", "Solidarities", "Solids", "Solos", "Solutions", "Songs", "Sons", "Sorts", "Souls", "Sounds", "Soups", "Sources", "Sovereignties", "Spaces", "Spams", "Spans", "Speakers", "Specialists", "Species", "Specifications", "Specimens", "Spectacles", "Spectators", "Spectra", "Speculations", "Speeches", "Speeds", "Spellings", "Spells", "Spendings", "Spheres", "Spices", "Spiders", "Spies", "Spines", "Spins", "Spirits", "Spites", "Splits", "Spokesmen", "Spokespeople", "Sponsors", "Sponsorships", "Spoons", "Sports", "Spotlights", "Spots", "Spouses", "Spreads", "Springs", "Squads", "Squares", "Stabilities", "Stadiums", "Staffs", "Stages", "Stairs", "Stakes", "Stalls", "Stamps", "Stances", "Standards", "Stands", "Stars", "Starts", "Statements", "States", "Stations", "Statistics", "Statues", "Status", "Stays", "Steams", "Steels", "Stems", "Steps", "Stereotypes", "Sticks", "Stimuli", "Stocks", "Stomachs", "Stones", "Stops", "Storages", "Stores", "Stories", "Storms", "Strains", "Strands", "Strangers", "Strategies", "Streams", "Streets", "Strengths", "Stresses", "Stretches", "Strikes", "Strings", "Strips", "Strokes", "Structures", "Struggles", "Students", "Studies", "Studios", "Stuffs", "Styles", "Subjects", "Submissions", "Subscribers", "Subscriptions", "Subsidies", "Substances", "Substitutes", "Substitutions", "Suburbs", "Successes", "Successions", "Successors", "Sufferings", "Sugars", "Suggestions", "Suites", "Suits", "Summaries", "Summers", "Summits", "Sums", "Sundays", "Suns", "Supermarkets", "Supervisions", "Supervisors", "Supplements", "Supplies", "Supporters", "Supports", "Surfaces", "Surgeons", "Surgeries", "Surges", "Surplus", "Surprises", "Surveillances", "Surveys", "Survivals", "Survivors", "Suspects", "Suspensions", "Suspicions", "Sweaters", "Sweets", "Swimmings", "Swims", "Swings", "Switches", "Swords", "Symbols", "Sympathies", "Symptoms", "Syndromes", "Syntheses", "Systems", "TShirts", "Tables", "Tablets", "Tackles", "Tactics", "Tags", "Tails", "Talents", "Tales", "Talks", "Tanks", "Tapes", "Taps", "Targets", "Tasks", "Tastes", "Taxes", "Taxis", "Taxpayers", "Teachers", "Teachings", "Teams", "Tears", "Teas", "Techniques", "Technologies", "Teenagers", "Teens", "Teeth", "Telephones", "Televisions", "Temperatures", "Temples", "Tenants", "Tendencies", "Tennis", "Tensions", "Tents", "Tenures", "Terminals", "Terms", "Terrains", "Territories", "Testimonies", "Testings", "Tests", "Textbooks", "Texts", "Textures", "Thanks", "Theatres", "Thefts", "Themes", "Theologies", "Theories", "Therapies", "Therapists", "Theses", "Thieves", "Things", "Thinkings", "Thirds", "Thoughts", "Threads", "Threats", "Thresholds", "Throats", "Thumbs", "Thursdays", "Tickets", "Tides", "Ties", "Timbers", "Times", "Timings", "Tins", "Tips", "Tissues", "Titles", "Tobaccos", "Todays", "Toes", "Toilets", "Tolerances", "Tolls", "Tomatoes", "Tomorrows", "Tones", "Tongues", "Tonights", "Tonnes", "Tons", "Tools", "Topics", "Tops", "Tortoises", "Totals", "Touches", "Tourisms", "Tourists", "Tournaments", "Tours", "Towels", "Towers", "Towns", "Toys", "Traces", "Tracks", "Trademarks", "Trades", "Tradings", "Traditions", "Traffics", "Tragedies", "Trailers", "Trails", "Trainers", "Trainings", "Trains", "Traits", "Transactions", "Transcripts", "Transfers", "Transformations", "Transitions", "Transits", "Translations", "Transmissions", "Transparencies", "Transportations", "Transports", "Traps", "Traumas", "Travellers", "Travels", "Treasures", "Treaties", "Treatments", "Trees", "Trends", "Trials", "Tribes", "Tribunals", "Tributes", "Tricks", "Tries", "Triggers", "Trios", "Trips", "Triumphs", "Troops", "Trophies", "Troubles", "Trousers", "Trucks", "Trustees", "Trusts", "Truths", "Tsunamis", "Tubes", "Tuesdays", "Tuitions", "Tunes", "Tunnels", "Turnouts", "Turnovers", "Turns", "Tvs", "Twists", "Types", "Tyres", "Umbrellas", "Uncertainties", "Uncles", "Undergraduates", "Understandings", "Underwears", "Unemployments", "Uniforms", "Unions", "Unities", "Units", "Universes", "Universities", "Updates", "Upgrades", "Usages", "Users", "Uses", "Utilities", "Vacations", "Vacuums", "Validities", "Valleys", "Values", "Vans", "Variables", "Variations", "Varieties", "Vegetables", "Vehicles", "Veins", "Ventures", "Venues", "Verdicts", "Verses", "Versions", "Vessels", "Veterans", "Vices", "Victories", "Videos", "Viewers", "Viewpoints", "Views", "Villagers", "Villages", "Violations", "Violences", "Virtues", "Viruses", "Visas", "Visions", "Visitors", "Visits", "Vitamins", "Voices", "Volumes", "Volunteers", "Votes", "Votings", "Vulnerabilities", "Wages", "Waiters", "Waits", "Walks", "Walls", "Wards", "Warehouses", "Warfares", "Warmings", "Warnings", "Warrants", "Warriors", "Washes", "Washings", "Wastes", "Watches", "Waters", "Waves", "Ways", "Weaknesses", "Wealths", "Weathers", "Webs", "Websites", "Weddings", "Wednesdays", "Weeds", "Weekends", "Weeks", "Weights", "Welcomes", "Welfares", "WellBeings", "Wells", "Wests", "Wheat", "Wheels", "Whispers", "Wholes", "Widows", "Widths", "Wildlives", "Willingnesses", "Wills", "Windows", "Winds", "Wines", "Wings", "Winners", "Wins", "Winters", "Wires", "Wisdoms", "Wishes", "Withdrawals", "Witnesses", "Wits", "Wonders", "Woods", "Wools", "Words", "Workers", "Workforces", "Workouts", "Workplaces", "Works", "Workshops", "Worlds", "Worms", "Worries", "Worses", "Worships", "Worsts", "Worths", "Wounds", "Wrists", "Writers", "Writings", "Wrongs", "Yards", "Years", "Yellows", "Yesterdays", "Yields", "Zones"], - _VERB_: ["Abolish", "Absorb", "Accelerate", "Accept", "Access", "Accommodate", "Accompany", "Accomplish", "Account", "Accumulate", "Accuse", "Achieve", "Acknowledge", "Acquire", "Act", "Activate", "Adapt", "Add", "Address", "Adhere", "Adjust", "Administer", "Admire", "Admit", "Adopt", "Advance", "Advertise", "Advise", "Advocate", "Affect", "Afford", "Age", "Agree", "Aid", "Aim", "Alarm", "Alert", "Align", "Allege", "Allocate", "Allow", "Alter", "Amend", "Amount", "Analyse", "Announce", "Annoy", "Answer", "Anticipate", "Apologize", "Appeal", "Appear", "Applaud", "Apply", "Appoint", "Appreciate", "Approach", "Approve", "Argue", "Arise", "Arm", "Arrange", "Arrest", "Arrive", "Articulate", "Ask", "Aspire", "Assemble", "Assert", "Assess", "Assign", "Assist", "Associate", "Assume", "Assure", "Attach", "Attain", "Attempt", "Attend", "Attract", "Attribute", "Authorize", "Average", "Avoid", "Await", "Award", "Back", "Bake", "Balance", "Ban", "Bar", "Base", "Bat", "Battle", "Be", "Bear", "Beat", "Become", "Beg", "Begin", "Behave", "Believe", "Belong", "Bend", "Benefit", "Bet", "Betray", "Bid", "Bill", "Bind", "Bite", "Blame", "Blast", "Blend", "Bless", "Block", "Blow", "Board", "Boast", "Boil", "Book", "Boost", "Border", "Borrow", "Bother", "Bounce", "Bow", "Brand", "Breach", "Break", "Breathe", "Breed", "Bring", "Broadcast", "Brush", "Build", "Burn", "Burst", "Bury", "Buy", "Calculate", "Call", "Calm", "Camp", "Campaign", "Cancel", "Capture", "Care", "Carry", "Carve", "Cast", "Catch", "Cater", "Cause", "Cease", "Celebrate", "Centre", "Chain", "Chair", "Challenge", "Change", "Characterize", "Charge", "Chart", "Chase", "Chat", "Cheat", "Check", "Cheer", "Choose", "Chop", "Circle", "Circulate", "Cite", "Claim", "Clarify", "Classify", "Clean", "Clear", "Click", "Climb", "Cling", "Close", "Coach", "Coincide", "Collaborate", "Collapse", "Collect", "Combat", "Combine", "Come", "Comfort", "Command", "Commence", "Comment", "Commission", "Commit", "Communicate", "Compare", "Compel", "Compensate", "Compete", "Compile", "Complain", "Complement", "Complete", "Comply", "Compose", "Comprise", "Compromise", "Compute", "Conceal", "Concede", "Conceive", "Concentrate", "Concern", "Conclude", "Condemn", "Conduct", "Confer", "Confess", "Confine", "Confirm", "Conflict", "Confront", "Confuse", "Congratulate", "Connect", "Conquer", "Consent", "Conserve", "Consider", "Consist", "Consolidate", "Constitute", "Construct", "Consult", "Consume", "Contact", "Contain", "Contemplate", "Contend", "Contest", "Continue", "Contract", "Contrast", "Contribute", "Control", "Convert", "Convey", "Convict", "Convince", "Cook", "Cool", "Cooperate", "Coordinate", "Cope", "Copy", "Correct", "Correlate", "Correspond", "Cost", "Count", "Counter", "Cover", "Crack", "Craft", "Crash", "Crawl", "Create", "Credit", "Creep", "Criticize", "Cross", "Cruise", "Crush", "Cry", "Cultivate", "Cure", "Curve", "Cut", "Cycle", "Damage", "Dance", "Dare", "Date", "Deal", "Debate", "Decide", "Declare", "Decline", "Decorate", "Decrease", "Deem", "Defeat", "Defend", "Define", "Defy", "Delay", "Delete", "Delight", "Deliver", "Demand", "Demonstrate", "Denounce", "Deny", "Depart", "Depend", "Depict", "Deploy", "Deposit", "Deprive", "Derive", "Descend", "Describe", "Desert", "Deserve", "Design", "Designate", "Desire", "Destroy", "Detail", "Detain", "Detect", "Deteriorate", "Determine", "Devastate", "Develop", "Devise", "Devote", "Diagnose", "Dictate", "Differ", "Differentiate", "Dig", "Diminish", "Dip", "Direct", "Disagree", "Disappear", "Disappoint", "Discard", "Discharge", "Disclose", "Discount", "Discourage", "Discover", "Discuss", "Dislike", "Dismiss", "Displace", "Display", "Dispose", "Dispute", "Disrupt", "Dissolve", "Distinguish", "Distort", "Distract", "Distress", "Distribute", "Disturb", "Dive", "Divert", "Divide", "Divorce", "Do", "Document", "Dominate", "Donate", "Double", "Doubt", "Download", "Draft", "Drag", "Drain", "Draw", "Dream", "Dress", "Drift", "Drink", "Drive", "Drop", "Dry", "Dub", "Dump", "Earn", "Ease", "Eat", "Echo", "Edit", "Educate", "Elect", "Elevate", "Eliminate", "Email", "Embark", "Embed", "Embody", "Embrace", "Emerge", "Emphasize", "Employ", "Empower", "Empty", "Enable", "Enact", "Encompass", "Encounter", "Encourage", "End", "Endorse", "Endure", "Enforce", "Engage", "Enhance", "Enjoy", "Enquire", "Enrich", "Enrol", "Ensue", "Ensure", "Enter", "Entertain", "Entitle", "Equal", "Equip", "Erect", "Erupt", "Escalate", "Escape", "Establish", "Estimate", "Evacuate", "Evaluate", "Evoke", "Evolve", "Exaggerate", "Examine", "Exceed", "Exchange", "Exclude", "Excuse", "Execute", "Exercise", "Exert", "Exhibit", "Exist", "Exit", "Expand", "Expect", "Experience", "Experiment", "Expire", "Explain", "Explode", "Exploit", "Explore", "Export", "Expose", "Express", "Extend", "Extract", "Face", "Facilitate", "Fade", "Fail", "Fall", "Fancy", "Farm", "Fasten", "Favour", "Fear", "Feature", "Feed", "Feel", "Fight", "Figure", "File", "Fill", "Film", "Filter", "Finance", "Find", "Fine", "Finish", "Fire", "Fish", "Fit", "Fix", "Flash", "Flee", "Float", "Flood", "Flourish", "Flow", "Fly", "Focus", "Fold", "Follow", "Forbid", "Force", "Forecast", "Forge", "Forget", "Forgive", "Form", "Formulate", "Foster", "Found", "Frame", "Free", "Freeze", "Frighten", "Fry", "Fuel", "Fulfil", "Function", "Fund", "Gain", "Gather", "Gaze", "Generate", "Get", "Give", "Glance", "Go", "Govern", "Grab", "Grade", "Graduate", "Grant", "Grasp", "Greet", "Grin", "Grind", "Grip", "Grow", "Guarantee", "Guard", "Guess", "Guide", "Hail", "Halt", "Hand", "Handle", "Hang", "Happen", "Harvest", "Haunt", "Have", "Head", "Heal", "Hear", "Heat", "Heighten", "Help", "Hesitate", "Hide", "Highlight", "Hint", "Hire", "Hit", "Hold", "Honour", "Hook", "Hope", "Host", "House", "Hunt", "Hurry", "Identify", "Ignore", "Illustrate", "Imagine", "Impact", "Implement", "Imply", "Import", "Impose", "Impress", "Improve", "Include", "Incorporate", "Increase", "Incur", "Indicate", "Induce", "Indulge", "Infect", "Infer", "Inflict", "Influence", "Inform", "Inherit", "Inhibit", "Initiate", "Inject", "Injure", "Insert", "Insist", "Inspect", "Inspire", "Install", "Instruct", "Insult", "Integrate", "Intend", "Intensify", "Interact", "Interest", "Interfere", "Interpret", "Interrupt", "Intervene", "Interview", "Introduce", "Invade", "Invent", "Invest", "Investigate", "Invite", "Invoke", "Involve", "Iron", "Isolate", "Issue", "Join", "Joke", "Judge", "Jump", "Justify", "Keep", "Key", "Kick", "Kiss", "Knock", "Know", "Label", "Lack", "Land", "Last", "Laugh", "Launch", "Lay", "Lead", "Leak", "Lean", "Leap", "Learn", "Leave", "Lecture", "Lend", "Let", "Level", "License", "Lift", "Light", "Like", "Limit", "Line", "Linger", "Link", "List", "Listen", "Live", "Load", "Lobby", "Locate", "Lock", "Log", "Look", "Loom", "Lose", "Love", "Lower", "Mail", "Maintain", "Make", "Manage", "Manifest", "Manipulate", "Manufacture", "Map", "March", "Mark", "Market", "Marry", "Master", "Match", "Mate", "Matter", "Mature", "Maximize", "Mean", "Measure", "Meet", "Melt", "Mention", "Merge", "Mind", "Minimize", "Miss", "Mistake", "Mix", "Mobilize", "Model", "Modify", "Monitor", "Motivate", "Mount", "Move", "Multiply", "Name", "Narrow", "Need", "Neglect", "Negotiate", "Nod", "Nominate", "Note", "Notice", "Notify", "Number", "Obey", "Object", "Oblige", "Observe", "Obsess", "Obtain", "Occupy", "Occur", "Offend", "Offer", "Open", "Operate", "Oppose", "Opt", "Order", "Organize", "Originate", "Outline", "Outrage", "Overcome", "Overlook", "Oversee", "Overturn", "Overwhelm", "Owe", "Own", "Pace", "Pack", "Package", "Paint", "Park", "Participate", "Pass", "Patrol", "Pause", "Pay", "Perceive", "Perform", "Permit", "Persist", "Persuade", "Phone", "Photograph", "Pick", "Picture", "Pile", "Pin", "Pioneer", "Place", "Plan", "Plant", "Play", "Plead", "Please", "Pledge", "Plot", "Plug", "Plunge", "Point", "Pop", "Portray", "Pose", "Position", "Possess", "Post", "Postpone", "Pour", "Power", "Practise", "Praise", "Pray", "Preach", "Precede", "Predict", "Prefer", "Prepare", "Prescribe", "Present", "Preserve", "Preside", "Press", "Presume", "Pretend", "Prevail", "Prevent", "Price", "Print", "Probe", "Proceed", "Process", "Proclaim", "Produce", "Program", "Progress", "Prohibit", "Project", "Promise", "Promote", "Prompt", "Pronounce", "Propose", "Prosecute", "Protect", "Protest", "Prove", "Provide", "Provoke", "Publish", "Pull", "Pump", "Punch", "Punish", "Purchase", "Pursue", "Push", "Put", "Qualify", "Question", "Queue", "Quit", "Quote", "Race", "Raid", "Rain", "Raise", "Rally", "Range", "Rank", "Rate", "Reach", "React", "Read", "Realize", "Reassure", "Rebuild", "Recall", "Receive", "Reckon", "Recognize", "Recommend", "Record", "Recount", "Recover", "Recruit", "Recycle", "Reduce", "Refer", "Reflect", "Reform", "Refuse", "Regain", "Regard", "Register", "Regret", "Regulate", "Reign", "Reinforce", "Reject", "Relate", "Relax", "Release", "Relieve", "Rely", "Remain", "Remark", "Remember", "Remind", "Remove", "Render", "Renew", "Rent", "Repair", "Repeat", "Replace", "Reply", "Report", "Represent", "Reproduce", "Request", "Require", "Rescue", "Research", "Resemble", "Reserve", "Reside", "Resign", "Resist", "Resolve", "Respect", "Respond", "Rest", "Restore", "Restrict", "Result", "Resume", "Retain", "Retire", "Retreat", "Retrieve", "Return", "Reveal", "Reverse", "Review", "Revise", "Revive", "Reward", "Rid", "Ride", "Ring", "Rip", "Rise", "Risk", "Rob", "Rock", "Roll", "Rotate", "Rub", "Ruin", "Rule", "Run", "Rush", "Sack", "Sacrifice", "Sail", "Sample", "Satisfy", "Save", "Say", "Scan", "Scare", "Schedule", "Score", "Scratch", "Scream", "Screen", "Screw", "Seal", "Search", "Seat", "Secure", "See", "Seek", "Seize", "Select", "Sell", "Send", "Sense", "Sentence", "Separate", "Serve", "Set", "Settle", "Shake", "Shape", "Share", "Shatter", "Shed", "Shelter", "Shift", "Shine", "Ship", "Shock", "Shoot", "Shop", "Shout", "Show", "Shrink", "Shrug", "Shut", "Sigh", "Sign", "Signal", "Simulate", "Sing", "Sink", "Sit", "Ski", "Skip", "Slam", "Slap", "Slash", "Sleep", "Slice", "Slide", "Slip", "Slope", "Slow", "Smash", "Smell", "Smile", "Smoke", "Snap", "Snow", "Soak", "Soar", "Solve", "Sort", "Sound", "Span", "Spare", "Spark", "Speak", "Specialize", "Specify", "Speculate", "Speed", "Spell", "Spend", "Spill", "Spin", "Split", "Spoil", "Sponsor", "Spot", "Spread", "Spring", "Spy", "Squeeze", "Stab", "Stabilize", "Stage", "Stand", "Star", "Stare", "Start", "Starve", "State", "Stay", "Steal", "Steer", "Stem", "Step", "Stick", "Stimulate", "Stir", "Stop", "Store", "Strengthen", "Stress", "Stretch", "Strike", "Strip", "Strive", "Structure", "Struggle", "Study", "Stuff", "Stumble", "Stun", "Submit", "Substitute", "Succeed", "Sue", "Suffer", "Suggest", "Suit", "Sum", "Summarize", "Supervise", "Supplement", "Supply", "Support", "Suppose", "Suppress", "Surge", "Surprise", "Surrender", "Surround", "Survey", "Survive", "Suspect", "Suspend", "Sustain", "Swallow", "Swear", "Sweep", "Swim", "Swing", "Switch", "Tackle", "Tag", "Take", "Talk", "Tap", "Target", "Taste", "Tax", "Teach", "Tear", "Telephone", "Tell", "Tempt", "Tend", "Term", "Terminate", "Terrify", "Test", "Testify", "Text", "Thank", "Think", "Thrive", "Throw", "Tidy", "Tie", "Tighten", "Time", "Tip", "Title", "Tolerate", "Top", "Toss", "Total", "Touch", "Tour", "Trace", "Track", "Trade", "Trail", "Train", "Transfer", "Transform", "Translate", "Transmit", "Transport", "Trap", "Travel", "Treat", "Trick", "Trigger", "Trip", "Trouble", "Trust", "Try", "Turn", "Twist", "Type", "Undergo", "Undermine", "Understand", "Undertake", "Unfold", "Unify", "Unite", "Unveil", "Update", "Upgrade", "Uphold", "Upset", "Urge", "Use", "Utilize", "Value", "Vanish", "Vary", "Venture", "Verify", "View", "Visit", "Volunteer", "Vote", "Vow", "Wait", "Wake", "Walk", "Wander", "Want", "Warm", "Warn", "Warrant", "Wash", "Waste", "Watch", "Water", "Wave", "Weaken", "Wear", "Weave", "Weigh", "Welcome", "Whip", "Whisper", "Widen", "Win", "Wind", "Wipe", "Wish", "Withdraw", "Witness", "Wonder", "Work", "Worry", "Worship", "Wound", "Wrap", "Write", "Yell", "Yield"] - }, - DN = ["_ADJECTIVE__PLURALNOUN__VERB__ADVERB_"]; - - function TN() { - let e = AN(DN); - for (; ON(e);) - for (const t in PN) { - const n = AN(PN[t]); - e = e.replace(t, n) - } - return e + } + const Kq = Ei(Ne((function(e) { + const { + browser: t + } = e["features/overlay"]; + return { + browser: t } - - function ON(e) { - for (const t in PN) - if (e.indexOf(t) >= 0) return !0; - return !1 + }))(class extends Gq { + render() { + const { + browser: e, + t + } = this.props; + return C().createElement(Iq, null, C().createElement("div", { + className: "inlay" + }, C().createElement("span", { + className: "inlay__icon icon-microphone" + }), C().createElement("span", { + className: "inlay__icon icon-camera" + }), C().createElement("h3", { + "aria-label": t("startupoverlay.genericTitle"), + className: "inlay__title", + role: "alert" + }, t("startupoverlay.genericTitle")), C().createElement("span", { + className: "inlay__text", + role: "alert" + }, xi(t, `userMedia.${e}GrantPermissions`))), C().createElement("div", { + className: "policy overlay__policy" + }, C().createElement("p", { + className: "policy__text", + role: "alert" + }, xi(t, "startupoverlay.policyText")), this._renderPolicyLogo())) + } + _renderPolicyLogo() { + const e = interfaceConfig.POLICY_LOGO; + return e ? C().createElement("div", { + className: "policy__logo" + }, C().createElement("img", { + alt: this.props.t("welcomepage.logo.policyLogo"), + src: e + })) : null } - const MN = Je("features/overlay"); - class IN extends E.Component { - render() { - return x().createElement("button", { - className: "button-control button-control_overlay button-control_center", - onClick: this.props._reloadNow - }, this.props.t(this.props.textKey)) - } + })); class $q extends x.Component { + static needsRender(e) { + return e["features/overlay"].isSlowGUMOverlayVisible } - const NN = Li(ze(void 0, (function(e) { - return { - _reloadNow() { - e(JN()) - } - } - }))(IN)); - class zN extends E.Component { - static needsRender(e) { - return "undefined" == typeof APP ? Boolean(e["features/overlay"].fatalError) : this.needsRenderWeb(e) - } - static needsRenderWeb(e) { - const t = e["features/base/conference"].error, - n = e["features/base/config"].error, - a = e["features/base/connection"].error; - return a && ut(a) || t && ct(t) || n - } - constructor(e) { - super(e); - const t = 10 + jN(0, 20); - let n, a; - this.props.isNetworkFailure ? (a = "dialog.conferenceDisconnectTitle", n = "dialog.conferenceDisconnectMsg") : (a = "dialog.conferenceReloadTitle", n = "dialog.conferenceReloadMsg"), this.state = { - message: n, - timeLeft: t, - timeoutSeconds: t, - title: a - } - } - componentDidMount() { - "undefined" != typeof APP && APP.conference && APP.conference._room && APP.conference._room.sendApplicationLog(JSON.stringify({ - name: "page.reload", - label: this.props.reason - })), Ma(function(e, t, n) { - return { - action: "page.reload.scheduled", - attributes: Ht({ - reason: e, - timeout: t - }, n) - } - }(this.props.reason, this.state.timeoutSeconds, this.props.details)), MN.info(`The conference will be reloaded after ${this.state.timeoutSeconds} seconds.`), this._interval = setInterval((() => { - 0 === this.state.timeLeft ? (this._interval && (clearInterval(this._interval), this._interval = void 0), this.props.dispatch(JN())) : this.setState((e => ({ - timeLeft: e.timeLeft - 1 - }))) - }), 1e3) - } - componentWillUnmount() { - this._interval && (clearInterval(this._interval), this._interval = void 0) - } - _renderButton() { - return this.props.isNetworkFailure ? x().createElement(NN, { - textKey: "dialog.rejoinNow" - }) : null - } - _renderProgressBar() { - const { - timeLeft: e, - timeoutSeconds: t - } = this.state, n = t - e, a = Math.floor(n / t * 100); - return x().createElement("div", { - className: "progress-indicator", - id: "reloadProgressBar" - }, x().createElement("div", { - className: "progress-indicator-fill", - style: { - width: `${a}%` - } - })) - } + } + const Jq = Ei(class extends $q { + render() { + return C().createElement(Iq, null, C().createElement("div", { + className: "overlay__spinner-container" + }, C().createElement(Ay, { + invertColor: !0, + size: "large" + }))) } - const RN = Li(ze((function(e) { + }); + + function Zq(e) { + for (const t of [Vq, Yq, Kq, Jq]) + if ((t.WrappedComponent || t).needsRender(e)) return t + } + class Qq extends x.Component { + render() { const { - error: t - } = e["features/base/config"], { - error: n - } = e["features/base/connection"], { - fatalError: a - } = e["features/overlay"]; - return { - details: a && a.details, - isNetworkFailure: a === t || a === n, - reason: a && (a.message || a.name) - } - }))(class extends zN { - render() { - const { - isNetworkFailure: e, - t - } = this.props, { - message: n, - timeLeft: a, - title: r - } = this.state; - return x().createElement(CN, { - isLightOverlay: e - }, x().createElement("div", { - "aria-describedby": "reload_overlay_text", - "aria-labelledby": "reload_overlay_title", - className: "inlay", - role: "dialog" - }, x().createElement("span", { - className: "reload_overlay_title", - id: "reload_overlay_title", - role: "heading" - }, t(r)), x().createElement("span", { - className: "reload_overlay_text", - id: "reload_overlay_text" - }, t(n, { - seconds: a - })), this._renderProgressBar(), this._renderButton())) - } - })); - class LN extends E.Component { - static needsRender(e) { - return e["features/power-monitor"].suspendDetected - } + overlay: e + } = this.props; + return e ? C().createElement(e, {}) : null } - const FN = Li(class extends LN { - render() { - const { - t: e - } = this.props; - return x().createElement(CN, null, x().createElement("div", { - className: "inlay" - }, x().createElement("span", { - className: "inlay__icon icon-microphone" - }), x().createElement("span", { - className: "inlay__icon icon-camera" - }), x().createElement("h3", { - className: "inlay__title" - }, e("suspendedoverlay.title")), x().createElement(NN, { - textKey: "suspendedoverlay.rejoinKeyTitle" - }))) - } - }); - class qN extends E.Component { - static needsRender(e) { - return e["features/overlay"].isMediaPermissionPromptVisible - } + } + const Xq = Ne((function(e) { + return { + overlay: Zq(e) } - const BN = Li(ze((function(e) { - const { - browser: t - } = e["features/overlay"]; - return { - browser: t - } - }))(class extends qN { - render() { - const { - browser: e, - t - } = this.props; - return x().createElement(CN, null, x().createElement("div", { - className: "inlay" - }, x().createElement("span", { - className: "inlay__icon icon-microphone" - }), x().createElement("span", { - className: "inlay__icon icon-camera" - }), x().createElement("h3", { - "aria-label": t("startupoverlay.genericTitle"), - className: "inlay__title", - role: "alert" - }, t("startupoverlay.genericTitle")), x().createElement("span", { - className: "inlay__text", - role: "alert" - }, Fi(t, `userMedia.${e}GrantPermissions`))), x().createElement("div", { - className: "policy overlay__policy" - }, x().createElement("p", { - className: "policy__text", - role: "alert" - }, Fi(t, "startupoverlay.policyText")), this._renderPolicyLogo())) - } - _renderPolicyLogo() { - const e = interfaceConfig.POLICY_LOGO; - return e ? x().createElement("div", { - className: "policy__logo" - }, x().createElement("img", { - alt: this.props.t("welcomepage.logo.policyLogo"), - src: e - })) : null - } - })); - class UN extends E.Component { - static needsRender(e) { - return e["features/overlay"].isSlowGUMOverlayVisible - } - } - const HN = Li(class extends UN { - render() { - return x().createElement(CN, null, x().createElement("div", { - className: "overlay__spinner-container" - }, x().createElement(Py, { - invertColor: !0, - size: "large" - }))) - } - }); + }))(Qq), eB = $e("features/app"); - function VN(e) { - for (const t of [RN, FN, BN, HN]) - if ((t.WrappedComponent || t).needsRender(e)) return t - } - class WN extends E.Component { - render() { - const { - overlay: e - } = this.props; - return e ? x().createElement(e, {}) : null + function tB(e) { + return async (t, n) => { + let a = An(e); + if (!a || !a.host) { + const e = An(pa(n)); + a ? (a.host = e.host, a.hostname = e.hostname, a.pathname = e.pathname + a.pathname.substr(1), a.port = e.port, a.protocol = e.protocol) : a = e } - } - const YN = ze((function(e) { + a.protocol || (a.protocol = "https:"); + const { + contextRoot: r, + host: i, + room: o + } = a, s = new URL(a.toString()); + "ReactNative" === navigator.product && t(RF()), t(Qf()), t(function(e, t) { return { - overlay: VN(e) - } - }))(WN), - GN = Je("features/app"); - - function KN(e) { - return async (t, n) => { - let a = Tn(e); - if (!a || !a.host) { - const e = Tn(ga(n)); - a ? (a.host = e.host, a.hostname = e.hostname, a.pathname = e.pathname + a.pathname.substr(1), a.port = e.port, a.protocol = e.protocol) : a = e + type: jn, + locationURL: e, + room: t } - a.protocol || (a.protocol = "https:"); - const { - contextRoot: r, - host: i, - room: o - } = a, s = new URL(a.toString()); - "ReactNative" === navigator.product && t(NI()), t(Hf()), t(function(e, t) { - return { - type: Nn, - locationURL: e, - room: t - } - }(s, o)); - let c = a.protocol.toLowerCase(); - "http:" !== c && "https:" !== c && (c = "https:"); - const u = `${c}//${i}${r||"/"}`; - let d, p = `${u}config.js`; - if (o && (p += `?room=${An(o)}`), o || (d = Kn(u)), !d) try { - d = await dt(), t(function(e, t) { - return n => { - let a = !1; - try { - void 0 !== window.config && window.config === t || (l.setItem(`config.js/${e}`, JSON.stringify(t)), a = !0) - } catch (e) {} - if (a) try { - n(vn(Tn(e).host)) - } catch (e) {} - return a - } - }(u, d)) - } catch (e) { - if (d = Kn(u), !d) { - if (o) return void t(ta(e, s)); - GN.warn("Failed to load config but there is no room, applying a fake one"), d = function(e) { - const t = new URL(e); - return { - hosts: { - domain: t.hostname, - muc: `conference.${t.hostname}` - }, - bosh: `${e}http-bind`, - p2p: { - enabled: !0 - } - } - }(u) + }(s, o)); + let c = a.protocol.toLowerCase(); + "http:" !== c && "https:" !== c && (c = "https:"); + const u = `${c}//${i}${r||"/"}`; + let d, p = `${u}config.js`; + if (o && (p += `?room=${Sn(o)}`), o || (d = Vn(u)), !d) try { + d = await lt(), t(function(e, t) { + return n => { + let a = !1; + try { + void 0 !== window.config && window.config === t || (l.setItem(`config.js/${e}`, JSON.stringify(t)), a = !0) + } catch (e) {} + if (a) try { + n(fn(An(e).host)) + } catch (e) {} + return a } + }(u, d)) + } catch (e) { + if (d = Vn(u), !d) { + if (o) return void t(Qn(e, s)); + eB.warn("Failed to load config but there is no room, applying a fake one"), d = function(e) { + const t = new URL(e); + return { + hosts: { + domain: t.hostname, + muc: `conference.${t.hostname}` + }, + bosh: `${e}http-bind`, + p2p: { + enabled: !0 + } + } + }(u) } - n()["features/base/config"].locationURL === s ? (t(function(e) { - return { - type: DI, - locationURL: e - } - }(s)), t(aa(d)), t(function(e) { - return { - type: rN, - room: e - } - }(o)), o && "ReactNative" === navigator.product && (t(function(...e) { - return (t, n) => { - const a = n(); - if (t(((e, t) => { - const n = Ko(t()["features/base/tracks"]); - n && n.videoType === ao && e(fs([n.jitsiTrack])) - })), 0 === e.length) { - const { - video: t - } = a["features/base/media"]; - e.push(Xi), -3 & t.muted || e.push(to) - } - const r = Go(a["features/base/tracks"], !0).map((e => e.mediaType)), - i = e.filter((e => -1 === r.indexOf(e))); - i.length && t(ss({ - devices: i - })) - } - }()), t(II()))) : t(ta(new Error("Config no longer needed!"), s)) } + n()["features/base/config"].locationURL === s ? (t(function(e) { + return { + type: jF, + locationURL: e + } + }(s)), t(ea(d)), t(function(e) { + return { + type: oq, + room: e + } + }(o)), o && "ReactNative" === navigator.product && (t(function() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + return (e, n) => { + const a = n(); + if (e(Dh()), 0 === t.length) { + const { + video: e + } = a["features/base/media"]; + t.push(Fi), e.muted & ~Hi || t.push(Bi) + } + const r = th(a["features/base/tracks"], !0).map((e => e.mediaType)), + i = t.filter((e => -1 === r.indexOf(e))); + i.length && e(fh({ + devices: i + })) + } + }()), t(NF()))) : t(Qn(new Error("Config no longer needed!"), s)) } + } - function $N(e, t) { - return () => { - const n = window.location; - let a = e; - a.startsWith("/") || (a.startsWith("./") && (a = a.substring(2)), a = jn(n) + a), t && (n.hash = t), n.pathname = a - } + function nB(e) { + return (t, n) => { + const { + locationURL: a + } = n()["features/base/connection"], r = new URL(a.href); + r.pathname = e, window.location.assign(r.toString()) } + } - function JN() { - return (e, t) => { - e(xN(void 0)); - const n = t(), - { - locationURL: a - } = n["features/base/connection"], - r = ZN(a, n); - GN.info(`Reloading the conference using URL: ${a}`), "ReactNative" === navigator.product ? e(KN(In(r))) : e(QN()) - } + function aB(e, t) { + return () => { + const n = window.location; + let a = e; + a.startsWith("/") || (a.startsWith("./") && (a = a.substring(2)), a = En(n) + a), t && (n.hash = t), n.pathname = a } + } - function ZN(e, t) { - const n = qe(t)["features/base/tracks"], - a = es(n), - r = ts(n, Xi); - return function(e, t = {}) { - const n = Pn(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - En(e, t, n[t]) - })) - } - return e - }({}, Lt(e), t)); - return n.length && (e.hash = `#${n.join("&")}`), e - }(new URL(e), { - "config.startWithAudioMuted": r, - "config.startWithVideoMuted": a - }) + function rB() { + return (e, t) => { + e(Mq(void 0)); + const n = t(), + { + locationURL: a + } = n["features/base/connection"], + r = iB(a, n); + eB.info(`Reloading the conference using URL: ${a}`), "ReactNative" === navigator.product ? e(tB(Pn(r))) : e(oB()) } + } - function QN() { - return (e, t) => { - const n = t(), - { - locationURL: a - } = n["features/base/connection"], - r = ZN(a, n), - i = window.location, - o = i.search; - i.replace(r.toString()), r.search === o && i.reload() - } + function iB(e, t) { + const n = Fe(t)["features/base/tracks"], + a = lh(n), + r = ch(n, Fi); + return function(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + const n = xn({ + ...It(e), + ...t + }); + return n.length && (e.hash = `#${n.join("&")}`), e + }(new URL(e), { + "config.startWithAudioMuted": r, + "config.startWithVideoMuted": a + }) + } + + function oB() { + return (e, t) => { + const n = t(), + { + locationURL: a + } = n["features/base/connection"], + r = iB(a, n), + i = window.location, + o = i.search; + i.replace(r.toString()), r.search === o && i.reload() } + } - function XN(e = {}) { - return (t, n) => { + function sB() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return (t, n) => { + const { + enableClosePage: a + } = n()["features/base/config"]; + if (a) { + if (cM(n())) return void aB("/"); const { - enableClosePage: a - } = n()["features/base/config"]; - if (a) { - if (Rj(n())) return void $N("/"); - const { - jwt: a - } = n()["features/base/jwt"]; - let r; - window.sessionStorage.setItem("guest", !a), window.sessionStorage.setItem("jwt", a); - let i = "close.html"; - return interfaceConfig.SHOW_PROMOTIONAL_CLOSE_PAGE ? (Number(Bt) === Bt && (r = `#jitsi_meet_external_api_id=${Bt}`), i = "close3.html") : e.feedbackSubmitted || (i = "close2.html"), void t($N(`static/${i}`, r)) - } - e.showThankYou && t(Yf({ - titleArguments: { - appName: ba() - }, - titleKey: "dialog.thankYou" - })), n()["features/base/config"].enableWelcomePage && setTimeout((() => { - t(("/" + (location.href.split("/").length == 5 ? location.href.split("/")[3] : ""), (e, t) => { // BAO - const { - locationURL: n - } = t()["features/base/connection"], a = new URL(n.href); - a.pathname = "/", window.location.assign(a.toString()) - })) - }), e.showThankYou ? 3e3 : 500) + jwt: a + } = n()["features/base/jwt"]; + let r; + window.sessionStorage.setItem("guest", !a), window.sessionStorage.setItem("jwt", a); + let i = "close.html"; + return interfaceConfig.SHOW_PROMOTIONAL_CLOSE_PAGE ? (Number(Rt) === Rt && (r = `#jitsi_meet_external_api_id=${Rt}`), i = "close3.html") : e.feedbackSubmitted || (i = "close2.html"), void t(aB(`static/${i}`, r)) } + e.showThankYou && t(tg({ + titleArguments: { + appName: ha() + }, + titleKey: "dialog.thankYou" + }, Yf.STICKY)), n()["features/base/config"].enableWelcomePage && setTimeout((() => { + t(nB("/" + (location.href.split("/").length == 5 ? location.href.split("/")[3] : ""))) // BAO + }), e.showThankYou ? 3e3 : 500) } - const ez = "CANCEL_LOGIN", - tz = "STOP_WAIT_FOR_OWNER", - nz = "UPGRADE_ROLE_FINISHED", - az = "UPGRADE_ROLE_STARTED", - rz = "WAIT_FOR_OWNER"; - class iz extends E.PureComponent { - constructor(e) { - super(e), this._onCancelWaitForOwner = this._onCancelWaitForOwner.bind(this), this._onIAmHost = this._onIAmHost.bind(this) - } - _onCancelWaitForOwner() { - const { - dispatch: e - } = this.props; - e((e => { - e(XN()) - })) - } - _onIAmHost() { - const { - onAuthNow: e - } = this.props; - e && e() - } - render() { - const { - _room: e, - t - } = this.props; - return x().createElement(IO, { - disableBlanketClickDismiss: !0, - hideCloseIconButton: !0, - okKey: t("dialog.IamHost"), - onCancel: this._onCancelWaitForOwner, - onSubmit: this._onIAmHost, - titleKey: t("dialog.WaitingForHostTitle"), - width: "small" - }, x().createElement("span", null, Fi(t, "dialog.WaitForHostMsg", { - room: e - }))) - } + } + const lB = "CANCEL_LOGIN", cB = "STOP_WAIT_FOR_OWNER", uB = "UPGRADE_ROLE_FINISHED", dB = "UPGRADE_ROLE_STARTED", pB = "WAIT_FOR_OWNER"; class hB extends x.PureComponent { + constructor(e) { + super(e), this._onCancelWaitForOwner = this._onCancelWaitForOwner.bind(this), this._onIAmHost = this._onIAmHost.bind(this) } - const oz = Li(ze((function(e) { + _onCancelWaitForOwner() { const { - authRequired: t - } = e["features/base/conference"]; - return { - _room: t && Mn(t.getName()) - } - }))(iz)); - var sz = "onBlurKey", - lz = "onContentBlurKey"; - - function cz(e) { - setTimeout(e, 0) + dispatch: e + } = this.props; + e((e => { + e(sB()) + })) } - var uz = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + _onIAmHost() { + const { + onAuthNow: e + } = this.props; + e && e() + } + render() { + const { + _room: e, + t + } = this.props; + return C().createElement(yL, { + disableBlanketClickDismiss: !0, + hideCloseIconButton: !0, + okKey: t("dialog.IamHost"), + onCancel: this._onCancelWaitForOwner, + onSubmit: this._onIAmHost, + titleKey: t("dialog.WaitingForHostTitle"), + width: "small" + }, C().createElement("span", null, xi(t, "dialog.WaitForHostMsg", { + room: e + }))) + } + } + const mB = Ei(Ne((function(e) { + const { + authRequired: t + } = e["features/base/conference"]; + return { + _room: t && Dn(t.getName()) + } + }))(hB)); + var fB = "onBlurKey", gB = "onContentBlurKey"; - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { - isFocused: e.props.defaultIsFocused, - isDialogFocused: !1, - shouldIgnoreNextDialogBlur: !1 - }), Zf(_(e), "timers", void 0), Zf(_(e), "onFocus", (function(t) { + function bB(e) { + setTimeout(e, 0) + } + var yB = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); + + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { + isFocused: e.props.defaultIsFocused, + isDialogFocused: !1, + shouldIgnoreNextDialogBlur: !1 + }), $a(w(e), "timers", void 0), $a(w(e), "onFocus", (function(t) { + e.setState({ + isFocused: !0 + }), e.props.onFocus(t), e.cancelSchedule(fB) + })), $a(w(e), "onBlur", (function(t) { + e.reschedule(fB, (function() { e.setState({ - isFocused: !0 - }), e.props.onFocus(t), e.cancelSchedule(sz) - })), Zf(_(e), "onBlur", (function(t) { - e.reschedule(sz, (function() { - e.setState({ - isFocused: !1 - }), e.props.onBlur(t) - })) - })), Zf(_(e), "onContentFocus", (function() { - e.state.isDialogFocused ? e.setState({ - shouldIgnoreNextDialogBlur: !0 + isFocused: !1 + }), e.props.onBlur(t) + })) + })), $a(w(e), "onContentFocus", (function() { + e.state.isDialogFocused ? e.setState({ + shouldIgnoreNextDialogBlur: !0 + }) : e.setState({ + isDialogFocused: !0 + }), e.cancelSchedule(gB) + })), $a(w(e), "onContentBlur", (function() { + bB((function() { + e.state.shouldIgnoreNextDialogBlur ? e.setState({ + shouldIgnoreNextDialogBlur: !1 }) : e.setState({ - isDialogFocused: !0 - }), e.cancelSchedule(lz) - })), Zf(_(e), "onContentBlur", (function() { - cz((function() { - e.state.shouldIgnoreNextDialogBlur ? e.setState({ - shouldIgnoreNextDialogBlur: !1 - }) : e.setState({ - isDialogFocused: !1 - }) - })) - })), e + isDialogFocused: !1 + }) + })) + })), e + } + return Ka(r, [{ + key: "cancelSchedule", + value: function(e) { + this.timers = this.timers || {}, this.timers[e] && (clearTimeout(this.timers[e]), delete this.timers[e]) } - return Qg(r, [{ - key: "cancelSchedule", - value: function(e) { - this.timers = this.timers || {}, this.timers[e] && (clearTimeout(this.timers[e]), delete this.timers[e]) - } - }, { - key: "reschedule", - value: function(e, t) { - var n = this; - this.timers = this.timers || {}, this.cancelSchedule(e), this.timers[e] = setTimeout((function() { - t(), n.cancelSchedule(e) - }), 0) - } - }, { - key: "componentWillUnmount", - value: function() { - this.cancelSchedule(sz) - } - }, { - key: "render", - value: function() { - var e = this.props, - t = (e.defaultIsFocused, Fg(e, ["defaultIsFocused"])), - n = this.state, - a = n.isFocused, - r = n.isDialogFocused; - return x().createElement(rC, z({}, t, { - isDialogOpen: a || r, - isFocused: a, - onBlur: this.onBlur, - onFocus: this.onFocus, - onDialogFocus: this.onContentFocus, - onDialogBlur: this.onContentBlur - })) - } - }]), r - }(E.Component); - Zf(uz, "defaultProps", { - defaultIsFocused: !1, - onFocus: function() {}, - onBlur: function() {} + }, { + key: "reschedule", + value: function(e, t) { + var n = this; + this.timers = this.timers || {}, this.cancelSchedule(e), this.timers[e] = setTimeout((function() { + t(), n.cancelSchedule(e) + }), 0) + } + }, { + key: "componentWillUnmount", + value: function() { + this.cancelSchedule(fB) + } + }, { + key: "render", + value: function() { + var e = this.props, + t = (e.defaultIsFocused, Yg(e, ["defaultIsFocused"])), + n = this.state, + a = n.isFocused, + r = n.isDialogFocused; + return C().createElement(PD, z({}, t, { + isDialogOpen: a || r, + isFocused: a, + onBlur: this.onBlur, + onFocus: this.onFocus, + onDialogFocus: this.onContentFocus, + onDialogBlur: this.onContentBlur + })) + } + }]), r + }(x.Component); $a(yB, "defaultProps", { + defaultIsFocused: !1, + onFocus: function() {}, + onBlur: function() {} + }); + const vB = JSON.parse('{"u2":"@atlaskit/field-text","i8":"11.0.4"}'); + var kB = function(e) { + return e.disabled ? (0, fA.Z)({ + light: hb.N70, + dark: hb.DN90 + }) : (0, fA.Z)({ + light: hb.N100, + dark: hb.DN90 + }) + }; + const _B = $g.default.input.withConfig({ + displayName: "Input__InputElement", + componentId: "sc-1o6bj35-0" + })(["\n background: transparent;\n border: 0;\n box-sizing: border-box;\n color: inherit;\n cursor: inherit;\n font-family: ", ";\n font-size: ", "px;\n min-width: 0;\n outline: none;\n width: 100%;\n\n [disabled] {\n ", ";\n }\n\n &::-ms-clear {\n display: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n ", ";\n"], (function(e) { + return e.isMonospaced ? "'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace" : "inherit" + }), Xg, "\n -webkit-text-fill-color: unset;\n -webkit-opacity: 1;\n", (function() { + return (0, $g.css)(["\n &::-webkit-input-placeholder {\n /* WebKit, Blink, Edge */\n color: ", ";\n }\n &::-moz-placeholder {\n /* Mozilla Firefox 19+ */\n color: ", ";\n opacity: 1;\n }\n &::-ms-input-placeholder {\n /* Microsoft Edge */\n color: ", ";\n }\n &:-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n color: ", ";\n }\n"], kB, kB, kB, kB) + })); + var wB = $g.default.div.withConfig({ + displayName: "FieldTextStateless__Wrapper", + componentId: "ynbdsh-0" + })(["\n flex: 1 1 100%;\n"]), SB = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) }); - const dz = JSON.parse('{"u2":"@atlaskit/field-text","i8":"11.0.4"}'); - var pz = function(e) { - return e.disabled ? (0, VS.Z)({ - light: mb.N70, - dark: mb.DN90 - }) : (0, VS.Z)({ - light: mb.N100, - dark: mb.DN90 - }) - }; - const hz = Ug.default.input.withConfig({ - displayName: "Input__InputElement", - componentId: "sc-1o6bj35-0" - })(["\n background: transparent;\n border: 0;\n box-sizing: border-box;\n color: inherit;\n cursor: inherit;\n font-family: ", ";\n font-size: ", "px;\n min-width: 0;\n outline: none;\n width: 100%;\n\n [disabled] {\n ", ";\n }\n\n &::-ms-clear {\n display: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n ", ";\n"], (function(e) { - return e.isMonospaced ? "'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace" : "inherit" - }), Yg, "\n -webkit-text-fill-color: unset;\n -webkit-opacity: 1;\n", (function() { - return (0, Ug.css)(["\n &::-webkit-input-placeholder {\n /* WebKit, Blink, Edge */\n color: ", ";\n }\n &::-moz-placeholder {\n /* Mozilla Firefox 19+ */\n color: ", ";\n opacity: 1;\n }\n &::-ms-input-placeholder {\n /* Microsoft Edge */\n color: ", ";\n }\n &:-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n color: ", ";\n }\n"], pz, pz, pz, pz) - })); - var mz = Ug.default.div.withConfig({ - displayName: "FieldTextStateless__Wrapper", - componentId: "ynbdsh-0" - })(["\n flex: 1 1 100%;\n"]), - fz = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "input", void 0), Zf(_(e), "setInputRef", (function(t) { - e.input = t, e.props.innerRef(t) - })), e - } - return Qg(r, [{ - key: "focus", - value: function() { - this.input && this.input.focus() - } - }, { - key: "render", - value: function() { - return x().createElement(mz, null, !this.props.isLabelHidden && x().createElement(Lx, { - htmlFor: this.props.id, - isDisabled: this.props.disabled, - isLabelHidden: this.props.isLabelHidden, - isRequired: this.props.required, - label: this.props.label || "" - }), x().createElement(uz, { - invalidMessage: this.props.invalidMessage, - isCompact: this.props.compact, - isDisabled: this.props.disabled, - isFitContainerWidthEnabled: this.props.shouldFitContainer, - isInvalid: this.props.isInvalid, - isReadOnly: this.props.isReadOnly, - isRequired: this.props.required, - isValidationHidden: this.props.isValidationHidden - }, x().createElement(hz, { - autoComplete: this.props.autoComplete, - autoFocus: this.props.autoFocus, - disabled: this.props.disabled, - form: this.props.form, - id: this.props.id, - innerRef: this.setInputRef, - isMonospaced: this.props.isMonospaced, - maxLength: this.props.maxLength, - min: this.props.min, - max: this.props.max, - name: this.props.name, - onBlur: this.props.onBlur, - onChange: this.props.onChange, - onFocus: this.props.onFocus, - onKeyDown: this.props.onKeyDown, - onKeyPress: this.props.onKeyPress, - onKeyUp: this.props.onKeyUp, - pattern: this.props.pattern, - placeholder: this.props.placeholder, - readOnly: this.props.isReadOnly, - required: this.props.required, - spellCheck: this.props.isSpellCheckEnabled, - type: this.props.type, - value: this.props.value - }))) - } - }]), r - }(E.Component); - Zf(fz, "defaultProps", { - compact: !1, - disabled: !1, - isInvalid: !1, - isReadOnly: !1, - isSpellCheckEnabled: !0, - onChange: function() {}, - required: !1, - type: "text", - isValidationHidden: !1, - innerRef: function() {} - }); - var gz = xS("atlaskit"); - const bz = NS({ - componentName: "fieldText", - packageName: dz.u2, - packageVersion: dz.i8 - })(FS({ - onBlur: gz({ - action: "blurred", - actionSubject: "textField", - attributes: { - componentName: "fieldText", - packageName: dz.u2, - packageVersion: dz.i8 - } - }), - onFocus: gz({ - action: "focused", - actionSubject: "textField", - attributes: { - componentName: "fieldText", - packageName: dz.u2, - packageVersion: dz.i8 - } - }) - })(fz)); - class yz extends E.Component { - constructor(e) { - super(e), this.state = { - username: "", - password: "", - loginStarted: !1 - }, this._onCancelLogin = this._onCancelLogin.bind(this), this._onLogin = this._onLogin.bind(this), this._onChange = this._onChange.bind(this) - } - _onCancelLogin() { - const { - dispatch: e - } = this.props; - e({ - type: ez - }) + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "input", void 0), $a(w(e), "setInputRef", (function(t) { + e.input = t, e.props.innerRef(t) + })), e + } + return Ka(r, [{ + key: "focus", + value: function() { + this.input && this.input.focus() } - _onLogin() { - const { - _conference: e, - _configHosts: t, - roomName: n, - onSuccess: a, - dispatch: r - } = this.props, { - password: i, - username: o - } = this.state, s = FI(o, t); - e ? r(function(e, t, n) { - return (a, r) => { - const { - password: i - } = r()["features/base/conference"], o = n.authenticateAndUpgradeRole({ - id: e, - password: t, - roomPassword: i, - onLoginSuccessful: () => a(wz(o, .5)) - }); - return a({ - type: az, - thenableWithCancel: o - }), o.then((() => a(wz(o, 1))), (e => { - (e.authenticationError || e.connectionError) && kz.error("authenticateAndUpgradeRole failed", e), a(wz(o, e)) - })), o - } - }(s, i, e)) : (this.setState({ - loginStarted: !0 - }), kL(s, i, n).then((e => { - a && a(e) - })).catch((() => { - this.setState({ - loginStarted: !1 - }) + }, { + key: "render", + value: function() { + return C().createElement(wB, null, !this.props.isLabelHidden && C().createElement(cD, { + htmlFor: this.props.id, + isDisabled: this.props.disabled, + isLabelHidden: this.props.isLabelHidden, + isRequired: this.props.required, + label: this.props.label || "" + }), C().createElement(yB, { + invalidMessage: this.props.invalidMessage, + isCompact: this.props.compact, + isDisabled: this.props.disabled, + isFitContainerWidthEnabled: this.props.shouldFitContainer, + isInvalid: this.props.isInvalid, + isReadOnly: this.props.isReadOnly, + isRequired: this.props.required, + isValidationHidden: this.props.isValidationHidden + }, C().createElement(_B, { + autoComplete: this.props.autoComplete, + autoFocus: this.props.autoFocus, + disabled: this.props.disabled, + form: this.props.form, + id: this.props.id, + innerRef: this.setInputRef, + isMonospaced: this.props.isMonospaced, + maxLength: this.props.maxLength, + min: this.props.min, + max: this.props.max, + name: this.props.name, + onBlur: this.props.onBlur, + onChange: this.props.onChange, + onFocus: this.props.onFocus, + onKeyDown: this.props.onKeyDown, + onKeyPress: this.props.onKeyPress, + onKeyUp: this.props.onKeyUp, + pattern: this.props.pattern, + placeholder: this.props.placeholder, + readOnly: this.props.isReadOnly, + required: this.props.required, + spellCheck: this.props.isSpellCheckEnabled, + type: this.props.type, + value: this.props.value }))) } - _onChange(e) { + }]), r + }(x.Component); $a(SB, "defaultProps", { + compact: !1, + disabled: !1, + isInvalid: !1, + isReadOnly: !1, + isSpellCheckEnabled: !0, + onChange: function() {}, + required: !1, + type: "text", + isValidationHidden: !1, + innerRef: function() {} + }); + var EB = QC("atlaskit"); + const xB = oA({ + componentName: "fieldText", + packageName: vB.u2, + packageVersion: vB.i8 + })(uA({ + onBlur: EB({ + action: "blurred", + actionSubject: "textField", + attributes: { + componentName: "fieldText", + packageName: vB.u2, + packageVersion: vB.i8 + } + }), + onFocus: EB({ + action: "focused", + actionSubject: "textField", + attributes: { + componentName: "fieldText", + packageName: vB.u2, + packageVersion: vB.i8 + } + }) + })(SB)); class CB extends x.Component { + constructor(e) { + super(e), this.state = { + username: "", + password: "", + loginStarted: !1 + }, this._onCancelLogin = this._onCancelLogin.bind(this), this._onLogin = this._onLogin.bind(this), this._onChange = this._onChange.bind(this) + } + _onCancelLogin() { + const { + dispatch: e + } = this.props; + e({ + type: lB + }) + } + _onLogin() { + const { + _conference: e, + _configHosts: t, + roomName: n, + onSuccess: a, + dispatch: r + } = this.props, { + password: i, + username: o + } = this.state, s = qF(o, t); + e ? r(function(e, t, n) { + return (a, r) => { + const { + password: i + } = r()["features/base/conference"], o = n.authenticateAndUpgradeRole({ + id: e, + password: t, + roomPassword: i, + onLoginSuccessful: () => a(DB(o, .5)) + }); + return a({ + type: dB, + thenableWithCancel: o + }), o.then((() => a(DB(o, 1))), (e => { + (e.authenticationError || e.connectionError) && TB.error("authenticateAndUpgradeRole failed", e), a(DB(o, e)) + })), o + } + }(s, i, e)) : (this.setState({ + loginStarted: !0 + }), qH(s, i, n).then((e => { + a && a(e) + })).catch((() => { this.setState({ - [e.target.name]: e.target.value + loginStarted: !1 }) - } - renderMessage() { + }))) + } + _onChange(e) { + this.setState({ + [e.target.name]: e.target.value + }) + } + renderMessage() { + const { + _configHosts: e, + _connecting: t, + _error: n, + _progress: a, + t: r + } = this.props, { + username: i, + password: o + } = this.state, s = {}; + let l; + if (a && a < 1) l = r("connection.FETCH_SESSION_ID"); + else if (n) { const { - _configHosts: e, - _connecting: t, - _error: n, - _progress: a, - t: r - } = this.props, { - username: i, - password: o - } = this.state, s = {}; - let l; - if (a && a < 1) l = r("connection.FETCH_SESSION_ID"); - else if (n) { + name: t + } = n; + if (t === mt.PASSWORD_REQUIRED) { const { - name: t + credentials: t } = n; - if (t === yt.PASSWORD_REQUIRED) { - const { - credentials: t - } = n; - t && t.jid === FI(i, e) && t.password === o && (l = r("dialog.incorrectPassword")) - } else t && (l = r("dialog.connectErrorWithMsg"), s.msg = `${t} ${n.message}`) - } else t && (l = r("connection.CONNECTING")); - return l ? x().createElement("span", null, Fi(r, l, s)) : null - } - render() { - const { - _connecting: e, - t - } = this.props, { - password: n, - loginStarted: a, - username: r - } = this.state; - return x().createElement(IO, { - disableBlanketClickDismiss: !0, - hideCloseIconButton: !0, - okDisabled: e || a || !n || !r, - okKey: t("dialog.login"), - onCancel: this._onCancelLogin, - onSubmit: this._onLogin, - titleKey: t("dialog.authenticationRequired"), - width: "small" - }, x().createElement(bz, { - autoFocus: !0, - className: "input-control", - compact: !1, - label: t("dialog.user"), - name: "username", - onChange: this._onChange, - placeholder: t("dialog.userIdentifier"), - shouldFitContainer: !0, - type: "text", - value: r - }), x().createElement(bz, { - className: "input-control", - compact: !1, - label: t("dialog.userPassword"), - name: "password", - onChange: this._onChange, - placeholder: t("dialog.password"), - shouldFitContainer: !0, - type: "password", - value: n - }), this.renderMessage()) - } + t && t.jid === qF(i, e) && t.password === o && (l = r("dialog.incorrectPassword")) + } else t && (l = r("dialog.connectErrorWithMsg"), s.msg = `${t} ${n.message}`) + } else t && (l = r("connection.CONNECTING")); + return l ? C().createElement("span", null, xi(r, l, s)) : null } - const vz = Li(ze((function(e) { - const { - error: t, - progress: n, - thenableWithCancel: a - } = e["features/authentication"], { - authRequired: r - } = e["features/base/conference"], { - hosts: i - } = e["features/base/config"], { - connecting: o, - error: s - } = e["features/base/connection"]; - return { - _conference: r, - _configHosts: i, - _connecting: o || a, - _error: s || t, - _progress: n - } - }))(yz)), - kz = Je("features/authentication"); - - function _z(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + render() { + const { + _connecting: e, + t + } = this.props, { + password: n, + loginStarted: a, + username: r + } = this.state; + return C().createElement(yL, { + disableBlanketClickDismiss: !0, + hideCloseIconButton: !0, + okDisabled: e || a || !n || !r, + okKey: t("dialog.login"), + onCancel: this._onCancelLogin, + onSubmit: this._onLogin, + titleKey: t("dialog.authenticationRequired"), + width: "small" + }, C().createElement(xB, { + autoFocus: !0, + className: "input-control", + compact: !1, + label: t("dialog.user"), + name: "username", + onChange: this._onChange, + placeholder: t("dialog.userIdentifier"), + shouldFitContainer: !0, + type: "text", + value: r + }), C().createElement(xB, { + className: "input-control", + compact: !1, + label: t("dialog.userPassword"), + name: "password", + onChange: this._onChange, + placeholder: t("dialog.password"), + shouldFitContainer: !0, + type: "password", + value: n + }), this.renderMessage()) } - - function wz(e, t) { - let n, a; - if ("number" == typeof t) a = t; - else { - const { - authenticationError: e, - connectionError: r - } = t; - n = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - _z(e, t, n[t]) - })) - } - return e - }({ - name: e || r - }, function(e, t) { - if (null == e) return {}; - var n, a, r = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, t); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) - } - return r - }(t, ["authenticationError", "connectionError"])), a = e ? .5 : 0 - } - return { - type: nz, - error: n, - progress: a, - thenableWithCancel: e - } + } + const AB = Ei(Ne((function(e) { + const { + error: t, + progress: n, + thenableWithCancel: a + } = e["features/authentication"], { + authRequired: r + } = e["features/base/conference"], { + hosts: i + } = e["features/base/config"], { + connecting: o, + error: s + } = e["features/base/connection"]; + return { + _conference: r, + _configHosts: i, + _connecting: o || a, + _error: s || t, + _progress: n + } + }))(CB)), TB = $e("features/authentication"); + + function DB(e, t) { + let n, a; + if ("number" == typeof t) a = t; + else { + const { + authenticationError: e, + connectionError: r, + ...i + } = t; + n = { + name: e || r, + ...i + }, a = e ? .5 : 0 } - - function Sz() { - return sP(oz) + return { + type: uB, + error: n, + progress: a, + thenableWithCancel: e } + } - function Ez() { - return { - type: tz - } - } + function PB() { + return VI(mB) + } - function xz() { - return oP(vz) + function jB() { + return { + type: cB } - const Cz = e => "string" == typeof e.tokenAuthUrl && e.tokenAuthUrl.length, - Az = e => c.default.util.AuthUtil.getTokenAuthUrl.bind(null, e.tokenAuthUrl), - jz = "SET_JWT"; + } - function Pz(e) { - return { - type: jz, - jwt: e - } - } - var Dz = n(9623), - Tz = n.n(Dz); - const Oz = ["branding", "calendar", "callstats", "livestreaming", "lobby", "moderation", "outbound-call", "recording", "room", "screen-sharing", "sip-outbound-call", "transcription"]; + function MB() { + return HI(AB) + } + const IB = e => "string" == typeof e.tokenAuthUrl && e.tokenAuthUrl.length, OB = e => c.default.util.AuthUtil.getTokenAuthUrl.bind(null, e.tokenAuthUrl), NB = "SET_JWT"; - function Mz(e = window.location) { - return Lt(e, !0, "search").jwt + function RB(e) { + return { + type: NB, + jwt: e } + } + var zB = n(9623), LB = n.n(zB); + const FB = ["branding", "calendar", "callstats", "livestreaming", "lobby", "moderation", "outbound-call", "recording", "room", "screen-sharing", "sip-outbound-call", "transcription"]; - function Iz(e) { - return "number" == typeof e && 1e3 * e === new Date(1e3 * e).getTime() - } - const Nz = { - escapeHtml: e => $("
").text(e).html(), - prependChild(e, t) { - const n = e.childNodes[0]; - let a; - return a = n ? e.insertBefore(t, n) : e.appendChild(t), a - }, - redirect(e) { - window.location.href = e - }, - isFullScreen: () => Boolean(document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement), - isVisible: e => null !== e.offsetParent - }, - zz = Nz, - Rz = { - showExternalAuthDialog(e, t) { - const n = APP.UI.messageHandler.openCenteredPopup(e, 910, 660, t); - return n || APP.UI.messageHandler.showWarning({ - descriptionKey: "dialog.popupError", - titleKey: "dialog.popupErrorTitle" - }), n - } - }; - let Lz; - const Fz = We().getLogger("modules/UI/authentication/AuthHandler.js"); + function qB() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window.location; + return It(e, !0, "search").jwt + } - function qz(e) { - const t = APP.store.getState()["features/base/config"]; - zz.redirect(Az(t)(e, !1)) + function BB(e) { + return "number" == typeof e && 1e3 * e === new Date(1e3 * e).getTime() + } + const UB = { + escapeHtml: e => $("
").text(e).html(), + prependChild(e, t) { + const n = e.childNodes[0]; + let a; + return a = n ? e.insertBefore(t, n) : e.appendChild(t), a + }, + redirect(e) { + window.location.href = e + }, + isFullScreen: () => Boolean(document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement || document.msFullscreenElement), + isVisible: e => null !== e.offsetParent + }, HB = UB, VB = { + showExternalAuthDialog(e, t) { + const n = APP.UI.messageHandler.openCenteredPopup(e, 910, 660, t); + return n || APP.UI.messageHandler.showWarning({ + descriptionKey: "dialog.popupError", + titleKey: "dialog.popupErrorTitle" + }), n } + }; + let WB; + const YB = Ve().getLogger("modules/UI/authentication/AuthHandler.js"); - function Bz(e, t) { + function GB(e) { + const t = APP.store.getState()["features/base/config"]; + HB.redirect(OB(t)(e, !1)) + } + + function KB(e, t) { + const n = APP.store.getState()["features/base/config"]; + IB(n) || e.isExternalAuthEnabled() ? function(e, t) { const n = APP.store.getState()["features/base/config"]; - Cz(n) || e.isExternalAuthEnabled() ? function(e, t) { - const n = APP.store.getState()["features/base/config"]; - if (Lz) Lz.focus(); - else if (e.isJoined()) { - let a; - Cz(n) ? (a = Promise.resolve(Az(n)(e.getName(), !0)), function(e) { - function t({ - data: t, - source: a - }) { - if (Lz !== a) return void Fz.warn("Ignored message not coming from external authnetication window"); - let r; - if (t && (r = t.jwtToken)) { - Fz.info("Received JSON Web Token (JWT):", r), APP.store.dispatch(Pz(r)); + if (WB) WB.focus(); + else if (e.isJoined()) { + let a; + IB(n) ? (a = Promise.resolve(OB(n)(e.getName(), !0)), function(e) { + function t(t) { + let a, { + data: r, + source: i + } = t; + if (WB === i) { + if (r && (a = r.jwtToken)) { + YB.info("Received JSON Web Token (JWT):", a), APP.store.dispatch(RB(a)); const t = e.getName(); - _L({ + BH({ retry: !1, roomName: t }).then((a => { a.initJitsiConference(t, APP.conference._getConferenceOptions()).room.moderator.authenticate().then((() => { a.disconnect(), e.room.moderator.authenticate().then((() => { - Fz.info("User role upgrade done !"), n() + YB.info("User role upgrade done !"), n() })).catch(((e, t) => { - Fz.error("Authentication failed: ", e, t), n() + YB.error("Authentication failed: ", e, t), n() })) })).catch(((e, t) => { - n(), a.disconnect(), Fz.error("Authentication failed on the new connection", e, t) + n(), a.disconnect(), YB.error("Authentication failed on the new connection", e, t) })) }), (e => { - n(), Fz.error("Failed to open new connection", e) + n(), YB.error("Failed to open new connection", e) })) } - } + } else YB.warn("Ignored message not coming from external authnetication window") + } - function n() { - window.removeEventListener("message", t) - } - window.addEventListener && window.addEventListener("message", t, !1) - }(e)) : a = e.getExternalAuthUrl(!0), a.then((a => { - Lz = Rz.showExternalAuthDialog(a, (() => { - Lz = null, Cz(n) || e.join(t) - })) - })) - } else Cz(n) ? qz(e.getName()) : e.getExternalAuthUrl().then(zz.redirect) - }(e, t) : APP.store.dispatch(sP(vz)) - } - const Uz = { - authenticate: Bz, - logout: function(e) { - return new Promise((t => { - e.room.moderator.logout(t) - })).then((t => { - if (e.isJoined()) { - const t = Zn(APP.store.getState()); - e.join(null, t) - } - return t + function n() { + window.removeEventListener("message", t) + } + window.addEventListener && window.addEventListener("message", t, !1) + }(e)) : a = e.getExternalAuthUrl(!0), a.then((a => { + WB = VB.showExternalAuthDialog(a, (() => { + WB = null, IB(n) || e.join(t) })) - }, - requireAuth: function(e, t) { - iP(APP.store, oz) && APP.store.dispatch(function(e, t) { - return sP(oz, { - room: e, - onAuthNow: t - }) - }(e.getName(), Bz.bind(null, e, t))) - } - }, - Hz = "SET_DETAILS"; - var Vz = n(545), - Wz = n.n(Vz); - const Yz = "UPDATE_DROPBOX_TOKEN"; - var Gz = n(904); - - function Kz(e) { - const t = `oauth${Date.now()}`, - n = It(); - return n.oauthCallbacks = n.oauthCallbacks || {}, new Promise((a => { - const r = window.open(e, t); - n.oauthCallbacks[t] = e => { - r.close(), delete n.oauthCallbacks.windowName, a(e) + })) + } else IB(n) ? GB(e.getName()) : e.getExternalAuthUrl().then(HB.redirect) + }(e, t) : APP.store.dispatch(VI(AB)) + } + const $B = { + authenticate: KB, + logout: function(e) { + return new Promise((t => { + e.room.moderator.logout(t) + })).then((t => { + if (e.isJoined()) { + const t = Kn(APP.store.getState()); + e.join(null, t) } + return t })) + }, + requireAuth: function(e, t) { + BI(APP.store, mB) && APP.store.dispatch(function(e, t) { + return VI(mB, { + room: e, + onAuthNow: t + }) + }(e.getName(), KB.bind(null, e, t))) } + }, JB = "SET_DETAILS"; + var ZB, QB = new Uint8Array(16); - function $z(e, t) { - return new Gz.Dropbox({ - accessToken: e, - clientId: t - }).usersGetCurrentAccount().then((e => e.result.name.display_name)) + function XB() { + if (!ZB && !(ZB = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto))) throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported"); + return ZB(QB) + } + const eU = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i, tU = function(e) { + return "string" == typeof e && eU.test(e) + }; + for (var nU = [], aU = 0; aU < 256; ++aU) nU.push((aU + 256).toString(16).substr(1)); + const rU = function(e, t, n) { + var a = (e = e || {}).random || (e.rng || XB)(); + if (a[6] = 15 & a[6] | 64, a[8] = 63 & a[8] | 128, t) { + n = n || 0; + for (var r = 0; r < 16; ++r) t[n + r] = a[r]; + return t } + return function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, + n = (nU[e[t + 0]] + nU[e[t + 1]] + nU[e[t + 2]] + nU[e[t + 3]] + "-" + nU[e[t + 4]] + nU[e[t + 5]] + "-" + nU[e[t + 6]] + nU[e[t + 7]] + "-" + nU[e[t + 8]] + nU[e[t + 9]] + "-" + nU[e[t + 10]] + nU[e[t + 11]] + nU[e[t + 12]] + nU[e[t + 13]] + nU[e[t + 14]] + nU[e[t + 15]]).toLowerCase(); + if (!tU(n)) throw TypeError("Stringified UUID is invalid"); + return n + }(a) + }, iU = "UPDATE_DROPBOX_TOKEN"; + var oU = n(904); - function Jz(e, t) { - return new Gz.Dropbox({ - accessToken: e, - clientId: t - }).usersGetSpaceUsage().then((e => { - const { - allocation: t, - used: n - } = e.result, { - allocated: a - } = t; - return { - allocated: a, - used: n - } - })) - } + function sU(e) { + const t = `oauth${Date.now()}`; + return new Promise((n => { + let a; + const r = e => { + let { + data: i + } = e; + i && "dropbox-login" === i.type && i.windowName === t && (a && a.close(), window.removeEventListener("message", r), n(i.url)) + }; + window.addEventListener("message", r), a = window.open(e, t) + })) + } - function Zz(e) { - const { - dropbox: t = {} - } = e["features/base/config"]; - return "string" == typeof t.appKey - } - const Qz = Je("features/dropbox"); + function lU(e, t) { + return new oU.Dropbox({ + accessToken: e, + clientId: t + }).usersGetCurrentAccount().then((e => e.result.name.display_name)) + } - function Xz(e, t, n) { + function cU(e, t) { + return new oU.Dropbox({ + accessToken: e, + clientId: t + }).usersGetSpaceUsage().then((e => { + const { + allocation: t, + used: n + } = e.result, { + allocated: a + } = t; return { - type: Yz, - token: e, - rToken: t, - expireDate: n + allocated: a, + used: n } - } - const eR = "LIVE_STREAMING_OFF_SOUND", - tR = "LIVE_STREAMING_ON_SOUND", - nR = "RECORDING_OFF_SOUND", - aR = "RECORDING_ON_SOUND", - rR = "recording-service", - iR = "dropbox", - oR = [Et.status.OFF, Et.status.PENDING, Et.status.ON]; + })) + } - function sR(e, t) { - const { - sessionDatas: n - } = e["features/recording"], { - status: a - } = Et; - return n.find((e => e.mode === t && (e.status === a.ON || e.status === a.PENDING))) - } + function uU(e) { + const { + dropbox: t = {} + } = e["features/base/config"]; + return "string" == typeof t.appKey + } + const dU = $e("features/dropbox"); - function lR(e, t) { - return e["features/recording"].sessionDatas.find((e => e.id === t)) + function pU(e, t, n) { + return { + type: iU, + token: e, + rToken: t, + expireDate: n } + } + const hU = "LIVE_STREAMING_OFF_SOUND", mU = "LIVE_STREAMING_ON_SOUND", fU = "RECORDING_OFF_SOUND", gU = "RECORDING_ON_SOUND", bU = "recording-service", yU = "dropbox", vU = [kt.status.OFF, kt.status.PENDING, kt.status.ON]; - function cR(e, t) { - const n = e["features/recording"].sessionDatas; - let a; - if (Array.isArray(n)) - for (const e of n) e.mode === t && (!a || oR.indexOf(e.status) > oR.indexOf(a)) && (a = e.status); - return a - } + function kU(e, t) { + const { + sessionDatas: n + } = e["features/recording"], { + status: a + } = kt; + return n.find((e => e.mode === t && (e.status === a.ON || e.status === a.PENDING))) + } - function uR(e) { - if (e) return "string" == typeof e ? e : e.getId() - } - const dR = "OUTGOING_CALL_EXPIRED_SOUND", - pR = "OUTGOING_CALL_REJECTED_SOUND", - hR = "OUTGOING_CALL_RINGING_SOUND", - mR = "OUTGOING_CALL_START_SOUND", - fR = /^[+a-zA-Z0-9]+(?:([^\s>:@]+)(?::([^\s@>]+))?@)?([\w\-.]+)(?::(\d+))?((?:;[^\s=?>;]+(?:=[^\s?;]+)?)*)(?:\?(([^\s&=>]+=[^\s&=>]+)(&[^\s&=>]+=[^\s&=>]+)*))?$/, - gR = { - PHONE: "phone", - ROOM: "room", - SIP: "sip", - USER: "user", - VIDEO_ROOM: "videosipgw" - }, - bR = Je("features/invite"); + function _U(e, t) { + return e["features/recording"].sessionDatas.find((e => e.id === t)) + } - function yR(e, t, n) { - return _n(`${e}?conference=${t}@${n}`, !0) - } + function wU(e, t) { + const n = e["features/recording"].sessionDatas; + let a; + if (Array.isArray(n)) + for (const e of n) e.mode === t && (!a || vU.indexOf(e.status) > vU.indexOf(a)) && (a = e.status); + return a + } - function vR(e, t, n) { - return _n(`${e}?conference=${t}@${n}`, !0) - } + function SU(e) { + if (e) return "string" == typeof e ? e : e.getId() + } + const EU = "OUTGOING_CALL_EXPIRED_SOUND", xU = "OUTGOING_CALL_REJECTED_SOUND", CU = "OUTGOING_CALL_RINGING_SOUND", AU = "OUTGOING_CALL_START_SOUND", TU = /^[+a-zA-Z0-9]+(?:([^\s>:@]+)(?::([^\s@>]+))?@)?([\w\-.]+)(?::(\d+))?((?:;[^\s=?>;]+(?:=[^\s?;]+)?)*)(?:\?(([^\s&=>]+=[^\s&=>]+)(&[^\s&=>]+=[^\s&=>]+)*))?$/, DU = { + PHONE: "phone", + ROOM: "room", + SIP: "sip", + USER: "user", + VIDEO_ROOM: "videosipgw" + }, PU = $e("features/invite"); + + function jU(e, t, n) { + return bn(`${e}?conference=${t}@${n}`, !0) + } - function kR(e = "") { - return e.replace(/\D/g, "") - } + function MU(e, t, n) { + return bn(`${e}?conference=${t}@${n}`, !0) + } - function _R({ - state: e, - phoneNumber: t, - t: n - }) { - if (!Ea()) return ""; - const a = e["features/invite"], - r = zI(e), - i = Rh(e), - o = null == i ? void 0 : i.name, - s = OR(r); - let l = o ? n("info.inviteTextiOSPersonal", { - name: o - }) : n("info.inviteURLFirstPartGeneral"); - return l += " ", l += n("info.inviteTextiOSInviteUrl", { - inviteUrl: r - }), l += " ", PR(a) && (l += n("info.inviteTextiOSPhone", { - number: t, - conferenceID: a.conferenceID, - didUrl: jR(e) - })), l += " ", l += n("info.inviteTextiOSJoinSilent", { - silentUrl: `${s}#config.startSilent=true` - }), l - } + function IU() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""; + return e.replace(/\D/g, "") + } - function wR({ - state: e, - phoneNumber: t, - t: n - }) { - const a = e["features/invite"], - r = zI(e), - i = sR(e, Et.mode.STREAM), - o = i && i.liveStreamViewURL, - s = Rh(e), - l = null == s ? void 0 : s.name, - c = OR(r); - let u = l ? n("info.inviteURLFirstPartPersonal", { - name: l - }) : n("info.inviteURLFirstPartGeneral"); - return u += n("info.inviteURLSecondPart", { - url: c - }), o && (u = `${u}\n${n("info.inviteLiveStream",{url:o})}`), PR(a) && (u = `${u}\n${n("info.invitePhone",{number:t,conferenceID:a.conferenceID})}\n${n("info.invitePhoneAlternatives",{url:jR(e),silentUrl:`${c}#config.startSilent=true`})}`), u - } - - function SR(e = []) { - const t = {}; - return e.forEach((({ - type: e - }) => { - t[e] || (t[e] = 0), t[e]++ - })), t - } + function OU(e) { + let { + state: t, + phoneNumber: n, + t: a + } = e; + if (!ka()) return ""; + const r = t["features/invite"], + i = zF(t), + o = Uh(t), + s = null == o ? void 0 : o.name, + l = YU(i); + let c = s ? a("info.inviteTextiOSPersonal", { + name: s + }) : a("info.inviteURLFirstPartGeneral"); + return c += " ", c += a("info.inviteTextiOSInviteUrl", { + inviteUrl: i + }), c += " ", HU(r) && (c += a("info.inviteTextiOSPhone", { + number: n, + conferenceID: r.conferenceID, + didUrl: UU(t) + })), c += " ", c += a("info.inviteTextiOSJoinSilent", { + silentUrl: `${l}#config.startSilent=true` + }), c + } - function ER(e) { - const { - peopleSearchUrl: t - } = e["features/base/config"]; - return e["features/base/jwt"].jwt && Boolean(t) && !Rj(e) - } + function NU(e) { + let { + state: t, + phoneNumber: n, + t: a + } = e; + const r = t["features/invite"], + i = zF(t), + o = kU(t, kt.mode.STREAM), + s = o && o.liveStreamViewURL, + l = Uh(t), + c = null == l ? void 0 : l.name, + u = YU(i); + let d = c ? a("info.inviteURLFirstPartPersonal", { + name: c + }) : a("info.inviteURLFirstPartGeneral"); + return d += a("info.inviteURLSecondPart", { + url: u + }), s && (d = `${d}\n${a("info.inviteLiveStream",{url:s})}`), HU(r) && (d = `${d}\n${a("info.invitePhone",{number:n,conferenceID:r.conferenceID})}\n${a("info.invitePhoneAlternatives",{url:UU(t),silentUrl:`${u}#config.startSilent=true`})}`), d + } - function xR(e) { - const { - conference: t - } = e["features/base/conference"]; - return Jh(e) && t && t.isSIPCallingSupported() - } + function RU() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + const t = {}; + return e.forEach((e => { + let { + type: n + } = e; + t[n] || (t[n] = 0), t[n]++ + })), t + } - function CR(e) { - const { - sipInviteUrl: t - } = e["features/base/config"], { - features: n = {} - } = Rh(e) || {}; - return e["features/base/jwt"].jwt && Boolean(t) && "true" === String(n["sip-outbound-call"]) - } - - function AR(e, t, n) { - let a = OR(t); - const r = void 0 !== e["features/base/config"]; - n && (a = `${a}`); - let i = Ni.t("share.mainText", { - roomUrl: a - }); - if (r) { - const { - room: a - } = Tn(t); - let r; - if (e["features/invite"].numbers && e["features/invite"].conferenceID) r = Promise.resolve(e["features/invite"]); - else { - const { - dialInConfCodeUrl: t, - dialInNumbersUrl: n, - hosts: o - } = e["features/base/config"], s = o && o.muc; - if (!t || !n || !s) return Promise.resolve(i); - r = Promise.all([vR(n, a, s), yR(t, a, s)]).then((([e, { - conference: t, - id: n, - message: a - }]) => t && n ? { - numbers: e, - conferenceID: n - } : Promise.reject(a))) - } - return r.then((({ - conferenceID: e, - numbers: t - }) => { - const n = TR(t) || ""; - return `${Ni.t("info.dialInNumber")} ${n} ${Ni.t("info.dialInConferenceID")} ${e}#\n\n` - })).catch((e => bR.error("Error fetching numbers or conferenceID", e))).then((t => { - let r = jR(e, a); - return n && (r = `${r}`), i += Ni.t("share.dialInfoText", { - defaultDialInNumber: t, - dialInfoPageUrl: r - }), i - })) + function zU(e, t, n, a) { + return a && 0 !== a.length ? fetch(`${e}?token=${n}`, { + body: JSON.stringify({ + invited: a, + url: t + }), + method: "POST", + headers: { + "Content-Type": "application/json" } - return Promise.resolve(i) - } + }) : Promise.resolve() + } - function jR(e, t) { - var n; - const { - didPageUrl: a - } = e["features/dynamic-branding"], r = null !== (n = t) && void 0 !== n ? n : vI(e), { - locationURL: i - } = e["features/base/connection"], { - href: o - } = i, s = OR(r); - return `${a||`${o.substring(0,o.lastIndexOf("/"))}/static/dialInInfo.html`}?room=${s}` - } + function LU(e) { + const { + peopleSearchUrl: t + } = e["features/base/config"]; + return e["features/base/jwt"].jwt && Boolean(t) && !cM(e) + } - function PR(e) { - const { - conferenceID: t, - numbers: n, - numbersEnabled: a - } = e, r = TR(n); - return Boolean(t && n && a && r) - } + function FU(e) { + const { + conference: t + } = e["features/base/conference"]; + return tm(e) && t && t.isSIPCallingSupported() + } - function DR(e) { - if (!e) return !1; - if (Array.isArray(e)) return e.length > 1; - const { - numbers: t - } = e; - return Boolean(t && Object.values(t).map((e => Array.isArray(e) ? e.length : 0)).reduce(((e, t) => e + t)) > 1) - } + function qU(e) { + const { + sipInviteUrl: t + } = e["features/base/config"], { + features: n = {} + } = Uh(e) || {}; + return e["features/base/jwt"].jwt && Boolean(t) && "true" === String(n["sip-outbound-call"]) + } - function TR(e) { - if (!e) return null; - if (Array.isArray(e)) { - const t = e.find((e => e.default)); - return t ? t.formattedNumber : e.length > 0 ? e[0].formattedNumber : null - } + function BU(e, t, n) { + let a = YU(t); + const r = void 0 !== e["features/base/config"]; + n && (a = `${a}`); + let i = _i.t("share.mainText", { + roomUrl: a + }); + if (r) { const { - numbers: t - } = e; - if (t && Object.keys(t).length > 0) { - const e = Object.keys(t)[0]; - return e && t[e][0] + room: a + } = An(t); + let r; + if (e["features/invite"].numbers && e["features/invite"].conferenceID) r = Promise.resolve(e["features/invite"]); + else { + const { + dialInConfCodeUrl: t, + dialInNumbersUrl: n, + hosts: o + } = e["features/base/config"], s = o && o.muc; + if (!t || !n || !s) return Promise.resolve(i); + r = Promise.all([MU(n, a, s), jU(t, a, s)]).then((e => { + let [t, { + conference: n, + id: a, + message: r + }] = e; + return n && a ? { + numbers: t, + conferenceID: a + } : Promise.reject(r) + })) } - return null + return r.then((e => { + let { + conferenceID: t, + numbers: n + } = e; + const a = WU(n) || ""; + return `${_i.t("info.dialInNumber")} ${a} ${_i.t("info.dialInConferenceID")} ${t}#\n\n` + })).catch((e => PU.error("Error fetching numbers or conferenceID", e))).then((t => { + let r = UU(e, a); + return n && (r = `${r}`), i += _i.t("share.dialInfoText", { + defaultDialInNumber: t, + dialInfoPageUrl: r + }), i + })) } + return Promise.resolve(i) + } - function OR(e) { - let t = e; - return t && !t.includes("%20") && (t = decodeURI(t)), t.match(/.*%[^\d].*/) ? e : t - } + function UU(e, t) { + const { + didPageUrl: n + } = e["features/dynamic-branding"], a = null != t ? t : kF(e), { + locationURL: r + } = e["features/base/connection"], { + href: i + } = r, o = YU(a); + return `${n||`${i.substring(0,i.lastIndexOf("/"))}/static/dialInInfo.html`}?room=${o}` + } - function MR(e) { - return qe(e)["features/invite"].conferenceID - } + function HU(e) { + const { + conferenceID: t, + numbers: n, + numbersEnabled: a + } = e, r = WU(n); + return Boolean(t && n && a && r) + } - function IR(e) { - return "undefined" == typeof interfaceConfig || void 0 === interfaceConfig.SHARING_FEATURES || interfaceConfig.SHARING_FEATURES.length && interfaceConfig.SHARING_FEATURES.indexOf(e) > -1 - } - const NR = "PREJOIN_JOINING_IN_PROGRESS", - zR = "PREJOIN_INITIALIZED", - RR = "SET_DEVICE_STATUS", - LR = "SET_SKIP_PREJOIN_RELOAD", - FR = "SET_PREJOIN_DISPLAY_NAME_REQUIRED", - qR = "SET_DIALOUT_COUNTRY", - BR = "SET_DIALOUT_NUMBER", - UR = "SET_DIALOUT_STATUS", - HR = "SET_JOIN_BY_PHONE_DIALOG_VISIBLITY", - VR = "SET_PRECALL_TEST_RESULTS", - WR = "SET_PREJOIN_DEVICE_ERRORS", - YR = "SET_PREJOIN_PAGE_VISIBILITY", - GR = "hidden", - KR = "loading"; + function VU(e) { + if (!e) return !1; + if (Array.isArray(e)) return e.length > 1; + const { + numbers: t + } = e; + return Boolean(t && Object.values(t).map((e => Array.isArray(e) ? e.length : 0)).reduce(((e, t) => e + t)) > 1) + } - function $R(e) { - return Boolean(Jn(e) && $n(e)) + function WU(e) { + if (!e) return null; + if (Array.isArray(e)) { + const t = e.find((e => e.default)); + return t ? t.formattedNumber : e.length > 0 ? e[0].formattedNumber : null } - - function JR(e) { - return !(Boolean(qe(e)["features/base/media"].audio.muted) && _f(e) || e["features/base/config"].startSilent) + const { + numbers: t + } = e; + if (t && Object.keys(t).length > 0) { + const e = Object.keys(t)[0]; + return e && t[e][0] } + return null + } - function ZR(e) { - var t; - return null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.deviceStatusText - } + function YU(e) { + let t = e; + return t && !t.includes("%20") && (t = decodeURI(t)), t.match(/.*%[^\d].*/) ? e : t + } - function QR(e) { - var t; - return null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.deviceStatusType - } + function GU(e) { + return Fe(e)["features/invite"].conferenceID + } + async function KU(e, t) { + const n = await fetch(e, { + method: "GET", + headers: { + "Content-Type": "application/json", + "request-id": t + } + }), + a = await n.json(); + return n.ok ? a : Promise.reject(a) + } - function XR(e) { - return e["features/prejoin"].dialOutCountry - } + function $U(e) { + return "undefined" == typeof interfaceConfig || void 0 === interfaceConfig.SHARING_FEATURES || interfaceConfig.SHARING_FEATURES.length && interfaceConfig.SHARING_FEATURES.indexOf(e) > -1 + } - function eL(e) { - return e["features/prejoin"].dialOutNumber - } + function JU(e, t, n, a, r, i, o) { + if (0 === e.length) return Promise.resolve(); + const s = new RegExp(`/${r}`, "i"), + l = Object.assign(new URL(t.toString()), { + pathname: t.pathname.replace(s, ""), + hash: "", + search: "" + }); + return fetch(n, { + body: JSON.stringify({ + callParams: { + callUrlInfo: { + baseUrl: l, + callName: r + }, + passcode: i + }, + sipClientParams: { + displayName: o, + sipAddress: e.map((e => e.address)) + } + }), + method: "POST", + headers: { + Authorization: `Bearer ${a}`, + "Content-Type": "application/json" + } + }) + } + const ZU = "PREJOIN_JOINING_IN_PROGRESS", QU = "PREJOIN_INITIALIZED", XU = "SET_DEVICE_STATUS", eH = "SET_SKIP_PREJOIN", tH = "SET_SKIP_PREJOIN_RELOAD", nH = "SET_PREJOIN_DISPLAY_NAME_REQUIRED", aH = "SET_DIALOUT_COUNTRY", rH = "SET_DIALOUT_NUMBER", iH = "SET_DIALOUT_STATUS", oH = "SET_JOIN_BY_PHONE_DIALOG_VISIBLITY", sH = "SET_PRECALL_TEST_RESULTS", lH = "SET_PREJOIN_DEVICE_ERRORS", cH = "SET_PREJOIN_PAGE_VISIBILITY"; - function tL(e) { - return e["features/prejoin"].dialOutStatus - } + function uH(e) { + return Boolean(Gn(e) && Yn(e)) + } - function nL(e) { - const t = eL(e); - return `+${XR(e).dialCode}${t}` - } + function dH(e) { + return !(Boolean(Fe(e)["features/base/media"].audio.muted) && jf(e) || e["features/base/config"].startSilent) + } - function aL(e) { - var t; - return null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.showJoinByPhoneDialog - } + function pH(e) { + var t; + return null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.deviceStatusText + } - function rL(e) { - return "ReactNative" !== navigator.product && e["features/base/config"].prejoinPageEnabled && !e["features/base/settings"].userSelectedSkipPrejoin && !(e["features/base/config"].enableForcedReload && e["features/prejoin"].skipPrejoinOnReload) - } + function hH(e) { + var t; + return null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.deviceStatusType + } - function iL(e) { - var t; - return rL(e) && true === (null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.showPrejoin) - } + function mH(e) { + return e["features/prejoin"].dialOutCountry + } - function oL(e) { - var t; - return rL(e) && (null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.showPrejoin) === KR - } - const sL = Je("features/prejoin"), - lL = { - INITIATED: "presenceStatus.calling", - RINGING: "presenceStatus.ringing" - }; + function fH(e) { + return e["features/prejoin"].dialOutNumber + } - function cL(e, t, n, a = 0) { - return async function(r, i) { - const o = i(); - try { - if (!aL(o)) return; - const i = await async function(e, t) { - const n = await fetch(e, { - method: "GET", - headers: { - "Content-Type": "application/json", - "request-id": t - } - }), - a = await n.json(); - return n.ok ? a : Promise.reject(a) - }($n(o), e); - switch (i) { - case "INITIATED": - case "RINGING": - return r({ - type: UR, - value: lL[i] - }), a < 45 ? setTimeout((() => { - r(cL(e, t, n, a + 1)) - }), 2e3) : n(); - case "CONNECTED": - return t(); - case "DISCONNECTED": - return r(Wf({ - titleKey: "prejoin.errorDialOutDisconnected" - })), n(); - case "FAILED": - return r(Wf({ - titleKey: "prejoin.errorDialOutFailed" - })), n() - } - } catch (e) { - r(Wf({ - titleKey: "prejoin.errorDialOutStatus" - })), sL.error("Error getting dial out status", e), n() - } - } - } + function gH(e) { + return e["features/prejoin"].dialOutStatus + } - function uL(e, t) { - return async function(n) { - n({ - type: WR, - value: t - }), n({ - type: zR - }), e.forEach((e => n(ps(e)))) - } - } + function bH(e) { + const t = fH(e); + return `+${mH(e).dialCode}${t}` + } - function dL(e, t = !1) { - return async function(n, a) { - if (!t) { - const e = a(), - { - joiningInProgress: t - } = e["features/prejoin"]; - if (t) return; - n(pL(!0)) + function yH(e) { + var t; + return null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.showJoinByPhoneDialog + } + + function vH(e) { + var t; + return "ReactNative" !== navigator.product && (null === (t = e["features/base/config"].prejoinConfig) || void 0 === t ? void 0 : t.enabled) && !e["features/base/settings"].userSelectedSkipPrejoin && !(e["features/base/config"].enableForcedReload && e["features/prejoin"].skipPrejoinOnReload) + } + + function kH(e) { + var t; + return vH(e) && (null === (t = e["features/prejoin"]) || void 0 === t ? void 0 : t.showPrejoin) + } + const _H = $e("features/prejoin"), wH = { + INITIATED: "presenceStatus.calling", + RINGING: "presenceStatus.ringing" + }, SH = "INITIATED", EH = "RINGING", xH = "CONNECTED", CH = "DISCONNECTED", AH = "FAILED"; + + function TH(e, t, n) { + let a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0; + return async function(r, i) { + const o = i(); + try { + if (!yH(o)) return; + const i = await KU(Yn(o), e); + switch (i) { + case SH: + case EH: + return r(NH(wH[i])), a < 45 ? setTimeout((() => { + r(TH(e, t, n, a + 1)) + }), 2e3) : n(); + case xH: + return t(); + case CH: + return r(eg({ + titleKey: "prejoin.errorDialOutDisconnected" + }, Yf.LONG)), n(); + case AH: + return r(eg({ + titleKey: "prejoin.errorDialOutFailed" + }, Yf.LONG)), n() } - const r = a(), - { - userSelectedSkipPrejoin: i - } = r["features/prejoin"]; - let o = Go(r["features/base/tracks"]); - e && n(ea(e)), i && n(bn({ - userSelectedSkipPrejoin: i - })); - for (const e of o) - if (e.muted && (!Ea() || !e.jitsiTrack || e.jitsiTrack.getType() !== Xi)) try { - await n(ds(e.jitsiTrack, null)) - } catch (t) { - sL.error(`Failed to replace local track (${e.jitsiTrack}) with null: ${t}`) - } - o = Go(a()["features/base/tracks"]); - const s = o.map((e => e.jitsiTrack)); - n(bL(KR)), APP.conference.prejoinStart(s) + } catch (e) { + r(eg({ + titleKey: "prejoin.errorDialOutStatus" + }, Yf.LONG)), _H.error("Error getting dial out status", e), n() } } + } - function pL(e) { - return { - type: NR, - value: e - } + function DH(e, t) { + return async function(n) { + n({ + type: lH, + value: t + }), n({ + type: QU + }), e.forEach((e => n(kh(e)))) } + } - function hL() { - return async function(e, t) { - var n; - const a = t(), + function PH(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return async function(n, a) { + if (!t) { + const e = a(), { - joiningInProgress: r - } = a["features/prejoin"]; - if (r) return; - e(pL(!0)); - const i = null === (n = Wo(a["features/base/tracks"])) || void 0 === n ? void 0 : n.jitsiTrack; - if (i) try { - await e(ds(i, null)) - } catch (e) { - sL.error(`Failed to replace local audio with null: ${e}`) - } - e(dL({ - startSilent: !0 - }, !0)) + joiningInProgress: t + } = e["features/prejoin"]; + if (t) return; + n(jH(!0)) } + const r = a(), + { + userSelectedSkipPrejoin: i + } = r["features/prejoin"]; + let o = th(r["features/base/tracks"]); + e && n(Zn(e)), i && n(hn({ + userSelectedSkipPrejoin: i + })); + for (const e of o) + if (e.muted && (!dt.isWebKitBased() || !e.jitsiTrack || e.jitsiTrack.getType() !== Fi)) try { + await n(vh(e.jitsiTrack, null)) + } catch (t) { + _H.error(`Failed to replace local track (${e.jitsiTrack}) with null: ${t}`) + } + o = th(a()["features/base/tracks"]); + const s = o.map((e => e.jitsiTrack)); + APP.conference.prejoinStart(s) } + } - function mL(e) { - return async function(t) { - try { - await JitsiMeetJS.precallTest.init(e); - const n = await JitsiMeetJS.precallTest.execute(); - t({ - type: VR, - value: n - }) - } catch (e) { - sL.debug("Failed to execute pre call test - ", e) - } - } + function jH(e) { + return { + type: ZU, + value: e } + } - function fL(e) { - return { - type: RR, - value: { - deviceStatusText: e, - deviceStatusType: "warning" - } + function MH() { + return async function(e, t) { + var n; + const a = t(), + { + joiningInProgress: r + } = a["features/prejoin"]; + if (r) return; + e(jH(!0)); + const i = null === (n = Xp(a["features/base/tracks"])) || void 0 === n ? void 0 : n.jitsiTrack; + if (i) try { + await e(vh(i, null)) + } catch (e) { + _H.error(`Failed to replace local audio with null: ${e}`) } + e(PH({ + startSilent: !0 + }, !0)) } + } - function gL(e) { - return { - type: LR, - value: e + function IH(e) { + return async function(t) { + try { + await JitsiMeetJS.precallTest.init(e); + const n = await JitsiMeetJS.precallTest.execute(); + t({ + type: sH, + value: n + }) + } catch (e) { + _H.debug("Failed to execute pre call test - ", e) } } + } - function bL(e) { - return { - type: YR, - value: e + function OH(e) { + return { + type: XU, + value: { + deviceStatusText: e, + deviceStatusType: "warning" } } - const yL = We().getLogger("connection.js"); + } - function vL(e, t, n) { - if (window.XMPPAttachInfo) { - if (APP.connect.status = "connecting", "error" === window.XMPPAttachInfo.status) return void n.connect({ - id: e, - password: t - }); - const a = window.XMPPAttachInfo.data; - a ? (n.attach(a), delete window.XMPPAttachInfo.data) : n.connect({ - id: e, - password: t - }) - } else APP.connect.status = "ready", APP.connect.handler = vL.bind(null, e, t, n) + function NH(e) { + return { + type: iH, + value: e } - async function kL(e, t, n) { - const a = Object.assign({}, config), - r = APP.store.getState(); - let { - jwt: i - } = r["features/base/jwt"]; - const { - iAmRecorder: o, - iAmSipGateway: s - } = r["features/base/config"]; - o || s || !Rj(r) || (await APP.store.dispatch((async function(e, t) { - const n = t(), - a = n["features/base/config"].jaasActuatorUrl || "https://api-vo-pilot.jitsi.net/jaas-actuator", - r = zj(n); - if (Boolean(a && r)) try { - const t = await async function({ - appId: e, - baseUrl: t - }) { - const n = `${t}/v1/public/tenants/${encodeURIComponent(e)}`; - try { - const e = await fetch(n); - if (e.ok) return e.json(); - throw new Error("Request not successful") - } catch (e) { - throw new Error(e) - } - }({ - appId: r, - baseUrl: a - }); - e(function(e) { - return { - type: Hz, - payload: e - } - }(t)) - } catch (e) { - Ij.error("Could not send request", e) - } - })), i || (i = await async function(e) { - const t = e["features/base/config"].jaasTokenUrl, - n = zj(e); - if (Boolean(t && n)) try { - const e = await async function({ - appId: e, - baseUrl: t - }) { - const n = `${t}/v1/public/token/${encodeURIComponent(e)}`; - try { - const e = await fetch(n, { - method: "GET" - }); - if (e.ok) return e.json(); - throw new Error("Request not successful") - } catch (e) { - throw new Error(e) - } - }({ - appId: n, - baseUrl: t - }); - return e.token - } catch (e) { - Ij.error("Could not send request", e) - } - }(r), APP.store.dispatch(Pz(i)))); - let l = a.websocket || a.bosh; - l += `?room=${n}`, a.serviceUrl = l, a.websocketKeepAliveUrl && (a.websocketKeepAliveUrl += `?room=${n}`); - const c = new JitsiMeetJS.JitsiConnection(null, i, a); - return config.iAmRecorder && c.addFeature("http://jitsi.org/protocol/jibri"), new Promise(((n, a) => { - function r() { - c.removeEventListener(vt.CONNECTION_ESTABLISHED, i), c.removeEventListener(vt.CONNECTION_FAILED, o) - } - - function i() { - APP.store.dispatch(function(e, t) { - return { - type: AI, - connection: e, - timeEstablished: t - } - }(c, Date.now())), r(), n(c) - } + } - function o(e) { - r(), yL.error("CONNECTION FAILED:", e), a(e) - } - c.addEventListener(vt.CONNECTION_ESTABLISHED, i), c.addEventListener(vt.CONNECTION_FAILED, o), c.addEventListener(vt.CONNECTION_FAILED, (function e(t, n, a, r) { - APP.store.dispatch(function(e, t) { - const { - credentials: n - } = t; - return n && !Object.keys(n).length && (t.credentials = void 0), { - type: jI, - connection: e, - error: t - } - }(c, { - credentials: a, - details: r, - message: n, - name: t - })), ut(t) && c.removeEventListener(vt.CONNECTION_FAILED, e) - })), c.addEventListener(vt.DISPLAY_NAME_REQUIRED, (function() { - APP.store.dispatch({ - type: FR - }) - })), vL(e, t, c) - })) + function RH(e) { + return { + type: tH, + value: e } + } - function _L({ - id: e, - password: t, - retry: n, - roomName: a - }) { - const r = l.getItem("xmpp_username_override"), - i = l.getItem("xmpp_password_override"); - return r && r.length > 0 && (e = r), i && i.length > 0 && (t = i), kL(e, t, a).catch((e => { - if (n) { - const { - jwt: t - } = APP.store.getState()["features/base/jwt"]; - if (e === yt.PASSWORD_REQUIRED && !t) return function(e) { - const t = APP.store.getState()["features/base/config"]; - return Cz(t) ? new Promise((() => qz(e))) : new Promise((t => { - APP.store.dispatch(sP(vz, { - onSuccess: e => { - t(e) - }, - roomName: e - })) - })) - }(a) - } - throw e - })) + function zH(e) { + return { + type: cH, + value: e } - const wL = "AudioOnlyScreenShareNoTrack"; - - function SL(e) { - if (!JitsiMeetJS.mediaDevices.isDeviceChangeAvailable("output")) return; - const t = MM(), - n = e.filter((e => "audiooutput" === e.kind)); - if ("default" !== t && !n.find((e => e.deviceId === t))) return "default"; - const a = la(APP.store.getState()); - return a && a !== t && n.find((e => e.deviceId === a)) ? a : void 0 - } - - function EL(e, t) { - const n = e.filter((e => "audioinput" === e.kind)), - a = sa(APP.store.getState()), - r = n.find((e => e.deviceId === a)); - if (!t || t.disposed || t.isEnded()) { - if (r && a) return a; - if (n.length && "" !== n[0].label) return n[0].deviceId - } else if (r && a !== t.getDeviceId()) return a - } - - function xL(e, t) { - const n = e.filter((e => "videoinput" === e.kind)), - a = oa(APP.store.getState()), - r = n.find((e => e.deviceId === a)); - if (!t || t.disposed || t.isEnded()) { - if (r && a) return a; - if (n.length && "" !== n[0].label) return n[0].deviceId - } else if (r && a !== t.getDeviceId()) return a - } - const CL = { - getNewMediaDevicesAfterDeviceListChanged: (e, t, n, a) => ({ - audioinput: EL(e, a), - videoinput: t ? void 0 : xL(e, n), - audiooutput: SL(e) - }), - createLocalTracksAfterDeviceListChanged(e, t, n) { - let a, r; - const i = Boolean(n), - o = Boolean(t); - return i && o ? e({ - devices: ["audio", "video"], - cameraDeviceId: t, - micDeviceId: n - }).catch((() => Promise.all([s(!1).then((([e]) => e)), l(!1).then((([e]) => e))]))).then((e => (a && APP.store.dispatch(KM(a)), r && APP.store.dispatch(GM(r)), e.filter((e => void 0 !== e))))) : o && !i ? l() : i && !o ? s() : Promise.resolve([]); + } + const LH = Ve().getLogger("connection.js"); - function s(t = !0) { - return e({ - devices: ["audio"], - cameraDeviceId: null, - micDeviceId: n - }).catch((e => (a = e, t && APP.store.dispatch(KM(e)), []))) + function FH(e, t, n) { + if (window.XMPPAttachInfo) { + if (APP.connect.status = "connecting", "error" === window.XMPPAttachInfo.status) return void n.connect({ + id: e, + password: t + }); + const a = window.XMPPAttachInfo.data; + a ? (n.attach(a), delete window.XMPPAttachInfo.data) : n.connect({ + id: e, + password: t + }) + } else APP.connect.status = "ready", APP.connect.handler = FH.bind(null, e, t, n) + } + async function qH(e, t, n) { + const a = Object.assign({}, config), + r = APP.store.getState(); + let { + jwt: i + } = r["features/base/jwt"]; + const { + iAmRecorder: o, + iAmSipGateway: s + } = r["features/base/config"]; + o || s || !cM(r) || (await APP.store.dispatch((async function(e, t) { + const n = t(), + a = n["features/base/config"].jaasActuatorUrl || "https://api-vo-pilot.jitsi.net/jaas-actuator", + r = lM(n); + if (Boolean(a && r)) try { + const t = await async function(e) { + let { + appId: t, + baseUrl: n + } = e; + const a = `${n}/v1/public/tenants/${encodeURIComponent(t)}`; + try { + const e = await fetch(a); + if (e.ok) return e.json(); + throw new Error("Request not successful") + } catch (e) { + throw new Error(e) } - - function l(n = !0) { - return e({ - devices: ["video"], - cameraDeviceId: t, - micDeviceId: null - }).catch((e => (r = e, n && APP.store.dispatch(GM(e)), []))) + }({ + appId: r, + baseUrl: a + }); + e(function(e) { + return { + type: JB, + payload: e } - } - }, - AL = "userinfo", - jL = n(8481).getLogger("modules/util/TaskQueue.js"); - class PL { - constructor() { - this._queue = [], this._currentTask = null, this._onTaskComplete = this._onTaskComplete.bind(this) - } - enqueue(e) { - this._queue.push(e), this._executeNext() + }(t)) + } catch (e) { + oM.error("Could not send request", e) } - _executeNext() { - if (this._currentTask) jL.warn("Task queued while a task is in progress."); - else if (this._currentTask = this._queue.shift() || null, this._currentTask) { - jL.debug("Executing a task."); + })), i || (i = await async function(e) { + const t = e["features/base/config"].jaasTokenUrl, + n = lM(e); + if (Boolean(t && n)) try { + const e = await async function(e) { + let { + appId: t, + baseUrl: n + } = e; + const a = `${n}/v1/public/token/${encodeURIComponent(t)}`; try { - this._currentTask(this._onTaskComplete) + const e = await fetch(a, { + method: "GET" + }); + if (e.ok) return e.json(); + throw new Error("Request not successful") } catch (e) { - jL.error(`Task execution failed: ${e}`), this._onTaskComplete() + throw new Error(e) } - } + }({ + appId: n, + baseUrl: t + }); + return e.token + } catch (e) { + oM.error("Could not send request", e) } - _onTaskComplete() { - this._currentTask = null, jL.debug("Task completed."), this._executeNext() + }(r), APP.store.dispatch(RB(i)))); + let l = a.websocket || a.bosh; + l += `?room=${n}`, a.serviceUrl = l, a.websocketKeepAliveUrl && (a.websocketKeepAliveUrl += `?room=${n}`); + const c = new JitsiMeetJS.JitsiConnection(null, i, a); + return config.iAmRecorder && c.addFeature("http://jitsi.org/protocol/jibri"), new Promise(((n, a) => { + function r() { + c.removeEventListener(ft.CONNECTION_ESTABLISHED, i), c.removeEventListener(ft.CONNECTION_FAILED, o) } - } - function DL() { - const e = {}; - return e.promise = new Promise(((t, n) => { - e.resolve = t, e.reject = n - })), e + function i() { + APP.store.dispatch(function(e, t) { + return { + type: TF, + connection: e, + timeEstablished: t + } + }(c, Date.now())), r(), n(c) + } + + function o(e) { + r(), LH.error("CONNECTION FAILED:", e), a(e) + } + c.addEventListener(ft.CONNECTION_ESTABLISHED, i), c.addEventListener(ft.CONNECTION_FAILED, o), c.addEventListener(ft.CONNECTION_FAILED, (function e(t, n, a, r) { + APP.store.dispatch(function(e, t) { + const { + credentials: n + } = t; + return n && !Object.keys(n).length && (t.credentials = void 0), { + type: DF, + connection: e, + error: t + } + }(c, { + credentials: a, + details: r, + message: n, + name: t + })), st(t) && c.removeEventListener(ft.CONNECTION_FAILED, e) + })), c.addEventListener(ft.DISPLAY_NAME_REQUIRED, (function() { + APP.store.dispatch({ + type: nH + }) + })), FH(e, t, c) + })) + } + + function BH(e) { + let { + id: t, + password: n, + retry: a, + roomName: r + } = e; + const i = l.getItem("xmpp_username_override"), + o = l.getItem("xmpp_password_override"); + return i && i.length > 0 && (t = i), o && o.length > 0 && (n = o), qH(t, n, r).catch((e => { + if (a) { + const { + jwt: t + } = APP.store.getState()["features/base/jwt"]; + if (e === mt.PASSWORD_REQUIRED && !t) return function(e) { + const t = APP.store.getState()["features/base/config"]; + return IB(t) ? new Promise((() => GB(e))) : new Promise((t => { + APP.store.dispatch(VI(AB, { + onSuccess: e => { + t(e) + }, + roomName: e + })) + })) + }(r) + } + throw e + })) + } + const UH = "AudioOnlyScreenShareNoTrack", HH = JSON.parse('{"sS":60,"m8":"ignore-child","XP":16,"CE":315,"qY":"580px"}'), VH = "ADD_MESSAGE", WH = "CLEAR_MESSAGES", YH = "CLOSE_CHAT", GH = "OPEN_CHAT", KH = "SEND_MESSAGE", $H = "SET_PRIVATE_MESSAGE_RECIPIENT", JH = "SET_IS_POLL_TAB_FOCUSED"; + + function ZH(e) { + return { + type: VH, + ...e } + } - function TL() { - return new PL + function QH() { + return { + type: YH } + } - function OL(e, t) { - const n = encodeURIComponent(JSON.stringify(e, null, " ")), - a = document.createElement("a"); - a.download = t, a.href = `data:application/json;charset=utf-8,\n${n}`, a.dataset.downloadurl = ["text/json", a.download, a.href].join(":"), a.dispatchEvent(new MouseEvent("click", { - view: window, - bubbles: !0, - cancelable: !1 - })) + function XH(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return { + type: KH, + ignorePrivacy: t, + message: e } - const ML = Je("features/desktop-picker"); + } - function IL() { - var e = Jf(["\n & + svg {\n --local-background: ", ";\n --local-background-hover: ", ";\n --local-background-active: ", ";\n --local-background-checked: ", ";\n --local-background-checked-hover: ", ";\n --local-background-disabled: ", ";\n\n --local-tick-rest: transparent;\n --local-tick-checked: ", ";\n --local-tick-disabled: ", ";\n --local-tick-active: ", ";\n\n --local-border: ", ";\n --local-border-disabled: ", ";\n --local-border-checked: ", ";\n --local-border-active: ", ";\n --local-border-invalid: ", ";\n --local-border-focus: ", ";\n --local-border-hover: ", ";\n --local-border-checked-hover: ", ";\n --local-border-checked-invalid: ", ";\n }\n "]); - return IL = function() { - return e - }, e + function eV(e) { + return { + participant: e, + type: $H } + } - function NL() { - var e = Jf(["\n /* Make the input invisible */\n -webkit-appearance: none;\n -moz-appearance: none;\n margin: 0;\n\n /*\n Change the variables --checkbox-background-color, --checkbox-border-color\n and --checkbox-tick-color according to user interactions.\n All other variables are constant.\n All styles from the input target the sibling svg.\n */\n & + svg {\n --checkbox-background-color: var(--local-background);\n --checkbox-border-color: var(--local-border);\n --checkbox-tick-color: var(--local-tick-rest);\n /* Color changes the background color */\n color: var(--checkbox-background-color);\n /* Fill changes the tick color */\n fill: var(--checkbox-tick-color);\n transition: color 0.2s ease-in-out, fill 0.2s ease-in-out;\n flex-shrink: 0;\n /* If the label is multiple lines, don't center the checkbox */\n align-self: flex-start;\n }\n & + svg rect:first-of-type {\n /* Stroke changes the color of the border */\n stroke: var(--checkbox-border-color);\n stroke-width: 2px;\n transition: stroke 0.2s ease-in-out;\n }\n\n /* Styles are listed in order of increasing specificity */\n\n /*\n Compiled will order the pseudo classes by LVFHA\n As the background colour changes on hover, it is okay for the\n border focus colour to take precedence over hover.\n && is used to make the focus styles more specific than the hover\n styles\n */\n &&:focus + svg,\n &&:checked:focus + svg {\n --checkbox-border-color: var(--local-border-focus);\n }\n\n &:hover + svg {\n --checkbox-background-color: var(--local-background-hover);\n --checkbox-border-color: var(--local-border-hover);\n }\n &:checked:hover + svg {\n --checkbox-background-color: var(--local-background-checked-hover);\n --checkbox-border-color: var(--local-border-checked-hover);\n }\n\n &:checked + svg {\n --checkbox-background-color: var(--local-background-checked);\n --checkbox-border-color: var(--local-border-checked);\n --checkbox-tick-color: var(--local-tick-checked);\n }\n\n &[data-invalid] + svg {\n --checkbox-border-color: var(--local-border-invalid);\n }\n &:checked[data-invalid] + svg {\n --checkbox-border-color: var(--local-border-checked-invalid);\n }\n\n &:active + svg {\n --checkbox-background-color: var(--local-background-active);\n --checkbox-border-color: var(--local-border-active);\n }\n &:checked:active + svg {\n --checkbox-tick-color: var(--local-tick-active);\n --checkbox-background-color: var(--local-background-active);\n --checkbox-border-color: var(--local-border-active);\n }\n\n &:disabled + svg,\n &:disabled:hover + svg,\n &:disabled:focus + svg,\n &:disabled:active + svg,\n &:disabled[data-invalid] + svg {\n --checkbox-background-color: var(--local-background-disabled);\n --checkbox-border-color: var(--local-border-disabled);\n pointer-events: none;\n cursor: not-allowed;\n }\n\n &:disabled:checked + svg {\n --checkbox-tick-color: var(--local-tick-disabled);\n }\n"]); - return NL = function() { - return e - }, e + function tV(e) { + return { + isPollsTabFocused: e, + type: JH } - var zL = Dg(NL()), - RL = { - light: { - borderColor: { - rest: mb.N40, - disabled: mb.N20, - checked: mb.B400, - active: mb.B50, - invalid: mb.R300, - invalidAndChecked: mb.R300, - focused: mb.B100, - hovered: mb.N40, - hoveredAndChecked: mb.B300 - }, - boxColor: { - rest: mb.N10, - disabled: mb.N20, - active: mb.B50, - hoveredAndChecked: mb.B300, - hovered: mb.N30, - checked: mb.B400 - }, - tickColor: { - disabledAndChecked: mb.N70, - activeAndChecked: mb.B400, - checked: mb.N10 - } - }, - dark: { - borderColor: { - rest: mb.DN80, - disabled: mb.DN10, - checked: mb.B400, - active: mb.B200, - invalid: mb.R300, - invalidAndChecked: mb.R300, - focused: mb.B75, - hovered: mb.DN200, - hoveredAndChecked: mb.B75 - }, - boxColor: { - rest: mb.DN10, - disabled: mb.DN10, - active: mb.B200, - hoveredAndChecked: mb.B75, - hovered: mb.DN30, - checked: mb.B400 - }, - tickColor: { - disabledAndChecked: mb.DN90, - activeAndChecked: mb.DN10, - checked: mb.DN10 - } - } - }; + } - function LL(e) { - var t = e.children, - n = e.isDisabled, - a = e.testId, - r = (0, E.useMemo)((function() { - return { - fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", - alignItems: "center", - display: "flex", - color: mb.N900, - cursor: "default", - "&[data-disabled]": { - color: mb.N80, - cursor: "not-allowed" - } - } - }), []); - return Tg("label", { - css: r, - "data-testid": a, - "data-disabled": n || void 0 - }, t) + function nV(e) { + return function(t) { + t({ + participant: e, + type: GH + }) } - var FL = { - paddingRight: 4, - paddingLeft: 4 - }; + } - function qL(e) { - var t = e.children; - return Tg("span", { - css: FL - }, t) + function aV() { + return (e, t) => { + e(t()["features/chat"].isOpen ? QH() : nV()), X9.onResize() } - var BL = "".concat(2, "px"); - - function UL(e) { - return Tg("span", z({ - css: { - color: mb.R500, - paddingLeft: BL - } - }, e), "*") - } - const HL = JSON.parse('{"u2":"@atlaskit/checkbox","i8":"12.0.0"}'); - var VL = { - small: "16", - medium: "24", - large: "32", - xlarge: "48" - }, - WL = (0, E.memo)((function(e) { - var t = e.size, - n = e.isIndeterminate; - return Tg("svg", { - width: VL[t], - height: VL[t], - viewBox: "0 0 24 24" - }, Tg("g", { - fillRule: "evenodd" - }, Tg("rect", { - fill: "currentColor", - x: "6", - y: "6", - width: "12", - height: "12", - rx: "2" - }), n ? Tg("rect", { - fill: "inherit", - x: "8", - y: "11", - width: "8", - height: "2", - rx: "1" - }) : Tg("path", { - d: "M9.707 11.293a1 1 0 1 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4a1 1 0 1 0-1.414-1.414L11 12.586l-1.293-1.293z", - fill: "inherit" - }))) - })), - YL = (0, E.forwardRef)((function(e, t) { - var n = e.isChecked, - a = e.isDisabled, - r = void 0 !== a && a, - i = e.isInvalid, - o = void 0 !== i && i, - s = e.defaultChecked, - l = void 0 !== s && s, - c = e.isIndeterminate, - u = void 0 !== c && c, - d = e.size, - p = void 0 === d ? "medium" : d, - h = e.onChange, - m = e.analyticsContext, - f = e.label, - g = e.mode, - b = e.name, - y = e.value, - v = e.isRequired, - k = e.testId, - _ = Fg(e, ["isChecked", "isDisabled", "isInvalid", "defaultChecked", "isIndeterminate", "size", "onChange", "analyticsContext", "label", "mode", "name", "value", "isRequired", "testId"]), - w = eg((0, E.useState)(void 0 !== n ? n : l), 2), - S = w[0], - x = w[1], - C = pb({ - fn: (0, E.useCallback)((function(e, t) { - x(e.target.checked), h && h(e, t) - }), [h]), - action: "changed", - analyticsData: m, - componentName: "checkbox", - packageName: HL.u2, - packageVersion: HL.i8 - }), - A = void 0 === n ? S : n, - j = (0, E.useMemo)((function() { - return function(e) { - var t = RL[e], - n = t.boxColor, - a = t.tickColor, - r = t.borderColor; - return [Dg(IL(), n.rest, n.hovered, n.active, n.checked, n.hoveredAndChecked, n.disabled, a.checked, a.disabledAndChecked, a.activeAndChecked, r.rest, r.disabled, r.checked, r.active, r.invalid, r.focused, r.hovered, r.hoveredAndChecked, r.invalidAndChecked), zL] - }(g) - }), [g]); - return Tg(LL, { - isDisabled: r, - testId: k && "".concat(k, "--checkbox-label") - }, Tg("input", z({}, _, { - type: "checkbox", - ref: t, - disabled: r, - checked: A, - value: y, - name: b, - required: v, - css: j, - onChange: C, - "aria-checked": u ? "mixed" : A, - "data-testid": k && "".concat(k, "--hidden-checkbox"), - "data-invalid": o ? "true" : void 0 - })), Tg(WL, { - size: p, - isIndeterminate: u - }), Tg(qL, null, f, v && Tg(UL, { - "aria-hidden": "true" - }))) - })), - GL = (0, E.memo)((0, E.forwardRef)((function(e, t) { - return Tg(Bg.Consumer, null, (function(n) { - var a = n.mode; - return Tg(YL, z({}, e, { - ref: t, - mode: a - })) - })) - }))); - GL.displayName = "Checkbox"; - const KL = GL; - class $L extends E.Component { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this), this._onDoubleClick = this._onDoubleClick.bind(this) - } - render() { - const e = "desktop-picker-source " + (this.props.selected ? "is-selected" : ""); - return x().createElement("div", { - className: e, - onClick: this._onClick, - onDoubleClick: this._onDoubleClick - }, x().createElement("div", { - className: "desktop-source-preview-image-container" - }, x().createElement("img", { - alt: this.props.t("welcomepage.logo.desktopPreviewThumbnail"), - className: "desktop-source-preview-thumbnail", - src: this.props.source.thumbnail.toDataURL() - })), x().createElement("div", { - className: "desktop-source-preview-label" - }, this.props.source.name)) - } - _onClick() { - const { - source: e, - type: t - } = this.props; - this.props.onClick(e.id, t) - } - _onDoubleClick() { - const { - source: e, - type: t - } = this.props; - this.props.onDoubleClick(e.id, t) + } + + function rV(e) { + var t, n, a = ""; + if ("string" == typeof e || "number" == typeof e) a += e; + else if ("object" == typeof e) + if (Array.isArray(e)) + for (t = 0; t < e.length; t++) e[t] && (n = rV(e[t])) && (a && (a += " "), a += n); + else + for (t in e) e[t] && (a && (a += " "), a += t); + return a + } + + function iV() { + for (var e, t, n = 0, a = ""; n < arguments.length;)(e = arguments[n++]) && (t = rV(e)) && (a && (a += " "), a += t); + return a + } + + function oV() { + var e = sg(["\n & + svg {\n --local-background: ", ";\n --local-background-hover: ", ";\n --local-background-active: ", ";\n --local-background-checked: ", ";\n --local-background-checked-hover: ", ";\n --local-background-disabled: ", ";\n\n --local-tick-rest: transparent;\n --local-tick-checked: ", ";\n --local-tick-disabled: ", ";\n --local-tick-active: ", ";\n\n --local-border: ", ";\n --local-border-disabled: ", ";\n --local-border-checked: ", ";\n --local-border-active: ", ";\n --local-border-invalid: ", ";\n --local-border-focus: ", ";\n --local-border-hover: ", ";\n --local-border-checked-hover: ", ";\n --local-border-checked-invalid: ", ";\n }\n "]); + return oV = function() { + return e + }, e + } + + function sV() { + var e = sg(["\n /* Make the input invisible */\n -webkit-appearance: none;\n -moz-appearance: none;\n margin: 0;\n\n /*\n Change the variables --checkbox-background-color, --checkbox-border-color\n and --checkbox-tick-color according to user interactions.\n All other variables are constant.\n All styles from the input target the sibling svg.\n */\n & + svg {\n --checkbox-background-color: var(--local-background);\n --checkbox-border-color: var(--local-border);\n --checkbox-tick-color: var(--local-tick-rest);\n /* Color changes the background color */\n color: var(--checkbox-background-color);\n /* Fill changes the tick color */\n fill: var(--checkbox-tick-color);\n transition: color 0.2s ease-in-out, fill 0.2s ease-in-out;\n flex-shrink: 0;\n /* If the label is multiple lines, don't center the checkbox */\n align-self: flex-start;\n }\n & + svg rect:first-of-type {\n /* Stroke changes the color of the border */\n stroke: var(--checkbox-border-color);\n stroke-width: 2px;\n transition: stroke 0.2s ease-in-out;\n }\n\n /* Styles are listed in order of increasing specificity */\n\n /*\n Compiled will order the pseudo classes by LVFHA\n As the background colour changes on hover, it is okay for the\n border focus colour to take precedence over hover.\n && is used to make the focus styles more specific than the hover\n styles\n */\n &&:focus + svg,\n &&:checked:focus + svg {\n --checkbox-border-color: var(--local-border-focus);\n }\n\n &:hover + svg {\n --checkbox-background-color: var(--local-background-hover);\n --checkbox-border-color: var(--local-border-hover);\n }\n &:checked:hover + svg {\n --checkbox-background-color: var(--local-background-checked-hover);\n --checkbox-border-color: var(--local-border-checked-hover);\n }\n\n &:checked + svg {\n --checkbox-background-color: var(--local-background-checked);\n --checkbox-border-color: var(--local-border-checked);\n --checkbox-tick-color: var(--local-tick-checked);\n }\n\n &[data-invalid] + svg {\n --checkbox-border-color: var(--local-border-invalid);\n }\n &:checked[data-invalid] + svg {\n --checkbox-border-color: var(--local-border-checked-invalid);\n }\n\n &:active + svg {\n --checkbox-background-color: var(--local-background-active);\n --checkbox-border-color: var(--local-border-active);\n }\n &:checked:active + svg {\n --checkbox-tick-color: var(--local-tick-active);\n --checkbox-background-color: var(--local-background-active);\n --checkbox-border-color: var(--local-border-active);\n }\n\n &:disabled + svg,\n &:disabled:hover + svg,\n &:disabled:focus + svg,\n &:disabled:active + svg,\n &:disabled[data-invalid] + svg {\n --checkbox-background-color: var(--local-background-disabled);\n --checkbox-border-color: var(--local-border-disabled);\n pointer-events: none;\n cursor: not-allowed;\n }\n\n &:disabled:checked + svg {\n --checkbox-tick-color: var(--local-tick-disabled);\n }\n"]); + return sV = function() { + return e + }, e + } + var lV = zg(sV()), cV = { + light: { + borderColor: { + rest: hb.N40, + disabled: hb.N20, + checked: hb.B400, + active: hb.B50, + invalid: hb.R300, + invalidAndChecked: hb.R300, + focused: hb.B100, + hovered: hb.N40, + hoveredAndChecked: hb.B300 + }, + boxColor: { + rest: hb.N10, + disabled: hb.N20, + active: hb.B50, + hoveredAndChecked: hb.B300, + hovered: hb.N30, + checked: hb.B400 + }, + tickColor: { + disabledAndChecked: hb.N70, + activeAndChecked: hb.B400, + checked: hb.N10 + } + }, + dark: { + borderColor: { + rest: hb.DN80, + disabled: hb.DN10, + checked: hb.B400, + active: hb.B200, + invalid: hb.R300, + invalidAndChecked: hb.R300, + focused: hb.B75, + hovered: hb.DN200, + hoveredAndChecked: hb.B75 + }, + boxColor: { + rest: hb.DN10, + disabled: hb.DN10, + active: hb.B200, + hoveredAndChecked: hb.B75, + hovered: hb.DN30, + checked: hb.B400 + }, + tickColor: { + disabledAndChecked: hb.DN90, + activeAndChecked: hb.DN10, + checked: hb.DN10 } } - const JL = Li($L); - class ZL extends E.Component { - constructor(e) { - super(e), this._onShareAudioCheck = this._onShareAudioCheck.bind(this) - } - _onShareAudioCheck({ - target: { - checked: e - } - }) { - this.props.onShareAudioChecked(e) - } - render() { - const { - onClick: e, - onDoubleClick: t, - selectedSourceId: n, - sources: a, - type: r, - t: i - } = this.props, o = `desktop-picker-pane default-scrollbar source-type-${r}`, s = a ? a.map((a => x().createElement(JL, { - key: a.id, - onClick: e, - onDoubleClick: t, - selected: a.id === n, - source: a, - type: r - }))) : x().createElement("div", { - className: "desktop-picker-pane-spinner" - }, x().createElement(Py, { - isCompleting: !1, - size: "medium" - })); - let l; - return "screen" === r && "windows" === wa.OS && (l = x().createElement(GL, { - label: i("dialog.screenSharingAudio"), - name: "share-system-audio", - onChange: this._onShareAudioCheck - })), x().createElement("div", { - className: o - }, s, l) + }; + + function uV(e) { + var t = e.children, + n = e.isDisabled, + a = e.testId, + r = (0, x.useMemo)((function() { + return { + fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif", + alignItems: "center", + display: "flex", + color: hb.N900, + cursor: "default", + "&[data-disabled]": { + color: hb.N80, + cursor: "not-allowed" + } + } + }), []); + return Lg("label", { + css: r, + "data-testid": a, + "data-disabled": n || void 0 + }, t) + } + var dV = { + paddingRight: 4, + paddingLeft: 4 + }; + + function pV(e) { + var t = e.children; + return Lg("span", { + css: dV + }, t) + } + var hV = "".concat(2, "px"); + + function mV(e) { + return Lg("span", z({ + css: { + color: hb.R500, + paddingLeft: hV } - } - const QL = Li(ZL); + }, e), "*") + } + const fV = JSON.parse('{"u2":"@atlaskit/checkbox","i8":"12.0.0"}'); + var gV = { + small: "16", + medium: "24", + large: "32", + xlarge: "48" + }, bV = (0, x.memo)((function(e) { + var t = e.size, + n = e.isIndeterminate; + return Lg("svg", { + width: gV[t], + height: gV[t], + viewBox: "0 0 24 24" + }, Lg("g", { + fillRule: "evenodd" + }, Lg("rect", { + fill: "currentColor", + x: "6", + y: "6", + width: "12", + height: "12", + rx: "2" + }), n ? Lg("rect", { + fill: "inherit", + x: "8", + y: "11", + width: "8", + height: "2", + rx: "1" + }) : Lg("path", { + d: "M9.707 11.293a1 1 0 1 0-1.414 1.414l2 2a1 1 0 0 0 1.414 0l4-4a1 1 0 1 0-1.414-1.414L11 12.586l-1.293-1.293z", + fill: "inherit" + }))) + })), yV = (0, x.forwardRef)((function(e, t) { + var n = e.isChecked, + a = e.isDisabled, + r = void 0 !== a && a, + i = e.isInvalid, + o = void 0 !== i && i, + s = e.defaultChecked, + l = void 0 !== s && s, + c = e.isIndeterminate, + u = void 0 !== c && c, + d = e.size, + p = void 0 === d ? "medium" : d, + h = e.onChange, + m = e.analyticsContext, + f = e.label, + g = e.mode, + b = e.name, + y = e.value, + v = e.isRequired, + k = e.testId, + _ = Yg(e, ["isChecked", "isDisabled", "isInvalid", "defaultChecked", "isIndeterminate", "size", "onChange", "analyticsContext", "label", "mode", "name", "value", "isRequired", "testId"]), + w = dr((0, x.useState)(void 0 !== n ? n : l), 2), + S = w[0], + E = w[1], + C = db({ + fn: (0, x.useCallback)((function(e, t) { + E(e.target.checked), h && h(e, t) + }), [h]), + action: "changed", + analyticsData: m, + componentName: "checkbox", + packageName: fV.u2, + packageVersion: fV.i8 + }), + A = void 0 === n ? S : n, + T = (0, x.useMemo)((function() { + return function(e) { + var t = cV[e], + n = t.boxColor, + a = t.tickColor, + r = t.borderColor; + return [zg(oV(), n.rest, n.hovered, n.active, n.checked, n.hoveredAndChecked, n.disabled, a.checked, a.disabledAndChecked, a.activeAndChecked, r.rest, r.disabled, r.checked, r.active, r.invalid, r.focused, r.hovered, r.hoveredAndChecked, r.invalidAndChecked), lV] + }(g) + }), [g]); + return Lg(uV, { + isDisabled: r, + testId: k && "".concat(k, "--checkbox-label") + }, Lg("input", z({}, _, { + type: "checkbox", + ref: t, + disabled: r, + checked: A, + value: y, + name: b, + required: v, + css: T, + onChange: C, + "aria-checked": u ? "mixed" : A, + "data-testid": k && "".concat(k, "--hidden-checkbox"), + "data-invalid": o ? "true" : void 0 + })), Lg(bV, { + size: p, + isIndeterminate: u + }), Lg(pV, null, f, v && Lg(mV, { + "aria-hidden": "true" + }))) + })), vV = (0, x.memo)((0, x.forwardRef)((function(e, t) { + return Lg(Kg.Consumer, null, (function(n) { + var a = n.mode; + return Lg(yV, z({}, e, { + ref: t, + mode: a + })) + })) + }))); vV.displayName = "Checkbox"; + const kV = vV; - function XL(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function _V(e) { + const { + nbUnreadPolls: t + } = e["features/polls"]; + return t + } + + function wV(e) { + return !e.find((e => e)) + } + + function SV(e) { + for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), a = 1; a < t; a++) n[a - 1] = arguments[a]; + return Pe((t => e(t, ...n))) + } + const EV = "CHANGE_VOTE", xV = "RECEIVE_POLL", CV = "RECEIVE_ANSWER", AV = "REGISTER_VOTE", TV = "RETRACT_VOTE", DV = "RESET_NB_UNREAD_POLLS", PV = (e, t) => ({ + type: EV, + pollId: e, + value: t + }), jV = (e, t, n) => ({ + type: xV, + poll: t, + pollId: e, + notify: n + }), MV = (e, t) => ({ + type: AV, + answers: t, + pollId: e + }); + + function IV() { + return { + type: DV } - const eF = { - height: 300, - width: 300 + } + const OV = "new-poll", NV = "answer-poll", RV = (GV = e => { + const { + creatorName: t, + checkBoxStates: n, + poll: a, + setCheckbox: r, + skipAnswer: i, + skipChangeVote: o, + submitAnswer: s, + t: l + } = e, { + changingVote: c + } = a; + return C().createElement("div", { + className: "poll-answer" + }, C().createElement("div", { + className: "poll-header" + }, C().createElement("div", { + className: "poll-question" + }, C().createElement("span", null, a.question)), C().createElement("div", { + className: "poll-creator" + }, l("polls.by", { + name: t + }))), C().createElement("ol", { + className: "poll-answer-list" + }, a.answers.map(((e, t) => C().createElement("li", { + className: "poll-answer-container", + key: t + }, C().createElement(vV, { + isChecked: n[t], + key: t, + label: C().createElement("span", { + className: "poll-answer-option" + }, e.name), + onChange: e => r(t, e.target.checked), + size: "large" + }))))), C().createElement("div", { + className: "poll-footer poll-answer-footer" + }, C().createElement("button", { + "aria-label": l("polls.answer.skip"), + className: "poll-button poll-button-secondary poll-button-shortest", + onClick: c ? o : i + }, C().createElement("span", null, l("polls.answer.skip"))), C().createElement("button", { + "aria-label": l("polls.answer.submit"), + className: "poll-button poll-button-primary poll-button-shortest", + disabled: wV(n), + onClick: s + }, C().createElement("span", null, l("polls.answer.submit"))))) + }, e => { + const { + pollId: t + } = e, n = Pe((e => e["features/base/conference"].conference)), a = Pe((e => e["features/polls"].polls[t])), { + id: r + } = Pe(Uh), [i, o] = (0, x.useState)((() => null !== a.lastVote ? [...a.lastVote] : new Array(a.answers.length).fill(!1))), s = SV(Vh, a.senderId), l = (0, x.useCallback)(((e, t) => { + const n = [...i]; + n[e] = t, o(n), Da(Jt("vote.checked")) + }), [i]), c = Ae(), u = SV(Vh, r), d = u.name ? u.name : "Fellow Jitster", p = (0, x.useCallback)((() => (n.sendMessage({ + type: NV, + pollId: t, + voterId: r, + voterName: d, + answers: i + }), Da(Jt("vote.sent")), c(MV(t, i)), !1)), [t, r, d, i, n]), h = (0, x.useCallback)((() => { + c(MV(t, null)), Da(Jt("vote.skipped")) + }), [t]), m = (0, x.useCallback)((() => { + c(PV(t, !1)) + }), [c, t]), { + t: f + } = pr(); + return C().createElement(GV, { + checkBoxStates: i, + creatorName: s ? s.name : "", + poll: a, + setCheckbox: l, + skipAnswer: h, + skipChangeVote: m, + submitAnswer: p, + t: f + }) + }), zV = (e => t => { + const { + setCreateMode: n + } = t, [a, r] = (0, x.useState)(""), [i, o] = (0, x.useState)(["", ""]), s = (0, x.useCallback)(((e, t) => { + const n = [...i]; + n[e] = t, o(n) + })), l = (0, x.useCallback)((e => { + const t = [...i]; + Da(Jt("option.added")), t.splice("number" == typeof e ? e : i.length, 0, ""), o(t) + })), c = (0, x.useCallback)(((e, t) => { + const n = [...i], + a = i[e]; + Da(Jt("option.moved")), n.splice(e, 1), n.splice(t, 0, a), o(n) + })), u = (0, x.useCallback)((e => { + if (i.length <= 2) return; + const t = [...i]; + Da(Jt("option.removed")), t.splice(e, 1), o(t) + })), d = Pe((e => e["features/base/conference"].conference)), p = d.myUserId(), h = Pe((e => Kh(e, p))), m = (0, x.useCallback)((e => { + e && e.preventDefault(); + const t = i.filter((e => e.trim().length > 0)); + t.length < 2 || (d.sendMessage({ + type: OV, + pollId: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(36), + senderId: p, + senderName: h, + question: a, + answers: t + }), Da(Jt("created")), n(!1)) + }), [d, a, i]), f = a.trim().length <= 0 || i.filter((e => e.trim().length > 0)).length < 2, { + t: g + } = pr(); + return C().createElement(e, { + addAnswer: l, + answers: i, + isSubmitDisabled: f, + moveAnswer: c, + onSubmit: m, + question: a, + removeAnswer: u, + setAnswer: s, + setCreateMode: n, + setQuestion: r, + t: g + }) + })((e => { + const { + addAnswer: t, + answers: n, + isSubmitDisabled: a, + moveAnswer: r, + onSubmit: i, + question: o, + removeAnswer: s, + setAnswer: l, + setCreateMode: c, + setQuestion: u, + t: d + } = e, p = (0, x.useRef)([]), h = (0, x.useCallback)(((e, t) => { + null !== t && (p.current[e] = t) + }), [p]); + (0, x.useEffect)((() => { + p.current = p.current.slice(0, n.length) + }), [n]); + const [m, f] = (0, x.useState)(null); + (0, x.useEffect)((() => { + if (null === m) return; + const e = p.current[m]; + void 0 !== e && e.focus() + }), [m]); + const g = (0, x.useCallback)((e => { + if ("Enter" === e.key && e.metaKey) return e.preventDefault(), void i(); + e.ctrlKey || e.metaKey || e.altKey || e.shiftKey + })), + b = (0, x.useCallback)((e => { + g(e) || "Enter" === e.key && (f(0), e.preventDefault()) + })), + y = (0, x.useCallback)(((e, a) => { + g(a) || ("Enter" === a.key ? (t(e + 1), f(e + 1), a.preventDefault()) : "Backspace" === a.key && "" === a.target.value && n.length > 1 ? (s(e), f(e > 0 ? e - 1 : 0), a.preventDefault()) : "ArrowDown" === a.key ? (e === n.length - 1 && t(), f(e + 1), a.preventDefault()) : "ArrowUp" === a.key && (0 === e ? (t(0), f(0)) : f(e - 1), a.preventDefault())) + }), [n, t, s, f]), + [v, k] = (0, x.useState)(null), + _ = (0, x.useCallback)(((e, t) => { + 0 === t.button && (k(e), window.addEventListener("mouseup", (() => { + k((e => (f(e), null))) + }), { + once: !0 + })) + })), + w = (0, x.useCallback)((e => { + null !== v && v !== e && (((e, t) => { + const n = p.current[e].scrollHeight; + p.current[e].style.height = `${p.current[t].scrollHeight}px`, p.current[t].style.height = `${n}px` + })(e, v), r(v, e), k(e)) + })), + S = e => { + const t = e.target; + t.style.height = "1px", t.style.height = `${t.scrollHeight+2}px` + }; + return C().createElement("form", { + className: "polls-pane-content", + onSubmit: i + }, C().createElement("div", { + className: "poll-create-container poll-container" + }, C().createElement("div", { + className: "poll-create-header" + }, d("polls.create.create")), C().createElement("div", { + className: "poll-question-field" + }, C().createElement("span", { + className: "poll-create-label" + }, d("polls.create.pollQuestion")), C().createElement("textarea", { + autoFocus: !0, + className: "expandable-input", + maxLength: 1e3, + onChange: e => u(e.target.value), + onInput: S, + onKeyDown: b, + placeholder: d("polls.create.questionPlaceholder"), + required: !0, + row: "1", + value: o + })), C().createElement("ol", { + className: "poll-answer-field-list" + }, n.map(((e, t) => C().createElement("li", { + className: "poll-answer-field" + (v === t ? " poll-dragged" : ""), + key: t, + onMouseOver: () => w(t) + }, C().createElement("span", { + className: "poll-create-label" + }, d("polls.create.pollOption", { + index: t + 1 + })), C().createElement("div", { + className: "poll-create-option-row" + }, C().createElement("textarea", { + className: "expandable-input", + maxLength: 1e3, + onChange: e => l(t, e.target.value), + onInput: S, + onKeyDown: e => y(t, e), + placeholder: d("polls.create.answerPlaceholder", { + index: t + 1 + }), + ref: e => h(t, e), + required: !0, + row: 1, + value: e + }), C().createElement("button", { + className: "poll-drag-handle", + onMouseDown: e => _(t, e), + tabIndex: "-1", + type: "button" + }, C().createElement(lo, { + src: Wl + }))), n.length > 2 && C().createElement(hC, { + content: d("polls.create.removeOption") + }, C().createElement("button", { + className: "poll-remove-option-button", + onClick: () => s(t), + type: "button" + }, d("polls.create.removeOption"))))))), C().createElement("div", { + className: "poll-add-button" + }, C().createElement("button", { + "aria-label": "Add option", + className: "poll-button poll-button-secondary", + onClick: () => { + t(), f(n.length) }, - tF = { - screen: "dialog.yourEntireScreen", - window: "dialog.applicationWindow" + type: "button" + }, C().createElement("span", null, d("polls.create.addOption"))))), C().createElement("div", { + className: "poll-footer poll-create-footer" + }, C().createElement("button", { + "aria-label": d("polls.create.cancel"), + className: "poll-button poll-button-secondary poll-button-short", + onClick: () => c(!1), + type: "button" + }, C().createElement("span", null, d("polls.create.cancel"))), C().createElement("button", { + "aria-label": d("polls.create.send"), + className: "poll-button poll-button-primary poll-button-short", + disabled: a, + type: "submit" + }, C().createElement("span", null, d("polls.create.send"))))) + })), LV = (e => t => { + const { + pollId: n + } = t, a = Pe(function(e) { + return function(t) { + return t["features/polls"].polls[e] + } + }(n)), r = SV(Vh, a.senderId), [i, o] = (0, x.useState)(!1), s = (0, x.useCallback)((() => { + Da(Jt("vote.detailsViewed")), o(!i) + })), l = (0, x.useMemo)((() => { + const e = new Set; + for (const t of a.answers) + for (const [n] of t.voters) e.add(n); + const t = e.size; + return a.answers.map((e => { + const n = 0 === t ? 0 : Math.round(e.voters.size / t * 100); + let a = null; + return i && (a = [...e.voters].map((e => { + let [t, n] = e; + return { + id: t, + name: n + } + }))), { + name: e.name, + percentage: n, + voters: a, + voterCount: e.voters.size + } + })) + }), [a.answers, i]), c = Ae(), u = (0, x.useCallback)((() => { + c(PV(n, !0)), Da(Jt("vote.changed")) + }), [c, n]), { + t: d + } = pr(); + return C().createElement(e, { + answers: l, + changeVote: u, + creatorName: r ? r.name : "", + haveVoted: null !== a.lastVote, + question: a.question, + showDetails: i, + t: d, + toggleIsDetailed: s + }) + })((e => { + const { + answers: t, + changeVote: n, + creatorName: a, + haveVoted: r, + showDetails: i, + question: o, + t: s, + toggleIsDetailed: l + } = e; + return C().createElement("div", { + className: "poll-results" + }, C().createElement("div", { + className: "poll-header" + }, C().createElement("div", { + className: "poll-question" + }, C().createElement("strong", null, o)), C().createElement("div", { + className: "poll-creator" + }, s("polls.by", { + name: a + }))), C().createElement("ol", { + className: "poll-result-list" + }, t.map(((e, t) => { + let { + name: n, + percentage: a, + voters: r, + voterCount: o + } = e; + return C().createElement("li", { + key: t + }, C().createElement("div", { + className: "poll-answer-header" + }, C().createElement("span", { + className: "poll-answer-vote-name" + }, n)), C().createElement("div", { + className: "poll-answer-short-results" + }, C().createElement("span", { + className: "poll-bar-container" + }, C().createElement("div", { + className: "poll-bar", + style: { + width: `${a}%` + } + })), C().createElement("div", { + className: "poll-answer-vote-count-container" + }, C().createElement("span", { + className: "poll-answer-vote-count" + }, "(", o, ") ", a, "%"))), i && r && o > 0 && C().createElement("ul", { + className: "poll-answer-voters" + }, r.map((e => C().createElement("li", { + key: e.id + }, e.name))))) + }))), C().createElement("div", { + className: "poll-result-links" + }, C().createElement("a", { + className: "poll-detail-link", + onClick: l + }, s(i ? "polls.results.hideDetailedResults" : "polls.results.showDetailedResults")), C().createElement("a", { + className: "poll-change-vote-link", + onClick: n + }, s(r ? "polls.results.changeVote" : "polls.results.vote")))) + })), FV = () => { + const { + t: e + } = pr(), t = Pe((e => e["features/polls"].polls)), n = (0, x.useRef)(null); + (0, x.useEffect)((() => { + n.current && n.current.scrollIntoView({ + behavior: "smooth" + }) + }), [t]); + const a = Object.keys(t); + return C().createElement(C().Fragment, null, 0 === a.length ? C().createElement("div", { + className: "pane-content" + }, C().createElement(lo, { + className: "empty-pane-icon", + src: as + }), C().createElement("span", { + className: "empty-pane-message" + }, e("polls.results.empty"))) : a.map(((e, t) => C().createElement(UV, { + key: e, + pollId: e, + ref: a.length - 1 === t ? n : null + })))) + }, qV = (e => () => { + const [t, n] = (0, x.useState)(!1), { + t: a + } = pr(); + return C().createElement(e, { + createMode: t, + onCreate: () => { + n(!0) }, - nF = Object.keys(tF); - class aF extends E.PureComponent { - static getDerivedStateFromProps(e) { - return { - types: aF._getValidTypes(e.desktopSharingSources) + setCreateMode: n, + t: a + }) + })((e => { + const { + createMode: t, + onCreate: n, + setCreateMode: a, + t: r + } = e; + return t ? C().createElement(zV, { + setCreateMode: a + }) : C().createElement("div", { + className: "polls-pane-content" + }, C().createElement("div", { + className: "poll-container" + }, C().createElement(FV, null)), C().createElement("div", { + className: "poll-footer poll-create-footer" + }, C().createElement("button", { + "aria-label": r("polls.create.create"), + className: "poll-button poll-button-primary", + onClick: n + }, C().createElement("span", null, r("polls.create.create"))))) + })), BV = C().forwardRef(((e, t) => { + let { + pollId: n + } = e; + const a = Pe((r = n, function(e) { + var t; + return Boolean(null === (t = e["features/polls"]) || void 0 === t ? void 0 : t.polls[r].showResults) + })); + var r; + return C().createElement("div", { + ref: t + }, a ? C().createElement(LV, { + key: n, + pollId: n + }) : C().createElement(RV, { + pollId: n + })) + })), UV = BV, HV = "INCOMING_MSG_SOUND", VV = "error", WV = "local", YV = "remote"; + var GV; class KV extends x.Component { + constructor(e) { + super(e), this._onSendMessage = this._onSendMessage.bind(this), this._onToggleChatTab = this._onToggleChatTab.bind(this), this._onTogglePollsTab = this._onTogglePollsTab.bind(this) + } + _onSendMessage(e) { + this.props.dispatch(XH(e)) + } + _onToggleChatTab() { + this.props.dispatch(tV(!1)) + } + _onTogglePollsTab() { + this.props.dispatch(tV(!0)) + } + } + const $V = Ei(Ne(null, { + onCancel: aV + })((function(e) { + let { + onCancel: t, + className: n, + isPollsEnabled: a, + t: r + } = e; + const i = (0, x.useCallback)((e => { + !t || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), t()) + }), [t]); + return C().createElement("div", { + className: n || "chat-dialog-header", + role: "heading" + }, r(a ? "chat.titleWithPolls" : "chat.title"), C().createElement(lo, { + ariaLabel: r("toolbar.closeChat"), + onClick: t, + onKeyPress: i, + role: "button", + src: ds, + tabIndex: 0 + })) + }))), JV = x.useLayoutEffect; + var ZV = function(e, t) { + "function" != typeof e ? e.current = t : e(t) + }; + var QV = { + "min-height": "0", + "max-height": "none", + height: "0", + visibility: "hidden", + overflow: "hidden", + position: "absolute", + "z-index": "-1000", + top: "0", + right: "0" + }, XV = function(e) { + Object.keys(QV).forEach((function(t) { + e.style.setProperty(t, QV[t], "important") + })) + }, eW = null, tW = function() {}, nW = ["borderBottomWidth", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "boxSizing", "fontFamily", "fontSize", "fontStyle", "fontWeight", "letterSpacing", "lineHeight", "paddingBottom", "paddingLeft", "paddingRight", "paddingTop", "tabSize", "textIndent", "textRendering", "textTransform", "width"], aW = !!document.documentElement.currentStyle, rW = function(e, t) { + var n, a = e.cacheMeasurements, + r = e.maxRows, + i = e.minRows, + o = e.onChange, + s = void 0 === o ? tW : o, + l = e.onHeightChange, + c = void 0 === l ? tW : l, + u = L(e, ["cacheMeasurements", "maxRows", "minRows", "onChange", "onHeightChange"]), + d = void 0 !== u.value, + p = (0, x.useRef)(null), + h = function(e, t) { + var n = (0, x.useRef)(); + return (0, x.useCallback)((function(a) { + e.current = a, n.current && ZV(n.current, null), n.current = t, t && ZV(t, a) + }), [t]) + }(p, t), + m = (0, x.useRef)(0), + f = (0, x.useRef)(), + g = function() { + var e = p.current, + t = a && f.current ? f.current : function(e) { + var t = window.getComputedStyle(e); + if (null === t) return null; + var n, a = (n = t, nW.reduce((function(e, t) { + return e[t] = n[t], e + }), {})), + r = a.boxSizing; + return "" === r ? null : (aW && "border-box" === r && (a.width = parseFloat(a.width) + parseFloat(a.borderRightWidth) + parseFloat(a.borderLeftWidth) + parseFloat(a.paddingRight) + parseFloat(a.paddingLeft) + "px"), { + sizingStyle: a, + paddingSize: parseFloat(a.paddingBottom) + parseFloat(a.paddingTop), + borderSize: parseFloat(a.borderBottomWidth) + parseFloat(a.borderTopWidth) + }) + }(e); + if (t) { + f.current = t; + var n = function(e, t, n, a) { + void 0 === n && (n = 1), void 0 === a && (a = 1 / 0), eW || ((eW = document.createElement("textarea")).setAttribute("tab-index", "-1"), eW.setAttribute("aria-hidden", "true"), XV(eW)), null === eW.parentNode && document.body.appendChild(eW); + var r = e.paddingSize, + i = e.borderSize, + o = e.sizingStyle, + s = o.boxSizing; + Object.keys(o).forEach((function(e) { + var t = e; + eW.style[t] = o[t] + })), XV(eW), eW.value = t; + var l = function(e, t) { + var n = e.scrollHeight; + return "border-box" === t.sizingStyle.boxSizing ? n + t.borderSize : n - t.paddingSize + }(eW, e); + eW.value = "x"; + var c = eW.scrollHeight - r, + u = c * n; + "border-box" === s && (u = u + r + i), l = Math.max(u, l); + var d = c * a; + return "border-box" === s && (d = d + r + i), [l = Math.min(d, l), c] + }(t, e.value || e.placeholder || "x", i, r), + o = n[0], + s = n[1]; + m.current !== o && (m.current = o, e.style.setProperty("height", o + "px", "important"), c(o, { + rowHeight: s + })) } - } - static _getValidTypes(e = []) { - return e.filter((e => nF.includes(e))) - } - constructor(e) { - super(e), XL(this, "_poller", null), XL(this, "state", { - screenShareAudio: !1, - selectedSource: {}, - selectedTab: 0, - sources: {}, - types: [] - }), XL(this, "_selectedTabType", "screen"), this._onCloseModal = this._onCloseModal.bind(this), this._onPreviewClick = this._onPreviewClick.bind(this), this._onShareAudioChecked = this._onShareAudioChecked.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onTabSelected = this._onTabSelected.bind(this), this._updateSources = this._updateSources.bind(this), this.state.types = aF._getValidTypes(this.props.desktopSharingSources) - } - componentDidMount() { - this._startPolling() - } - componentWillUnmount() { - this._stopPolling() - } - render() { - return x().createElement(IO, { - isModal: !1, - okDisabled: Boolean(!this.state.selectedSource.id), - okKey: "dialog.Share", - onCancel: this._onCloseModal, - onSubmit: this._onSubmit, - titleKey: "dialog.shareYourScreen", - width: "medium" - }, this._renderTabs()) - } - _getSelectedSource(e = {}) { - const { - selectedSource: t - } = this.state; - return !Array.isArray(e[this._selectedTabType]) || e[this._selectedTabType].length <= 0 ? {} : t && t.type === this._selectedTabType && e[this._selectedTabType].some((e => e.id === t.id)) ? t : { - id: e[this._selectedTabType][0].id, - type: this._selectedTabType + }; + return (0, x.useLayoutEffect)(g), n = function(e) { + var t = (0, x.useRef)(e); + return JV((function() { + t.current = e + })), t + }(g), (0, x.useEffect)((function() { + var e = function(e) { + n.current(e) + }; + return window.addEventListener("resize", e), + function() { + window.removeEventListener("resize", e) } - } - _onCloseModal(e = "", t, n = !1) { - this.props.onSourceChoose(e, t, n), this.props.dispatch(oP()) - } - _onPreviewClick(e, t) { - this.setState({ - selectedSource: { - id: e, - type: t - } - }) - } - _onSubmit() { - const { - selectedSource: { - id: e, - type: t - }, - screenShareAudio: n - } = this.state; - this._onCloseModal(e, t, n) - } - _onTabSelected(e, t) { - const { - types: n, - sources: a - } = this.state; - this._selectedTabType = n[t], this.setState({ - screenShareAudio: !1, - selectedSource: this._getSelectedSource(a), - selectedTab: t - }) - } - _onShareAudioChecked(e) { - this.setState({ - screenShareAudio: e - }) - } - _renderTabs() { - const { - selectedSource: e, - sources: t, - types: n - } = this.state, { - t: a - } = this.props, r = n.map((n => ({ - content: x().createElement(QL, { - key: n, - onClick: this._onPreviewClick, - onDoubleClick: this._onSubmit, - onShareAudioChecked: this._onShareAudioChecked, - selectedSourceId: e.id, - sources: t[n], - type: n - }), - label: a(tF[n]) - }))); - return x().createElement(lM, { - onSelect: this._onTabSelected, - selected: this.state.selectedTab, - tabs: r - }) - } - _startPolling() { - this._stopPolling(), this._updateSources(), this._poller = window.setInterval(this._updateSources, 2e3) - } - _stopPolling() { - window.clearInterval(this._poller), this._poller = null - } - _updateSources() { - const { - types: e - } = this.state; - e.length > 0 && function(e, t = {}) { - const n = { - types: e - }; - return t.thumbnailSize && (n.thumbnailSize = t.thumbnailSize), new Promise(((e, t) => { - const { - JitsiMeetElectron: a - } = window; - if (!a || !a.obtainDesktopStreams) { - const e = "Called JitsiMeetElectron.obtainDesktopStreams but it is not defined"; - return ML.error(e), Promise.reject(new Error(e)) - } - a.obtainDesktopStreams((t => e(function(e = []) { - const t = { - screen: [], - window: [] - }; - return e.forEach((e => { - const n = e.id.split(":")[0]; - t[n] && t[n].push(e) - })), t - }(t))), (e => { - ML.error(`Error while obtaining desktop sources: ${e}`), t(e) - }), n) - })) - }(this.state.types, { - thumbnailSize: eF - }).then((e => { - const t = this._getSelectedSource(e); - this.setState({ - sources: e, - selectedSource: t - }) - })).catch((() => {})) - } + }), []), (0, x.createElement)("textarea", z({}, u, { + onChange: function(e) { + d || g(), s(e) + }, + ref: h + })) + }; + const iW = (0, x.forwardRef)(rW); + var oW = n(4964), sW = n.n(oW), lW = n(1653), cW = n.n(lW); + const uW = []; + + function dW(e) { + const { + lastReadMessage: t, + messages: n + } = e["features/chat"], a = n.length; + if (!a) return 0; + let r = 0; + if ("ReactNative" === navigator.product) { + const e = n.indexOf(t); + for (let t = 0; t < e; t++) n[t].isReaction && r++; + return e - r } - const rF = Li(ze()(aF)); + const i = n.lastIndexOf(t); + for (let e = i + 1; e < a; e++) n[e].isReaction && r++; + return a - (i + 1) - r + } - function iF(e, t = "") { - return `${e||t}${e&&t&&e!==t?` (${t})`:""}` + function pW(e) { + var t; + return !0 === (null === (t = e["features/base/config"]) || void 0 === t ? void 0 : t.disableChatSmileys) + }! function() { + for (const [e, t] of Object.entries(sW())) { + let n; + const a = cW()[e]; + n = a ? a.map((e => Tt(e))) : [], n.push(Tt(`:${e}:`)); + const r = `\\B(${n.join("|")})\\B`; + uW.push([new RegExp(r, "g"), t]) + } + }(); + var hW = n(9114); + const mW = { + smiley1: ":)", + smiley2: ":(", + smiley3: ":D", + smiley4: ":+1:", + smiley5: ":P", + smiley6: ":wave:", + smiley7: ":blush:", + smiley8: ":slightly_smiling_face:", + smiley9: ":scream:", + smiley10: ":*", + smiley11: ":-1:", + smiley12: ":mag:", + smiley13: ":heart:", + smiley14: ":innocent:", + smiley15: ":angry:", + smiley16: ":angel:", + smiley17: ";(", + smiley18: ":clap:", + smiley19: ";)", + smiley20: ":beer:" + }; class fW extends x.PureComponent { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._onEscKey = this._onEscKey.bind(this) + } + _onEscKey(e) { + "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this.props.onSmileySelect()) + } + _onKeyPress(e) { + " " === e.key && (e.preventDefault(), this.props.onSmileySelect(e.target.id && mW[e.target.id])) + } + _onClick(e) { + e.preventDefault(), this.props.onSmileySelect(e.currentTarget.id && mW[e.currentTarget.id]) + } + render() { + const e = Object.keys(mW).map((e => C().createElement("div", { + className: "smileyContainer", + id: e, + key: e, + onClick: this._onClick, + onKeyDown: this._onEscKey, + onKeyPress: this._onKeyPress, + role: "option", + tabIndex: 0 + }, C().createElement(hW.ZP, { + onlyEmojiClassName: "smiley", + text: mW[e] + })))); + return C().createElement("div", { + "aria-orientation": "horizontal", + id: "smileysContainer", + onKeyDown: this._onEscKey, + role: "listbox", + tabIndex: -1 + }, e) } - class oF extends E.Component { - constructor(e) { - super(e), this.state = { - editDisplayNameValue: "", - isEditing: !1 - }, this._nameInput = null, this._onChange = this._onChange.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onStartEditing = this._onStartEditing.bind(this), this._onSubmit = this._onSubmit.bind(this), this._setNameInputRef = this._setNameInputRef.bind(this) - } - componentDidUpdate(e, t) { - !t.isEditing && this.state.isEditing && this._nameInput && this._nameInput.select() - } - render() { - const { - _nameToDisplay: e, - allowEditing: t, - displayNameSuffix: n, - elementID: a, - t: r - } = this.props; - return t && this.state.isEditing ? x().createElement("input", { - autoFocus: !0, - className: "editdisplayname", - id: "editDisplayName", - onBlur: this._onSubmit, - onChange: this._onChange, - onKeyDown: this._onKeyDown, - placeholder: r("defaultNickname"), - ref: this._setNameInputRef, - spellCheck: "false", - type: "text", - value: this.state.editDisplayNameValue - }) : x().createElement("span", { - className: "displayname", - id: a, - onClick: this._onStartEditing - }, iF(e, n)) - } - _onChange(e) { - this.setState({ - editDisplayNameValue: e.target.value - }) - } - _onKeyDown(e) { - "Enter" === e.key && this._onSubmit() - } - _onStartEditing() { - this.props.allowEditing && this.setState({ - isEditing: !0, - editDisplayNameValue: this.props._configuredDisplayName - }) - } - _onSubmit() { - const { - editDisplayNameValue: e - } = this.state, { - dispatch: t - } = this.props; - t(bn({ - displayName: e - })), this.setState({ - isEditing: !1, - editDisplayNameValue: "" - }), this._nameInput = null - } - _setNameInputRef(e) { - this._nameInput = e - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(oF, "defaultProps", { - _configuredDisplayName: "" - }); - const sF = Li(ze((function(e, t) { + } + const gW = fW; class bW extends x.Component { + constructor(e) { + super(e), + function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(this, "state", { + message: "", + showSmileysPanel: !1 + }), this._textArea = null, this._onDetectSubmit = this._onDetectSubmit.bind(this), this._onMessageChange = this._onMessageChange.bind(this), this._onSmileySelect = this._onSmileySelect.bind(this), this._onSubmitMessage = this._onSubmitMessage.bind(this), this._onToggleSmileysPanel = this._onToggleSmileysPanel.bind(this), this._onEscHandler = this._onEscHandler.bind(this), this._onToggleSmileysPanelKeyPress = this._onToggleSmileysPanelKeyPress.bind(this), this._onSubmitMessageKeyPress = this._onSubmitMessageKeyPress.bind(this), this._setTextAreaRef = this._setTextAreaRef.bind(this) + } + componentDidMount() { + va() && this._textArea && this._textArea.blur() + } + render() { + const e = (this.state.showSmileysPanel ? "show-smileys" : "hide-smileys") + " smileys-panel"; + return C().createElement("div", { + className: "chat-input-container" + (this.state.message.trim().length ? " populated" : "") + }, C().createElement("div", { + id: "chat-input" + }, this.props._areSmileysDisabled ? null : C().createElement("div", { + className: "smiley-input" + }, C().createElement("div", { + id: "smileysarea" + }, C().createElement("div", { + id: "smileys" + }, C().createElement("div", { + "aria-expanded": this.state.showSmileysPanel, + "aria-haspopup": "smileysContainer", + "aria-label": this.props.t("chat.smileysPanel"), + className: "smiley-button", + onClick: this._onToggleSmileysPanel, + onKeyDown: this._onEscHandler, + onKeyPress: this._onToggleSmileysPanelKeyPress, + role: "button", + tabIndex: 0 + }, C().createElement(lo, { + src: nd + })))), C().createElement("div", { + className: e + }, C().createElement(gW, { + onSmileySelect: this._onSmileySelect + }))), C().createElement("div", { + className: "usrmsg-form" + }, C().createElement(iW, { + autoComplete: "off", + autoFocus: !0, + id: "usermsg", + maxRows: 5, + onChange: this._onMessageChange, + onHeightChange: this.props.onResize, + onKeyDown: this._onDetectSubmit, + placeholder: this.props.t("chat.messagebox"), + ref: this._setTextAreaRef, + tabIndex: 0, + value: this.state.message + })), C().createElement("div", { + className: "send-button-container" + }, C().createElement("div", { + "aria-label": this.props.t("chat.sendButton"), + className: "send-button", + onClick: this._onSubmitMessage, + onKeyPress: this._onSubmitMessageKeyPress, + role: "button", + tabIndex: this.state.message.trim() ? 0 : -1 + }, C().createElement(lo, { + src: nu + }))))) + } + _focus() { + this._textArea && this._textArea.focus() + } + _onSubmitMessage() { + const e = this.state.message.trim(); + e && (this.props.onSend(e), this.setState({ + message: "" + }), this._focus()) + } + _onDetectSubmit(e) { + "Enter" === e.key && !1 === e.shiftKey && !1 === e.ctrlKey && (e.preventDefault(), e.stopPropagation(), this._onSubmitMessage()) + } + _onSubmitMessageKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onSubmitMessage()) + } + _onMessageChange(e) { + this.setState({ + message: e.target.value + }) + } + _onSmileySelect(e) { + e ? this.setState({ + message: `${this.state.message} ${e}`, + showSmileysPanel: !1 + }) : this.setState({ + showSmileysPanel: !1 + }), this._focus() + } + _onToggleSmileysPanel() { + this.state.showSmileysPanel && this._focus(), this.setState({ + showSmileysPanel: !this.state.showSmileysPanel + }) + } + _onEscHandler(e) { + this.state.showSmileysPanel && "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this._onToggleSmileysPanel()) + } + _onToggleSmileysPanelKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onToggleSmileysPanel()) + } + _setTextAreaRef(e) { + this._textArea = e + } + } + const yW = Ei(Ne((e => ({ + _areSmileysDisabled: pW(e) + })))(bW)), vW = $g.default.div` + height: ${e=>e.elementHeight}px; +`, kW = function() { + if (!ka()) return null; + const [e, t] = (0, x.useState)(0), [n, a] = (0, x.useState)(window.innerHeight); + + function r() { const { - participantID: n - } = t, a = Fh(e, n); - return { - _configuredDisplayName: a && a.name, - _nameToDisplay: Hh(e, n) - } - }))(oF)); - class lF extends E.Component { - constructor(e) { - super(e), this._onSetDisplayName = this._onSetDisplayName.bind(this) - } - _onSetDisplayName(e) { - if (!e || !e.trim()) return !1; - const { - dispatch: t, - onPostSubmit: n - } = this.props; - return t(bn({ - displayName: e - })), n && n(), !0 - } + innerWidth: e, + visualViewport: { + width: r, + height: i + } + } = window; + r === e && (t(i < n ? n - i : 0), a(i)) } - const cF = Li(ze()(class extends lF { - constructor(e) { - super(e), this.state = { + return (0, x.useEffect)((() => (r(), window.visualViewport.addEventListener("resize", r), () => { + window.visualViewport.removeEventListener("resize", r) + })), []), C().createElement(vW, { + elementHeight: e + }) + }; class _W extends x.Component { + constructor(e) { + super(e), + function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(this, "state", { displayName: "" - }, this._onDisplayNameChange = this._onDisplayNameChange.bind(this), this._onSubmit = this._onSubmit.bind(this) - } - render() { - return x().createElement(IO, { - isModal: !1, - onSubmit: this._onSubmit, - titleKey: "dialog.displayNameRequired", - width: "small" - }, x().createElement(bz, { - autoFocus: !0, - compact: !0, - label: this.props.t("dialog.enterDisplayName"), - name: "displayName", - onChange: this._onDisplayNameChange, - shouldFitContainer: !0, - type: "text", - value: this.state.displayName - })) - } - _onDisplayNameChange(e) { - this.setState({ - displayName: e.target.value + }), this._onDisplayNameChange = this._onDisplayNameChange.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onKeyPress = this._onKeyPress.bind(this) + } + render() { + const { + isPollsEnabled: e, + t + } = this.props; + return C().createElement("div", { + id: "nickname" + }, C().createElement("form", { + onSubmit: this._onSubmit + }, C().createElement(xB, { + "aria-describedby": "nickname-title", + autoComplete: "name", + autoFocus: !0, + compact: !0, + id: "nickinput", + label: t(e ? "chat.nickname.titleWithPolls" : "chat.nickname.title"), + onChange: this._onDisplayNameChange, + placeholder: t("chat.nickname.popover"), + shouldFitContainer: !0, + type: "text", + value: this.state.displayName + })), C().createElement("div", { + className: "enter-chat" + (this.state.displayName.trim() ? "" : " disabled"), + onClick: this._onSubmit, + onKeyPress: this._onKeyPress, + role: "button", + tabIndex: 0 + }, t("chat.enter")), C().createElement(kW, null)) + } + _onDisplayNameChange(e) { + this.setState({ + displayName: e.target.value + }) + } + _onSubmit(e) { + e.preventDefault(), this.props.dispatch(hn({ + displayName: this.state.displayName + })) + } + _onKeyPress(e) { + " " !== e.key && "Enter" !== e.key || this._onSubmit(e) + } + } + const wW = Ei(Ne()(_W)); class SW extends x.PureComponent { + _getMessagesGroupedBySender() { + const e = this.props.messages.length, + t = []; + let n, a = []; + for (let r = 0; r < e; r++) { + const e = this.props.messages[r]; + e.id === n ? a.push(e) : (a.length && t.push(a), a = [e], n = e.id) + } + return a.length && t.push(a), t + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(SW, "defaultProps", { + messages: [] + }); class EW extends x.PureComponent { + _getFormattedTimestamp() { + return wi(new Date(this.props.message.timestamp)).format("H:mm") + } + _getMessageText() { + const { + message: e + } = this.props; + return e.messageType === VV ? this.props.t("chat.error", { + error: e.message + }) : e.message + } + _getPrivateNoticeMessage() { + const { + message: e, + t + } = this.props; + return t("chat.privateNotice", { + recipient: e.messageType === WV ? e.recipient : t("chat.you") + }) + } + } + + function xW(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + + function CW(e, t) { + const n = qf(e, "chat.enabled", !0), + { + visible: a = n + } = t; + return { + _participant: Vh(e, t.participantID), + visible: a + } + } + const AW = Ei(Ne(CW)(class extends bC { + constructor() { + super(...arguments), xW(this, "accessibilityLabel", "toolbar.accessibilityLabel.privateMessage"), xW(this, "icon", ac), xW(this, "label", "toolbar.privateMessage"), xW(this, "toggledIcon", Eu) + } + _handleClick() { + const { + _participant: e, + dispatch: t + } = this.props; + t(nV(e)) + } + _isToggled() { + return this.props.reply + } + })), TW = Ei(class extends EW { + render() { + const { + message: e, + t + } = this.props, n = [], a = this._getMessageText().split(" "), r = []; + for (const e of a) e.includes("://") ? r.push(e) : r.push(...(0, hW.qo)(e, { + className: "smiley" + })), r.push(" "); + return r.forEach((e => { + "string" == typeof e && " " !== e ? n.push(C().createElement(GC, { + key: e + }, e)) : n.push(e) + })), C().createElement("div", { + className: "chatmessage-wrapper", + tabIndex: -1 + }, C().createElement("div", { + className: "chatmessage " + (e.privateMessage ? "privatemessage" : "") + }, C().createElement("div", { + className: "replywrapper" + }, C().createElement("div", { + className: "messagecontent" + }, this.props.showDisplayName && this._renderDisplayName(), C().createElement("div", { + className: "usermessage" + }, C().createElement("span", { + className: "sr-only" + }, this.props.message.displayName === this.props.message.recipient ? t("chat.messageAccessibleTitleMe") : t("chat.messageAccessibleTitle", { + user: this.props.message.displayName + })), n), e.privateMessage && this._renderPrivateNotice()), e.privateMessage && e.messageType !== WV && C().createElement("div", { + className: "messageactions" + }, C().createElement(AW, { + participantID: e.id, + reply: !0, + showLabel: !1 + })))), this.props.showTimestamp && this._renderTimestamp()) + } + _renderDisplayName() { + return C().createElement("div", { + "aria-hidden": !0, + className: "display-name" + }, this.props.message.displayName) + } + _renderPrivateNotice() { + return C().createElement("div", { + className: "privatemessagenotice" + }, this._getPrivateNoticeMessage()) + } + _renderTimestamp() { + return C().createElement("div", { + className: "timestamp" + }, this._getFormattedTimestamp()) + } + }); class DW extends x.Component { + render() { + const { + className: e, + messages: t + } = this.props; + return t.length ? C().createElement("div", { + className: `chat-message-group ${e}` + }, t.map(((e, n) => C().createElement(TW, { + key: n, + message: e, + showDisplayName: 0 === n, + showTimestamp: n === t.length - 1 + })))) : null + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(DW, "defaultProps", { + className: "" + }); + const PW = DW; class jW extends SW { + constructor(e) { + super(e), this._isScrolledToBottom = !0, this._messageListRef = C().createRef(), this._messagesListEndRef = C().createRef(), this._onChatScroll = this._onChatScroll.bind(this) + } + render() { + const e = this._getMessagesGroupedBySender().map(((e, t) => { + const n = e[0] && e[0].messageType; + return C().createElement(PW, { + className: n || YV, + key: t, + messages: e }) + })); + return C().createElement("div", { + "aria-labelledby": "chat-header", + id: "chatconversation", + onScroll: this._onChatScroll, + ref: this._messageListRef, + role: "log", + tabIndex: 0 + }, e, C().createElement("div", { + ref: this._messagesListEndRef + })) + } + maybeUpdateBottomScroll() { + this._isScrolledToBottom && this.scrollToBottom(!1) + } + scrollToBottom(e) { + this._messagesListEndRef.current.scrollIntoView({ + behavior: e ? "smooth" : "auto", + block: "nearest" + }) + } + _onChatScroll() { + const e = this._messageListRef.current; + this._isScrolledToBottom = e.scrollHeight - e.scrollTop === e.clientHeight + } + } + class MW extends x.PureComponent {} + const IW = Ei(Ne((function(e) { + const { + privateMessageRecipient: t + } = e["features/chat"]; + return { + _privateMessageRecipient: t ? Kh(e, t.id) : void 0 + } + }), (function(e) { + return { + _onRemovePrivateMessageRecipient: () => { + e(eV()) } - _onSubmit() { - return this._onSetDisplayName(this.state.displayName) - } - })); - var uF = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { - return typeof e - } : function(e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }; - const dF = "object" === ("undefined" == typeof window ? "undefined" : uF(window)) && "object" === ("undefined" == typeof document ? "undefined" : uF(document)) && 9 === document.nodeType; - var pF = {}.constructor; - - function hF(e) { - if (null == e || "object" != typeof e) return e; - if (Array.isArray(e)) return e.map(hF); - if (e.constructor !== pF) return e; - var t = {}; - for (var n in e) t[n] = hF(e[n]); - return t } + }))(class extends MW { + constructor(e) { + super(e), this._onKeyPress = this._onKeyPress.bind(this) + } + _onKeyPress(e) { + !this.props._onRemovePrivateMessageRecipient || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props._onRemovePrivateMessageRecipient()) + } + render() { + const { + _privateMessageRecipient: e + } = this.props; + if (!e) return null; + const { + t + } = this.props; + return C().createElement("div", { + id: "chat-recipient", + role: "alert" + }, C().createElement("span", null, t("chat.messageTo", { + recipient: e + })), C().createElement("div", { + "aria-label": t("dialog.close"), + onClick: this.props._onRemovePrivateMessageRecipient, + onKeyPress: this._onKeyPress, + role: "button", + tabIndex: 0 + }, C().createElement(lo, { + src: Zo + }))) + } + })), OW = Ei(Ne((function(e) { + const { + isOpen: t, + isPollsTabFocused: n, + messages: a, + nbUnreadMessages: r + } = e["features/chat"], { + nbUnreadPolls: i + } = e["features/polls"], o = Uh(e), { + disablePolls: s + } = e["features/base/config"]; + return { + _isModal: window.innerWidth <= 580, + _isOpen: t, + _isPollsEnabled: !s, + _isPollsTabFocused: n, + _messages: a, + _nbUnreadMessages: r, + _nbUnreadPolls: i, + _showNamePrompt: !(null != o && o.name) + } + }))(class extends KV { + constructor(e) { + super(e), this._messageContainerRef = C().createRef(), this._onChatTabKeyDown = this._onChatTabKeyDown.bind(this), this._onChatInputResize = this._onChatInputResize.bind(this), this._onEscClick = this._onEscClick.bind(this), this._onPollsTabKeyDown = this._onPollsTabKeyDown.bind(this), this._onToggleChat = this._onToggleChat.bind(this) + } + componentDidMount() { + this._scrollMessageContainerToBottom(!0) + } + componentDidUpdate(e) { + this.props._messages !== e._messages ? this._scrollMessageContainerToBottom(!0) : this.props._isOpen && !e._isOpen && this._scrollMessageContainerToBottom(!1) + } + render() { + const { + _isOpen: e, + _isPollsEnabled: t, + _showNamePrompt: n + } = this.props; + return e ? C().createElement("div", { + className: "sideToolbarContainer", + id: "sideToolbarContainer", + onKeyDown: this._onEscClick + }, C().createElement($V, { + className: "chat-header", + id: "chat-header", + isPollsEnabled: t, + onCancel: this._onToggleChat + }), n ? C().createElement(wW, { + isPollsEnabled: t + }) : this._renderChat()) : null + } + _onChatInputResize() { + this._messageContainerRef.current.maybeUpdateBottomScroll() + } + _onChatTabKeyDown(e) { + "Enter" !== e.key && " " !== e.key || (e.preventDefault(), e.stopPropagation(), this._onToggleChatTab()) + } + _onEscClick(e) { + "Escape" === e.key && this.props._isOpen && (e.preventDefault(), e.stopPropagation(), this._onToggleChat()) + } + _onPollsTabKeyDown(e) { + "Enter" !== e.key && " " !== e.key || (e.preventDefault(), e.stopPropagation(), this._onTogglePollsTab()) + } + _renderChat() { + const { + _isPollsEnabled: e, + _isPollsTabFocused: t + } = this.props; + return t ? C().createElement(C().Fragment, null, e && this._renderTabs(), C().createElement("div", { + "aria-labelledby": "polls-tab", + id: "polls-panel", + role: "tabpanel" + }, C().createElement(qV, null)), C().createElement(kW, null)) : C().createElement(C().Fragment, null, e && this._renderTabs(), C().createElement("div", { + "aria-labelledby": "chat-tab", + className: iV("chat-panel", !e && "chat-panel-no-tabs"), + id: "chat-panel", + role: "tabpanel" + }, C().createElement(jW, { + messages: this.props._messages, + ref: this._messageContainerRef + }), C().createElement(IW, null), C().createElement(yW, { + onResize: this._onChatInputResize, + onSend: this._onSendMessage + }), C().createElement(kW, null))) + } + _renderTabs() { + const { + _isPollsEnabled: e, + _isPollsTabFocused: t, + _nbUnreadMessages: n, + _nbUnreadPolls: a, + t: r + } = this.props; + return C().createElement("div", { + "aria-label": r(e ? "chat.titleWithPolls" : "chat.title"), + className: "chat-tabs-container", + role: "tablist" + }, C().createElement("div", { + "aria-controls": "chat-panel", + "aria-label": r("chat.tabs.chat"), + "aria-selected": !t, + className: "chat-tab " + (t ? "" : "chat-tab-focus"), + id: "chat-tab", + onClick: this._onToggleChatTab, + onKeyDown: this._onChatTabKeyDown, + role: "tab", + tabIndex: "0" + }, C().createElement("span", { + className: "chat-tab-title" + }, r("chat.tabs.chat")), this.props._isPollsTabFocused && n > 0 && C().createElement("span", { + className: "chat-tab-badge" + }, n)), C().createElement("div", { + "aria-controls": "polls-panel", + "aria-label": r("chat.tabs.polls"), + "aria-selected": t, + className: "chat-tab " + (t ? "chat-tab-focus" : ""), + id: "polls-tab", + onClick: this._onTogglePollsTab, + onKeyDown: this._onPollsTabKeyDown, + role: "tab", + tabIndex: "0" + }, C().createElement("span", { + className: "chat-tab-title" + }, r("chat.tabs.polls")), !t && this.props._nbUnreadPolls > 0 && C().createElement("span", { + className: "chat-tab-badge" + }, a))) + } + _scrollMessageContainerToBottom(e) { + this._messageContainerRef.current && this._messageContainerRef.current.scrollToBottom(e) + } + _onToggleChat() { + this.props.dispatch(aV()) + } + })); class NW extends x.Component { + render() { + return C().createElement("span", { + className: "badge-round" + }, C().createElement("span", null, !this.props._isOpen && (this.props._count || null))) + } + } + const RW = Ne((function(e) { + const { + isOpen: t + } = e["features/chat"]; + return { + _count: dW(e) + _V(e), + _isOpen: t + } + }))(NW); - function mF(e, t, n) { - void 0 === e && (e = "unnamed"); - var a = n.jss, - r = hF(t); - return a.plugins.onCreateRule(e, r, n) || (e[0], null) + function zW(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const LW = Ei(Ne((e => ({ + _chatOpen: e["features/chat"].isOpen + })))(class extends bC { + constructor() { + super(...arguments), zW(this, "accessibilityLabel", "toolbar.accessibilityLabel.chat"), zW(this, "icon", es), zW(this, "label", "toolbar.openChat"), zW(this, "toggledLabel", "toolbar.closeChat") } - var fF = function(e, t) { - for (var n = "", a = 0; a < e.length && "!important" !== e[a]; a++) n && (n += t), n += e[a]; - return n + get tooltip() { + return this._isToggled() ? "toolbar.closeChat" : "toolbar.openChat" + } + set tooltip(e) {} + _handleClick() { + const { + handleClick: e + } = this.props; + e && e() + } + _isToggled() { + return this.props._chatOpen + } + render() { + return C().createElement("div", { + className: "toolbar-button-with-badge", + key: "chatcontainer" + }, super.render(), C().createElement(RW, null)) + } + })); class FW extends x.PureComponent { + constructor(e) { + super(e), this._onSendGroupMessage = this._onSendGroupMessage.bind(this), this._onSendPrivateMessage = this._onSendPrivateMessage.bind(this) + } + _onSendGroupMessage() { + return this.props._onSendMessage(this.props.message), !0 + } + _onSendPrivateMessage() { + const { + message: e, + _onSendMessage: t, + _onSetMessageRecipient: n, + _participant: a + } = this.props; + return n(a), t(e), !0 + } + } + const qW = Ei(Ne((function(e, t) { + return { + _participant: Vh(e, t.participantID) + } + }), (function(e) { + return { + _onSendMessage: t => { + e(XH(t, !0)) }, - gF = function(e, t) { - if (void 0 === t && (t = !1), !Array.isArray(e)) return e; - var n = ""; - if (Array.isArray(e[0])) - for (var a = 0; a < e.length && "!important" !== e[a]; a++) n && (n += ", "), n += fF(e[a], " "); - else n = fF(e, ", "); - return t || "!important" !== e[e.length - 1] || (n += " !important"), n - }; + _onSetMessageRecipient: t => { + e(eV(t)) + } + } + }))(class extends FW { + render() { + return C().createElement(yL, { + cancelKey: "dialog.sendPrivateMessageCancel", + okKey: "dialog.sendPrivateMessageOk", + onCancel: this._onSendGroupMessage, + onSubmit: this._onSendPrivateMessage, + titleKey: "dialog.sendPrivateMessageTitle", + width: "small" + }, C().createElement("div", null, this.props.t("dialog.sendPrivateMessage"))) + } + })), BW = "SELECT_LARGE_VIDEO_PARTICIPANT", UW = "UPDATE_KNOWN_LARGE_VIDEO_RESOLUTION", HW = "UPDATE_LAST_LARGE_VIDEO_MEDIA_EVENT"; + + function VW(e) { + return (t, n) => { + const a = n(); + if (a["features/etherpad"].editing) return; + const r = null != e ? e : function(e) { + var t; + let n = Zh(e); + if (n) return n.id; + const a = e["features/video-layout"].remoteScreenShares; + if (null != a && a.length) return a[a.length - 1]; + if (n = Xh(e), n && !n.local) return n.id; + n = void 0; + const r = function(e) { + for (let t = e.length - 1; t >= 0; --t) { + const n = e[t]; + if (!n.local && n.mediaType === Bi) return n + } + }(e["features/base/tracks"]); + if (r) return r.participantId; + const i = [...Jh(e).values()]; + for (let e = i.length; e > 0 && !n; e--) { + const t = i[e - 1]; + !t.botType && (n = t) + } + return n ? n.id : null === (t = Uh(e)) || void 0 === t ? void 0 : t.id + }(a), + i = a["features/large-video"], + o = a["features/video-layout"].remoteScreenShares; + let s; + o && o.length && (s = o[o.length - 1]), r === i.participantId && r !== s || t({ + type: BW, + participantId: r + }) + } + } + const WW = "Invited", YW = "calling", GW = "ringing", KW = "connected", $W = "rejected", JW = "expired", ZW = { + [WW]: "presenceStatus.invited", + [GW]: "presenceStatus.ringing", + [YW]: "presenceStatus.calling", + busy: "presenceStatus.busy", + [$W]: "presenceStatus.rejected", + ignored: "presenceStatus.ignored", + [JW]: "presenceStatus.expired", + "Initializing Call": "presenceStatus.initializingCall", + Connecting: "presenceStatus.connecting", + "Connecting*": "presenceStatus.connecting2", + Connected: "presenceStatus.connected", + [KW]: "presenceStatus.connected", + Disconnected: "presenceStatus.disconnected" + }; - function bF(e, t) { - for (var n = "", a = 0; a < t; a++) n += " "; - return n + e - } - - function yF(e, t, n) { - void 0 === n && (n = {}); - var a = ""; - if (!t) return a; - var r = n.indent, - i = void 0 === r ? 0 : r, - o = t.fallbacks; - if (e && i++, o) - if (Array.isArray(o)) - for (var s = 0; s < o.length; s++) { - var l = o[s]; - for (var c in l) { - var u = l[c]; - null != u && (a && (a += "\n"), a += "" + bF(c + ": " + gF(u) + ";", i)) - } - } else - for (var d in o) { - var p = o[d]; - null != p && (a && (a += "\n"), a += "" + bF(d + ": " + gF(p) + ";", i)) - } - for (var h in t) { - var m = t[h]; - null != m && "fallbacks" !== h && (a && (a += "\n"), a += "" + bF(h + ": " + gF(m) + ";", i)) - } - return (a || n.allowEmpty) && e ? (a && (a = "\n" + a + "\n"), bF(e + " {" + a, --i) + bF("}", i)) : a - } - var vF = /([[\].#*$><+~=|^:(),"'`\s])/g, - kF = "undefined" != typeof CSS && CSS.escape, - _F = function(e) { - return kF ? kF(e) : e.replace(vF, "\\$1") - }, - wF = function() { - function e(e, t, n) { - this.type = "style", this.key = void 0, this.isProcessed = !1, this.style = void 0, this.renderer = void 0, this.renderable = void 0, this.options = void 0; - var a = n.sheet, - r = n.Renderer; - this.key = e, this.options = n, this.style = t, a ? this.renderer = a.renderer : r && (this.renderer = new r) - } - return e.prototype.prop = function(e, t, n) { - if (void 0 === t) return this.style[e]; - var a = !!n && n.force; - if (!a && this.style[e] === t) return this; - var r = t; - n && !1 === n.process || (r = this.options.jss.plugins.onChangeValue(t, e, this)); - var i = null == r || !1 === r, - o = e in this.style; - if (i && !o && !a) return this; - var s = i && o; - if (s ? delete this.style[e] : this.style[e] = r, this.renderable && this.renderer) return s ? this.renderer.removeProperty(this.renderable, e) : this.renderer.setProperty(this.renderable, e, r), this; - var l = this.options.sheet; - return l && l.attached, this - }, e - }(), - SF = function(e) { - function t(t, n, a) { - var r; - (r = e.call(this, t, n, a) || this).selectorText = void 0, r.id = void 0, r.renderable = void 0; - var i = a.selector, - o = a.scoped, - s = a.sheet, - l = a.generateId; - return i ? r.selectorText = i : !1 !== o && (r.id = l(_(_(r)), s), r.selectorText = "." + _F(r.id)), r - } - S(t, e); - var n = t.prototype; - return n.applyTo = function(e) { - var t = this.renderer; - if (t) { - var n = this.toJSON(); - for (var a in n) t.setProperty(e, a, n[a]) - } - return this - }, n.toJSON = function() { - var e = {}; - for (var t in this.style) { - var n = this.style[t]; - "object" != typeof n ? e[t] = n : Array.isArray(n) && (e[t] = gF(n)) - } - return e - }, n.toString = function(e) { - var t = this.options.sheet, - n = t && t.options.link ? z({}, e, { - allowEmpty: !0 - }) : e; - return yF(this.selectorText, this.style, n) - }, Qg(t, [{ - key: "selector", - set: function(e) { - if (e !== this.selectorText) { - this.selectorText = e; - var t = this.renderer, - n = this.renderable; - n && t && (t.setSelector(n, e) || t.replaceRule(n, this)) - } - }, - get: function() { - return this.selectorText - } - }]), t - }(wF), - EF = { - onCreateRule: function(e, t, n) { - return "@" === e[0] || n.parent && "keyframes" === n.parent.type ? null : new SF(e, t, n) - } - }, - xF = { - indent: 1, - children: !0 - }, - CF = /@([\w-]+)/, - AF = function() { - function e(e, t, n) { - this.type = "conditional", this.at = void 0, this.key = void 0, this.query = void 0, this.rules = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0, this.key = e; - var a = e.match(CF); - for (var r in this.at = a ? a[1] : "unknown", this.query = n.name || "@" + this.at, this.options = n, this.rules = new ZF(z({}, n, { - parent: this - })), t) this.rules.add(r, t[r]); - this.rules.process() - } - var t = e.prototype; - return t.getRule = function(e) { - return this.rules.get(e) - }, t.indexOf = function(e) { - return this.rules.indexOf(e) - }, t.addRule = function(e, t, n) { - var a = this.rules.add(e, t, n); - return a ? (this.options.jss.plugins.onProcessRule(a), a) : null - }, t.toString = function(e) { - if (void 0 === e && (e = xF), null == e.indent && (e.indent = xF.indent), null == e.children && (e.children = xF.children), !1 === e.children) return this.query + " {}"; - var t = this.rules.toString(e); - return t ? this.query + " {\n" + t + "\n}" : "" - }, e - }(), - jF = /@media|@supports\s+/, - PF = { - onCreateRule: function(e, t, n) { - return jF.test(e) ? new AF(e, t, n) : null - } - }, - DF = { - indent: 1, - children: !0 - }, - TF = /@keyframes\s+([\w-]+)/, - OF = function() { - function e(e, t, n) { - this.type = "keyframes", this.at = "@keyframes", this.key = void 0, this.name = void 0, this.id = void 0, this.rules = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0; - var a = e.match(TF); - a && a[1] ? this.name = a[1] : this.name = "noname", this.key = this.type + "-" + this.name, this.options = n; - var r = n.scoped, - i = n.sheet, - o = n.generateId; - for (var s in this.id = !1 === r ? this.name : _F(o(this, i)), this.rules = new ZF(z({}, n, { - parent: this - })), t) this.rules.add(s, t[s], z({}, n, { - parent: this - })); - this.rules.process() - } - return e.prototype.toString = function(e) { - if (void 0 === e && (e = DF), null == e.indent && (e.indent = DF.indent), null == e.children && (e.children = DF.children), !1 === e.children) return this.at + " " + this.id + " {}"; - var t = this.rules.toString(e); - return t && (t = "\n" + t + "\n"), this.at + " " + this.id + " {" + t + "}" - }, e - }(), - MF = /@keyframes\s+/, - IF = /\$([\w-]+)/g, - NF = function(e, t) { - return "string" == typeof e ? e.replace(IF, (function(e, n) { - return n in t ? t[n] : e - })) : e - }, - zF = function(e, t, n) { - var a = e[t], - r = NF(a, n); - r !== a && (e[t] = r) - }, - RF = { - onCreateRule: function(e, t, n) { - return "string" == typeof e && MF.test(e) ? new OF(e, t, n) : null - }, - onProcessStyle: function(e, t, n) { - return "style" === t.type && n ? ("animation-name" in e && zF(e, "animation-name", n.keyframes), "animation" in e && zF(e, "animation", n.keyframes), e) : e - }, - onChangeValue: function(e, t, n) { - var a = n.options.sheet; - if (!a) return e; - switch (t) { - case "animation": - case "animation-name": - return NF(e, a.keyframes); - default: - return e - } - } - }, - LF = function(e) { - function t() { - for (var t, n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; - return (t = e.call.apply(e, [this].concat(a)) || this).renderable = void 0, t - } - return S(t, e), t.prototype.toString = function(e) { - var t = this.options.sheet, - n = t && t.options.link ? z({}, e, { - allowEmpty: !0 - }) : e; - return yF(this.key, this.style, n) - }, t - }(wF), - FF = { - onCreateRule: function(e, t, n) { - return n.parent && "keyframes" === n.parent.type ? new LF(e, t, n) : null - } - }, - qF = function() { - function e(e, t, n) { - this.type = "font-face", this.at = "@font-face", this.key = void 0, this.style = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0, this.key = e, this.style = t, this.options = n - } - return e.prototype.toString = function(e) { - if (Array.isArray(this.style)) { - for (var t = "", n = 0; n < this.style.length; n++) t += yF(this.at, this.style[n]), this.style[n + 1] && (t += "\n"); - return t - } - return yF(this.at, this.style, e) - }, e - }(), - BF = /@font-face/, - UF = { - onCreateRule: function(e, t, n) { - return BF.test(e) ? new qF(e, t, n) : null - } - }, - HF = function() { - function e(e, t, n) { - this.type = "viewport", this.at = "@viewport", this.key = void 0, this.style = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0, this.key = e, this.style = t, this.options = n - } - return e.prototype.toString = function(e) { - return yF(this.key, this.style, e) - }, e - }(), - VF = { - onCreateRule: function(e, t, n) { - return "@viewport" === e || "@-ms-viewport" === e ? new HF(e, t, n) : null - } - }, - WF = function() { - function e(e, t, n) { - this.type = "simple", this.key = void 0, this.value = void 0, this.options = void 0, this.isProcessed = !1, this.renderable = void 0, this.key = e, this.value = t, this.options = n - } - return e.prototype.toString = function(e) { - if (Array.isArray(this.value)) { - for (var t = "", n = 0; n < this.value.length; n++) t += this.key + " " + this.value[n] + ";", this.value[n + 1] && (t += "\n"); - return t - } - return this.key + " " + this.value + ";" - }, e - }(), - YF = { - "@charset": !0, - "@import": !0, - "@namespace": !0 - }, - GF = { - onCreateRule: function(e, t, n) { - return e in YF ? new WF(e, t, n) : null - } - }, - KF = [EF, PF, RF, FF, UF, VF, GF], - $F = { - process: !0 - }, - JF = { - force: !0, - process: !0 - }, - ZF = function() { - function e(e) { - this.map = {}, this.raw = {}, this.index = [], this.counter = 0, this.options = void 0, this.classes = void 0, this.keyframes = void 0, this.options = e, this.classes = e.classes, this.keyframes = e.keyframes - } - var t = e.prototype; - return t.add = function(e, t, n) { - var a = this.options, - r = a.parent, - i = a.sheet, - o = a.jss, - s = a.Renderer, - l = a.generateId, - c = a.scoped, - u = z({ - classes: this.classes, - parent: r, - sheet: i, - jss: o, - Renderer: s, - generateId: l, - scoped: c, - name: e, - keyframes: this.keyframes, - selector: void 0 - }, n), - d = e; - e in this.raw && (d = e + "-d" + this.counter++), this.raw[d] = t, d in this.classes && (u.selector = "." + _F(this.classes[d])); - var p = mF(d, t, u); - if (!p) return null; - this.register(p); - var h = void 0 === u.index ? this.index.length : u.index; - return this.index.splice(h, 0, p), p - }, t.get = function(e) { - return this.map[e] - }, t.remove = function(e) { - this.unregister(e), delete this.raw[e.key], this.index.splice(this.index.indexOf(e), 1) - }, t.indexOf = function(e) { - return this.index.indexOf(e) - }, t.process = function() { - var e = this.options.jss.plugins; - this.index.slice(0).forEach(e.onProcessRule, e) - }, t.register = function(e) { - this.map[e.key] = e, e instanceof SF ? (this.map[e.selector] = e, e.id && (this.classes[e.key] = e.id)) : e instanceof OF && this.keyframes && (this.keyframes[e.name] = e.id) - }, t.unregister = function(e) { - delete this.map[e.key], e instanceof SF ? (delete this.map[e.selector], delete this.classes[e.key]) : e instanceof OF && delete this.keyframes[e.name] - }, t.update = function() { - var e, t, n; - if ("string" == typeof(arguments.length <= 0 ? void 0 : arguments[0]) ? (e = arguments.length <= 0 ? void 0 : arguments[0], t = arguments.length <= 1 ? void 0 : arguments[1], n = arguments.length <= 2 ? void 0 : arguments[2]) : (t = arguments.length <= 0 ? void 0 : arguments[0], n = arguments.length <= 1 ? void 0 : arguments[1], e = null), e) this.updateOne(this.map[e], t, n); - else - for (var a = 0; a < this.index.length; a++) this.updateOne(this.index[a], t, n) - }, t.updateOne = function(t, n, a) { - void 0 === a && (a = $F); - var r = this.options, - i = r.jss.plugins, - o = r.sheet; - if (t.rules instanceof e) t.rules.update(n, a); - else { - var s = t, - l = s.style; - if (i.onUpdate(n, t, o, a), a.process && l && l !== s.style) { - for (var c in i.onProcessStyle(s.style, s, o), s.style) { - var u = s.style[c]; - u !== l[c] && s.prop(c, u, JF) - } - for (var d in l) { - var p = s.style[d], - h = l[d]; - null == p && p !== h && s.prop(d, null, JF) - } - } - } - }, t.toString = function(e) { - for (var t = "", n = this.options.sheet, a = !!n && n.options.link, r = 0; r < this.index.length; r++) { - var i = this.index[r].toString(e); - (i || a) && (t && (t += "\n"), t += i) - } - return t - }, e - }(), - QF = function() { - function e(e, t) { - for (var n in this.options = void 0, this.deployed = void 0, this.attached = void 0, this.rules = void 0, this.renderer = void 0, this.classes = void 0, this.keyframes = void 0, this.queue = void 0, this.attached = !1, this.deployed = !1, this.classes = {}, this.keyframes = {}, this.options = z({}, t, { - sheet: this, - parent: this, - classes: this.classes, - keyframes: this.keyframes - }), t.Renderer && (this.renderer = new t.Renderer(this)), this.rules = new ZF(this.options), e) this.rules.add(n, e[n]); - this.rules.process() - } - var t = e.prototype; - return t.attach = function() { - return this.attached || (this.renderer && this.renderer.attach(), this.attached = !0, this.deployed || this.deploy()), this - }, t.detach = function() { - return this.attached ? (this.renderer && this.renderer.detach(), this.attached = !1, this) : this - }, t.addRule = function(e, t, n) { - var a = this.queue; - this.attached && !a && (this.queue = []); - var r = this.rules.add(e, t, n); - return r ? (this.options.jss.plugins.onProcessRule(r), this.attached ? this.deployed ? (a ? a.push(r) : (this.insertRule(r), this.queue && (this.queue.forEach(this.insertRule, this), this.queue = void 0)), r) : r : (this.deployed = !1, r)) : null - }, t.insertRule = function(e) { - this.renderer && this.renderer.insertRule(e) - }, t.addRules = function(e, t) { - var n = []; - for (var a in e) { - var r = this.addRule(a, e[a], t); - r && n.push(r) - } - return n - }, t.getRule = function(e) { - return this.rules.get(e) - }, t.deleteRule = function(e) { - var t = "object" == typeof e ? e : this.rules.get(e); - return !(!t || this.attached && !t.renderable) && (this.rules.remove(t), !(this.attached && t.renderable && this.renderer) || this.renderer.deleteRule(t.renderable)) - }, t.indexOf = function(e) { - return this.rules.indexOf(e) - }, t.deploy = function() { - return this.renderer && this.renderer.deploy(), this.deployed = !0, this - }, t.update = function() { - var e; - return (e = this.rules).update.apply(e, arguments), this - }, t.updateOne = function(e, t, n) { - return this.rules.updateOne(e, t, n), this - }, t.toString = function(e) { - return this.rules.toString(e) - }, e - }(), - XF = function() { - function e() { - this.plugins = { - internal: [], - external: [] - }, this.registry = void 0 - } - var t = e.prototype; - return t.onCreateRule = function(e, t, n) { - for (var a = 0; a < this.registry.onCreateRule.length; a++) { - var r = this.registry.onCreateRule[a](e, t, n); - if (r) return r - } - return null - }, t.onProcessRule = function(e) { - if (!e.isProcessed) { - for (var t = e.options.sheet, n = 0; n < this.registry.onProcessRule.length; n++) this.registry.onProcessRule[n](e, t); - e.style && this.onProcessStyle(e.style, e, t), e.isProcessed = !0 - } - }, t.onProcessStyle = function(e, t, n) { - for (var a = 0; a < this.registry.onProcessStyle.length; a++) t.style = this.registry.onProcessStyle[a](t.style, t, n) - }, t.onProcessSheet = function(e) { - for (var t = 0; t < this.registry.onProcessSheet.length; t++) this.registry.onProcessSheet[t](e) - }, t.onUpdate = function(e, t, n, a) { - for (var r = 0; r < this.registry.onUpdate.length; r++) this.registry.onUpdate[r](e, t, n, a) - }, t.onChangeValue = function(e, t, n) { - for (var a = e, r = 0; r < this.registry.onChangeValue.length; r++) a = this.registry.onChangeValue[r](a, t, n); - return a - }, t.use = function(e, t) { - void 0 === t && (t = { - queue: "external" - }); - var n = this.plugins[t.queue]; - 1 === n.indexOf(e) && (n.push(e), this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce((function(e, t) { - for (var n in t) n in e && e[n].push(t[n]); - return e - }), { - onCreateRule: [], - onProcessRule: [], - onProcessStyle: [], - onProcessSheet: [], - onChangeValue: [], - onUpdate: [] - })) - }, e - }(), - eq = function() { - function e() { - this.registry = [] - } - var t = e.prototype; - return t.add = function(e) { - var t = this.registry, - n = e.options.index; - if (-1 === t.indexOf(e)) - if (0 === t.length || n >= this.index) t.push(e); - else - for (var a = 0; a < t.length; a++) - if (t[a].options.index > n) return void t.splice(a, 0, e) - }, t.reset = function() { - this.registry = [] - }, t.remove = function(e) { - var t = this.registry.indexOf(e); - this.registry.splice(t, 1) - }, t.toString = function(e) { - for (var t = void 0 === e ? {} : e, n = t.attached, a = R(t, ["attached"]), r = "", i = 0; i < this.registry.length; i++) { - var o = this.registry[i]; - null != n && o.attached !== n || (r && (r += "\n"), r += o.toString(a)) - } - return r - }, Qg(e, [{ - key: "index", - get: function() { - return 0 === this.registry.length ? 0 : this.registry[this.registry.length - 1].options.index - } - }]), e - }(), - tq = new eq, - nq = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window && window.Math === Math ? window : "undefined" != typeof self && self.Math === Math ? self : Function("return this")(), - aq = "2f1acc6c3a606b082e5eef5e54414ffb"; - null == nq[aq] && (nq[aq] = 0); - var rq = nq[aq]++, - iq = function(e) { - void 0 === e && (e = {}); - var t = 0; - return function(n, a) { - t += 1; - var r = "", - i = ""; - return a && (a.options.classNamePrefix && (i = a.options.classNamePrefix), null != a.options.jss.id && (r = String(a.options.jss.id))), e.minify ? "" + (i || "c") + rq + r + t : i + n.key + "-" + rq + (r ? "-" + r : "") + "-" + t - } - }, - oq = function(e) { - var t; - return function() { - return t || (t = e()), t - } - }, - sq = function(e, t) { - try { - return e.attributeStyleMap ? e.attributeStyleMap.get(t) : e.style.getPropertyValue(t) - } catch (e) { - return "" - } - }, - lq = function(e, t, n) { - try { - var a = n; - if (Array.isArray(n) && (a = gF(n, !0), "!important" === n[n.length - 1])) return e.style.setProperty(t, a, "important"), !0; - e.attributeStyleMap ? e.attributeStyleMap.set(t, a) : e.style.setProperty(t, a) - } catch (e) { - return !1 - } - return !0 - }, - cq = function(e, t) { - try { - e.attributeStyleMap ? e.attributeStyleMap.delete(t) : e.style.removeProperty(t) - } catch (e) {} - }, - uq = function(e, t) { - return e.selectorText = t, e.selectorText === t - }, - dq = oq((function() { - return document.querySelector("head") - })); - var pq = oq((function() { - var e = document.querySelector('meta[property="csp-nonce"]'); - return e ? e.getAttribute("content") : null - })), - hq = function(e, t, n) { + function QW() { + return QW = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, QW.apply(this, arguments) + } + class XW extends x.Component { + render() { + const e = this._getPresenceText(); + if (null === e) return null; + const { + style: t, + className: n + } = this.props; + return C().createElement(KC, QW({ + className: n + }, t), e) + } + _getPresenceText() { + const { + _presence: e, + t + } = this.props; + if (!e) return null; + const n = ZW[e]; + return n ? t(n) : e + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(XW, "defaultProps", { + _presence: "" + }); + const eY = Ei(Ne((function(e, t) { + const n = Vh(e, t.participantID); + return { + _presence: Boolean("undefined" != typeof interfaceConfig && (null === (a = interfaceConfig) || void 0 === a ? void 0 : a.DISABLE_PRESENCE_STATUS)) ? "" : (null == n ? void 0 : n.presence) || t.defaultPresence + }; + var a + }))(XW)), tY = n(1860).getLogger("modules/util/TaskQueue.js"); class nY { + constructor() { + this._queue = [], this._currentTask = null, this._onTaskComplete = this._onTaskComplete.bind(this) + } + enqueue(e) { + this._queue.push(e), this._executeNext() + } + _executeNext() { + if (this._currentTask) tY.warn("Task queued while a task is in progress."); + else if (this._currentTask = this._queue.shift() || null, this._currentTask) { + tY.debug("Executing a task."); try { - "insertRule" in e ? e.insertRule(t, n) : "appendRule" in e && e.appendRule(t) + this._currentTask(this._onTaskComplete) } catch (e) { - return !1 - } - return e.cssRules[n] - }, - mq = function(e, t) { - var n = e.cssRules.length; - return void 0 === t || t > n ? n : t - }, - fq = function() { - function e(e) { - this.getPropertyValue = sq, this.setProperty = lq, this.removeProperty = cq, this.setSelector = uq, this.element = void 0, this.sheet = void 0, this.hasInsertedRules = !1, this.cssRules = [], e && tq.add(e), this.sheet = e; - var t = this.sheet ? this.sheet.options : {}, - n = t.media, - a = t.meta, - r = t.element; - this.element = r || function() { - var e = document.createElement("style"); - return e.textContent = "\n", e - }(), this.element.setAttribute("data-jss", ""), n && this.element.setAttribute("media", n), a && this.element.setAttribute("data-meta", a); - var i = pq(); - i && this.element.setAttribute("nonce", i) - } - var t = e.prototype; - return t.attach = function() { - if (!this.element.parentNode && this.sheet) { - ! function(e, t) { - var n = t.insertionPoint, - a = function(e) { - var t = tq.registry; - if (t.length > 0) { - var n = function(e, t) { - for (var n = 0; n < e.length; n++) { - var a = e[n]; - if (a.attached && a.options.index > t.index && a.options.insertionPoint === t.insertionPoint) return a - } - return null - }(t, e); - if (n && n.renderer) return { - parent: n.renderer.element.parentNode, - node: n.renderer.element - }; - if (n = function(e, t) { - for (var n = e.length - 1; n >= 0; n--) { - var a = e[n]; - if (a.attached && a.options.insertionPoint === t.insertionPoint) return a - } - return null - }(t, e), n && n.renderer) return { - parent: n.renderer.element.parentNode, - node: n.renderer.element.nextSibling - } - } - var a = e.insertionPoint; - if (a && "string" == typeof a) { - var r = function(e) { - for (var t = dq(), n = 0; n < t.childNodes.length; n++) { - var a = t.childNodes[n]; - if (8 === a.nodeType && a.nodeValue.trim() === e) return a - } - return null - }(a); - if (r) return { - parent: r.parentNode, - node: r.nextSibling - } - } - return !1 - }(t); - if (!1 !== a && a.parent) a.parent.insertBefore(e, a.node); - else if (n && "number" == typeof n.nodeType) { - var r = n, - i = r.parentNode; - i && i.insertBefore(e, r.nextSibling) - } else dq().appendChild(e) - }(this.element, this.sheet.options); - var e = Boolean(this.sheet && this.sheet.deployed); - this.hasInsertedRules && e && (this.hasInsertedRules = !1, this.deploy()) - } - }, t.detach = function() { - if (this.sheet) { - var e = this.element.parentNode; - e && e.removeChild(this.element), this.sheet.options.link && (this.cssRules = [], this.element.textContent = "\n") - } - }, t.deploy = function() { - var e = this.sheet; - e && (e.options.link ? this.insertRules(e.rules) : this.element.textContent = "\n" + e.toString() + "\n") - }, t.insertRules = function(e, t) { - for (var n = 0; n < e.index.length; n++) this.insertRule(e.index[n], n, t) - }, t.insertRule = function(e, t, n) { - if (void 0 === n && (n = this.element.sheet), e.rules) { - var a = e, - r = n; - if ("conditional" === e.type || "keyframes" === e.type) { - var i = mq(n, t); - if (!1 === (r = hq(n, a.toString({ - children: !1 - }), i))) return !1; - this.refCssRule(e, i, r) - } - return this.insertRules(a.rules, r), r - } - var o = e.toString(); - if (!o) return !1; - var s = mq(n, t), - l = hq(n, o, s); - return !1 !== l && (this.hasInsertedRules = !0, this.refCssRule(e, s, l), l) - }, t.refCssRule = function(e, t, n) { - e.renderable = n, e.options.parent instanceof QF && (this.cssRules[t] = n) - }, t.deleteRule = function(e) { - var t = this.element.sheet, - n = this.indexOf(e); - return -1 !== n && (t.deleteRule(n), this.cssRules.splice(n, 1), !0) - }, t.indexOf = function(e) { - return this.cssRules.indexOf(e) - }, t.replaceRule = function(e, t) { - var n = this.indexOf(e); - return -1 !== n && (this.element.sheet.deleteRule(n), this.cssRules.splice(n, 1), this.insertRule(t, n)) - }, t.getRules = function() { - return this.element.sheet.cssRules - }, e - }(), - gq = 0, - bq = function() { - function e(e) { - this.id = gq++, this.version = "10.6.0", this.plugins = new XF, this.options = { - id: { - minify: !1 - }, - createGenerateId: iq, - Renderer: dF ? fq : null, - plugins: [] - }, this.generateId = iq({ - minify: !1 - }); - for (var t = 0; t < KF.length; t++) this.plugins.use(KF[t], { - queue: "internal" - }); - this.setup(e) - } - var t = e.prototype; - return t.setup = function(e) { - return void 0 === e && (e = {}), e.createGenerateId && (this.options.createGenerateId = e.createGenerateId), e.id && (this.options.id = z({}, this.options.id, e.id)), (e.createGenerateId || e.id) && (this.generateId = this.options.createGenerateId(this.options.id)), null != e.insertionPoint && (this.options.insertionPoint = e.insertionPoint), "Renderer" in e && (this.options.Renderer = e.Renderer), e.plugins && this.use.apply(this, e.plugins), this - }, t.createStyleSheet = function(e, t) { - void 0 === t && (t = {}); - var n = t.index; - "number" != typeof n && (n = 0 === tq.index ? 0 : tq.index + 1); - var a = new QF(e, z({}, t, { - jss: this, - generateId: t.generateId || this.generateId, - insertionPoint: this.options.insertionPoint, - Renderer: this.options.Renderer, - index: n - })); - return this.plugins.onProcessSheet(a), a - }, t.removeStyleSheet = function(e) { - return e.detach(), tq.remove(e), this - }, t.createRule = function(e, t, n) { - if (void 0 === t && (t = {}), void 0 === n && (n = {}), "object" == typeof e) return this.createRule(void 0, e, t); - var a = z({}, n, { - name: e, - jss: this, - Renderer: this.options.Renderer - }); - a.generateId || (a.generateId = this.generateId), a.classes || (a.classes = {}), a.keyframes || (a.keyframes = {}); - var r = mF(e, t, a); - return r && this.plugins.onProcessRule(r), r - }, t.use = function() { - for (var e = this, t = arguments.length, n = new Array(t), a = 0; a < t; a++) n[a] = arguments[a]; - return n.forEach((function(t) { - e.plugins.use(t) - })), this - }, e - }(); - - function yq(e) { - var t = null; - for (var n in e) { - var a = e[n], - r = typeof a; - if ("function" === r) t || (t = {}), t[n] = a; - else if ("object" === r && null !== a && !Array.isArray(a)) { - var i = yq(a); - i && (t || (t = {}), t[n] = i) + tY.error(`Task execution failed: ${e}`), this._onTaskComplete() } } - return t } - var vq = "object" == typeof CSS && null != CSS && "number" in CSS, - kq = function(e) { - return new bq(e) - }; + _onTaskComplete() { + this._currentTask = null, tY.debug("Task completed."), this._executeNext() + } + } - function _q() { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - t = e.baseClasses, - n = e.newClasses; - if (e.Component, !n) return t; - var a = z({}, t); - return Object.keys(n).forEach((function(e) { - n[e] && (a[e] = "".concat(t[e], " ").concat(n[e])) - })), a - } - kq(); - var wq = { - set: function(e, t, n, a) { - var r = e.get(t); - r || (r = new Map, e.set(t, r)), r.set(n, a) - }, - get: function(e, t, n) { - var a = e.get(t); - return a ? a.get(n) : void 0 - }, - delete: function(e, t, n) { - e.get(t).delete(n) - } - }; - const Sq = wq, - Eq = x().createContext(null); - - function xq() { - return x().useContext(Eq) - } - const Cq = "function" == typeof Symbol && Symbol.for ? Symbol.for("mui.nested") : "__THEME_NESTED__"; - var Aq = ["checked", "disabled", "error", "focused", "focusVisible", "required", "expanded", "selected"], - jq = Date.now(), - Pq = "fnValues" + jq, - Dq = "fnStyle" + ++jq; - var Tq = "@global", - Oq = "@global ", - Mq = function() { - function e(e, t, n) { - for (var a in this.type = "global", this.at = Tq, this.rules = void 0, this.options = void 0, this.key = void 0, this.isProcessed = !1, this.key = e, this.options = n, this.rules = new ZF(z({}, n, { - parent: this - })), t) this.rules.add(a, t[a]); - this.rules.process() - } - var t = e.prototype; - return t.getRule = function(e) { - return this.rules.get(e) - }, t.addRule = function(e, t, n) { - var a = this.rules.add(e, t, n); - return a && this.options.jss.plugins.onProcessRule(a), a - }, t.indexOf = function(e) { - return this.rules.indexOf(e) - }, t.toString = function() { - return this.rules.toString() - }, e - }(), - Iq = function() { - function e(e, t, n) { - this.type = "global", this.at = Tq, this.options = void 0, this.rule = void 0, this.isProcessed = !1, this.key = void 0, this.key = e, this.options = n; - var a = e.substr(Oq.length); - this.rule = n.jss.createRule(a, t, z({}, n, { - parent: this - })) - } - return e.prototype.toString = function(e) { - return this.rule ? this.rule.toString(e) : "" - }, e - }(), - Nq = /\s*,\s*/g; + function aY() { + const e = {}; + return e.promise = new Promise(((t, n) => { + e.resolve = t, e.reject = n + })), e + } - function zq(e, t) { - for (var n = e.split(Nq), a = "", r = 0; r < n.length; r++) a += t + " " + n[r].trim(), n[r + 1] && (a += ", "); - return a + function rY() { + return new nY + } + const iY = { + updateLargeVideoAudioLevel(e, t) { + const n = document.getElementById(e); + if (!HB.isVisible(n)) return; + let a = parseFloat(t); + a = isNaN(a) ? 0 : a; + let r = n.getElementsByClassName("dynamic-shadow"); + r && r.length > 0 && (r = r[0]), r.style.boxShadow = this._updateLargeVideoShadow(a) + }, + _updateLargeVideoShadow(e) { + const t = { + level: e > .15 ? 20 : 0, + color: interfaceConfig.AUDIO_LEVEL_PRIMARY_COLOR + }, + n = { + level: parseFloat((2 * t.level * e + t.level).toFixed(0)), + color: interfaceConfig.AUDIO_LEVEL_SECONDARY_COLOR + }; + return t.blur = t.level ? 2 : 0, n.blur = n.level ? 6 : 0, [`0 0 ${t.blur}px ${t.level}px ${t.color}`, `0 0 ${n.blur}px ${n.level}px ${n.color}`].join(", ") + } + }, oY = "SET_SCREEN_AUDIO_SHARE_STATE", sY = "SET_SCREENSHARE_CAPTURE_FRAME_RATE", { + browser: lY + } = c.default.util, cY = ["chrome", "electron", "firefox", "nwjs", "safari"], uY = [], dY = { + chrome: lY.isChrome.bind(lY), + chromium: lY.isChromiumBased.bind(lY), + electron: lY.isElectron.bind(lY), + firefox: lY.isFirefox.bind(lY), + nwjs: lY.isNWJS.bind(lY), + opera: lY.isOpera.bind(lY), + safari: lY.isSafari.bind(lY) + }; + + function pY() { + return "ReactNative" !== navigator.product && !(!va() && mY(interfaceConfig.UNSUPPORTED_BROWSERS || uY)) && (va() ? hY() : c.default.isWebRtcSupported()) + } + + function hY() { + return "android" === ya.OS && lY.isSupportedAndroidBrowser() || "ios" === ya.OS && lY.isSupportedIOSBrowser() + } + + function mY(e) { + return Boolean(e.find((e => { + const t = dY[e]; + return !!t && t.call(lY) + }))) + } + + function fY(e) { + return gY(e) && !yY(e) + } + + function gY(e) { + return e["features/screen-share"].isSharingAudio + } + + function bY() { + return !va() && dt.isChrome() || dt.isElectron() && "windows" === ya.OS + } + + function yY(e) { + var t; + const n = nh(e["features/base/tracks"]); + return (null == n || null === (t = n.jitsiTrack) || void 0 === t ? void 0 : t.getVideoType()) === Yi + } + + function vY(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const kY = Ei(Ne((function(e) { + return { + _isAudioOnlySharing: fY(e) + } + }))(class extends bC { + constructor() { + super(...arguments), vY(this, "accessibilityLabel", "toolbar.accessibilityLabel.shareaudio"), vY(this, "icon", Vu), vY(this, "label", "toolbar.shareaudio"), vY(this, "tooltip", "toolbar.shareaudio"), vY(this, "toggledIcon", id), vY(this, "toggledLabel", "toolbar.stopAudioSharing") + } + _handleClick() { + const { + dispatch: e, + handleClick: t + } = this.props; + t ? t() : (e(CY()), e(AI(!1))) + } + _isToggled() { + return this.props._isAudioOnlySharing + } + })); class _Y extends x.Component { + constructor(e) { + super(e), this._onContinue = this._onContinue.bind(this), this._onSelectHideShareAudioHelper = this._onSelectHideShareAudioHelper.bind(this) + } + _onContinue() { + return this.props.dispatch(yh(void 0, !0)), !0 + } + _onSelectHideShareAudioHelper(e) { + let { + target: { + checked: t + } + } = e; + this.props.dispatch(hn({ + hideShareAudioHelper: t + })) + } + render() { + const { + t: e + } = this.props; + return C().createElement(yL, { + hideCancelButton: !1, + okKey: e("dialog.shareAudio"), + onSubmit: this._onContinue, + titleKey: e("dialog.shareAudioTitle"), + width: "medium" + }, C().createElement("div", { + className: "share-audio-dialog" + }, C().createElement("img", { + className: "share-audio-animation", + src: "images/share-audio.gif" + }), C().createElement(vV, { + isChecked: this.props._shouldHideShareAudioHelper, + label: e("dialog.hideShareAudioHelper"), + name: "hide-share-audio-helper", + onChange: this._onSelectHideShareAudioHelper + }))) + } + } + const wY = Ei(Ne((function(e) { + return { + _shouldHideShareAudioHelper: oa(e) } - var Rq = /\s*,\s*/g, - Lq = /&/g, - Fq = /\$([\w-]+)/g; - var qq = /[A-Z]/g, - Bq = /^ms-/, - Uq = {}; + }))(_Y)); class SY extends x.Component { + constructor(e) { + super(e), this._onStopSharing = this._onStopSharing.bind(this) + } + _onStopSharing() { + return this.props.dispatch(yh(void 0, !this.props._isAudioScreenShareWarning)), !0 + } + render() { + const { + t: e + } = this.props; + let t, n, a, r, i, o; + return this.props._isAudioScreenShareWarning ? (a = "dialog.shareAudioWarningH1", r = "dialog.shareMediaWarningGenericH2", t = "dialog.shareAudioWarningD1", n = "dialog.shareAudioWarningD2", o = "dialog.shareAudioWarningTitle", i = "toolbar.stopScreenSharing") : (a = "dialog.shareScreenWarningTitle", r = "dialog.shareMediaWarningGenericH2", t = "dialog.shareScreenWarningD1", n = "dialog.shareScreenWarningD2", o = "dialog.shareScreenWarningTitle", i = "toolbar.stopAudioSharing"), C().createElement(yL, { + hideCancelButton: !1, + okKey: e(i), + onSubmit: this._onStopSharing, + titleKey: e(o), + width: "small" + }, C().createElement("div", { + className: "share-screen-warn-dialog" + }, C().createElement("p", { + className: "header" + }, " ", e(a), " "), C().createElement("p", { + className: "description" + }, " ", e(t), " "), C().createElement("div", { + className: "separator-line" + }), C().createElement("p", { + className: "header" + }, " ", e(r), " "), C().createElement("p", { + className: "description" + }, " ", e(n), " "))) + } + } + const EY = Ei(Ne()(SY)); - function Hq(e) { - return "-" + e.toLowerCase() + function xY(e) { + return { + type: oY, + isSharingAudio: e } - const Vq = function(e) { - if (Uq.hasOwnProperty(e)) return Uq[e]; - var t = e.replace(qq, Hq); - return Uq[e] = Bq.test(t) ? "-" + t : t - }; + } - function Wq(e) { - var t = {}; - for (var n in e) t[0 === n.indexOf("--") ? n : Vq(n)] = e[n]; - return e.fallbacks && (Array.isArray(e.fallbacks) ? t.fallbacks = e.fallbacks.map(Wq) : t.fallbacks = Wq(e.fallbacks)), t + function CY() { + return (e, t) => { + const n = t(), + a = fY(n); + yY(n) ? e(VI(EY, { + _isAudioScreenShareWarning: !0 + })) : oa(n) || dt.isElectron() || a ? e(yh(void 0, !0)) : e(VI(wY)) } - var Yq = vq && CSS ? CSS.px : "px", - Gq = vq && CSS ? CSS.ms : "ms", - Kq = vq && CSS ? CSS.percent : "%"; + } - function $q(e) { - var t = /(-[a-z])/g, - n = function(e) { - return e[1].toUpperCase() - }, - a = {}; - for (var r in e) a[r] = e[r], a[r.replace(t, n)] = e[r]; - return a + function AY(e) { + return (t, n) => { + fY(n()) ? t(VI(EY, { + _isAudioScreenShareWarning: !1 + })) : t(yh(e)) } - var Jq = $q({ - "animation-delay": Gq, - "animation-duration": Gq, - "background-position": Yq, - "background-position-x": Yq, - "background-position-y": Yq, - "background-size": Yq, - border: Yq, - "border-bottom": Yq, - "border-bottom-left-radius": Yq, - "border-bottom-right-radius": Yq, - "border-bottom-width": Yq, - "border-left": Yq, - "border-left-width": Yq, - "border-radius": Yq, - "border-right": Yq, - "border-right-width": Yq, - "border-top": Yq, - "border-top-left-radius": Yq, - "border-top-right-radius": Yq, - "border-top-width": Yq, - "border-width": Yq, - "border-block": Yq, - "border-block-end": Yq, - "border-block-end-width": Yq, - "border-block-start": Yq, - "border-block-start-width": Yq, - "border-block-width": Yq, - "border-inline": Yq, - "border-inline-end": Yq, - "border-inline-end-width": Yq, - "border-inline-start": Yq, - "border-inline-start-width": Yq, - "border-inline-width": Yq, - "border-start-start-radius": Yq, - "border-start-end-radius": Yq, - "border-end-start-radius": Yq, - "border-end-end-radius": Yq, - margin: Yq, - "margin-bottom": Yq, - "margin-left": Yq, - "margin-right": Yq, - "margin-top": Yq, - "margin-block": Yq, - "margin-block-end": Yq, - "margin-block-start": Yq, - "margin-inline": Yq, - "margin-inline-end": Yq, - "margin-inline-start": Yq, - padding: Yq, - "padding-bottom": Yq, - "padding-left": Yq, - "padding-right": Yq, - "padding-top": Yq, - "padding-block": Yq, - "padding-block-end": Yq, - "padding-block-start": Yq, - "padding-inline": Yq, - "padding-inline-end": Yq, - "padding-inline-start": Yq, - "mask-position-x": Yq, - "mask-position-y": Yq, - "mask-size": Yq, - height: Yq, - width: Yq, - "min-height": Yq, - "max-height": Yq, - "min-width": Yq, - "max-width": Yq, - bottom: Yq, - left: Yq, - top: Yq, - right: Yq, - inset: Yq, - "inset-block": Yq, - "inset-block-end": Yq, - "inset-block-start": Yq, - "inset-inline": Yq, - "inset-inline-end": Yq, - "inset-inline-start": Yq, - "box-shadow": Yq, - "text-shadow": Yq, - "column-gap": Yq, - "column-rule": Yq, - "column-rule-width": Yq, - "column-width": Yq, - "font-size": Yq, - "font-size-delta": Yq, - "letter-spacing": Yq, - "text-decoration-thickness": Yq, - "text-indent": Yq, - "text-stroke": Yq, - "text-stroke-width": Yq, - "word-spacing": Yq, - motion: Yq, - "motion-offset": Yq, - outline: Yq, - "outline-offset": Yq, - "outline-width": Yq, - perspective: Yq, - "perspective-origin-x": Kq, - "perspective-origin-y": Kq, - "transform-origin": Kq, - "transform-origin-x": Kq, - "transform-origin-y": Kq, - "transform-origin-z": Kq, - "transition-delay": Gq, - "transition-duration": Gq, - "vertical-align": Yq, - "flex-basis": Yq, - "shape-margin": Yq, - size: Yq, - gap: Yq, - grid: Yq, - "grid-gap": Yq, - "row-gap": Yq, - "grid-row-gap": Yq, - "grid-column-gap": Yq, - "grid-template-rows": Yq, - "grid-template-columns": Yq, - "grid-auto-rows": Yq, - "grid-auto-columns": Yq, - "box-shadow-x": Yq, - "box-shadow-y": Yq, - "box-shadow-blur": Yq, - "box-shadow-spread": Yq, - "font-line-height": Yq, - "text-shadow-x": Yq, - "text-shadow-y": Yq, - "text-shadow-blur": Yq - }); + } + const TY = "SET_AUDIO_SETTINGS_VISIBILITY", DY = "SET_VIDEO_SETTINGS_VISIBILITY", PY = Ei(Ne()((function(e) { + const { + onLogout: t, + t: n + } = e; + return C().createElement(yL, { + hideCancelButton: !1, + okKey: n("dialog.Yes"), + onSubmit: t, + titleKey: n("dialog.logoutTitle"), + width: "small" + }, C().createElement("div", null, n("dialog.logoutQuestion"))) + }))), jY = { + CALENDAR: "calendar_tab", + DEVICES: "devices_tab", + MORE: "more_tab", + MODERATOR: "moderator-tab", + PROFILE: "profile_tab", + SOUNDS: "sounds_tab" + }, MY = [5, 15, 30]; + + function IY(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const OY = Ei(Ne()(class extends bC { + constructor() { + super(...arguments), IY(this, "accessibilityLabel", "toolbar.accessibilityLabel.Settings"), IY(this, "icon", Bu), IY(this, "label", "toolbar.Settings"), IY(this, "tooltip", "toolbar.Settings") + } + _handleClick() { + const { + defaultTab: e = jY.DEVICES, + dispatch: t, + handleClick: n + } = this.props; + n ? n() : (Da(ln("settings")), t(DX(e))) + } + })), NY = "SIP_GW_AVAILABILITY_CHANGED", RY = "SIP_GW_INVITE_ROOMS"; - function Zq(e, t, n) { - if (null == t) return t; - if (Array.isArray(t)) - for (var a = 0; a < t.length; a++) t[a] = Zq(e, t[a], n); - else if ("object" == typeof t) - if ("fallbacks" === e) - for (var r in t) t[r] = Zq(r, t[r], n); - else - for (var i in t) t[i] = Zq(e + "-" + i, t[i], n); - else if ("number" == typeof t && !1 === isNaN(t)) { - var o = n[e] || Jq[e]; - return !o || 0 === t && o === Yq ? t.toString() : "function" == typeof o ? o(t).toString() : "" + t + o - } - return t + function zY(e, t) { + return { + type: RY, + conference: e, + rooms: t } + } + const LY = "ADD_PENDING_INVITE_REQUEST", FY = "BEGIN_ADD_PEOPLE", qY = "REMOVE_PENDING_INVITE_REQUESTS", BY = "SET_CALLEE_INFO_VISIBLE", UY = "HIDE_ADD_PEOPLE_DIALOG", HY = "UPDATE_DIAL_IN_NUMBERS_FAILED", VY = "UPDATE_DIAL_IN_NUMBERS_SUCCESS"; - function Qq(e, t) { - (null == t || t > e.length) && (t = e.length); - for (var n = 0, a = new Array(t); n < t; n++) a[n] = e[n]; - return a + function WY() { + return { + type: FY } - var Xq = "", - eB = "", - tB = "", - nB = "", - aB = dF && "ontouchstart" in document.documentElement; - if (dF) { - var rB = { - Moz: "-moz-", - ms: "-ms-", - O: "-o-", - Webkit: "-webkit-" - }, - iB = document.createElement("p").style; - for (var oB in rB) - if (oB + "Transform" in iB) { - Xq = oB, eB = rB[oB]; - break - } - "Webkit" === Xq && "msHyphens" in iB && (Xq = "ms", eB = rB.ms, nB = "edge"), "Webkit" === Xq && "-apple-trailing-word" in iB && (tB = "apple") + } + + function YY(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return (n, a) => { + const r = a(), + i = Yh(r), + { + calleeInfoVisible: o + } = r["features/invite"]; + t && !o && 1 === e.length && e[0].type === DU.USER && 1 === i && n(KY(!0, e[0])); + const { + conference: s, + password: l + } = r["features/base/conference"]; + if (void 0 === s) return new Promise((t => { + n($Y({ + invitees: e, + callback: e => t(e) + })) + })); + let c = [], + u = [...e]; + const { + callFlowsEnabled: d, + inviteServiceUrl: p, + inviteServiceCallFlowsUrl: h + } = r["features/base/config"], m = zF(r), { + sipInviteUrl: f + } = r["features/base/config"], { + locationURL: g + } = r["features/base/connection"], { + jwt: b + } = r["features/base/jwt"], { + name: y + } = Uh(r), v = u.filter((e => { + let { + type: t + } = e; + return t === DU.PHONE + })), k = v.map((e => { + const t = e.number; + return s.dial(t).then((() => { + u = u.filter((t => t !== e)) + })).catch((e => PU.error("Error inviting phone number:", e))) + })); + c = c.concat(k); + const _ = u.filter((e => { + let { + type: t + } = e; + return [DU.USER, DU.ROOM].includes(t) + })); + if (_.length) { + const e = zU(d ? h : p, m, b, _).then((() => { + u = u.filter((e => { + let { + type: t + } = e; + return ![DU.USER, DU.ROOM].includes(t) + })) + })).catch((e => { + n(KY(!1)), PU.error("Error inviting people:", e) + })); + c.push(e) + } + const w = u.filter((e => { + let { + type: t + } = e; + return t === DU.VIDEO_ROOM + })); + s && w.length > 0 && n(zY(s, w)), u = u.filter((e => { + let { + type: t + } = e; + return t !== DU.VIDEO_ROOM + })); + const S = u.filter((e => { + let { + type: t + } = e; + return t === DU.SIP + })); + return s && JU(S, g, f, b, s.options.name, l, y), u = u.filter((e => { + let { + type: t + } = e; + return t !== DU.SIP + })), Promise.all(c).then((() => u)) } - var sB = Xq, - lB = eB, - cB = tB, - uB = nB, - dB = aB, - pB = { - noPrefill: ["appearance"], - supportedProperty: function(e) { - return "appearance" === e && ("ms" === sB ? "-webkit-" + e : lB + e) - } - }, - hB = { - noPrefill: ["color-adjust"], - supportedProperty: function(e) { - return "color-adjust" === e && ("Webkit" === sB ? lB + "print-" + e : e) - } - }, - mB = /[-\s]+(.)?/g; + } - function fB(e, t) { - return t ? t.toUpperCase() : "" + function GY() { + return (e, t) => { + const n = t(), + { + dialInConfCodeUrl: a, + dialInNumbersUrl: r, + hosts: i + } = n["features/base/config"], + { + numbersFetched: o + } = n["features/invite"], + s = i && i.muc; + if (o || !a || !r || !s) return; + const { + room: l + } = n["features/base/conference"]; + Promise.all([MU(r, l, s), jU(a, l, s)]).then((t => { + let [n, { + conference: a, + id: r, + message: i, + sipUri: o + }] = t; + if (!a || !r) return Promise.reject(i); + e({ + type: VY, + conferenceID: r, + dialInNumbers: n, + sipUri: o + }) + })).catch((t => { + e({ + type: HY, + error: t + }) + })) } + } - function gB(e) { - return e.replace(mB, fB) + function KY(e, t) { + return { + type: BY, + calleeInfoVisible: e, + initialCalleeInfo: t } + } - function bB(e) { - return gB("-" + e) + function $Y(e) { + return { + type: LY, + request: e } - var yB, vB = { - noPrefill: ["mask"], - supportedProperty: function(e, t) { - if (!/^mask/.test(e)) return !1; - if ("Webkit" === sB) { - var n = "mask-image"; - if (gB(n) in t) return e; - if (sB + bB(n) in t) return lB + e - } - return e - } + } + const JY = "SET_DYNAMIC_BRANDING_DATA", ZY = "SET_DYNAMIC_BRANDING_FAILED", QY = "SET_DYNAMIC_BRANDING_READY"; + + function XY() { + const e = window.location.pathname.split("/"), + t = e.length; + return e.length > 2 ? `${e[t-2]}/${e[t-1]}` : "" + } + + function eG(e) { + return e["features/dynamic-branding"].customizationReady + } + const tG = (0, He.getLogger)("react/features/dynamic-branding/actions.js"); + let nG; + + function aG(e) { + let { + classes: t, + className: n, + displayedText: a, + textToCopy: r, + textOnHover: i, + textOnCopySuccess: o, + id: s + } = e; + const [l, c] = (0, x.useState)(!1), [u, d] = (0, x.useState)(!1); + async function p() { + d(!1), await Ct(r) && (c(!0), setTimeout((() => { + nG && c(!1) + }), 2500)) + } + + function h() { + l || d(!0) + } + + function m() { + d(!1) + } + return (0, x.useEffect)((() => (nG = !0, () => { + nG = !1 + })), []), C().createElement("div", { + "aria-label": i, + className: iV(n, t.copyButton, l ? " clicked" : ""), + id: s, + onBlur: m, + onClick: p, + onFocus: h, + onKeyPress: function(e) { + !p || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), p()) }, - kB = { - noPrefill: ["text-orientation"], - supportedProperty: function(e) { - return "text-orientation" === e && ("apple" !== cB || dB ? e : lB + e) - } + onMouseOut: m, + onMouseOver: h, + role: "button", + tabIndex: 0 + }, l ? C().createElement(C().Fragment, null, C().createElement("div", { + className: iV(t.content, "selected") + }, C().createElement("span", { + role: "alert" + }, o)), C().createElement(lo, { + src: os + })) : C().createElement(C().Fragment, null, C().createElement("div", { + className: `${t.copyButton}-content` + }, u ? i : a), C().createElement(lo, { + src: qs + }))) + } + aG.defaultProps = { + className: "" + }; + const rG = Aw((e => ({ + copyButton: { + ...no(e.typography.bodyLongRegular), + borderRadius: e.shape.borderRadius, + display: "flex", + justifyContent: "space-between", + alignItems: "center", + padding: "8px 8px 8px 16px", + marginTop: 5, + width: "calc(100% - 24px)", + height: 24, + background: e.palette.action01, + cursor: "pointer", + "&:hover": { + backgroundColor: e.palette.action01Hover, + fontWeight: 600 }, - _B = { - noPrefill: ["transform"], - supportedProperty: function(e, t, n) { - return "transform" === e && (n.transform ? e : lB + e) - } + "&.clicked": { + background: e.palette.success02 }, - wB = { - noPrefill: ["transition"], - supportedProperty: function(e, t, n) { - return "transition" === e && (n.transition ? e : lB + e) - } + "& > div > svg > path": { + fill: e.palette.text01 + } + }, + content: { + overflow: "hidden", + textOverflow: "ellipsis", + whiteSpace: "nowrap", + maxWidth: 292, + marginRight: 16, + "&.selected": { + fontWeight: 600 + } + } + })))(aG), iG = Ei(xe((e => ({ + url: zF(e) + })))((function(e) { + let { + t, + url: n + } = e; + const a = () => ``; + return C().createElement(yL, { + hideCancelButton: !0, + submitDisabled: !0, + titleKey: "embedMeeting.title", + width: "small" + }, C().createElement("div", { + className: "embed-meeting-dialog" + }, C().createElement("textarea", { + "aria-label": t("dialog.embedMeeting"), + className: "embed-meeting-code", + readOnly: !0, + value: a() + }), C().createElement(rG, { + "aria-label": t("addPeople.copyLink"), + className: "embed-meeting-copy", + displayedText: t("dialog.copy"), + textOnCopySuccess: t("dialog.copied"), + textOnHover: t("dialog.copy"), + textToCopy: a() + }))) + }))), oG = Ei(xe(null, { + openEmbedDialog: VI + })((function(e) { + let { + t, + openEmbedDialog: n + } = e; + + function a() { + n(iG) + } + return C().createElement("div", { + "aria-label": t("embedMeeting.title"), + className: "embed-meeting-trigger", + onClick: a, + onKeyPress: function(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), a()) }, - SB = { - noPrefill: ["writing-mode"], - supportedProperty: function(e) { - return "writing-mode" === e && ("Webkit" === sB || "ms" === sB && "edge" !== uB ? lB + e : e) - } - }, - EB = { - noPrefill: ["user-select"], - supportedProperty: function(e) { - return "user-select" === e && ("Moz" === sB || "ms" === sB || "apple" === cB ? lB + e : e) - } - }, - xB = { - supportedProperty: function(e, t) { - return !!/^break-/.test(e) && ("Webkit" === sB ? "WebkitColumn" + bB(e) in t && lB + "column-" + e : "Moz" === sB && "page" + bB(e) in t && "page-" + e) - } - }, - CB = { - supportedProperty: function(e, t) { - if (!/^(border|margin|padding)-inline/.test(e)) return !1; - if ("Moz" === sB) return e; - var n = e.replace("-inline", ""); - return sB + bB(n) in t && lB + n - } - }, - AB = { - supportedProperty: function(e, t) { - return gB(e) in t && e - } - }, - jB = { - supportedProperty: function(e, t) { - var n = bB(e); - return "-" === e[0] || "-" === e[0] && "-" === e[1] ? e : sB + n in t ? lB + e : "Webkit" !== sB && "Webkit" + n in t && "-webkit-" + e - } - }, - PB = { - supportedProperty: function(e) { - return "scroll-snap" === e.substring(0, 11) && ("ms" === sB ? "" + lB + e : e) - } - }, - DB = { - supportedProperty: function(e) { - return "overscroll-behavior" === e && ("ms" === sB ? lB + "scroll-chaining" : e) - } - }, - TB = { - "flex-grow": "flex-positive", - "flex-shrink": "flex-negative", - "flex-basis": "flex-preferred-size", - "justify-content": "flex-pack", - order: "flex-order", - "align-items": "flex-align", - "align-content": "flex-line-pack" - }, - OB = { - supportedProperty: function(e, t) { - var n = TB[e]; - return !!n && sB + bB(n) in t && lB + n - } - }, - MB = { - flex: "box-flex", - "flex-grow": "box-flex", - "flex-direction": ["box-orient", "box-direction"], - order: "box-ordinal-group", - "align-items": "box-align", - "flex-flow": ["box-orient", "box-direction"], - "justify-content": "box-pack" - }, - IB = Object.keys(MB), - NB = function(e) { - return lB + e - }, - zB = { - supportedProperty: function(e, t, n) { - var a = n.multiple; - if (IB.indexOf(e) > -1) { - var r = MB[e]; - if (!Array.isArray(r)) return sB + bB(r) in t && lB + r; - if (!a) return !1; - for (var i = 0; i < r.length; i++) - if (!(sB + bB(r[0]) in t)) return !1; - return r.map(NB) - } - return !1 - } - }, - RB = [pB, hB, vB, kB, _B, wB, SB, EB, xB, CB, AB, jB, PB, DB, OB, zB], - LB = RB.filter((function(e) { - return e.supportedProperty - })).map((function(e) { - return e.supportedProperty - })), - FB = RB.filter((function(e) { - return e.noPrefill - })).reduce((function(e, t) { - return e.push.apply(e, function(e) { - return function(e) { - if (Array.isArray(e)) return Qq(e) - }(e) || function(e) { - if ("undefined" != typeof Symbol && null != e[Symbol.iterator] || null != e["@@iterator"]) return Array.from(e) - }(e) || function(e, t) { - if (e) { - if ("string" == typeof e) return Qq(e, t); - var n = Object.prototype.toString.call(e).slice(8, -1); - return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Qq(e, t) : void 0 - } - }(e) || function() { - throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") - }() - }(t.noPrefill)), e - }), []), - qB = {}; - if (dF) { - yB = document.createElement("p"); - var BB = window.getComputedStyle(document.documentElement, ""); - for (var UB in BB) isNaN(UB) || (qB[BB[UB]] = BB[UB]); - FB.forEach((function(e) { - return delete qB[e] + role: "button", + tabIndex: 0 + }, t("embedMeeting.title")) + }))), sG = "white", lG = "green"; class cG extends x.Component {} + const uG = rL((e => ({ + label: { + ...no(e.typography.labelRegular), + alignItems: "center", + background: e.palette.ui04, + borderRadius: e.shape.borderRadius / 2, + color: e.palette.text01, + display: "flex", + height: 28, + margin: "0 0 4px 4px", + padding: "0 8px" + }, + withIcon: { + marginLeft: 8 + }, + clickable: { + cursor: "pointer" + }, + [sG]: { + background: e.palette.text01, + color: e.palette.ui04, + "& svg": { + fill: e.palette.ui04 + } + }, + [lG]: { + background: e.palette.success02 + }, + red: { + background: e.palette.actionDanger + } + })))(class extends cG { + render() { + const { + classes: e, + className: t, + color: n, + icon: a, + id: r, + onClick: i, + text: o + } = this.props, s = iV(e.label, i && e.clickable, n && e[n], t); + return C().createElement("div", { + className: s, + id: r, + onClick: i + }, a && C().createElement(lo, { + size: "16", + src: a + }), o && C().createElement("span", { + className: a && e.withIcon + }, o)) + } + }); class dG extends x.Component { + static getDerivedStateFromProps(e, t) { + return { + staleLabel: (e._status === kt.status.OFF || !t.staleLabel) && t.staleLabel + } + } + constructor(e) { + super(e), this.state = { + staleLabel: !1 + }, this._updateStaleStatus({}, e) + } + componentDidUpdate(e) { + this._updateStaleStatus(e, this.props) + } + render() { + return !this.props._status || this.state.staleLabel || this.props._iAmRecorder ? null : this._renderLabel() + } + _getLabelKey() { + switch (this.props.mode) { + case kt.mode.STREAM: + return "recording.live"; + case kt.mode.FILE: + return "recording.rec"; + default: + return + } + } + _updateStaleStatus(e, t) { + t._status === kt.status.OFF && e._status !== kt.status.OFF && setTimeout((() => { + this.props._status === kt.status.OFF && this.setState({ + staleLabel: !0 + }) + }), 1e4) + } + } + const pG = rL((e => ({ + [kt.mode.STREAM]: { + background: e.palette.ui03 + }, + [kt.mode.FILE]: { + background: e.palette.iconError + } + })))(Ei(Ne((function(e, t) { + const { + mode: n + } = t; + return { + _iAmRecorder: e["features/base/config"].iAmRecorder, + _status: wU(e, n) + } + }))(class extends dG { + _renderLabel() { + if (this.props._status !== kt.status.ON) return null; + const { + classes: e, + mode: t, + t: n + } = this.props; + return C().createElement("div", null, C().createElement(uG, { + className: e && e[t], + text: n(this._getLabelKey()) })) } + }))), hG = Ei(Ne((function(e) { + const { + recordingLimit: t = {} + } = e["features/base/config"], { + limit: n, + appName: a, + appURL: r + } = t; + return { + _limit: n, + _appName: a, + _appURL: r + } + }))((function(e) { + const { + _limit: t, + _appName: n, + _appURL: a, + isLiveStreaming: r, + t: i + } = e; + return C().createElement("span", null, xi(i, (r ? "liveStreaming" : "recording") + ".limitNotificationDescriptionWeb", { + limit: t, + app: n, + url: a + })) + }))); - function HB(e, t) { - if (void 0 === t && (t = {}), !yB) return e; - if (null != qB[e]) return qB[e]; - "transition" !== e && "transform" !== e || (t[e] = e in yB.style); - for (var n = 0; n < LB.length && (qB[e] = LB[n](e, yB.style, t), !qB[e]); n++); - try { - yB.style[e] = "" - } catch (e) { - return !1 + function mG(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const fG = Ei(Ne((function(e, t) { + const n = function(e, t) { + let n, { + visible: a + } = t, + r = ""; + if (void 0 === a) { + const t = tm(e), + { + enableFeaturesBasedOnToken: i, + liveStreamingEnabled: o + } = e["features/base/config"], + { + features: s = {} + } = Uh(e); + a = t && o, i && (a = a && "true" === String(s.livestreaming), n = "disabled" === String(s.livestreaming), a || n || (n = !0, a = !0, r = "dialog.liveStreamingDisabledTooltip")) + } + return kU(e, kt.mode.FILE) && (n = !0, r = "dialog.liveStreamingDisabledBecauseOfActiveRecordingTooltip"), wm(e) && (n = !0, a = !1), { + _disabled: n, + _isLiveStreamRunning: Boolean(kU(e, kt.mode.STREAM)), + _tooltip: r, + visible: a + } + }(e, t), + a = $n(e); + let { + visible: r + } = t; + return void 0 === r && (r = a.includes("livestreaming") && n.visible), { + ...n, + visible: r + } + }))(class extends bC { + constructor() { + super(...arguments), mG(this, "accessibilityLabel", "dialog.accessibilityLabel.liveStreaming"), mG(this, "icon", Ul), mG(this, "label", "dialog.startLiveStreaming"), mG(this, "toggledLabel", "dialog.stopLiveStreaming") + } + _getTooltip() { + return this.props._tooltip || "" + } + async _handleClick() { + const { + _isLiveStreamRunning: e, + dispatch: t, + handleClick: n + } = this.props; + n ? n() : await t(XL(iM)) || t(VI(e ? wK : kK)) + } + _isDisabled() { + return this.props._disabled + } + _isToggled() { + return this.props._isLiveStreamRunning + } + })); class gG extends x.Component { + constructor(e) { + super(e), this.state = { + broadcasts: void 0, + errorType: void 0, + selectedBoundStreamID: void 0, + streamKey: "" + }, this._isMounted = !1, this._onCancel = this._onCancel.bind(this), this._onStreamKeyChange = this._onStreamKeyChange.bind(this), this._onSubmit = this._onSubmit.bind(this) + } + componentDidMount() { + this._isMounted = !0 + } + componentWillUnmount() { + this._isMounted = !1 + } + _onCancel() { + return Da(Xt("start", "cancel.button")), !0 + } + _onStreamKeyChange(e) { + this._setStateIfMounted({ + streamKey: e, + selectedBoundStreamID: void 0 + }) + } + _onSubmit() { + const { + broadcasts: e, + selectedBoundStreamID: t + } = this.state, n = (this.state.streamKey || this.props._streamKey || "").trim(); + if (!n) return !1; + let a = null; + if (t) { + const n = e && e.find((e => e.boundStreamID === t)); + a = n && n.id } - return qB[e] + return Da(Xt("start", "confirm.button")), this.props._conference.startRecording({ + broadcastId: a, + mode: kt.mode.STREAM, + streamId: n + }), !0 } - var VB, WB = {}, - YB = { - transition: 1, - "transition-property": 1, - "-webkit-transition": 1, - "-webkit-transition-property": 1 - }, - GB = /(^\s*[\w-]+)|, (\s*[\w-]+)(?![^()]*\))/g; - - function KB(e, t, n) { - return "var" === t ? "var" : "all" === t ? "all" : "all" === n ? ", all" : (t ? HB(t) : ", " + HB(n)) || t || n + _setStateIfMounted(e) { + this._isMounted && this.setState(e) } + } - function $B(e, t) { - var n = t; - if (!VB || "content" === e) return t; - if ("string" != typeof n || !isNaN(parseInt(n, 10))) return n; - var a = e + n; - if (null != WB[a]) return WB[a]; + function bG(e) { + return { + _conference: e["features/base/conference"].conference, + _googleAPIState: e["features/google-api"].googleAPIState, + _googleProfileEmail: e["features/google-api"].profileEmail, + _streamKey: e["features/recording"].streamKey + } + } + class yG extends x.Component { + constructor(e) { + super(e), this.state = { + showValidationError: Boolean(this.props.value) && !this._validateStreamKey(this.props.value) + }, this.helpURL = "undefined" != typeof interfaceConfig && interfaceConfig.LIVE_STREAMING_HELP_LINK || "https://jitsi.org/live", this._debouncedUpdateValidationErrorVisibility = Nj()(this._updateValidationErrorVisibility.bind(this), 800, { + leading: !1 + }), this._onInputChange = this._onInputChange.bind(this) + } + componentDidUpdate(e) { + this.props.value !== e.value && this._debouncedUpdateValidationErrorVisibility() + } + componentWillUnmount() { + this._debouncedUpdateValidationErrorVisibility.cancel() + } + _onInputChange(e) { + const t = "object" == typeof e ? e.target.value : e; + this.props.onChange(t) + } + _updateValidationErrorVisibility() { + const e = Boolean(this.props.value) && !this._validateStreamKey(this.props.value); + e !== this.state.showValidationError && this.setState({ + showValidationError: e + }) + } + _validateStreamKey() { + const e = (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "").trim(), + t = /^(?:[a-zA-Z0-9]{4}(?:-(?!$)|$)){4}/.exec(e); + return Boolean(t) + } + } + const vG = Ei(class extends yG { + constructor(e) { + super(e), this._onOpenHelp = this._onOpenHelp.bind(this), this._onOpenHelpKeyPress = this._onOpenHelpKeyPress.bind(this) + } + render() { + const { + t: e, + value: t + } = this.props; + return C().createElement("div", { + className: "stream-key-form" + }, C().createElement(xB, { + autoFocus: !0, + compact: !0, + isSpellCheckEnabled: !1, + label: e("dialog.streamKey"), + name: "streamId", + okDisabled: !t, + onChange: this._onInputChange, + placeholder: e("liveStreaming.enterStreamKey"), + shouldFitContainer: !0, + type: "text", + value: this.props.value + }), C().createElement("div", { + className: "form-footer" + }, C().createElement("div", { + className: "help-container" + }, this.state.showValidationError ? C().createElement("span", { + className: "warning-text" + }, e("liveStreaming.invalidStreamKey")) : null, this.helpURL ? C().createElement("a", { + "aria-label": e("liveStreaming.streamIdHelp"), + className: "helper-link", + onClick: this._onOpenHelp, + onKeyPress: this._onOpenHelpKeyPress, + role: "link", + tabIndex: 0 + }, e("liveStreaming.streamIdHelp")) : null), C().createElement("a", { + className: "helper-link", + href: "https://www.youtube.com/t/terms", + rel: "noopener noreferrer", + target: "_blank" + }, e("liveStreaming.youtubeTerms")), C().createElement("a", { + className: "helper-link", + href: "https://policies.google.com/privacy", + rel: "noopener noreferrer", + target: "_blank" + }, e("liveStreaming.googlePrivacyPolicy")))) + } + _onOpenHelp() { + window.open(this.helpURL, "_blank", "noopener") + } + _onOpenHelpKeyPress(e) { + " " === e.key && (e.preventDefault(), this._onOpenHelp()) + } + }), kG = function(e) { + return e.displayName || e.name || "Component" + }, _G = function(e, t) { + return function(n) { + var a; + if (!e.context[t]) return null; + for (var r = arguments.length, i = new Array(r > 1 ? r - 1 : 0), o = 1; o < r; o++) i[o - 1] = arguments[o]; + return (a = e.context[t])[n].apply(a, i) + } + }; + var wG = function(e) { + return "@atlaskit-private-do-not-use/dropdown-menu:".concat(e) + }, SG = wG("focus-manager"), EG = (wG("selection-cache"), wG("selection-manager"), wG("click-manager")); + var xG = n(4027), CG = n.n(xG); + var AG = function(e) { + return function(t) { + var n = t.theme, + a = $T(n[YT], e); + return (0, $g.css)(["\n background-color: ", ";\n color: ", ";\n fill: ", ";\n text-decoration: none;\n\n &:focus {\n color: ", ";\n }\n "], a.background, a.text, a.background, a.text) + } + }, TG = function(e) { + var t = e.isCompact, + n = e.theme, + a = e.description, + r = t ? "compact" : "default", + i = $T(n[YT], r, "padding"), + o = i.bottom, + s = void 0 === o ? 0 : o, + l = i.left, + c = void 0 === l ? 0 : l, + u = i.right, + d = void 0 === u ? 0 : u, + p = i.top, + h = void 0 === p ? 0 : p, + m = "function" == typeof h ? h() : h, + f = "function" == typeof s ? s() : s; + return m = Math.max(a ? m - 1 : m, 0), f = Math.max(f - 1, 0), (0, $g.css)(["\n padding: ", "px ", "px ", "px ", "px;\n "], m, d, f, c) + }, DG = function(e) { + var t = e.isCompact, + n = e.theme, + a = t ? "compact" : "default", + r = $T(n[YT], a, "height"); + return r ? (0, $g.css)(["\n height: ", "px;\n "], r) : "" + }, PG = function(e) { + var t = e.isCompact, + n = e.theme, + a = t ? "compact" : "default", + r = $T(n[YT], a, "width"); + return r ? "number" == typeof r ? (0, $g.css)(["\n width: ", "px;\n "], r) : (0, $g.css)(["\n width: ", ";\n "], r) : "" + }, jG = function(e) { + var t = e.theme, + n = e.isDisabled, + a = e.isDragging, + r = e.isSelected; + if (a) return (0, $g.css)(["\n ", " box-shadow: 0 4px 8px -2px ", ",\n 0 0 1px ", ";\n "], AG("dragging"), hb.N60A, hb.N60A); + var i = (0, $g.css)(["\n &:focus {\n box-shadow: 0 0 0 2px\n ", " inset;\n text-decoration: none;\n }\n "], $T(t[YT], "outline", "focus")); + return n ? (0, $g.css)(["\n cursor: not-allowed;\n ", " ", ";\n "], AG("disabled"), i) : r ? (0, $g.css)(["\n ", " &:hover {\n ", ";\n }\n\n &:active {\n ", ";\n }\n\n ", ";\n "], AG("selected"), AG("hover"), AG("active"), i) : (0, $g.css)(["\n &:hover {\n ", ";\n }\n\n &:active {\n ", ";\n }\n\n ", ";\n "], AG("hover"), AG("active"), i) + }, MG = function(e) { + var t = e.theme; + return (0, $g.css)(["\n && {\n align-items: center;\n border-radius: ", "px;\n box-sizing: border-box;\n cursor: pointer;\n display: ", ";\n flex: none;\n ", " ", " ", " ", " ", " &:focus {\n /* focus shadow drawn by getInteractiveStyles */\n\n outline: none;\n /* relative position prevents bgcolor of a hovered element from\n obfuscating focus ring of a focused sibling element */\n position: relative;\n }\n }\n"], $T(t[YT], "borderRadius"), (function(e) { + return e.isHidden ? "none" : "flex" + }), AG("default"), TG, jG, DG, PG) + }; $g.default.span.withConfig({ + displayName: "ItemParts__InputWrapper", + componentId: "sc-14xek3m-0" + })(["\n display: flex;\n margin: 0 2px;\n"]); + var IG = $g.default.span.withConfig({ + displayName: "ItemParts__BeforeAfterBase", + componentId: "sc-14xek3m-1" + })(["\n align-items: center;\n display: flex;\n flex-shrink: 0;\n /* Fix windows line-height issue */\n padding-bottom: 1px;\n"]), OG = (0, $g.default)(IG).withConfig({ + displayName: "ItemParts__Before", + componentId: "sc-14xek3m-2" + })(["\n ", ";\n"], (function(e) { + var t = e.isCompact, + n = e.theme, + a = t ? "compact" : "default", + r = $T(n[YT], a, "beforeItemSpacing"); + return (0, $g.css)(["\n margin-right: ", "px;\n "], r) + })), NG = (0, $g.default)(IG).withConfig({ + displayName: "ItemParts__After", + componentId: "sc-14xek3m-3" + })(["\n ", ";\n"], (function(e) { + var t = e.isCompact, + n = e.theme, + a = t ? "compact" : "default", + r = $T(n[YT], a, "afterItemSpacing"); + return (0, $g.css)(["\n margin-left: ", "px;\n "], r) + })), RG = $g.default.span.withConfig({ + displayName: "ItemParts__ContentWrapper", + componentId: "sc-14xek3m-4" + })(["\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin: 0;\n overflow: hidden;\n\n &:first-child {\n margin: 0;\n }\n"]), zG = $g.default.span.withConfig({ + displayName: "ItemParts__Content", + componentId: "sc-14xek3m-5" + })(["\n display: block;\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: ", ";\n line-height: ", ";\n /* Fix windows line-height issue */\n padding-bottom: 1px;\n"], (function(e) { + return e.allowMultiline ? "normal" : "nowrap" + }), 16 / 14), LG = $g.default.span.withConfig({ + displayName: "ItemParts__Description", + componentId: "sc-14xek3m-6" + })(["\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n ", " ", ";\n"], (function(e) { + var t = e.isDisabled, + n = e.theme; + return t ? (0, $g.css)(["\n color: ", ";\n "], $T(n[YT], "secondaryText", "disabled")) : (0, $g.css)(["\n color: ", ";\n\n /* This detects hover on the grandparent. Saves us having to maintain isHovered\n state in the grandparent. */\n *:hover > * > & {\n color: ", ";\n }\n\n *:active > * > & {\n color: ", ";\n }\n "], $T(n[YT], "secondaryText", "default"), (function() { + return $T(n[YT], "secondaryText", "hover") + }), (function() { + return $T(n[YT], "secondaryText", "active") + })) + }), (function(e) { + var t = e.isCompact, + n = t ? 10 : 11, + a = t ? 1.2 : 14 / n; + return (0, $g.css)(["\n font-size: ", "px;\n line-height: ", ";\n /* Fix windows line-height issue */\n padding-bottom: 1px;\n "], n, a) + })); + var FG = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; try { - VB.style[e] = n + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 } catch (e) { - return WB[a] = !1, !1 - } - if (YB[e]) n = n.replace(GB, KB); - else if ("" === VB.style[e] && ("-ms-flex" === (n = lB + n) && (VB.style[e] = "-ms-flexbox"), VB.style[e] = n, "" === VB.style[e])) return WB[a] = !1, !1; - return VB.style[e] = "", WB[a] = n, WB[a] - } - dF && (VB = document.createElement("p")); - var JB, ZB = kq({ - plugins: [{ - onCreateRule: function(e, t, n) { - if ("function" != typeof t) return null; - var a = mF(e, {}, n); - return a[Dq] = t, a - }, - onProcessStyle: function(e, t) { - if (Pq in t || Dq in t) return e; - var n = {}; - for (var a in e) { - var r = e[a]; - "function" == typeof r && (delete e[a], n[a] = r) - } - return t[Pq] = n, e - }, - onUpdate: function(e, t, n, a) { - var r = t, - i = r[Dq]; - i && (r.style = i(e) || {}); - var o = r[Pq]; - if (o) - for (var s in o) r.prop(s, o[s](e), a) - } - }, { - onCreateRule: function(e, t, n) { - if (!e) return null; - if (e === Tq) return new Mq(e, t, n); - if ("@" === e[0] && e.substr(0, Oq.length) === Oq) return new Iq(e, t, n); - var a = n.parent; - return a && ("global" === a.type || a.options.parent && "global" === a.options.parent.type) && (n.scoped = !1), !1 === n.scoped && (n.selector = e), null - }, - onProcessRule: function(e, t) { - "style" === e.type && t && (function(e, t) { - var n = e.options, - a = e.style, - r = a ? a[Tq] : null; - if (r) { - for (var i in r) t.addRule(i, r[i], z({}, n, { - selector: zq(i, e.selector) - })); - delete a[Tq] - } - }(e, t), function(e, t) { - var n = e.options, - a = e.style; - for (var r in a) - if ("@" === r[0] && r.substr(0, Tq.length) === Tq) { - var i = zq(r.substr(Tq.length), e.selector); - t.addRule(i, a[r], z({}, n, { - selector: i - })), delete a[r] - } - }(e, t)) - } - }, function() { - function e(e, t) { - return function(n, a) { - var r = e.getRule(a) || t && t.getRule(a); - return r ? (r = r).selector : a - } - } - - function t(e, t) { - for (var n = t.split(Rq), a = e.split(Rq), r = "", i = 0; i < n.length; i++) - for (var o = n[i], s = 0; s < a.length; s++) { - var l = a[s]; - r && (r += ", "), r += -1 !== l.indexOf("&") ? l.replace(Lq, o) : o + " " + l - } - return r - } + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function n(e, t, n) { - if (n) return z({}, n, { - index: n.index + 1 - }); - var a = e.options.nestingLevel; - a = void 0 === a ? 1 : a + 1; - var r = z({}, e.options, { - nestingLevel: a, - index: t.indexOf(e) + 1 - }); - return delete r.name, r - } - return { - onProcessStyle: function(a, r, i) { - if ("style" !== r.type) return a; - var o, s, l = r, - c = l.options.parent; - for (var u in a) { - var d = -1 !== u.indexOf("&"), - p = "@" === u[0]; - if (d || p) { - if (o = n(l, c, o), d) { - var h = t(u, l.selector); - s || (s = e(c, i)), h = h.replace(Fq, s), c.addRule(h, a[u], z({}, o, { - selector: h - })) - } else p && c.addRule(u, {}, o).addRule(l.key, a[u], { - selector: l.selector - }); - delete a[u] - } - } - return a - } - } - }(), { - onProcessStyle: function(e) { - if (Array.isArray(e)) { - for (var t = 0; t < e.length; t++) e[t] = Wq(e[t]); - return e - } - return Wq(e) - }, - onChangeValue: function(e, t, n) { - if (0 === t.indexOf("--")) return e; - var a = Vq(t); - return t === a ? e : (n.prop(a, e), null) - } - }, function(e) { - void 0 === e && (e = {}); - var t = $q(e); - return { - onProcessStyle: function(e, n) { - if ("style" !== n.type) return e; - for (var a in e) e[a] = Zq(a, e[a], t); - return e - }, - onChangeValue: function(e, n) { - return Zq(n, e, t) - } - } - }(), "undefined" == typeof window ? null : function() { - function e(t) { - for (var n in t) { - var a = t[n]; - if ("fallbacks" === n && Array.isArray(a)) t[n] = a.map(e); - else { - var r = !1, - i = HB(n); - i && i !== n && (r = !0); - var o = !1, - s = $B(i, gF(a)); - s && s !== a && (o = !0), (r || o) && (r && delete t[n], t[i || n] = s || a) - } - } - return t - } - return { - onProcessRule: function(e) { - if ("keyframes" === e.type) { - var t = e; - t.at = function(e) { - return "-" === e[1] || "ms" === sB ? e : "@" + lB + "keyframes" + e.substr(10) - }(t.at) - } + function r(e) { + var t; + return Ya(this, r), $a(w(t = a.call(this, e)), "setRef", (function(e) { + t.ref = e + })), $a(w(t), "href", (function() { + return t.props.isDisabled ? null : t.props.href + })), t.rootComponent = function(e) { + var t = e.href, + n = e.linkComponent; + return n ? (0, $g.default)(n).withConfig({ + displayName: "Item", + componentId: "z6qfkt-0" + })(["\n ", ";\n "], MG) : t ? $g.default.a.withConfig({ + displayName: "Item", + componentId: "z6qfkt-1" + })(["\n ", ";\n "], MG) : $g.default.span.withConfig({ + displayName: "Item", + componentId: "z6qfkt-2" + })(["\n ", ";\n "], MG) + }({ + href: t.href(), + linkComponent: e.linkComponent + }), t + } + return Ka(r, [{ + key: "componentDidMount", + value: function() { + this.ref && this.props.autoFocus && this.ref.focus() + } + }, { + key: "render", + value: function() { + var e = this, + t = this.props, + n = t.onClick, + a = t.onKeyDown, + r = t.isCompact, + i = t.isDisabled, + o = t.isDragging, + s = t.isHidden, + l = t.isSelected, + c = t.onMouseEnter, + u = t.onMouseLeave, + d = t.role, + p = t.dnd, + h = Yg(t, ["onClick", "onKeyDown", "isCompact", "isDisabled", "isDragging", "isHidden", "isSelected", "onMouseEnter", "onMouseLeave", "role", "dnd"]), + m = this.rootComponent, + f = p && p.dragHandleProps || null, + g = { + onClick: function(e) { + e.defaultPrevented || !i && n && n(e) }, - onProcessStyle: function(t, n) { - return "style" !== n.type ? t : e(t) + onMouseDown: function(e) { + f && f.onMouseDown && f.onMouseDown(e), e.preventDefault() }, - onChangeValue: function(e, t) { - return $B(t, gF(e)) || e + onKeyDown: function(e) { + o || (f && f.onKeyDown && f.onKeyDown(e), e.defaultPrevented || i || a && a(e)) } - } - }(), (JB = function(e, t) { - return e.length === t.length ? e > t ? 1 : -1 : e.length - t.length - }, { - onProcessStyle: function(e, t) { - if ("style" !== t.type) return e; - for (var n = {}, a = Object.keys(e).sort(JB), r = 0; r < a.length; r++) n[a[r]] = e[a[r]]; - return n - } - })] - }), - QB = function() { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - t = e.disableGlobal, - n = void 0 !== t && t, - a = e.productionPrefix, - r = void 0 === a ? "jss" : a, - i = e.seed, - o = void 0 === i ? "" : i, - s = "" === o ? "" : "".concat(o, "-"), - l = 0, - c = function() { - return l += 1 }; - return function(e, t) { - var a = t.options.name; - if (a && 0 === a.indexOf("Mui") && !t.options.link && !n) { - if (-1 !== Aq.indexOf(e.key)) return "Mui-".concat(e.key); - var i = "".concat(s).concat(a, "-").concat(e.key); - return t.options.theme[Cq] && "" === o ? "".concat(i, "-").concat(c()) : i - } - return "".concat(s).concat(r).concat(c()) + return C().createElement(m, z({ + "aria-disabled": i, + href: this.href(), + isCompact: r, + isDisabled: i, + isDragging: o, + isHidden: s, + isSelected: l, + onMouseEnter: c, + onMouseLeave: u, + role: d, + tabIndex: i || s || this.props.href ? null : 0, + target: this.props.target, + title: this.props.title, + innerRef: function(t) { + e.setRef(t), p && p.innerRef && p.innerRef(t) + } + }, p && p.draggableProps, f, g, h), !!this.props.elemBefore && C().createElement(OG, { + isCompact: r + }, this.props.elemBefore), C().createElement(RG, null, C().createElement(zG, { + allowMultiline: this.props.shouldAllowMultiline + }, this.props.children), !!this.props.description && C().createElement(LG, { + isCompact: this.props.isCompact, + isDisabled: this.props.isDisabled + }, this.props.description)), !!this.props.elemAfter && C().createElement(NG, { + isCompact: r + }, this.props.elemAfter)) + } + }]), r + }(x.Component); $a(FG, "defaultProps", { + autoFocus: !1, + description: "", + isCompact: !1, + isDisabled: !1, + isHidden: !1, + role: "button", + shouldAllowMultiline: !1 + }); + const qG = function(e) { + var t, n; + return n = t = function(t) { + _r(i, t); + var n, a, r = (n = i, a = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - }(), - XB = { - disableGeneration: !1, - generateClassName: QB, - jss: ZB, - sheetsCache: null, - sheetsManager: new Map, - sheetsRegistry: null - }, - eU = x().createContext(XB), - tU = -1e9; - - function nU() { - return tU += 1 - } + }(), function() { + var e, t = kr(n); + if (a) { + var r = kr(this).constructor; + e = Reflect.construct(t, arguments, r) + } else e = t.apply(this, arguments); + return vr(this, e) + }); - function aU(e) { - return e && "object" === nb(e) && e.constructor === Object - } + function i() { + var e; + Ya(this, i); + for (var t = arguments.length, n = new Array(t), a = 0; a < t; a++) n[a] = arguments[a]; + return $a(w(e = r.call.apply(r, [this].concat(n))), "callContextFn", _G(w(e), EG)), $a(w(e), "shouldCloseAfterClick", (function() { + return !e.props.isDisabled && !e.props.href + })), $a(w(e), "handleClick", (function(t) { + e.props.onClick(t), e.shouldCloseAfterClick() && e.callContextFn("itemClicked") + })), $a(w(e), "handleKeyDown", (function(t) { + e.props.onKeyDown ? e.props.onKeyDown(t) : "Space" !== t.key && "Enter" !== t.key || e.handleClick(t) + })), e + } + return Ka(i, [{ + key: "render", + value: function() { + var t = this.props, + n = t.children, + a = Yg(t, ["children"]); + return C().createElement(e, z({}, a, { + onClick: this.handleClick, + onKeyDown: this.handleKeyDown + }), n) + } + }]), i + }(x.Component), $a(t, "displayName", "WithItemClick(".concat(kG(e), ")")), $a(t, "defaultProps", { + onClick: function() {} + }), $a(t, "contextTypes", $a({}, EG, T().object)), n + }((BG = FG, HG = UG = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function rU(e, t) { - var n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : { - clone: !0 - }, - a = n.clone ? z({}, e) : e; - return aU(e) && aU(t) && Object.keys(t).forEach((function(r) { - "__proto__" !== r && (aU(t[r]) && r in e ? a[r] = rU(e[r], t[r], n) : a[r] = t[r]) - })), a + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "contextId", void 0), $a(w(e), "callContextFn", _G(w(e), SG)), $a(w(e), "isFocusable", (function() { + return !e.props.isDisabled && !e.props.isHidden + })), $a(w(e), "handleFocus", (function() { + e.isFocusable() && e.callContextFn("itemFocused", e.contextId) + })), e } - - function iU(e) { - var t = "function" == typeof e; - return { - create: function(n, a) { - var r; - try { - r = t ? e(n) : e - } catch (e) { - throw e - } - if (!a || !n.overrides || !n.overrides[a]) return r; - var i = n.overrides[a], - o = z({}, r); - return Object.keys(i).forEach((function(e) { - o[e] = rU(o[e], i[e]) - })), o - }, - options: {} + return Ka(r, [{ + key: "componentDidMount", + value: function() { + this.isFocusable() && (this.contextId = CG()(), this.callContextFn("registerItem", this.contextId, Ie().findDOMNode(this))) } - } - const oU = {}; - - function sU(e, t, n) { - var a = e.state; - if (e.stylesOptions.disableGeneration) return t || {}; - a.cacheClasses || (a.cacheClasses = { - value: null, - lastProp: null, - lastJSS: {} - }); - var r = !1; - return a.classes !== a.cacheClasses.lastJSS && (a.cacheClasses.lastJSS = a.classes, r = !0), t !== a.cacheClasses.lastProp && (a.cacheClasses.lastProp = t, r = !0), r && (a.cacheClasses.value = _q({ - baseClasses: a.cacheClasses.lastJSS, - newClasses: t, - Component: n - })), a.cacheClasses.value - } - - function lU(e, t) { - var n = e.state, - a = e.theme, - r = e.stylesOptions, - i = e.stylesCreator, - o = e.name; - if (!r.disableGeneration) { - var s = Sq.get(r.sheetsManager, i, a); - s || (s = { - refs: 0, - staticSheet: null, - dynamicStyles: null - }, Sq.set(r.sheetsManager, i, a, s)); - var l = z({}, i.options, r, { - theme: a, - flip: "boolean" == typeof r.flip ? r.flip : "rtl" === a.direction - }); - l.generateId = l.serverGenerateClassName || l.generateClassName; - var c = r.sheetsRegistry; - if (0 === s.refs) { - var u; - r.sheetsCache && (u = Sq.get(r.sheetsCache, i, a)); - var d = i.create(a, o); - u || ((u = r.jss.createStyleSheet(d, z({ - link: !1 - }, l))).attach(), r.sheetsCache && Sq.set(r.sheetsCache, i, a, u)), c && c.add(u), s.staticSheet = u, s.dynamicStyles = yq(d) - } - if (s.dynamicStyles) { - var p = r.jss.createStyleSheet(s.dynamicStyles, z({ - link: !0 - }, l)); - p.update(t), p.attach(), n.dynamicSheet = p, n.classes = _q({ - baseClasses: s.staticSheet.classes, - newClasses: p.classes - }), c && c.add(p) - } else n.classes = s.staticSheet.classes; - s.refs += 1 - } - } - - function cU(e, t) { - var n = e.state; - n.dynamicSheet && n.dynamicSheet.update(t) - } - - function uU(e) { - var t = e.state, - n = e.theme, - a = e.stylesOptions, - r = e.stylesCreator; - if (!a.disableGeneration) { - var i = Sq.get(a.sheetsManager, r, n); - i.refs -= 1; - var o = a.sheetsRegistry; - 0 === i.refs && (Sq.delete(a.sheetsManager, r, n), a.jss.removeStyleSheet(i.staticSheet), o && o.remove(i.staticSheet)), t.dynamicSheet && (a.jss.removeStyleSheet(t.dynamicSheet), o && o.remove(t.dynamicSheet)) - } - } - - function dU(e, t) { - var n, a = x().useRef([]), - r = x().useMemo((function() { - return {} - }), t); - a.current !== r && (a.current = r, n = e()), x().useEffect((function() { - return function() { - n && n() - } - }), [r]) - } - - function pU(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, - n = t.name, - a = t.classNamePrefix, - r = t.Component, - i = t.defaultTheme, - o = void 0 === i ? oU : i, - s = Fg(t, ["name", "classNamePrefix", "Component", "defaultTheme"]), - l = iU(e), - c = n || a || "makeStyles"; - l.options = { - index: nU(), - name: n, - meta: c, - classNamePrefix: c - }; - var u = function() { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - t = xq() || o, - a = z({}, x().useContext(eU), s), - i = x().useRef(), - c = x().useRef(); - dU((function() { - var r = { - name: n, - state: {}, - stylesCreator: l, - stylesOptions: a, - theme: t - }; - return lU(r, e), c.current = !1, i.current = r, - function() { - uU(r) - } - }), [t, l]), x().useEffect((function() { - c.current && cU(i.current, e), c.current = !0 - })); - var u = sU(i.current, e.classes, r); - return u - }; - return u - } - var hU = ["xs", "sm", "md", "lg", "xl"]; - - function mU(e) { - var t = e.values, - n = void 0 === t ? { - xs: 0, - sm: 600, - md: 960, - lg: 1280, - xl: 1920 - } : t, - a = e.unit, - r = void 0 === a ? "px" : a, - i = e.step, - o = void 0 === i ? 5 : i, - s = Fg(e, ["values", "unit", "step"]); + }, { + key: "componentDidUpdate", + value: function() { + this.isFocusable() && this.callContextFn("updateItem", this.contextId, Ie().findDOMNode(this)) + } + }, { + key: "componentWillUnmount", + value: function() { + this.isFocusable() && this.callContextFn("deregisterItem", this.contextId) + } + }, { + key: "render", + value: function() { + var e = this.props, + t = e.children, + n = Yg(e, ["children"]); + return C().createElement(BG, z({ + onFocus: this.handleFocus, + role: "menuitem" + }, n), t) + } + }]), r + }(x.Component), $a(UG, "displayName", "WithItemFocus(".concat(kG(BG), ")")), $a(UG, "contextTypes", $a({}, SG, T().object)), HG)); + var BG, UG, HG; - function l(e) { - var t = "number" == typeof n[e] ? n[e] : e; - return "@media (min-width:".concat(t).concat(r, ")") - } - - function c(e, t) { - var a = hU.indexOf(t); - return a === hU.length - 1 ? l(e) : "@media (min-width:".concat("number" == typeof n[e] ? n[e] : e).concat(r, ") and ") + "(max-width:".concat((-1 !== a && "number" == typeof n[hU[a + 1]] ? n[hU[a + 1]] : t) - o / 100).concat(r, ")") - } - return z({ - keys: hU, - values: n, - up: l, - down: function(e) { - var t = hU.indexOf(e) + 1, - a = n[hU[t]]; - return t === hU.length ? l("xs") : "@media (max-width:".concat(("number" == typeof a && t > 0 ? a : e) - o / 100).concat(r, ")") - }, - between: c, - only: function(e) { - return c(e, e) - }, - width: function(e) { - return n[e] - } - }, s) - } + function VG() { + var e = sg(["\n ", ";\n"]); + return VG = function() { + return e + }, e + } + const WG = $g.default.div(VG(), (function(e) { + return e.shouldFitContainer ? "" : "max-width: 300px;" + })); + var YG = "ArrowUp", GG = "ArrowDown", KG = " ", $G = "Enter"; + const JG = JSON.parse('{"u2":"@atlaskit/dropdown-menu","i8":"10.1.2"}'); + var ZG = function(e) { + return "@atlaskit-private-do-not-use/dropdown-menu:".concat(e) + }, QG = ZG("focus-manager"), XG = ZG("selection-cache"), eK = (ZG("selection-manager"), ZG("click-manager")); + var tK = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function fU(e, t, n) { - var a; - return z({ - gutters: function() { - var n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; - return z({ - paddingLeft: t(2), - paddingRight: t(2) - }, n, Zf({}, e.up("sm"), z({ - paddingLeft: t(3), - paddingRight: t(3) - }, n[e.up("sm")]))) - }, - toolbar: (a = { - minHeight: 56 - }, Zf(a, "".concat(e.up("xs"), " and (orientation: landscape)"), { - minHeight: 48 - }), Zf(a, e.up("sm"), { - minHeight: 64 - }), a) - }, n) + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "handleItemClicked", (function(t) { + e.props.onItemClicked(t) + })), e } + return Ka(r, [{ + key: "getChildContext", + value: function() { + return $a({}, eK, { + itemClicked: this.handleItemClicked + }) + } + }, { + key: "render", + value: function() { + return this.props.children + } + }]), r + }(x.Component); $a(tK, "childContextTypes", $a({}, eK, T().object)); + var nK = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function gU(e) { - for (var t = "https://material-ui.com/production-error/?code=" + e, n = 1; n < arguments.length; n += 1) t += "&args[]=" + encodeURIComponent(arguments[n]); - return "Minified Material-UI error #" + e + "; visit " + t + " for the full message." - } - const bU = { - black: "#000", - white: "#fff" - }, - yU = { - 50: "#fafafa", - 100: "#f5f5f5", - 200: "#eeeeee", - 300: "#e0e0e0", - 400: "#bdbdbd", - 500: "#9e9e9e", - 600: "#757575", - 700: "#616161", - 800: "#424242", - 900: "#212121", - A100: "#d5d5d5", - A200: "#aaaaaa", - A400: "#303030", - A700: "#616161" - }, - vU = "#7986cb", - kU = "#3f51b5", - _U = "#303f9f", - wU = "#ff4081", - SU = "#f50057", - EU = "#c51162", - xU = "#e57373", - CU = "#f44336", - AU = "#d32f2f", - jU = "#ffb74d", - PU = "#ff9800", - DU = "#f57c00", - TU = "#64b5f6", - OU = "#2196f3", - MU = "#1976d2", - IU = "#81c784", - NU = "#4caf50", - zU = "#388e3c"; - - function RU(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0, - n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1; - return Math.min(Math.max(t, e), n) - } - - function LU(e) { - if (e.type) return e; - if ("#" === e.charAt(0)) return LU(function(e) { - e = e.substr(1); - var t = new RegExp(".{1,".concat(e.length >= 6 ? 2 : 1, "}"), "g"), - n = e.match(t); - return n && 1 === n[0].length && (n = n.map((function(e) { - return e + e - }))), n ? "rgb".concat(4 === n.length ? "a" : "", "(").concat(n.map((function(e, t) { - return t < 3 ? parseInt(e, 16) : Math.round(parseInt(e, 16) / 255 * 1e3) / 1e3 - })).join(", "), ")") : "" - }(e)); - var t = e.indexOf("("), - n = e.substring(0, t); - if (-1 === ["rgb", "rgba", "hsl", "hsla"].indexOf(n)) throw new Error(gU(3, e)); - var a = e.substring(t + 1, e.length - 1).split(","); - return { - type: n, - values: a = a.map((function(e) { - return parseFloat(e) + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "registeredItems", []), $a(w(e), "handleItemRegistered", (function(t, n) { + e.registeredItems.push({ + itemId: t, + itemNode: n + }), e.props.autoFocus && 1 === e.registeredItems.length && (e.focusedItemId = t, n.focus()) + })), $a(w(e), "handleItemDeregistered", (function(t) { + e.registeredItems = e.registeredItems.filter((function(e) { + return e.itemId !== t })) - } + })), $a(w(e), "handleItemFocused", (function(t) { + e.focusedItemId = t + })), $a(w(e), "handleItemUpdated", (function(t, n) { + for (var a = -1, r = 0; r < e.registeredItems.length; r++) + if (e.registeredItems[r].itemId === t) { + a = r; + break + } - 1 !== a ? (e.registeredItems[a].itemNode = n, e.focusedItemIndex() === a && n.focus()) : e.handleItemRegistered(t, n) + })), $a(w(e), "focusedItemIndex", (function() { + for (var t = w(e), n = t.focusedItemId, a = t.registeredItems, r = 0; r < a.length; r++) + if (a[r].itemId === n) return r; + return -1 + })), $a(w(e), "handleKeyboard", (function(t) { + var n = t.key, + a = t.shiftKey, + r = e.focusedItemIndex(); + if (n === YG || n === GG) { + if (t.preventDefault(), r < 0) return; + var i = n === YG ? Math.max(0, r - 1) : Math.min(e.registeredItems.length - 1, r + 1); + e.registeredItems[i].itemNode.focus() + } + "Tab" === n && (a || r !== e.registeredItems.length - 1 || e.props.close && e.props.close({ + event: t, + source: "keydown" + }), a && 0 === r && e.props.close && e.props.close({ + event: t, + source: "keydown" + })) + })), e } + return Ka(r, [{ + key: "getChildContext", + value: function() { + return $a({}, QG, { + itemFocused: this.handleItemFocused, + registerItem: this.handleItemRegistered, + deregisterItem: this.handleItemDeregistered, + updateItem: this.handleItemUpdated + }) + } + }, { + key: "render", + value: function() { + return C().createElement("div", { + onKeyDown: this.handleKeyboard + }, this.props.children) + } + }]), r + }(x.Component); $a(nK, "childContextTypes", $a({}, QG, T().object)); + var aK = n(6952), rK = n.n(aK); + var iK = function(e, t, n) { + return Boolean(rK()(e, (function(e) { + return e.id === t && e.groupId === n + }))) + }, oK = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function FU(e) { - var t = e.type, - n = e.values; - return -1 !== t.indexOf("rgb") ? n = n.map((function(e, t) { - return t < 3 ? parseInt(e, 10) : e - })) : -1 !== t.indexOf("hsl") && (n[1] = "".concat(n[1], "%"), n[2] = "".concat(n[2], "%")), "".concat(t, "(").concat(n.join(", "), ")") + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { + lastCacheUpdate: 0 + }), $a(w(e), "selectedItems", []), $a(w(e), "alreadyDefaultedItems", []), $a(w(e), "handleItemSelectionsChanged", (function(t, n) { + var a = [].concat(wr(e.selectedItems.filter((function(e) { + return e.groupId !== t + }))), wr(n)); + e.selectedItems = a, e.setState({ + lastCacheUpdate: Date.now() + }) + })), e } - - function qU(e) { - var t = "hsl" === (e = LU(e)).type ? LU(function(e) { - var t = (e = LU(e)).values, - n = t[0], - a = t[1] / 100, - r = t[2] / 100, - i = a * Math.min(r, 1 - r), - o = function(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : (e + n / 30) % 12; - return r - i * Math.max(Math.min(t - 3, 9 - t, 1), -1) + return Ka(r, [{ + key: "getChildContext", + value: function() { + var e = this; + return $a({}, XG, { + isItemSelected: function(t, n) { + return iK(e.selectedItems, n, t) + }, + itemsInGroup: function(t) { + return e.selectedItems.filter((function(e) { + return e.groupId === t + })) + }, + itemSelectionsChanged: this.handleItemSelectionsChanged, + hasItemAlreadyHadDefaultSelectedApplied: function(t, n) { + return iK(e.alreadyDefaultedItems, n, t) }, - s = "rgb", - l = [Math.round(255 * o(0)), Math.round(255 * o(8)), Math.round(255 * o(4))]; - return "hsla" === e.type && (s += "a", l.push(t[3])), FU({ - type: s, - values: l + markItemAsDefaultApplied: function(t, n) { + e.alreadyDefaultedItems.push({ + id: n, + groupId: t + }) + } }) - }(e)).values : e.values; - return t = t.map((function(e) { - return (e /= 255) <= .03928 ? e / 12.92 : Math.pow((e + .055) / 1.055, 2.4) - })), Number((.2126 * t[0] + .7152 * t[1] + .0722 * t[2]).toFixed(3)) - } - var BU = { - text: { - primary: "rgba(0, 0, 0, 0.87)", - secondary: "rgba(0, 0, 0, 0.54)", - disabled: "rgba(0, 0, 0, 0.38)", - hint: "rgba(0, 0, 0, 0.38)" - }, - divider: "rgba(0, 0, 0, 0.12)", - background: { - paper: bU.white, - default: yU[50] - }, - action: { - active: "rgba(0, 0, 0, 0.54)", - hover: "rgba(0, 0, 0, 0.04)", - hoverOpacity: .04, - selected: "rgba(0, 0, 0, 0.08)", - selectedOpacity: .08, - disabled: "rgba(0, 0, 0, 0.26)", - disabledBackground: "rgba(0, 0, 0, 0.12)", - disabledOpacity: .38, - focus: "rgba(0, 0, 0, 0.12)", - focusOpacity: .12, - activatedOpacity: .12 - } - }, - UU = { - text: { - primary: bU.white, - secondary: "rgba(255, 255, 255, 0.7)", - disabled: "rgba(255, 255, 255, 0.5)", - hint: "rgba(255, 255, 255, 0.5)", - icon: "rgba(255, 255, 255, 0.5)" - }, - divider: "rgba(255, 255, 255, 0.12)", - background: { - paper: yU[800], - default: "#303030" - }, - action: { - active: bU.white, - hover: "rgba(255, 255, 255, 0.08)", - hoverOpacity: .08, - selected: "rgba(255, 255, 255, 0.16)", - selectedOpacity: .16, - disabled: "rgba(255, 255, 255, 0.3)", - disabledBackground: "rgba(255, 255, 255, 0.12)", - disabledOpacity: .38, - focus: "rgba(255, 255, 255, 0.12)", - focusOpacity: .12, - activatedOpacity: .24 - } - }; - - function HU(e, t, n, a) { - var r = a.light || a, - i = a.dark || 1.5 * a; - e[t] || (e.hasOwnProperty(n) ? e[t] = e[n] : "light" === t ? e.light = function(e, t) { - if (e = LU(e), t = RU(t), -1 !== e.type.indexOf("hsl")) e.values[2] += (100 - e.values[2]) * t; - else if (-1 !== e.type.indexOf("rgb")) - for (var n = 0; n < 3; n += 1) e.values[n] += (255 - e.values[n]) * t; - return FU(e) - }(e.main, r) : "dark" === t && (e.dark = function(e, t) { - if (e = LU(e), t = RU(t), -1 !== e.type.indexOf("hsl")) e.values[2] *= 1 - t; - else if (-1 !== e.type.indexOf("rgb")) - for (var n = 0; n < 3; n += 1) e.values[n] *= 1 - t; - return FU(e) - }(e.main, i))) - } - - function VU(e) { - var t = e.primary, - n = void 0 === t ? { - light: vU, - main: kU, - dark: _U - } : t, - a = e.secondary, - r = void 0 === a ? { - light: wU, - main: SU, - dark: EU - } : a, - i = e.error, - o = void 0 === i ? { - light: xU, - main: CU, - dark: AU - } : i, - s = e.warning, - l = void 0 === s ? { - light: jU, - main: PU, - dark: DU - } : s, - c = e.info, - u = void 0 === c ? { - light: TU, - main: OU, - dark: MU - } : c, - d = e.success, - p = void 0 === d ? { - light: IU, - main: NU, - dark: zU - } : d, - h = e.type, - m = void 0 === h ? "light" : h, - f = e.contrastThreshold, - g = void 0 === f ? 3 : f, - b = e.tonalOffset, - y = void 0 === b ? .2 : b, - v = Fg(e, ["primary", "secondary", "error", "warning", "info", "success", "type", "contrastThreshold", "tonalOffset"]); - - function k(e) { - var t = function(e, t) { - var n = qU(e), - a = qU(t); - return (Math.max(n, a) + .05) / (Math.min(n, a) + .05) - }(e, UU.text.primary) >= g ? UU.text.primary : BU.text.primary; - return t } - var _ = function(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 500, - n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 300, - a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 700; - if (!(e = z({}, e)).main && e[t] && (e.main = e[t]), !e.main) throw new Error(gU(4, t)); - if ("string" != typeof e.main) throw new Error(gU(5, JSON.stringify(e.main))); - return HU(e, "light", n, y), HU(e, "dark", a, y), e.contrastText || (e.contrastText = k(e.main)), e - }, - w = { - dark: UU, - light: BU - }; - return rU(z({ - common: bU, - type: m, - primary: _(n), - secondary: _(r, "A400", "A200", "A700"), - error: _(o), - warning: _(l), - info: _(u), - success: _(p), - grey: yU, - contrastThreshold: g, - getContrastText: k, - augmentColor: _, - tonalOffset: y - }, w[m]), v) - } - - function WU(e) { - return Math.round(1e5 * e) / 1e5 - } - var YU = { - textTransform: "uppercase" - }, - GU = '"Roboto", "Helvetica", "Arial", sans-serif'; - - function KU(e, t) { - var n = "function" == typeof t ? t(e) : t, - a = n.fontFamily, - r = void 0 === a ? GU : a, - i = n.fontSize, - o = void 0 === i ? 14 : i, - s = n.fontWeightLight, - l = void 0 === s ? 300 : s, - c = n.fontWeightRegular, - u = void 0 === c ? 400 : c, - d = n.fontWeightMedium, - p = void 0 === d ? 500 : d, - h = n.fontWeightBold, - m = void 0 === h ? 700 : h, - f = n.htmlFontSize, - g = void 0 === f ? 16 : f, - b = n.allVariants, - y = n.pxToRem, - v = Fg(n, ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"]), - k = o / 14, - _ = y || function(e) { - return "".concat(e / g * k, "rem") - }, - w = function(e, t, n, a, i) { - return z({ - fontFamily: r, - fontWeight: e, - fontSize: _(t), - lineHeight: n - }, r === GU ? { - letterSpacing: "".concat(WU(a / t), "em") - } : {}, i, b) - }, - S = { - h1: w(l, 96, 1.167, -1.5), - h2: w(l, 60, 1.2, -.5), - h3: w(u, 48, 1.167, 0), - h4: w(u, 34, 1.235, .25), - h5: w(u, 24, 1.334, 0), - h6: w(p, 20, 1.6, .15), - subtitle1: w(u, 16, 1.75, .15), - subtitle2: w(p, 14, 1.57, .1), - body1: w(u, 16, 1.5, .15), - body2: w(u, 14, 1.43, .15), - button: w(p, 14, 1.75, .4, YU), - caption: w(u, 12, 1.66, .4), - overline: w(u, 12, 2.66, 1, YU) - }; - return rU(z({ - htmlFontSize: g, - pxToRem: _, - round: WU, - fontFamily: r, - fontSize: o, - fontWeightLight: l, - fontWeightRegular: u, - fontWeightMedium: p, - fontWeightBold: m - }, S), v, { - clone: !1 - }) - } + }, { + key: "render", + value: function() { + return C().createElement("div", null, this.props.children) + } + }]), r + }(x.Component); $a(oK, "childContextTypes", $a({}, XG, T().shape({ + isItemSelected: T().func, + itemsInGroup: T().func, + itemSelectionsChanged: T().func + }))); + var sK = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function $U() { - return ["".concat(arguments.length <= 0 ? void 0 : arguments[0], "px ").concat(arguments.length <= 1 ? void 0 : arguments[1], "px ").concat(arguments.length <= 2 ? void 0 : arguments[2], "px ").concat(arguments.length <= 3 ? void 0 : arguments[3], "px rgba(0,0,0,").concat(.2, ")"), "".concat(arguments.length <= 4 ? void 0 : arguments[4], "px ").concat(arguments.length <= 5 ? void 0 : arguments[5], "px ").concat(arguments.length <= 6 ? void 0 : arguments[6], "px ").concat(arguments.length <= 7 ? void 0 : arguments[7], "px rgba(0,0,0,").concat(.14, ")"), "".concat(arguments.length <= 8 ? void 0 : arguments[8], "px ").concat(arguments.length <= 9 ? void 0 : arguments[9], "px ").concat(arguments.length <= 10 ? void 0 : arguments[10], "px ").concat(arguments.length <= 11 ? void 0 : arguments[11], "px rgba(0,0,0,").concat(.12, ")")].join(",") - } - const JU = ["none", $U(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), $U(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), $U(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), $U(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), $U(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), $U(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), $U(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), $U(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), $U(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), $U(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), $U(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), $U(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), $U(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), $U(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), $U(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), $U(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), $U(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), $U(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), $U(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), $U(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), $U(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), $U(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), $U(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), $U(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)], - ZU = { - borderRadius: 4 - }; - var QU = { - xs: 0, - sm: 600, - md: 960, - lg: 1280, - xl: 1920 - }, - XU = { - keys: ["xs", "sm", "md", "lg", "xl"], - up: function(e) { - return "@media (min-width:".concat(QU[e], "px)") - } - }; - const eH = function(e, t) { - return t ? rU(e, t, { - clone: !1 - }) : e - }; - var tH = { - m: "margin", - p: "padding" - }, - nH = { - t: "Top", - r: "Right", - b: "Bottom", - l: "Left", - x: ["Left", "Right"], - y: ["Top", "Bottom"] - }, - aH = { - marginX: "mx", - marginY: "my", - paddingX: "px", - paddingY: "py" - }, - rH = function(e) { - var t = {}; - return function(e) { - return void 0 === t[e] && (t[e] = function(e) { - if (e.length > 2) { - if (!aH[e]) return [e]; - e = aH[e] - } - var t = eg(e.split(""), 2), - n = t[0], - a = t[1], - r = tH[n], - i = nH[a] || ""; - return Array.isArray(i) ? i.map((function(e) { - return r + e - })) : [r + i] - }(e)), t[e] + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "dropdownListPositioned", !1), $a(w(e), "state", { + id: QI({ + id: e.constructor.name + }), + autoFocusDropdownItems: !1 + }), $a(w(e), "componentDidMount", (function() { + e.isUsingDeprecatedAPI() && e.domItemsList && e.focusFirstItem() + })), $a(w(e), "componentDidUpdate", (function(t) { + e.isUsingDeprecatedAPI() && e.props.isOpen && !t.isOpen && e.focusFirstItem() + })), $a(w(e), "getNextFocusable", (function(t, n) { + if (!e.domItemsList) return null; + var a = "number" != typeof t ? -1 : t, + r = "number" != typeof n ? a : n; + return a < e.domItemsList.length - 1 ? (a++, "true" !== e.domItemsList[a].getAttribute("aria-hidden") ? a : e.getNextFocusable(a, r)) : r + })), $a(w(e), "getPrevFocusable", (function(t, n) { + if (!e.domItemsList) return null; + var a = "number" != typeof t ? -1 : t, + r = "number" != typeof n ? a : n; + return a && a > 0 ? (a--, "true" !== e.domItemsList[a].getAttribute("aria-hidden") ? a : e.getPrevFocusable(a, r)) : r || a + })), $a(w(e), "focusFirstItem", (function() { + "keydown" === e.sourceOfIsOpen && e.focusItem(e.getNextFocusable()) + })), $a(w(e), "focusNextItem", (function() { + e.focusItem(e.getNextFocusable(e.focusedItem)) + })), $a(w(e), "focusPreviousItem", (function() { + e.focusItem(e.getPrevFocusable(e.focusedItem)) + })), $a(w(e), "focusItem", (function(t) { + e.domItemsList && t && (e.focusedItem = t, e.domItemsList[e.focusedItem].focus()) + })), $a(w(e), "isTargetChildItem", (function(t) { + if (!t) return !1; + var n = "droplistItem" === t.getAttribute("data-role"), + a = (0, Me.findDOMNode)(w(e)); + return !(!n || !a) && a.contains(t) + })), $a(w(e), "handleKeyboardInteractionForClosed", (function(t) { + if (!e.props.isOpen) switch (t.key) { + case GG: + case KG: + case $G: + t.preventDefault(), e.open({ + event: t, + source: "keydown" + }) } - }(), - iH = ["m", "mt", "mr", "mb", "ml", "mx", "my", "p", "pt", "pr", "pb", "pl", "px", "py", "margin", "marginTop", "marginRight", "marginBottom", "marginLeft", "marginX", "marginY", "padding", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "paddingX", "paddingY"]; - - function oH(e) { - var t = e.spacing || 8; - return "number" == typeof t ? function(e) { - return t * e - } : Array.isArray(t) ? function(e) { - return t[e] - } : "function" == typeof t ? t : function() {} - } - - function sH(e) { - var t = oH(e.theme); - return Object.keys(e).map((function(n) { - if (-1 === iH.indexOf(n)) return null; - var a = function(e, t) { - return function(n) { - return e.reduce((function(e, a) { - return e[a] = function(e, t) { - if ("string" == typeof t || null == t) return t; - var n = e(Math.abs(t)); - return t >= 0 ? n : "number" == typeof n ? -n : "-".concat(n) - }(t, n), e - }), {}) - } - }(rH(n), t), - r = e[n]; - return function(e, t, n) { - if (Array.isArray(t)) { - var a = e.theme.breakpoints || XU; - return t.reduce((function(e, r, i) { - return e[a.up(a.keys[i])] = n(t[i]), e - }), {}) + })), $a(w(e), "handleKeyboardInteractionsDeprecated", (function(t) { + if (e.props.isOpen) + if (e.isTargetChildItem(t.target)) switch (t.key) { + case "ArrowUp": + t.preventDefault(), e.focusPreviousItem(); + break; + case "ArrowDown": + t.preventDefault(), e.focusNextItem(); + break; + case "Tab": + t.preventDefault(), e.close({ + event: t + }) + } else "ArrowDown" === t.key ? (e.sourceOfIsOpen = "keydown", e.focusFirstItem()) : "Tab" === t.key && e.close({ + event: t + }); + else switch (t.key) { + case GG: + case KG: + case $G: + t.preventDefault(), e.open({ + event: t, + source: "keydown" + }) } - if ("object" === nb(t)) { - var r = e.theme.breakpoints || XU; - return Object.keys(t).reduce((function(e, a) { - return e[r.up(a)] = n(t[a]), e - }), {}) + })), $a(w(e), "domMenuContainer", null), $a(w(e), "isUsingDeprecatedAPI", (function() { + return Boolean(e.props.items.length) + })), $a(w(e), "handleOpenChange", (function(t) { + e.props.onOpenChange(t) + })), $a(w(e), "triggerContent", (function() { + var t = e.props, + n = t.children, + a = t.trigger, + r = t.isOpen, + i = t.triggerButtonProps, + o = t.triggerType, + s = t.testId, + l = e.isUsingDeprecatedAPI() ? n : a; + if ("button" !== o) return l; + var c = Object.assign({}, i), + u = { + "aria-controls": e.state.id, + "aria-expanded": r, + "aria-haspopup": !0, + isSelected: r + }; + return c.iconAfter || c.iconBefore || (c.iconAfter = C().createElement(Hg.Z, { + size: "medium", + label: "" + })), C().createElement(By, z({}, u, c, { + testId: s && "".concat(s, "--trigger") + }), l) + })), $a(w(e), "open", (function(t) { + e.sourceOfIsOpen = t.source, e.props.onOpenChange({ + isOpen: !0, + event: t.event + }), e.setState({ + autoFocusDropdownItems: "keydown" === e.sourceOfIsOpen + }) + })), $a(w(e), "close", (function(t) { + e.sourceOfIsOpen = null, e.props.onOpenChange({ + isOpen: !1, + event: t.event + }) + })), $a(w(e), "toggle", (function(t) { + "keydown" !== t.source && (e.props.isOpen ? e.close(t) : e.open(t)) + })), $a(w(e), "renderTrigger", (function() { + var t = e.triggerContent(); + return e.isUsingDeprecatedAPI() ? t : C().createElement("div", { + ref: function(t) { + e.triggerContainer = t } - return n(t) - }(e, r, a) - })).reduce(eH, {}) + }, t) + })), $a(w(e), "renderItems", (function(t) { + return t.map((function(t, n) { + return C().createElement(uj, z({}, t, { + key: n, + onActivate: function(n) { + var a = n.event; + e.props.onItemActivated({ + item: t, + event: a + }) + } + }), t.content) + })) + })), $a(w(e), "renderGroups", (function(t) { + return t.map((function(t, n) { + return C().createElement(Ej, { + heading: t.heading, + elemAfter: t.elemAfter, + key: n + }, e.renderItems(t.items)) + })) + })), $a(w(e), "renderDeprecated", (function() { + var t = e.props, + n = t.items, + a = t.shouldFitContainer, + r = e.state.id; + return C().createElement("div", { + id: r, + ref: function(t) { + e.domMenuContainer = t, e.domItemsList = t ? t.querySelectorAll('[data-role="droplistItem"]') : null + }, + role: "menu", + style: a ? void 0 : { + maxWidth: 300 + } + }, e.renderGroups(n)) + })), $a(w(e), "onDroplistPositioned", (function() { + e.dropdownListPositioned = !0, e.setState({ + autoFocusDropdownItems: "keydown" === e.sourceOfIsOpen + }), e.props.onPositioned && e.props.onPositioned() + })), $a(w(e), "renderDropdownItems", (function() { + return "keydown" === e.sourceOfIsOpen && e.dropdownListPositioned ? C().createElement(nK, { + autoFocus: e.state.autoFocusDropdownItems, + close: e.close + }, e.props.children) : C().createElement(x.Fragment, null, e.props.children) + })), e } - - function lH() { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 8; - if (e.mui) return e; - var t = oH({ - spacing: e - }), - n = function() { - for (var e = arguments.length, n = new Array(e), a = 0; a < e; a++) n[a] = arguments[a]; - return 0 === n.length ? t(1) : 1 === n.length ? t(n[0]) : n.map((function(e) { - if ("string" == typeof e) return e; - var n = t(e); - return "number" == typeof n ? "".concat(n, "px") : n - })).join(" ") - }; - return Object.defineProperty(n, "unit", { - get: function() { - return e + return Ka(r, [{ + key: "handleClickDeprecated", + value: function(e) { + var t = this.domMenuContainer; + (!t || t && !t.contains(e.target)) && this.toggle({ + source: "click", + event: e + }) + } + }, { + key: "handleClick", + value: function(e) { + if (this.setState({ + autoFocusDropdownItems: !1 + }), this.isUsingDeprecatedAPI()) this.handleClickDeprecated(e); + else if (this.triggerContainer && this.triggerContainer.contains(e.target) && !0 !== e.target.disabled) { + var t = this.props.isOpen; + this.sourceOfIsOpen = "mouse", this.props.onOpenChange({ + isOpen: !t, + event: e + }) } - }), n.mui = !0, n - } - sH.propTypes = {}, sH.filterProps = iH; - var cH = { - easeInOut: "cubic-bezier(0.4, 0, 0.2, 1)", - easeOut: "cubic-bezier(0.0, 0, 0.2, 1)", - easeIn: "cubic-bezier(0.4, 0, 1, 1)", - sharp: "cubic-bezier(0.4, 0, 0.6, 1)" - }, - uH = { - shortest: 150, - shorter: 200, - short: 250, - standard: 300, - complex: 375, - enteringScreen: 225, - leavingScreen: 195 - }; + } + }, { + key: "render", + value: function() { + var e = this, + t = this.props, + n = t.appearance, + a = t.boundariesElement, + r = t.isLoading, + i = t.isOpen, + o = t.onOpenChange, + s = t.position, + l = t.isMenuFixed, + c = t.shouldAllowMultilineItems, + u = t.shouldFitContainer, + d = t.shouldFlip, + p = t.testId, + h = this.state.id, + m = this.isUsingDeprecatedAPI(), + f = m ? { + onKeyDown: this.handleKeyboardInteractionsDeprecated, + shouldAllowMultilineItems: c + } : { + onKeyDown: this.handleKeyboardInteractionForClosed + }; + return C().createElement(oK, null, C().createElement(aD, z({ + appearance: n, + boundariesElement: a, + isLoading: r, + isOpen: i, + onClick: function(t) { + return e.handleClick(t) + }, + onOpenChange: this.handleOpenChange, + position: s, + isMenuFixed: l, + shouldFitContainer: u, + shouldFlip: d, + trigger: this.renderTrigger(), + onPositioned: this.onDroplistPositioned + }, f, { + analyticsContext: { + componentName: "dropdownMenu", + packageName: JG.u2, + packageVersion: JG.i8 + }, + testId: p + }), m ? this.renderDeprecated() : C().createElement(WG, { + id: h, + role: "menu", + shouldFitContainer: u + }, C().createElement(tK, { + onItemClicked: function(e) { + return o({ + isOpen: !1, + event: e + }) + } + }, this.renderDropdownItems())))) + } + }]), r + }(x.Component); $a(sK, "defaultProps", { + appearance: "default", + boundariesElement: "viewport", + isLoading: !1, + isOpen: !1, + items: [], + onItemActivated: function() {}, + onOpenChange: function() {}, + position: "bottom left", + isMenuFixed: !1, + shouldAllowMultilineItems: !1, + shouldFitContainer: !1, + shouldFlip: !0, + triggerType: "default", + onPositioned: function() {} + }); + var lK = QC("atlaskit"); + const cK = oA({ + componentName: "dropdownMenu", + packageName: JG.u2, + packageVersion: JG.i8 + })(uA({ + onOpenChange: lK({ + action: "toggled", + actionSubject: "dropdownMenu", + attributes: { + componentName: "dropdownMenu", + packageName: JG.u2, + packageVersion: JG.i8 + } + }) + })(sK)); + var uK = n(2494), dK = n.n(uK), pK = $g.default.div.withConfig({ + displayName: "ItemGroup__GroupTitle", + componentId: "ofbfv9-0" + })(["\n align-items: center;\n color: ", ";\n display: flex;\n flex: 1 1 auto;\n ", ";\n"], (function(e) { + var t = e.theme; + return $T(t[YT], "secondaryText", "default") + }), (function(e) { + var t = e.isCompact, + n = e.theme, + a = t ? "compact" : "default", + r = $T(n[YT], a, "padding"), + i = r.bottom, + o = void 0 === i ? 0 : i, + s = r.left, + l = void 0 === s ? 0 : s, + c = r.right, + u = void 0 === c ? 0 : c, + d = r.top, + p = void 0 === d ? 0 : d; + return (0, $g.css)(["\n padding: ", "px ", "px ", "px ", "px;\n "], p, u, o, l) + })); pK.displayName = "ItemGroupTitle"; + var hK = $g.default.div.withConfig({ + displayName: "ItemGroup__GroupTitleAfter", + componentId: "ofbfv9-1" + })(["\n flex: 0 0 auto;\n margin-right: -", "px;\n"], 4); hK.displayName = "ItemGroupTitleAfter"; + var mK = $g.default.div.withConfig({ + displayName: "ItemGroup__GroupTitleText", + componentId: "ofbfv9-2" + })(["\n flex: 1 1 auto;\n font-size: ", "px;\n line-height: 1;\n text-transform: uppercase;\n /* Required for children to truncate */\n min-width: 0;\n"], (function() { + return 11 + })); mK.displayName = "ItemGroupTitleText"; + var fK = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function dH(e) { - return "".concat(Math.round(e), "ms") - } - const pH = { - easing: cH, - duration: uH, - create: function() { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ["all"], - t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, - n = t.duration, - a = void 0 === n ? uH.standard : n, - r = t.easing, - i = void 0 === r ? cH.easeInOut : r, - o = t.delay, - s = void 0 === o ? 0 : o; - return Fg(t, ["duration", "easing", "delay"]), (Array.isArray(e) ? e : [e]).map((function(e) { - return "".concat(e, " ").concat("string" == typeof a ? a : dH(a), " ").concat(i, " ").concat("string" == typeof s ? s : dH(s)) - })).join(",") - }, - getAutoHeightDuration: function(e) { - if (!e) return 0; - var t = e / 36; - return Math.round(10 * (4 + 15 * Math.pow(t, .25) + t / 5)) - } - }, - hH = { - mobileStepper: 1e3, - speedDial: 1050, - appBar: 1100, - drawer: 1200, - modal: 1300, - snackbar: 1400, - tooltip: 1500 - }, - mH = function() { - for (var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, t = e.breakpoints, n = void 0 === t ? {} : t, a = e.mixins, r = void 0 === a ? {} : a, i = e.palette, o = void 0 === i ? {} : i, s = e.spacing, l = e.typography, c = void 0 === l ? {} : l, u = Fg(e, ["breakpoints", "mixins", "palette", "spacing", "typography"]), d = VU(o), p = mU(n), h = lH(s), m = rU({ - breakpoints: p, - direction: "ltr", - mixins: fU(p, h, r), - overrides: {}, - palette: d, - props: {}, - shadows: JU, - typography: KU(d, c), - spacing: h, - shape: ZU, - transitions: pH, - zIndex: hH - }, u), f = arguments.length, g = new Array(f > 1 ? f - 1 : 0), b = 1; b < f; b++) g[b - 1] = arguments[b]; - return g.reduce((function(e, t) { - return rU(e, t) - }), m) - }, - fH = mH(), - gH = function(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - return pU(e, z({ - defaultTheme: fH - }, t)) - }, - bH = [{ - width: 520, - order: ["microphone", "camera", "desktop", "chat", "raisehand", "participants", "tileview"] - }, { - width: 470, - order: ["microphone", "camera", "desktop", "chat", "raisehand", "participants"] - }, { - width: 420, - order: ["microphone", "camera", "desktop", "chat", "participants"] - }, { - width: 370, - order: ["microphone", "camera", "chat", "participants"] - }, { - width: 320, - order: ["microphone", "camera", "chat"] - }, { - width: 270, - order: ["microphone", "camera"] - }]; + function r() { + return Ya(this, r), a.apply(this, arguments) + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this, + t = this.props, + n = t.children, + a = t.elemAfter, + r = t.isCompact, + i = t.title, + o = t.label, + s = t.innerRef, + l = t.role, + c = o ? dK()(o) : i ? dK()(i) : ""; + return C().createElement("div", { + "aria-label": c, + role: l, + ref: s + }, i ? C().createElement(pK, { + "aria-hidden": "true", + isCompact: r + }, C().createElement(mK, null, i), a ? C().createElement(hK, { + innerRef: function(t) { + e.headingAfterElement = t + } + }, a) : null) : null, n) + } + }]), r + }(x.Component); $a(fK, "defaultProps", { + role: "group" + }); + var gK = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function yH() { - const e = document.getElementById("new-toolbox"); - return e && e.clientHeight || 0 - } + function r() { + return Ya(this, r), a.apply(this, arguments) + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this.props, + t = e.children, + n = e.elemAfter, + a = e.title; + return C().createElement(fK, { + elemAfter: n, + title: a, + role: "menu" + }, t) + } + }]), r + }(x.Component); - function vH(e, t) { - return -1 !== Qn(t).indexOf(e) + function bK(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class yK extends x.PureComponent { + constructor(e) { + super(e), bK(this, "state", { + isDropdownOpen: !1 + }), this._onDropdownOpenChange = this._onDropdownOpenChange.bind(this), this._onSelect = this._onSelect.bind(this) } - - function kH(e) { + render() { const { - iAmSipGateway: t, - toolbarConfig: n - } = e["features/base/config"], { - alwaysVisible: a - } = n || {}, { - timeoutID: r, - visible: i - } = e["features/toolbox"], { - audioSettingsVisible: o, - videoSettingsVisible: s - } = e["features/settings"]; - return Boolean(!t && (r || i || a || o || s)) + broadcasts: e, + selectedBoundStreamID: t, + t: n + } = this.props; + if (!e.length) return C().createElement("a", { + className: "warning-text", + href: "https://www.youtube.com/live_dashboard", + rel: "noopener noreferrer", + target: "_blank" + }, n("liveStreaming.getStreamKeyManually")); + const a = e.map((e => C().createElement(qG, { + "data-streamid": e.boundStreamID, + key: e.boundStreamID, + onClick: this._onSelect + }, e.title))), + r = this.props.broadcasts.find((e => e.boundStreamID === t)), + i = r && r.title || n("liveStreaming.choose"); + return C().createElement("div", { + className: "broadcast-dropdown dropdown-menu" + }, C().createElement(cK, { + isOpen: this.state.isDropdownOpen, + onItemActivated: this._onSelect, + onOpenChange: this._onDropdownOpenChange, + shouldFitContainer: !0, + trigger: i, + triggerButtonProps: { + className: "broadcast-dropdown-trigger", + shouldFitContainer: !0 + }, + triggerType: "button" + }, C().createElement(gK, null, a))) + } + _formatBroadcasts(e) { + return e.map((e => ({ + content: e.title, + value: e + }))) } - - function _H(e) { - return !UM(e, "audioInput") && !UM(e, "audioOutput") || e["features/base/config"].startSilent + _onDropdownOpenChange(e) { + this.setState({ + isDropdownOpen: e.isOpen + }) } - - function wH(e) { - return !UM(e, "videoInput") + _onSelect(e) { + const t = e.currentTarget.getAttribute("data-streamid"); + this.props.onBroadcastSelected(t) } - - function SH(e) { - return !UM(e, "videoInput") + } + bK(yK, "defaultProps", { + broadcasts: [] + }); + const vK = Ei(yK), kK = Ei(Ne((function(e) { + return { + ...bG(e), + _googleApiApplicationClientID: e["features/base/config"].googleApiApplicationClientID + } + }))(class extends gG { + constructor(e) { + super(e), this._onGetYouTubeBroadcasts = this._onGetYouTubeBroadcasts.bind(this), this._onInitializeGoogleApi = this._onInitializeGoogleApi.bind(this), this._onGoogleSignIn = this._onGoogleSignIn.bind(this), this._onRequestGoogleSignIn = this._onRequestGoogleSignIn.bind(this), this._onYouTubeBroadcastIDSelected = this._onYouTubeBroadcastIDSelected.bind(this) + } + componentDidMount() { + super.componentDidMount(), this.props._googleApiApplicationClientID && this._onInitializeGoogleApi() + } + render() { + const { + _googleApiApplicationClientID: e + } = this.props; + return C().createElement(yL, { + cancelKey: "dialog.Cancel", + okKey: "dialog.startLiveStreaming", + onCancel: this._onCancel, + onSubmit: this._onSubmit, + titleKey: "liveStreaming.start", + width: "small" + }, C().createElement("div", { + className: "live-stream-dialog" + }, e ? this._renderYouTubePanel() : null, C().createElement(vG, { + onChange: this._onStreamKeyChange, + value: this.state.streamKey || this.props._streamKey + }))) } - - function EH(e) { - return e["features/toolbox"].overflowDrawer + _onInitializeGoogleApi() { + this.props.dispatch(eJ()).catch((e => this._parseErrorFromResponse(e))) } - - function xH(e) { - const { - toolbarConfig: { - timeout: t - } - } = e["features/base/config"]; - return t || 4e3 - } - const CH = gH((e => ({ - badge: { - background: "rgba(0, 0, 0, 0.6)", - borderRadius: "3px", - color: e.palette.text01, - maxWidth: "50%", - overflow: "hidden", - padding: "2px 16px", - textOverflow: "ellipsis", - whiteSpace: "nowrap" + componentDidUpdate(e) { + e._googleAPIState === J$.LOADED && this.props._googleAPIState === J$.SIGNED_IN && this._onGetYouTubeBroadcasts() + } + _onGetYouTubeBroadcasts() { + this.props.dispatch(aJ()).catch((e => this._parseErrorFromResponse(e))), this.props.dispatch((() => X$.requestAvailableYouTubeBroadcasts().then((e => { + const t = e.result.items, + n = {}; + for (let e = 0; e < t.length; e++) { + const a = t[e], + r = a.contentDetails.boundStreamId; + r && !n[r] && (n[r] = { + boundStreamID: r, + id: a.id, + status: a.status.lifeCycleStatus, + title: a.snippet.title + }) } - }))), - AH = ({ - name: e - }) => { - const t = CH(); - return x().createElement("div", { - className: t.badge - }, e) - }; - - function jH(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - PH(e, t, n[t]) + return Object.values(n) + })))).then((e => { + if (this._setStateIfMounted({ + broadcasts: e + }), 1 === e.length) { + const t = e[0]; + this._onYouTubeBroadcastIDSelected(t.boundStreamID) + } + })).catch((e => this._parseErrorFromResponse(e))) + } + _onGoogleSignIn() { + this.props.dispatch(nJ()).catch((e => this._parseErrorFromResponse(e))) + } + _onRequestGoogleSignIn() { + this.props.dispatch((() => X$.showAccountSelection())).then((() => this._setStateIfMounted({ + broadcasts: void 0, + errorType: void 0 + }))).then((() => this._onGetYouTubeBroadcasts())) + } + _onYouTubeBroadcastIDSelected(e) { + this.props.dispatch(function(e) { + return () => X$.requestLiveStreamsForYouTubeBroadcast(e).then((t => { + const n = t.result.items; + return { + streamKey: n && n[0] && n[0].cdn.ingestionInfo.streamName || "", + selectedBoundStreamID: e + } })) - } - return e - } - - function PH(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + }(e)).then((e => { + let { + streamKey: t, + selectedBoundStreamID: n + } = e; + return this._setStateIfMounted({ + streamKey: t, + selectedBoundStreamID: n + }) + })) } - const DH = gH((e => ({ - badgeContainer: jH({}, Os(e.typography.bodyShortRegularLarge), { - alignItems: "center", - display: "flex", - justifyContent: "center", - marginBottom: e.spacing(2), - transition: "margin-bottom 0.3s" - }), - containerElevated: { - marginBottom: e.spacing(7) - } - }))), - TH = () => { - const e = DH(), - t = Pe(mk), - n = null == t ? void 0 : t.name, - a = null == t ? void 0 : t.id, - r = Pe(Rh), - i = null == r ? void 0 : r.id, - o = Pe(Ik), - s = Pe(kH); - return n && a !== i && !o ? x().createElement("div", { - className: `${e.badgeContainer}${s?"":` ${e.containerElevated}`}` - }, x().createElement(AH, { - name: n - })) : null - }; - - function OH(e) { - return sP(cF, { - onPostSubmit: e + _parseErrorFromResponse(e) { + if (!e || !e.result) return; + const t = e.result.error, + n = t && t.errors, + a = n && n[0]; + this._setStateIfMounted({ + errorType: a && a.reason || null }) } - - function MH() { - const e = window.location.pathname.split("/"), - t = e.length; - return e.length > 2 ? `${e[t-2]}/${e[t-1]}` : "" + _renderYouTubePanel() { + const { + t: e, + _googleProfileEmail: t + } = this.props, { + broadcasts: n, + selectedBoundStreamID: a + } = this.state; + let r, i; + switch (this.props._googleAPIState) { + case J$.LOADED: + r = C().createElement(iJ, { + onClick: this._onGoogleSignIn + }), i = e("liveStreaming.signInCTA"); + break; + case J$.SIGNED_IN: + r = n ? C().createElement(vK, { + broadcasts: n, + onBroadcastSelected: this._onYouTubeBroadcastIDSelected, + selectedBoundStreamID: a + }) : C().createElement(Ay, { + isCompleting: !1, + size: "medium" + }), i = C().createElement("div", null, `${e("liveStreaming.chooseCTA",{email:t})} `, C().createElement("a", { + onClick: this._onRequestGoogleSignIn + }, e("liveStreaming.changeSignIn"))); + break; + case J$.NEEDS_LOADING: + default: + r = C().createElement(Ay, { + isCompleting: !1, + size: "medium" + }) + } + return void 0 !== this.state.errorType && (r = C().createElement(iJ, { + onClick: this._onRequestGoogleSignIn + }), i = this._getGoogleErrorMessageToDisplay()), C().createElement("div", { + className: "google-panel" + }, C().createElement("div", { + className: "live-stream-cta" + }, i), C().createElement("div", { + className: "google-api" + }, r)) } - - function IH(e) { - return e["features/dynamic-branding"].customizationReady + _getGoogleErrorMessageToDisplay() { + let e; + return e = "liveStreamingNotEnabled" === this.state.errorType ? this.props.t("liveStreaming.errorLiveStreamNotEnabled", { + email: this.props._googleProfileEmail + }) : this.props.t("liveStreaming.errorAPI"), C().createElement("div", { + className: "google-error" + }, e) } - const NH = "CANCEL_FEEDBACK", - zH = "SUBMIT_FEEDBACK_ERROR", - RH = "SUBMIT_FEEDBACK_SUCCESS"; - - function LH(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + })); class _K extends x.Component { + constructor(e) { + super(e), this._onSubmit = this._onSubmit.bind(this) } - const FH = Li(ze((e => ({ - _conference: e["features/base/conference"].conference - })))(class extends Vw { - constructor(...e) { - super(...e), LH(this, "accessibilityLabel", "toolbar.accessibilityLabel.feedback"), LH(this, "icon", Lc), LH(this, "label", "toolbar.feedback"), LH(this, "tooltip", "toolbar.feedback") - } - _handleClick() { - const { - _conference: e, - dispatch: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("feedback")), t(aV(e))) - } - })), - qH = JSON.parse('{"u2":"@atlaskit/field-text-area","i8":"8.0.4"}'); - var BH = (0, Ug.css)(["\n color: ", ";\n"], mb.placeholderText), - UH = Ug.default.textarea.withConfig({ - displayName: "TextArea", - componentId: "l4fqfr-0" - })(["\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n box-sizing: border-box;\n color: inherit;\n cursor: inherit;\n font-family: ", ";\n font-size: ", "px;\n line-height: ", ";\n min-width: 0;\n outline: none;\n width: 100%;\n\n [disabled] {\n ", ";\n }\n\n ", " ", "\n\n &::-ms-clear {\n display: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n ", ";\n"], (function(e) { - return e.isMonospaced ? "'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace" : "inherit" - }), Yg, 20 / 14, "\n -webkit-text-fill-color: unset;\n -webkit-opacity: 1;\n", (function(e) { - var t = e.minimumRows; - return "min-height: ".concat(20 * t, "px;") - }), (function(e) { - var t = e.enableResize; - return t ? "horizontal" === t ? "resize: horizontal;" : "vertical" === t ? "resize: vertical;" : null : "resize: none;" - }), function(e) { - return (0, Ug.css)(["\n &::-webkit-input-placeholder {\n /* WebKit, Blink, Edge */\n ", ";\n }\n &::-moz-placeholder {\n /* Mozilla Firefox 19+ */\n ", " opacity: 1;\n }\n &::-ms-input-placeholder {\n /* Microsoft Edge */\n ", ";\n }\n &:-moz-placeholder {\n /* Mozilla Firefox 4 to 18 */\n ", " opacity: 1;\n }\n &:-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n ", ";\n }\n"], e, e, e, e, e) - }(BH)); - const HH = UH; - var VH = Ug.default.div.withConfig({ - displayName: "FieldTextAreaStateless__Wrapper", - componentId: "sc-159dr31-0" - })(["\n flex: 1 1 100%;\n"]), - WH = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; + _onSubmit() { + Da(Xt("stop", "confirm.button")); + const { + _session: e + } = this.props; + return e && this.props._conference.stopRecording(e.id), !0 + } + } + const wK = Ei(Ne((function(e) { + return { + _conference: e["features/base/conference"].conference, + _session: kU(e, kt.mode.STREAM) + } + }))(class extends _K { + render() { + return C().createElement(yL, { + okKey: "dialog.stopLiveStreaming", + onSubmit: this._onSubmit, + titleKey: "dialog.liveStreaming", + width: "small" + }, this.props.t("dialog.stopStreamingWarning")) + } + })); + + function SK(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const EK = Ei(Ne((function(e, t) { + const n = function(e, t) { + let n, { + visible: a + } = t, + r = ""; + if (void 0 === a) { + const t = tm(e), + { + enableFeaturesBasedOnToken: i, + fileRecordingsEnabled: o + } = e["features/base/config"], + { + features: s = {} + } = Uh(e); + a = t && o, i && (a = a && "true" === String(s.recording), n = "disabled" === String(s.recording), a || n || (n = !0, a = !0, r = "dialog.recordingDisabledTooltip")) + } + return kU(e, kt.mode.STREAM) && (n = !0, r = "dialog.recordingDisabledBecauseOfActiveLiveStreamingTooltip"), wm(e) && (n = !0, a = !1), { + _disabled: n, + _isRecordingRunning: Boolean(kU(e, kt.mode.FILE)), + _tooltip: r, + visible: a + } + }(e, t), + a = $n(e); + let { + visible: r + } = t; + return void 0 === r && (r = a.includes("recording") && n.visible), { + ...n, + visible: r + } + }))(class extends bC { + constructor() { + super(...arguments), SK(this, "accessibilityLabel", "toolbar.accessibilityLabel.recording"), SK(this, "icon", dd), SK(this, "label", "dialog.startRecording"), SK(this, "toggledLabel", "dialog.stopRecording") + } + _getTooltip() { + return this.props._tooltip || "" + } + async _handleClick() { + const { + _isRecordingRunning: e, + dispatch: t, + handleClick: n + } = this.props; + n ? n() : (Da(ln("recording.button", { + is_recording: e, + type: kt.mode.FILE + })), await t(XL(iM)) || t(VI(e ? HK : BK))) + } + _isDisabled() { + return this.props._disabled + } + _isToggled() { + return this.props._isRecordingRunning + } + })), xK = "SET_SCREENSHOT_CAPTURE"; + var CK = n(7510), AK = n.n(CK); + let TK = window.ImageCapture; void 0 === TK && (TK = class { + constructor(e) { + if ("video" !== e.kind) throw new DOMException("NotSupportedError"); + this._videoStreamTrack = e, "readyState" in this._videoStreamTrack || (this._videoStreamTrack.readyState = "live"), this._previewStream = new MediaStream([e]), this.videoElement = document.createElement("video"), this.videoElementPlaying = new Promise((e => { + this.videoElement.addEventListener("playing", e) + })), HTMLMediaElement ? this.videoElement.srcObject = this._previewStream : this.videoElement.src = URL.createObjectURL(this._previewStream), this.videoElement.muted = !0, this.videoElement.setAttribute("playsinline", ""), this.videoElement.play(), this.canvasElement = document.createElement("canvas"), this.canvas2dContext = this.canvasElement.getContext("2d") + } + get videoStreamTrack() { + return this._videoStreamTrack + } + getPhotoCapabilities() { + return new Promise((function(e, t) { + const n = { + current: 0, + min: 0, + max: 0 + }; + e({ + exposureCompensation: n, + exposureMode: "none", + fillLightMode: "none", + focusMode: "none", + imageHeight: n, + imageWidth: n, + iso: n, + redEyeReduction: !1, + whiteBalanceMode: "none", + zoom: n + }), t(new DOMException("OperationError")) + })) + } + setOptions() { + return new Promise((function(e, t) {})) + } + takePhoto() { + const e = this; + return new Promise((function(t, n) { + if ("live" !== e._videoStreamTrack.readyState) return n(new DOMException("InvalidStateError")); + e.videoElementPlaying.then((() => { try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + e.canvasElement.width = e.videoElement.videoWidth, e.canvasElement.height = e.videoElement.videoHeight, e.canvas2dContext.drawImage(e.videoElement, 0, 0), e.canvasElement.toBlob(t) } catch (e) { - return !1 + n(new DOMException("UnknownError")) } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "input", void 0), e - } - return Qg(r, [{ - key: "focus", - value: function() { - this.input.focus() - } - }, { - key: "render", - value: function() { - var e = this, - t = this.props, - n = t.autoFocus, - a = t.compact, - r = t.disabled, - i = t.id, - o = t.invalidMessage, - s = t.isInvalid, - l = t.isLabelHidden, - c = t.isMonospaced, - u = t.isReadOnly, - d = t.isSpellCheckEnabled, - p = t.label, - h = t.maxLength, - m = t.minimumRows, - f = t.name, - g = t.onBlur, - b = t.onChange, - y = t.onFocus, - v = t.placeholder, - k = t.enableResize, - _ = t.required, - w = t.shouldFitContainer, - S = t.value, - E = t.isValidationHidden; - return x().createElement(VH, null, !l && x().createElement(Lx, { - htmlFor: i, - isDisabled: r, - isLabelHidden: l, - isRequired: _, - label: p - }), x().createElement(uz, { - isCompact: a, - isDisabled: r, - isInvalid: s, - isReadOnly: u, - isRequired: _, - invalidMessage: o, - isFitContainerWidthEnabled: w, - isValidationHidden: E - }, x().createElement(HH, { - disabled: r, - readOnly: u, - name: f, - placeholder: v, - value: S, - required: _, - isMonospaced: c, - minimumRows: m, - enableResize: k, - onBlur: g, - onChange: b, - onFocus: y, - id: i, - autoFocus: n, - spellCheck: d, - maxLength: h, - innerRef: function(t) { - e.input = t - } - }))) + })) + })) + } + grabFrame() { + const e = this; + return new Promise((function(t, n) { + if ("live" !== e._videoStreamTrack.readyState) return n(new DOMException("InvalidStateError")); + e.videoElementPlaying.then((() => { + try { + e.canvasElement.width = e.videoElement.videoWidth, e.canvasElement.height = e.videoElement.videoHeight, e.canvas2dContext.drawImage(e.videoElement, 0, 0), t(window.createImageBitmap(e.canvasElement)) + } catch (e) { + n(new DOMException("UnknownError")) } - }]), r - }(E.Component); - Zf(WH, "defaultProps", { - compact: !1, - disabled: !1, - isReadOnly: !1, - required: !1, - isInvalid: !1, - label: "", - type: "text", - isSpellCheckEnabled: !0, - minimumRows: 1, - isValidationHidden: !1 - }); - var YH = xS("atlaskit"); - const GH = NS({ - componentName: "fieldTextArea", - packageName: qH.u2, - packageVersion: qH.i8 - })(FS({ - onBlur: YH({ - action: "blurred", - actionSubject: "textArea", - attributes: { - componentName: "fieldTextArea", - packageName: qH.u2, - packageVersion: qH.i8 - } - }), - onFocus: YH({ - action: "focused", - actionSubject: "textArea", - attributes: { - componentName: "fieldTextArea", - packageName: qH.u2, - packageVersion: qH.i8 - } + })) + })) + } + }), window.ImageCapture = TK, n(9738); + const DK = URL.createObjectURL(new Blob(["\n var timer;\n\n onmessage = function(request) {\n switch (request.data.id) {\n case 1: {\n timer = setInterval(() => {\n postMessage({ id: 3 });\n }, request.data.timeMs);\n break;\n }\n case 2: {\n if (timer) {\n clearInterval(timer);\n }\n break;\n }\n }\n };\n"], { + type: "application/javascript" + })); class PK { + constructor(e) { + this._state = e, this._currentCanvas = document.createElement("canvas"), this._currentCanvasContext = this._currentCanvas.getContext("2d"), this._handleWorkerAction = this._handleWorkerAction.bind(this), this._initScreenshotCapture = this._initScreenshotCapture.bind(this), this._streamWorker = new Worker(DK, { + name: "Screenshot capture worker" + }), this._streamWorker.onmessage = this._handleWorkerAction + } + start(e) { + var t; + const { + videoType: n + } = e, a = e.getOriginalStream(); + if ("desktop" !== n) return; + const r = a.getVideoTracks()[0], + { + height: i, + width: o + } = null !== (t = r.getSettings()) && void 0 !== t ? t : r.getConstraints(); + this._streamHeight = i, this._streamWidth = o, this._currentCanvas.height = parseInt(i, 10), this._currentCanvas.width = parseInt(o, 10), this._imageCapture = new ImageCapture(r), this._initScreenshotCapture() + } + stop() { + this._streamWorker.postMessage({ + id: 2 }) - })(WH)); - var KH = n(9429), - $H = n(901); + } + async _initScreenshotCapture() { + const e = await this._imageCapture.grabFrame(); + this._currentCanvasContext.drawImage(e, 0, 0, this._streamWidth, this._streamHeight); + const t = this._currentCanvasContext.getImageData(0, 0, this._streamWidth, this._streamHeight); + this._storedImageData = t, this._streamWorker.postMessage({ + id: 1, + timeMs: 4e3 + }) + } + _handleWorkerAction(e) { + return 3 === e.data.id && this._handleScreenshot() + } + _doProcessScreenshot(e) { + Da({ + action: "screen.sharing.capture.taken" + }), vF(this._state).getMeetingUniqueId(); + const { + connection: t + } = this._state["features/base/connection"], { + jwt: n + } = (t.getJid(), Date.now(), this._state["features/base/jwt"]), a = (XY(), Jh(this._state)), r = []; + a.forEach((e => r.push(function(e, t) { + const n = vF(e); + if (!n) return; + const a = n.getParticipantById(t); + return a ? a.getJid() : void 0 + }(this._state, e.id)))), this._storedImageData = e, this._currentCanvas + } + async _handleScreenshot() { + const e = await this._imageCapture.grabFrame(); + this._currentCanvasContext.drawImage(e, 0, 0, this._streamWidth, this._streamHeight); + const t = this._currentCanvasContext.getImageData(0, 0, this._streamWidth, this._streamHeight); + AK()(t).compareTo(this._storedImageData).setReturnEarlyThreshold(5).onComplete((e => { + e.rawMisMatchPercentage > 5 && this._doProcessScreenshot(t) + })) + } + } + const jK = $e("features/screenshot-capture"); + let MK; - function JH() { - return JH = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, JH.apply(this, arguments) + function IK(e) { + return { + type: xK, + payload: e } - const ZH = interfaceConfig.ENABLE_FEEDBACK_ANIMATION ? "shake-rotate" : "", - QH = ["feedback.veryBad", "feedback.bad", "feedback.average", "feedback.good", "feedback.veryGood"]; - class XH extends E.Component { - constructor(e) { - super(e); + } + + function OK(e) { + return async function(t, n) { + const a = n(); + if (a["features/screenshot-capture"].capturesEnabled !== e) { const { - _message: t, - _score: n - } = this.props; - this.state = { - message: t, - mousedOverScore: -1, - score: n > -1 ? n - 1 : n - }, this._scoreClickConfigurations = QH.map(((e, t) => ({ - _onClick: () => this._onScoreSelect(t), - _onKeyPres: e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onScoreSelect(t)) - }, - _onMouseOver: () => this._onScoreMouseOver(t) - }))), this._onCancel = this._onCancel.bind(this), this._onMessageChange = this._onMessageChange.bind(this), this._onScoreContainerMouseLeave = this._onScoreContainerMouseLeave.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onScrollTop = e => { - e && e.scroll && e.scroll(0, 0) + jitsiTrack: n + } = nh(a["features/base/tracks"]); + if (!MK) try { + MK = await (r = a, MediaStreamTrack.prototype.getSettings || MediaStreamTrack.prototype.getConstraints ? new PK(Fe(r)) : Promise.reject(new Error("ScreenshotCaptureSummary not supported!"))) + } catch (e) { + jK.error("Cannot create screenshotCaptureSummary", e) } + if (e) try { + await MK.start(n), t(IK(e)) + } catch { + jK.error("Unsupported stream type.") + } else MK.stop(), t(IK(e)) } - componentDidMount() { - Ma({ - action: "feedback.opened" - }), "undefined" != typeof APP && APP.API.notifyFeedbackPromptDisplayed() - } - componentWillUnmount() { - this.props.onClose && this.props.onClose() - } - render() { - const { - message: e, - mousedOverScore: t, - score: n - } = this.state, a = t > -1 ? t : n, { - t: r - } = this.props, i = this._scoreClickConfigurations.map(((e, t) => { - const n = t <= a, - i = `star-btn ${ZH} ${n?"active":""}`; - return x().createElement("span", JH({ - "aria-label": r(QH[t]), - className: i, - key: t, - onClick: e._onClick, - onKeyPress: e._onKeyPres, - role: "button", - tabIndex: 0 - }, Sa() ? {} : { - onMouseOver: e._onMouseOver - }), n ? x().createElement($H.Z, { - label: "star-filled", - size: "xlarge" - }) : x().createElement(KH.Z, { - label: "star", - size: "xlarge" - })) - })); - return x().createElement(IO, { - okKey: "dialog.Submit", - onCancel: this._onCancel, - onDialogRef: this._onScrollTop, - onSubmit: this._onSubmit, - titleKey: "feedback.rateExperience" - }, x().createElement("div", { - className: "feedback-dialog" - }, x().createElement("div", { - className: "rating" - }, x().createElement("div", { - "aria-label": this.props.t("feedback.star"), - className: "star-label" - }, x().createElement("p", { - id: "starLabel" - }, r(QH[a]))), x().createElement("div", { - className: "stars", - onMouseLeave: this._onScoreContainerMouseLeave - }, i)), x().createElement("div", { - className: "details" - }, x().createElement(GH, { - autoFocus: !0, - className: "input-control", - id: "feedbackTextArea", - label: r("feedback.detailsLabel"), - onChange: this._onMessageChange, - shouldFitContainer: !0, - value: e - })))) - } - _onCancel() { - const { - message: e, - score: t - } = this.state, n = t > -1 ? t + 1 : t; - return this.props.dispatch(function(e, t) { - return { - type: NH, - message: t, - score: e - } - }(n, e)), !0 - } - _onMessageChange(e) { - this.setState({ - message: e.target.value - }) - } - _onScoreSelect(e) { - this.setState({ - score: e - }) - } - _onScoreContainerMouseLeave() { - this.setState({ - mousedOverScore: -1 - }) - } - _onScoreMouseOver(e) { - this.setState({ - mousedOverScore: e - }) - } - _onSubmit() { - const { - conference: e, - dispatch: t - } = this.props, { - message: n, - score: a - } = this.state; - return t(rV(a > -1 ? a + 1 : a, n, e)), !0 + var r; + return Promise.resolve() + } + } + class NK extends x.Component { + constructor(e) { + let t; + super(e), this._onSubmit = this._onSubmit.bind(this), this._onSelectedRecordingServiceChanged = this._onSelectedRecordingServiceChanged.bind(this), this._onSharingSettingChanged = this._onSharingSettingChanged.bind(this), this._toggleScreenshotCapture = this._toggleScreenshotCapture.bind(this), this.props._fileRecordingsServiceEnabled || !this._areIntegrationsEnabled() ? t = bU : this._areIntegrationsEnabled() && (t = yU), this.state = { + isTokenValid: !1, + isValidating: !1, + userName: void 0, + sharingEnabled: !0, + spaceLeft: void 0, + selectedRecordingService: t } } - const eV = Li(ze((function(e) { - const { - message: t, - score: n - } = e["features/feedback"]; - return { - _message: t, - _score: n - } - }))(XH)), - tV = Je("features/feedback"); - - function nV(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + componentDidMount() { + void 0 !== this.props._token && this._onTokenUpdated() } - - function aV(e, t) { - return sP(eV, { - conference: e, - onClose: t + componentDidUpdate(e) { + this.props._token !== e._token && this._onTokenUpdated() + } + _areIntegrationsEnabled() { + return this.props._isDropboxEnabled + } + _onSharingSettingChanged() { + this.setState({ + sharingEnabled: !this.state.sharingEnabled }) } - - function rV(e, t, n) { - return a => n.sendFeedback(e, t).then((() => a({ - type: RH - }))).then((() => a(function(e, t) { - return (n, a) => { - const r = a(), - { - jaasFeedbackMetadataURL: i - } = r["features/base/config"], - { - jwt: o, - user: s, - tenant: l - } = r["features/base/jwt"]; - if (!Rj(r) || !i) return Promise.resolve(); - const c = MH(), - u = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - nV(e, t, n[t]) - })) - } - return e - }({}, t, { - sessionId: e.sessionId, - userId: s.id, - meetingFqn: c, - jwt: o, - tenant: l + _onSelectedRecordingServiceChanged(e) { + this.setState({ + selectedRecordingService: e + }, (() => { + this.props.dispatch(function(e) { + return { + type: GK, + selectedRecordingService: e + } + }(e)) + })) + } + _onTokenUpdated() { + const { + _appKey: e, + _isDropboxEnabled: t, + _token: n, + _rToken: a, + _tokenExpireDate: r, + dispatch: i + } = this.props; + var o, s; + if (t) + if (void 0 === n) this.setState({ + isTokenValid: !1, + isValidating: !1 + }); + else { + if (r && Date.now() > new Date(r)) return void + function(e, t) { + const n = new oU.DropboxAuth({ + clientId: e }); - return async function(e, t) { + return n.setRefreshToken(t), n.refreshAccessToken().then((() => ({ + token: n.getAccessToken(), + rToken: n.getRefreshToken(), + expireDate: n.getAccessTokenExpiresAt().getTime() + }))) + }(e, a).then((e => i(pU(e.token, e.rToken, e.expireDate)))); + this.setState({ + isTokenValid: !1, + isValidating: !0 + }), (o = n, s = e, Promise.all([lU(o, s), cU(o, s)]).then((e => { + let [t, n] = e; const { - jwt: n, - sessionId: a, - meetingFqn: r, - score: i, - message: o, - userId: s, - tenant: l - } = t, c = { - Authorization: `Bearer ${n}`, - "Content-Type": "application/json" - }, u = { - sessionId: a, - meetingFqn: r, - userId: s, - tenant: l, - submitted: (new Date).getTime(), - rating: i, - comments: o - }; - try { - const t = await fetch(e, { - method: "POST", - headers: c, - body: JSON.stringify(u) - }); - t.ok || tV.error("Status error:", t.status) - } catch (e) { - tV.error("Could not send request", e) + allocated: a, + used: r + } = n; + return { + userName: t, + spaceLeft: Math.floor((a - r) / 1048576) + } + }), (e => { + dU.error(e) + }))).then((e => { + void 0 === e ? this.setState({ + isTokenValid: !1, + isValidating: !1 + }) : this.setState({ + isTokenValid: !0, + isValidating: !1, + ...e + }) + })) + } + } + _onSubmit() { + const { + _appKey: e, + _autoCaptionOnRecord: t, + _conference: n, + _isDropboxEnabled: a, + _rToken: r, + _token: i, + dispatch: o + } = this.props; + let s; + const l = {}; + if (a && this.state.selectedRecordingService === yU) { + if (!i) return void o(eg({ + titleKey: "dialog.noDropboxToken" + }, Yf.LONG)); + s = JSON.stringify({ + file_recording_metadata: { + upload_credentials: { + service_name: yU, + token: i, + r_token: r, + app_key: e } - }(i, u) + } + }), l.type = yU + } else s = JSON.stringify({ + file_recording_metadata: { + share: this.state.sharingEnabled } - }(n, { - score: e, - message: t - })).catch((e => (a({ - type: zH, - error: e - }), Promise.reject(e)))))) + }), l.type = bU; + return Da(Qt("start", "confirm.button", l)), this._toggleScreenshotCapture(), n.startRecording({ + mode: kt.mode.FILE, + appData: s + }), t && o(La()), !0 } + } - function iV(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function RK(e) { + const { + autoCaptionOnRecord: t = !1, + fileRecordingsServiceEnabled: n = !1, + fileRecordingsServiceSharingEnabled: a = !1, + dropbox: r = {} + } = e["features/base/config"]; + return { + _appKey: r.appKey, + _autoCaptionOnRecord: t, + _conference: e["features/base/conference"].conference, + _fileRecordingsServiceEnabled: n, + _fileRecordingsServiceSharingEnabled: a, + _isDropboxEnabled: uU(e), + _rToken: e["features/dropbox"].rToken, + _tokenExpireDate: e["features/dropbox"].expireDate, + _token: e["features/dropbox"].token } - const oV = { - window: window.opener || window.parent - }, - sV = "message"; - class lV { - constructor({ - postisOptions: e - } = {}) { - this.postis = function(e) { - var t, n = e.scope, - a = e.window, - r = e.windowForEventListening || window, - i = e.allowedOrigin, - o = {}, - s = [], - l = {}, - c = !1, - u = "__ready__", - d = function(e) { - var t; - try { - t = JSON.parse(e.data) - } catch (e) { - return - } - if ((!i || e.origin === i) && t && t.postis && t.scope === n) { - var a = o[t.method]; - if (a) - for (var r = 0; r < a.length; r++) a[r].call(null, t.params); - else l[t.method] = l[t.method] || [], l[t.method].push(t.params) - } + } + const zK = NK, LK = "images/icon-cloud.png"; class FK extends x.Component { + constructor(e) { + super(e), this._onSignIn = this._onSignIn.bind(this), this._onSignOut = this._onSignOut.bind(this), this._onDropboxSwitchChange = this._onDropboxSwitchChange.bind(this), this._onRecordingServiceSwitchChange = this._onRecordingServiceSwitchChange.bind(this) + } + render() { + const { + _styles: e + } = this.props; + return C().createElement(ro, { + className: "recording-dialog", + style: e.container + }, this._renderNoIntegrationsContent(), this._renderIntegrationsContent(), this._renderFileSharingContent()) + } + _renderFileSharingContent() { + const { + fileRecordingsServiceSharingEnabled: e, + isVpaas: t, + selectedRecordingService: n + } = this.props; + if (!e || t || n !== bU) return null; + const { + _dialogStyles: a, + _styles: r, + isValidating: i, + onSharingSettingChanged: o, + sharingSetting: s, + t: l + } = this.props; + return C().createElement(ro, { + className: "recording-header", + key: "fileSharingSetting", + style: [r.header, a.topBorderContainer] + }, C().createElement(ro, { + className: "recording-icon-container" + }, C().createElement(jC, { + className: "recording-icon", + src: LK, + style: r.recordingIcon + })), C().createElement(KC, { + className: "recording-title", + style: { + ...a.text, + ...r.title + } + }, l("recording.fileSharingdescription")), C().createElement(rM, { + className: "recording-switch", + disabled: i, + onValueChange: o, + style: r.switch, + trackColor: { + false: Ki + }, + value: s + })) + } + _renderNoIntegrationsContent() { + if (!this.props.fileRecordingsServiceEnabled && this.props.integrationsEnabled) return null; + const { + _dialogStyles: e, + _styles: t, + isValidating: n, + isVpaas: a, + t: r + } = this.props, i = this.props.integrationsEnabled ? C().createElement(rM, { + className: "recording-switch", + disabled: n, + onValueChange: this._onRecordingServiceSwitchChange, + style: t.switch, + trackColor: { + false: Ki + }, + value: this.props.selectedRecordingService === bU + }) : null, o = a ? LK : "images/jitsiLogo_square.png", s = r(a ? "recording.serviceDescriptionCloud" : "recording.serviceDescription"); + return C().createElement(ro, { + className: "recording-header", + key: "noIntegrationSetting", + style: t.header + }, C().createElement(ro, { + className: "recording-icon-container" + }, C().createElement(jC, { + className: "recording-icon", + src: o, + style: t.recordingIcon + })), C().createElement(KC, { + className: "recording-title", + style: { + ...e.text, + ...t.title + } + }, s), i) + } + _renderIntegrationsContent() { + if (!this.props.integrationsEnabled) return null; + const { + _dialogStyles: e, + _styles: t, + isTokenValid: n, + isValidating: a, + t: r + } = this.props; + let i = null, + o = null; + return a ? (i = this._renderSpinner(), o = C().createElement(ro, { + className: "recording-switch" + })) : n ? (i = this._renderSignOut(), o = C().createElement(ro, { + className: "recording-switch" + }, C().createElement(PC, { + onValueChange: this._onSignOut, + style: t.signButton + }, r("recording.signOut")))) : o = C().createElement(ro, { + className: "recording-switch" + }, C().createElement(PC, { + onValueChange: this._onSignIn, + style: t.signButton + }, r("recording.signIn"))), this.props.fileRecordingsServiceEnabled && (o = C().createElement(rM, { + className: "recording-switch", + disabled: a, + onValueChange: this._onDropboxSwitchChange, + style: t.switch, + trackColor: { + false: Ki + }, + value: this.props.selectedRecordingService === yU + })), C().createElement(ro, null, C().createElement(ro, { + className: "recording-header recording-header-line", + style: t.header + }, C().createElement(ro, { + className: "recording-icon-container" + }, C().createElement(jC, { + className: "recording-icon", + src: "images/dropboxLogo_square.png", + style: t.recordingIcon + })), C().createElement(KC, { + className: "recording-title", + style: { + ...e.text, + ...t.title + } + }, r("recording.authDropboxText")), o), C().createElement(ro, { + className: "authorization-panel" + }, i)) + } + _onRecordingServiceSwitchChange() { + const { + isTokenValid: e, + onChange: t, + selectedRecordingService: n + } = this.props; + n !== bU && (t(bU), e && this._onSignOut()) + } + _onDropboxSwitchChange() { + const { + isTokenValid: e, + onChange: t, + selectedRecordingService: n + } = this.props; + n !== yU && (t(yU), e || this._onSignIn()) + } + _renderSpinner() { + return C().createElement(Ay, { + isCompleting: !1, + size: "small" + }) + } + _renderSignOut() { + const { + _styles: e, + spaceLeft: t, + t: n, + userName: a + } = this.props, r = function(e) { + return Math.floor((e || 0) / 10) + }(t); + return C().createElement(ro, null, C().createElement(ro, { + className: "logged-in-panel", + style: e.loggedIn + }, C().createElement(ro, null, C().createElement(KC, { + style: e.text + }, n("recording.loggedIn", { + userName: a + }))), C().createElement(ro, null, C().createElement(KC, { + style: e.text + }, n("recording.availableSpace", { + spaceLeft: t, + duration: r + }))))) + } + _onSignIn() { + Da(Qt("start", "signIn.button")), this.props.dispatch(((e, t) => { + const n = t(), + { + locationURL: a + } = n["features/base/connection"], + { + dropbox: r = {} + } = n["features/base/config"], + i = r.redirectURI || `${a.origin}/static/oauth.html`; + (function(e, t) { + const n = new oU.DropboxAuth({ + clientId: e + }); + return n.getAuthenticationUrl(t, void 0, "code", "offline", void 0, void 0, !0).then(sU).then((e => { + const a = new URLSearchParams(new URL(e).search).get("code"); + return n.getAccessTokenFromCode(t, a) + })).then((e => { + return { + token: e.result.access_token, + rToken: e.result.refresh_token, + expireDate: (t = e.result.expires_in, new Date(Date.now() + 1e3 * t).getTime()) }; - r.addEventListener("message", d, !1); - var p = { - listen: function(e, t) { - o[e] = o[e] || [], o[e].push(t); - var n = l[e]; - if (n) - for (var a = o[e], r = 0; r < a.length; r++) - for (var i = 0; i < n.length; i++) a[r].call(null, n[i]); - delete l[e] - }, - send: function(e) { - var t = e.method; - (c || e.method === u) && a && "function" == typeof a.postMessage ? a.postMessage(JSON.stringify({ - postis: !0, - scope: n, - method: t, - params: e.params - }), "*") : s.push(e) - }, - ready: function(e) { - c ? e() : setTimeout((function() { - p.ready(e) - }), 50) - }, - destroy: function(e) { - clearInterval(t), c = !1, r && "function" == typeof r.removeEventListener && r.removeEventListener("message", d), e && e() - } - }, - h = +new Date + Math.random() + ""; - return t = setInterval((function() { - p.send({ - method: u, - params: h - }) - }), 50), p.listen(u, (function(e) { - if (e === h) { - clearInterval(t), c = !0; - for (var n = 0; n < s.length; n++) p.send(s[n]); - s = [] - } else p.send({ - method: u, - params: e - }) - })), p - }(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - iV(e, t, n[t]) - })) - } - return e - }({}, oV, e)), this._receiveCallback = () => {}, this.postis.listen(sV, (e => this._receiveCallback(e))) - } - dispose() { - this.postis.destroy() - } - send(e) { - this.postis.send({ - method: sV, - params: e - }) - } - setReceiveCallback(e) { - this._receiveCallback = e - } + var t + })) + })(r.appKey, i).then((t => { + let { + token: n, + rToken: a, + expireDate: r + } = t; + e(pU(n, a, r)) + })).catch((e => dU.log("Cannot authorize dropbox", e))) + })) } - const cV = "request", - uV = "response"; - class dV { - constructor({ - backend: e - } = {}) { - this._listeners = new Map, this._requestID = 0, this._responseHandlers = new Map, this._unprocessedMessages = new Set, this.addListener = this.on, e && this.setBackend(e) - } - _disposeBackend() { - this._backend && (this._backend.dispose(), this._backend = null) - } - _onMessageReceived(e) { - if (e.type === uV) { - const t = this._responseHandlers.get(e.id); - t && (t(e), this._responseHandlers.delete(e.id)) - } else e.type === cV ? this.emit("request", e.data, ((t, n) => { - this._backend.send({ - type: uV, - error: n, - id: e.id, - result: t - }) - })) : this.emit("event", e.data) - } - dispose() { - this._responseHandlers.clear(), this._unprocessedMessages.clear(), this.removeAllListeners(), this._disposeBackend() - } - emit(e, ...t) { - const n = this._listeners.get(e); - let a = !1; - return n && n.size && n.forEach((e => { - a = e(...t) || a - })), a || this._unprocessedMessages.add(t), a - } - on(e, t) { - let n = this._listeners.get(e); - return n || (n = new Set, this._listeners.set(e, n)), n.add(t), this._unprocessedMessages.forEach((e => { - t(...e) && this._unprocessedMessages.delete(e) - })), this - } - removeAllListeners(e) { - return e ? this._listeners.delete(e) : this._listeners.clear(), this - } - removeListener(e, t) { - const n = this._listeners.get(e); - return n && n.delete(t), this - } - sendEvent(e = {}) { - this._backend && this._backend.send({ - type: "event", - data: e - }) - } - sendRequest(e) { - if (!this._backend) return Promise.reject(new Error("No transport backend defined!")); - this._requestID++; - const t = this._requestID; - return new Promise(((n, a) => { - this._responseHandlers.set(t, (({ - error: e, - result: t - }) => { - void 0 !== t ? n(t) : a(void 0 !== e ? e : new Error("Unexpected response format!")) - })), this._backend.send({ - type: cV, - data: e, - id: t - }) - })) - } - setBackend(e) { - this._disposeBackend(), this._backend = e, this._backend.setReceiveCallback(this._onMessageReceived.bind(this)) - } + _onSignOut() { + Da(Qt("start", "signOut.button")), this.props.dispatch(pU()) } - const pV = {}; - let hV; - - function mV() { - return hV || (hV = new dV({ - backend: new lV({ - postisOptions: pV - }) - })), hV + } + const qK = Ei(Ne((function(e) { + return { + ...UI(e), + isVpaas: cM(e), + _styles: qI.get(e, "StartRecordingDialogContent") + } + }))(FK)), BK = Ei(Ne((function(e) { + return { + ...RK(e), + _screensharing: yY(e), + _screenshotCaptureEnabled: e["features/base/config"].enableScreenshotCapture + } + }))(class extends zK { + render() { + const { + isTokenValid: e, + isValidating: t, + selectedRecordingService: n, + sharingEnabled: a, + spaceLeft: r, + userName: i + } = this.state, { + _fileRecordingsServiceEnabled: o, + _fileRecordingsServiceSharingEnabled: s, + _isDropboxEnabled: l + } = this.props, c = o ? t : !!l && !e; + return C().createElement(yL, { + okDisabled: c, + okKey: "dialog.startRecording", + onSubmit: this._onSubmit, + titleKey: "dialog.startRecording", + width: "small" + }, C().createElement(qK, { + fileRecordingsServiceEnabled: o, + fileRecordingsServiceSharingEnabled: s, + integrationsEnabled: this._areIntegrationsEnabled(), + isTokenValid: e, + isValidating: t, + onChange: this._onSelectedRecordingServiceChanged, + onSharingSettingChanged: this._onSharingSettingChanged, + selectedRecordingService: n, + sharingSetting: a, + spaceLeft: r, + userName: i + })) + } + _toggleScreenshotCapture() { + const { + dispatch: e, + _screensharing: t, + _screenshotCaptureEnabled: n + } = this.props; + n && t && e(OK(!0)) + } + })); class UK extends x.Component { + constructor(e) { + super(e), this._onSubmit = this._onSubmit.bind(this), this._toggleScreenshotCapture = this._toggleScreenshotCapture.bind(this) + } + _onSubmit() { + Da(Qt("stop", "confirm.button")); + const { + _fileRecordingSession: e + } = this.props; + return e && (this.props._conference.stopRecording(e.id), this._toggleScreenshotCapture()), !0 + } + } + const HK = Ei(Ne((function(e) { + return { + _conference: e["features/base/conference"].conference, + _fileRecordingSession: kU(e, kt.mode.FILE) + } + }))(class extends UK { + render() { + const { + t: e + } = this.props; + return C().createElement(yL, { + okKey: "dialog.confirm", + onSubmit: this._onSubmit, + titleKey: "dialog.recording", + width: "small" + }, e("dialog.stopRecordingWarning")) } - "number" == typeof Bt && (pV.scope = `jitsi_meet_external_api_${Bt}`), It().setExternalTransportBackend = e => hV.setBackend(e); - const fV = "SUSPEND_DETECTED", - gV = "SET_TRANSPORT"; + _toggleScreenshotCapture() { + this.props.dispatch(OK(!1)) + } + })), VK = "CLEAR_RECORDING_SESSIONS", WK = "RECORDING_SESSION_UPDATED", YK = "SET_PENDING_RECORDING_NOTIFICATION_UID", GK = "SET_SELECTED_RECORDING_SERVICE", KK = "SET_STREAM_KEY", $K = $e("features/recording"); - function bV() { - return { - type: fV - } + function JK(e) { + return eg(e, Yf.LONG) + } + + function ZK(e, t) { + return { + type: YK, + streamType: t, + uid: e } + } + const QK = Ei((function(e) { + let { + t, + url: n + } = e; + return C().createElement(C().Fragment, null, C().createElement("label", { + htmlFor: "copy-button-id" + }, t("addPeople.shareLink")), C().createElement(rG, { + "aria-label": t("addPeople.copyLink"), + className: "invite-more-dialog-conference-url", + displayedText: (a = n, decodeURI(a.replace(/^https?:\/\//i, ""))), + id: "copy-button-id", + textOnCopySuccess: t("addPeople.linkCopied"), + textOnHover: t("addPeople.copyLink"), + textToCopy: n + })); + var a + })); - function yV(e) { - return { - type: gV, - transport: e - } + function XK(e) { + const t = e.toString(), + n = Math.ceil(t.length / 3); + return `${t.substring(0,n)} ${t.substring(n,2*n)} ${t.substring(2*n,t.length)}` + } + class e$ extends x.Component { + constructor(e) { + super(e), this._onCopyText = this._onCopyText.bind(this), this._onCopyTextKeyPress = this._onCopyTextKeyPress.bind(this) } - const vV = function({ - children: e, - className: t = "", - disabled: n, - hasOptions: a, - OptionsIcon: r = $s, - testId: i, - type: o = "primary", - onClick: s, - onOptionsClick: l, - tabIndex: c, - role: u, - ariaPressed: d, - ariaLabel: p, - ariaDropDownLabel: h - }) { - const m = (0, E.useCallback)((e => { - !s || n || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), s(e)) - }), [s, n]), - f = (0, E.useCallback)((e => { - !l || n || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), e.stopPropagation(), l(e)) - }), [l, n]); - return x().createElement("div", { - "aria-disabled": n, - "aria-label": p, - className: `action-btn ${t} ${o} ${n?"disabled":""}`, - "data-testid": i || void 0, - onClick: n ? void 0 : s, - onKeyPress: m, + _onCopyText() { + const { + conferenceID: e, + phoneNumber: t, + t: n + } = this.props; + Ct(`${n("info.dialInNumber")} ${t} ${n("info.dialInConferenceID")} ${XK(e)}#`) + } + _onCopyTextKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onCopyText()) + } + render() { + const { + conferenceID: e, + phoneNumber: t, + t: n + } = this.props; + return C().createElement("div", { + className: "dial-in-number" + }, C().createElement("div", null, C().createElement("span", { + className: "phone-number" + }, C().createElement("span", { + className: "info-label" + }, n("info.dialInNumber")), C().createElement("span", { + className: "spacer" + }, " "), C().createElement("span", { + className: "info-value" + }, t)), C().createElement("span", { + className: "spacer" + }, " "), C().createElement("span", { + className: "conference-id" + }, C().createElement("span", { + className: "info-label" + }, n("info.dialInConferenceID")), C().createElement("span", { + className: "spacer" + }, " "), C().createElement("span", { + className: "info-value" + }, `${XK(e)}#`))), C().createElement("a", { + "aria-label": n("info.copyNumber"), + className: "dial-in-copy", + onClick: this._onCopyText, + onKeyPress: this._onCopyTextKeyPress, role: "button", tabIndex: 0 - }, e, a && x().createElement("div", { - "aria-disabled": n, - "aria-haspopup": "true", - "aria-label": h, - "aria-pressed": d, - className: "options", - "data-testid": "prejoin.joinOptions", - onClick: n ? void 0 : l, - onKeyPress: f, - role: u, - tabIndex: c - }, x().createElement(qs, { - className: "icon", - size: 14, - src: r + }, C().createElement(lo, { + src: qs }))) - }; - - function kV(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - class _V extends E.PureComponent { - constructor(e) { - super(e), this.state = { - focused: !1, - value: e.value || "" - }, this._onBlur = this._onBlur.bind(this), this._onChange = this._onChange.bind(this), this._onFocus = this._onFocus.bind(this), this._onKeyDown = this._onKeyDown.bind(this) - } - static getDerivedStateFromProps(e, t) { - const { - value: n - } = e; - return t.value !== n ? function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - kV(e, t, n[t]) - })) - } - return e - }({}, t, { - value: n - }) : null - } - render() { - return x().createElement("input", { - autoComplete: this.props.autoComplete, - autoFocus: this.props.autoFocus, - className: `field ${this.state.focused?"focused":""} ${this.props.className||""}`, - "data-testid": this.props.testId ? this.props.testId : void 0, - id: this.props.id, - onBlur: this._onBlur, - onChange: this._onChange, - onFocus: this._onFocus, - onKeyDown: this._onKeyDown, - placeholder: this.props.placeHolder, - readOnly: this.props.readOnly, - type: this.props.type, - value: this.state.value - }) - } - _onBlur() { - this.setState({ - focused: !1 - }) - } - _onChange(e) { - const t = Uj(e); - this.setState({ - value: t - }); - const { - onChange: n - } = this.props; - n && n(t) - } - _onFocus() { - this.setState({ - focused: !0 - }) - } - _onKeyDown(e) { - const { - onSubmit: t - } = this.props; - t && "Enter" === e.key && t() - } } - const wV = { - warning: { - src: function(e) { - return x().createElement("svg", Tc({}, e, { - viewBox: "0 0 18 16", - fill: "none" - }), Oc) - }, - className: "device-icon--warning" - }, - ok: { - src: function(e) { - return x().createElement("svg", Ll({}, e, { - viewBox: "0 0 18 18", - fill: "none" - }), Fl) - }, - className: "device-icon--ok" - } + } + const t$ = Ei(e$), n$ = Ei(Ne((function(e) { + const t = e["features/invite"]; + return { + _conferenceID: t.conferenceID, + _dialInfoPageUrl: UU(e), + _hasMultipleNumbers: VU(t.numbers) + } + }))((function(e) { + let { + _conferenceID: t, + _dialInfoPageUrl: n, + _hasMultipleNumbers: a, + phoneNumber: r, + t: i + } = e; + return C().createElement("div", { + className: "invite-more-dialog dial-in-display" + }, C().createElement(t$, { + conferenceID: t, + phoneNumber: r + }), a ? C().createElement("a", { + className: "more-numbers", + href: n, + rel: "noopener noreferrer", + target: "_blank" + }, i("info.moreNumbers")) : null) + }))), a$ = Ei((function(e) { + let { + inviteSubject: t, + inviteText: n, + inviteTextiOS: a, + t: r + } = e; + const [i, o] = (0, x.useState)(!1), s = encodeURIComponent(t), l = encodeURIComponent(n), c = encodeURIComponent(a), u = ka() ? c : l; + return C().createElement(C().Fragment, null, C().createElement("div", null, C().createElement("div", { + "aria-expanded": i, + "aria-label": r("addPeople.shareInvite"), + className: "invite-more-dialog email-container" + (i ? " active" : ""), + onClick: function() { + o(!i) }, - SV = Li(ze((function(e) { - return { - deviceStatusText: ZR(e), - deviceStatusType: QR(e) - } - }))((function({ - deviceStatusType: e, - deviceStatusText: t, - t: n - }) { - const { - src: a, - className: r - } = wV[e], i = "warning" === e, o = "device-status " + (i ? "device-status-error" : ""); - return x().createElement("div", { - className: o, - role: "alert", - tabIndex: -1 - }, x().createElement(qs, { - className: `device-icon ${r}`, - size: 16, - src: a - }), x().createElement("span", { - role: "heading" - }, n(i ? "prejoin.errorNoPermissions" : t))) - }))), - EV = "SET_SCREEN_AUDIO_SHARE_STATE", - xV = "SET_SCREENSHARE_CAPTURE_FRAME_RATE", - CV = "CLEAR_TOOLBOX_TIMEOUT", - AV = "FULL_SCREEN_CHANGED", - jV = "SET_FULL_SCREEN", - PV = "SET_OVERFLOW_DRAWER", - DV = "SET_OVERFLOW_MENU_VISIBLE", - TV = "SET_TOOLBAR_HOVERED", - OV = "SET_TOOLBOX_ENABLED", - MV = "SET_TOOLBOX_TIMEOUT", - IV = "SET_TOOLBOX_VISIBLE"; - - function NV(e) { - return { - type: OV, - enabled: e - } + onKeyPress: function(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), o(!i)) + }, + role: "button", + tabIndex: 0 + }, C().createElement("span", null, r("addPeople.shareInvite")), C().createElement(lo, { + src: _o + })), C().createElement("div", { + className: "invite-more-dialog icon-container" + (i ? " active" : "") + }, C().createElement(hC, { + content: r("addPeople.copyInvite"), + position: "top" + }, C().createElement("div", { + "aria-label": r("addPeople.copyInvite"), + className: "copy-invite-icon", + onClick: function() { + Ct(n) + }, + onKeyPress: function(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), Ct(n)) + }, + role: "button", + tabIndex: 0 + }, C().createElement(lo, { + src: qs + }))), function() { + const e = [{ + icon: rl, + tooltipKey: "addPeople.defaultEmail", + url: `mailto:?subject=${s}&body=${u}` + }, { + icon: _l, + tooltipKey: "addPeople.googleEmail", + url: `https://mail.google.com/mail/?view=cm&fs=1&su=${s}&body=${l}` + }, { + icon: Gc, + tooltipKey: "addPeople.outlookEmail", + url: `https://outlook.office.com/mail/deeplink/compose?subject=${s}&body=${l}` + }, { + icon: Gd, + tooltipKey: "addPeople.yahooEmail", + url: `https://compose.mail.yahoo.com/?To=&Subj=${s}&Body=${l}` + }]; + return C().createElement(C().Fragment, null, e.map(((e, t) => { + let { + icon: n, + tooltipKey: a, + url: i + } = e; + return C().createElement(hC, { + content: r(a), + key: t, + position: "top" + }, C().createElement("a", { + "aria-label": r(a), + className: "provider-icon", + href: i, + rel: "noopener noreferrer", + target: "_blank" + }, C().createElement(lo, { + src: n + }))) + }))) + }()))) + })); + var r$ = n(6501), i$ = n(7253), o$ = { + connectivity: { + icon: CD.Z, + iconSize: "medium" + }, + confirmation: { + icon: r$.Z, + iconSize: "medium" + }, + info: { + icon: i$.Z, + iconSize: "medium" + }, + warning: { + icon: CD.Z, + iconSize: "medium" + }, + error: { + icon: _N.Z, + iconSize: "medium" } + }; - function zV(e) { - return (t, n) => { - const { - toolbarConfig: { - alwaysVisible: a - } - } = n()["features/base/config"]; - !e && a || t({ - type: IV, - visible: e - }) + function s$() { + var e = sg(["\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n padding: 0 ", ";\n color: ", ";\n"]); + return s$ = function() { + return e + }, e + } + var l$ = (0, fA.Z)("appearance", { + connectivity: { + light: hb.B400, + dark: hb.B100 + }, + confirmation: { + light: hb.G300, + dark: hb.G300 + }, + info: { + light: hb.P300, + dark: hb.P300 + }, + warning: { + light: hb.Y300, + dark: hb.Y300 + }, + error: { + light: hb.R400, + dark: hb.R400 + } + }), c$ = (0, fA.Z)("appearance", { + connectivity: { + light: hb.B300, + dark: hb.B75 + }, + confirmation: { + light: hb.G200, + dark: hb.G200 + }, + info: { + light: hb.P200, + dark: hb.P200 + }, + warning: { + light: hb.Y200, + dark: hb.Y200 + }, + error: { + light: hb.R300, + dark: hb.R300 + } + }); + const u$ = $g.default.span(s$(), 4, (function(e) { + return e.isHovered || e.isOpen ? c$(e) : l$(e) + })); + var d$ = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function RV(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - LV(e, t, n[t]) + function r() { + return Ya(this, r), a.apply(this, arguments) + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this.props, + t = e.type, + n = e.isHovered, + a = e.isOpen, + r = o$[t], + i = r.icon, + o = r.iconSize; + return C().createElement(u$, { + appearance: t, + isHovered: n, + isOpen: a + }, C().createElement(i, { + label: "Inline message icon", + size: o })) } - return e - } - - function LV(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } + }]), r + }(C().Component); - function FV(e) { - return (t, n) => { - const a = n(), - { - visible: r - } = a["features/toolbox"], - i = xH(a); - e ? (r || t(BV()), t(UV())) : t(r ? WV((() => t(qV())), i) : BV()) - } - } + function p$() { + var e = sg(["\n color: ", ";\n padding: 0 ", "px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"]); + return p$ = function() { + return e + }, e + } - function qV(e = !1) { - return (t, n) => { - const a = n(), - { - toolbarConfig: { - alwaysVisible: r - } - } = a["features/base/config"], - { - hovered: i - } = a["features/toolbox"], - o = xH(a); - r || (t(UV()), !e && (i || a["features/invite"].calleeInfoVisible || a["features/chat"].isOpen || document.querySelector(".toolbox-content-items:focus-within,.filmstrip:focus-within,.remotevideomenu:hover")) ? t(WV((() => t(qV())), o)) : t(zV(!1))) - } - } + function h$() { + var e = sg(["\n color: ", ";\n font-weight: 500;\n padding: 0 ", "px;\n"]); + return h$ = function() { + return e + }, e + } - function BV(e = 0) { - return (t, n) => { - const a = n(), - { - toolbarConfig: { - initialTimeout: r, - alwaysVisible: i - }, - toolbarConfig: o - } = a["features/base/config"], - s = xH(a), - { - enabled: l, - visible: c - } = a["features/toolbox"]; - l && !c && (t(zV(!0)), i || ("number" == typeof r && t(na({ - toolbarConfig: RV({}, o, { - initialTimeout: null - }) - })), t(WV((() => t(qV())), e || r || s)))) - } - } + function m$() { + var e = sg(["\n color: ", ";\n text-decoration: underline;\n "]); + return m$ = function() { + return e + }, e + } - function UV() { - return { - type: CV - } - } + function f$() { + var e = sg(["\n align-items: center;\n display: flex;\n text-decoration: none;\n ", ";\n"]); + return f$ = function() { + return e + }, e + } - function HV(e) { - return { - type: DV, - visible: e + function g$() { + var e = sg(["\n display: inline-block;\n max-width: 100%;\n &:focus {\n outline: 1px solid ", ";\n }\n"]); + return g$ = function() { + return e + }, e + } + var b$ = (0, fA.Z)("appearance", { + connectivity: { + light: hb.B500, + dark: hb.B200 + }, + confirmation: { + light: hb.G400, + dark: hb.G400 + }, + info: { + light: hb.P500, + dark: hb.P300 + }, + warning: { + light: hb.Y500, + dark: hb.Y500 + }, + error: { + light: hb.R500, + dark: hb.R500 + } + }), y$ = $g.default.div(g$(), b$), v$ = $g.default.div(f$(), (function(e) { + return e.isHovered && (0, $g.css)(m$(), hb.N600) + })), k$ = (0, fA.Z)({ + light: hb.N600, + dark: hb.DN600 + }), _$ = (0, fA.Z)({ + light: hb.N300, + dark: hb.DN100 + }), w$ = $g.default.span(h$(), k$, 4), S$ = $g.default.span(p$(), _$, 4); + var E$ = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); - function VV(e) { - return { - type: TV, - hovered: e - } + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { + isOpen: !1, + isHovered: !1 + }), $a(w(e), "onMouseEnter", (function() { + e.setState({ + isHovered: !0 + }) + })), $a(w(e), "onMouseLeave", (function() { + e.setState({ + isHovered: !1 + }) + })), $a(w(e), "toggleDialog", (function() { + e.setState({ + isOpen: !e.state.isOpen + }) + })), e } - - function WV(e, t) { - return { - type: MV, - handler: e, - timeoutMS: t - } + return Ka(r, [{ + key: "render", + value: function() { + var e = this, + t = this.props, + n = t.children, + a = t.placement, + r = t.secondaryText, + i = t.title, + o = t.type, + s = t.testId, + l = this.state, + c = l.isHovered, + u = l.isOpen; + return C().createElement(y$, { + onMouseEnter: this.onMouseEnter, + onMouseLeave: this.onMouseLeave, + appearance: o, + "data-testid": s + }, C().createElement(xA, { + onClose: function() { + e.setState({ + isOpen: !1 + }) + }, + content: n, + isOpen: u, + placement: a, + testId: s && "".concat(s, "--inline-dialog") + }, C().createElement(By, { + appearance: "subtle-link", + onClick: this.toggleDialog, + spacing: "none", + testId: s && "".concat(s, "--button") + }, C().createElement(v$, { + isHovered: c + }, C().createElement(d$, { + type: o, + isHovered: c, + isOpen: u + }), i ? C().createElement(w$, { + "data-testid": s && "".concat(s, "--title"), + isHovered: c + }, i) : null, r ? C().createElement(S$, { + "data-testid": s && "".concat(s, "--text"), + isHovered: c + }, r) : null)))) + } + }]), r + }(C().Component); $a(E$, "defaultProps", { + children: null, + placement: "bottom-start", + secondaryText: "", + title: "", + type: "connectivity" + }); class x$ extends x.Component { + constructor(e) { + super(e), this._query = this._query.bind(this) + } + _getDisplayName(e) { + return e.type === DU.PHONE ? e.number : e.type === DU.SIP ? e.address : e.name + } + _invite(e) { + if (Da($t("clicked", "inviteButton", { + ...RU(e), + inviteAllowed: this._isAddDisabled() + })), this._isAddDisabled()) return Promise.resolve([]); + this.setState({ + addToCallInProgress: !0 + }); + const { + _callFlowsEnabled: t, + dispatch: n + } = this.props; + return n(YY(e)).then((a => { + if (this.setState({ + addToCallInProgress: !1 + }), a.length) { + const e = RU(a); + PU.error(`${a.length} invites failed`, e), Da($t("error", "invite", { + ...e + })), this.setState({ + addToCallError: !0 + }) + } else if (!t) { + const t = e.length; + let a; + t >= 3 ? a = { + titleArguments: { + name: this._getDisplayName(e[0]), + count: t - 1 + }, + titleKey: "notify.invitedThreePlusMembers" + } : 2 === t ? a = { + titleArguments: { + first: this._getDisplayName(e[0]), + second: this._getDisplayName(e[1]) + }, + titleKey: "notify.invitedTwoMembers" + } : t && (a = { + titleArguments: { + name: this._getDisplayName(e[0]) + }, + titleKey: "notify.invitedOneMember" + }), a && n(tg(a, Yf.SHORT)) + } + return a + })) } - const { - browser: YV - } = c.default.util, GV = ["chrome", "electron", "firefox", "nwjs", "safari"], KV = [], $V = { - chrome: YV.isChrome.bind(YV), - chromium: YV.isChromiumBased.bind(YV), - electron: YV.isElectron.bind(YV), - firefox: YV.isFirefox.bind(YV), - nwjs: YV.isNWJS.bind(YV), - opera: YV.isOpera.bind(YV), - safari: YV.isSafari.bind(YV) - }; - - function JV() { - return "ReactNative" !== navigator.product && !(!Sa() && ZV(interfaceConfig.UNSUPPORTED_BROWSERS || KV)) && (Sa() || c.default.isWebRtcSupported()) + _isAddDisabled() { + return !this.state.inviteItems.length || this.state.addToCallInProgress } - - function ZV(e) { - return Boolean(e.find((e => { - const t = $V[e]; - return !!t && t.call(YV) - }))) + _query() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""; + const { + _addPeopleEnabled: t, + _dialOutAuthUrl: n, + _dialOutEnabled: a, + _jwt: r, + _peopleSearchQueryTypes: i, + _peopleSearchUrl: o, + _sipInviteEnabled: s + } = this.props; + return function(e, t) { + const n = e.trim(), + { + dialOutAuthUrl: a, + addPeopleEnabled: r, + dialOutEnabled: i, + peopleSearchQueryTypes: o, + peopleSearchUrl: s, + sipInviteEnabled: l, + jwt: c + } = t; + let u; + u = r && n ? function(e, t, n) { + let a = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : ["conferenceRooms", "user", "room"]; + const r = encodeURIComponent(n), + i = encodeURIComponent(JSON.stringify(a)); + return fetch(`${e}?query=${r}&queryTypes=${i}&jwt=${t}`).then((e => { + const t = e.json(); + return e.ok ? t : t.then((e => Promise.reject(e))) + })).catch((e => (PU.error("Error searching directory:", e), Promise.reject(e)))) + }(s, c, n, o) : Promise.resolve([]); + let d, p = n.startsWith("+"); + if (i && a && function(e) { + if (! function() { + let e = "^[0-9+()-\\s]*$"; + return "undefined" != typeof interfaceConfig && (e = interfaceConfig.PHONE_NUMBER_REGEX || e), new RegExp(e) + }().test(e)) return !1; + const t = IU(e); + return Boolean(t.length) + }(n)) { + let e = n; + p || n.startsWith("1") || (e = `1${e}`), e = IU(e), d = function(e, t) { + const n = `${t}?phone=${e}`; + return new Promise(((e, t) => { + $.getJSON(n).then(e).catch(t) + })) + }(e, a) + } else i && !a ? (p = !0, d = Promise.resolve({ + allow: !0, + country: "", + phone: n + })) : d = Promise.resolve({}); + return Promise.all([u, d]).then((e => { + let [t, a] = e; + const r = [...t]; + return t.find((e => e.type === DU.PHONE)) || "boolean" != typeof a.allow || r.push({ + allowed: a.allow, + country: a.country, + type: DU.PHONE, + number: a.phone, + originalEntry: n, + showCountryCodeReminder: !p + }), l && function(e) { + return TU.test(e) + }(n) && r.push({ + type: DU.SIP, + address: n + }), r + })) + }(e, { + addPeopleEnabled: t, + dialOutAuthUrl: n, + dialOutEnabled: a, + jwt: r, + peopleSearchQueryTypes: i, + peopleSearchUrl: o, + sipInviteEnabled: s + }) } + } - function QV(e) { - return XV(e) && !tW(e) + function C$(e) { + const { + callFlowsEnabled: t, + dialOutAuthUrl: n, + peopleSearchQueryTypes: a, + peopleSearchUrl: r + } = e["features/base/config"]; + return { + _addPeopleEnabled: LU(e), + _callFlowsEnabled: t, + _dialOutAuthUrl: n, + _dialOutEnabled: FU(e), + _jwt: e["features/base/jwt"].jwt, + _peopleSearchQueryTypes: a, + _peopleSearchUrl: r, + _sipInviteEnabled: qU(e) } + } - function XV(e) { - return e["features/screen-share"].isSharingAudio + function A$(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const T$ = Ei(Ne((function(e) { + const { + enableFeaturesBasedOnToken: t + } = e["features/base/config"]; + let n = !1; + if (t) { + const { + features: t = {} + } = Uh(e); + "true" !== String(t["outbound-call"]) && (n = !0) + } + return { + ...C$(e), + _footerTextEnabled: n, + _isVpaas: cM(e) + } + }))(class extends x$ { + constructor(e) { + super(e), A$(this, "_multiselect", null), A$(this, "state", { + addToCallError: !1, + addToCallInProgress: !1, + inviteItems: [] + }), this._onClearItems = this._onClearItems.bind(this), this._onClearItemsKeyPress = this._onClearItemsKeyPress.bind(this), this._onItemSelected = this._onItemSelected.bind(this), this._onSelectionChange = this._onSelectionChange.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onSubmitKeyPress = this._onSubmitKeyPress.bind(this), this._parseQueryResults = this._parseQueryResults.bind(this), this._setMultiSelectElement = this._setMultiSelectElement.bind(this), this._renderFooterText = this._renderFooterText.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._resourceClient = { + makeQuery: this._query, + parseResults: this._parseQueryResults + }; + const { + t + } = e; + this._translations = { + _dialOutEnabled: t("addPeople.phoneNumbers"), + _addPeopleEnabled: t("addPeople.contacts"), + _sipInviteEnabled: t("addPeople.sipAddresses") + } } - - function eW() { - return !Sa() && ft.isChrome() || ft.isElectron() && "windows" === wa.OS + componentDidUpdate(e, t) { + t.addToCallError && !this.state.addToCallInProgress && !this.state.addToCallError && this._multiselect && this._multiselect.setSelectedItems([]) } - - function tW(e) { - var t; - const n = Ko(e["features/base/tracks"]); - return (null == n || null === (t = n.jitsiTrack) || void 0 === t ? void 0 : t.getVideoType()) === ao + render() { + const { + _addPeopleEnabled: e, + _dialOutEnabled: t, + _isVpaas: n, + _sipInviteEnabled: a, + t: r + } = this.props, i = this._renderFooterText(); + let o = this.state.addToCallInProgress; + const s = { + _dialOutEnabled: t, + _addPeopleEnabled: e, + _sipInviteEnabled: a + }, + l = Object.keys(s).filter((e => Boolean(s[e]))).map((e => this._translations[e])).join(", "), + c = l ? `${r("dialog.add")} ${l}` : r("addPeople.disabled"); + return l || (o = !0), C().createElement("div", { + className: "add-people-form-wrap", + onKeyDown: this._onKeyDown + }, this._renderErrorMessage(), C().createElement(qj, { + footer: i, + isDisabled: o, + loadingMessage: r("addPeople.searching"), + noMatchesFound: r("addPeople.noResults"), + onItemSelected: this._onItemSelected, + onSelectionChange: this._onSelectionChange, + placeholder: c, + ref: this._setMultiSelectElement, + resourceClient: this._resourceClient, + shouldFitContainer: !0, + shouldFocus: !0, + showSupportLink: !n + }), this._renderFormActions()) + } + _onItemSelected(e) { + return e.item.type === DU.PHONE && (e.content = e.item.number), e + } + _onSelectionChange(e) { + this.setState({ + inviteItems: e + }) } - - function nW(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _onSubmit() { + const { + inviteItems: e + } = this.state, t = e.map((e => { + let { + item: t + } = e; + return t + })); + this._invite(t).then((t => { + if (t.length) { + const n = t.map((e => e.id || e.user_id || e.number)), + a = e.filter((e => { + let { + item: t + } = e; + return n.includes(t.id || t.user_id || t.number) + })); + this._multiselect && this._multiselect.setSelectedItems(a) + } else this.props.dispatch({ + type: UY + }) + })) } - const aW = Li(ze((function(e) { - return { - _isAudioOnlySharing: QV(e) - } - }))(class extends Vw { - constructor(...e) { - super(...e), nW(this, "accessibilityLabel", "toolbar.accessibilityLabel.shareaudio"), nW(this, "icon", up), nW(this, "label", "toolbar.shareaudio"), nW(this, "tooltip", "toolbar.shareaudio"), nW(this, "toggledIcon", xp), nW(this, "toggledLabel", "toolbar.stopAudioSharing") - } - _handleClick() { - const { - dispatch: e, - handleClick: t - } = this.props; - t ? t() : (e(cW()), e(HV(!1))) - } - _isToggled() { - return this.props._isAudioOnlySharing - } - })); - class rW extends E.Component { - constructor(e) { - super(e), this._onContinue = this._onContinue.bind(this), this._onSelectHideShareAudioHelper = this._onSelectHideShareAudioHelper.bind(this) - } - _onContinue() { - return this.props.dispatch(us(void 0, !0)), !0 - } - _onSelectHideShareAudioHelper({ - target: { - checked: e - } - }) { - this.props.dispatch(bn({ - hideShareAudioHelper: e - })) - } - render() { + _onSubmitKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onSubmit()) + } + _onKeyDown(e) { + const { + inviteItems: t + } = this.state; + "Enter" === e.key && (e.preventDefault(), !this._isAddDisabled() && t.length && this._onSubmit()) + } + _getAvatar(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "avatar-small"; + return C().createElement(sp, { + className: t, + status: e.status, + url: e.avatar + }) + } + _parseQueryResults() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + const { + t, + _dialOutEnabled: n + } = this.props, a = [DU.USER, DU.VIDEO_ROOM, DU.ROOM], r = e.filter((e => a.includes(e.type))), i = []; + for (const e of r) { const { - t: e - } = this.props; - return x().createElement(IO, { - hideCancelButton: !1, - okKey: e("dialog.shareAudio"), - onSubmit: this._onContinue, - titleKey: e("dialog.shareAudioTitle"), - width: "medium" - }, x().createElement("div", { - className: "share-audio-dialog" - }, x().createElement("img", { - className: "share-audio-animation", - src: "images/share-audio.gif" - }), x().createElement(GL, { - isChecked: this.props._shouldHideShareAudioHelper, - label: e("dialog.hideShareAudioHelper"), - name: "hide-share-audio-helper", - onChange: this._onSelectHideShareAudioHelper - }))) + name: t, + phone: a + } = e, r = this._getAvatar(e, "avatar-xsmall"), o = this._getAvatar(e); + i.push({ + content: t, + elemBefore: o, + item: e, + tag: { + elemBefore: r + }, + value: e.id || e.user_id + }), a && n && i.push({ + filterValues: [t, a], + content: `${a} (${t})`, + elemBefore: o, + item: { + type: DU.PHONE, + number: a + }, + tag: { + elemBefore: r + }, + value: a + }) } + const o = e.filter((e => e.type === DU.PHONE)), + s = this._renderTelephoneIcon(), + l = o.map((e => { + const n = `${e.allowed?"":t("addPeople.countryNotSupported")} ${e.showCountryCodeReminder?t("addPeople.countryReminder"):""}`.trim(); + return { + filterValues: [e.originalEntry, e.number], + content: t("addPeople.telephone", { + number: e.number + }), + description: n, + isDisabled: !e.allowed, + elemBefore: s, + item: e, + tag: { + elemBefore: s + }, + value: e.number + } + })), + c = e.filter((e => e.type === DU.SIP)).map((e => ({ + filterValues: [e.address], + content: e.address, + description: "", + item: e, + value: e.address + }))); + return [...i, ...l, ...c] } - const iW = Li(ze((function(e) { - return { - _shouldHideShareAudioHelper: ua(e) - } - }))(rW)); - class oW extends E.Component { - constructor(e) { - super(e), this._onStopSharing = this._onStopSharing.bind(this) - } - _onStopSharing() { - return this.props.dispatch(us(void 0, !this.props._isAudioScreenShareWarning)), !0 - } - render() { - const { - t: e - } = this.props; - let t, n, a, r, i, o; - return this.props._isAudioScreenShareWarning ? (a = "dialog.shareAudioWarningH1", r = "dialog.shareMediaWarningGenericH2", t = "dialog.shareAudioWarningD1", n = "dialog.shareAudioWarningD2", o = "dialog.shareAudioWarningTitle", i = "toolbar.stopScreenSharing") : (a = "dialog.shareScreenWarningTitle", r = "dialog.shareMediaWarningGenericH2", t = "dialog.shareScreenWarningD1", n = "dialog.shareScreenWarningD2", o = "dialog.shareScreenWarningTitle", i = "toolbar.stopAudioSharing"), x().createElement(IO, { - hideCancelButton: !1, - okKey: e(i), - onSubmit: this._onStopSharing, - titleKey: e(o), - width: "small" - }, x().createElement("div", { - className: "share-screen-warn-dialog" - }, x().createElement("p", { - className: "header" - }, " ", e(a), " "), x().createElement("p", { - className: "description" - }, " ", e(t), " "), x().createElement("div", { - className: "separator-line" - }), x().createElement("p", { - className: "header" - }, " ", e(r), " "), x().createElement("p", { - className: "description" - }, " ", e(n), " "))) - } - } - const sW = Li(ze()(oW)); - - function lW(e) { - return { - type: EV, - isSharingAudio: e + _renderFooterText() { + const { + _footerTextEnabled: e, + t + } = this.props; + let n; + return e && (n = { + content: C().createElement("div", { + className: "footer-text-wrap" + }, C().createElement("div", null, C().createElement("span", { + className: "footer-telephone-icon" + }, C().createElement(lo, { + src: Xc + }))), xi(t, "addPeople.footerText")) + }), n + } + _onClearItems() { + this._multiselect && this._multiselect.setSelectedItems([]), this.setState({ + inviteItems: [] + }) + } + _onClearItemsKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClearItems()) + } + _renderFormActions() { + const { + inviteItems: e + } = this.state, { + t + } = this.props; + return e.length ? C().createElement("div", { + className: "invite-more-dialog invite-buttons" + (this._isAddDisabled() ? " disabled" : "") + }, C().createElement("a", { + "aria-label": t("dialog.Cancel"), + className: "invite-more-dialog invite-buttons-cancel", + onClick: this._onClearItems, + onKeyPress: this._onClearItemsKeyPress, + role: "button", + tabIndex: 0 + }, t("dialog.Cancel")), C().createElement("a", { + "aria-label": t("addPeople.add"), + className: "invite-more-dialog invite-buttons-add", + onClick: this._onSubmit, + onKeyPress: this._onSubmitKeyPress, + role: "button", + tabIndex: 0 + }, t("addPeople.add"))) : null + } + _renderErrorMessage() { + if (!this.state.addToCallError) return null; + const { + t: e + } = this.props, t = e("inlineDialogFailure.supportMsg"), n = interfaceConfig.SUPPORT_URL, a = n ? C().createElement("span", null, C().createElement("span", null, t.padEnd(t.length + 1)), C().createElement("span", null, C().createElement("a", { + "aria-label": n, + href: n, + rel: "noopener noreferrer", + target: "_blank" + }, e("inlineDialogFailure.support"))), C().createElement("span", null, ".")) : null; + return C().createElement("div", { + className: "modal-dialog-form-error" + }, C().createElement(E$, { + title: e("addPeople.failedToAdd"), + type: "error" + }, a)) + } + _renderTelephoneIcon() { + return C().createElement("span", { + className: "add-telephone-icon" + }, C().createElement(lo, { + src: Xc + })) + } + _setMultiSelectElement(e) { + this._multiselect = e + } + })), D$ = Ei((function(e) { + let { + t + } = e; + return C().createElement(C().Fragment, null, C().createElement("span", null, t("addPeople.addContacts")), C().createElement(T$, null), C().createElement("div", { + className: "invite-more-dialog separator" + })) + })), P$ = Ei((function(e) { + let { + liveStreamViewURL: t, + t: n + } = e; + const [a, r] = (0, x.useState)(!1), [i, o] = (0, x.useState)(!1); + return C().createElement(C().Fragment, null, C().createElement("span", null, n("addPeople.shareStream")), C().createElement("div", { + className: "invite-more-dialog stream" + (a ? " clicked" : ""), + onClick: async function() { + o(!1), await Ct(t) && (r(!0), setTimeout((() => { + r(!1) + }), 2500)) + }, + onMouseOut: function() { + o(!1) + }, + onMouseOver: function() { + a || o(!0) + } + }, a ? C().createElement(C().Fragment, null, C().createElement("div", { + className: "invite-more-dialog stream-text selected" + }, n("addPeople.linkCopied")), C().createElement(lo, { + src: os + })) : C().createElement(C().Fragment, null, C().createElement("div", { + className: "invite-more-dialog stream-text" + }, i ? n("addPeople.copyStream") : t), C().createElement(lo, { + src: qs + }))), C().createElement("div", { + className: "invite-more-dialog separator" + })) + })), j$ = Ei(Ne((function(e, t) { + const n = kU(e, kt.mode.STREAM), + { + iAmRecorder: a, + inviteAppName: r + } = e["features/base/config"], + i = LU(e), + o = FU(e), + s = a || !i && !o, + l = e["features/invite"], + c = l && l.numbers ? WU(l.numbers) : void 0; + return { + _dialIn: l, + _embedMeetingVisible: !cM(e) && $U("embed"), + _dialInVisible: $U("dial-in"), + _urlSharingVisible: eG(e) && $U("url"), + _emailSharingVisible: $U("email"), + _invitationText: NU({ + state: e, + phoneNumber: c, + t: t.t + }), + _invitationTextiOS: OU({ + state: e, + phoneNumber: c, + t: t.t + }), + _inviteAppName: r, + _inviteContactsVisible: interfaceConfig.ENABLE_DIAL_OUT && !s, + _inviteUrl: zF(e), + _liveStreamViewURL: n && n.liveStreamViewURL, + _phoneNumber: c + } + }), { + updateNumbers: () => GY() + })((function(e) { + let { + _dialIn: t, + _embedMeetingVisible: n, + _dialInVisible: a, + _urlSharingVisible: r, + _emailSharingVisible: i, + _invitationText: o, + _invitationTextiOS: s, + _inviteAppName: l, + _inviteContactsVisible: c, + _inviteUrl: u, + _liveStreamViewURL: d, + _phoneNumber: p, + t: h, + updateNumbers: m + } = e; + (0, x.useEffect)((() => { + t.numbers || m() + }), []), (0, x.useEffect)((() => (Da($t("opened", "dialog")), () => { + Da($t("closed", "dialog")) + })), []); + const f = h("addPeople.inviteMoreMailSubject", { + appName: null != l ? l : interfaceConfig.APP_NAME + }); + return C().createElement(yL, { + cancelKey: "dialog.close", + hideCancelButton: !0, + submitDisabled: !0, + titleKey: "addPeople.inviteMorePrompt", + width: "small" + }, C().createElement("div", { + className: "invite-more-dialog" + }, c && C().createElement(D$, null), r ? C().createElement(QK, { + url: u + }) : null, i ? C().createElement(a$, { + inviteSubject: f, + inviteText: o, + inviteTextiOS: s + }) : null, n && C().createElement(oG, null), C().createElement("div", { + className: "invite-more-dialog separator" + }), d && C().createElement(P$, { + liveStreamViewURL: d + }), p && a && C().createElement(n$, { + phoneNumber: p + }))) + }))); + + function M$(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const I$ = Ei(Ne()(class extends bC { + constructor() { + super(...arguments), M$(this, "accessibilityLabel", "toolbar.accessibilityLabel.invite"), M$(this, "icon", fo), M$(this, "label", "toolbar.invite"), M$(this, "tooltip", "toolbar.invite") + } + _handleClick() { + const { + dispatch: e, + handleClick: t + } = this.props; + t ? t() : (Da(ln("invite")), e(WY())) + } + })); class O$ extends x.Component { + render() { + const { + conferenceID: e, + conferenceName: t, + t: n + } = this.props; + return C().createElement("div", { + className: "dial-in-conference-id" + }, C().createElement("div", { + className: "dial-in-conference-name" + }, t), C().createElement("div", { + className: "dial-in-conference-description" + }, n("info.dialANumber")), C().createElement("div", { + className: "dial-in-conference-pin" + }, `${n("info.dialInConferenceID")} ${XK(e)}`)) + } + } + const N$ = Ei(O$); class R$ extends x.Component { + render() { + const { + numbers: e + } = this.props; + return this._renderWithCountries(e) + } + _renderWithCountries(e) { + const { + t + } = this.props; + let n, a = !1; + if (Array.isArray(e)) a = !0, n = e.reduce(((e, n) => { + const a = n.countryCode.toUpperCase(); + let r; + return "SIP" === a ? r = t("info.sip") : (r = t(`countries:countries.${a}`), r || (r = t(`countries:countries.${a}.0`))), e[r] ? e[r].push(n) : e[r] = [n], e + }), {}); + else { + n = {}; + for (const [t, a] of Object.entries(e.numbers)) + if (Array.isArray(a)) { + const e = a.map((e => ({ + formattedNumber: e + }))); + n[t] = e + } } + const r = []; + return Object.keys(n).forEach((e => { + const t = n[e]; + r.push(C().createElement("tr", { + className: "number-group", + key: e + }, this._renderFlag(t[0].countryCode), C().createElement("td", { + className: "country" + }, e), C().createElement("td", { + className: "numbers-list-column" + }, this._renderNumbersList(t)), C().createElement("td", { + className: "toll-free-list-column" + }, this._renderNumbersTollFreeList(t)))) + })), C().createElement("table", { + className: "dial-in-numbers-list" + }, C().createElement("thead", null, C().createElement("tr", null, a ? C().createElement("th", null) : null, C().createElement("th", null, t("info.country")), C().createElement("th", null, t("info.numbers")), C().createElement("th", null))), C().createElement("tbody", { + className: "dial-in-numbers-body" + }, r)) + } + _renderFlag(e) { + return e ? C().createElement("td", { + className: "flag-cell" + }, "SIP" === e ? C().createElement(lo, { + src: Jd + }) : C().createElement("i", { + className: `flag iti-flag ${e}` + })) : null + } + _renderNumbersList(e) { + const t = e.map((e => C().createElement("li", { + className: "dial-in-number", + key: e.formattedNumber + }, this._renderNumberLink(e.formattedNumber)))); + return C().createElement("ul", { + className: "numbers-list" + }, t) + } + _renderNumbersTollFreeList(e) { + const { + t + } = this.props, n = e.map((e => C().createElement("li", { + className: "toll-free", + key: e.formattedNumber + }, e.tollFree ? t("info.dialInTollFree") : ""))); + return C().createElement("ul", { + className: "toll-free-list" + }, n) + } + _renderNumberLink(e) { + return this.props.clickableNumbers ? C().createElement("a", { + href: `tel:${e},${this.props.conferenceID}%23`, + key: e + }, e) : e + } + } + const z$ = Ei(R$); class L$ extends x.Component { + constructor(e) { + super(e), + function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(this, "state", { + conferenceID: null, + error: "", + loading: !0, + numbers: null, + numbersEnabled: null + }), this._onGetNumbersSuccess = this._onGetNumbersSuccess.bind(this), this._onGetConferenceIDSuccess = this._onGetConferenceIDSuccess.bind(this), this._setErrorMessage = this._setErrorMessage.bind(this) + } + componentDidMount() { + const e = this._getNumbers().then(this._onGetNumbersSuccess).catch(this._setErrorMessage), + t = this._getConferenceID().then(this._onGetConferenceIDSuccess).catch(this._setErrorMessage); + Promise.all([e, t]).then((() => { + this.setState({ + loading: !1 + }) + })) + } + render() { + let e, t = ""; + const { + conferenceID: n, + error: a, + loading: r, + numbersEnabled: i + } = this.state; + return r ? e = "" : !1 === i ? e = this.props.t("info.dialInNotSupported") : a ? e = a : (t = "has-numbers", e = [n ? C().createElement(N$, { + conferenceID: n, + conferenceName: this.props.room, + key: "conferenceID" + }) : null, C().createElement(z$, { + clickableNumbers: this.props.clickableNumbers, + conferenceID: n, + key: "numbers", + numbers: this.state.numbers + })]), C().createElement("div", { + className: `${this.props.className} ${t}` + }, e) + } + _getConferenceID() { + const { + room: e + } = this.props, { + dialInConfCodeUrl: t, + hosts: n + } = config, a = n && n.muc; + return t && a && e ? bn(`${t}?conference=${e}@${a}`, !0).catch((() => Promise.reject(this.props.t("info.genericError")))) : Promise.resolve() + } + _getNumbers() { + const { + room: e + } = this.props, { + dialInNumbersUrl: t, + hosts: n + } = config, a = n && n.muc; + let r = ""; + return t ? (e && a && (r = `?conference=${e}@${a}`), bn(`${t}${r}`, !0).catch((() => Promise.reject(this.props.t("info.genericError"))))) : Promise.reject(this.props.t("info.dialInNotSupported")) + } + _onGetConferenceIDSuccess() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const { + conference: t, + id: n + } = e; + t && n && this.setState({ + conferenceID: n + }) + } + _onGetNumbersSuccess(e) { + this.setState({ + numbersEnabled: Array.isArray(e) ? e.length > 0 : e.numbersEnabled, + numbers: e + }) + } + _setErrorMessage(e) { + this.setState({ + error: e + }) } + } + const F$ = Ei(L$); + var q$ = n(7734), B$ = n.n(q$); - function cW() { - return (e, t) => { - const n = t(), - a = QV(n); - tW(n) ? e(sP(sW, { - _isAudioScreenShareWarning: !0 - })) : ua(n) || ft.isElectron() || a ? e(us(void 0, !0)) : e(sP(iW)) + function U$() { + return U$ = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } + return e + }, U$.apply(this, arguments) + } + class H$ extends x.Component { + render() { + const { + id: e, + name: t, + status: n = YW + } = this.props._callee, a = this.props._isVideoMuted ? "solidBG" : void 0; + return C().createElement(ro, U$({}, this._style("ringing", a), { + id: "ringOverlay" + }), C().createElement(ro, this._style("ringing__content"), C().createElement(sp, U$({}, this._style("ringing__avatar"), { + participantId: e + })), C().createElement(ro, this._style("ringing__status"), C().createElement(eY, U$({ + defaultPresence: n + }, this._style("ringing__text")))), C().createElement(ro, this._style("ringing__name"), C().createElement(KC, this._style("ringing__text"), t)))) + } + _style() { + let e, t = ""; + for (var n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + for (const n of a) n && (B$() && n in B$() ? e = { + ...e, + ...B$()[n] + } : t += `${n} `); + const i = {}; + return t && (i.className = t.trim()), e && (i.style = e), i + } + } + const V$ = Ne((function(e) { + const t = ch(e["features/base/tracks"], Bi); + for (const [n, a] of Jh(e)) + if ("poltergeist" === a.botType) return { + _callee: { + id: n, + name: Kh(e, n), + status: $h(e, n) + }, + _isVideoMuted: t + }; + return { + _callee: e["features/invite"].initialCalleeInfo, + _isVideoMuted: t } + }))(H$); class W$ extends x.Component { + render() { + return this.props._calleeInfoVisible ? C().createElement(V$, null) : null + } + } + const Y$ = Ne((function(e) { + return { + _calleeInfoVisible: e["features/invite"].calleeInfoVisible + } + }))(W$), G$ = "SET_GOOGLE_API_STATE", K$ = "SET_GOOGLE_API_PROFILE", $$ = ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"], J$ = { + NEEDS_LOADING: 0, + LOADED: 1, + SIGNED_IN: 2, + NOT_AVAILABLE: 3 + }; + let Z$; + const Q$ = { + get() { + const e = this._getGoogleApiClient(); + return e ? Promise.resolve(e) : this.load() + }, + getCurrentUserProfile() { + return this.get().then((() => this.isSignedIn())).then((e => e ? this._getGoogleApiClient().auth2.getAuthInstance().currentUser.get().getBasicProfile() : null)) + }, + initializeClient(e, t, n) { + return this.get().then((a => new Promise(((r, i) => { + const o = `${t?"https://www.googleapis.com/auth/youtube.readonly":""} ${n?"https://www.googleapis.com/auth/calendar":""}`.trim(); + setTimeout((() => { + a.client.init({ + clientId: e, + discoveryDocs: $$, + scope: o + }).then(r).catch(i) + }), 500) + })))) + }, + isSignedIn() { + return this.get().then((e => Boolean(e && e.auth2 && e.auth2.getAuthInstance && e.auth2.getAuthInstance() && e.auth2.getAuthInstance().isSignedIn && e.auth2.getAuthInstance().isSignedIn.get()))) + }, + load() { + return Z$ || (Z$ = new Promise(((e, t) => { + const n = document.createElement("script"); + n.async = !0, n.addEventListener("error", (() => { + n.remove(), Z$ = null, t() + })), n.addEventListener("load", e), n.type = "text/javascript", n.src = "https://apis.google.com/js/api.js", document.head.appendChild(n) + })).then((() => new Promise(((e, t) => this._getGoogleApiClient().load("client:auth2", { + callback: e, + onerror: t + }))))).then((() => this._getGoogleApiClient())), Z$) + }, + requestAvailableYouTubeBroadcasts() { + return this.get().then((e => e.client.request("https://content.googleapis.com/youtube/v3/liveBroadcasts?broadcastType=all&mine=true&part=id%2Csnippet%2CcontentDetails%2Cstatus"))) + }, + requestLiveStreamsForYouTubeBroadcast(e) { + return this.get().then((t => t.client.request(`https://content.googleapis.com/youtube/v3/liveStreams?part=id%2Csnippet%2Ccdn%2Cstatus&id=${e}`))) + }, + showAccountSelection() { + return this.get().then((e => e.auth2.getAuthInstance().signIn())) + }, + signInIfNotSignedIn() { + return this.get().then((() => this.isSignedIn())).then((e => { + if (!e) return this.showAccountSelection() + })) + }, + signOut() { + return this.get().then((e => e.auth2 && e.auth2.getAuthInstance && e.auth2.getAuthInstance() && e.auth2.getAuthInstance().signOut())) + }, + _convertCalendarEntry(e) { + return { + calendarId: e.calendarId, + description: e.description, + endDate: e.end.dateTime, + id: e.id, + location: e.location, + startDate: e.start.dateTime, + title: e.summary, + url: this._getConferenceDataVideoUri(e.conferenceData) + } + }, + _getConferenceDataVideoUri() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + try { + if ("jitsi" === e.parameters.addOnParameters.parameters.conferenceSolutionType) { + const t = e.entryPoints.find((e => "video" === e.entryPointType)); + if (t) return t.uri + } + } catch (e) {} + }, + _getCalendarEntries(e, t) { + return this.get().then((() => this.isSignedIn())).then((e => e ? this._getGoogleApiClient().client.calendar.calendarList.list() : null)).then((n => { + if (!n) return Promise.resolve(); + const a = n.result.items.map((e => ({ + id: e.id, + accessRole: e.accessRole + }))).map((n => { + let { + id: a, + accessRole: r + } = n; + const i = new Date, + o = new Date; + return i.setDate(i.getDate() + e), o.setDate(o.getDate() + t), this._getGoogleApiClient().client.calendar.events.list({ + calendarId: a, + timeMin: i.toISOString(), + timeMax: o.toISOString(), + showDeleted: !1, + singleEvents: !0, + orderBy: "startTime" + }).then((e => e.result.items.map((e => { + const t = { + ...e + }; + return "writer" !== r && "owner" !== r || (t.calendarId = a), t + })))) + })); + return Promise.all(a).then((e => [].concat(...e))).then((e => e.map((e => this._convertCalendarEntry(e))))) + })) + }, + _updateCalendarEntry(e, t, n, a) { + return this.get().then((() => this.isSignedIn())).then((r => r ? this._getGoogleApiClient().client.calendar.events.get({ + calendarId: t, + eventId: e + }).then((r => { + let i = a; + return r.result.description && (i = `${r.result.description}\n\n${a}`), this._getGoogleApiClient().client.calendar.events.patch({ + calendarId: t, + eventId: e, + description: i, + location: n + }) + })) : null)) + }, + _getGoogleApiClient: () => window.gapi + }, X$ = Q$; - function uW(e) { - return (t, n) => { - QV(n()) ? t(sP(sW, { - _isAudioScreenShareWarning: !1 - })) : t(us(e)) + function eJ() { + return (e, t) => X$.get().then((() => { + const { + liveStreamingEnabled: e, + enableCalendarIntegration: n, + googleApiApplicationClientID: a + } = t()["features/base/config"]; + return t()["features/google-api"].googleAPIState === J$.NEEDS_LOADING ? X$.initializeClient(a, e, n) : Promise.resolve() + })).then((() => e(tJ(J$.LOADED)))).then((() => X$.isSignedIn())).then((t => { + t && e(tJ(J$.SIGNED_IN)) + })) + } + + function tJ(e, t) { + return { + type: G$, + googleAPIState: e, + googleResponse: t + } + } + + function nJ() { + return e => X$.get().then((() => X$.signInIfNotSignedIn())).then((() => e({ + type: G$, + googleAPIState: J$.SIGNED_IN + }))) + } + + function aJ() { + return e => X$.get().then((() => X$.signInIfNotSignedIn())).then((() => e({ + type: G$, + googleAPIState: J$.SIGNED_IN + }))).then((() => X$.getCurrentUserProfile())).then((t => (e({ + type: K$, + profileEmail: t.getEmail() + }), t.getEmail()))) + } + class rJ extends x.Component {} + const iJ = Ei(class extends rJ { + render() { + const { + t: e + } = this.props; + return C().createElement("div", { + className: "google-sign-in", + onClick: this.props.onClick + }, C().createElement("img", { + alt: e("welcomepage.logo.googleLogo"), + className: "google-logo", + src: "images/googleLogo.svg" + }), C().createElement("div", { + className: "google-cta" + }, e(this.props.signedIn ? "liveStreaming.signOut" : "liveStreaming.signIn"))) + } + }), oJ = "CLEAR_CALENDAR_INTEGRATION", sJ = "REFRESH_CALENDAR", lJ = "SET_CALENDAR_AUTHORIZATION", cJ = "SET_CALENDAR_ERROR", uJ = "SET_CALENDAR_EVENTS", dJ = "SET_CALENDAR_INTEGRATION", pJ = "SET_CALENDAR_AUTH_STATE", hJ = "SET_CALENDAR_PROFILE_EMAIL", mJ = "SET_LOADING_CALENDAR_EVENTS", fJ = "google", gJ = "microsoft", bJ = "sign_in_failed"; + + function yJ(e) { + return e.endDate > Date.now() && !((e.allDay || e.endDate - e.startDate > 828e5) && (!e.attendees || e.attendees.length < 2)) + } + + function vJ(e) { + if (!e || !e.length) return; + const { + dispatch: t, + getState: n + } = this, a = n()["features/base/known-domains"], r = new Map; + for (const t of e) { + const e = _J(t, a); + if (e && yJ(e)) { + const t = Ue().hex(JSON.stringify([e.url, e.title, new Date(e.startDate).toTimeString()])), + n = r.get(t); + (!n || n.startDate > e.startDate) && r.set(t, e) } } - const dW = "SET_AUDIO_SETTINGS_VISIBILITY", - pW = "SET_VIDEO_SETTINGS_VISIBILITY", - hW = Li(ze()((function(e) { - const { - onLogout: t, - t: n - } = e; - return x().createElement(IO, { - hideCancelButton: !1, - okKey: n("dialog.Yes"), - onSubmit: t, - titleKey: n("dialog.logoutTitle"), - width: "small" - }, x().createElement("div", null, n("dialog.logoutQuestion"))) - }))), - mW = { - CALENDAR: "calendar_tab", - DEVICES: "devices_tab", - MORE: "more_tab", - PROFILE: "profile_tab", - SOUNDS: "sounds_tab" - }, - fW = [5, 15, 30]; + t(LJ(Array.from(r.values()).sort(((e, t) => e.startDate - t.startDate)).slice(0, 10))) + } - function gW(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function kJ(e, t, n) { + const a = new RegExp(t, "gi"); + let r = a.exec(e); + for (; null !== r;) { + const t = r[0]; + if (!new RegExp(n, "gi").exec(t)) return t; + r = a.exec(e) } - const bW = Li(ze()(class extends Vw { - constructor(...e) { - super(...e), gW(this, "accessibilityLabel", "toolbar.accessibilityLabel.Settings"), gW(this, "icon", sp), gW(this, "label", "toolbar.Settings"), gW(this, "tooltip", "toolbar.Settings") - } - _handleClick() { - const { - defaultTab: e = mW.DEVICES, - dispatch: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("settings")), t(IQ(e))) - } - })), - yW = "SIP_GW_AVAILABILITY_CHANGED", - vW = "SIP_GW_INVITE_ROOMS", - kW = "ADD_PENDING_INVITE_REQUEST", - _W = "BEGIN_ADD_PEOPLE", - wW = "REMOVE_PENDING_INVITE_REQUESTS", - SW = "SET_CALLEE_INFO_VISIBLE", - EW = "HIDE_ADD_PEOPLE_DIALOG", - xW = "UPDATE_DIAL_IN_NUMBERS_FAILED", - CW = "UPDATE_DIAL_IN_NUMBERS_SUCCESS"; - - function AW() { - return { - type: _W + } + + function _J(e, t) { + if (e) { + const n = function(e, t) { + const n = `http(s)?://(${t.join("|")})/[^\\s<>$]+`, + a = "/static/", + r = [e.title, e.url, e.location, e.notes, e.description]; + for (const e of r) + if ("string" == typeof e) { + const t = kJ(e, n, a) || kJ(e, "org.jitsi.meet:[^\\s<>$]+", a); + if (t) { + const e = An(t); + if (e) return e.toString() + } + } return null + }(e, t), + a = Date.parse(e.startDate), + r = Date.parse(e.endDate); + if (!isNaN(a) && !isNaN(r) && ("ReactNative" === navigator.product || n || e.calendarId)) return { + allDay: e.allDay, + attendees: e.attendees, + calendarId: e.calendarId, + endDate: r, + id: e.id, + startDate: a, + title: e.title, + url: n } } + return null + } + const wJ = $e("features/calendar-sync"), SJ = { + getCalendarEntries: function(e, t) { + return () => X$.get().then((() => X$._getCalendarEntries(e, t))) + }, + getCurrentEmail: () => aJ(), + load: () => e => e(eJ()), + signIn: nJ, + _isSignedIn: () => () => X$.isSignedIn(), + updateCalendarEvent: function(e, t, n) { + return (a, r) => BU(r(), n).then((a => X$._updateCalendarEntry(e, t, n, a))) + } + }; + var EJ = n(387), xJ = n(7943), CJ = n(5559); + const AJ = `${window.location.origin}/static/msredirect.html`; + let TJ = null; + const DJ = { + getCalendarEntries: (e, t) => (n, a) => { + const r = a()["features/calendar-sync"] || {}, + i = r.msAuthState && r.msAuthState.accessToken; + if (!i) return Promise.reject("Not authorized, please sign in!"); + const o = EJ.Client.init({ + authProvider: e => e(null, i) + }); + return o.api("/me/calendars").get().then((n => { + const a = n.value.map((e => e.id)).map((n => function(e, t, n, a) { + const r = new Date, + i = new Date; + r.setDate(r.getDate() + n), i.setDate(i.getDate() + a); + const o = `Start/DateTime ge '${r.toISOString()}' and End/DateTime lt '${i.toISOString()}'`, + s = (new Intl.DateTimeFormat).resolvedOptions().timeZone, + l = (0, CJ.findWindows)(s); + return e.api(`/me/calendars/${t}/events`).filter(o).header("Prefer", `outlook.timezone="${l}"`).select("id,subject,start,end,location,body").orderby("createdDateTime DESC").get().then((e => e.value.map((e => ({ + ...e, + calendarId: t + }))))) + }(o, n, e, t))); + return Promise.all(a) + })).then((e => [].concat(...e))).then((e => e.map((e => { + return { + calendarId: (t = e).calendarId, + description: t.body.content, + endDate: t.end.dateTime, + id: t.id, + location: t.location.displayName, + startDate: t.start.dateTime, + title: t.subject + }; + var t + })))) + }, + getCurrentEmail: () => (e, t) => { + const { + msAuthState: n = {} + } = t()["features/calendar-sync"] || {}, a = n.userSigninName || ""; + return Promise.resolve(a) + }, + load: () => () => Promise.resolve(), + signIn: () => (e, t) => { + if (TJ) return TJ.focus(), Promise.reject("Sign in already in progress."); + const n = aY(), + a = { + authState: PJ(), + authNonce: PJ() + }; + e(qJ(a)); + const { + microsoftApiApplicationClientID: r + } = t()["features/base/config"], i = jJ(r, a.authState, a.authNonce); + TJ = window.open(i, "Auth M$", `width=480, height=600, top=${screen.height/2-300}, left=${screen.width/2-240}`); + const o = setInterval((() => { + TJ && TJ.closed ? (n.reject("Popup closed before completing auth."), TJ = null, window.removeEventListener("message", s), clearInterval(o)) : TJ || clearInterval(o) + }), 500); - function jW(e, t = !1) { - return (n, a) => { - const r = a(), - i = Bh(r), - { - calleeInfoVisible: o - } = r["features/invite"]; - t && !o && 1 === e.length && e[0].type === gR.USER && 1 === i && n(DW(!0, e[0])); - const { - conference: s, - password: l - } = r["features/base/conference"]; - if (void 0 === s) return new Promise((t => { - n({ - type: kW, - request: { - invitees: e, - callback: e => t(e) + function s(t) { + let { + data: i + } = t; + if (!i || "ms-login" !== i.type) return; + window.removeEventListener("message", s), TJ && TJ.close(), TJ = null; + const o = MJ(i.url), + l = function(e, t, n) { + if (e.state !== t.authState) return null; + const a = e.id_token; + if (!a) return null; + const r = a.split("."); + if (3 !== r.length) return null; + let i; + try { + i = JSON.parse(function(e) { + let t = e; + t.length % 4 == 2 ? t += "==" : t.length % 4 == 3 && (t += "="), t = t.replace(/-/g, "+").replace(/_/g, "/"); + return t = xJ.toByteArray(t).reduce(((e, t) => e + t.toString(16).padStart(2, "0")), ""), t = t.replace(/(..)/g, "%$1"), decodeURIComponent(t) + }(r[1])) + } catch (e) { + return null } - }) - })); - let c = [], - u = [...e]; + if (i.nonce !== t.authNonce || i.aud !== n || i.iss !== `https://login.microsoftonline.com/${i.tid}/v2.0`) return null; + const o = new Date, + s = new Date(1e3 * (i.nbf - 300)), + l = new Date(1e3 * (i.exp + 300)); + return o < s || o > l ? null : { + accessToken: e.access_token, + idToken: a, + userDisplayName: i.name, + userDomainType: "9188040d-6c67-4c5b-b112-36a304b66dad" === i.tid ? "consumers" : "organizations", + userSigninName: i.preferred_username + } + }(o, a, r); + l ? (e(qJ({ + authState: void 0, + accessToken: l.accessToken, + idToken: l.idToken, + tokenExpires: o.tokenExpires, + userDomainType: l.userDomainType, + userSigninName: l.userSigninName + })), n.resolve()) : n.reject("Invalid token received") + } + return window.addEventListener("message", s), n.promise + }, + _isSignedIn: () => (e, t) => { + const n = (new Date).getTime(), + a = t()["features/calendar-sync"].msAuthState || {}, + r = parseInt(a.tokenExpires, 10), + i = n > r && !isNaN(r); + return a.accessToken && i ? e(((e, t) => { const { - callFlowsEnabled: d, - inviteServiceUrl: p, - inviteServiceCallFlowsUrl: h - } = r["features/base/config"], m = zI(r), { - sipInviteUrl: f - } = r["features/base/config"], { - locationURL: g - } = r["features/base/connection"], { - jwt: b - } = r["features/base/jwt"], { - name: y - } = Rh(r), v = u.filter((({ - type: e - }) => e === gR.PHONE)).map((e => { - const t = e.number; - return s.dial(t).then((() => { - u = u.filter((t => t !== e)) - })).catch((e => bR.error("Error inviting phone number:", e))) + microsoftApiApplicationClientID: n + } = t()["features/base/config"], { + msAuthState: a = {} + } = t()["features/calendar-sync"] || {}, r = (i = n, o = a.userDomainType, s = a.userSigninName, [jJ(i, "undefined", "undefined"), "prompt=none", `domain_hint=${o}`, `login_hint=${s}`].join("&")); + var i, o, s; + const l = document.createElement("iframe"); + l.setAttribute("id", "auth-iframe"), l.setAttribute("name", "auth-iframe"), l.setAttribute("style", "display: none"), l.setAttribute("src", r); + const c = new Promise((e => { + l.onload = () => { + e(l.contentWindow.location.hash) + } })); - c = c.concat(v); - const k = u.filter((({ - type: e - }) => [gR.USER, gR.ROOM].includes(e))); - if (k.length) { - const e = function(e, t, n, a) { - return a && 0 !== a.length ? fetch(`${e}?token=${n}`, { - body: JSON.stringify({ - invited: a, - url: t - }), - method: "POST", - headers: { - "Content-Type": "application/json" - } - }) : Promise.resolve() - }(d ? h : p, m, b, k).then((() => { - u = u.filter((({ - type: e - }) => ![gR.USER, gR.ROOM].includes(e))) - })).catch((e => { - n(DW(!1)), bR.error("Error inviting people:", e) - })); - c.push(e) - } - const _ = u.filter((({ - type: e - }) => e === gR.VIDEO_ROOM)); - s && _.length > 0 && n(function(e, t) { - return { - type: vW, - conference: e, - rooms: t - } - }(s, _)), u = u.filter((({ - type: e - }) => e !== gR.VIDEO_ROOM)); - const w = u.filter((({ - type: e - }) => e === gR.SIP)); - return s && function(e, t, n, a, r, i, o) { - if (0 === e.length) return Promise.resolve(); - const s = new RegExp(`/${r}`, "i"), - l = Object.assign(new URL(t.toString()), { - pathname: t.pathname.replace(s, ""), - hash: "", - search: "" - }); - fetch(n, { - body: JSON.stringify({ - callParams: { - callUrlInfo: { - baseUrl: l, - callName: r - }, - passcode: i - }, - sipClientParams: { - displayName: o, - sipAddress: e.map((e => e.address)) - } - }), - method: "POST", - headers: { - Authorization: `Bearer ${a}`, - "Content-Type": "application/json" + return document.body ? (document.body.appendChild(l), c.then((t => { + const n = MJ(t); + e(qJ({ + accessToken: n.access_token, + idToken: n.id_token, + tokenExpires: n.tokenExpires + })) + }))) : Promise.reject("Cannot refresh auth token in this environment") + })).then((() => !0)).catch((() => !1)) : Promise.resolve(a.accessToken && !i) + }, + updateCalendarEvent: (e, t, n) => (t, a) => { + const r = a()["features/calendar-sync"] || {}, + i = r.msAuthState && r.msAuthState.accessToken; + return i ? BU(a(), n, !0).then((t => { + const a = EJ.Client.init({ + authProvider: e => e(null, i) + }); + return a.api(`/me/events/${e}`).get().then((r => { + const i = r.body; + return r.bodyPreview && (i.content = `${r.bodyPreview}

`), i.content += t.split("\n").join("
"), a.api(`/me/calendar/events/${e}`).patch({ + body: i, + location: { + displayName: n } }) - }(w, g, f, b, s.options.name, l, y), u = u.filter((({ - type: e - }) => e !== gR.SIP)), Promise.all(c).then((() => u)) - } + })) + })) : Promise.reject("Not authorized, please sign in!") } + }; - function PW() { - return (e, t) => { - const n = t(), - { - dialInConfCodeUrl: a, - dialInNumbersUrl: r, - hosts: i - } = n["features/base/config"], - { - numbersFetched: o - } = n["features/invite"], - s = i && i.muc; - if (o || !a || !r || !s) return; - const { - room: l - } = n["features/base/conference"]; - Promise.all([vR(r, l, s), yR(a, l, s)]).then((([t, { - conference: n, - id: a, - message: r, - sipUri: i - }]) => { - if (!n || !a) return Promise.reject(r); - e({ - type: CW, - conferenceID: a, - dialInNumbers: t, - sipUri: i - }) - })).catch((t => { - e({ - type: xW, - error: t - }) - })) - } + function PJ() { + const e = new Uint16Array(8); + return window.crypto.getRandomValues(e), `${IJ(e[0])}${IJ(e[1])}-${IJ(e[2])}-${IJ(e[3])}-${IJ(e[4])}-${IJ(e[5])}${IJ(e[6])}${IJ(e[7])}` + } + + function jJ(e, t, n) { + return `https://login.microsoftonline.com/common/oauth2/v2.0/authorize?${["response_type=id_token+token",`client_id=${e}`,`redirect_uri=${AJ}`,"scope=openid profile Calendars.ReadWrite",`state=${t}`,`nonce=${n}`,"response_mode=fragment"].join("&")}` + } + + function MJ(e) { + const t = It(Cn(e), !0, "hash"), + n = 1e3 * (parseInt(t.expires_in, 10) - 300), + a = new Date, + r = new Date(a.getTime() + n); + return t.tokenExpires = r.getTime().toString(), t + } + + function IJ(e) { + let t = e.toString(16); + for (; t.length < 4;) t = `0${t}`; + return t + } + + function OJ(e) { + const { + enableCalendarIntegration: t, + googleApiApplicationClientID: n, + microsoftApiApplicationClientID: a + } = Fe(e)["features/base/config"] || {}; + return Boolean(t && (n || a)) + } + + function NJ(e, t, n) { + const { + dispatch: a, + getState: r + } = e, { + integrationType: i + } = r()["features/calendar-sync"], o = RJ(i); + o ? (a(UJ(!0)), a(o.load()).then((() => a(o._isSignedIn()))).then((e => e ? Promise.resolve() : Promise.reject({ + error: bJ + }))).then((() => a(o.getCalendarEntries(-1, 10)))).then((e => vJ.call({ + dispatch: a, + getState: r + }, e))).then((() => { + a(BJ()) + }), (e => { + wJ.error("Error fetching calendar.", e), e.error === bJ && a(FJ()), a(BJ(e)) + })).then((() => a(UJ(!1))))) : wJ.debug("No calendar type available") + } + + function RJ(e) { + switch (e) { + case fJ: + return SJ; + case gJ: + return DJ } + } - function DW(e, t) { - return { - type: SW, - calleeInfoVisible: e, - initialCalleeInfo: t - } - } - - function TW({ - className: e, - displayedText: t, - textToCopy: n, - textOnHover: a, - textOnCopySuccess: r, - id: i - }) { - const [o, s] = (0, E.useState)(!1), [l, c] = (0, E.useState)(!1); - async function u() { - c(!1), await Tt(n) && (s(!0), setTimeout((() => { - s(!1) - }), 2500)) - } + function zJ() { + let e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], + t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + return { + type: sJ, + forcePermission: e, + isInteractive: t + } + } - function d() { - o || c(!0) - } + function LJ(e) { + return { + type: uJ, + events: e + } + } - function p() { - c(!1) - } - return x().createElement("div", { - "aria-label": a, - className: `${e} copy-button${o?" clicked":""}`, - id: i, - onBlur: p, - onClick: u, - onFocus: d, - onKeyPress: function(e) { - !u || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), u()) - }, - onMouseOut: p, - onMouseOver: d, - role: "button", - tabIndex: 0 - }, o ? x().createElement(x().Fragment, null, x().createElement("div", { - className: "copy-button-content selected" - }, x().createElement("span", { - role: "alert" - }, r)), x().createElement(qs, { - src: Rl - })) : x().createElement(x().Fragment, null, x().createElement("div", { - className: "copy-button-content" - }, l ? a : t), x().createElement(qs, { - src: cc - }))) + function FJ() { + return { + type: oJ } - TW.defaultProps = { - className: "" - }; - const OW = TW, - MW = Li(Ee((e => ({ - url: zI(e) - })))((function({ - t: e, - url: t - }) { - const n = () => ``; - return x().createElement(IO, { - hideCancelButton: !0, - submitDisabled: !0, - titleKey: "embedMeeting.title", - width: "small" - }, x().createElement("div", { - className: "embed-meeting-dialog" - }, x().createElement("textarea", { - "aria-label": e("dialog.embedMeeting"), - className: "embed-meeting-code", - readOnly: !0, - value: n() - }), x().createElement(OW, { - "aria-label": e("addPeople.copyLink"), - className: "embed-meeting-copy", - displayedText: e("dialog.copy"), - textOnCopySuccess: e("dialog.copied"), - textOnHover: e("dialog.copy"), - textToCopy: n() - }))) - }))), - IW = Li(Ee(null, { - openEmbedDialog: sP - })((function({ - t: e, - openEmbedDialog: t - }) { - function n() { - t(MW) - } - return x().createElement("div", { - "aria-label": e("embedMeeting.title"), - className: "embed-meeting-trigger", - onClick: n, - onKeyPress: function(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), n()) - }, - role: "button", - tabIndex: 0 - }, e("embedMeeting.title")) - }))); - var NW = n(6383), - zW = n.n(NW); - - function RW(e) { - var t = e.theme, - n = e.name, - a = e.props; - if (!t || !t.props || !t.props[n]) return a; - var r, i = t.props[n]; - for (r in i) void 0 === a[r] && (a[r] = i[r]); - return a + } + + function qJ(e) { + return { + type: pJ, + msAuthState: e } - const LW = function(e, t) { - return function(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - return function(n) { - var a = t.defaultTheme, - r = t.withTheme, - i = void 0 !== r && r, - o = t.name, - s = Fg(t, ["defaultTheme", "withTheme", "name"]), - l = o, - c = pU(e, z({ - defaultTheme: a, - Component: n, - name: o || n.displayName, - classNamePrefix: l - }, s)), - u = x().forwardRef((function(e, t) { - e.classes; - var r, s = e.innerRef, - l = Fg(e, ["classes", "innerRef"]), - u = c(z({}, n.defaultProps, e)), - d = l; - return ("string" == typeof o || i) && (r = xq() || a, o && (d = RW({ - theme: r, - name: o, - props: l - })), i && !d.theme && (d.theme = r)), x().createElement(n, z({ - ref: s || t, - classes: u - }, d)) - })); - return zW()(u, n), u - } - }(e, z({ - defaultTheme: fH - }, t)) - }; - class FW extends E.Component {} - class qW extends FW { - render() { - const { - className: e, - icon: t, - id: n, - text: a - } = this.props, r = t ? "label-text-with-icon" : ""; - return x().createElement("div", { - className: `label ${e}`, - id: n - }, t && x().createElement(qs, { - size: "16", - src: t - }), a && x().createElement("span", { - className: r - }, a)) - } - } - class BW extends E.Component { - static getDerivedStateFromProps(e, t) { - return { - staleLabel: (e._status === Et.status.OFF || !t.staleLabel) && t.staleLabel - } - } - constructor(e) { - super(e), this.state = { - staleLabel: !1 - }, this._updateStaleStatus({}, e) - } - componentDidUpdate(e) { - this._updateStaleStatus(e, this.props) - } - render() { - return !this.props._status || this.state.staleLabel || this.props._iAmRecorder ? null : this._renderLabel() - } - _getLabelKey() { - switch (this.props.mode) { - case Et.mode.STREAM: - return "recording.live"; - case Et.mode.FILE: - return "recording.rec"; - default: - return - } - } - _updateStaleStatus(e, t) { - t._status === Et.status.OFF && e._status !== Et.status.OFF && setTimeout((() => { - this.props._status === Et.status.OFF && this.setState({ - staleLabel: !0 - }) - }), 1e4) - } + } + + function BJ(e) { + return { + type: cJ, + error: e } - const UW = LW((e => ({ - [Et.mode.STREAM]: { - background: e.palette.ui03 - }, - [Et.mode.FILE]: { - background: e.palette.iconError - } - })))(Li(ze((function(e, t) { - const { - mode: n - } = t; - return { - _iAmRecorder: e["features/base/config"].iAmRecorder, - _status: cR(e, n) - } - }))(class extends BW { - _renderLabel() { - if (this.props._status !== Et.status.ON) return null; + } + + function UJ(e) { + return { + type: mJ, + isLoadingEvents: e + } + } + + function HJ(e) { + return { + type: dJ, + integrationReady: !0, + integrationType: e + } + } + + function VJ(e) { + return t => { + const n = RJ(e); + return n ? t(n.getCurrentEmail()).then((e => { + t({ + type: hJ, + email: e + }) + })) : Promise.reject("No integration found") + } + } + class WJ extends x.Component { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) + } + render() { + return C().createElement(hC, { + content: this.props.t("calendarSync.addMeetingURL") + }, C().createElement("div", { + className: "button add-button", + onClick: this._onClick, + onKeyPress: this._onKeyPress, + role: "button" + }, C().createElement(lo, { + src: po + }))) + } + _onClick() { + const { + calendarId: e, + dispatch: t, + eventId: n + } = this.props; + Da(Wt("add.url")), t(function(e, t) { + return (n, a) => { const { - classes: e, - mode: t, - t: n - } = this.props; - return x().createElement("div", null, x().createElement(qW, { - className: e && e[t], - text: n(this._getLabelKey()) + integrationType: r + } = a()["features/calendar-sync"], i = RJ(r); + if (!i) return Promise.reject("No integration found"); + const { + locationURL: o + } = a()["features/base/connection"], s = Lq(); + let l = o.href; + l.endsWith("/") || (l += "/"); + const c = `${l}${s}`; + return n(i.updateCalendarEvent(e, t, c)).then((() => { + const r = a()["features/calendar-sync"].events.slice(0), + i = r.findIndex((n => n.id === e && n.calendarId === t)), + o = Object.assign({}, r[i]); + return o.url = c, r[i] = o, n(LJ(r)) })) } - }))), - HW = Li(ze((function(e) { - const { - recordingLimit: t = {} - } = e["features/base/config"], { - limit: n, - appName: a, - appURL: r - } = t; + }(n, e)) + } + _onKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClick()) + } + } + const YJ = Ei(Ne()(WJ)); class GJ extends x.Component { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) + } + render() { + const { + t: e + } = this.props; + return C().createElement(hC, { + content: e("calendarSync.joinTooltip") + }, C().createElement("div", { + className: "button join-button", + onClick: this._onClick, + onKeyPress: this._onKeyPress, + role: "button" + }, C().createElement(lo, { + size: "14", + src: po + }))) + } + _onClick(e) { + this.props.onPress(e, this.props.url) + } + _onKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClick()) + } + } + const KJ = Ei(GJ); class $J extends x.Component { + constructor(e) { + super(e), this._onJoinPress = this._onJoinPress.bind(this), this._onPress = this._onPress.bind(this), this._toDisplayableItem = this._toDisplayableItem.bind(this) + } + componentDidMount() { + Da(function() { return { - _limit: n, - _appName: a, - _appURL: r + action: "selected", + attributes: arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + source: "calendar", + type: Lt } - }))((function(e) { - const { - _limit: t, - _appName: n, - _appURL: a, - isLiveStreaming: r, - t: i - } = e; - return x().createElement("span", null, Fi(i, (r ? "liveStreaming" : "recording") + ".limitNotificationDescriptionWeb", { - limit: t, - app: n, - url: a - })) - }))); - - function VW(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + }()) } - - function WW(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + render() { + const { + disabled: e, + listEmptyComponent: t + } = this.props, { + _eventList: n = [] + } = this.props, a = n.map(this._toDisplayableItem); + return C().createElement(JC, { + disabled: e, + listEmptyComponent: t, + meetings: a, + onPress: this._onPress + }) } - const YW = Li(ze((function(e, t) { - const n = function(e, t) { - let n, { - visible: a - } = t, - r = ""; - if (void 0 === a) { - const t = Jh(e), - { - enableFeaturesBasedOnToken: i, - liveStreamingEnabled: o - } = e["features/base/config"], - { - features: s = {} - } = Rh(e); - a = t && o, i && (a = a && "true" === String(s.livestreaming), n = "disabled" === String(s.livestreaming), a || n || (n = !0, a = !0, r = "dialog.liveStreamingDisabledTooltip")) - } - return sR(e, Et.mode.FILE) && (n = !0, r = "dialog.liveStreamingDisabledBecauseOfActiveRecordingTooltip"), { - _disabled: n, - _isLiveStreamRunning: Boolean(sR(e, Et.mode.STREAM)), - _tooltip: r, - visible: a - } - }(e, t), - a = Qn(e); - let { - visible: r - } = t; - return void 0 === r && (r = a.includes("livestreaming") && n.visible), - function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - WW(e, t, n[t]) - })) - } - return e - }({}, n, { - visible: r - }) - }))(class extends Vw { - constructor(...e) { - super(...e), VW(this, "accessibilityLabel", "dialog.accessibilityLabel.liveStreaming"), VW(this, "icon", du), VW(this, "label", "dialog.startLiveStreaming"), VW(this, "toggledLabel", "dialog.stopLiveStreaming") - } - _getTooltip() { - return this.props._tooltip || "" + _onJoinPress(e, t) { + e.stopPropagation(), this._onPress(t, "meeting.join") + } + _onPress(e) { + Da(Wt(arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "meeting.tile")), this.props.dispatch(tB(e)) + } + _toDisplayableItem(e) { + return { + elementAfter: e.url ? C().createElement(KJ, { + onPress: this._onJoinPress, + url: e.url + }) : C().createElement(YJ, { + calendarId: e.calendarId, + eventId: e.id + }), + date: e.startDate, + time: [e.startDate, e.endDate], + description: e.url, + title: e.title, + url: e.url } - async _handleClick() { + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }($J, "defaultProps", { + _eventList: [] + }); + const JJ = Ne((function(e) { + return { + _eventList: e["features/calendar-sync"].events + } + }))($J), ZJ = Ei(Ne((function(e) { + const { + error: t, + events: n, + integrationType: a, + isLoadingEvents: r + } = e["features/calendar-sync"]; + return { + _calendarError: t, + _hasIntegrationSelected: Boolean(a), + _hasLoadedEvents: Boolean(n) || !r + } + }))(class extends hM { + constructor(e) { + super(e), this._getRenderListEmptyComponent = this._getRenderListEmptyComponent.bind(this), this._onOpenSettings = this._onOpenSettings.bind(this), this._onKeyPressOpenSettings = this._onKeyPressOpenSettings.bind(this), this._onRefreshEvents = this._onRefreshEvents.bind(this) + } + render() { + const { + disabled: e + } = this.props; + return JJ ? C().createElement(JJ, { + disabled: e, + listEmptyComponent: this._getRenderListEmptyComponent() + }) : null + } + _getErrorMessage() { + const { + _calendarError: e = {}, + t + } = this.props; + let n = "calendarSync.error.generic", + a = !0, + r = !0; + return "idpiframe_initialization_failed" === e.error ? (n = "calendarSync.error.appConfiguration", a = !1, r = !1) : e.error === bJ && (n = "calendarSync.error.notSignedIn", a = !1), C().createElement("div", { + className: "meetings-list-empty" + }, C().createElement("p", { + className: "description" + }, t(n)), C().createElement("div", { + className: "calendar-action-buttons" + }, r && C().createElement("div", { + className: "button", + onClick: this._onOpenSettings + }, t("calendarSync.permissionButton")), a && C().createElement("div", { + className: "button", + onClick: this._onRefreshEvents + }, t("calendarSync.refresh")))) + } + _getRenderListEmptyComponent() { + const { + _calendarError: e, + _hasIntegrationSelected: t, + _hasLoadedEvents: n, + t: a + } = this.props; + return e ? this._getErrorMessage() : t && n ? C().createElement("div", { + className: "meetings-list-empty" + }, C().createElement("p", { + className: "description" + }, a("calendarSync.noEvents")), C().createElement("div", { + className: "button", + onClick: this._onRefreshEvents + }, a("calendarSync.refresh"))) : t && !n ? C().createElement("div", { + className: "meetings-list-empty" + }, C().createElement(Ay, { + invertColor: !0, + isCompleting: !1, + size: "medium" + })) : C().createElement("div", { + className: "meetings-list-empty" + }, C().createElement("div", { + className: "meetings-list-empty-image" + }, C().createElement("img", { + alt: a("welcomepage.logo.calendar"), + src: "./images/calendar.svg" + })), C().createElement("div", { + className: "description" + }, a("welcomepage.connectCalendarText", { + app: interfaceConfig.APP_NAME, + provider: interfaceConfig.PROVIDER_NAME + })), C().createElement("div", { + className: "meetings-list-empty-button", + onClick: this._onOpenSettings, + onKeyPress: this._onKeyPressOpenSettings, + role: "button" + }, C().createElement(lo, { + className: "meetings-list-empty-icon", + src: Io + }), C().createElement("span", null, a("welcomepage.connectCalendarButton")))) + } + _onOpenSettings() { + Da(Wt("connect")), this.props.dispatch(DX(jY.CALENDAR)) + } + _onKeyPressOpenSettings(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onOpenSettings()) + } + _onRefreshEvents() { + this.props.dispatch(zJ(!0)) + } + })); class QJ extends x.Component { + render() { + return C().createElement("div", { + className: "microsoft-sign-in", + onClick: this.props.onClick + }, C().createElement("img", { + alt: this.props.t("welcomepage.logo.microsoftLogo"), + className: "microsoft-logo", + src: "images/microsoftLogo.svg" + }), C().createElement("div", { + className: "microsoft-cta" + }, this.props.text)) + } + } + const XJ = Ei(QJ); + + function eZ(e) { + const t = Fe(e), + n = t["features/base/settings"], + { + conference: a + } = t["features/base/conference"], + { + permissions: r + } = t["features/base/devices"], + i = ka(), + o = c.default.mediaDevices.isDeviceChangeAvailable("input"), + s = c.default.mediaDevices.isDeviceChangeAvailable("output"), + l = na(t), + u = aa(t); + let d = !c.default.mediaDevices.isMultipleAudioInputSupported(), + p = !o, + h = i ? u : n.micDeviceId, + m = BM(), + f = i ? l : n.cameraDeviceId; + return a || (d = !1, p = !1, h = u, m = ra(t), f = l), { + availableDevices: t["features/base/devices"].availableDevices, + disableAudioInputChange: d, + disableDeviceChange: !c.default.mediaDevices.isDeviceChangeAvailable(), + disableVideoInputSelect: p, + hasAudioPermission: r.audio, + hasVideoPermission: r.video, + hideAudioInputPreview: d || !c.default.isCollectingLocalStats(), + hideAudioOutputPreview: !s, + hideAudioOutputSelect: !s, + hideVideoInputPreview: !o, + selectedAudioInputId: h, + selectedAudioOutputId: m, + selectedVideoInputId: f + } + } + + function tZ(e, t, n, a) { + if ("devices" !== n.type) return !1; + const r = t(), + i = r["features/base/settings"]; + let o = !0; + switch (n.name) { + case "isDeviceListAvailable": + a(c.default.mediaDevices.isDeviceListAvailable()); + break; + case "isDeviceChangeAvailable": + a(c.default.mediaDevices.isDeviceChangeAvailable(n.deviceType)); + break; + case "isMultipleAudioInputSupported": + a(c.default.isMultipleAudioInputSupported()); + break; + case "getCurrentDevices": + e(eI()).then((t => { + if (qM(r)) { + const e = { + audioInput: void 0, + audioOutput: void 0, + videoInput: void 0 + }, + n = new Set([BM(), i.micDeviceId, i.cameraDeviceId]); + t.forEach((t => { + const { + deviceId: a, + kind: r + } = t; + if (n.has(a)) switch (r) { + case "audioinput": + e.audioInput = t; + break; + case "audiooutput": + e.audioOutput = t; + break; + case "videoinput": + e.videoInput = t + } + })), a(e) + } else e(XM({ + type: "devices", + name: "getCurrentDevices", + responseCallback: a + })) + })); + break; + case "getAvailableDevices": + e(eI()).then((t => { + qM(r) ? a(WM(t)) : e(XM({ + type: "devices", + name: "getAvailableDevices", + responseCallback: a + })) + })); + break; + case "setDevice": { const { - _isLiveStreamRunning: e, - dispatch: t, - handleClick: n - } = this.props; - n ? n() : await t(bM(Mj)) || t(sP(e ? ZY : $Y)) - } - _isDisabled() { - return this.props._disabled - } - _isToggled() { - return this.props._isLiveStreamRunning - } - })); - class GW extends E.Component { - constructor(e) { - super(e), this.state = { - broadcasts: void 0, - errorType: void 0, - selectedBoundStreamID: void 0, - streamKey: "" - }, this._isMounted = !1, this._onCancel = this._onCancel.bind(this), this._onStreamKeyChange = this._onStreamKeyChange.bind(this), this._onSubmit = this._onSubmit.bind(this) - } - componentDidMount() { - this._isMounted = !0 - } - componentWillUnmount() { - this._isMounted = !1 - } - _onCancel() { - return Ma(rn("start", "cancel.button")), !0 - } - _onStreamKeyChange(e) { - this._setStateIfMounted({ - streamKey: e, - selectedBoundStreamID: void 0 - }) - } - _onSubmit() { + device: t + } = n; + if (!qM(r)) return e(XM({ + type: "devices", + name: "setDevice", + device: t, + responseCallback: a + })), !0; const { - broadcasts: e, - selectedBoundStreamID: t - } = this.state, n = (this.state.streamKey || this.props._streamKey || "").trim(); - if (!n) return !1; - let a = null; - if (t) { - const n = e && e.find((e => e.boundStreamID === t)); - a = n && n.id - } - return Ma(rn("start", "confirm.button")), this.props._conference.startRecording({ - broadcastId: a, - mode: Et.mode.STREAM, - streamId: n - }), !0 - } - _setStateIfMounted(e) { - this._isMounted && this.setState(e) + label: i, + id: s + } = t, l = i ? HM(r, t.label, t.kind) : s; + if (l) switch (t.kind) { + case "audioinput": + e(rI(l)); + break; + case "audiooutput": + e(iI(l)); + break; + case "videoinput": + e(sI(l)); + break; + default: + o = !1 + } else o = !1; + a(o); + break } + default: + return !1 } - class KW extends E.Component { - constructor(e) { - super(e), this.state = { - showValidationError: Boolean(this.props.value) && !this._validateStreamKey(this.props.value) - }, this.helpURL = "undefined" != typeof interfaceConfig && interfaceConfig.LIVE_STREAMING_HELP_LINK || "https://jitsi.org/live", this._debouncedUpdateValidationErrorVisibility = cj()(this._updateValidationErrorVisibility.bind(this), 800, { - leading: !1 - }), this._onInputChange = this._onInputChange.bind(this) - } - componentDidUpdate(e) { - this.props.value !== e.value && this._debouncedUpdateValidationErrorVisibility() - } - componentWillUnmount() { - this._debouncedUpdateValidationErrorVisibility.cancel() - } - _onInputChange(e) { - const t = "object" == typeof e ? e.target.value : e; - this.props.onChange(t) - } - _updateValidationErrorVisibility() { - const e = Boolean(this.props.value) && !this._validateStreamKey(this.props.value); - e !== this.state.showValidationError && this.setState({ - showValidationError: e - }) - } - _validateStreamKey(e = "") { - const t = e.trim(), - n = /^(?:[a-zA-Z0-9]{4}(?:-(?!$)|$)){4}/.exec(t); - return Boolean(n) - } + return !0 + } + const nZ = $e("features/device-selection"); + + function aZ(e) { + return (t, n) => { + const a = eZ(n()); + e.selectedVideoInputId && e.selectedVideoInputId !== a.selectedVideoInputId && (t(hn({ + userSelectedCameraDeviceId: e.selectedVideoInputId, + userSelectedCameraDeviceLabel: VM(n(), e.selectedVideoInputId, "videoInput") + })), t(oI(e.selectedVideoInputId))), e.selectedAudioInputId && e.selectedAudioInputId !== a.selectedAudioInputId && (t(hn({ + userSelectedMicDeviceId: e.selectedAudioInputId, + userSelectedMicDeviceLabel: VM(n(), e.selectedAudioInputId, "audioInput") + })), t(aI(e.selectedAudioInputId))), e.selectedAudioOutputId && e.selectedAudioOutputId !== a.selectedAudioOutputId && (Da(Kt("audio", "output")), ZM(e.selectedAudioOutputId, t, !0, VM(n(), e.selectedAudioOutputId, "audioOutput")).then((() => nZ.log("changed audio output device"))).catch((e => { + nZ.warn("Failed to change audio output device.", "Default or previously set audio output device will", " be used instead.", e) + }))) } - const $W = Li(class extends KW { - constructor(e) { - super(e), this._onOpenHelp = this._onOpenHelp.bind(this), this._onOpenHelpKeyPress = this._onOpenHelpKeyPress.bind(this) - } - render() { - const { - t: e, - value: t - } = this.props; - return x().createElement("div", { - className: "stream-key-form" - }, x().createElement(bz, { - autoFocus: !0, - compact: !0, - isSpellCheckEnabled: !1, - label: e("dialog.streamKey"), - name: "streamId", - okDisabled: !t, - onChange: this._onInputChange, - placeholder: e("liveStreaming.enterStreamKey"), - shouldFitContainer: !0, - type: "text", - value: this.props.value - }), x().createElement("div", { - className: "form-footer" - }, x().createElement("div", { - className: "help-container" - }, this.state.showValidationError ? x().createElement("span", { - className: "warning-text" - }, e("liveStreaming.invalidStreamKey")) : null, this.helpURL ? x().createElement("a", { - "aria-label": e("liveStreaming.streamIdHelp"), - className: "helper-link", - onClick: this._onOpenHelp, - onKeyPress: this._onOpenHelpKeyPress, - role: "link", - tabIndex: 0 - }, e("liveStreaming.streamIdHelp")) : null), x().createElement("a", { - className: "helper-link", - href: "https://www.youtube.com/t/terms", - rel: "noopener noreferrer", - target: "_blank" - }, e("liveStreaming.youtubeTerms")), x().createElement("a", { - className: "helper-link", - href: "https://policies.google.com/privacy", - rel: "noopener noreferrer", - target: "_blank" - }, e("liveStreaming.googlePrivacyPolicy")))) - } - _onOpenHelp() { - window.open(this.helpURL, "_blank", "noopener") - } - _onOpenHelpKeyPress(e) { - " " === e.key && (e.preventDefault(), this._onOpenHelp()) - } - }), - JW = function(e) { - return e.displayName || e.name || "Component" - }, - ZW = function(e, t) { - return function(n) { - var a; - if (!e.context[t]) return null; - for (var r = arguments.length, i = new Array(r > 1 ? r - 1 : 0), o = 1; o < r; o++) i[o - 1] = arguments[o]; - return (a = e.context[t])[n].apply(a, i) - } - }; - var QW = function(e) { - return "@atlaskit-private-do-not-use/dropdown-menu:".concat(e) - }, - XW = QW("focus-manager"), - eY = (QW("selection-cache"), QW("selection-manager"), QW("click-manager")); - var tY = function(e) { - return function(t) { - var n = t.theme, - a = Ex(n[_x], e); - return (0, Ug.css)(["\n background-color: ", ";\n color: ", ";\n fill: ", ";\n text-decoration: none;\n\n &:focus {\n color: ", ";\n }\n "], a.background, a.text, a.background, a.text) - } - }, - nY = function(e) { - var t = e.isCompact, - n = e.theme, - a = e.description, - r = t ? "compact" : "default", - i = Ex(n[_x], r, "padding"), - o = i.bottom, - s = void 0 === o ? 0 : o, - l = i.left, - c = void 0 === l ? 0 : l, - u = i.right, - d = void 0 === u ? 0 : u, - p = i.top, - h = void 0 === p ? 0 : p, - m = "function" == typeof h ? h() : h, - f = "function" == typeof s ? s() : s; - return m = Math.max(a ? m - 1 : m, 0), f = Math.max(f - 1, 0), (0, Ug.css)(["\n padding: ", "px ", "px ", "px ", "px;\n "], m, d, f, c) - }, - aY = function(e) { - var t = e.isCompact, - n = e.theme, - a = t ? "compact" : "default", - r = Ex(n[_x], a, "height"); - return r ? (0, Ug.css)(["\n height: ", "px;\n "], r) : "" - }, - rY = function(e) { - var t = e.isCompact, - n = e.theme, - a = t ? "compact" : "default", - r = Ex(n[_x], a, "width"); - return r ? "number" == typeof r ? (0, Ug.css)(["\n width: ", "px;\n "], r) : (0, Ug.css)(["\n width: ", ";\n "], r) : "" - }, - iY = function(e) { - var t = e.theme, - n = e.isDisabled, - a = e.isDragging, - r = e.isSelected; - if (a) return (0, Ug.css)(["\n ", " box-shadow: 0 4px 8px -2px ", ",\n 0 0 1px ", ";\n "], tY("dragging"), mb.N60A, mb.N60A); - var i = (0, Ug.css)(["\n &:focus {\n box-shadow: 0 0 0 2px\n ", " inset;\n text-decoration: none;\n }\n "], Ex(t[_x], "outline", "focus")); - return n ? (0, Ug.css)(["\n cursor: not-allowed;\n ", " ", ";\n "], tY("disabled"), i) : r ? (0, Ug.css)(["\n ", " &:hover {\n ", ";\n }\n\n &:active {\n ", ";\n }\n\n ", ";\n "], tY("selected"), tY("hover"), tY("active"), i) : (0, Ug.css)(["\n &:hover {\n ", ";\n }\n\n &:active {\n ", ";\n }\n\n ", ";\n "], tY("hover"), tY("active"), i) - }, - oY = function(e) { - var t = e.theme; - return (0, Ug.css)(["\n && {\n align-items: center;\n border-radius: ", "px;\n box-sizing: border-box;\n cursor: pointer;\n display: ", ";\n flex: none;\n ", " ", " ", " ", " ", " &:focus {\n /* focus shadow drawn by getInteractiveStyles */\n\n outline: none;\n /* relative position prevents bgcolor of a hovered element from\n obfuscating focus ring of a focused sibling element */\n position: relative;\n }\n }\n"], Ex(t[_x], "borderRadius"), (function(e) { - return e.isHidden ? "none" : "flex" - }), tY("default"), nY, iY, aY, rY) + } + const rZ = c.default.events.track; class iZ extends x.Component { + constructor(e) { + super(e), this.state = { + audioLevel: 0 + }, this._updateAudioLevel = this._updateAudioLevel.bind(this) + } + componentDidMount() { + this._listenForAudioUpdates(this.props.track) + } + componentDidUpdate(e) { + e.track !== this.props.track && (this._listenForAudioUpdates(this.props.track), this._updateAudioLevel(0)) + } + componentWillUnmount() { + this._stopListeningForAudioUpdates() + } + render() { + const e = { + width: `${Math.floor(100*this.state.audioLevel)}%` }; - Ug.default.span.withConfig({ - displayName: "ItemParts__InputWrapper", - componentId: "sc-14xek3m-0" - })(["\n display: flex;\n margin: 0 2px;\n"]); - var sY = Ug.default.span.withConfig({ - displayName: "ItemParts__BeforeAfterBase", - componentId: "sc-14xek3m-1" - })(["\n align-items: center;\n display: flex;\n flex-shrink: 0;\n /* Fix windows line-height issue */\n padding-bottom: 1px;\n"]), - lY = (0, Ug.default)(sY).withConfig({ - displayName: "ItemParts__Before", - componentId: "sc-14xek3m-2" - })(["\n ", ";\n"], (function(e) { - var t = e.isCompact, - n = e.theme, - a = t ? "compact" : "default", - r = Ex(n[_x], a, "beforeItemSpacing"); - return (0, Ug.css)(["\n margin-right: ", "px;\n "], r) - })), - cY = (0, Ug.default)(sY).withConfig({ - displayName: "ItemParts__After", - componentId: "sc-14xek3m-3" - })(["\n ", ";\n"], (function(e) { - var t = e.isCompact, - n = e.theme, - a = t ? "compact" : "default", - r = Ex(n[_x], a, "afterItemSpacing"); - return (0, Ug.css)(["\n margin-left: ", "px;\n "], r) - })), - uY = Ug.default.span.withConfig({ - displayName: "ItemParts__ContentWrapper", - componentId: "sc-14xek3m-4" - })(["\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n margin: 0;\n overflow: hidden;\n\n &:first-child {\n margin: 0;\n }\n"]), - dY = Ug.default.span.withConfig({ - displayName: "ItemParts__Content", - componentId: "sc-14xek3m-5" - })(["\n display: block;\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: ", ";\n line-height: ", ";\n /* Fix windows line-height issue */\n padding-bottom: 1px;\n"], (function(e) { - return e.allowMultiline ? "normal" : "nowrap" - }), 16 / 14), - pY = Ug.default.span.withConfig({ - displayName: "ItemParts__Description", - componentId: "sc-14xek3m-6" - })(["\n flex: 1 1 auto;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n ", " ", ";\n"], (function(e) { - var t = e.isDisabled, - n = e.theme; - return t ? (0, Ug.css)(["\n color: ", ";\n "], Ex(n[_x], "secondaryText", "disabled")) : (0, Ug.css)(["\n color: ", ";\n\n /* This detects hover on the grandparent. Saves us having to maintain isHovered\n state in the grandparent. */\n *:hover > * > & {\n color: ", ";\n }\n\n *:active > * > & {\n color: ", ";\n }\n "], Ex(n[_x], "secondaryText", "default"), (function() { - return Ex(n[_x], "secondaryText", "hover") - }), (function() { - return Ex(n[_x], "secondaryText", "active") - })) - }), (function(e) { - var t = e.isCompact, - n = t ? 10 : 11, - a = t ? 1.2 : 14 / n; - return (0, Ug.css)(["\n font-size: ", "px;\n line-height: ", ";\n /* Fix windows line-height issue */\n padding-bottom: 1px;\n "], n, a) - })); - var hY = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r(e) { - var t; - return Jg(this, r), Zf(_(t = a.call(this, e)), "setRef", (function(e) { - t.ref = e - })), Zf(_(t), "href", (function() { - return t.props.isDisabled ? null : t.props.href - })), t.rootComponent = function(e) { - var t = e.href, - n = e.linkComponent; - return n ? (0, Ug.default)(n).withConfig({ - displayName: "Item", - componentId: "z6qfkt-0" - })(["\n ", ";\n "], oY) : t ? Ug.default.a.withConfig({ - displayName: "Item", - componentId: "z6qfkt-1" - })(["\n ", ";\n "], oY) : Ug.default.span.withConfig({ - displayName: "Item", - componentId: "z6qfkt-2" - })(["\n ", ";\n "], oY) - }({ - href: t.href(), - linkComponent: e.linkComponent - }), t + return C().createElement("div", { + className: "audio-input-preview" + }, C().createElement("div", { + className: "audio-input-preview-level", + style: e + })) + } + _listenForAudioUpdates(e) { + this._stopListeningForAudioUpdates(), e && e.on(rZ.TRACK_AUDIO_LEVEL_CHANGED, this._updateAudioLevel) + } + _stopListeningForAudioUpdates() { + this.props.track && this.props.track.off(rZ.TRACK_AUDIO_LEVEL_CHANGED, this._updateAudioLevel) + } + _updateAudioLevel(e) { + this.setState({ + audioLevel: e + }) + } + } + const oZ = iZ, sZ = wf; class lZ extends x.Component { + constructor(e) { + super(e), this._audioElement = null, this._audioElementReady = this._audioElementReady.bind(this), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) + } + componentDidUpdate() { + this._setAudioSink() + } + render() { + return C().createElement("div", { + className: "audio-output-preview" + }, C().createElement("a", { + "aria-label": this.props.t("deviceSelection.testAudio"), + onClick: this._onClick, + onKeyPress: this._onKeyPress, + role: "button", + tabIndex: 0 + }, this.props.t("deviceSelection.testAudio")), C().createElement(sZ, { + setRef: this._audioElementReady, + src: "sounds/ring.wav" + })) + } + _audioElementReady(e) { + this._audioElement = e, this._setAudioSink() + } + _onClick() { + this._audioElement && this._audioElement.play() + } + _onKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClick()) + } + _setAudioSink() { + this._audioElement && this.props.deviceId && this._audioElement.setSinkId(this.props.deviceId) + } + } + const cZ = Ei(lZ); + var uZ = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - return Qg(r, [{ - key: "componentDidMount", - value: function() { - this.ref && this.props.autoFocus && this.ref.focus() - } - }, { - key: "render", - value: function() { - var e = this, - t = this.props, - n = t.onClick, - a = t.onKeyDown, - r = t.isCompact, - i = t.isDisabled, - o = t.isDragging, - s = t.isHidden, - l = t.isSelected, - c = t.onMouseEnter, - u = t.onMouseLeave, - d = t.role, - p = t.dnd, - h = Fg(t, ["onClick", "onKeyDown", "isCompact", "isDisabled", "isDragging", "isHidden", "isSelected", "onMouseEnter", "onMouseLeave", "role", "dnd"]), - m = this.rootComponent, - f = p && p.dragHandleProps || null, - g = { - onClick: function(e) { - e.defaultPrevented || !i && n && n(e) - }, - onMouseDown: function(e) { - f && f.onMouseDown && f.onMouseDown(e), e.preventDefault() - }, - onKeyDown: function(e) { - o || (f && f.onKeyDown && f.onKeyDown(e), e.defaultPrevented || i || a && a(e)) - } - }; - return x().createElement(m, z({ - "aria-disabled": i, - href: this.href(), - isCompact: r, - isDisabled: i, - isDragging: o, - isHidden: s, - isSelected: l, - onMouseEnter: c, - onMouseLeave: u, - role: d, - tabIndex: i || s || this.props.href ? null : 0, - target: this.props.target, - title: this.props.title, - innerRef: function(t) { - e.setRef(t), p && p.innerRef && p.innerRef(t) - } - }, p && p.draggableProps, f, g, h), !!this.props.elemBefore && x().createElement(lY, { - isCompact: r - }, this.props.elemBefore), x().createElement(uY, null, x().createElement(dY, { - allowMultiline: this.props.shouldAllowMultiline - }, this.props.children), !!this.props.description && x().createElement(pY, { - isCompact: this.props.isCompact, - isDisabled: this.props.isDisabled - }, this.props.description)), !!this.props.elemAfter && x().createElement(cY, { - isCompact: r - }, this.props.elemAfter)) - } - }]), r - }(E.Component); - Zf(hY, "defaultProps", { - autoFocus: !1, - description: "", - isCompact: !1, - isDisabled: !1, - isHidden: !1, - role: "button", - shouldAllowMultiline: !1 + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) }); - const mY = function(e) { - var t, n; - return n = t = function(t) { - tb(i, t); - var n, a, r = (n = i, a = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, t = Xg(n); - if (a) { - var r = Xg(this).constructor; - e = Reflect.construct(t, arguments, r) - } else e = t.apply(this, arguments); - return ab(this, e) - }); - - function i() { - var e; - Jg(this, i); - for (var t = arguments.length, n = new Array(t), a = 0; a < t; a++) n[a] = arguments[a]; - return Zf(_(e = r.call.apply(r, [this].concat(n))), "callContextFn", ZW(_(e), eY)), Zf(_(e), "shouldCloseAfterClick", (function() { - return !e.props.isDisabled && !e.props.href - })), Zf(_(e), "handleClick", (function(t) { - e.props.onClick(t), e.shouldCloseAfterClick() && e.callContextFn("itemClicked") - })), Zf(_(e), "handleKeyDown", (function(t) { - e.props.onKeyDown ? e.props.onKeyDown(t) : "Space" !== t.key && "Enter" !== t.key || e.handleClick(t) - })), e - } - return Qg(i, [{ - key: "render", - value: function() { - var t = this.props, - n = t.children, - a = Fg(t, ["children"]); - return x().createElement(e, z({}, a, { - onClick: this.handleClick, - onKeyDown: this.handleKeyDown - }), n) - } - }]), i - }(E.Component), Zf(t, "displayName", "WithItemClick(".concat(JW(e), ")")), Zf(t, "defaultProps", { - onClick: function() {} - }), Zf(t, "contextTypes", Zf({}, eY, AS().object)), n - }((fY = hY, bY = gY = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "contextId", void 0), Zf(_(e), "callContextFn", ZW(_(e), XW)), Zf(_(e), "isFocusable", (function() { - return !e.props.isDisabled && !e.props.isHidden - })), Zf(_(e), "handleFocus", (function() { - e.isFocusable() && e.callContextFn("itemFocused", e.contextId) - })), e - } - return Qg(r, [{ - key: "componentDidMount", - value: function() { - this.isFocusable() && (this.contextId = Wz()(), this.callContextFn("registerItem", this.contextId, Oe().findDOMNode(this))) + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "state", { + isOpen: e.props.defaultOpen, + items: wr(e.props.items) + }), $a(w(e), "findActivatedGroup", (function(t) { + return e.state.items.filter((function(e) { + return e.items.indexOf(t) > -1 + }))[0] + })), $a(w(e), "handleItemActivation", (function(t) { + var n = t.item, + a = e.findActivatedGroup(n), + r = wr(e.state.items); + switch (n.type) { + case "checkbox": + n.isChecked = !n.isChecked, e.props.onItemActivated({ + item: n + }), e.setState({ + items: r + }); + break; + case "radio": + a.items.forEach((function(e) { + e.isChecked = e === n + })), e.props.onItemActivated({ + item: n + }), e.setState({ + items: r + }); + break; + default: + e.props.onItemActivated({ + item: n + }), e.close() } - }, { - key: "componentDidUpdate", - value: function() { - this.isFocusable() && this.callContextFn("updateItem", this.contextId, Oe().findDOMNode(this)) + })), $a(w(e), "handleOpenChange", (function(t) { + var n; + if (e.state.isOpen !== t.isOpen) { + e.setState({ + isOpen: t.isOpen + }); + for (var a = arguments.length, r = new Array(a > 1 ? a - 1 : 0), i = 1; i < a; i++) r[i - 1] = arguments[i]; + (n = e.props).onOpenChange.apply(n, [t].concat(r)) } - }, { - key: "componentWillUnmount", - value: function() { - this.isFocusable() && this.callContextFn("deregisterItem", this.contextId) + })), $a(w(e), "close", (function() { + var t; + if (!1 !== e.state.isOpen) { + e.setState({ + isOpen: !1 + }); + for (var n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; + (t = e.props).onOpenChange.apply(t, [{ + isOpen: !1 + }].concat(a)) } - }, { - key: "render", - value: function() { - var e = this.props, - t = e.children, - n = Fg(e, ["children"]); - return x().createElement(fY, z({ - onFocus: this.handleFocus, - role: "menuitem" - }, n), t) - } - }]), r - }(E.Component), Zf(gY, "displayName", "WithItemFocus(".concat(JW(fY), ")")), Zf(gY, "contextTypes", Zf({}, XW, AS().object)), bY)); - var fY, gY, bY; - - function yY() { - var e = Jf(["\n ", ";\n"]); - return yY = function() { - return e - }, e + })), e } - const vY = Ug.default.div(yY(), (function(e) { - return e.shouldFitContainer ? "" : "max-width: 300px;" - })); - var kY = "ArrowUp", - _Y = "ArrowDown", - wY = " ", - SY = "Enter"; - const EY = JSON.parse('{"u2":"@atlaskit/dropdown-menu","i8":"10.1.2"}'); - var xY = function(e) { - return "@atlaskit-private-do-not-use/dropdown-menu:".concat(e) - }, - CY = xY("focus-manager"), - AY = xY("selection-cache"), - jY = (xY("selection-manager"), xY("click-manager")); - var PY = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "handleItemClicked", (function(t) { - e.props.onItemClicked(t) - })), e + return Ka(r, [{ + key: "UNSAFE_componentWillReceiveProps", + value: function(e) { + e.items !== this.state.items && this.setState({ + items: wr(e.items) + }), e.isOpen !== this.props.isOpen && this.setState({ + isOpen: e.isOpen + }) } - return Qg(r, [{ - key: "getChildContext", - value: function() { - return Zf({}, jY, { - itemClicked: this.handleItemClicked - }) - } + }, { + key: "render", + value: function() { + var e = this.state.isOpen, + t = this.props, + n = t.appearance, + a = t.boundariesElement, + r = t.children, + i = t.isLoading, + o = t.items, + s = t.position, + l = t.isMenuFixed, + c = t.shouldAllowMultilineItems, + u = t.shouldFitContainer, + d = t.shouldFlip, + p = t.testId, + h = t.trigger, + m = t.triggerButtonProps, + f = t.triggerType, + g = t.onPositioned; + return C().createElement(cK, { + appearance: n, + boundariesElement: a, + isOpen: e, + isLoading: i, + items: o, + onItemActivated: this.handleItemActivation, + onOpenChange: this.handleOpenChange, + position: s, + isMenuFixed: l, + shouldAllowMultilineItems: c, + shouldFitContainer: u, + shouldFlip: d, + trigger: h, + triggerButtonProps: m, + triggerType: f, + onPositioned: g, + testId: p + }, r) + } + }]), r + }(x.Component); $a(uZ, "defaultProps", { + appearance: "default", + boundariesElement: "viewport", + defaultOpen: !1, + isLoading: !1, + isOpen: !1, + items: [], + onItemActivated: function() {}, + onOpenChange: function() {}, + position: "bottom left", + isMenuFixed: !1, + shouldAllowMultilineItems: !1, + shouldFitContainer: !1, + shouldFlip: !0, + triggerType: "default", + onPositioned: function() {} + }); class dZ extends x.Component { + constructor(e) { + super(e), this._onSelect = this._onSelect.bind(this), this._createDropdownItem = this._createDropdownItem.bind(this) + } + render() { + if (void 0 === this.props.hasPermission) return null; + if (!this.props.hasPermission) return this._renderNoPermission(); + if (!this.props.devices || !this.props.devices.length) return this._renderNoDevices(); + const e = this.props.devices.map(this._createDropdownItem), + t = this.props.devices.find((e => e.deviceId === this.props.selectedDeviceId)); + return this._createDropdown({ + defaultSelected: t, + isDisabled: this.props.isDisabled, + items: e, + placeholder: this.props.t("deviceSelection.selectADevice") + }) + } + _createDropdownTrigger(e) { + return C().createElement("div", { + className: "device-selector-trigger" + }, C().createElement("span", { + className: "device-selector-trigger-text" + }, e)) + } + _createDropdownItem(e) { + return C().createElement(qG, { + "data-deviceid": e.deviceId, + isSelected: e.deviceId === this.props.selectedDeviceId, + key: e.deviceId, + onClick: this._onSelect + }, e.label || e.deviceId) + } + _createDropdown(e) { + const t = e.defaultSelected && (e.defaultSelected.label || e.defaultSelected.deviceId) || e.placeholder, + n = this._createDropdownTrigger(t); + return e.isDisabled || !e.items.length ? C().createElement("div", { + className: "device-selector-trigger-disabled" + }, n) : C().createElement("div", { + className: "dropdown-menu" + }, C().createElement(uZ, { + shouldFitContainer: !0, + trigger: t, + triggerButtonProps: { + shouldFitContainer: !0, + id: this.props.id + }, + triggerType: "button" + }, C().createElement(gK, null, e.items))) + } + _onSelect(e) { + const t = e.currentTarget.getAttribute("data-deviceid"); + this.props.selectedDeviceId !== t && this.props.onSelect(t) + } + _renderNoDevices() { + return this._createDropdown({ + isDisabled: !0, + placeholder: this.props.t("settings.noDevice") + }) + } + _renderNoPermission() { + return this._createDropdown({ + isDisabled: !0, + placeholder: this.props.t("deviceSelection.noPermission") + }) + } + } + const pZ = Ei(dZ), hZ = Af; class mZ extends x.Component { + render() { + const { + error: e + } = this.props, t = "video-input-preview " + (e ? "video-preview-has-error" : ""); + return C().createElement("div", { + className: t + }, C().createElement(hZ, { + className: "video-input-preview-display flipVideoX", + playsinline: !0, + videoTrack: { + jitsiTrack: this.props.track + } + }), C().createElement("div", { + className: "video-input-preview-error" + }, e || "")) + } + } + const fZ = mZ, gZ = Ei(class extends GI { + constructor(e) { + super(e), this.state = { + previewAudioTrack: null, + previewVideoTrack: null, + previewVideoTrackError: null + }, this._unMounted = !0 + } + componentDidMount() { + this._unMounted = !1, Promise.all([this._createAudioInputTrack(this.props.selectedAudioInputId), this._createVideoInputTrack(this.props.selectedVideoInputId)]).catch((e => nZ.warn("Failed to initialize preview tracks", e))).then((() => this.props.mountCallback && this.props.mountCallback())) + } + componentDidUpdate(e) { + e.selectedAudioInputId !== this.props.selectedAudioInputId && this._createAudioInputTrack(this.props.selectedAudioInputId), e.selectedVideoInputId !== this.props.selectedVideoInputId && this._createVideoInputTrack(this.props.selectedVideoInputId) + } + componentWillUnmount() { + this._unMounted = !0, this._disposeAudioInputPreview(), this._disposeVideoInputPreview() + } + render() { + const { + hideAudioInputPreview: e, + hideAudioOutputPreview: t, + hideVideoInputPreview: n, + selectedAudioOutputId: a + } = this.props; + return C().createElement("div", { + className: "device-selection" + (n ? " video-hidden" : "") + }, C().createElement("div", { + className: "device-selection-column column-video" + }, !n && C().createElement("div", { + className: "device-selection-video-container" + }, C().createElement(fZ, { + error: this.state.previewVideoTrackError, + track: this.state.previewVideoTrack + })), !e && C().createElement(oZ, { + track: this.state.previewAudioTrack + })), C().createElement("div", { + className: "device-selection-column column-selectors" + }, C().createElement("div", { + "aria-live": "polite all", + className: "device-selectors" + }, this._renderSelectors()), !t && C().createElement(cZ, { + deviceId: a + }))) + } + _createAudioInputTrack(e) { + const { + hideAudioInputPreview: t + } = this.props; + if (!t) return this._disposeAudioInputPreview().then((() => rt("audio", e, 5e3))).then((e => { + this._unMounted ? e.dispose() : this.setState({ + previewAudioTrack: e + }) + })).catch((() => { + this.setState({ + previewAudioTrack: null + }) + })) + } + _createVideoInputTrack(e) { + const { + hideVideoInputPreview: t + } = this.props; + if (!t) return this._disposeVideoInputPreview().then((() => rt("video", e, 5e3))).then((e => { + if (!e) return Promise.reject(); + this._unMounted ? e.dispose() : this.setState({ + previewVideoTrack: e, + previewVideoTrackError: null + }) + })).catch((() => { + this.setState({ + previewVideoTrack: null, + previewVideoTrackError: this.props.t("deviceSelection.previewUnavailable") + }) + })) + } + _disposeAudioInputPreview() { + return this.state.previewAudioTrack ? this.state.previewAudioTrack.dispose() : Promise.resolve() + } + _disposeVideoInputPreview() { + return this.state.previewVideoTrack ? this.state.previewVideoTrack.dispose() : Promise.resolve() + } + _renderSelector(e) { + return C().createElement("div", { + key: e.label + }, C().createElement("label", { + className: "device-selector-label", + htmlFor: e.id + }, this.props.t(e.label)), C().createElement(pZ, e)) + } + _renderSelectors() { + const { + availableDevices: e, + hasAudioPermission: t, + hasVideoPermission: n + } = this.props, a = [{ + devices: e.audioInput, + hasPermission: t, + icon: "icon-microphone", + isDisabled: this.props.disableAudioInputChange || this.props.disableDeviceChange, + key: "audioInput", + id: "audioInput", + label: "settings.selectMic", + onSelect: e => super._onChange({ + selectedAudioInputId: e + }), + selectedDeviceId: this.state.previewAudioTrack ? this.state.previewAudioTrack.getDeviceId() : this.props.selectedAudioInputId }, { - key: "render", - value: function() { - return this.props.children - } - }]), r - }(E.Component); - Zf(PY, "childContextTypes", Zf({}, jY, AS().object)); - var DY = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + devices: e.videoInput, + hasPermission: n, + icon: "icon-camera", + isDisabled: this.props.disableVideoInputSelect || this.props.disableDeviceChange, + key: "videoInput", + id: "videoInput", + label: "settings.selectCamera", + onSelect: e => super._onChange({ + selectedVideoInputId: e + }), + selectedDeviceId: this.state.previewVideoTrack ? this.state.previewVideoTrack.getDeviceId() : this.props.selectedVideoInputId + }]; + return this.props.hideAudioOutputSelect || a.push({ + devices: e.audioOutput, + hasPermission: t || n, + icon: "icon-speaker", + isDisabled: this.props.disableDeviceChange, + key: "audioOutput", + id: "audioOutput", + label: "settings.selectAudioOutput", + onSelect: e => super._onChange({ + selectedAudioOutputId: e + }), + selectedDeviceId: this.props.selectedAudioOutputId + }), a.map((e => this._renderSelector(e))) + } + }); - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "registeredItems", []), Zf(_(e), "handleItemRegistered", (function(t, n) { - e.registeredItems.push({ - itemId: t, - itemNode: n - }), e.props.autoFocus && 1 === e.registeredItems.length && (e.focusedItemId = t, n.focus()) - })), Zf(_(e), "handleItemDeregistered", (function(t) { - e.registeredItems = e.registeredItems.filter((function(e) { - return e.itemId !== t - })) - })), Zf(_(e), "handleItemFocused", (function(t) { - e.focusedItemId = t - })), Zf(_(e), "handleItemUpdated", (function(t, n) { - for (var a = -1, r = 0; r < e.registeredItems.length; r++) - if (e.registeredItems[r].itemId === t) { - a = r; - break - } - 1 !== a ? (e.registeredItems[a].itemNode = n, e.focusedItemIndex() === a && n.focus()) : e.handleItemRegistered(t, n) - })), Zf(_(e), "focusedItemIndex", (function() { - for (var t = _(e), n = t.focusedItemId, a = t.registeredItems, r = 0; r < a.length; r++) - if (a[r].itemId === n) return r; - return -1 - })), Zf(_(e), "handleKeyboard", (function(t) { - var n = t.key, - a = t.shiftKey, - r = e.focusedItemIndex(); - if (n === kY || n === _Y) { - if (t.preventDefault(), r < 0) return; - var i = n === kY ? Math.max(0, r - 1) : Math.min(e.registeredItems.length - 1, r + 1); - e.registeredItems[i].itemNode.focus() - } - "Tab" === n && (a || r !== e.registeredItems.length - 1 || e.props.close && e.props.close({ - event: t, - source: "keydown" - }), a && 0 === r && e.props.close && e.props.close({ - event: t, - source: "keydown" - })) - })), e - } - return Qg(r, [{ - key: "getChildContext", - value: function() { - return Zf({}, CY, { - itemFocused: this.handleItemFocused, - registerItem: this.handleItemRegistered, - deregisterItem: this.handleItemDeregistered, - updateItem: this.handleItemUpdated - }) - } - }, { - key: "render", - value: function() { - return x().createElement("div", { - onKeyDown: this.handleKeyboard - }, this.props.children) - } - }]), r - }(E.Component); - Zf(DY, "childContextTypes", Zf({}, CY, AS().object)); - var TY = n(6952), - OY = n.n(TY); - var MY = function(e, t, n) { - return Boolean(OY()(e, (function(e) { - return e.id === t && e.groupId === n - }))) - }, - IY = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + function bZ(e) { + const t = Fe(e); + return Boolean(t["features/follow-me"].moderator) + } + const yZ = new Array(3).fill("reactions-laughter.mp3"), vZ = new Array(3).fill("reactions-applause.mp3"), kZ = new Array(3).fill("reactions-thumbs-up.mp3"), _Z = new Array(3).fill("reactions-boo.mp3"), wZ = new Array(3).fill("reactions-surprise.mp3"), SZ = new Array(3).fill("reactions-crickets.mp3"), EZ = "endpoint-reaction", xZ = "mute-reactions", CZ = "RAISE_HAND_SOUND", AZ = [1, 4, 10], TZ = { + like: { + message: ":thumbs_up:", + emoji: "👍", + shortcutChar: "T", + soundId: "REACTION_SOUND_LIKE_", + soundFiles: kZ + }, + clap: { + message: ":clap:", + emoji: "👏", + shortcutChar: "C", + soundId: "REACTION_SOUND_CLAP_", + soundFiles: vZ + }, + laugh: { + message: ":grinning_face:", + emoji: "😀", + shortcutChar: "L", + soundId: "REACTION_SOUND_LAUGH_", + soundFiles: yZ + }, + surprised: { + message: ":face_with_open_mouth:", + emoji: "😮", + shortcutChar: "O", + soundId: "REACTION_SOUND_SURPRISE_", + soundFiles: wZ + }, + boo: { + message: ":slightly_frowning_face:", + emoji: "🙁", + shortcutChar: "B", + soundId: "REACTION_SOUND_BOO_", + soundFiles: _Z + }, + silence: { + message: ":face_without_mouth:", + emoji: "😶", + shortcutChar: "S", + soundId: "REACTION_SOUND_SILENCE_", + soundFiles: SZ + } + }, DZ = $e("features/base/reactions"); + + function PZ(e) { + return e["features/reactions"].queue + } - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { - lastCacheUpdate: 0 - }), Zf(_(e), "selectedItems", []), Zf(_(e), "alreadyDefaultedItems", []), Zf(_(e), "handleItemSelectionsChanged", (function(t, n) { - var a = [].concat($g(e.selectedItems.filter((function(e) { - return e.groupId !== t - }))), $g(n)); - e.selectedItems = a, e.setState({ - lastCacheUpdate: Date.now() - }) - })), e - } - return Qg(r, [{ - key: "getChildContext", - value: function() { - var e = this; - return Zf({}, AY, { - isItemSelected: function(t, n) { - return MY(e.selectedItems, n, t) - }, - itemsInGroup: function(t) { - return e.selectedItems.filter((function(e) { - return e.groupId === t - })) - }, - itemSelectionsChanged: this.handleItemSelectionsChanged, - hasItemAlreadyHadDefaultSelectedApplied: function(t, n) { - return MY(e.alreadyDefaultedItems, n, t) - }, - markItemAsDefaultApplied: function(t, n) { - e.alreadyDefaultedItems.push({ - id: n, - groupId: t - }) - } - }) - } - }, { - key: "render", - value: function() { - return x().createElement("div", null, this.props.children) - } - }]), r - }(E.Component); - Zf(IY, "childContextTypes", Zf({}, AY, AS().shape({ - isItemSelected: AS().func, - itemsInGroup: AS().func, - itemSelectionsChanged: AS().func - }))); - var NY = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + function jZ(e) { + return e.map((e => TZ[e].message)).reduce(((e, t) => `${e}${t}`)) + } - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "dropdownListPositioned", !1), Zf(_(e), "state", { - id: gP({ - id: e.constructor.name - }), - autoFocusDropdownItems: !1 - }), Zf(_(e), "componentDidMount", (function() { - e.isUsingDeprecatedAPI() && e.domItemsList && e.focusFirstItem() - })), Zf(_(e), "componentDidUpdate", (function(t) { - e.isUsingDeprecatedAPI() && e.props.isOpen && !t.isOpen && e.focusFirstItem() - })), Zf(_(e), "getNextFocusable", (function(t, n) { - if (!e.domItemsList) return null; - var a = "number" != typeof t ? -1 : t, - r = "number" != typeof n ? a : n; - return a < e.domItemsList.length - 1 ? (a++, "true" !== e.domItemsList[a].getAttribute("aria-hidden") ? a : e.getNextFocusable(a, r)) : r - })), Zf(_(e), "getPrevFocusable", (function(t, n) { - if (!e.domItemsList) return null; - var a = "number" != typeof t ? -1 : t, - r = "number" != typeof n ? a : n; - return a && a > 0 ? (a--, "true" !== e.domItemsList[a].getAttribute("aria-hidden") ? a : e.getPrevFocusable(a, r)) : r || a - })), Zf(_(e), "focusFirstItem", (function() { - "keydown" === e.sourceOfIsOpen && e.focusItem(e.getNextFocusable()) - })), Zf(_(e), "focusNextItem", (function() { - e.focusItem(e.getNextFocusable(e.focusedItem)) - })), Zf(_(e), "focusPreviousItem", (function() { - e.focusItem(e.getPrevFocusable(e.focusedItem)) - })), Zf(_(e), "focusItem", (function(t) { - e.domItemsList && t && (e.focusedItem = t, e.domItemsList[e.focusedItem].focus()) - })), Zf(_(e), "isTargetChildItem", (function(t) { - if (!t) return !1; - var n = "droplistItem" === t.getAttribute("data-role"), - a = (0, Te.findDOMNode)(_(e)); - return !(!n || !a) && a.contains(t) - })), Zf(_(e), "handleKeyboardInteractionForClosed", (function(t) { - if (!e.props.isOpen) switch (t.key) { - case _Y: - case wY: - case SY: - t.preventDefault(), e.open({ - event: t, - source: "keydown" - }) + function MZ(e, t) { + return e.filter((e => e === t)).length + } + + function IZ(e) { + for (const t of AZ) + if (e <= t) return t; + return AZ[AZ.length - 1] + } + + function OZ(e) { + const { + disableReactions: t + } = e["features/base/config"]; + return "ReactNative" === navigator.product ? !t && qf(e, "reactions.enabled", !0) : !t + } + + function NZ(e) { + var t, n; + const a = Fe(e), + r = null !== (t = a["features/screen-share"].captureFrameRate) && void 0 !== t ? t : 5, + i = _i.language || vi, + o = interfaceConfig.SETTINGS_SECTIONS || []; + return { + currentFramerate: r, + currentLanguage: i, + desktopShareFramerates: MY, + languages: yi, + showLanguageSettings: o.includes("language"), + showPrejoinPage: !a["features/base/settings"].userSelectedSkipPrejoin, + showPrejoinSettings: null === (n = a["features/base/config"].prejoinConfig) || void 0 === n ? void 0 : n.enabled + } + } + + function RZ(e) { + const t = Fe(e), + { + conference: n, + followMeEnabled: a, + startAudioMutedPolicy: r, + startVideoMutedPolicy: i, + startReactionsMuted: o + } = t["features/base/conference"], + s = bZ(t), + l = interfaceConfig.SETTINGS_SECTIONS || []; + return { + showModeratorSettings: Boolean(n && l.includes("moderator") && tm(t)), + followMeActive: Boolean(n && s), + followMeEnabled: Boolean(n && a), + startReactionsMuted: Boolean(n && o), + startAudioMuted: Boolean(n && r), + startVideoMuted: Boolean(n && i) + } + } + + function zZ(e) { + const t = Fe(e), + { + authEnabled: n, + authLogin: a, + conference: r + } = t["features/base/conference"], + i = Uh(t), + { + disableSelfView: o + } = t["features/base/settings"]; + return { + authEnabled: Boolean(r && n), + authLogin: a, + displayName: i.name, + disableSelfView: Boolean(o), + email: i.email, + readOnlyName: Hn(t) + } + } + + function LZ(e) { + var t; + const n = Fe(e), + { + soundsIncomingMessage: a, + soundsParticipantJoined: r, + soundsParticipantLeft: i, + soundsTalkWhileMuted: o, + soundsReactions: s + } = n["features/base/settings"]; + return { + soundsIncomingMessage: a, + soundsParticipantJoined: r, + soundsParticipantLeft: i, + soundsTalkWhileMuted: o, + soundsReactions: s, + enableReactions: OZ(n), + moderatorMutedSoundsReactions: null !== (t = n["features/base/conference"].startReactionsMuted) && void 0 !== t && t + } + } + + function FZ(e) { + return e["features/settings"].audioSettingsVisible + } + + function qZ(e) { + return e["features/settings"].videoSettingsVisible + } + const BZ = $e("features/settings"); class UZ extends x.Component { + constructor(e) { + super(e), this.state = { + loading: !0 + }, this._onClickDisconnect = this._onClickDisconnect.bind(this), this._onClickGoogle = this._onClickGoogle.bind(this), this._onClickMicrosoft = this._onClickMicrosoft.bind(this) + } + componentDidMount() { + this.props.dispatch(((e, t) => { + const n = t(); + if (!OJ(n)) return Promise.reject(); + const { + googleApiApplicationClientID: a + } = n["features/base/config"], { + integrationReady: r, + integrationType: i + } = n["features/calendar-sync"]; + return Promise.resolve().then((() => { + if (a) return e(eJ()) + })).then((() => { + if (!i || r) return; + const t = RJ(i); + if (t) return e(t._isSignedIn()).then((t => { + t ? (e(HJ(i)), e(VJ(i))) : e(FJ()) + })); + e(FJ()) + })) + })).catch((e => BZ.error("CalendarTab bootstrap failed", e))).then((() => this.setState({ + loading: !1 + }))) + } + render() { + let e; + return e = this.state.loading ? this._renderLoadingState() : this.props._isConnectedToCalendar ? this._renderSignOutState() : this._renderSignInState(), C().createElement("div", { + className: "calendar-tab" + }, e) + } + _attemptSignIn(e) { + var t; + this.props.dispatch((t = e, e => { + const n = RJ(t); + return n ? e(n.load()).then((() => e(n.signIn()))).then((() => e(HJ(t)))).then((() => e(VJ(t)))).then((() => e(zJ()))).then((() => Da(function() { + return { + action: "connected", + actionSubject: "calendar", + attributes: arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {} } - })), Zf(_(e), "handleKeyboardInteractionsDeprecated", (function(t) { - if (e.props.isOpen) - if (e.isTargetChildItem(t.target)) switch (t.key) { - case "ArrowUp": - t.preventDefault(), e.focusPreviousItem(); - break; - case "ArrowDown": - t.preventDefault(), e.focusNextItem(); - break; - case "Tab": - t.preventDefault(), e.close({ - event: t - }) - } else "ArrowDown" === t.key ? (e.sourceOfIsOpen = "keydown", e.focusFirstItem()) : "Tab" === t.key && e.close({ - event: t - }); - else switch (t.key) { - case _Y: - case wY: - case SY: - t.preventDefault(), e.open({ - event: t, - source: "keydown" - }) - } - })), Zf(_(e), "domMenuContainer", null), Zf(_(e), "isUsingDeprecatedAPI", (function() { - return Boolean(e.props.items.length) - })), Zf(_(e), "handleOpenChange", (function(t) { - e.props.onOpenChange(t) - })), Zf(_(e), "triggerContent", (function() { - var t = e.props, - n = t.children, - a = t.trigger, - r = t.isOpen, - i = t.triggerButtonProps, - o = t.triggerType, - s = t.testId, - l = e.isUsingDeprecatedAPI() ? n : a; - if ("button" !== o) return l; - var c = Object.assign({}, i), - u = { - "aria-controls": e.state.id, - "aria-expanded": r, - "aria-haspopup": !0, - isSelected: r - }; - return c.iconAfter || c.iconBefore || (c.iconAfter = x().createElement(zg.Z, { - size: "medium", - label: "" - })), x().createElement(Hy, z({}, u, c, { - testId: s && "".concat(s, "--trigger") - }), l) - })), Zf(_(e), "open", (function(t) { - e.sourceOfIsOpen = t.source, e.props.onOpenChange({ - isOpen: !0, - event: t.event - }), e.setState({ - autoFocusDropdownItems: "keydown" === e.sourceOfIsOpen - }) - })), Zf(_(e), "close", (function(t) { - e.sourceOfIsOpen = null, e.props.onOpenChange({ - isOpen: !1, - event: t.event - }) - })), Zf(_(e), "toggle", (function(t) { - "keydown" !== t.source && (e.props.isOpen ? e.close(t) : e.open(t)) - })), Zf(_(e), "renderTrigger", (function() { - var t = e.triggerContent(); - return e.isUsingDeprecatedAPI() ? t : x().createElement("div", { - ref: function(t) { - e.triggerContainer = t - } - }, t) - })), Zf(_(e), "renderItems", (function(t) { - return t.map((function(t, n) { - return x().createElement(LA, z({}, t, { - key: n, - onActivate: function(n) { - var a = n.event; - e.props.onItemActivated({ - item: t, - event: a - }) - } - }), t.content) - })) - })), Zf(_(e), "renderGroups", (function(t) { - return t.map((function(t, n) { - return x().createElement(QA, { - heading: t.heading, - elemAfter: t.elemAfter, - key: n - }, e.renderItems(t.items)) - })) - })), Zf(_(e), "renderDeprecated", (function() { - var t = e.props, - n = t.items, - a = t.shouldFitContainer, - r = e.state.id; - return x().createElement("div", { - id: r, - ref: function(t) { - e.domMenuContainer = t, e.domItemsList = t ? t.querySelectorAll('[data-role="droplistItem"]') : null - }, - role: "menu", - style: a ? void 0 : { - maxWidth: 300 - } - }, e.renderGroups(n)) - })), Zf(_(e), "onDroplistPositioned", (function() { - e.dropdownListPositioned = !0, e.setState({ - autoFocusDropdownItems: "keydown" === e.sourceOfIsOpen - }), e.props.onPositioned && e.props.onPositioned() - })), Zf(_(e), "renderDropdownItems", (function() { - return "keydown" === e.sourceOfIsOpen && e.dropdownListPositioned ? x().createElement(DY, { - autoFocus: e.state.autoFocusDropdownItems, - close: e.close - }, e.props.children) : x().createElement(E.Fragment, null, e.props.children) - })), e - } - return Qg(r, [{ - key: "handleClickDeprecated", - value: function(e) { - var t = this.domMenuContainer; - (!t || t && !t.contains(e.target)) && this.toggle({ - source: "click", - event: e - }) + }()))).catch((e => (wJ.error("Error occurred while signing into calendar integration", e), Promise.reject(e)))) : Promise.reject("No supported integration found") + })) + } + _onClickDisconnect() { + this.props.dispatch(FJ()) + } + _onClickGoogle() { + this._attemptSignIn(fJ) + } + _onClickMicrosoft() { + this._attemptSignIn(gJ) + } + _renderLoadingState() { + return C().createElement(Ay, { + isCompleting: !1, + size: "medium" + }) + } + _renderSignInState() { + const { + _appName: e, + _enableGoogleIntegration: t, + _enableMicrosoftIntegration: n, + t: a + } = this.props; + return C().createElement("div", null, C().createElement("p", null, a("settings.calendar.about", { + appName: e || "" + })), t && C().createElement("div", { + className: "calendar-tab-sign-in" + }, C().createElement(iJ, { + onClick: this._onClickGoogle, + text: a("liveStreaming.signIn") + })), n && C().createElement("div", { + className: "calendar-tab-sign-in" + }, C().createElement(XJ, { + onClick: this._onClickMicrosoft, + text: a("settings.calendar.microsoftSignIn") + }))) + } + _renderSignOutState() { + const { + _profileEmail: e, + t + } = this.props; + return C().createElement("div", null, C().createElement("div", { + className: "sign-out-cta" + }, t("settings.calendar.signedIn", { + email: e + })), C().createElement(DC, { + appearance: "primary", + id: "calendar_logout", + onClick: this._onClickDisconnect, + type: "button" + }, t("settings.calendar.disconnect"))) + } + } + const HZ = Ei(Ne((function(e) { + const t = e["features/calendar-sync"] || {}, + { + googleApiApplicationClientID: n, + microsoftApiApplicationClientID: a + } = e["features/base/config"], + r = OJ(e); + return { + _appName: interfaceConfig.APP_NAME, + _enableGoogleIntegration: Boolean(r && n), + _enableMicrosoftIntegration: Boolean(r && a), + _isConnectedToCalendar: t.integrationReady, + _profileEmail: t.profileEmail + } + }))(UZ)), VZ = Ei(class extends GI { + constructor(e) { + super(e), this._onStartAudioMutedChanged = this._onStartAudioMutedChanged.bind(this), this._onStartVideoMutedChanged = this._onStartVideoMutedChanged.bind(this), this._onStartReactionsMutedChanged = this._onStartReactionsMutedChanged.bind(this), this._onFollowMeEnabledChanged = this._onFollowMeEnabledChanged.bind(this) + } + render() { + return C().createElement("div", { + className: "moderator-tab box" + }, this._renderModeratorSettings()) + } + _onStartAudioMutedChanged(e) { + let { + target: { + checked: t } - }, { - key: "handleClick", - value: function(e) { - if (this.setState({ - autoFocusDropdownItems: !1 - }), this.isUsingDeprecatedAPI()) this.handleClickDeprecated(e); - else if (this.triggerContainer && this.triggerContainer.contains(e.target) && !0 !== e.target.disabled) { - var t = this.props.isOpen; - this.sourceOfIsOpen = "mouse", this.props.onOpenChange({ - isOpen: !t, - event: e - }) - } + } = e; + super._onChange({ + startAudioMuted: t + }) + } + _onStartVideoMutedChanged(e) { + let { + target: { + checked: t } - }, { - key: "render", - value: function() { - var e = this, - t = this.props, - n = t.appearance, - a = t.boundariesElement, - r = t.isLoading, - i = t.isOpen, - o = t.onOpenChange, - s = t.position, - l = t.isMenuFixed, - c = t.shouldAllowMultilineItems, - u = t.shouldFitContainer, - d = t.shouldFlip, - p = t.testId, - h = this.state.id, - m = this.isUsingDeprecatedAPI(), - f = m ? { - onKeyDown: this.handleKeyboardInteractionsDeprecated, - shouldAllowMultilineItems: c - } : { - onKeyDown: this.handleKeyboardInteractionForClosed - }; - return x().createElement(IY, null, x().createElement(Ox, z({ - appearance: n, - boundariesElement: a, - isLoading: r, - isOpen: i, - onClick: function(t) { - return e.handleClick(t) - }, - onOpenChange: this.handleOpenChange, - position: s, - isMenuFixed: l, - shouldFitContainer: u, - shouldFlip: d, - trigger: this.renderTrigger(), - onPositioned: this.onDroplistPositioned - }, f, { - analyticsContext: { - componentName: "dropdownMenu", - packageName: EY.u2, - packageVersion: EY.i8 - }, - testId: p - }), m ? this.renderDeprecated() : x().createElement(vY, { - id: h, - role: "menu", - shouldFitContainer: u - }, x().createElement(PY, { - onItemClicked: function(e) { - return o({ - isOpen: !1, - event: e - }) - } - }, this.renderDropdownItems())))) - } - }]), r - }(E.Component); - Zf(NY, "defaultProps", { - appearance: "default", - boundariesElement: "viewport", - isLoading: !1, - isOpen: !1, - items: [], - onItemActivated: function() {}, - onOpenChange: function() {}, - position: "bottom left", - isMenuFixed: !1, - shouldAllowMultilineItems: !1, - shouldFitContainer: !1, - shouldFlip: !0, - triggerType: "default", - onPositioned: function() {} - }); - var zY = xS("atlaskit"); - const RY = NS({ - componentName: "dropdownMenu", - packageName: EY.u2, - packageVersion: EY.i8 - })(FS({ - onOpenChange: zY({ - action: "toggled", - actionSubject: "dropdownMenu", - attributes: { - componentName: "dropdownMenu", - packageName: EY.u2, - packageVersion: EY.i8 + } = e; + super._onChange({ + startVideoMuted: t + }) + } + _onStartReactionsMutedChanged(e) { + let { + target: { + checked: t } + } = e; + super._onChange({ + startReactionsMuted: t }) - })(NY)); - var LY = n(2494), - FY = n.n(LY), - qY = Ug.default.div.withConfig({ - displayName: "ItemGroup__GroupTitle", - componentId: "ofbfv9-0" - })(["\n align-items: center;\n color: ", ";\n display: flex;\n flex: 1 1 auto;\n ", ";\n"], (function(e) { - var t = e.theme; - return Ex(t[_x], "secondaryText", "default") - }), (function(e) { - var t = e.isCompact, - n = e.theme, - a = t ? "compact" : "default", - r = Ex(n[_x], a, "padding"), - i = r.bottom, - o = void 0 === i ? 0 : i, - s = r.left, - l = void 0 === s ? 0 : s, - c = r.right, - u = void 0 === c ? 0 : c, - d = r.top, - p = void 0 === d ? 0 : d; - return (0, Ug.css)(["\n padding: ", "px ", "px ", "px ", "px;\n "], p, u, o, l) - })); - qY.displayName = "ItemGroupTitle"; - var BY = Ug.default.div.withConfig({ - displayName: "ItemGroup__GroupTitleAfter", - componentId: "ofbfv9-1" - })(["\n flex: 0 0 auto;\n margin-right: -", "px;\n"], 4); - BY.displayName = "ItemGroupTitleAfter"; - var UY = Ug.default.div.withConfig({ - displayName: "ItemGroup__GroupTitleText", - componentId: "ofbfv9-2" - })(["\n flex: 1 1 auto;\n font-size: ", "px;\n line-height: 1;\n text-transform: uppercase;\n /* Required for children to truncate */\n min-width: 0;\n"], (function() { - return 11 - })); - UY.displayName = "ItemGroupTitleText"; - var HY = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 + } + _onFollowMeEnabledChanged(e) { + let { + target: { + checked: t } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + } = e; + super._onChange({ + followMeEnabled: t + }) + } + _renderModeratorSettings() { + const { + followMeActive: e, + followMeEnabled: t, + startAudioMuted: n, + startVideoMuted: a, + startReactionsMuted: r, + t: i + } = this.props; + return C().createElement("div", { + className: "settings-sub-pane-element", + key: "moderator" + }, C().createElement("div", { + className: "moderator-settings-wrapper" + }, C().createElement(vV, { + isChecked: n, + label: i("settings.startAudioMuted"), + name: "start-audio-muted", + onChange: this._onStartAudioMutedChanged + }), C().createElement(vV, { + isChecked: a, + label: i("settings.startVideoMuted"), + name: "start-video-muted", + onChange: this._onStartVideoMutedChanged + }), C().createElement(vV, { + isChecked: t && !e, + isDisabled: e, + label: i("settings.followMe"), + name: "follow-me", + onChange: this._onFollowMeEnabledChanged + }), C().createElement(vV, { + isChecked: r, + label: i("settings.startReactionsMuted"), + name: "start-reactions-muted", + onChange: this._onStartReactionsMutedChanged + }))) + } + }), WZ = "OPEN_KEYBOARD_SHORTCUTS_DIALOG"; - function r() { - return Jg(this, r), a.apply(this, arguments) - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this, - t = this.props, - n = t.children, - a = t.elemAfter, - r = t.isCompact, - i = t.title, - o = t.label, - s = t.innerRef, - l = t.role, - c = o ? FY()(o) : i ? FY()(i) : ""; - return x().createElement("div", { - "aria-label": c, - role: l, - ref: s - }, i ? x().createElement(qY, { - "aria-hidden": "true", - isCompact: r - }, x().createElement(UY, null, i), a ? x().createElement(BY, { - innerRef: function(t) { - e.headingAfterElement = t + function YZ(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const GZ = Ei(Ne()(class extends bC { + constructor() { + super(...arguments), YZ(this, "accessibilityLabel", "toolbar.accessibilityLabel.shortcuts"), YZ(this, "icon", Ys), YZ(this, "label", "toolbar.shortcuts"), YZ(this, "tooltip", "toolbar.shortcuts") + } + _handleClick() { + const { + dispatch: e, + handleClick: t + } = this.props; + t ? t() : (Da(ln("shortcuts")), e({ + type: WZ + })) + } + })); + + function KZ(e, t) { + var n = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var a = Object.getOwnPropertySymbols(e); + t && (a = a.filter((function(t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable + }))), n.push.apply(n, a) + } + return n + } + + function $Z(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {}; + t % 2 ? KZ(Object(n), !0).forEach((function(t) { + $a(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : KZ(Object(n)).forEach((function(t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) + })) + } + return e + } + var JZ = { + default: { + light: hb.N40, + dark: hb.N40 + }, + inprogress: { + light: hb.B50, + dark: hb.B50 + }, + moved: { + light: hb.Y75, + dark: hb.Y75 + }, + new: { + light: hb.P50, + dark: hb.P50 + }, + removed: { + light: hb.R50, + dark: hb.R50 + }, + success: { + light: hb.G50, + dark: hb.G50 + } + }, ZZ = { + default: { + light: hb.N500, + dark: hb.N500 + }, + inprogress: { + light: hb.B500, + dark: hb.B500 + }, + moved: { + light: hb.N800, + dark: hb.N800 + }, + new: { + light: hb.P500, + dark: hb.P500 + }, + removed: { + light: hb.R500, + dark: hb.R500 + }, + success: { + light: hb.G500, + dark: hb.G500 + } + }, QZ = { + default: { + light: hb.N500, + dark: hb.N500 + }, + inprogress: { + light: hb.B400, + dark: hb.B400 + }, + moved: { + light: hb.Y500, + dark: hb.Y500 + }, + new: { + light: hb.P400, + dark: hb.P400 + }, + removed: { + light: hb.R400, + dark: hb.R400 + }, + success: { + light: hb.G400, + dark: hb.G400 + } + }, XZ = { + default: { + light: hb.N0, + dark: hb.N0 + }, + inprogress: { + light: hb.N0, + dark: hb.N0 + }, + moved: { + light: hb.N800, + dark: hb.N800 + }, + new: { + light: hb.N0, + dark: hb.N0 + }, + removed: { + light: hb.N0, + dark: hb.N0 + }, + success: { + light: hb.N0, + dark: hb.N0 + } + }, eQ = Gg((function(e) { + var t = e.appearance, + n = e.isBold, + a = e.maxWidth; + return $Z($Z({}, "object" === yr(t) ? $Z({ + backgroundColor: (n ? QZ : JZ).default.light, + textColor: (n ? XZ : ZZ).default.light + }, t) : { + backgroundColor: (n ? QZ[t] : JZ[t]).light, + textColor: (n ? XZ[t] : ZZ[t]).light + }), {}, { + maxWidth: a + }) + })), tQ = n(554), nQ = function() { + var e; + return "node" === (null === (e = null == tQ ? void 0 : tQ.release) || void 0 === e ? void 0 : e.name) + }, aQ = nQ() ? (0, x.createContext)(null) : {}; + if (!nQ()) + for (var rQ = document.querySelectorAll("style[data-cmpld]"), iQ = 0; iQ < rQ.length; iQ++) document.head.appendChild(rQ[iQ]); + var oQ = function() { + return nQ() ? (0, x.useContext)(aQ) || {} : aQ + }; + const sQ = function(e) { + if (nQ()) { + var t = oQ(); + return x.createElement(aQ.Provider, { + value: t + }, e.children) + } + return e.children + }; + var lQ = ["", "l", "v", "w", "f", "i", "h", "a", "m"], cQ = {}, uQ = { + k: "l", + ited: "v", + "us-within": "w", + us: "f", + "us-visible": "i", + er: "h", + ive: "a" + }, dQ = function(e) { + return 64 === e.charCodeAt(0) ? "m" : 58 === e.charCodeAt(10) && uQ[e.slice(14, e.indexOf("{"))] || "" + }; + + function pQ(e, t) { + var n = function(e, t) { + if (!cQ[e]) { + for (var n = lQ.indexOf(e) + 1, a = null; n < lQ.length; n++) { + var r = cQ[lQ[n]]; + if (r) { + a = r; + break } - }, a) : null) : null, n) - } - }]), r - }(E.Component); - Zf(HY, "defaultProps", { - role: "group" - }); - var VY = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 + } + var i = document.createElement("style"); + t.nonce && i.setAttribute("nonce", t.nonce), i.appendChild(document.createTextNode("")), cQ[e] = i, document.head.insertBefore(i, a) } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); + return cQ[e] + }(dQ(e), t), + a = n.sheet; + a.insertRule(e, a.cssRules.length) + } - function r() { - return Jg(this, r), a.apply(this, arguments) + function hQ(e) { + var t = oQ(); + if (e.children.length) { + if (nQ()) { + for (var n = {}, a = !1, r = 0; r < e.children.length; r++) + if (!t[o = e.children[r]]) { + t[o] = !0, a = !0; + var i = dQ(o); + n[i] = (n[i] || "") + o + } return a ? C().createElement("style", { + "data-cmpld": !0, + nonce: e.nonce + }, lQ.map((function(e) { + return n[e] + })).join("")) : null } - return Qg(r, [{ - key: "render", - value: function() { - var e = this.props, - t = e.children, - n = e.elemAfter, - a = e.title; - return x().createElement(HY, { - elemAfter: n, - title: a, - role: "menu" - }, t) - } - }]), r - }(E.Component); - - function WY(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - class YY extends E.PureComponent { - constructor(e) { - super(e), WY(this, "state", { - isDropdownOpen: !1 - }), this._onDropdownOpenChange = this._onDropdownOpenChange.bind(this), this._onSelect = this._onSelect.bind(this) + for (r = 0; r < e.children.length; r++) { + var o; + t[o = e.children[r]] || (t[o] = !0, pQ(o, e)) } - render() { - const { - broadcasts: e, - selectedBoundStreamID: t, - t: n - } = this.props; - if (!e.length) return x().createElement("a", { - className: "warning-text", - href: "https://www.youtube.com/live_dashboard", - rel: "noopener noreferrer", - target: "_blank" - }, n("liveStreaming.getStreamKeyManually")); - const a = e.map((e => x().createElement(mY, { - "data-streamid": e.boundStreamID, - key: e.boundStreamID, - onClick: this._onSelect - }, e.title))), - r = this.props.broadcasts.find((e => e.boundStreamID === t)), - i = r && r.title || n("liveStreaming.choose"); - return x().createElement("div", { - className: "broadcast-dropdown dropdown-menu" - }, x().createElement(RY, { - isOpen: this.state.isDropdownOpen, - onItemActivated: this._onSelect, - onOpenChange: this._onDropdownOpenChange, - shouldFitContainer: !0, - trigger: i, - triggerButtonProps: { - className: "broadcast-dropdown-trigger", - shouldFitContainer: !0 - }, - triggerType: "button" - }, x().createElement(VY, null, a))) + } + return null + } + const mQ = (0, x.memo)(hQ, (function() { + return !0 + })); + + function fQ(e) { + if (e.length <= 1) return e[0] || void 0; + for (var t = {}, n = 0; n < e.length; n++) { + var a = e[n]; + if (a) + for (var r = a.split(" "), i = 0; i < r.length; i++) { + var o = r[i]; + t[o.slice(0, 95 === o.charCodeAt(0) ? 5 : void 0)] = o + } + } + var s = ""; + for (var l in t) s += t[l] + " "; + return s.slice(0, -1) + } + + function gQ(e, t, n) { + return null != e ? t ? n ? n + e + t : e + t : e : "var(--, )" + } + var bQ = "".concat(3, "px"); + const yQ = function(e) { + var t = e.backgroundColor, + n = e.textColor, + a = e.children, + r = e.testId; + return C().createElement(sQ, null, C().createElement(mQ, null, ["._bfhkaxbu{background-color:var(--_1ly4823)}", "._2rko1nwa{border-radius:var(--_fer9fa)}", "._vchhusvi{box-sizing:border-box}", "._syaz1u00{color:var(--_srel9g)}", "._1e0c1o8l{display:inline-block}", "._1wyb1skh{font-size:11px}", "._k48p1fw0{font-weight:700}", "._vwz4kb7n{line-height:1}", "._p12f1osq{max-width:100%}", "._ca0qyh40{padding-top:2px}", "._u5f3idpf{padding-right:0}", "._n3td1l7b{padding-bottom:3px}", "._19bvidpf{padding-left:0}", "._1p1dangw{text-transform:uppercase}", "._s7n41q9y{vertical-align:baseline}"]), C().createElement("span", { + "data-testid": r, + className: fQ(["_bfhkaxbu _2rko1nwa _vchhusvi _syaz1u00 _1e0c1o8l _1wyb1skh _k48p1fw0 _vwz4kb7n _p12f1osq _ca0qyh40 _u5f3idpf _n3td1l7b _19bvidpf _1p1dangw _s7n41q9y"]), + style: { + "--_1ly4823": gQ(t), + "--_fer9fa": gQ(bQ), + "--_srel9g": gQ(n) + } + }, a)) + }; + var vQ = "".concat(4, "px"); + const kQ = function(e) { + var t = e.maxWidth, + n = e.children; + return C().createElement(sQ, null, C().createElement(mQ, null, ["._1e0c1o8l{display:inline-block}", "._s7n4jp4b{vertical-align:top}", "._1reo15vq{overflow-x:hidden}", "._18m915vq{overflow-y:hidden}", "._1bto1l2s{text-overflow:ellipsis}", "._o5721q9c{white-space:nowrap}", "._vchhusvi{box-sizing:border-box}", "._ca0qidpf{padding-top:0}", "._u5f370xm{padding-right:var(--_1xlms2h)}", "._n3tdidpf{padding-bottom:0}", "._19bv70xm{padding-left:var(--_1xlms2h)}", "._p12fvyns{max-width:var(--_1w406pq)}", "._1bsb1osq{width:100%}"]), C().createElement("span", { + className: fQ(["_1e0c1o8l _s7n4jp4b _1reo15vq _18m915vq _1bto1l2s _o5721q9c _vchhusvi _ca0qidpf _u5f370xm _n3tdidpf _19bv70xm _p12fvyns _1bsb1osq"]), + style: { + "--_1xlms2h": gQ(vQ), + "--_1w406pq": gQ("number" == typeof t ? "".concat(t, "px") : t) + } + }, n)) + }; + var _Q = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - _formatBroadcasts(e) { - return e.map((e => ({ - content: e.title, - value: e + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); + + function r() { + return Ya(this, r), a.apply(this, arguments) + } + return Ka(r, [{ + key: "render", + value: function() { + var e = this.props, + t = e.theme, + n = e.children, + a = e.testId; + return C().createElement(eQ.Provider, { + value: t + }, C().createElement(eQ.Consumer, this.props, (function(e) { + return C().createElement(yQ, z({ + testId: a + }, e), C().createElement(kQ, e, n)) }))) } - _onDropdownOpenChange(e) { - this.setState({ - isDropdownOpen: e.isOpen - }) - } - _onSelect(e) { - const t = e.currentTarget.getAttribute("data-streamid"); - this.props.onBroadcastSelected(t) - } + }]), r + }(x.PureComponent); $a(_Q, "defaultProps", { + isBold: !1, + appearance: "default", + maxWidth: 200 + }); class wQ extends x.Component { + render() { + const e = Array.from(this.props.shortcutDescriptions).map((e => this._renderShortcutsListItem(...e))); + return C().createElement(yL, { + cancelKey: "dialog.close", + submitDisabled: !0, + titleKey: "keyboardShortcuts.keyboardShortcuts", + width: "small" + }, C().createElement("div", { + id: "keyboard-shortcuts" + }, C().createElement("ul", { + className: "shortcuts-list", + id: "keyboard-shortcuts-list" + }, e))) + } + _renderShortcutsListItem(e, t) { + var n; + let a = "Alt"; + return null !== (n = window.navigator) && void 0 !== n && n.platform && -1 !== window.navigator.platform.indexOf("Mac") && (a = "⌥"), C().createElement("li", { + className: "shortcuts-list__item", + key: e + }, C().createElement("span", { + "aria-label": this.props.t(t), + className: "shortcuts-list__description" + }, this.props.t(t)), C().createElement("span", { + className: "item-action" + }, C().createElement(_Q, { + isBold: !0 + }, e.startsWith(":") ? `${a} + ${e.slice(1)}` : e))) } - WY(YY, "defaultProps", { - broadcasts: [] - }); - const GY = Li(YY); + } + const SQ = Ei(wQ); - function KY(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const $Y = Li(ze((function(e) { - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - KY(e, t, n[t]) - })) - } - return e - }({}, function(e) { - return { - _conference: e["features/base/conference"].conference, - _googleAPIState: e["features/google-api"].googleAPIState, - _googleProfileEmail: e["features/google-api"].profileEmail, - _streamKey: e["features/recording"].streamKey - } - }(e), { - _googleApiApplicationClientID: e["features/base/config"].googleApiApplicationClientID - }) - }))(class extends GW { - constructor(e) { - super(e), this._onGetYouTubeBroadcasts = this._onGetYouTubeBroadcasts.bind(this), this._onInitializeGoogleApi = this._onInitializeGoogleApi.bind(this), this._onGoogleSignIn = this._onGoogleSignIn.bind(this), this._onRequestGoogleSignIn = this._onRequestGoogleSignIn.bind(this), this._onYouTubeBroadcastIDSelected = this._onYouTubeBroadcastIDSelected.bind(this) - } - componentDidMount() { - super.componentDidMount(), this.props._googleApiApplicationClientID && this._onInitializeGoogleApi() - } - render() { - const { - _googleApiApplicationClientID: e - } = this.props; - return x().createElement(IO, { - cancelKey: "dialog.Cancel", - okKey: "dialog.startLiveStreaming", - onCancel: this._onCancel, - onSubmit: this._onSubmit, - titleKey: "liveStreaming.start", - width: "small" - }, x().createElement("div", { - className: "live-stream-dialog" - }, e ? this._renderYouTubePanel() : null, x().createElement($W, { - onChange: this._onStreamKeyChange, - value: this.state.streamKey || this.props._streamKey - }))) - } - _onInitializeGoogleApi() { - this.props.dispatch(BK()).catch((e => this._parseErrorFromResponse(e))) - } - componentDidUpdate(e) { - e._googleAPIState === zK.LOADED && this.props._googleAPIState === zK.SIGNED_IN && this._onGetYouTubeBroadcasts() - } - _onGetYouTubeBroadcasts() { - this.props.dispatch(VK()).catch((e => this._parseErrorFromResponse(e))), this.props.dispatch((() => qK.requestAvailableYouTubeBroadcasts().then((e => { - const t = e.result.items, - n = {}; - for (let e = 0; e < t.length; e++) { - const a = t[e], - r = a.contentDetails.boundStreamId; - r && !n[r] && (n[r] = { - boundStreamID: r, - id: a.id, - status: a.status.lifeCycleStatus, - title: a.snippet.title - }) - } - return Object.values(n) - })))).then((e => { - if (this._setStateIfMounted({ - broadcasts: e - }), 1 === e.length) { - const t = e[0]; - this._onYouTubeBroadcastIDSelected(t.boundStreamID) - } - })).catch((e => this._parseErrorFromResponse(e))) - } - _onGoogleSignIn() { - this.props.dispatch(HK()).catch((e => this._parseErrorFromResponse(e))) - } - _onRequestGoogleSignIn() { - this.props.dispatch((() => qK.showAccountSelection())).then((() => this._setStateIfMounted({ - broadcasts: void 0, - errorType: void 0 - }))).then((() => this._onGetYouTubeBroadcasts())) - } - _onYouTubeBroadcastIDSelected(e) { - this.props.dispatch(function(e) { - return () => qK.requestLiveStreamsForYouTubeBroadcast(e).then((t => { - const n = t.result.items; - return { - streamKey: n && n[0] && n[0].cdn.ingestionInfo.streamName || "", - selectedBoundStreamID: e - } - })) - }(e)).then((({ - streamKey: e, - selectedBoundStreamID: t - }) => this._setStateIfMounted({ - streamKey: e, - selectedBoundStreamID: t - }))) - } - _parseErrorFromResponse(e) { - if (!e || !e.result) return; - const t = e.result.error, - n = t && t.errors, - a = n && n[0]; - this._setStateIfMounted({ - errorType: a && a.reason || null - }) - } - _renderYouTubePanel() { - const { - t: e, - _googleProfileEmail: t - } = this.props, { - broadcasts: n, - selectedBoundStreamID: a - } = this.state; - let r, i; - switch (this.props._googleAPIState) { - case zK.LOADED: - r = x().createElement(YK, { - onClick: this._onGoogleSignIn - }), i = e("liveStreaming.signInCTA"); - break; - case zK.SIGNED_IN: - r = n ? x().createElement(GY, { - broadcasts: n, - onBroadcastSelected: this._onYouTubeBroadcastIDSelected, - selectedBoundStreamID: a - }) : x().createElement(Py, { - isCompleting: !1, - size: "medium" - }), i = x().createElement("div", null, `${e("liveStreaming.chooseCTA",{email:t})} `, x().createElement("a", { - onClick: this._onRequestGoogleSignIn - }, e("liveStreaming.changeSignIn"))); - break; - case zK.NEEDS_LOADING: - default: - r = x().createElement(Py, { - isCompleting: !1, - size: "medium" - }) - } - return void 0 !== this.state.errorType && (r = x().createElement(YK, { - onClick: this._onRequestGoogleSignIn - }), i = this._getGoogleErrorMessageToDisplay()), x().createElement("div", { - className: "google-panel" - }, x().createElement("div", { - className: "live-stream-cta" - }, i), x().createElement("div", { - className: "google-api" - }, r)) - } - _getGoogleErrorMessageToDisplay() { - let e; - return e = "liveStreamingNotEnabled" === this.state.errorType ? this.props.t("liveStreaming.errorLiveStreamNotEnabled", { - email: this.props._googleProfileEmail - }) : this.props.t("liveStreaming.errorAPI"), x().createElement("div", { - className: "google-error" - }, e) - } - })); - class JY extends E.Component { - constructor(e) { - super(e), this._onSubmit = this._onSubmit.bind(this) - } - _onSubmit() { - Ma(rn("stop", "confirm.button")); - const { - _session: e - } = this.props; - return e && this.props._conference.stopRecording(e.id), !0 - } + function EQ(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const xQ = class extends bC { + constructor() { + super(...arguments), EQ(this, "accessibilityLabel", "toolbar.accessibilityLabel.speakerStats"), EQ(this, "icon", iu), EQ(this, "label", "toolbar.speakerStats"), EQ(this, "tooltip", "toolbar.speakerStats") } - const ZY = Li(ze((function(e) { - return { - _conference: e["features/base/conference"].conference, - _session: sR(e, Et.mode.STREAM) - } - }))(class extends JY { - render() { - return x().createElement(IO, { - okKey: "dialog.stopLiveStreaming", - onSubmit: this._onSubmit, - titleKey: "dialog.liveStreaming", - width: "small" - }, this.props.t("dialog.stopStreamingWarning")) - } - })); - - function QY(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + }, CQ = Ei(Ne()(class extends xQ { + _handleClick() { + const { + dispatch: e, + handleClick: t + } = this.props; + t ? t() : (Da(ln("speaker.stats")), e(VI(GQ))) } + })), AQ = "INIT_SEARCH", TQ = "INIT_UPDATE_STATS", DQ = "UPDATE_STATS", PQ = "INIT_REORDER_STATS"; - function XY(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function jQ(e) { + return { + type: TQ, + getSpeakerStats: e } - const eG = Li(ze((function(e, t) { - const n = function(e, t) { - let n, { - visible: a - } = t, - r = ""; - if (void 0 === a) { - const t = Jh(e), - { - enableFeaturesBasedOnToken: i, - fileRecordingsEnabled: o - } = e["features/base/config"], - { - features: s = {} - } = Rh(e); - a = t && o, i && (a = a && "true" === String(s.recording), n = "disabled" === String(s.recording), a || n || (n = !0, a = !0, r = "dialog.recordingDisabledTooltip")) - } - return sR(e, Et.mode.STREAM) && (n = !0, r = "dialog.recordingDisabledBecauseOfActiveLiveStreamingTooltip"), { - _disabled: n, - _isRecordingRunning: Boolean(sR(e, Et.mode.FILE)), - _tooltip: r, - visible: a - } - }(e, t), - a = Qn(e); - let { - visible: r - } = t; - return void 0 === r && (r = a.includes("recording") && n.visible), - function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - XY(e, t, n[t]) - })) - } - return e - }({}, n, { - visible: r - }) - }))(class extends Vw { - constructor(...e) { - super(...e), QY(this, "accessibilityLabel", "toolbar.accessibilityLabel.recording"), QY(this, "icon", Tp), QY(this, "label", "dialog.startRecording"), QY(this, "toggledLabel", "dialog.stopRecording") - } - _getTooltip() { - return this.props._tooltip || "" - } - async _handleClick() { - const { - _isRecordingRunning: e, - dispatch: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("recording.button", { - is_recording: e, - type: Et.mode.FILE - })), await t(bM(Mj)) || t(sP(e ? dG : cG))) - } - _isDisabled() { - return this.props._disabled - } - _isToggled() { - return this.props._isRecordingRunning - } - })); + } - function tG(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function MQ(e) { + return { + type: DQ, + stats: e } - class nG extends E.Component { - constructor(e) { - let t; - super(e), this._onSubmit = this._onSubmit.bind(this), this._onSelectedRecordingServiceChanged = this._onSelectedRecordingServiceChanged.bind(this), this._onSharingSettingChanged = this._onSharingSettingChanged.bind(this), this.props._fileRecordingsServiceEnabled || !this._areIntegrationsEnabled() ? t = rR : this._areIntegrationsEnabled() && (t = iR), this.state = { - isTokenValid: !1, - isValidating: !1, - userName: void 0, - sharingEnabled: !0, - spaceLeft: void 0, - selectedRecordingService: t + } + const IQ = { + happy: "😊", + neutral: "😐", + sad: "🙁", + surprised: "😮", + angry: "😠", + fearful: "😨", + disgusted: "🤢" + }; class OQ extends x.Component { + render() { + const { + t: e + } = this.props; + return C().createElement("div", { + className: "speaker-stats-item__labels" + }, C().createElement("div", { + className: "speaker-stats-item__status" + }), C().createElement("div", { + className: "speaker-stats-item__name" + (this.props.showFacialExpressions ? "_expressions_on" : "") + }, e("speakerStats.name")), C().createElement("div", { + className: "speaker-stats-item__time" + (this.props.showFacialExpressions ? "_expressions_on" : "") + }, e("speakerStats.speakerTime")), this.props.showFacialExpressions && (this.props.reduceExpressions ? Object.keys(IQ).filter((e => !["angry", "fearful", "disgusted"].includes(e))) : Object.keys(IQ)).map((t => C().createElement("div", { + className: "speaker-stats-item__expression", + key: t + }, C().createElement(hC, { + content: e(`speakerStats.${t}`), + position: "top" + }, C().createElement("div", { + style: { + fontSize: 17 } - } - componentDidMount() { - void 0 !== this.props._token && this._onTokenUpdated() - } - componentDidUpdate(e) { - this.props._token !== e._token && this._onTokenUpdated() - } - _areIntegrationsEnabled() { - return this.props._isDropboxEnabled - } - _onSharingSettingChanged() { - this.setState({ - sharingEnabled: !this.state.sharingEnabled - }) - } - _onSelectedRecordingServiceChanged(e) { - this.setState({ - selectedRecordingService: e - }, (() => { - this.props.dispatch(function(e) { - return { - type: fG, - selectedRecordingService: e - } - }(e)) - })) - } - _onTokenUpdated() { - const { - _appKey: e, - _isDropboxEnabled: t, - _token: n, - _rToken: a, - _tokenExpireDate: r, - dispatch: i - } = this.props; - var o, s; - if (t) - if (void 0 === n) this.setState({ - isTokenValid: !1, - isValidating: !1 - }); - else { - if (r && Date.now() > new Date(r)) return void - function(e, t) { - const n = new Gz.DropboxAuth({ - clientId: e - }); - return n.setRefreshToken(t), n.refreshAccessToken().then((() => ({ - token: n.getAccessToken(), - rToken: n.getRefreshToken(), - expireDate: n.getAccessTokenExpiresAt().getTime() - }))) - }(e, a).then((e => i(Xz(e.token, e.rToken, e.expireDate)))); - this.setState({ - isTokenValid: !1, - isValidating: !0 - }), (o = n, s = e, Promise.all([$z(o, s), Jz(o, s)]).then((([e, t]) => { - const { - allocated: n, - used: a - } = t; - return { - userName: e, - spaceLeft: Math.floor((n - a) / 1048576) - } - }), (e => { - Qz.error(e) - }))).then((e => { - void 0 === e ? this.setState({ - isTokenValid: !1, - isValidating: !1 - }) : this.setState(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - tG(e, t, n[t]) - })) - } - return e - }({ - isTokenValid: !0, - isValidating: !1 - }, e)) - })) - } - } - _onSubmit() { - const { - _appKey: e, - _autoCaptionOnRecord: t, - _conference: n, - _isDropboxEnabled: a, - _rToken: r, - _token: i, - dispatch: o - } = this.props; - let s; - const l = {}; - if (a && this.state.selectedRecordingService === iR) { - if (!i) return void o(Wf({ - titleKey: "dialog.noDropboxToken" - })); - s = JSON.stringify({ - file_recording_metadata: { - upload_credentials: { - service_name: iR, - token: i, - r_token: r, - app_key: e - } - } - }), l.type = iR - } else s = JSON.stringify({ - file_recording_metadata: { - share: this.state.sharingEnabled - } - }), l.type = rR; - return Ma(an("start", "confirm.button", l)), n.startRecording({ - mode: Et.mode.FILE, - appData: s - }), t && o(Ba()), !0 - } + }, IQ[t])))))) } - const aG = nG, - rG = "images/icon-cloud.png"; + } + const NQ = Ei(OQ); - function iG(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - oG(e, t, n[t]) - })) - } - return e + function RQ(e, t, n) { + return n(t, { + count: e + }) + } + class zQ extends x.Component { + render() { + const { + time: e, + t + } = this.props, n = function(e, t) { + const n = (a = e, Math.floor(a / 36e5)); + var a; + const r = function(e) { + return Math.floor(e / 6e4 % 60) + }(e), + i = function(e) { + return Math.floor(e / 1e3 % 60) + }(e), + o = []; + if (n) { + const e = RQ(n, "speakerStats.hours", t); + o.push(e) + } + if (n || r) { + const e = RQ(r, "speakerStats.minutes", t); + o.push(e) + } + const s = RQ(i, "speakerStats.seconds", t); + return o.push(s), o + }(e, t); + return C().createElement("div", null, n) } + } + const LQ = Ei(zQ), FQ = e => { + const t = "speaker-stats-item " + (e.hasLeft ? "status-user-left" : ""), + n = "speaker-stats-item__status-dot " + (e.isDominantSpeaker ? "status-active" : "status-inactive"); + return C().createElement("div", { + className: t, + key: e.participantId + }, C().createElement("div", { + className: "speaker-stats-item__status" + }, C().createElement("span", { + className: n + })), C().createElement("div", { + "aria-label": e.t("speakerStats.speakerStats"), + className: "speaker-stats-item__name" + (e.showFacialExpressions ? "_expressions_on" : "") + }, e.displayName), C().createElement("div", { + "aria-label": e.t("speakerStats.speakerTime"), + className: "speaker-stats-item__time" + (e.showFacialExpressions ? "_expressions_on" : "") + }, C().createElement(LQ, { + time: e.dominantSpeakerTime + })), e.showFacialExpressions && C().createElement(C().Fragment, null, C().createElement("div", { + "aria-label": "Happy", + className: "speaker-stats-item__expression" + }, e.facialExpressions.happy), C().createElement("div", { + "aria-label": "Neutral", + className: "speaker-stats-item__expression" + }, e.facialExpressions.neutral), C().createElement("div", { + "aria-label": "Sad", + className: "speaker-stats-item__expression" + }, e.facialExpressions.sad), C().createElement("div", { + "aria-label": "Surprised", + className: "speaker-stats-item__expression" + }, e.facialExpressions.surprised), !e.reduceExpressions && C().createElement(C().Fragment, null, C().createElement("div", { + "aria-label": "Angry", + className: "speaker-stats-item__expression" + }, e.facialExpressions.angry), C().createElement("div", { + "aria-label": "Fearful", + className: "speaker-stats-item__expression" + }, e.facialExpressions.fearful), C().createElement("div", { + "aria-label": "Disgusted", + className: "speaker-stats-item__expression" + }, e.facialExpressions.disgusted)))) + }, qQ = () => { + const e = (e => { + const t = Ae(), + { + t: n + } = pr(), + a = Pe((e => e["features/base/conference"].conference)), + r = Pe((e => e["features/speaker-stats"].stats)), + i = Pe(Uh), + { + enableFacialRecognition: o + } = Pe((e => e["features/base/config"])) || {}, + { + facialExpressions: s + } = Pe((e => e["features/facial-recognition"])) || {}, + l = (0, x.useCallback)((() => { + const e = a.getSpeakerStats(); + for (const r in e) + if (e[r]) { + if (e[r].isLocalStats()) { + const t = n("me"); + e[r].setDisplayName(i.name ? `${i.name} (${t})` : t), o && e[r].setFacialExpressions(s) + } + var t; + e[r].getDisplayName() || e[r].setDisplayName(null === (t = a.getParticipantById(r)) || void 0 === t ? void 0 : t.name) + } return e + })), + c = (0, x.useCallback)((() => t(jQ(l))), [t, jQ]); + (0, x.useEffect)((() => { + const e = setInterval((() => { + c() + }), 1e3); + return () => clearInterval(e) + }), []); + const u = 0 === Object.keys(r).length ? l() : r; + return Object.keys(u).map((t => { + const a = u[t]; + if (!a || a.hidden) return null; + const r = {}; + return r.isDominantSpeaker = a.isDominantSpeaker(), r.dominantSpeakerTime = a.getTotalDominantSpeakerTime(), r.participantId = t, r.hasLeft = a.hasLeft(), o && (r.facialExpressions = a.getFacialExpressions()), r.showFacialExpressions = o, r.displayName = a.getDisplayName(), r.t = n, e(r) + })) + })(FQ); + return C().createElement("div", null, e) + }, BQ = function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + return xw(e, z({ + defaultTheme: aL + }, t)) + }; - function oG(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function UQ(e) { + var t; + return null === (t = e["features/base/config"]) || void 0 === t ? void 0 : t.disableSpeakerStatsSearch + } + + function HQ(e, t) { + const n = _().cloneDeep(null != t ? t : function(e) { + var t, n; + return null !== (t = null === (n = e["features/speaker-stats"]) || void 0 === n ? void 0 : n.stats) && void 0 !== t ? t : {} + }(e)), + a = function(e) { + var t; + return null === (t = e["features/speaker-stats"]) || void 0 === t ? void 0 : t.criteria + }(e); + if (null !== a) { + const e = new RegExp(a, "gi"); + for (const t in n) + if (n[t].hasOwnProperty("_isLocalStats")) { + const a = n[t].getDisplayName(); + n[t].hidden = !a || !a.match(e) + } } - class sG extends E.Component { - constructor(e) { - super(e), this._onSignIn = this._onSignIn.bind(this), this._onSignOut = this._onSignOut.bind(this), this._onDropboxSwitchChange = this._onDropboxSwitchChange.bind(this), this._onRecordingServiceSwitchChange = this._onRecordingServiceSwitchChange.bind(this) - } - render() { - const { - _styles: e - } = this.props; - return x().createElement(Ns, { - className: "recording-dialog", - style: e.container - }, this._renderNoIntegrationsContent(), this._renderIntegrationsContent(), this._renderFileSharingContent()) - } - _renderFileSharingContent() { - const { - fileRecordingsServiceSharingEnabled: e, - isVpaas: t, - selectedRecordingService: n - } = this.props; - if (!e || t || n !== rR) return null; - const { - _dialogStyles: a, - _styles: r, - isValidating: i, - onSharingSettingChanged: o, - sharingSetting: s, - t: l - } = this.props; - return x().createElement(Ns, { - className: "recording-header", - key: "fileSharingSetting", - style: [r.header, a.topBorderContainer] - }, x().createElement(Ns, { - className: "recording-icon-container" - }, x().createElement(rS, { - className: "recording-icon", - src: rG, - style: r.recordingIcon - })), x().createElement(_S, { - className: "recording-title", - style: iG({}, a.text, r.title) - }, l("recording.fileSharingdescription")), x().createElement(Oj, { - className: "recording-switch", - disabled: i, - onValueChange: o, - style: r.switch, - trackColor: { - false: Ss - }, - value: s - })) - } - _renderNoIntegrationsContent() { - if (!this.props.fileRecordingsServiceEnabled && this.props.integrationsEnabled) return null; - const { - _dialogStyles: e, - _styles: t, - isValidating: n, - isVpaas: a, - t: r - } = this.props, i = this.props.integrationsEnabled ? x().createElement(Oj, { - className: "recording-switch", - disabled: n, - onValueChange: this._onRecordingServiceSwitchChange, - style: t.switch, - trackColor: { - false: Ss - }, - value: this.props.selectedRecordingService === rR - }) : null, o = a ? rG : "images/jitsiLogo_square.png", s = r(a ? "recording.serviceDescriptionCloud" : "recording.serviceDescription"); - return x().createElement(Ns, { - className: "recording-header", - key: "noIntegrationSetting", - style: t.header - }, x().createElement(Ns, { - className: "recording-icon-container" - }, x().createElement(rS, { - className: "recording-icon", - src: o, - style: t.recordingIcon - })), x().createElement(_S, { - className: "recording-title", - style: iG({}, e.text, t.title) - }, s), i) - } - _renderIntegrationsContent() { - if (!this.props.integrationsEnabled) return null; - const { - _dialogStyles: e, - _styles: t, - isTokenValid: n, - isValidating: a, - t: r - } = this.props; - let i = null, - o = null; - return a ? (i = this._renderSpinner(), o = x().createElement(Ns, { - className: "recording-switch" - })) : n ? (i = this._renderSignOut(), o = x().createElement(Ns, { - className: "recording-switch" - }, x().createElement(aS, { - onValueChange: this._onSignOut, - style: t.signButton - }, r("recording.signOut")))) : o = x().createElement(Ns, { - className: "recording-switch" - }, x().createElement(aS, { - onValueChange: this._onSignIn, - style: t.signButton - }, r("recording.signIn"))), this.props.fileRecordingsServiceEnabled && (o = x().createElement(Oj, { - className: "recording-switch", - disabled: a, - onValueChange: this._onDropboxSwitchChange, - style: t.switch, - trackColor: { - false: Ss - }, - value: this.props.selectedRecordingService === iR - })), x().createElement(Ns, null, x().createElement(Ns, { - className: "recording-header recording-header-line", - style: t.header - }, x().createElement(Ns, { - className: "recording-icon-container" - }, x().createElement(rS, { - className: "recording-icon", - src: "images/dropboxLogo_square.png", - style: t.recordingIcon - })), x().createElement(_S, { - className: "recording-title", - style: iG({}, e.text, t.title) - }, r("recording.authDropboxText")), o), x().createElement(Ns, { - className: "authorization-panel" - }, i)) - } - _onRecordingServiceSwitchChange() { - const { - isTokenValid: e, - onChange: t, - selectedRecordingService: n - } = this.props; - n !== rR && (t(rR), e && this._onSignOut()) - } - _onDropboxSwitchChange() { - const { - isTokenValid: e, - onChange: t, - selectedRecordingService: n - } = this.props; - n !== iR && (t(iR), e || this._onSignIn()) - } - _renderSpinner() { - return x().createElement(Py, { - isCompleting: !1, - size: "small" - }) - } - _renderSignOut() { - const { - _styles: e, - spaceLeft: t, - t: n, - userName: a - } = this.props, r = function(e) { - return Math.floor((e || 0) / 10) - }(t); - return x().createElement(Ns, null, x().createElement(Ns, { - className: "logged-in-panel", - style: e.loggedIn - }, x().createElement(Ns, null, x().createElement(_S, { - style: e.text - }, n("recording.loggedIn", { - userName: a - }))), x().createElement(Ns, null, x().createElement(_S, { - style: e.text - }, n("recording.availableSpace", { - spaceLeft: t, - duration: r - }))))) - } - _onSignIn() { - Ma(an("start", "signIn.button")), this.props.dispatch(((e, t) => { - const n = t(), - { - locationURL: a - } = n["features/base/connection"], - { - dropbox: r = {} - } = n["features/base/config"], - i = r.redirectURI || `${a.origin}/static/oauth.html`; - (function(e, t) { - const n = new Gz.DropboxAuth({ - clientId: e - }); - return n.getAuthenticationUrl(t, void 0, "code", "offline", void 0, void 0, !0).then(Kz).then((e => { - const a = new URLSearchParams(new URL(e).search).get("code"); - return n.getAccessTokenFromCode(t, a) - })).then((e => { - return { - token: e.result.access_token, - rToken: e.result.refresh_token, - expireDate: (t = e.result.expires_in, new Date(Date.now() + 1e3 * t).getTime()) - }; - var t - })) - })(r.appKey, i).then((({ - token: t, - rToken: n, - expireDate: a - }) => { - e(Xz(t, n, a)) - })).catch((e => Qz.log("Cannot authorize dropbox", e))) - })) - } - _onSignOut() { - Ma(an("start", "signOut.button")), this.props.dispatch(Xz()) - } + return n + } + const VQ = BQ((e => ({ + speakerStatsSearch: { + position: "absolute", + right: "80px", + top: "8px", + [e.breakpoints.down("400")]: { + left: 20, + right: 0, + top: 42 + } + } + }))), WQ = function(e) { + let { + onSearch: t + } = e; + const n = VQ(), + { + t: a + } = pr(), + [r, i] = (0, x.useState)(""), + o = (0, x.useCallback)((e => { + const n = mM(e); + i(n), t && t(n) + }), []); + return Pe(UQ) ? null : C().createElement("div", { + className: n.speakerStatsSearch + }, C().createElement(xB, { + autoComplete: "off", + autoFocus: !1, + compact: !0, + name: "speakerStatsSearch", + onChange: o, + placeholder: a("speakerStats.search"), + shouldFitContainer: !1, + type: "text", + value: r + })) + }; class YQ extends x.Component { + constructor(e) { + super(e), this._onSearch = this._onSearch.bind(this) } - const lG = Li(ze((function(e) { - return iG({}, function(e) { - return { - _dialogStyles: rP.get(e, "Dialog") - } - }(e), { - isVpaas: Rj(e), - _styles: rP.get(e, "StartRecordingDialogContent") - }) - }))(sG)), - cG = Li(ze((function(e) { - const { - autoCaptionOnRecord: t = !1, - fileRecordingsServiceEnabled: n = !1, - fileRecordingsServiceSharingEnabled: a = !1, - dropbox: r = {} - } = e["features/base/config"]; + render() { + var e; + return C().createElement(yL, { + cancelKey: "dialog.close", + submitDisabled: !0, + titleKey: "speakerStats.speakerStats", + width: this.props._showFacialExpressions ? "large" : "medium" + }, C().createElement("div", { + className: "speaker-stats" + }, C().createElement(WQ, { + onSearch: this._onSearch + }), C().createElement(NQ, { + reduceExpressions: this.props._reduceExpressions, + showFacialExpressions: null !== (e = this.props._showFacialExpressions) && void 0 !== e && e + }), C().createElement(qQ, null))) + } + _onSearch() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""; + this.props.dispatch(function(e) { return { - _appKey: r.appKey, - _autoCaptionOnRecord: t, - _conference: e["features/base/conference"].conference, - _fileRecordingsServiceEnabled: n, - _fileRecordingsServiceSharingEnabled: a, - _isDropboxEnabled: Zz(e), - _rToken: e["features/dropbox"].rToken, - _tokenExpireDate: e["features/dropbox"].expireDate, - _token: e["features/dropbox"].token - } - }))(class extends aG { - render() { - const { - isTokenValid: e, - isValidating: t, - selectedRecordingService: n, - sharingEnabled: a, - spaceLeft: r, - userName: i - } = this.state, { - _fileRecordingsServiceEnabled: o, - _fileRecordingsServiceSharingEnabled: s, - _isDropboxEnabled: l - } = this.props, c = o ? t : !!l && !e; - return x().createElement(IO, { - okDisabled: c, - okKey: "dialog.startRecording", - onSubmit: this._onSubmit, - titleKey: "dialog.startRecording", - width: "small" - }, x().createElement(lG, { - fileRecordingsServiceEnabled: o, - fileRecordingsServiceSharingEnabled: s, - integrationsEnabled: this._areIntegrationsEnabled(), - isTokenValid: e, - isValidating: t, - onChange: this._onSelectedRecordingServiceChanged, - onSharingSettingChanged: this._onSharingSettingChanged, - selectedRecordingService: n, - sharingSetting: a, - spaceLeft: r, - userName: i - })) + type: AQ, + criteria: e } - })); - class uG extends E.Component { - constructor(e) { - super(e), this._onSubmit = this._onSubmit.bind(this) - } - _onSubmit() { - Ma(an("stop", "confirm.button")); - const { - _fileRecordingSession: e - } = this.props; - return e && this.props._conference.stopRecording(e.id), !0 - } + }(Tt(e))) } - const dG = Li(ze((function(e) { - return { - _conference: e["features/base/conference"].conference, - _fileRecordingSession: sR(e, Et.mode.FILE) - } - }))(class extends uG { - render() { - const { - t: e - } = this.props; - return x().createElement(IO, { - okKey: "dialog.confirm", - onSubmit: this._onSubmit, - titleKey: "dialog.recording", - width: "small" - }, e("dialog.stopRecordingWarning")) - } - })), - pG = "CLEAR_RECORDING_SESSIONS", - hG = "RECORDING_SESSION_UPDATED", - mG = "SET_PENDING_RECORDING_NOTIFICATION_UID", - fG = "SET_SELECTED_RECORDING_SERVICE", - gG = Je("features/recording"); + } + const GQ = Ei(Ne((function(e) { + const { + enableFacialRecognition: t + } = e["features/base/config"], { + clientWidth: n + } = e["features/base/responsive-ui"]; + return { + _showFacialExpressions: t, + _reduceExpressions: n < 750 + } + }))(YQ)), KQ = Ve().getLogger("modules/keyboardshortcut/keyboardshortcut.js"), + $Q = new Map, + JQ = new Map, + isPushed = !1, // BAO + ZQ = "enableShortcuts", QQ = `:focus:is(${["input","textarea","button","[role=button]","[role=menuitem]","[role=radio]","[role=tab]","[role=option]","[role=switch]","[role=range]","[role=log]"].join(",")})`, XQ = { + init() { + this._initGlobalShortcuts(), window.onkeyup = e => { + if (!this.getEnabled()) return; + const t = this._getKeyboardKey(e).toUpperCase(), + n = parseInt(t, 10); + var a; + document.querySelector(QQ) || ($Q.has(t) ? $Q.get(t).function(e) : !isNaN(n) && n >= 0 && n <= 9 && APP.store.dispatch((a = n, (e, t) => { + const n = t(), + { + id: r + } = Uh(n), + { + remoteParticipants: i + } = n["features/filmstrip"], + o = [r, ...i], + { + id: s, + pinned: l + } = Vh(n, o[a]); + e(uS(l ? null : s)) + }))) + }, window.onkeydown = e => { + if (!this.getEnabled()) return; + const t = document.querySelector(QQ); + t ? "ESCAPE" === this._getKeyboardKey(e).toUpperCase() && t && t.blur && t.blur() : " " === this._getKeyboardKey(e).toUpperCase() && APP.conference.isLocalAudioMuted() && (Da(on("push.to.talk", "pressed")), KQ.log("Talk shortcut pressed"), APP.conference.muteAudio(!1), isPushed = !0) // BAO + } + }, + enable(e) { + l.setItem(ZQ, e) + }, + getEnabled: () => "false" !== l.getItem(ZQ), + openDialog() { + APP.store.dispatch(WI(SQ, { + shortcutDescriptions: JQ + })) + }, + registerShortcut(e, t, n, a) { + let r = arguments.length > 4 && void 0 !== arguments[4] && arguments[4]; + $Q.set(r ? `:${e}` : e, { + character: e, + function: n, + shortcutAttr: t, + altKey: r + }), a && this._addShortcutToHelp(r ? `:${e}` : e, a) + }, + unregisterShortcut(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + $Q.delete(t ? `:${e}` : e), JQ.delete(e) + }, + _getKeyboardKey(e) { + if (e.altKey) return `:${e.code.replace("Key","")}`; + if ("string" == typeof e.key && "Unidentified" !== e.key) return e.key; + if ("keypress" === e.type && (e.which >= 32 && e.which <= 126 || e.which >= 160 && e.which <= 255)) return String.fromCharCode(e.which); + switch (e.which) { + case 27: + return "Escape"; + case 191: + return e.shiftKey ? "?" : "/" + } + return e.shiftKey || "keypress" === e.type ? String.fromCharCode(e.which) : String.fromCharCode(e.which).toLowerCase() + }, + _addShortcutToHelp(e, t) { + JQ.set(e, t) + }, + _initGlobalShortcuts() { + this.registerShortcut("?", null, (() => { + Da(on("help")), this.openDialog() + }), "keyboardShortcuts.toggleShortcuts"), this.registerShortcut(" ", null, (() => { + Da(on("push.to.talk", "released")), KQ.log("Talk shortcut released"), APP.conference.muteAudio(!0), isPushed = !1 // BAO + })), this._addShortcutToHelp("SPACE", "keyboardShortcuts.pushToTalk"), this.registerShortcut("T", null, (() => { + Da(on("speaker.stats")), APP.store.dispatch(WI(GQ, { + conference: APP.conference + })) + }), "keyboardShortcuts.showSpeakerStats"), this._addShortcutToHelp("0", "keyboardShortcuts.focusLocal"), this._addShortcutToHelp("1-9", "keyboardShortcuts.focusRemote") + } + }, eX = XQ, tX = BQ((() => ({ + flex: { + display: "flex", + flex: 1 + }, + base: { + height: "100%", + overflow: "auto" + } + }))), nX = function(e) { + let { + children: t, + isModal: n, + flex: a + } = e; + if (!n || !va()) return t; + const r = (0, x.useRef)(null); - function bG(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function i(e) { + e.stopImmediatePropagation() + }(0, x.useEffect)((() => (r && r.current && r.current.addEventListener("touchmove", i, !0), () => { + r && r.current && r.current.removeEventListener("touchmove", i, !0) + })), []); + const o = tX(); + return C().createElement("div", { + className: iV(o.base, a && o.flex), + ref: r + }, t) + }, aX = Ei(class extends GI { + constructor(e) { + super(e), this.state = { + isFramerateSelectOpen: !1, + isLanguageSelectOpen: !1 + }, this._onFramerateDropdownOpenChange = this._onFramerateDropdownOpenChange.bind(this), this._onFramerateItemSelect = this._onFramerateItemSelect.bind(this), this._onLanguageDropdownOpenChange = this._onLanguageDropdownOpenChange.bind(this), this._onLanguageItemSelect = this._onLanguageItemSelect.bind(this), this._onShowPrejoinPageChanged = this._onShowPrejoinPageChanged.bind(this), this._onKeyboardShortcutEnableChanged = this._onKeyboardShortcutEnableChanged.bind(this) + } + render() { + const e = []; + return e.push(this._renderSettingsLeft()), e.push(this._renderSettingsRight()), C().createElement("div", { + className: "more-tab box", + key: "more" + }, e) } - - function yG(e) { - return Wf(e) + _onFramerateDropdownOpenChange(e) { + let { + isOpen: t + } = e; + this.setState({ + isFramerateSelectOpen: t + }) } - - function vG(e, t) { - return { - type: mG, - streamType: t, - uid: e - } - } - const kG = Li((function({ - t: e, - url: t - }) { - return x().createElement(x().Fragment, null, x().createElement("label", { - htmlFor: "copy-button-id" - }, e("addPeople.shareLink")), x().createElement(OW, { - "aria-label": e("addPeople.copyLink"), - className: "invite-more-dialog-conference-url", - displayedText: (n = t, decodeURI(n.replace(/^https?:\/\//i, ""))), - id: "copy-button-id", - textOnCopySuccess: e("addPeople.linkCopied"), - textOnHover: e("addPeople.copyLink"), - textToCopy: t - })); - var n - })); - - function _G(e) { - const t = e.toString(), - n = Math.ceil(t.length / 3); - return `${t.substring(0,n)} ${t.substring(n,2*n)} ${t.substring(2*n,t.length)}` + _onFramerateItemSelect(e) { + const t = e.currentTarget.getAttribute("data-framerate"); + super._onChange({ + currentFramerate: t + }) } - class wG extends E.Component { - constructor(e) { - super(e), this._onCopyText = this._onCopyText.bind(this), this._onCopyTextKeyPress = this._onCopyTextKeyPress.bind(this) - } - _onCopyText() { - const { - conferenceID: e, - phoneNumber: t, - t: n - } = this.props; - Tt(`${n("info.dialInNumber")} ${t} ${n("info.dialInConferenceID")} ${_G(e)}#`) - } - _onCopyTextKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onCopyText()) - } - render() { - const { - conferenceID: e, - phoneNumber: t, - t: n - } = this.props; - return x().createElement("div", { - className: "dial-in-number" - }, x().createElement("div", null, x().createElement("span", { - className: "phone-number" - }, x().createElement("span", { - className: "info-label" - }, n("info.dialInNumber")), x().createElement("span", { - className: "spacer" - }, " "), x().createElement("span", { - className: "info-value" - }, t)), x().createElement("span", { - className: "spacer" - }, " "), x().createElement("span", { - className: "conference-id" - }, x().createElement("span", { - className: "info-label" - }, n("info.dialInConferenceID")), x().createElement("span", { - className: "spacer" - }, " "), x().createElement("span", { - className: "info-value" - }, `${_G(e)}#`))), x().createElement("a", { - "aria-label": n("info.copyNumber"), - className: "dial-in-copy", - onClick: this._onCopyText, - onKeyPress: this._onCopyTextKeyPress, - role: "button", - tabIndex: 0 - }, x().createElement(qs, { - src: cc - }))) - } + _onLanguageDropdownOpenChange(e) { + let { + isOpen: t + } = e; + this.setState({ + isLanguageSelectOpen: t + }) } - const SG = Li(wG), - EG = Li(ze((function(e) { - const t = e["features/invite"]; - return { - _conferenceID: t.conferenceID, - _dialInfoPageUrl: jR(e), - _hasMultipleNumbers: DR(t.numbers) - } - }))((function({ - _conferenceID: e, - _dialInfoPageUrl: t, - _hasMultipleNumbers: n, - phoneNumber: a, - t: r - }) { - return x().createElement("div", { - className: "invite-more-dialog dial-in-display" - }, x().createElement(SG, { - conferenceID: e, - phoneNumber: a - }), n ? x().createElement("a", { - className: "more-numbers", - href: t, - rel: "noopener noreferrer", - target: "_blank" - }, r("info.moreNumbers")) : null) - }))), - xG = Li((function({ - inviteSubject: e, - inviteText: t, - inviteTextiOS: n, - t: a - }) { - const [r, i] = (0, E.useState)(!1), o = encodeURIComponent(e), s = encodeURIComponent(t), l = encodeURIComponent(n), c = Ea() ? l : s; - return x().createElement(x().Fragment, null, x().createElement("div", null, x().createElement("div", { - "aria-expanded": r, - "aria-label": a("addPeople.shareInvite"), - className: "invite-more-dialog email-container" + (r ? " active" : ""), - onClick: function() { - i(!r) - }, - onKeyPress: function(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), i(!r)) - }, - role: "button", - tabIndex: 0 - }, x().createElement("span", null, a("addPeople.shareInvite")), x().createElement(qs, { - src: Qs - })), x().createElement("div", { - className: "invite-more-dialog icon-container" + (r ? " active" : "") - }, x().createElement(Fw, { - content: a("addPeople.copyInvite"), - position: "top" - }, x().createElement("div", { - "aria-label": a("addPeople.copyInvite"), - className: "copy-invite-icon", - onClick: function() { - Tt(t) - }, - onKeyPress: function(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), Tt(t)) - }, - role: "button", - tabIndex: 0 - }, x().createElement(qs, { - src: cc - }))), function() { - const e = [{ - icon: Ac, - tooltipKey: "addPeople.defaultEmail", - url: `mailto:?subject=${o}&body=${c}` - }, { - icon: Vc, - tooltipKey: "addPeople.googleEmail", - url: `https://mail.google.com/mail/?view=cm&fs=1&su=${o}&body=${s}` - }, { - icon: gd, - tooltipKey: "addPeople.outlookEmail", - url: `https://outlook.office.com/mail/deeplink/compose?subject=${o}&body=${s}` - }, { - icon: Sh, - tooltipKey: "addPeople.yahooEmail", - url: `https://compose.mail.yahoo.com/?To=&Subj=${o}&Body=${s}` - }]; - return x().createElement(x().Fragment, null, e.map((({ - icon: e, - tooltipKey: t, - url: n - }, r) => x().createElement(Fw, { - content: a(t), - key: r, - position: "top" - }, x().createElement("a", { - "aria-label": a(t), - className: "provider-icon", - href: n, - rel: "noopener noreferrer", - target: "_blank" - }, x().createElement(qs, { - src: e - })))))) - }()))) - })); - var CG = n(6501), - AG = n(7253), - jG = { - connectivity: { - icon: Ev.Z, - iconSize: "medium" - }, - confirmation: { - icon: CG.Z, - iconSize: "medium" - }, - info: { - icon: AG.Z, - iconSize: "medium" - }, - warning: { - icon: Ev.Z, - iconSize: "medium" - }, - error: { - icon: Sv.Z, - iconSize: "medium" - } - }; - - function PG() { - var e = Jf(["\n align-items: center;\n display: flex;\n flex: 0 0 auto;\n padding: 0 ", ";\n color: ", ";\n"]); - return PG = function() { - return e - }, e + _onLanguageItemSelect(e) { + const t = e.currentTarget.getAttribute("data-language"); + super._onChange({ + currentLanguage: t + }) } - var DG = (0, VS.Z)("appearance", { - connectivity: { - light: mb.B400, - dark: mb.B100 - }, - confirmation: { - light: mb.G300, - dark: mb.G300 - }, - info: { - light: mb.P300, - dark: mb.P300 - }, - warning: { - light: mb.Y300, - dark: mb.Y300 - }, - error: { - light: mb.R400, - dark: mb.R400 + _onShowPrejoinPageChanged(e) { + let { + target: { + checked: t } - }), - TG = (0, VS.Z)("appearance", { - connectivity: { - light: mb.B300, - dark: mb.B75 - }, - confirmation: { - light: mb.G200, - dark: mb.G200 - }, - info: { - light: mb.P200, - dark: mb.P200 - }, - warning: { - light: mb.Y200, - dark: mb.Y200 - }, - error: { - light: mb.R300, - dark: mb.R300 + } = e; + super._onChange({ + showPrejoinPage: t + }) + } + _onKeyboardShortcutEnableChanged(e) { + let { + target: { + checked: t } - }); - const OG = Ug.default.span(PG(), 4, (function(e) { - return e.isHovered || e.isOpen ? TG(e) : DG(e) - })); - var MG = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 + } = e; + eX.enable(t), super._onChange({ + keyboardShortcutEnable: t + }) + } + _renderFramerateSelect() { + const { + currentFramerate: e, + desktopShareFramerates: t, + t: n + } = this.props, a = t.map((e => C().createElement(qG, { + "data-framerate": e, + key: e, + onClick: this._onFramerateItemSelect + }, `${e} ${n("settings.framesPerSecond")}`))); + return C().createElement("div", { + className: "settings-sub-pane-element", + key: "frameRate" + }, C().createElement("h2", { + className: "mock-atlaskit-label" + }, n("settings.desktopShareFramerate")), C().createElement("div", { + className: "dropdown-menu" + }, C().createElement(nX, { + flex: !0, + isModal: !0 + }, C().createElement(uZ, { + isOpen: this.state.isFramerateSelectOpen, + onOpenChange: this._onFramerateDropdownOpenChange, + shouldFitContainer: !0, + trigger: e ? `${e} ${n("settings.framesPerSecond")}` : "", + triggerButtonProps: { + shouldFitContainer: !0 + }, + triggerType: "button" + }, C().createElement(gK, null, a)))), C().createElement("div", { + className: "mock-atlaskit-label" + }, parseInt(e, 10) > 5 ? n("settings.desktopShareHighFpsWarning") : n("settings.desktopShareWarning"))) + } + _renderKeyboardShortcutCheckbox() { + const { + t: e + } = this.props; + return C().createElement("div", { + className: "settings-sub-pane-element", + key: "keyboard-shortcut" + }, C().createElement("h2", { + className: "mock-atlaskit-label" + }, e("keyboardShortcuts.keyboardShortcuts")), C().createElement(vV, { + isChecked: eX.getEnabled(), + label: e("prejoin.keyboardShortcuts"), + name: "enable-keyboard-shortcuts", + onChange: this._onKeyboardShortcutEnableChanged + })) + } + _renderLanguageSelect() { + const { + currentLanguage: e, + languages: t, + t: n + } = this.props, a = t.map((e => C().createElement(qG, { + "data-language": e, + key: e, + onClick: this._onLanguageItemSelect + }, n(`languages:${e}`)))); + return C().createElement("div", { + className: "settings-sub-pane-element", + key: "language" + }, C().createElement("h2", { + className: "mock-atlaskit-label" + }, n("settings.language")), C().createElement("div", { + className: "dropdown-menu" + }, C().createElement(nX, { + flex: !0, + isModal: !0 + }, C().createElement(uZ, { + isOpen: this.state.isLanguageSelectOpen, + onOpenChange: this._onLanguageDropdownOpenChange, + shouldFitContainer: !0, + trigger: e ? n(`languages:${e}`) : "", + triggerButtonProps: { + shouldFitContainer: !0 + }, + triggerType: "button" + }, C().createElement(gK, null, a))))) + } + _renderPrejoinScreenSettings() { + const { + t: e, + showPrejoinPage: t + } = this.props; + return C().createElement("div", { + className: "settings-sub-pane-element", + key: "prejoin-screen" + }, C().createElement("h2", { + className: "mock-atlaskit-label" + }, e("prejoin.premeeting")), C().createElement(vV, { + isChecked: t, + label: e("prejoin.showScreen"), + name: "show-prejoin-page", + onChange: this._onShowPrejoinPageChanged + })) + } + _renderSettingsRight() { + const { + showLanguageSettings: e + } = this.props; + return C().createElement("div", { + className: "settings-sub-pane right", + key: "settings-sub-pane-right" + }, e && this._renderLanguageSelect(), this._renderFramerateSelect()) + } + _renderSettingsLeft() { + const { + showPrejoinSettings: e + } = this.props; + return C().createElement("div", { + className: "settings-sub-pane left", + key: "settings-sub-pane-left" + }, e && this._renderPrejoinScreenSettings(), this._renderKeyboardShortcutCheckbox()) + } + }), rX = { + NICKNAME_CHANGED: "UI.nickname_changed", + EMAIL_CHANGED: "UI.email_changed", + AUDIO_MUTED: "UI.audio_muted", + VIDEO_MUTED: "UI.video_muted", + ETHERPAD_CLICKED: "UI.etherpad_clicked", + TOGGLE_FULLSCREEN: "UI.toogle_fullscreen", + FULLSCREEN_TOGGLED: "UI.fullscreen_toggled", + AUTH_CLICKED: "UI.auth_clicked", + TOGGLE_AUDIO_ONLY: "UI.toggle_audioonly", + TOGGLE_FILMSTRIP: "UI.toggle_filmstrip", + TOGGLE_SCREENSHARING: "UI.toggle_screensharing", + HANGUP: "UI.hangup", + LOGOUT: "UI.logout", + VIDEO_DEVICE_CHANGED: "UI.video_device_changed", + AUDIO_DEVICE_CHANGED: "UI.audio_device_changed", + SIDE_TOOLBAR_CONTAINER_TOGGLED: "UI.side_container_toggled", + LOCAL_RAISE_HAND_CHANGED: "UI.local_raise_hand_changed" + }; class iX extends GI { + constructor(e) { + super(e), this._onAuthToggle = this._onAuthToggle.bind(this), this._onDisplayNameChange = this._onDisplayNameChange.bind(this), this._onEmailChange = this._onEmailChange.bind(this), this._onChange = this._onChange.bind(this) + } + _onDisplayNameChange(e) { + let { + target: { + value: t } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - return Jg(this, r), a.apply(this, arguments) - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this.props, - t = e.type, - n = e.isHovered, - a = e.isOpen, - r = jG[t], - i = r.icon, - o = r.iconSize; - return x().createElement(OG, { - appearance: t, - isHovered: n, - isOpen: a - }, x().createElement(i, { - label: "Inline message icon", - size: o - })) + } = e; + super._onChange({ + displayName: t + }) + } + _onEmailChange(e) { + let { + target: { + value: t } - }]), r - }(x().Component); - - function IG() { - var e = Jf(["\n color: ", ";\n padding: 0 ", "px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"]); - return IG = function() { - return e - }, e + } = e; + super._onChange({ + email: t + }) } - - function NG() { - var e = Jf(["\n color: ", ";\n font-weight: 500;\n padding: 0 ", "px;\n"]); - return NG = function() { - return e - }, e + _onChange(e) { + let { + target: t + } = e; + super._onChange({ + disableSelfView: t.checked + }) } - - function zG() { - var e = Jf(["\n color: ", ";\n text-decoration: underline;\n "]); - return zG = function() { - return e - }, e + render() { + const { + authEnabled: e, + displayName: t, + disableSelfView: n, + email: a, + readOnlyName: r, + t: i + } = this.props; + return C().createElement("div", null, C().createElement("div", { + className: "profile-edit" + }, C().createElement("div", { + className: "profile-edit-field" + }, C().createElement(xB, { + autoComplete: "name", + compact: !0, + id: "setDisplayName", + isReadOnly: r, + label: i("profile.setDisplayNameLabel"), + onChange: this._onDisplayNameChange, + placeholder: i("settings.name"), + shouldFitContainer: !0, + type: "text", + value: t + })), C().createElement("div", { + className: "profile-edit-field" + }, C().createElement(xB, { + compact: !0, + id: "setEmail", + label: i("profile.setEmailLabel"), + onChange: this._onEmailChange, + placeholder: i("profile.setEmailInput"), + shouldFitContainer: !0, + type: "text", + value: a + }))), C().createElement("br", null), C().createElement(kV, { + isChecked: n, + label: i("videothumbnail.hideSelfView"), + name: "disableSelfView", + onChange: this._onChange + }), e && this._renderAuth()) + } + _onAuthToggle() { + this.props.authLogin ? (Da(Zt("logout.button")), APP.store.dispatch(VI(PY, { + onLogout: () => APP.UI.emitEvent(rX.LOGOUT) + }))) : (Da(Zt("login.button")), APP.UI.emitEvent(rX.AUTH_CLICKED)) + } + _renderAuth() { + const { + authLogin: e, + t + } = this.props; + return C().createElement("div", null, C().createElement("h2", { + className: "mock-atlaskit-label" + }, t("toolbar.authenticate")), e && C().createElement("div", { + className: "auth-name" + }, t("settings.loggedIn", { + name: e + })), C().createElement(DC, { + appearance: "primary", + id: "login_button", + onClick: this._onAuthToggle, + type: "button" + }, t(e ? "toolbar.logout" : "toolbar.login"))) } - - function RG() { - var e = Jf(["\n align-items: center;\n display: flex;\n text-decoration: none;\n ", ";\n"]); - return RG = function() { - return e - }, e + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(iX, "defaultProps", { + displayName: "", + email: "" + }); + const oX = Ei(iX), sX = Ei(class extends GI { + constructor(e) { + super(e), this._onChange = this._onChange.bind(this) + } + _onChange(e) { + let { + target: t + } = e; + super._onChange({ + [t.name]: t.checked + }) } - - function LG() { - var e = Jf(["\n display: inline-block;\n max-width: 100%;\n &:focus {\n outline: 1px solid ", ";\n }\n"]); - return LG = function() { - return e - }, e + render() { + const { + soundsIncomingMessage: e, + soundsParticipantJoined: t, + soundsParticipantLeft: n, + soundsTalkWhileMuted: a, + soundsReactions: r, + enableReactions: i, + moderatorMutedSoundsReactions: o, + t: s + } = this.props; + return C().createElement("div", { + className: "settings-sub-pane-element", + key: "sounds" + }, C().createElement("h2", { + className: "mock-atlaskit-label" + }, s("settings.playSounds")), i && C().createElement(kV, { + isChecked: r, + isDisabled: o, + label: s("settings.reactions"), + name: "soundsReactions", + onChange: this._onChange + }), C().createElement(kV, { + isChecked: e, + label: s("settings.incomingMessage"), + name: "soundsIncomingMessage", + onChange: this._onChange + }), C().createElement(kV, { + isChecked: t, + label: s("settings.participantJoined"), + name: "soundsParticipantJoined", + onChange: this._onChange + }), C().createElement(kV, { + isChecked: n, + label: s("settings.participantLeft"), + name: "soundsParticipantLeft", + onChange: this._onChange + }), C().createElement(kV, { + isChecked: a, + label: s("settings.talkWhileMuted"), + name: "soundsTalkWhileMuted", + onChange: this._onChange + })) } - var FG = (0, VS.Z)("appearance", { - connectivity: { - light: mb.B500, - dark: mb.B200 - }, - confirmation: { - light: mb.G400, - dark: mb.G400 - }, - info: { - light: mb.P500, - dark: mb.P300 - }, - warning: { - light: mb.Y500, - dark: mb.Y500 - }, - error: { - light: mb.R500, - dark: mb.R500 + }); class lX extends x.Component { + constructor(e) { + super(e), this._closeDialog = this._closeDialog.bind(this) + } + render() { + const { + _tabs: e, + defaultTab: t, + dispatch: n + } = this.props, a = this._closeDialog, r = e.findIndex((e => { + let { + name: n + } = e; + return n === t + })), i = e.map((e => ({ + ...e, + onMount: e.onMount ? function() { + return n(e.onMount(...arguments)) + } : void 0, + submit: function() { + return e.submit && n(e.submit(...arguments)) } + }))); + return C().createElement(JL, { + closeDialog: this._closeDialog, + cssClassName: "settings-dialog", + defaultTab: -1 === r ? void 0 : r, + onSubmit: a, + tabs: i, + titleKey: "settings.title" + }) + } + _closeDialog() { + this.props.dispatch(HI()) + } + } + const cX = Ne((function(e) { + const t = interfaceConfig.SETTINGS_SECTIONS || [], + n = t.includes("devices"), + a = NZ(e), + r = RZ(e), + { + showModeratorSettings: i + } = r, + { + showLanguageSettings: o, + showPrejoinSettings: s + } = a, + l = t.includes("profile") && !e["features/base/config"].disableProfile, + c = t.includes("calendar") && OJ(e), + u = t.includes("sounds"), + d = []; + return n && d.push({ + name: jY.DEVICES, + component: gZ, + label: "settings.devices", + onMount: eI, + props: eZ(e), + propsUpdateFunction: (e, t) => ({ + ...t, + selectedAudioInputId: e.selectedAudioInputId, + selectedAudioOutputId: e.selectedAudioOutputId, + selectedVideoInputId: e.selectedVideoInputId }), - qG = Ug.default.div(LG(), FG), - BG = Ug.default.div(RG(), (function(e) { - return e.isHovered && (0, Ug.css)(zG(), mb.N600) - })), - UG = (0, VS.Z)({ - light: mb.N600, - dark: mb.DN600 + styles: "settings-pane devices-pane", + submit: aZ + }), l && d.push({ + name: jY.PROFILE, + component: oX, + label: "profile.title", + props: zZ(e), + styles: "settings-pane profile-pane", + submit: MX + }), i && d.push({ + name: jY.MODERATOR, + component: VZ, + label: "settings.moderator", + props: r, + propsUpdateFunction: (e, t) => ({ + ...t, + followMeEnabled: e.followMeEnabled, + startAudioMuted: e.startAudioMuted, + startVideoMuted: e.startVideoMuted, + startReactionsMuted: e.startReactionsMuted }), - HG = (0, VS.Z)({ - light: mb.N300, - dark: mb.DN100 + styles: "settings-pane moderator-pane", + submit: jX + }), c && d.push({ + name: jY.CALENDAR, + component: HZ, + label: "settings.calendar.title", + styles: "settings-pane calendar-pane" + }), u && d.push({ + name: jY.SOUNDS, + component: sX, + label: "settings.sounds", + props: LZ(e), + styles: "settings-pane profile-pane", + submit: IX + }), (o || s) && d.push({ + name: jY.MORE, + component: aX, + label: "settings.more", + props: a, + propsUpdateFunction: (e, t) => ({ + ...t, + currentFramerate: e.currentFramerate, + currentLanguage: e.currentLanguage, + showPrejoinPage: e.showPrejoinPage }), - VG = Ug.default.span(NG(), UG, 4), - WG = Ug.default.span(IG(), HG, 4); - var YG = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { - isOpen: !1, - isHovered: !1 - }), Zf(_(e), "onMouseEnter", (function() { - e.setState({ - isHovered: !0 - }) - })), Zf(_(e), "onMouseLeave", (function() { - e.setState({ - isHovered: !1 - }) - })), Zf(_(e), "toggleDialog", (function() { - e.setState({ - isOpen: !e.state.isOpen - }) - })), e - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this, - t = this.props, - n = t.children, - a = t.placement, - r = t.secondaryText, - i = t.title, - o = t.type, - s = t.testId, - l = this.state, - c = l.isHovered, - u = l.isOpen; - return x().createElement(qG, { - onMouseEnter: this.onMouseEnter, - onMouseLeave: this.onMouseLeave, - appearance: o, - "data-testid": s - }, x().createElement(eE, { - onClose: function() { - e.setState({ - isOpen: !1 - }) - }, - content: n, - isOpen: u, - placement: a, - testId: s && "".concat(s, "--inline-dialog") - }, x().createElement(Hy, { - appearance: "subtle-link", - onClick: this.toggleDialog, - spacing: "none", - testId: s && "".concat(s, "--button") - }, x().createElement(BG, { - isHovered: c - }, x().createElement(MG, { - type: o, - isHovered: c, - isOpen: u - }), i ? x().createElement(VG, { - "data-testid": s && "".concat(s, "--title"), - isHovered: c - }, i) : null, r ? x().createElement(WG, { - "data-testid": s && "".concat(s, "--text"), - isHovered: c - }, r) : null)))) - } - }]), r - }(x().Component); - Zf(YG, "defaultProps", { - children: null, - placement: "bottom-start", - secondaryText: "", - title: "", - type: "connectivity" - }); - class GG extends E.PureComponent { - _isIcon(e) { - return Boolean(e) && ("object" == typeof e || "function" == typeof e) - } + styles: "settings-pane more-pane", + submit: PX + }), { + _tabs: d } - class KG extends GG { - render() { - const { - initials: e, - url: t - } = this.props; - return this._isIcon(t) ? x().createElement("div", { - className: `${this._getAvatarClassName()} ${this._getBadgeClassName()}`, - "data-testid": this.props.testId, - id: this.props.id, - style: this._getAvatarStyle(this.props.color) - }, x().createElement(qs, { - size: "50%", - src: t - })) : t ? x().createElement("div", { - className: this._getBadgeClassName() - }, x().createElement("img", { - alt: "avatar", - className: this._getAvatarClassName(), - "data-testid": this.props.testId, - id: this.props.id, - onError: this.props.onAvatarLoadError, - src: t, - style: this._getAvatarStyle() - })) : e ? x().createElement("div", { - className: `${this._getAvatarClassName()} ${this._getBadgeClassName()}`, - "data-testid": this.props.testId, - id: this.props.id, - style: this._getAvatarStyle(this.props.color) - }, x().createElement("svg", { - className: "avatar-svg", - viewBox: "0 0 100 100", - xmlns: "http://www.w3.org/2000/svg", - xmlnsXlink: "http://www.w3.org/1999/xlink" - }, x().createElement("text", { - dominantBaseline: "central", - fill: "rgba(255,255,255,1)", - fontSize: "40pt", - textAnchor: "middle", - x: "50", - y: "50" - }, e))) : x().createElement("div", { - className: this._getBadgeClassName() - }, x().createElement("img", { - alt: "avatar", - className: this._getAvatarClassName("defaultAvatar"), - "data-testid": this.props.testId, - id: this.props.id, - src: this.props.defaultAvatar || "images/avatar.png", - style: this._getAvatarStyle() - })) - } - _getAvatarStyle(e) { - const { - size: t - } = this.props; - return { - background: e || void 0, - fontSize: t ? .5 * t : "180%", - height: t || "100%", - width: t || "100%" - } - } - _getAvatarClassName(e) { - return `avatar ${e||""} ${this.props.className||""}` - } - _getBadgeClassName() { - const { - status: e - } = this.props; - return e ? `avatar-badge avatar-badge-${e}` : "" - } + }))(lX), uX = Symbol("ASPECT_RATIO_NARROW"), dX = Symbol("ASPECT_RATIO_WIDE"); + + function pX(e) { + let { + IconComponent: t, + id: n, + text: a + } = e; + return C().createElement("div", { + className: "audio-preview-header", + role: "heading" + }, C().createElement("div", { + className: "audio-preview-header-icon" + }, C().createElement(lo, { + size: 20, + src: t + })), C().createElement("div", { + className: "audio-preview-header-text", + id: n + }, a)) + } + + function hX(e) { + let { + children: t, + hasError: n, + labelId: a, + isSelected: r + } = e; + const i = "audio-preview-entry " + (r ? "audio-preview-entry--selected" : ""); + return C().createElement("div", { + className: i + }, r && C().createElement(lo, { + className: "audio-preview-icon audio-preview-icon--check", + color: "#1C2025", + size: 14, + src: os + }), C().createElement("span", { + className: "audio-preview-entry-text", + id: a + }, t), n && C().createElement(lo, { + className: "audio-preview-icon audio-preview-icon--exclamation", + size: 16, + src: sl + })) + } + + function mX(e) { + let t, { + className: n, + isDisabled: a, + level: r + } = e; + return t = r > -1 ? `metr metr-l-${r}` : "metr " + (a ? "metr--disabled" : ""), C().createElement(lo, { + className: `${t} ${n}`, + size: 12, + src: hc + }) + } + const fX = c.default.events.track; class gX extends x.Component { + constructor(e) { + super(e), this.state = { + level: -1 + }, this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._updateLevel = this._updateLevel.bind(this) } - const $G = ["232, 105, 156", "255, 198, 115", "128, 128, 255", "105, 232, 194", "234, 255, 128"]; - class JG extends E.PureComponent { - constructor(e) { - super(e), this.state = { - avatarFailed: !1 - }, this._onAvatarLoadError = this._onAvatarLoadError.bind(this) - } - componentDidUpdate(e) { - e.url !== this.props.url && this.setState({ - avatarFailed: !1 - }) - } - render() { - const { - _customAvatarBackgrounds: e, - _initialsBase: t, - _loadableAvatarUrl: n, - className: a, - colorBase: r, - dynamicColor: i, - id: o, - size: s, - status: l, - testId: c, - url: u - } = this.props, { - avatarFailed: d - } = this.state, p = { - className: a, - color: void 0, - id: o, - initials: void 0, - onAvatarLoadError: void 0, - size: s, - status: l, - testId: c, - url: void 0 - }, h = !d && u || n; - h && (p.onAvatarLoadError = this._onAvatarLoadError, p.url = h); - const m = function(e) { - const t = k().split(e, "@")[0], - n = k().words(t); - let a = ""; - for (const e of n) a.length < 2 && (a += e.substr(0, 1).toUpperCase()); - return a - }(t); - return m && (i && (p.color = function(e, t) { - const n = t && t.length, - a = n ? t : $G; - let r = 0; - if (e) { - let t = 0; - for (const n of e) t += n.codePointAt(0); - r = t % a.length - } - return n ? a[r] : `rgba(${a[r]}, 0.4)` - }(r || t, e)), p.initials = m), x().createElement(KG, p) - } - _onAvatarLoadError() { - this.setState({ - avatarFailed: !0 - }) - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(JG, "defaultProps", { - dynamicColor: !0 - }); - const ZG = ze((function(e, t) { - var n; + _onClick() { + this.props.onClick(this.props.deviceId) + } + _onKeyPress(e) { + " " === e.key && (e.preventDefault(), this.props.onClick(this.props.deviceId)) + } + _updateLevel(e) { + this.setState({ + level: Math.floor(e / .125) + }) + } + _startListening() { const { - colorBase: a, - displayName: r, - participantId: i - } = t, o = i && Fh(e, i), s = null !== (n = null == o ? void 0 : o.name) && void 0 !== n ? n : r; - return { - _customAvatarBackgrounds: e["features/dynamic-branding"].avatarBackgrounds, - _initialsBase: s, - _loadableAvatarUrl: null == o ? void 0 : o.loadableAvatarUrl, - colorBase: !a && o ? o.id : a - } - }))(JG); - - function QG(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - XG(e, t, n[t]) - })) - } - return e + jitsiTrack: e + } = this.props; + e && e.on(fX.TRACK_AUDIO_LEVEL_CHANGED, this._updateLevel) + } + _stopListening(e) { + e && e.off(fX.TRACK_AUDIO_LEVEL_CHANGED, this._updateLevel), this.setState({ + level: -1 + }) + } + componentDidUpdate(e) { + e.jitsiTrack !== this.props.jitsiTrack && (this._stopListening(e.jitsiTrack), this._startListening()) + } + componentDidMount() { + this._startListening() + } + componentWillUnmount() { + this._stopListening(this.props.jitsiTrack) + } + render() { + const { + deviceId: e, + children: t, + hasError: n, + index: a, + isSelected: r, + length: i, + jitsiTrack: o, + listHeaderId: s + } = this.props, l = `choose_microphone${e}`, c = `${s} ${l} `; + return C().createElement("li", { + "aria-checked": r, + "aria-labelledby": c, + "aria-posinset": a, + "aria-setsize": i, + className: "audio-preview-microphone", + onClick: this._onClick, + onKeyPress: this._onKeyPress, + role: "radio", + tabIndex: 0 + }, C().createElement(hX, { + hasError: n, + isSelected: r, + labelId: l + }, t), Boolean(o) && C().createElement(mX, { + className: "audio-preview-meter-mic", + isDisabled: n, + level: this.state.level + })) } + } - function XG(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function bX(e) { + let { + onClick: t, + onKeyPress: n + } = e; + return C().createElement("div", { + className: "audio-preview-test-button", + onClick: t, + onKeyPress: n, + role: "button", + tabIndex: 0 + }, "Test") + } + class yX extends x.Component { + constructor(e) { + super(e), this.audioRef = C().createRef(), this._onTestButtonClick = this._onTestButtonClick.bind(this), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) } - class eK extends E.Component { - constructor(e) { - super(e), this._query = this._query.bind(this) - } - _getDisplayName(e) { - return e.type === gR.PHONE ? e.number : e.type === gR.SIP ? e.address : e.name + _onClick() { + this.props.onClick(this.props.deviceId) + } + _onKeyPress(e) { + " " === e.key && (e.preventDefault(), this.props.onClick(this.props.deviceId)) + } + async _onTestButtonClick(e) { + e.stopPropagation(); + try { + await this.audioRef.current.setSinkId(this.props.deviceId), this.audioRef.current.play() + } catch (e) { + BZ.log("Could not set sink id", e) } - _invite(e) { - if (Ma(tn("clicked", "inviteButton", QG({}, SR(e), { - inviteAllowed: this._isAddDisabled() - }))), this._isAddDisabled()) return Promise.resolve([]); - this.setState({ - addToCallInProgress: !0 - }); - const { - _callFlowsEnabled: t, - dispatch: n - } = this.props; - return n(jW(e)).then((a => { - if (this.setState({ - addToCallInProgress: !1 - }), a.length) { - const e = SR(a); - bR.error(`${a.length} invites failed`, e), Ma(tn("error", "invite", QG({}, e))), this.setState({ - addToCallError: !0 - }) - } else if (!t) { - const t = e.length; - let a; - t >= 3 ? a = { - titleArguments: { - name: this._getDisplayName(e[0]), - count: t - 1 - }, - titleKey: "notify.invitedThreePlusMembers" - } : 2 === t ? a = { - titleArguments: { - first: this._getDisplayName(e[0]), - second: this._getDisplayName(e[1]) - }, - titleKey: "notify.invitedTwoMembers" - } : t && (a = { - titleArguments: { - name: this._getDisplayName(e[0]) - }, - titleKey: "notify.invitedOneMember" - }), a && n(Yf(a, zf)) + } + render() { + const { + children: e, + isSelected: t, + index: n, + deviceId: a, + length: r, + listHeaderId: i + } = this.props, o = `choose_speaker${a}`, s = `${i} ${o} `; + return C().createElement("li", { + "aria-checked": t, + "aria-labelledby": s, + "aria-posinset": n, + "aria-setsize": r, + className: "audio-preview-speaker", + onClick: this._onClick, + onKeyPress: this._onKeyPress, + role: "radio", + tabIndex: 0 + }, C().createElement(hX, { + isSelected: t, + key: a, + labelId: o + }, e), C().createElement(bX, { + onClick: this._onTestButtonClick, + onKeyPress: this._onTestButtonClick + }), C().createElement("audio", { + preload: "auto", + ref: this.audioRef, + src: "sounds/ring.wav" + })) + } + } + + function vX(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const kX = c.default.util.browser; + + function _X(e, t, n) { + return "default" === e ? n("settings.sameAsSystem", { + label: t.replace("Default - ", "") + }) : t + } + class wX extends x.Component { + constructor(e) { + super(e), vX(this, "microphoneHeaderId", "microphone_settings_header"), vX(this, "speakerHeaderId", "speaker_settings_header"), this._onMicrophoneEntryClick = this._onMicrophoneEntryClick.bind(this), this._onSpeakerEntryClick = this._onSpeakerEntryClick.bind(this), this._onEscClick = this._onEscClick.bind(this), this._audioContentRef = C().createRef(), this.state = { + audioTracks: e.microphoneDevices.map((e => { + let { + deviceId: t, + label: n + } = e; + return { + deviceId: t, + hasError: !1, + jitsiTrack: null, + label: n } - return a })) } - _isAddDisabled() { - return !this.state.inviteItems.length || this.state.addToCallInProgress - } - _query(e = "") { - const { - _addPeopleEnabled: t, - _dialOutAuthUrl: n, - _dialOutEnabled: a, - _jwt: r, - _peopleSearchQueryTypes: i, - _peopleSearchUrl: o, - _sipInviteEnabled: s - } = this.props; - return function(e, t) { - const n = e.trim(), - { - dialOutAuthUrl: a, - addPeopleEnabled: r, - dialOutEnabled: i, - peopleSearchQueryTypes: o, - peopleSearchUrl: s, - sipInviteEnabled: l, - jwt: c - } = t; - let u; - u = r && n ? function(e, t, n, a = ["conferenceRooms", "user", "room"]) { - const r = encodeURIComponent(n), - i = encodeURIComponent(JSON.stringify(a)); - return fetch(`${e}?query=${r}&queryTypes=${i}&jwt=${t}`).then((e => { - const t = e.json(); - return e.ok ? t : t.then((e => Promise.reject(e))) - })).catch((e => (bR.error("Error searching directory:", e), Promise.reject(e)))) - }(s, c, n, o) : Promise.resolve([]); - let d, p = n.startsWith("+"); - if (i && a && function(e) { - if (! function() { - let e = "^[0-9+()-\\s]*$"; - return "undefined" != typeof interfaceConfig && (e = interfaceConfig.PHONE_NUMBER_REGEX || e), new RegExp(e) - }().test(e)) return !1; - const t = kR(e); - return Boolean(t.length) - }(n)) { - let e = n; - p || n.startsWith("1") || (e = `1${e}`), e = kR(e), d = function(e, t) { - const n = `${t}?phone=${e}`; - return new Promise(((e, t) => { - $.getJSON(n).then(e).catch(t) - })) - }(e, a) - } else i && !a ? (p = !0, d = Promise.resolve({ - allow: !0, - country: "", - phone: n - })) : d = Promise.resolve({}); - return Promise.all([u, d]).then((([e, t]) => { - const a = [...e]; - return e.find((e => e.type === gR.PHONE)) || "boolean" != typeof t.allow || a.push({ - allowed: t.allow, - country: t.country, - type: gR.PHONE, - number: t.phone, - originalEntry: n, - showCountryCodeReminder: !p - }), l && function(e) { - return fR.test(e) - }(n) && a.push({ - type: gR.SIP, - address: n - }), a - })) - }(e, { - addPeopleEnabled: t, - dialOutAuthUrl: n, - dialOutEnabled: a, - jwt: r, - peopleSearchQueryTypes: i, - peopleSearchUrl: o, - sipInviteEnabled: s - }) - } } - - function tK(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _onEscClick(e) { + "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this._audioContentRef.current.style.display = "none") } - const nK = Li(ze((function(e) { - const { - enableFeaturesBasedOnToken: t - } = e["features/base/config"]; - let n = !1; - if (t) { - const { - features: t = {} - } = Rh(e); - "true" !== String(t["outbound-call"]) && (n = !0) - } - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - tK(e, t, n[t]) - })) - } - return e - }({}, function(e) { - const { - callFlowsEnabled: t, - dialOutAuthUrl: n, - peopleSearchQueryTypes: a, - peopleSearchUrl: r - } = e["features/base/config"]; - return { - _addPeopleEnabled: ER(e), - _callFlowsEnabled: t, - _dialOutAuthUrl: n, - _dialOutEnabled: xR(e), - _jwt: e["features/base/jwt"].jwt, - _peopleSearchQueryTypes: a, - _peopleSearchUrl: r, - _sipInviteEnabled: CR(e) - } - }(e), { - _footerTextEnabled: n, - _isVpaas: Rj(e) - }) - }))(class extends eK { - constructor(e) { - super(e), tK(this, "_multiselect", null), tK(this, "state", { - addToCallError: !1, - addToCallInProgress: !1, - inviteItems: [] - }), this._onClearItems = this._onClearItems.bind(this), this._onClearItemsKeyPress = this._onClearItemsKeyPress.bind(this), this._onItemSelected = this._onItemSelected.bind(this), this._onSelectionChange = this._onSelectionChange.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onSubmitKeyPress = this._onSubmitKeyPress.bind(this), this._parseQueryResults = this._parseQueryResults.bind(this), this._setMultiSelectElement = this._setMultiSelectElement.bind(this), this._renderFooterText = this._renderFooterText.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._resourceClient = { - makeQuery: this._query, - parseResults: this._parseQueryResults - }; - const { - t - } = e; - this._translations = { - _dialOutEnabled: t("addPeople.phoneNumbers"), - _addPeopleEnabled: t("addPeople.contacts"), - _sipInviteEnabled: t("addPeople.sipAddresses") - } - } - componentDidUpdate(e, t) { - t.addToCallError && !this.state.addToCallInProgress && !this.state.addToCallError && this._multiselect && this._multiselect.setSelectedItems([]) - } - render() { - const { - _addPeopleEnabled: e, - _dialOutEnabled: t, - _isVpaas: n, - _sipInviteEnabled: a, - t: r - } = this.props, i = this._renderFooterText(); - let o = this.state.addToCallInProgress; - const s = { - _dialOutEnabled: t, - _addPeopleEnabled: e, - _sipInviteEnabled: a - }, - l = Object.keys(s).filter((e => Boolean(s[e]))).map((e => this._translations[e])).join(", "), - c = l ? `${r("dialog.add")} ${l}` : r("addPeople.disabled"); - return l || (o = !0), x().createElement("div", { - className: "add-people-form-wrap", - onKeyDown: this._onKeyDown - }, this._renderErrorMessage(), x().createElement(mj, { - footer: i, - isDisabled: o, - loadingMessage: r("addPeople.searching"), - noMatchesFound: r("addPeople.noResults"), - onItemSelected: this._onItemSelected, - onSelectionChange: this._onSelectionChange, - placeholder: c, - ref: this._setMultiSelectElement, - resourceClient: this._resourceClient, - shouldFitContainer: !0, - shouldFocus: !0, - showSupportLink: !n - }), this._renderFormActions()) - } - _onItemSelected(e) { - return e.item.type === gR.PHONE && (e.content = e.item.number), e - } - _onSelectionChange(e) { - this.setState({ - inviteItems: e - }) - } - _onSubmit() { - const { - inviteItems: e - } = this.state, t = e.map((({ - item: e - }) => e)); - this._invite(t).then((t => { - if (t.length) { - const n = t.map((e => e.id || e.user_id || e.number)), - a = e.filter((({ - item: e - }) => n.includes(e.id || e.user_id || e.number))); - this._multiselect && this._multiselect.setSelectedItems(a) - } else this.props.dispatch({ - type: EW - }) - })) - } - _onSubmitKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onSubmit()) - } - _onKeyDown(e) { - const { - inviteItems: t - } = this.state; - "Enter" === e.key && (e.preventDefault(), !this._isAddDisabled() && t.length && this._onSubmit()) - } - _getAvatar(e, t = "avatar-small") { - return x().createElement(ZG, { - className: t, - status: e.status, - url: e.avatar - }) - } - _parseQueryResults(e = []) { - const { - t, - _dialOutEnabled: n - } = this.props, a = [gR.USER, gR.VIDEO_ROOM, gR.ROOM], r = e.filter((e => a.includes(e.type))), i = []; - for (const e of r) { - const { - name: t, - phone: a - } = e, r = this._getAvatar(e, "avatar-xsmall"), o = this._getAvatar(e); - i.push({ - content: t, - elemBefore: o, - item: e, - tag: { - elemBefore: r - }, - value: e.id || e.user_id - }), a && n && i.push({ - filterValues: [t, a], - content: `${a} (${t})`, - elemBefore: o, - item: { - type: gR.PHONE, - number: a - }, - tag: { - elemBefore: r - }, - value: a - }) - } - const o = e.filter((e => e.type === gR.PHONE)), - s = this._renderTelephoneIcon(), - l = o.map((e => { - const n = `${e.allowed?"":t("addPeople.countryNotSupported")} ${e.showCountryCodeReminder?t("addPeople.countryReminder"):""}`.trim(); - return { - filterValues: [e.originalEntry, e.number], - content: t("addPeople.telephone", { - number: e.number - }), - description: n, - isDisabled: !e.allowed, - elemBefore: s, - item: e, - tag: { - elemBefore: s - }, - value: e.number - } - })), - c = e.filter((e => e.type === gR.SIP)).map((e => ({ - filterValues: [e.address], - content: e.address, - description: "", - item: e, - value: e.address - }))); - return [...i, ...l, ...c] - } - _renderFooterText() { - const { - _footerTextEnabled: e, - t - } = this.props; - let n; - return e && (n = { - content: x().createElement("div", { - className: "footer-text-wrap" - }, x().createElement("div", null, x().createElement("span", { - className: "footer-telephone-icon" - }, x().createElement(qs, { - src: wd - }))), Fi(t, "addPeople.footerText")) - }), n - } - _onClearItems() { - this._multiselect && this._multiselect.setSelectedItems([]), this.setState({ - inviteItems: [] - }) - } - _onClearItemsKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClearItems()) - } - _renderFormActions() { - const { - inviteItems: e - } = this.state, { - t - } = this.props; - return e.length ? x().createElement("div", { - className: "invite-more-dialog invite-buttons" + (this._isAddDisabled() ? " disabled" : "") - }, x().createElement("a", { - "aria-label": t("dialog.Cancel"), - className: "invite-more-dialog invite-buttons-cancel", - onClick: this._onClearItems, - onKeyPress: this._onClearItemsKeyPress, - role: "button", - tabIndex: 0 - }, t("dialog.Cancel")), x().createElement("a", { - "aria-label": t("addPeople.add"), - className: "invite-more-dialog invite-buttons-add", - onClick: this._onSubmit, - onKeyPress: this._onSubmitKeyPress, - role: "button", - tabIndex: 0 - }, t("addPeople.add"))) : null - } - _renderErrorMessage() { - if (!this.state.addToCallError) return null; - const { - t: e - } = this.props, t = e("inlineDialogFailure.supportMsg"), n = interfaceConfig.SUPPORT_URL, a = n ? x().createElement("span", null, x().createElement("span", null, t.padEnd(t.length + 1)), x().createElement("span", null, x().createElement("a", { - "aria-label": n, - href: n, - rel: "noopener noreferrer", - target: "_blank" - }, e("inlineDialogFailure.support"))), x().createElement("span", null, ".")) : null; - return x().createElement("div", { - className: "modal-dialog-form-error" - }, x().createElement(YG, { - title: e("addPeople.failedToAdd"), - type: "error" - }, a)) - } - _renderTelephoneIcon() { - return x().createElement("span", { - className: "add-telephone-icon" - }, x().createElement(qs, { - src: wd - })) + _onMicrophoneEntryClick(e) { + this.props.setAudioInputDevice(e) + } + _onSpeakerEntryClick(e) { + this.props.setAudioOutputDevice(e) + } + _renderMicrophoneEntry(e, t, n, a) { + const { + deviceId: r, + jitsiTrack: i, + hasError: o + } = e, s = _X(r, e.label, a), l = r === this.props.currentMicDeviceId; + return C().createElement(gX, { + deviceId: r, + hasError: o, + index: t, + isSelected: l, + jitsiTrack: i, + key: `me-${t}`, + length: n, + listHeaderId: this.microphoneHeaderId, + onClick: this._onMicrophoneEntryClick + }, s) + } + _renderSpeakerEntry(e, t, n, a) { + const { + deviceId: r + } = e, i = _X(r, e.label, a), o = `se-${t}`, s = r === this.props.currentOutputDeviceId; + return C().createElement(yX, { + deviceId: r, + index: t, + isSelected: s, + key: o, + length: n, + listHeaderId: this.speakerHeaderId, + onClick: this._onSpeakerEntryClick + }, i) + } + async _setTracks() { + if (kX.isWebKitBased()) return; + this._disposeTracks(this.state.audioTracks); + const e = await (t = this.props.microphoneDevices, Promise.all(t.map((async e => { + let { + deviceId: t, + label: n + } = e, a = null, r = !1; + try { + a = await rt("audio", t, 5e3) + } catch (e) { + r = !0 } - _setMultiSelectElement(e) { - this._multiselect = e + return { + deviceId: t, + hasError: r, + jitsiTrack: a, + label: n } - })), - aK = Li((function({ - t: e - }) { - return x().createElement(x().Fragment, null, x().createElement("span", null, e("addPeople.addContacts")), x().createElement(nK, null), x().createElement("div", { - className: "invite-more-dialog separator" - })) - })), - rK = Li((function({ - liveStreamViewURL: e, + })))); + var t; + this._componentWasUnmounted ? this._disposeTracks(e) : this.setState({ + audioTracks: e + }) + } + _disposeTracks(e) { + e.forEach((e => { + let { + jitsiTrack: t + } = e; + t && t.dispose() + })) + } + componentDidMount() { + this._setTracks() + } + componentWillUnmount() { + this._componentWasUnmounted = !0, this._disposeTracks(this.state.audioTracks) + } + componentDidUpdate(e) { + Re(this.props.microphoneDevices, e.microphoneDevices) || this._setTracks() + } + render() { + const { + outputDevices: e, t - }) { - const [n, a] = (0, E.useState)(!1), [r, i] = (0, E.useState)(!1); - return x().createElement(x().Fragment, null, x().createElement("span", null, t("addPeople.shareStream")), x().createElement("div", { - className: "invite-more-dialog stream" + (n ? " clicked" : ""), - onClick: async function() { - i(!1), await Tt(e) && (a(!0), setTimeout((() => { - a(!1) - }), 2500)) - }, - onMouseOut: function() { - i(!1) - }, - onMouseOver: function() { - n || i(!0) - } - }, n ? x().createElement(x().Fragment, null, x().createElement("div", { - className: "invite-more-dialog stream-text selected" - }, t("addPeople.linkCopied")), x().createElement(qs, { - src: Rl - })) : x().createElement(x().Fragment, null, x().createElement("div", { - className: "invite-more-dialog stream-text" - }, r ? t("addPeople.copyStream") : e), x().createElement(qs, { - src: cc - }))), x().createElement("div", { - className: "invite-more-dialog separator" - })) - })), - iK = Li(ze((function(e, t) { - const n = sR(e, Et.mode.STREAM), - { - iAmRecorder: a, - inviteAppName: r - } = e["features/base/config"], - i = ER(e), - o = xR(e), - s = a || !i && !o, - l = e["features/invite"], - c = l && l.numbers ? TR(l.numbers) : void 0; - return { - _dialIn: l, - _embedMeetingVisible: !Rj(e) && IR("embed"), - _dialInVisible: IR("dial-in"), - _urlSharingVisible: IH(e) && IR("url"), - _emailSharingVisible: IR("email"), - _invitationText: wR({ - state: e, - phoneNumber: c, - t: t.t - }), - _invitationTextiOS: _R({ - state: e, - phoneNumber: c, - t: t.t - }), - _inviteAppName: r, - _inviteContactsVisible: interfaceConfig.ENABLE_DIAL_OUT && !s, - _inviteUrl: zI(e), - _liveStreamViewURL: n && n.liveStreamViewURL, - _phoneNumber: c - } - }), { - updateNumbers: () => PW() - })((function({ - _dialIn: e, - _embedMeetingVisible: t, - _dialInVisible: n, - _urlSharingVisible: a, - _emailSharingVisible: r, - _invitationText: i, - _invitationTextiOS: o, - _inviteAppName: s, - _inviteContactsVisible: l, - _inviteUrl: c, - _liveStreamViewURL: u, - _phoneNumber: d, - t: p, - updateNumbers: h - }) { - var m; - (0, E.useEffect)((() => { - e.numbers || h() - }), []), (0, E.useEffect)((() => (Ma(tn("invite.dialog.opened", "dialog")), () => { - Ma(tn("invite.dialog.closed", "dialog")) - })), []); - const f = p("addPeople.inviteMoreMailSubject", { - appName: null !== (m = s) && void 0 !== m ? m : interfaceConfig.APP_NAME - }); - return x().createElement(IO, { - cancelKey: "dialog.close", - hideCancelButton: !0, - submitDisabled: !0, - titleKey: "addPeople.inviteMorePrompt", - width: "small" - }, x().createElement("div", { - className: "invite-more-dialog" - }, l && x().createElement(aK, null), a ? x().createElement(kG, { - url: c - }) : null, r ? x().createElement(xG, { - inviteSubject: f, - inviteText: i, - inviteTextiOS: o - }) : null, t && x().createElement(IW, null), x().createElement("div", { - className: "invite-more-dialog separator" - }), u && x().createElement(rK, { - liveStreamViewURL: u - }), d && n && x().createElement(EG, { - phoneNumber: d - }))) - }))); - - function oK(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + } = this.props; + return C().createElement("div", null, C().createElement("div", { + "aria-labelledby": "audio-settings-button", + className: "audio-preview-content", + id: "audio-settings-dialog", + onKeyDown: this._onEscClick, + ref: this._audioContentRef, + role: "menu", + tabIndex: -1 + }, C().createElement("div", { + role: "menuitem" + }, C().createElement(pX, { + IconComponent: Tc, + id: this.microphoneHeaderId, + text: t("settings.microphones") + }), C().createElement("ul", { + "aria-labelledby": "microphone_settings_header", + className: "audio-preview-content-ul", + role: "radiogroup", + tabIndex: "-1" + }, this.state.audioTracks.map(((e, n) => this._renderMicrophoneEntry(e, n, this.state.audioTracks.length, t))))), e.length > 0 && C().createElement("div", { + role: "menuitem" + }, C().createElement("hr", { + className: "audio-preview-hr" + }), C().createElement(pX, { + IconComponent: Cd, + id: this.speakerHeaderId, + text: t("settings.speakers") + }), C().createElement("ul", { + "aria-labelledby": "speaker_settings_header", + className: "audio-preview-content-ul", + role: "radiogroup", + tabIndex: "-1" + }, e.map(((n, a) => this._renderSpeakerEntry(n, a, e.length, t))))))) } - const sK = Li(ze()(class extends Vw { - constructor(...e) { - super(...e), oK(this, "accessibilityLabel", "toolbar.accessibilityLabel.invite"), oK(this, "icon", Ys), oK(this, "label", "toolbar.invite"), oK(this, "tooltip", "toolbar.invite") - } - _handleClick() { - const { - dispatch: e, - handleClick: t - } = this.props; - t ? t() : (Ma(hn("invite")), e(AW())) - } - })); - class lK extends E.Component { - render() { - const { - conferenceID: e, - conferenceName: t, - t: n - } = this.props; - return x().createElement("div", { - className: "dial-in-conference-id" - }, x().createElement("div", { - className: "dial-in-conference-name" - }, t), x().createElement("div", { - className: "dial-in-conference-description" - }, n("info.dialANumber")), x().createElement("div", { - className: "dial-in-conference-pin" - }, `${n("info.dialInConferenceID")} ${_G(e)}`)) - } - } - const cK = Li(lK); - class uK extends E.Component { - render() { - const { - numbers: e - } = this.props; - return this._renderWithCountries(e) - } - _renderWithCountries(e) { - const { - t - } = this.props; - let n, a = !1; - if (Array.isArray(e)) a = !0, n = e.reduce(((e, n) => { - const a = n.countryCode.toUpperCase(); - let r; - return "SIP" === a ? r = t("info.sip") : (r = t(`countries:countries.${a}`), r || (r = t(`countries:countries.${a}.0`))), e[r] ? e[r].push(n) : e[r] = [n], e - }), {}); - else { - n = {}; - for (const [t, a] of Object.entries(e.numbers)) - if (Array.isArray(a)) { - const e = a.map((e => ({ - formattedNumber: e - }))); - n[t] = e - } - } - const r = []; - return Object.keys(n).forEach((e => { - const t = n[e]; - r.push(x().createElement("tr", { - className: "number-group", - key: e - }, this._renderFlag(t[0].countryCode), x().createElement("td", { - className: "country" - }, e), x().createElement("td", { - className: "numbers-list-column" - }, this._renderNumbersList(t)), x().createElement("td", { - className: "toll-free-list-column" - }, this._renderNumbersTollFreeList(t)))) - })), x().createElement("table", { - className: "dial-in-numbers-list" - }, x().createElement("thead", null, x().createElement("tr", null, a ? x().createElement("th", null) : null, x().createElement("th", null, t("info.country")), x().createElement("th", null, t("info.numbers")), x().createElement("th", null))), x().createElement("tbody", { - className: "dial-in-numbers-body" - }, r)) - } - _renderFlag(e) { - return e ? x().createElement("td", { - className: "flag-cell" - }, "SIP" === e ? x().createElement(qs, { - src: Ch - }) : x().createElement("i", { - className: `flag iti-flag ${e}` - })) : null - } - _renderNumbersList(e) { - const t = e.map((e => x().createElement("li", { - className: "dial-in-number", - key: e.formattedNumber - }, this._renderNumberLink(e.formattedNumber)))); - return x().createElement("ul", { - className: "numbers-list" - }, t) - } - _renderNumbersTollFreeList(e) { - const { - t - } = this.props, n = e.map((e => x().createElement("li", { - className: "toll-free", - key: e.formattedNumber - }, e.tollFree ? t("info.dialInTollFree") : ""))); - return x().createElement("ul", { - className: "toll-free-list" - }, n) + } + const SX = Ei(wX), EX = Ne((function(e) { + const { + clientWidth: t + } = e["features/base/responsive-ui"]; + return { + popupPlacement: t <= "320" ? "auto" : "top-start", + currentMicDeviceId: la(e), + currentOutputDeviceId: ca(e), + isOpen: FZ(e), + microphoneDevices: GM(e), + outputDevices: KM(e) + } + }), { + onClose: OX, + setAudioInputDevice: rI, + setAudioOutputDevice: iI + })((function(e) { + let { + children: t, + currentMicDeviceId: n, + currentOutputDeviceId: a, + isOpen: r, + microphoneDevices: i, + setAudioInputDevice: o, + setAudioOutputDevice: s, + onClose: l, + outputDevices: c, + popupPlacement: u + } = e; + return C().createElement("div", { + className: "audio-preview" + }, C().createElement(xA, { + content: C().createElement(SX, { + currentMicDeviceId: n, + currentOutputDeviceId: a, + microphoneDevices: i, + outputDevices: c, + setAudioInputDevice: o, + setAudioOutputDevice: s + }), + isOpen: r, + onClose: l, + placement: u + }, t)) + })); + + function xX() { + return xX = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } - _renderNumberLink(e) { - return this.props.clickableNumbers ? x().createElement("a", { - href: `tel:${e},${this.props.conferenceID}%23`, - key: e - }, e) : e + return e + }, xX.apply(this, arguments) + } + class CX extends x.Component { + constructor(e) { + super(e), this._onEscClick = this._onEscClick.bind(this), this._videoContentRef = C().createRef(), this.state = { + trackData: new Array(e.videoDeviceIds.length).fill({ + jitsiTrack: null + }) } } - const dK = Li(uK); - class pK extends E.Component { - constructor(e) { - super(e), - function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(this, "state", { - conferenceID: null, - error: "", - loading: !0, - numbers: null, - numbersEnabled: null - }), this._onGetNumbersSuccess = this._onGetNumbersSuccess.bind(this), this._onGetConferenceIDSuccess = this._onGetConferenceIDSuccess.bind(this), this._setErrorMessage = this._setErrorMessage.bind(this) - } - componentDidMount() { - const e = this._getNumbers().then(this._onGetNumbersSuccess).catch(this._setErrorMessage), - t = this._getConferenceID().then(this._onGetConferenceIDSuccess).catch(this._setErrorMessage); - Promise.all([e, t]).then((() => { - this.setState({ - loading: !1 - }) - })) - } - render() { - let e, t = ""; - const { - conferenceID: n, - error: a, - loading: r, - numbersEnabled: i - } = this.state; - return r ? e = "" : !1 === i ? e = this.props.t("info.dialInNotSupported") : a ? e = a : (t = "has-numbers", e = [n ? x().createElement(cK, { - conferenceID: n, - conferenceName: this.props.room, - key: "conferenceID" - }) : null, x().createElement(dK, { - clickableNumbers: this.props.clickableNumbers, - conferenceID: n, - key: "numbers", - numbers: this.state.numbers - })]), x().createElement("div", { - className: `${this.props.className} ${t}` - }, e) - } - _getConferenceID() { - const { - room: e - } = this.props, { - dialInConfCodeUrl: t, - hosts: n - } = config, a = n && n.muc; - return t && a && e ? _n(`${t}?conference=${e}@${a}`, !0).catch((() => Promise.reject(this.props.t("info.genericError")))) : Promise.resolve() - } - _getNumbers() { - const { - room: e - } = this.props, { - dialInNumbersUrl: t, - hosts: n - } = config, a = n && n.muc; - let r = ""; - return t ? (e && a && (r = `?conference=${e}@${a}`), _n(`${t}${r}`, !0).catch((() => Promise.reject(this.props.t("info.genericError"))))) : Promise.reject(this.props.t("info.dialInNotSupported")) - } - _onGetConferenceIDSuccess(e = {}) { - const { - conference: t, - id: n + _onEscClick(e) { + "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this._videoContentRef.current.style.display = "none") + } + async _setTracks() { + this._disposeTracks(this.state.trackData); + const e = await (t = this.props.videoDeviceIds, Promise.all(t.map((e => rt("video", e, 5e3).then((t => ({ + jitsiTrack: t, + deviceId: e + }))).catch((() => ({ + jitsiTrack: null, + deviceId: e, + error: "deviceSelection.previewUnavailable" + }))))))); + var t; + this._componentWasUnmounted ? this._disposeTracks(e) : this.setState({ + trackData: e + }) + } + _disposeTracks(e) { + e.forEach((e => { + let { + jitsiTrack: t } = e; - t && n && this.setState({ - conferenceID: n - }) - } - _onGetNumbersSuccess(e) { - this.setState({ - numbersEnabled: Array.isArray(e) ? e.length > 0 : e.numbersEnabled, - numbers: e - }) - } - _setErrorMessage(e) { - this.setState({ - error: e - }) + t && t.dispose() + })) + } + _onEntryClick(e) { + return () => { + this.props.setVideoInputDevice(e), this.props.toggleVideoSettings() } } - const hK = Li(pK), - mK = "Invited", - fK = "calling", - gK = "ringing", - bK = "connected", - yK = "rejected", - vK = "expired", - kK = { - [mK]: "presenceStatus.invited", - [gK]: "presenceStatus.ringing", - [fK]: "presenceStatus.calling", - busy: "presenceStatus.busy", - [yK]: "presenceStatus.rejected", - ignored: "presenceStatus.ignored", - [vK]: "presenceStatus.expired", - "Initializing Call": "presenceStatus.initializingCall", - Connecting: "presenceStatus.connecting", - "Connecting*": "presenceStatus.connecting2", - Connected: "presenceStatus.connected", - [bK]: "presenceStatus.connected", - Disconnected: "presenceStatus.disconnected" - }; - - function _K() { - return _K = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + _renderPreviewEntry(e, t) { + const { + error: n, + jitsiTrack: a, + deviceId: r + } = e, { + currentCameraDeviceId: i, + t: o + } = this.props, s = r === i, l = `vp-${t}`, c = "video-preview-entry"; + if (n) return C().createElement("div", { + className: c, + key: l, + tabIndex: -1 + }, C().createElement("div", { + className: "video-preview-error" + }, o(n))); + const u = { + className: c, + key: l, + tabIndex: "0" + }, + d = a && a.getTrackLabel(); + return s ? (u["aria-checked"] = !0, u.className = `${c} video-preview-entry--selected`) : (u.onClick = this._onEntryClick(r), u.onKeyPress = e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), u.onClick()) + }), C().createElement("div", xX({}, u, { + role: "radio" + }), C().createElement("div", { + className: "video-preview-label" + }, d && C().createElement("div", { + className: "video-preview-label-container" + }, C().createElement("div", { + className: "video-preview-label-text" + }, C().createElement("span", null, d)))), C().createElement("div", { + className: "video-preview-overlay" + }), C().createElement(hZ, { + className: "video-preview-video flipVideoX", + playsinline: !0, + videoTrack: { + jitsiTrack: a } - return e - }, _K.apply(this, arguments) + })) } - class wK extends E.Component { - render() { - const e = this._getPresenceText(); - if (null === e) return null; - const { - style: t, - className: n - } = this.props; - return x().createElement(_S, _K({ - className: n - }, t), e) - } - _getPresenceText() { - const { - _presence: e, - t - } = this.props; - if (!e) return null; - const n = kK[e]; - return n ? t(n) : e - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(wK, "defaultProps", { - _presence: "" - }); - const SK = Li(ze((function(e, t) { - const n = Fh(e, t.participantID); - return { - _presence: Boolean("undefined" != typeof interfaceConfig && (null === (a = interfaceConfig) || void 0 === a ? void 0 : a.DISABLE_PRESENCE_STATUS)) ? "" : (null == n ? void 0 : n.presence) || t.defaultPresence - }; - var a - }))(wK)); - var EK = n(7734), - xK = n.n(EK); + componentDidMount() { + this._setTracks() + } + componentWillUnmount() { + this._componentWasUnmounted = !0, this._disposeTracks(this.state.trackData) + } + componentDidUpdate(e) { + Re(this.props.videoDeviceIds, e.videoDeviceIds) || this._setTracks() + } + render() { + const { + trackData: e + } = this.state; + return C().createElement("div", { + "aria-labelledby": "video-settings-button", + className: "video-preview-container", + id: "video-settings-dialog", + onKeyDown: this._onEscClick, + ref: this._videoContentRef, + role: "radiogroup", + tabIndex: "-1" + }, e.map(((e, t) => this._renderPreviewEntry(e, t)))) + } + } + const AX = Ei(CX), TX = Ne((function(e) { + const { + clientWidth: t + } = e["features/base/responsive-ui"]; + return { + currentCameraDeviceId: sa(e), + isOpen: qZ(e), + popupPlacement: t <= "320" ? "auto" : "top-start", + videoDeviceIds: $M(e) + } + }), { + onClose: NX, + setVideoInputDevice: sI + })((function(e) { + let { + currentCameraDeviceId: t, + children: n, + isOpen: a, + onClose: r, + popupPlacement: i, + setVideoInputDevice: o, + videoDeviceIds: s + } = e; + return C().createElement("div", { + className: "video-preview" + }, C().createElement(xA, { + content: C().createElement(AX, { + currentCameraDeviceId: t, + setVideoInputDevice: o, + toggleVideoSettings: r, + videoDeviceIds: s + }), + isOpen: a, + onClose: r, + placement: i + }, n)) + })); + + function DX(e) { + return VI(cX, { + defaultTab: e + }) + } - function CK(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - AK(e, t, n[t]) - })) + function PX(e) { + return (t, n) => { + const a = NZ(n()), + r = e.showPrejoinPage; + var i; + if (r !== a.showPrejoinPage && (r && null !== (i = n()["features/prejoin"]) && void 0 !== i && i.showPrejoin && t(zH(!1)), t(hn({ + userSelectedSkipPrejoin: !r + }))), e.currentLanguage !== a.currentLanguage && _i.changeLanguage(e.currentLanguage), e.currentFramerate !== a.currentFramerate) { + const n = parseInt(e.currentFramerate, 10); + t({ + type: sY, + captureFrameRate: n + }) } - return e } + } - function AK(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function jX(e) { + return (t, n) => { + const a = RZ(n()); + var r, i; + e.followMeEnabled !== a.followMeEnabled && t(Sq(e.followMeEnabled)), e.startReactionsMuted !== a.startReactionsMuted && (0, Me.unstable_batchedUpdates)((() => { + t(Eq(e.startReactionsMuted)), t(hn({ + soundsReactions: !e.startReactionsMuted + })) + })), e.startAudioMuted === a.startAudioMuted && e.startVideoMuted === a.startVideoMuted || t((r = e.startAudioMuted, i = e.startVideoMuted, (e, t) => { + const n = vF(t()); + return n && n.setStartMutedPolicy({ + audio: r, + video: i + }), e(_q(r, i)) + })) } + } - function jK() { - return jK = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, jK.apply(this, arguments) + function MX(e) { + return (t, n) => { + const a = zZ(n()); + e.displayName !== a.displayName && APP.conference.changeLocalDisplayName(e.displayName), e.email !== a.email && APP.conference.changeLocalEmail(e.email), e.disableSelfView !== a.disableSelfView && (t(hn({ + disableSelfView: e.disableSelfView + })), e.disableSelfView && t(tg({ + titleKey: "notify.selfViewTitle", + customActionNameKey: ["settings.title"], + customActionHandler: [() => t(DX(jY.PROFILE))] + }, Yf.STICKY))) } - class PK extends E.Component { - render() { - const { - id: e, - name: t, - status: n = fK - } = this.props._callee, a = this.props._isVideoMuted ? "solidBG" : void 0; - return x().createElement(Ns, jK({}, this._style("ringing", a), { - id: "ringOverlay" - }), x().createElement(Ns, this._style("ringing__content"), x().createElement(ZG, jK({}, this._style("ringing__avatar"), { - participantId: e - })), x().createElement(Ns, this._style("ringing__status"), x().createElement(SK, jK({ - defaultPresence: n - }, this._style("ringing__text")))), x().createElement(Ns, this._style("ringing__name"), x().createElement(_S, this._style("ringing__text"), t)))) - } - _style(...e) { - let t, n = ""; - for (const a of e) a && (xK() && a in xK() ? t = CK({}, t, xK()[a]) : n += `${a} `); - const a = {}; - return n && (a.className = n.trim()), t && (a.style = t), a - } - } - const DK = ze((function(e) { - const t = ts(e["features/base/tracks"], to); - for (const [n, a] of Wh(e)) - if ("poltergeist" === a.botType) return { - _callee: { - id: n, - name: Hh(e, n), - status: Vh(e, n) - }, - _isVideoMuted: t + } + + function IX(e) { + return (t, n) => { + const a = LZ(n()), + r = RZ(n()).startReactionsMuted; + if (e.soundsIncomingMessage !== a.soundsIncomingMessage || e.soundsParticipantJoined !== a.soundsParticipantJoined || e.soundsParticipantLeft !== a.soundsParticipantLeft || e.soundsTalkWhileMuted !== a.soundsTalkWhileMuted || e.soundsReactions !== a.soundsReactions) { + const n = { + soundsIncomingMessage: e.soundsIncomingMessage, + soundsParticipantJoined: e.soundsParticipantJoined, + soundsParticipantLeft: e.soundsParticipantLeft, + soundsTalkWhileMuted: e.soundsTalkWhileMuted, + soundsReactions: e.soundsReactions }; - return { - _callee: e["features/invite"].initialCalleeInfo, - _isVideoMuted: t + r && delete n.soundsReactions, t(hn(n)) } - }))(PK); - class TK extends E.Component { - render() { - return this.props._calleeInfoVisible ? x().createElement(DK, null) : null - } - } - const OK = ze((function(e) { - return { - _calleeInfoVisible: e["features/invite"].calleeInfoVisible - } - }))(TK), - MK = "SET_GOOGLE_API_STATE", - IK = "SET_GOOGLE_API_PROFILE", - NK = ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"], - zK = { - NEEDS_LOADING: 0, - LOADED: 1, - SIGNED_IN: 2, - NOT_AVAILABLE: 3 - }; - - function RK(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e } - let LK; - const FK = { - get() { - const e = this._getGoogleApiClient(); - return e ? Promise.resolve(e) : this.load() - }, - getCurrentUserProfile() { - return this.get().then((() => this.isSignedIn())).then((e => e ? this._getGoogleApiClient().auth2.getAuthInstance().currentUser.get().getBasicProfile() : null)) - }, - initializeClient(e, t, n) { - return this.get().then((a => new Promise(((r, i) => { - const o = `${t?"https://www.googleapis.com/auth/youtube.readonly":""} ${n?"https://www.googleapis.com/auth/calendar":""}`.trim(); - setTimeout((() => { - a.client.init({ - clientId: e, - discoveryDocs: NK, - scope: o - }).then(r).catch(i) - }), 500) - })))) - }, - isSignedIn() { - return this.get().then((e => Boolean(e && e.auth2 && e.auth2.getAuthInstance && e.auth2.getAuthInstance() && e.auth2.getAuthInstance().isSignedIn && e.auth2.getAuthInstance().isSignedIn.get()))) - }, - load() { - return LK || (LK = new Promise(((e, t) => { - const n = document.createElement("script"); - n.async = !0, n.addEventListener("error", (() => { - n.remove(), LK = null, t() - })), n.addEventListener("load", e), n.type = "text/javascript", n.src = "https://apis.google.com/js/api.js", document.head.appendChild(n) - })).then((() => new Promise(((e, t) => this._getGoogleApiClient().load("client:auth2", { - callback: e, - onerror: t - }))))).then((() => this._getGoogleApiClient())), LK) - }, - requestAvailableYouTubeBroadcasts() { - return this.get().then((e => e.client.request("https://content.googleapis.com/youtube/v3/liveBroadcasts?broadcastType=all&mine=true&part=id%2Csnippet%2CcontentDetails%2Cstatus"))) - }, - requestLiveStreamsForYouTubeBroadcast(e) { - return this.get().then((t => t.client.request(`https://content.googleapis.com/youtube/v3/liveStreams?part=id%2Csnippet%2Ccdn%2Cstatus&id=${e}`))) - }, - showAccountSelection() { - return this.get().then((e => e.auth2.getAuthInstance().signIn())) - }, - signInIfNotSignedIn() { - return this.get().then((() => this.isSignedIn())).then((e => { - if (!e) return this.showAccountSelection() - })) - }, - signOut() { - return this.get().then((e => e.auth2 && e.auth2.getAuthInstance && e.auth2.getAuthInstance() && e.auth2.getAuthInstance().signOut())) - }, - _convertCalendarEntry(e) { - return { - calendarId: e.calendarId, - description: e.description, - endDate: e.end.dateTime, - id: e.id, - location: e.location, - startDate: e.start.dateTime, - title: e.summary, - url: this._getConferenceDataVideoUri(e.conferenceData) - } - }, - _getConferenceDataVideoUri(e = {}) { - try { - if ("jitsi" === e.parameters.addOnParameters.parameters.conferenceSolutionType) { - const t = e.entryPoints.find((e => "video" === e.entryPointType)); - if (t) return t.uri - } - } catch (e) {} - }, - _getCalendarEntries(e, t) { - return this.get().then((() => this.isSignedIn())).then((e => e ? this._getGoogleApiClient().client.calendar.calendarList.list() : null)).then((n => { - if (!n) return Promise.resolve(); - const a = n.result.items.map((e => ({ - id: e.id, - accessRole: e.accessRole - }))).map((({ - id: n, - accessRole: a - }) => { - const r = new Date, - i = new Date; - return r.setDate(r.getDate() + e), i.setDate(i.getDate() + t), this._getGoogleApiClient().client.calendar.events.list({ - calendarId: n, - timeMin: r.toISOString(), - timeMax: i.toISOString(), - showDeleted: !1, - singleEvents: !0, - orderBy: "startTime" - }).then((e => e.result.items.map((e => { - const t = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - RK(e, t, n[t]) - })) - } - return e - }({}, e); - return "writer" !== a && "owner" !== a || (t.calendarId = n), t - })))) - })); - return Promise.all(a).then((e => [].concat(...e))).then((e => e.map((e => this._convertCalendarEntry(e))))) - })) - }, - _updateCalendarEntry(e, t, n, a) { - return this.get().then((() => this.isSignedIn())).then((r => r ? this._getGoogleApiClient().client.calendar.events.get({ - calendarId: t, - eventId: e - }).then((r => { - let i = a; - return r.result.description && (i = `${r.result.description}\n\n${a}`), this._getGoogleApiClient().client.calendar.events.patch({ - calendarId: t, - eventId: e, - description: i, - location: n - }) - })) : null)) - }, - _getGoogleApiClient: () => window.gapi - }, - qK = FK; + } - function BK() { - return (e, t) => qK.get().then((() => { - const { - liveStreamingEnabled: e, - enableCalendarIntegration: n, - googleApiApplicationClientID: a - } = t()["features/base/config"]; - return t()["features/google-api"].googleAPIState === zK.NEEDS_LOADING ? qK.initializeClient(a, e, n) : Promise.resolve() - })).then((() => e(UK(zK.LOADED)))).then((() => qK.isSignedIn())).then((t => { - t && e(UK(zK.SIGNED_IN)) + function OX() { + return (e, t) => { + var n; + e((n = !t()["features/settings"].audioSettingsVisible, { + type: TY, + value: n })) } + } - function UK(e, t) { - return { - type: MK, - googleAPIState: e, - googleResponse: t - } + function NX() { + return (e, t) => { + var n; + e((n = !t()["features/settings"].videoSettingsVisible, { + type: DY, + value: n + })) } + } + const RX = (0, He.getLogger)("react/features/video-menu/actions.any.js"); - function HK() { - return e => qK.get().then((() => qK.signInIfNotSignedIn())).then((() => e({ - type: MK, - googleAPIState: zK.SIGNED_IN - }))) + function zX(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + return (a, r) => { + const i = t === Fi; + i || t === Bi ? e || !bm(Fi, r()) ? (e && n && a(yh(!1, !1, !0)), Da(ln(i ? Bt : Ut, { + enable: e + })), a(i ? gf(e, !0) : yf(e, t, Vi, !0)), "undefined" == typeof APP || APP.UI.emitEvent(i ? rX.AUDIO_MUTED : rX.VIDEO_MUTED, e)) : jw(Fi, r()) || a(rf(Fi)) : RX.error(`Unsupported media type: ${t}`) } + } - function VK() { - return e => qK.get().then((() => qK.signInIfNotSignedIn())).then((() => e({ - type: MK, - googleAPIState: zK.SIGNED_IN - }))).then((() => qK.getCurrentUserProfile())).then((t => (e({ - type: IK, - profileEmail: t.getEmail() - }), t.getEmail()))) - } - class WK extends E.Component {} - const YK = Li(class extends WK { - render() { - const { - t: e - } = this.props; - return x().createElement("div", { - className: "google-sign-in", - onClick: this.props.onClick - }, x().createElement("img", { - alt: e("welcomepage.logo.googleLogo"), - className: "google-logo", - src: "images/googleLogo.svg" - }), x().createElement("div", { - className: "google-cta" - }, e(this.props.signedIn ? "liveStreaming.signOut" : "liveStreaming.signIn"))) + function LX(e, t) { + return n => { + t === Fi || t === Bi ? (Da(function(e, t) { + return { + action: "clicked", + attributes: { + participant_id: e, + media_type: t + }, + source: "remote.mute.button", + type: Lt } - }), - GK = "CLEAR_CALENDAR_INTEGRATION", - KK = "REFRESH_CALENDAR", - $K = "SET_CALENDAR_AUTHORIZATION", - JK = "SET_CALENDAR_ERROR", - ZK = "SET_CALENDAR_EVENTS", - QK = "SET_CALENDAR_INTEGRATION", - XK = "SET_CALENDAR_AUTH_STATE", - e$ = "SET_CALENDAR_PROFILE_EMAIL", - t$ = "SET_LOADING_CALENDAR_EVENTS", - n$ = "google", - a$ = "microsoft", - r$ = "sign_in_failed"; - - function i$(e) { - return e.endDate > Date.now() && !((e.allDay || e.endDate - e.startDate > 828e5) && (!e.attendees || e.attendees.length < 2)) - } - - function o$(e) { - if (!e || !e.length) return; - const { - dispatch: t, - getState: n - } = this, a = n()["features/base/known-domains"], r = new Map; - for (const t of e) { - const e = l$(t, a); - if (e && i$(e)) { - const t = He().hex(JSON.stringify([e.url, e.title, new Date(e.startDate).toTimeString()])), - n = r.get(t); - (!n || n.startDate > e.startDate) && r.set(t, e) + }(e, t)), n(function(e, t) { + return { + type: Lw, + id: e, + mediaType: t } - } - t(C$(Array.from(r.values()).sort(((e, t) => e.startDate - t.startDate)).slice(0, 10))) + }(e, t))) : RX.error(`Unsupported media type: ${t}`) } + } - function s$(e, t, n) { - const a = new RegExp(t, "gi"); - let r = a.exec(e); - for (; null !== r;) { - const t = r[0]; - if (!new RegExp(n, "gi").exec(t)) return t; - r = a.exec(e) - } + function FX(e, t) { + return (n, a) => { + const r = a(), + i = Uh(r).id; + e.includes(i) || n(zX(!0, t, t !== Fi)), Jh(r).forEach(((a, r) => { + e.includes(r) || (n(LX(r, t)), n(t === Fi ? Zm(r) : Qm(r))) + })) } + } - function l$(e, t) { - if (e) { - const n = function(e, t) { - const n = `http(s)?://(${t.join("|")})/[^\\s<>$]+`, - a = "/static/", - r = [e.title, e.url, e.location, e.notes, e.description]; - for (const e of r) - if ("string" == typeof e) { - const t = s$(e, n, a) || s$(e, "org.jitsi.meet:[^\\s<>$]+", a); - if (t) { - const e = Tn(t); - if (e) return e.toString() - } - } return null - }(e, t), - a = Date.parse(e.startDate), - r = Date.parse(e.endDate); - if (!isNaN(a) && !isNaN(r) && ("ReactNative" === navigator.product || n || e.calendarId)) return { - allDay: e.allDay, - attendees: e.attendees, - calendarId: e.calendarId, - endDate: r, - id: e.id, - startDate: a, - title: e.title, - url: n - } - } - return null + function qX(e) { + return { + type: MF, + showConnectionInfo: e } - const c$ = Je("features/calendar-sync"), - u$ = { - getCalendarEntries: function(e, t) { - return () => qK.get().then((() => qK._getCalendarEntries(e, t))) - }, - getCurrentEmail: () => VK(), - load: () => e => e(BK()), - signIn: HK, - _isSignedIn: () => () => qK.isSignedIn(), - updateCalendarEvent: function(e, t, n) { - return (a, r) => AR(r(), n).then((a => qK._updateCalendarEntry(e, t, n, a))) - } - }; - var d$ = n(387), - p$ = n(7943), - h$ = n(5559); + } - function m$(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function BX(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const UX = Ei(Ne((function(e) { + return { + _audioMuted: ch(e["features/base/tracks"], Fi), + _disabled: e["features/base/config"].startSilent || pI(e), + visible: qf(e, "audio-mute.enabled", !0) } - const f$ = `${window.location.origin}/static/msredirect.html`; - let g$ = null; - const b$ = { - getCalendarEntries: (e, t) => (n, a) => { - const r = a()["features/calendar-sync"] || {}, - i = r.msAuthState && r.msAuthState.accessToken; - if (!i) return Promise.reject("Not authorized, please sign in!"); - const o = d$.Client.init({ - authProvider: e => e(null, i) - }); - return o.api("/me/calendars").get().then((n => { - const a = n.value.map((e => e.id)).map((n => function(e, t, n, a) { - const r = new Date, - i = new Date; - r.setDate(r.getDate() + n), i.setDate(i.getDate() + a); - const o = `Start/DateTime ge '${r.toISOString()}' and End/DateTime lt '${i.toISOString()}'`, - s = (new Intl.DateTimeFormat).resolvedOptions().timeZone, - l = (0, h$.findWindows)(s); - return e.api(`/me/calendars/${t}/events`).filter(o).header("Prefer", `outlook.timezone="${l}"`).select("id,subject,start,end,location,body").orderby("createdDateTime DESC").get().then((e => e.value.map((e => function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - m$(e, t, n[t]) - })) - } - return e - }({}, e, { - calendarId: t - }))))) - }(o, n, e, t))); - return Promise.all(a) - })).then((e => [].concat(...e))).then((e => e.map((e => { - return { - calendarId: (t = e).calendarId, - description: t.body.content, - endDate: t.end.dateTime, - id: t.id, - location: t.location.displayName, - startDate: t.start.dateTime, - title: t.subject - }; - var t - })))) - }, - getCurrentEmail: () => (e, t) => { - const { - msAuthState: n = {} - } = t()["features/calendar-sync"] || {}, a = n.userSigninName || ""; - return Promise.resolve(a) - }, - load: () => () => Promise.resolve(), - signIn: () => (e, t) => { - if (g$) return g$.focus(), Promise.reject("Sign in already in progress."); - const n = DL(), - a = { - authState: y$(), - authNonce: y$() - }; - e(j$(a)); - const { - microsoftApiApplicationClientID: r - } = t()["features/base/config"], i = v$(r, a.authState, a.authNonce); - g$ = window.open(i, "Auth M$", `width=480, height=600, top=${screen.height/2-300}, left=${screen.width/2-240}`); - const o = setInterval((() => { - g$ && g$.closed ? (n.reject("Popup closed before completing auth."), g$ = null, window.removeEventListener("message", s), clearInterval(o)) : g$ || clearInterval(o) - }), 500); - - function s({ - data: t - }) { - if (!t || "ms-login" !== t.type) return; - window.removeEventListener("message", s), g$ && g$.close(), g$ = null; - const i = k$(t.url), - o = function(e, t, n) { - if (e.state !== t.authState) return null; - const a = e.id_token; - if (!a) return null; - const r = a.split("."); - if (3 !== r.length) return null; - let i; - try { - i = JSON.parse(function(e) { - let t = e; - t.length % 4 == 2 ? t += "==" : t.length % 4 == 3 && (t += "="), t = t.replace(/-/g, "+").replace(/_/g, "/"); - return t = p$.toByteArray(t).reduce(((e, t) => e + t.toString(16).padStart(2, "0")), ""), t = t.replace(/(..)/g, "%$1"), decodeURIComponent(t) - }(r[1])) - } catch (e) { - return null - } - if (i.nonce !== t.authNonce || i.aud !== n || i.iss !== `https://login.microsoftonline.com/${i.tid}/v2.0`) return null; - const o = new Date, - s = new Date(1e3 * (i.nbf - 300)), - l = new Date(1e3 * (i.exp + 300)); - return o < s || o > l ? null : { - accessToken: e.access_token, - idToken: a, - userDisplayName: i.name, - userDomainType: "9188040d-6c67-4c5b-b112-36a304b66dad" === i.tid ? "consumers" : "organizations", - userSigninName: i.preferred_username - } - }(i, a, r); - o ? (e(j$({ - authState: void 0, - accessToken: o.accessToken, - idToken: o.idToken, - tokenExpires: i.tokenExpires, - userDomainType: o.userDomainType, - userSigninName: o.userSigninName - })), n.resolve()) : n.reject("Invalid token received") - } - return window.addEventListener("message", s), n.promise - }, - _isSignedIn: () => (e, t) => { - const n = (new Date).getTime(), - a = t()["features/calendar-sync"].msAuthState || {}, - r = parseInt(a.tokenExpires, 10), - i = n > r && !isNaN(r); - return a.accessToken && i ? e(((e, t) => { - const { - microsoftApiApplicationClientID: n - } = t()["features/base/config"], { - msAuthState: a = {} - } = t()["features/calendar-sync"] || {}, r = (i = n, o = a.userDomainType, s = a.userSigninName, [v$(i, "undefined", "undefined"), "prompt=none", `domain_hint=${o}`, `login_hint=${s}`].join("&")); - var i, o, s; - const l = document.createElement("iframe"); - l.setAttribute("id", "auth-iframe"), l.setAttribute("name", "auth-iframe"), l.setAttribute("style", "display: none"), l.setAttribute("src", r); - const c = new Promise((e => { - l.onload = () => { - e(l.contentWindow.location.hash) - } - })); - return document.body ? (document.body.appendChild(l), c.then((t => { - const n = k$(t); - e(j$({ - accessToken: n.access_token, - idToken: n.id_token, - tokenExpires: n.tokenExpires - })) - }))) : Promise.reject("Cannot refresh auth token in this environment") - })).then((() => !0)).catch((() => !1)) : Promise.resolve(a.accessToken && !i) - }, - updateCalendarEvent: (e, t, n) => (t, a) => { - const r = a()["features/calendar-sync"] || {}, - i = r.msAuthState && r.msAuthState.accessToken; - return i ? AR(a(), n, !0).then((t => { - const a = d$.Client.init({ - authProvider: e => e(null, i) - }); - return a.api(`/me/events/${e}`).get().then((r => { - const i = r.body; - return r.bodyPreview && (i.content = `${r.bodyPreview}

`), i.content += t.split("\n").join("
"), a.api(`/me/calendar/events/${e}`).patch({ - body: i, - location: { - displayName: n - } - }) - })) - })) : Promise.reject("Not authorized, please sign in!") - } - }; - - function y$() { - const e = new Uint16Array(8); - return window.crypto.getRandomValues(e), `${_$(e[0])}${_$(e[1])}-${_$(e[2])}-${_$(e[3])}-${_$(e[4])}-${_$(e[5])}${_$(e[6])}${_$(e[7])}` + }))(class extends vC { + constructor(e) { + super(e), BX(this, "accessibilityLabel", "toolbar.accessibilityLabel.mute"), BX(this, "label", "toolbar.mute"), BX(this, "tooltip", "toolbar.mute"), this._onKeyboardShortcut = this._onKeyboardShortcut.bind(this) } - - function v$(e, t, n) { - return `https://login.microsoftonline.com/common/oauth2/v2.0/authorize?${["response_type=id_token+token",`client_id=${e}`,`redirect_uri=${f$}`,"scope=openid profile Calendars.ReadWrite",`state=${t}`,`nonce=${n}`,"response_mode=fragment"].join("&")}` + componentDidMount() { + "undefined" == typeof APP || APP.keyboardshortcut.registerShortcut("M", null, this._onKeyboardShortcut, "keyboardShortcuts.mute") } - - function k$(e) { - const t = Lt(Dn(e), !0, "hash"), - n = 1e3 * (parseInt(t.expires_in, 10) - 300), - a = new Date, - r = new Date(a.getTime() + n); - return t.tokenExpires = r.getTime().toString(), t + componentWillUnmount() { + "undefined" == typeof APP || APP.keyboardshortcut.unregisterShortcut("M") } - - function _$(e) { - let t = e.toString(16); - for (; t.length < 4;) t = `0${t}`; - return t + _isAudioMuted() { + return this.props._audioMuted } - - function w$(e) { + _onKeyboardShortcut() { + this._isDisabled() || (Da(on(Bt, qt, { + enable: !this._isAudioMuted() + })), super._handleClick()) + } + _setAudioMuted(e) { + this.props.dispatch(zX(e, Fi)) + } + _isDisabled() { + return this.props._disabled + } + })); class HX extends x.Component { + constructor(e) { + super(e), this._onEscClick = this._onEscClick.bind(this), this._onClick = this._onClick.bind(this) + } + _onEscClick(e) { + "Escape" === e.key && this.props.isOpen && (e.preventDefault(), e.stopPropagation(), this._onClick()) + } + _onClick() { const { - enableCalendarIntegration: t, - googleApiApplicationClientID: n, - microsoftApiApplicationClientID: a - } = qe(e)["features/base/config"] || {}; - return Boolean(t && (n || a)) + handleClick: e, + onAudioOptionsClick: t + } = this.props; + e ? e() : t() } - - function S$(e, t, n) { + render() { const { - dispatch: a, - getState: r - } = e, { - integrationType: i - } = r()["features/calendar-sync"], o = E$(i); - o ? (a(D$(!0)), a(o.load()).then((() => a(o._isSignedIn()))).then((e => e ? Promise.resolve() : Promise.reject({ - error: r$ - }))).then((() => a(o.getCalendarEntries(-1, 10)))).then((e => o$.call({ - dispatch: a, - getState: r - }, e))).then((() => { - a(P$()) - }), (e => { - c$.error("Error fetching calendar.", e), e.error === r$ && a(A$()), a(P$(e)) - })).then((() => a(D$(!1))))) : c$.debug("No calendar type available") + handleClick: e, + hasPermissions: t, + isDisabled: n, + visible: a, + isOpen: r, + t: i + } = this.props, o = !t || n || !c.default.mediaDevices.isMultipleAudioInputSupported(); + return a ? C().createElement(EX, null, C().createElement(yM, { + ariaControls: "audio-settings-dialog", + ariaExpanded: r, + ariaHasPopup: !0, + ariaLabel: i("toolbar.audioSettings"), + icon: Eo, + iconDisabled: o, + iconId: "audio-settings-button", + iconTooltip: i("toolbar.audioSettings"), + onIconClick: this._onClick, + onIconKeyDown: this._onEscClick + }, C().createElement(UX, { + handleClick: e + }))) : C().createElement(UX, { + handleClick: e + }) } - - function E$(e) { - switch (e) { - case n$: - return u$; - case a$: - return b$ - } + } + const VX = Ei(Ne((function(e) { + const { + permissions: t = {} + } = e["features/base/devices"]; + return { + hasPermissions: t.audio, + isDisabled: gI(e), + isOpen: FZ(e), + visible: !va() + } + }), { + onAudioOptionsClick: OX + })(HX)), WX = "SET_AUDIO_ONLY", YX = $e("features/base/audio-only"); + + function GX(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return (n, a) => { + const { + enabled: r + } = a()["features/base/audio-only"]; + r !== e && (Da(Vt(e)), YX.log("Audio-only " + (e ? "enabled" : "disabled")), n({ + type: WX, + audioOnly: e, + ensureVideoTrack: t + }), "undefined" != typeof APP && APP.UI.emitEvent(rX.TOGGLE_AUDIO_ONLY, e)) } + } - function x$(e = !1, t = !0) { - return { - type: KK, - forcePermission: e, - isInteractive: t - } + function KX(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const $X = Ei(Ne((function(e) { + const { + enabled: t + } = e["features/base/audio-only"], n = e["features/base/tracks"], a = qf(e, "video-mute.enabled", !0); + return { + _audioOnly: Boolean(t), + _videoDisabled: yI(e), + _videoMediaType: ah(n), + _videoMuted: lh(n), + visible: a + } + }))(class extends wC { + constructor(e) { + super(e), KX(this, "accessibilityLabel", "toolbar.accessibilityLabel.videomute"), KX(this, "label", "toolbar.videomute"), KX(this, "tooltip", "toolbar.videomute"), this._onKeyboardShortcut = this._onKeyboardShortcut.bind(this) + } + componentDidMount() { + "undefined" == typeof APP || APP.keyboardshortcut.registerShortcut("V", null, this._onKeyboardShortcut, "keyboardShortcuts.videoMute") + } + componentWillUnmount() { + "undefined" == typeof APP || APP.keyboardshortcut.unregisterShortcut("V") + } + _isDisabled() { + return this.props._videoDisabled + } + _isVideoMuted() { + return this.props._videoMuted + } + _onKeyboardShortcut() { + this._isDisabled() || (Da(on(Ut, qt, { + enable: !this._isVideoMuted() + })), super._handleClick()) + } + _setVideoMuted(e) { + Da(ln(Ut, { + enable: e + })), this.props._audioOnly && this.props.dispatch(GX(!1, !0)); + const t = this.props._videoMediaType; + this.props.dispatch(yf(e, t, Vi, !0)), "undefined" == typeof APP || APP.UI.emitEvent(rX.VIDEO_MUTED, e, !0) + } + })); class JX extends x.Component { + constructor(e) { + super(e), this._onEscClick = this._onEscClick.bind(this), this._onClick = this._onClick.bind(this) + } + _isIconDisabled() { + const { + hasPermissions: e, + hasVideoTrack: t, + isDisabled: n + } = this.props; + return (!e || n) && !t } - - function C$(e) { - return { - type: ZK, - events: e - } + _onEscClick(e) { + "Escape" === e.key && this.props.isOpen && (e.preventDefault(), e.stopPropagation(), this._onClick()) } - - function A$() { - return { - type: GK - } + _onClick() { + const { + handleClick: e, + onVideoOptionsClick: t + } = this.props; + e ? e() : t() + } + render() { + const { + handleClick: e, + t, + visible: n, + isOpen: a + } = this.props; + return n ? C().createElement(TX, null, C().createElement(yM, { + ariaControls: "video-settings-dialog", + ariaExpanded: a, + ariaHasPopup: !0, + ariaLabel: this.props.t("toolbar.videoSettings"), + icon: Eo, + iconDisabled: this._isIconDisabled(), + iconId: "video-settings-button", + iconTooltip: t("toolbar.videoSettings"), + onIconClick: this._onClick, + onIconKeyDown: this._onEscClick + }, C().createElement($X, { + handleClick: e + }))) : C().createElement($X, { + handleClick: e + }) + } + } + const ZX = Ei(Ne((function(e) { + const { + permissions: t = {} + } = e["features/base/devices"]; + return { + hasPermissions: t.video, + hasVideoTrack: Boolean(rh(e)), + isDisabled: bI(e), + isOpen: qZ(e), + visible: !va() + } + }), { + onVideoOptionsClick: NX + })(JX)); class QX extends x.Component { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this) + } + _onClick() { + const { + onClick: e + } = this.props; + return e && e(...arguments) + } + render() { + return this._renderButton(this._renderIcon()) + } + } + class XX extends QX { + constructor(e) { + super(e), this._onKeyPress = this._onKeyPress.bind(this), this._onClick = this._onClick.bind(this) + } + _onKeyPress(e) { + "Enter" !== e.key && " " !== e.key || (e.preventDefault(), this.props.onClick()) + } + _onClick(e) { + this.props.onClick(e), e && e.currentTarget && e.currentTarget.blur() + } + _renderButton(e) { + return C().createElement("div", { + "aria-label": this.props.accessibilityLabel, + "aria-pressed": this.props.toggled, + className: "toolbox-button", + onClick: this._onClick, + onKeyDown: this.props.onKeyDown, + onKeyPress: this._onKeyPress, + role: "button", + tabIndex: 0 + }, this.props.tooltip ? C().createElement(hC, { + content: this.props.tooltip, + position: this.props.tooltipPosition + }, e) : e) + } + _renderIcon() { + return C().createElement("div", { + className: "toolbox-icon " + (this.props.toggled ? "toggled" : "") + }, C().createElement(lo, { + src: this.props.icon + })) + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(XX, "defaultProps", { + tooltipPosition: "top" + }); + const e1 = XX; + + function t1(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; + return `${e||t}${e&&t&&e!==t?` (${t})`:""}` + } + class n1 extends x.Component { + constructor(e) { + super(e), this.state = { + editDisplayNameValue: "", + isEditing: !1 + }, this._nameInput = null, this._onChange = this._onChange.bind(this), this._onKeyDown = this._onKeyDown.bind(this), this._onStartEditing = this._onStartEditing.bind(this), this._onSubmit = this._onSubmit.bind(this), this._setNameInputRef = this._setNameInputRef.bind(this) + } + componentDidUpdate(e, t) { + !t.isEditing && this.state.isEditing && this._nameInput && this._nameInput.select() + } + render() { + const { + _nameToDisplay: e, + allowEditing: t, + displayNameSuffix: n, + elementID: a, + t: r + } = this.props; + return t && this.state.isEditing ? C().createElement("input", { + autoFocus: !0, + className: "editdisplayname", + id: "editDisplayName", + onBlur: this._onSubmit, + onChange: this._onChange, + onKeyDown: this._onKeyDown, + placeholder: r("defaultNickname"), + ref: this._setNameInputRef, + spellCheck: "false", + type: "text", + value: this.state.editDisplayNameValue + }) : C().createElement("span", { + className: "displayname", + id: a, + onClick: this._onStartEditing + }, t1(e, n)) + } + _onChange(e) { + this.setState({ + editDisplayNameValue: e.target.value + }) + } + _onKeyDown(e) { + "Enter" === e.key && this._onSubmit() + } + _onStartEditing() { + this.props.allowEditing && this.setState({ + isEditing: !0, + editDisplayNameValue: this.props._configuredDisplayName + }) + } + _onSubmit() { + const { + editDisplayNameValue: e + } = this.state, { + dispatch: t + } = this.props; + t(hn({ + displayName: e + })), this.setState({ + isEditing: !1, + editDisplayNameValue: "" + }), this._nameInput = null + } + _setNameInputRef(e) { + this._nameInput = e + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(n1, "defaultProps", { + _configuredDisplayName: "" + }); + const a1 = Ei(Ne((function(e, t) { + const { + participantID: n + } = t, a = Vh(e, n); + return { + _configuredDisplayName: a && a.name, + _nameToDisplay: Kh(e, n) + } + }))(n1)); class r1 extends x.Component { + constructor(e) { + super(e), this._onSetDisplayName = this._onSetDisplayName.bind(this) + } + _onSetDisplayName(e) { + if (!e || !e.trim()) return !1; + const { + dispatch: t, + onPostSubmit: n + } = this.props; + return t(hn({ + displayName: e + })), n && n(), !0 + } + } + const i1 = Ei(Ne()(class extends r1 { + constructor(e) { + super(e), this.state = { + displayName: "" + }, this._onDisplayNameChange = this._onDisplayNameChange.bind(this), this._onSubmit = this._onSubmit.bind(this) + } + render() { + return C().createElement(yL, { + isModal: !1, + onSubmit: this._onSubmit, + titleKey: "dialog.displayNameRequired", + width: "small" + }, C().createElement(xB, { + autoFocus: !0, + compact: !0, + label: this.props.t("dialog.enterDisplayName"), + name: "displayName", + onChange: this._onDisplayNameChange, + shouldFitContainer: !0, + type: "text", + value: this.state.displayName + })) + } + _onDisplayNameChange(e) { + this.setState({ + displayName: e.target.value + }) } + _onSubmit() { + return this._onSetDisplayName(this.state.displayName) + } + })), o1 = BQ((e => ({ + badge: { + background: "rgba(0, 0, 0, 0.6)", + borderRadius: "3px", + color: e.palette.text01, + maxWidth: "50%", + overflow: "hidden", + padding: "2px 16px", + textOverflow: "ellipsis", + whiteSpace: "nowrap" + } + }))), s1 = e => { + let { + name: t + } = e; + const n = o1(); + return C().createElement("div", { + className: n.badge + }, t) + }, l1 = BQ((e => ({ + badgeContainer: { + ...no(e.typography.bodyShortRegularLarge), + alignItems: "center", + display: "flex", + justifyContent: "center", + marginBottom: e.spacing(2), + transition: "margin-bottom 0.3s" + }, + containerElevated: { + marginBottom: e.spacing(7) + } + }))), c1 = () => { + const e = l1(), + t = Pe(hS), + n = null == t ? void 0 : t.name, + a = null == t ? void 0 : t.id, + r = Pe(Uh), + i = null == r ? void 0 : r.id, + o = Pe(eE), + s = Pe(fI); + return n && a !== i && !o ? C().createElement("div", { + className: `${e.badgeContainer}${s?"":` ${e.containerElevated}`}` + }, C().createElement(s1, { + name: n + })) : null + }; - function j$(e) { - return { - type: XK, - msAuthState: e - } + function u1(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const d1 = Ei(Ne()(class extends bC { + constructor() { + super(...arguments), u1(this, "accessibilityLabel", "toolbar.accessibilityLabel.embedMeeting"), u1(this, "icon", Cs), u1(this, "label", "toolbar.embedMeeting"), u1(this, "tooltip", "toolbar.embedMeeting") } + _handleClick() { + const { + dispatch: e, + handleClick: t + } = this.props; + t ? t() : (Da(ln("embed.meeting")), e(VI(iG))) + } + })), p1 = "SET_DOCUMENT_EDITING_STATUS", h1 = "SET_DOCUMENT_URL", m1 = "TOGGLE_DOCUMENT_EDITING"; - function P$(e) { - return { - type: JK, - error: e - } + function f1(e) { + return { + type: p1, + editing: e } + } - function D$(e) { - return { - type: t$, - isLoadingEvents: e - } + function g1(e) { + return { + type: h1, + documentUrl: e } + } - function T$(e) { - return { - type: QK, - integrationReady: !0, - integrationType: e - } + function b1(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const y1 = Ei(Ne((function(e, t) { + const { + documentUrl: n, + editing: a + } = e["features/etherpad"], { + visible: r = Boolean(n) + } = t; + return { + _editing: a, + visible: r + } + }))(class extends bC { + constructor() { + super(...arguments), b1(this, "accessibilityLabel", "toolbar.accessibilityLabel.document"), b1(this, "icon", Ju), b1(this, "label", "toolbar.documentOpen"), b1(this, "toggledLabel", "toolbar.documentClose") + } + get tooltip() { + return this._isToggled() ? "toolbar.documentClose" : "toolbar.documentOpen" + } + set tooltip(e) {} + _handleClick() { + const { + _editing: e, + dispatch: t, + handleClick: n + } = this.props; + n ? n() : (Da(ln("toggle.etherpad", { + enable: !e + })), t({ + type: m1 + })) } + _isToggled() { + return this.props._editing + } + })), v1 = { + showControls: "true", + showChat: "false", + showLineNumbers: "true", + useMonospaceFont: "false" + }, k1 = "CANCEL_FEEDBACK", _1 = "SUBMIT_FEEDBACK_ERROR", w1 = "SUBMIT_FEEDBACK_SUCCESS"; - function O$(e) { - return t => { - const n = E$(e); - return n ? t(n.getCurrentEmail()).then((e => { - t({ - type: e$, - email: e - }) - })) : Promise.reject("No integration found") - } + function S1(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const E1 = Ei(Ne((e => ({ + _conference: e["features/base/conference"].conference + })))(class extends bC { + constructor() { + super(...arguments), S1(this, "accessibilityLabel", "toolbar.accessibilityLabel.feedback"), S1(this, "icon", fl), S1(this, "label", "toolbar.feedback"), S1(this, "tooltip", "toolbar.feedback") } - class M$ extends E.Component { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) - } - render() { - return x().createElement(Fw, { - content: this.props.t("calendarSync.addMeetingURL") - }, x().createElement("div", { - className: "button add-button", - onClick: this._onClick, - onKeyPress: this._onKeyPress, - role: "button" - }, x().createElement(qs, { - src: Hs - }))) - } - _onClick() { - const { - calendarId: e, - dispatch: t, - eventId: n - } = this.props; - Ma(Zt("calendar.add.url")), t(function(e, t) { - return (n, a) => { - const { - integrationType: r - } = a()["features/calendar-sync"], i = E$(r); - if (!i) return Promise.reject("No integration found"); - const { - locationURL: o - } = a()["features/base/connection"], s = TN(); - let l = o.href; - l.endsWith("/") || (l += "/"); - const c = `${l}${s}`; - return n(i.updateCalendarEvent(e, t, c)).then((() => { - const r = a()["features/calendar-sync"].events.slice(0), - i = r.findIndex((n => n.id === e && n.calendarId === t)), - o = Object.assign({}, r[i]); - return o.url = c, r[i] = o, n(C$(r)) - })) - } - }(n, e)) - } - _onKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClick()) + _handleClick() { + const { + _conference: e, + dispatch: t, + handleClick: n + } = this.props; + n ? n() : (Da(ln("feedback")), t(B1(e))) + } + })), x1 = JSON.parse('{"u2":"@atlaskit/field-text-area","i8":"8.0.4"}'); + var C1 = (0, $g.css)(["\n color: ", ";\n"], hb.placeholderText), A1 = $g.default.textarea.withConfig({ + displayName: "TextArea", + componentId: "l4fqfr-0" + })(["\n background: transparent;\n padding: 0;\n margin: 0;\n border: 0;\n box-sizing: border-box;\n color: inherit;\n cursor: inherit;\n font-family: ", ";\n font-size: ", "px;\n line-height: ", ";\n min-width: 0;\n outline: none;\n width: 100%;\n\n [disabled] {\n ", ";\n }\n\n ", " ", "\n\n &::-ms-clear {\n display: none;\n }\n\n &:invalid {\n box-shadow: none;\n }\n\n ", ";\n"], (function(e) { + return e.isMonospaced ? "'SFMono-Medium', 'SF Mono', 'Segoe UI Mono', 'Roboto Mono', 'Ubuntu Mono', Menlo, Consolas, Courier, monospace" : "inherit" + }), Xg, 20 / 14, "\n -webkit-text-fill-color: unset;\n -webkit-opacity: 1;\n", (function(e) { + var t = e.minimumRows; + return "min-height: ".concat(20 * t, "px;") + }), (function(e) { + var t = e.enableResize; + return t ? "horizontal" === t ? "resize: horizontal;" : "vertical" === t ? "resize: vertical;" : null : "resize: none;" + }), function(e) { + return (0, $g.css)(["\n &::-webkit-input-placeholder {\n /* WebKit, Blink, Edge */\n ", ";\n }\n &::-moz-placeholder {\n /* Mozilla Firefox 19+ */\n ", " opacity: 1;\n }\n &::-ms-input-placeholder {\n /* Microsoft Edge */\n ", ";\n }\n &:-moz-placeholder {\n /* Mozilla Firefox 4 to 18 */\n ", " opacity: 1;\n }\n &:-ms-input-placeholder {\n /* Internet Explorer 10-11 */\n ", ";\n }\n"], e, e, e, e, e) + }(C1)); + const T1 = A1; + var D1 = $g.default.div.withConfig({ + displayName: "FieldTextAreaStateless__Wrapper", + componentId: "sc-159dr31-0" + })(["\n flex: 1 1 100%;\n"]), P1 = function(e) { + _r(r, e); + var t, n, a = (t = r, n = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } + }(), function() { + var e, a = kr(t); + if (n) { + var r = kr(this).constructor; + e = Reflect.construct(a, arguments, r) + } else e = a.apply(this, arguments); + return vr(this, e) + }); + + function r() { + var e; + Ya(this, r); + for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; + return $a(w(e = a.call.apply(a, [this].concat(n))), "input", void 0), e } - const I$ = Li(ze()(M$)); - class N$ extends E.Component { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) + return Ka(r, [{ + key: "focus", + value: function() { + this.input.focus() } - render() { - const { - t: e - } = this.props; - return x().createElement(Fw, { - content: e("calendarSync.joinTooltip") - }, x().createElement("div", { - className: "button join-button", - onClick: this._onClick, - onKeyPress: this._onKeyPress, - role: "button" - }, x().createElement(qs, { - size: "14", - src: Hs + }, { + key: "render", + value: function() { + var e = this, + t = this.props, + n = t.autoFocus, + a = t.compact, + r = t.disabled, + i = t.id, + o = t.invalidMessage, + s = t.isInvalid, + l = t.isLabelHidden, + c = t.isMonospaced, + u = t.isReadOnly, + d = t.isSpellCheckEnabled, + p = t.label, + h = t.maxLength, + m = t.minimumRows, + f = t.name, + g = t.onBlur, + b = t.onChange, + y = t.onFocus, + v = t.placeholder, + k = t.enableResize, + _ = t.required, + w = t.shouldFitContainer, + S = t.value, + E = t.isValidationHidden; + return C().createElement(D1, null, !l && C().createElement(cD, { + htmlFor: i, + isDisabled: r, + isLabelHidden: l, + isRequired: _, + label: p + }), C().createElement(yB, { + isCompact: a, + isDisabled: r, + isInvalid: s, + isReadOnly: u, + isRequired: _, + invalidMessage: o, + isFitContainerWidthEnabled: w, + isValidationHidden: E + }, C().createElement(T1, { + disabled: r, + readOnly: u, + name: f, + placeholder: v, + value: S, + required: _, + isMonospaced: c, + minimumRows: m, + enableResize: k, + onBlur: g, + onChange: b, + onFocus: y, + id: i, + autoFocus: n, + spellCheck: d, + maxLength: h, + innerRef: function(t) { + e.input = t + } }))) } - _onClick(e) { - this.props.onPress(e, this.props.url) + }]), r + }(x.Component); $a(P1, "defaultProps", { + compact: !1, + disabled: !1, + isReadOnly: !1, + required: !1, + isInvalid: !1, + label: "", + type: "text", + isSpellCheckEnabled: !0, + minimumRows: 1, + isValidationHidden: !1 + }); + var j1 = QC("atlaskit"); + const M1 = oA({ + componentName: "fieldTextArea", + packageName: x1.u2, + packageVersion: x1.i8 + })(uA({ + onBlur: j1({ + action: "blurred", + actionSubject: "textArea", + attributes: { + componentName: "fieldTextArea", + packageName: x1.u2, + packageVersion: x1.i8 + } + }), + onFocus: j1({ + action: "focused", + actionSubject: "textArea", + attributes: { + componentName: "fieldTextArea", + packageName: x1.u2, + packageVersion: x1.i8 } - _onKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClick()) + }) + })(P1)); + var I1 = n(9429), O1 = n(901); + + function N1() { + return N1 = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } + return e + }, N1.apply(this, arguments) + } + const R1 = interfaceConfig.ENABLE_FEEDBACK_ANIMATION ? "shake-rotate" : "", z1 = ["feedback.veryBad", "feedback.bad", "feedback.average", "feedback.good", "feedback.veryGood"]; class L1 extends x.Component { + constructor(e) { + super(e); + const { + _message: t, + _score: n + } = this.props; + this.state = { + message: t, + mousedOverScore: -1, + score: n > -1 ? n - 1 : n + }, this._scoreClickConfigurations = z1.map(((e, t) => ({ + _onClick: () => this._onScoreSelect(t), + _onKeyPres: e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onScoreSelect(t)) + }, + _onMouseOver: () => this._onScoreMouseOver(t) + }))), this._onCancel = this._onCancel.bind(this), this._onMessageChange = this._onMessageChange.bind(this), this._onScoreContainerMouseLeave = this._onScoreContainerMouseLeave.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onScrollTop = e => { + e && e.scroll && e.scroll(0, 0) + } + } + componentDidMount() { + Da({ + action: "feedback.opened" + }), "undefined" != typeof APP && APP.API.notifyFeedbackPromptDisplayed() + } + componentWillUnmount() { + this.props.onClose && this.props.onClose() + } + render() { + const { + message: e, + mousedOverScore: t, + score: n + } = this.state, a = t > -1 ? t : n, { + t: r + } = this.props, i = this._scoreClickConfigurations.map(((e, t) => { + const n = t <= a, + i = `star-btn ${R1} ${n?"active":""}`; + return C().createElement("span", N1({ + "aria-label": r(z1[t]), + className: i, + key: t, + onClick: e._onClick, + onKeyPress: e._onKeyPres, + role: "button", + tabIndex: 0 + }, va() ? {} : { + onMouseOver: e._onMouseOver + }), n ? C().createElement(O1.Z, { + label: "star-filled", + size: "xlarge" + }) : C().createElement(I1.Z, { + label: "star", + size: "xlarge" + })) + })); + return C().createElement(yL, { + okKey: "dialog.Submit", + onCancel: this._onCancel, + onDialogRef: this._onScrollTop, + onSubmit: this._onSubmit, + titleKey: "feedback.rateExperience" + }, C().createElement("div", { + className: "feedback-dialog" + }, C().createElement("div", { + className: "rating" + }, C().createElement("div", { + "aria-label": this.props.t("feedback.star"), + className: "star-label" + }, C().createElement("p", { + id: "starLabel" + }, r(z1[a]))), C().createElement("div", { + className: "stars", + onMouseLeave: this._onScoreContainerMouseLeave + }, i)), C().createElement("div", { + className: "details" + }, C().createElement(M1, { + autoFocus: !0, + className: "input-control", + id: "feedbackTextArea", + label: r("feedback.detailsLabel"), + onChange: this._onMessageChange, + shouldFitContainer: !0, + value: e + })))) } - const z$ = Li(N$); - class R$ extends E.Component { - constructor(e) { - super(e), this._onJoinPress = this._onJoinPress.bind(this), this._onPress = this._onPress.bind(this), this._toDisplayableItem = this._toDisplayableItem.bind(this) - } - componentDidMount() { - Ma(function(e = {}) { - return { - action: "selected", - actionSubject: "calendar.selected", - attributes: e, - source: "calendar", - type: Wt - } - }()) - } - render() { - const { - disabled: e, - listEmptyComponent: t - } = this.props, { - _eventList: n = [] - } = this.props, a = n.map(this._toDisplayableItem); - return x().createElement(SS, { - disabled: e, - listEmptyComponent: t, - meetings: a, - onPress: this._onPress - }) - } - _onJoinPress(e, t) { - e.stopPropagation(), this._onPress(t, "calendar.meeting.join") - } - _onPress(e, t = "calendar.meeting.tile") { - Ma(Zt(t)), this.props.dispatch(KN(e)) - } - _toDisplayableItem(e) { - return { - elementAfter: e.url ? x().createElement(z$, { - onPress: this._onJoinPress, - url: e.url - }) : x().createElement(I$, { - calendarId: e.calendarId, - eventId: e.id - }), - date: e.startDate, - time: [e.startDate, e.endDate], - description: e.url, - title: e.title, - url: e.url - } - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(R$, "defaultProps", { - _eventList: [] - }); - const L$ = ze((function(e) { - return { - _eventList: e["features/calendar-sync"].events - } - }))(R$), - F$ = Li(ze((function(e) { - const { - error: t, - events: n, - integrationType: a, - isLoadingEvents: r - } = e["features/calendar-sync"]; + _onCancel() { + const { + message: e, + score: t + } = this.state, n = t > -1 ? t + 1 : t; + return this.props.dispatch(function(e, t) { return { - _calendarError: t, - _hasIntegrationSelected: Boolean(a), - _hasLoadedEvents: Boolean(n) || !r - } - }))(class extends Bj { - constructor(e) { - super(e), this._getRenderListEmptyComponent = this._getRenderListEmptyComponent.bind(this), this._onOpenSettings = this._onOpenSettings.bind(this), this._onKeyPressOpenSettings = this._onKeyPressOpenSettings.bind(this), this._onRefreshEvents = this._onRefreshEvents.bind(this) - } - render() { - const { - disabled: e - } = this.props; - return L$ ? x().createElement(L$, { - disabled: e, - listEmptyComponent: this._getRenderListEmptyComponent() - }) : null - } - _getErrorMessage() { - const { - _calendarError: e = {}, - t - } = this.props; - let n = "calendarSync.error.generic", - a = !0, - r = !0; - return "idpiframe_initialization_failed" === e.error ? (n = "calendarSync.error.appConfiguration", a = !1, r = !1) : e.error === r$ && (n = "calendarSync.error.notSignedIn", a = !1), x().createElement("div", { - className: "meetings-list-empty" - }, x().createElement("p", { - className: "description" - }, t(n)), x().createElement("div", { - className: "calendar-action-buttons" - }, r && x().createElement("div", { - className: "button", - onClick: this._onOpenSettings - }, t("calendarSync.permissionButton")), a && x().createElement("div", { - className: "button", - onClick: this._onRefreshEvents - }, t("calendarSync.refresh")))) - } - _getRenderListEmptyComponent() { - const { - _calendarError: e, - _hasIntegrationSelected: t, - _hasLoadedEvents: n, - t: a - } = this.props; - return e ? this._getErrorMessage() : t && n ? x().createElement("div", { - className: "meetings-list-empty" - }, x().createElement("p", { - className: "description" - }, a("calendarSync.noEvents")), x().createElement("div", { - className: "button", - onClick: this._onRefreshEvents - }, a("calendarSync.refresh"))) : t && !n ? x().createElement("div", { - className: "meetings-list-empty" - }, x().createElement(Py, { - invertColor: !0, - isCompleting: !1, - size: "medium" - })) : x().createElement("div", { - className: "meetings-list-empty" - }, x().createElement("div", { - className: "meetings-list-empty-image" - }, x().createElement("img", { - alt: a("welcomepage.logo.calendar"), - src: "./images/calendar.svg" - })), x().createElement("div", { - className: "description" - }, a("welcomepage.connectCalendarText", { - app: interfaceConfig.APP_NAME, - provider: interfaceConfig.PROVIDER_NAME - })), x().createElement("div", { - className: "meetings-list-empty-button", - onClick: this._onOpenSettings, - onKeyPress: this._onKeyPressOpenSettings, - role: "button" - }, x().createElement(qs, { - className: "meetings-list-empty-icon", - src: ul - }), x().createElement("span", null, a("welcomepage.connectCalendarButton")))) - } - _onOpenSettings() { - Ma(Zt("calendar.connect")), this.props.dispatch(IQ(mW.CALENDAR)) - } - _onKeyPressOpenSettings(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onOpenSettings()) - } - _onRefreshEvents() { - this.props.dispatch(x$(!0)) + type: k1, + message: t, + score: e } - })); - class q$ extends E.Component { - render() { - return x().createElement("div", { - className: "microsoft-sign-in", - onClick: this.props.onClick - }, x().createElement("img", { - alt: this.props.t("welcomepage.logo.microsoftLogo"), - className: "microsoft-logo", - src: "images/microsoftLogo.svg" - }), x().createElement("div", { - className: "microsoft-cta" - }, this.props.text)) - } - } - const B$ = Li(q$); - - function U$(e) { - const t = qe(e), - n = t["features/base/settings"], - { - conference: a - } = t["features/base/conference"], - { - permissions: r - } = t["features/base/devices"], - i = Ea(), - o = c.default.mediaDevices.isDeviceChangeAvailable("input"), - s = c.default.mediaDevices.isDeviceChangeAvailable("output"), - l = oa(t), - u = sa(t); - let d = !c.default.mediaDevices.isMultipleAudioInputSupported(), - p = !o, - h = i ? u : n.micDeviceId, - m = MM(), - f = i ? l : n.cameraDeviceId; - return a || (d = !1, p = !1, h = u, m = la(t), f = l), { - availableDevices: t["features/base/devices"].availableDevices, - disableAudioInputChange: d, - disableDeviceChange: !c.default.mediaDevices.isDeviceChangeAvailable(), - disableVideoInputSelect: p, - hasAudioPermission: r.audio, - hasVideoPermission: r.video, - hideAudioInputPreview: d || !c.default.isCollectingLocalStats(), - hideAudioOutputPreview: !s, - hideAudioOutputSelect: !s, - hideVideoInputPreview: !o, - selectedAudioInputId: h, - selectedAudioOutputId: m, - selectedVideoInputId: f - } - } - - function H$(e, t, n, a) { - if ("devices" !== n.type) return !1; - const r = t(), - i = r["features/base/settings"]; - let o = !0; - switch (n.name) { - case "isDeviceListAvailable": - a(c.default.mediaDevices.isDeviceListAvailable()); - break; - case "isDeviceChangeAvailable": - a(c.default.mediaDevices.isDeviceChangeAvailable(n.deviceType)); - break; - case "isMultipleAudioInputSupported": - a(c.default.isMultipleAudioInputSupported()); - break; - case "getCurrentDevices": - e(YM()).then((t => { - if (OM(r)) { - const e = { - audioInput: void 0, - audioOutput: void 0, - videoInput: void 0 - }, - n = new Set([MM(), i.micDeviceId, i.cameraDeviceId]); - t.forEach((t => { - const { - deviceId: a, - kind: r - } = t; - if (n.has(a)) switch (r) { - case "audioinput": - e.audioInput = t; - break; - case "audiooutput": - e.audioOutput = t; - break; - case "videoinput": - e.videoInput = t - } - })), a(e) - } else e(WM({ - type: "devices", - name: "getCurrentDevices", - responseCallback: a - })) - })); - break; - case "getAvailableDevices": - e(YM()).then((t => { - OM(r) ? a(RM(t)) : e(WM({ - type: "devices", - name: "getAvailableDevices", - responseCallback: a - })) - })); - break; - case "setDevice": { - const { - device: t - } = n; - if (!OM(r)) return e(WM({ - type: "devices", - name: "setDevice", - device: t, - responseCallback: a - })), !0; + }(n, e)), !0 + } + _onMessageChange(e) { + this.setState({ + message: e.target.value + }) + } + _onScoreSelect(e) { + this.setState({ + score: e + }) + } + _onScoreContainerMouseLeave() { + this.setState({ + mousedOverScore: -1 + }) + } + _onScoreMouseOver(e) { + this.setState({ + mousedOverScore: e + }) + } + _onSubmit() { + const { + conference: e, + dispatch: t + } = this.props, { + message: n, + score: a + } = this.state; + return t(U1(a > -1 ? a + 1 : a, n, e)), !0 + } + } + const F1 = Ei(Ne((function(e) { + const { + message: t, + score: n + } = e["features/feedback"]; + return { + _message: t, + _score: n + } + }))(L1)), q1 = $e("features/feedback"); + + function B1(e, t) { + return VI(F1, { + conference: e, + onClose: t + }) + } + + function U1(e, t, n) { + return a => n.sendFeedback(e, t).then((() => a({ + type: w1 + }))).then((() => a(function(e, t) { + return (n, a) => { + const r = a(), + { + jaasFeedbackMetadataURL: i + } = r["features/base/config"], + { + jwt: o, + user: s, + tenant: l + } = r["features/base/jwt"]; + if (!cM(r) || !i) return Promise.resolve(); + const c = XY(); + return async function(e, t) { const { - label: i, - id: s - } = t, l = i ? NM(r, t.label, t.kind) : s; - if (l) switch (t.kind) { - case "audioinput": - e(JM(l)); - break; - case "audiooutput": - e(ZM(l)); - break; - case "videoinput": - e(XM(l)); - break; - default: - o = !1 - } else o = !1; - a(o); - break - } - default: - return !1 + jwt: n, + sessionId: a, + meetingFqn: r, + score: i, + message: o, + userId: s, + tenant: l + } = t, c = { + Authorization: `Bearer ${n}`, + "Content-Type": "application/json" + }, u = { + sessionId: a, + meetingFqn: r, + userId: s, + tenant: l, + submitted: (new Date).getTime(), + rating: i, + comments: o + }; + try { + const t = await fetch(e, { + method: "POST", + headers: c, + body: JSON.stringify(u) + }); + t.ok || q1.error("Status error:", t.status) + } catch (e) { + q1.error("Could not send request", e) + } + }(i, { + ...t, + sessionId: e.sessionId, + userId: s.id, + meetingFqn: c, + jwt: o, + tenant: l + }) } - return !0 + }(n, { + score: e, + message: t + })).catch((e => (a({ + type: _1, + error: e + }), Promise.reject(e)))))) + } + const H1 = "LOCAL_RECORDING_ENGAGED", V1 = "LOCAL_RECORDING_UNENGAGED", W1 = "LOCAL_RECORDING_STATS_UPDATE", Y1 = $e("features/local-recording"); class G1 { + start(e) { + throw new Error("Not implemented") + } + stop() { + throw new Error("Not implemented") + } + exportRecordedData() { + throw new Error("Not implemented") + } + setMuted(e) { + throw new Error("Not implemented") + } + setMicDevice(e) { + throw new Error("Not implemented") + } + _getAudioStream(e) { + return c.default.createLocalTracks({ + devices: ["audio"], + micDeviceId: e + }).then((e => { + if (1 !== e.length) throw new Error("Unexpected number of streams from createLocalTracks."); + const t = e[0].stream; + if (void 0 === t) throw new Error("Failed to create local track."); + return t + })) } - const V$ = Je("features/device-selection"); + } - function W$(e) { - return (t, n) => { - const a = U$(n()); - e.selectedVideoInputId && e.selectedVideoInputId !== a.selectedVideoInputId && (t(bn({ - userSelectedCameraDeviceId: e.selectedVideoInputId, - userSelectedCameraDeviceLabel: zM(n(), e.selectedVideoInputId, "videoInput") - })), t(QM(e.selectedVideoInputId))), e.selectedAudioInputId && e.selectedAudioInputId !== a.selectedAudioInputId && (t(bn({ - userSelectedMicDeviceId: e.selectedAudioInputId, - userSelectedMicDeviceLabel: zM(n(), e.selectedAudioInputId, "audioInput") - })), t($M(e.selectedAudioInputId))), e.selectedAudioOutputId && e.selectedAudioOutputId !== a.selectedAudioOutputId && (Ma(en("audio", "output")), HM(e.selectedAudioOutputId, t, !0, zM(n(), e.selectedAudioOutputId, "audioOutput")).then((() => V$.log("changed audio output device"))).catch((e => { - V$.warn("Failed to change audio output device.", "Default or previously set audio output device will", " be used instead.", e) - }))) - } + function K1(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class $1 extends G1 { + constructor() { + super(...arguments), K1(this, "_mediaRecorder", null), K1(this, "_initPromise", null), K1(this, "_recordedData", null) } - const Y$ = c.default.events.track; - class G$ extends E.Component { - constructor(e) { - super(e), this.state = { - audioLevel: 0 - }, this._updateAudioLevel = this._updateAudioLevel.bind(this) - } - componentDidMount() { - this._listenForAudioUpdates(this.props.track) - } - componentDidUpdate(e) { - e.track !== this.props.track && (this._listenForAudioUpdates(this.props.track), this._updateAudioLevel(0)) - } - componentWillUnmount() { - this._stopListeningForAudioUpdates() - } - render() { - const e = { - width: `${Math.floor(100*this.state.audioLevel)}%` - }; - return x().createElement("div", { - className: "audio-input-preview" - }, x().createElement("div", { - className: "audio-input-preview-level", - style: e + start(e) { + return this._initPromise || (this._initPromise = this._initialize(e)), this._initPromise.then((() => new Promise((e => { + this._mediaRecorder.start(), e() + })))) + } + stop() { + return new Promise((e => { + this._mediaRecorder.onstop = () => e(), this._mediaRecorder.stop() + })) + } + exportRecordedData() { + return null !== this._recordedData ? Promise.resolve({ + data: this._recordedData, + format: "ogg" + }) : Promise.reject("No audio data recorded.") + } + setMuted(e) { + const t = !e; + if (!this._stream) return Promise.resolve(); + const n = this._stream.getAudioTracks()[0]; + return n ? (n.enabled !== t && (n.enabled = t, Y1.log(e ? "Mute" : "Unmute")), Promise.resolve()) : (Y1.error("Cannot mute/unmute. Track not found!"), Promise.resolve()) + } + _initialize(e) { + return this._mediaRecorder ? Promise.resolve() : new Promise(((t, n) => { + this._getAudioStream(e).then((e => { + this._stream = e, this._mediaRecorder = new MediaRecorder(e), this._mediaRecorder.ondataavailable = e => this._saveMediaData(e.data), t() + })).catch((e => { + Y1.error(`Error calling getUserMedia(): ${e}`), n() })) - } - _listenForAudioUpdates(e) { - this._stopListeningForAudioUpdates(), e && e.on(Y$.TRACK_AUDIO_LEVEL_CHANGED, this._updateAudioLevel) - } - _stopListeningForAudioUpdates() { - this.props.track && this.props.track.off(Y$.TRACK_AUDIO_LEVEL_CHANGED, this._updateAudioLevel) - } - _updateAudioLevel(e) { - this.setState({ - audioLevel: e + })) + } + _saveMediaData(e) { + this._recordedData = e + } + } + + function J1(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class Z1 extends G1 { + constructor() { + super(), J1(this, "_audioContext", null), J1(this, "_audioProcessingNode", null), J1(this, "_audioSource", null), J1(this, "_stream", null), J1(this, "_sampleRate", 44100), this._audioContext = new AudioContext, this._sampleRate = this._audioContext.sampleRate, Y1.log(`Current sampleRate ${this._sampleRate}.`) + } + _initializeAudioContext(e, t) { + return "function" != typeof t ? Promise.reject("a callback function is required.") : this._getAudioStream(e).then((e => { + this._stream = e, this._audioSource = this._audioContext.createMediaStreamSource(e), this._audioProcessingNode = this._audioContext.createScriptProcessor(4096, 1, 1), this._audioProcessingNode.onaudioprocess = t, Y1.debug("AudioContext is set up.") + })).catch((e => (Y1.error(`Error calling getUserMedia(): ${e}`), Promise.reject(e)))) + } + _connectAudioGraph() { + this._audioSource.connect(this._audioProcessingNode), this._audioProcessingNode.connect(this._audioContext.destination) + } + _disconnectAudioGraph() { + this._audioProcessingNode.onaudioprocess = void 0, this._audioProcessingNode.disconnect(), this._audioSource.disconnect() + } + _replaceMic(e) { + return this._audioContext && this._audioProcessingNode ? this._getAudioStream(e).then((e => { + const t = this._audioContext.createMediaStreamSource(e); + this._audioSource.disconnect(), t.connect(this._audioProcessingNode), this._stream = e, this._audioSource = t + })) : Promise.resolve() + } + } + + function Q1(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class X1 extends Z1 { + constructor() { + super(), Q1(this, "_wavLength", 0), Q1(this, "_wavBuffers", []), Q1(this, "_isInitialized", !1), Q1(this, "_initPromise", null), this._onAudioProcess = this._onAudioProcess.bind(this) + } + start(e) { + return this._initPromise || (this._initPromise = this._initialize(e)), this._initPromise.then((() => { + this._wavBuffers = [], this._wavLength = 0, this._connectAudioGraph() + })) + } + stop() { + return this._disconnectAudioGraph(), this._data = this._exportMonoWAV(this._wavBuffers, this._wavLength), this._audioProcessingNode = null, this._audioSource = null, this._isInitialized = !1, Promise.resolve() + } + exportRecordedData() { + return null !== this._data ? Promise.resolve({ + data: this._data, + format: "wav" + }) : Promise.reject("No audio data recorded.") + } + setMuted(e) { + const t = !e; + if (!this._stream) return Promise.resolve(); + const n = this._stream.getAudioTracks()[0]; + return n ? (n.enabled !== t && (n.enabled = t, Y1.log(e ? "Mute" : "Unmute")), Promise.resolve()) : (Y1.error("Cannot mute/unmute. Track not found!"), Promise.resolve()) + } + setMicDevice(e) { + return this._replaceMic(e) + } + _createWavHeader(e) { + const t = new ArrayBuffer(44), + n = new DataView(t); + return e0(n, 0, "RIFF"), e0(n, 8, "WAVE"), e0(n, 12, "fmt "), n.setUint32(16, 16, !0), n.setUint16(20, 1, !0), n.setUint16(22, 1, !0), n.setUint32(24, this._sampleRate, !0), n.setUint32(28, 1 * Number(this._sampleRate) * 16 / 8, !0), n.setUint16(32, 1 * Number(16) / 8, !0), n.setUint16(34, 16, !0), e0(n, 36, "data"), n.setUint32(4, 32 + e, !0), n.setUint32(40, e, !0), new Uint8Array(t) + } + _initialize(e) { + return this._isInitialized ? Promise.resolve() : this._initializeAudioContext(e, this._onAudioProcess).then((() => { + this._isInitialized = !0 + })) + } + _onAudioProcess(e) { + const t = e.inputBuffer.getChannelData(0); + this._wavBuffers.push(new Float32Array(t)), this._wavLength += t.length + } + _exportMonoWAV(e, t) { + const n = 2 * t, + a = new ArrayBuffer(44 + n), + r = new DataView(a), + i = this._createWavHeader(n), + o = i.length; + for (let e = 0; e < o; ++e) r.setUint8(e, i[e]); + return function(e, t, n) { + let a, r, i, o, s; + const l = n.length; + let c = 44; + for (a = 0; a < l; ++a) + for (i = n[a], s = i.length, r = 0; r < s; ++r, c += 2) o = Math.max(-1, Math.min(1, i[r])), e.setInt16(c, o < 0 ? 32768 * o : 32767 * o, !0) + }(r, 0, e), new Blob([r], { + type: "audio/wav" + }) + } + } + + function e0(e, t, n) { + const a = n.length; + for (let r = 0; r < a; ++r) e.setUint8(t + r, n.charCodeAt(r)) + } + + function t0(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class n0 extends Z1 { + constructor() { + super(), t0(this, "_encoder", null), t0(this, "_stopPromiseResolver", null), t0(this, "_initWorkerPromiseResolver", null), t0(this, "_initPromise", null), this._onAudioProcess = this._onAudioProcess.bind(this), this._onWorkerMessage = this._onWorkerMessage.bind(this) + } + start(e) { + return this._initPromise || (this._initPromise = this._initialize(e)), this._initPromise.then((() => { + this._connectAudioGraph() + })) + } + stop() { + return this._encoder ? new Promise((e => { + this._initPromise = null, this._disconnectAudioGraph(), this._stopPromiseResolver = e, this._encoder.postMessage({ + command: "MAIN_THREAD_FINISH" }) - } + })) : (Y1.error("Attempting to stop but has nothing to stop."), Promise.reject()) } - const K$ = G$, - $$ = pf; - class J$ extends E.Component { - constructor(e) { - super(e), this._audioElement = null, this._audioElementReady = this._audioElementReady.bind(this), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) - } - componentDidUpdate() { - this._setAudioSink() - } - render() { - return x().createElement("div", { - className: "audio-output-preview" - }, x().createElement("a", { - "aria-label": this.props.t("deviceSelection.testAudio"), - onClick: this._onClick, - onKeyPress: this._onKeyPress, - role: "button", - tabIndex: 0 - }, this.props.t("deviceSelection.testAudio")), x().createElement($$, { - setRef: this._audioElementReady, - src: "sounds/ring.wav" - })) - } - _audioElementReady(e) { - this._audioElement = e, this._setAudioSink() - } - _onClick() { - this._audioElement && this._audioElement.play() - } - _onKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClick()) - } - _setAudioSink() { - this._audioElement && this.props.deviceId && this._audioElement.setSinkId(this.props.deviceId) - } + exportRecordedData() { + return null !== this._data ? Promise.resolve({ + data: this._data, + format: "flac" + }) : Promise.reject("No audio data recorded.") } - const Z$ = Li(J$); - var Q$ = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; + setMuted(e) { + const t = !e; + if (!this._stream) return Promise.resolve(); + const n = this._stream.getAudioTracks()[0]; + return n ? (n.enabled !== t && (n.enabled = t, Y1.log(e ? "Mute" : "Unmute")), Promise.resolve()) : (Y1.error("Cannot mute/unmute. Track not found!"), Promise.resolve()) + } + setMicDevice(e) { + return this._replaceMic(e) + } + _initialize(e) { + return null !== this._encoder ? Promise.resolve() : new Promise(((e, t) => { try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + this._loadWebWorker() } catch (e) { - return !1 + t() } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r() { - var e; - Jg(this, r); - for (var t = arguments.length, n = new Array(t), i = 0; i < t; i++) n[i] = arguments[i]; - return Zf(_(e = a.call.apply(a, [this].concat(n))), "state", { - isOpen: e.props.defaultOpen, - items: $g(e.props.items) - }), Zf(_(e), "findActivatedGroup", (function(t) { - return e.state.items.filter((function(e) { - return e.items.indexOf(t) > -1 - }))[0] - })), Zf(_(e), "handleItemActivation", (function(t) { - var n = t.item, - a = e.findActivatedGroup(n), - r = $g(e.state.items); - switch (n.type) { - case "checkbox": - n.isChecked = !n.isChecked, e.props.onItemActivated({ - item: n - }), e.setState({ - items: r - }); - break; - case "radio": - a.items.forEach((function(e) { - e.isChecked = e === n - })), e.props.onItemActivated({ - item: n - }), e.setState({ - items: r - }); - break; - default: - e.props.onItemActivated({ - item: n - }), e.close() - } - })), Zf(_(e), "handleOpenChange", (function(t) { - var n; - if (e.state.isOpen !== t.isOpen) { - e.setState({ - isOpen: t.isOpen - }); - for (var a = arguments.length, r = new Array(a > 1 ? a - 1 : 0), i = 1; i < a; i++) r[i - 1] = arguments[i]; - (n = e.props).onOpenChange.apply(n, [t].concat(r)) - } - })), Zf(_(e), "close", (function() { - var t; - if (!1 !== e.state.isOpen) { - e.setState({ - isOpen: !1 - }); - for (var n = arguments.length, a = new Array(n), r = 0; r < n; r++) a[r] = arguments[r]; - (t = e.props).onOpenChange.apply(t, [{ - isOpen: !1 - }].concat(a)) + this._initWorkerPromiseResolver = e, this._encoder.onmessage = this._onWorkerMessage, this._encoder.postMessage({ + command: "MAIN_THREAD_INIT", + config: { + sampleRate: this._sampleRate, + bps: 16 } - })), e - } - return Qg(r, [{ - key: "UNSAFE_componentWillReceiveProps", - value: function(e) { - e.items !== this.state.items && this.setState({ - items: $g(e.items) - }), e.isOpen !== this.props.isOpen && this.setState({ - isOpen: e.isOpen - }) - } - }, { - key: "render", - value: function() { - var e = this.state.isOpen, - t = this.props, - n = t.appearance, - a = t.boundariesElement, - r = t.children, - i = t.isLoading, - o = t.items, - s = t.position, - l = t.isMenuFixed, - c = t.shouldAllowMultilineItems, - u = t.shouldFitContainer, - d = t.shouldFlip, - p = t.testId, - h = t.trigger, - m = t.triggerButtonProps, - f = t.triggerType, - g = t.onPositioned; - return x().createElement(RY, { - appearance: n, - boundariesElement: a, - isOpen: e, - isLoading: i, - items: o, - onItemActivated: this.handleItemActivation, - onOpenChange: this.handleOpenChange, - position: s, - isMenuFixed: l, - shouldAllowMultilineItems: c, - shouldFitContainer: u, - shouldFlip: d, - trigger: h, - triggerButtonProps: m, - triggerType: f, - onPositioned: g, - testId: p - }, r) - } - }]), r - }(E.Component); - Zf(Q$, "defaultProps", { - appearance: "default", - boundariesElement: "viewport", - defaultOpen: !1, - isLoading: !1, - isOpen: !1, - items: [], - onItemActivated: function() {}, - onOpenChange: function() {}, - position: "bottom left", - isMenuFixed: !1, - shouldAllowMultilineItems: !1, - shouldFitContainer: !1, - shouldFlip: !0, - triggerType: "default", - onPositioned: function() {} - }); - class X$ extends E.Component { - constructor(e) { - super(e), this._onSelect = this._onSelect.bind(this), this._createDropdownItem = this._createDropdownItem.bind(this) - } - render() { - if (void 0 === this.props.hasPermission) return null; - if (!this.props.hasPermission) return this._renderNoPermission(); - if (!this.props.devices || !this.props.devices.length) return this._renderNoDevices(); - const e = this.props.devices.map(this._createDropdownItem), - t = this.props.devices.find((e => e.deviceId === this.props.selectedDeviceId)); - return this._createDropdown({ - defaultSelected: t, - isDisabled: this.props.isDisabled, - items: e, - placeholder: this.props.t("deviceSelection.selectADevice") }) + })).then((() => this._initializeAudioContext(e, this._onAudioProcess))) + } + _onAudioProcess(e) { + const t = e.inputBuffer.getChannelData(0); + this._encoder.postMessage({ + command: "MAIN_THREAD_NEW_DATA_ARRIVED", + buf: t + }) + } + _onWorkerMessage(e) { + switch (e.data.command) { + case "WORKER_BLOB_READY": + this._data = e.data.buf, null !== this._stopPromiseResolver && (this._stopPromiseResolver(), this._stopPromiseResolver = null, this._encoder.terminate(), this._encoder = null); + break; + case "DEBUG": + Y1.log(e.data); + break; + case "WORKER_LIBFLAC_READY": + Y1.log("libflac is ready."), this._initWorkerPromiseResolver(); + break; + default: + Y1.error(`Unknown event\n from encoder (WebWorker): "${e.data.command}"!`) } - _createDropdownTrigger(e) { - return x().createElement("div", { - className: "device-selector-trigger" - }, x().createElement("span", { - className: "device-selector-trigger-text" - }, e)) - } - _createDropdownItem(e) { - return x().createElement(mY, { - "data-deviceid": e.deviceId, - isSelected: e.deviceId === this.props.selectedDeviceId, - key: e.deviceId, - onClick: this._onSelect - }, e.label || e.deviceId) - } - _createDropdown(e) { - const t = e.defaultSelected && (e.defaultSelected.label || e.defaultSelected.deviceId) || e.placeholder, - n = this._createDropdownTrigger(t); - return e.isDisabled || !e.items.length ? x().createElement("div", { - className: "device-selector-trigger-disabled" - }, n) : x().createElement("div", { - className: "dropdown-menu" - }, x().createElement(Q$, { - shouldFitContainer: !0, - trigger: t, - triggerButtonProps: { - shouldFitContainer: !0, - id: this.props.id - }, - triggerType: "button" - }, x().createElement(VY, null, e.items))) - } - _onSelect(e) { - const t = e.currentTarget.getAttribute("data-deviceid"); - this.props.selectedDeviceId !== t && this.props.onSelect(t) - } - _renderNoDevices() { - return this._createDropdown({ - isDisabled: !0, - placeholder: this.props.t("settings.noDevice") + } + _loadWebWorker() { + try { + this._encoder = new Worker("/libs/flacEncodeWorker.min.js", { + name: "FLAC encoder worker" }) + } catch (e) { + try { + this._encoder = new Worker("/libs/flacEncodeWorker.js", { + name: "FLAC encoder worker" + }) + } catch (e) { + throw new Error("Failed to load flacEncodeWorker.") + } } - _renderNoPermission() { - return this._createDropdown({ - isDisabled: !0, - placeholder: this.props.t("deviceSelection.noPermission") - }) + } + } + + function a0() { + return window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now() + } + const r0 = Object.freeze({ + SESSION_STARTED: "SESSION_STARTED", + SEGMENT_STARTED: "SEGMENT_STARTED", + SEGMENT_ENDED: "SEGMENT_ENDED" + }), i0 = "localRecordingMetadataVersion1", o0 = new class { + constructor() { + ! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(this, "_sessionsMetadata", {}), this._loadMetadata() + } + _loadMetadata() { + const e = l.getItem(i0); + if (null !== e) try { + const t = r.parse(e); + this._sessionsMetadata = t + } catch (e) { + return void Y1.warn("Failed to parse localStorage item.") + } + } + _saveMetadata() { + l.setItem(i0, JSON.stringify(this._sessionsMetadata)) + } + createSession(e, t) { + void 0 === this._sessionsMetadata[e] ? (this._sessionsMetadata[e] = { + format: t, + events: [] + }, this._sessionsMetadata[e].events.push({ + type: r0.SESSION_STARTED, + timestamp: a0() + }), this._saveMetadata()) : Y1.warn(`Session ${e} already exists`) + } + getSessions() { + const e = Object.keys(this._sessionsMetadata), + t = []; + for (let n = 0; n < e.length; ++n) { + const a = this._sessionsMetadata[e[n]], + r = { + start: a.events[0].timestamp, + format: a.format, + sessionToken: e[n], + segments: this.getSegments(e[n]) + }; + t.push(r) } + return t.sort(((e, t) => (e.start || 0) - (t.start || 0))), t } - const eJ = Li(X$), - tJ = bf; - class nJ extends E.Component { - render() { - const { - error: e - } = this.props, t = "video-input-preview " + (e ? "video-preview-has-error" : ""); - return x().createElement("div", { - className: t - }, x().createElement(tJ, { - className: "video-input-preview-display flipVideoX", - playsinline: !0, - videoTrack: { - jitsiTrack: this.props.track - } - }), x().createElement("div", { - className: "video-input-preview-error" - }, e || "")) - } - } - const aJ = nJ, - rJ = Li(class extends dP { - constructor(e) { - super(e), this.state = { - previewAudioTrack: null, - previewVideoTrack: null, - previewVideoTrackError: null - }, this._unMounted = !0 - } - componentDidMount() { - this._unMounted = !1, Promise.all([this._createAudioInputTrack(this.props.selectedAudioInputId), this._createVideoInputTrack(this.props.selectedVideoInputId)]).catch((e => V$.warn("Failed to initialize preview tracks", e))).then((() => this.props.mountCallback && this.props.mountCallback())) - } - componentDidUpdate(e) { - e.selectedAudioInputId !== this.props.selectedAudioInputId && this._createAudioInputTrack(this.props.selectedAudioInputId), e.selectedVideoInputId !== this.props.selectedVideoInputId && this._createVideoInputTrack(this.props.selectedVideoInputId) - } - componentWillUnmount() { - this._unMounted = !0, this._disposeAudioInputPreview(), this._disposeVideoInputPreview() - } - render() { - const { - hideAudioInputPreview: e, - hideAudioOutputPreview: t, - hideVideoInputPreview: n, - selectedAudioOutputId: a - } = this.props; - return x().createElement("div", { - className: "device-selection" + (n ? " video-hidden" : "") - }, x().createElement("div", { - className: "device-selection-column column-video" - }, !n && x().createElement("div", { - className: "device-selection-video-container" - }, x().createElement(aJ, { - error: this.state.previewVideoTrackError, - track: this.state.previewVideoTrack - })), !e && x().createElement(K$, { - track: this.state.previewAudioTrack - })), x().createElement("div", { - className: "device-selection-column column-selectors" - }, x().createElement("div", { - "aria-live": "polite all", - className: "device-selectors" - }, this._renderSelectors()), !t && x().createElement(Z$, { - deviceId: a - }))) - } - _createAudioInputTrack(e) { - const { - hideAudioInputPreview: t - } = this.props; - if (!t) return this._disposeAudioInputPreview().then((() => st("audio", e, 5e3))).then((e => { - this._unMounted ? e.dispose() : this.setState({ - previewAudioTrack: e - }) - })).catch((() => { - this.setState({ - previewAudioTrack: null - }) - })) - } - _createVideoInputTrack(e) { - const { - hideVideoInputPreview: t - } = this.props; - if (!t) return this._disposeVideoInputPreview().then((() => st("video", e, 5e3))).then((e => { - if (!e) return Promise.reject(); - this._unMounted ? e.dispose() : this.setState({ - previewVideoTrack: e, - previewVideoTrackError: null - }) - })).catch((() => { - this.setState({ - previewVideoTrack: null, - previewVideoTrackError: this.props.t("deviceSelection.previewUnavailable") - }) - })) - } - _disposeAudioInputPreview() { - return this.state.previewAudioTrack ? this.state.previewAudioTrack.dispose() : Promise.resolve() - } - _disposeVideoInputPreview() { - return this.state.previewVideoTrack ? this.state.previewVideoTrack.dispose() : Promise.resolve() - } - _renderSelector(e) { - return x().createElement("div", { - key: e.label - }, x().createElement("label", { - className: "device-selector-label", - htmlFor: e.id - }, this.props.t(e.label)), x().createElement(eJ, e)) - } - _renderSelectors() { - const { - availableDevices: e, - hasAudioPermission: t, - hasVideoPermission: n - } = this.props, a = [{ - devices: e.audioInput, - hasPermission: t, - icon: "icon-microphone", - isDisabled: this.props.disableAudioInputChange || this.props.disableDeviceChange, - key: "audioInput", - id: "audioInput", - label: "settings.selectMic", - onSelect: e => super._onChange({ - selectedAudioInputId: e - }), - selectedDeviceId: this.state.previewAudioTrack ? this.state.previewAudioTrack.getDeviceId() : this.props.selectedAudioInputId - }, { - devices: e.videoInput, - hasPermission: n, - icon: "icon-camera", - isDisabled: this.props.disableVideoInputSelect || this.props.disableDeviceChange, - key: "videoInput", - id: "videoInput", - label: "settings.selectCamera", - onSelect: e => super._onChange({ - selectedVideoInputId: e - }), - selectedDeviceId: this.state.previewVideoTrack ? this.state.previewVideoTrack.getDeviceId() : this.props.selectedVideoInputId - }]; - return this.props.hideAudioOutputSelect || a.push({ - devices: e.audioOutput, - hasPermission: t || n, - icon: "icon-speaker", - isDisabled: this.props.disableDeviceChange, - key: "audioOutput", - id: "audioOutput", - label: "settings.selectAudioOutput", - onSelect: e => super._onChange({ - selectedAudioOutputId: e - }), - selectedDeviceId: this.props.selectedAudioOutputId - }), a.map((e => this._renderSelector(e))) - } - }); + removeSession(e) { + delete this._sessionsMetadata[e], this._saveMetadata() + } + getSegments(e) { + const t = this._sessionsMetadata[e]; + return t ? this._constructSegments(t.events) : [] + } + beginSegment(e) { + return void 0 === this._sessionsMetadata[e] ? (Y1.warn(`Attempting to add segments to nonexistent session ${e}`), -1) : (this._sessionsMetadata[e].events.push({ + type: r0.SEGMENT_STARTED, + timestamp: a0() + }), this._saveMetadata(), this.getSegments(e).length - 1) + } + getCurrentSegmentIndex(e) { + if (void 0 === this._sessionsMetadata[e]) return -1; + const t = this.getSegments(e); + return 0 === t.length || t[t.length - 1].end ? -1 : t.length - 1 + } + endSegment(e) { + void 0 === this._sessionsMetadata[e] ? Y1.warn(`Attempting to end a segment in nonexistent session ${e}`) : (this._sessionsMetadata[e].events.push({ + type: r0.SEGMENT_ENDED, + timestamp: a0() + }), this._saveMetadata()) + } + _constructSegments(e) { + if (0 === e.length) return []; + const t = []; + let n = null, + a = {}; - function iJ(e) { - const t = qe(e); - return Boolean(t["features/follow-me"].moderator) - } - const oJ = new Array(3).fill("reactions-laughter.mp3"), - sJ = new Array(3).fill("reactions-applause.mp3"), - lJ = new Array(3).fill("reactions-thumbs-up.mp3"), - cJ = new Array(3).fill("reactions-boo.mp3"), - uJ = new Array(3).fill("reactions-surprise.mp3"), - dJ = new Array(3).fill("reactions-crickets.mp3"), - pJ = "endpoint-reaction", - hJ = "RAISE_HAND_SOUND", - mJ = [1, 4, 10], - fJ = { - like: { - message: ":thumbs_up:", - emoji: "👍", - shortcutChar: "T", - soundId: "REACTION_SOUND_LIKE_", - soundFiles: lJ - }, - clap: { - message: ":clap:", - emoji: "👏", - shortcutChar: "C", - soundId: "REACTION_SOUND_CLAP_", - soundFiles: sJ - }, - laugh: { - message: ":grinning_face:", - emoji: "😀", - shortcutChar: "L", - soundId: "REACTION_SOUND_LAUGH_", - soundFiles: oJ - }, - surprised: { - message: ":face_with_open_mouth:", - emoji: "😮", - shortcutChar: "O", - soundId: "REACTION_SOUND_SURPRISE_", - soundFiles: uJ - }, - boo: { - message: ":slightly_frowning_face:", - emoji: "🙁", - shortcutChar: "B", - soundId: "REACTION_SOUND_BOO_", - soundFiles: cJ - }, - silence: { - message: ":face_without_mouth:", - emoji: "😶", - shortcutChar: "S", - soundId: "REACTION_SOUND_SILENCE_", - soundFiles: dJ + function r() { + if (void 0 === a.gapBefore || null === a.gapBefore) + if (t.length > 0 && t[t.length - 1].end) { + const e = t[t.length - 1]; + a.start && e.end ? a.gapBefore = a.start - e.end : a.gapBefore = null + } else null !== n && 0 === t.length ? a.gapBefore = a.start ? a.start - n : null : a.gapBefore = null; + a.duration = a.end && a.start ? a.end - a.start : null, t.push(a), a = {} + } + for (let t = 0; t < e.length; ++t) { + const i = e[t]; + switch (i.type) { + case r0.SESSION_STARTED: + null === n ? n = i.timestamp : Y1.warn("Unexpected SESSION_STARTED event.", i); + break; + case r0.SEGMENT_STARTED: + void 0 === a.start || null === a.start || r(), a.start = i.timestamp; + break; + case r0.SEGMENT_ENDED: + void 0 === a.start || null === a.start ? Y1.warn("Unexpected SEGMENT_ENDED event", i) : (a.end = i.timestamp, r()); + break; + default: + Y1.warn("Unexpected error during _constructSegments") } - }, - gJ = Je("features/base/reactions"); - - function bJ(e) { - return e["features/reactions"].queue + } + return a.start && r(), t } + }; - function yJ(e) { - return e.map((e => fJ[e].message)).reduce(((e, t) => `${e}${t}`)) + function s0(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + window.sessionManager = o0; + const l0 = "localRecStart", c0 = "localRecStop", u0 = "localRecPing", d0 = "localRecStats", p0 = new Set(["flac", "wav", "ogg"]), h0 = Object.freeze({ + IDLE: Symbol("IDLE"), + STARTING: Symbol("STARTING"), + RECORDING: Symbol("RECORDING"), + STOPPING: Symbol("STOPPING"), + FAILED: Symbol("FAILED") + }), m0 = new class { + constructor() { + s0(this, "_adapters", {}), s0(this, "_conference", null), s0(this, "_currentSessionToken", -1), s0(this, "_state", h0.IDLE), s0(this, "_isMuted", !1), s0(this, "_micDeviceId", "default"), s0(this, "_format", "flac"), s0(this, "_registered", !1), this.registerEvents = this.registerEvents.bind(this), this.getParticipantsStats = this.getParticipantsStats.bind(this), this._onStartCommand = this._onStartCommand.bind(this), this._onStopCommand = this._onStopCommand.bind(this), this._onPingCommand = this._onPingCommand.bind(this), this._doStartRecording = this._doStartRecording.bind(this), this._doStopRecording = this._doStopRecording.bind(this), this._updateStats = this._updateStats.bind(this), this._switchToNewSession = this._switchToNewSession.bind(this) + } + registerEvents(e) { + this._registered || (this._conference = e, this._conference && (this._conference.addCommandListener(c0, this._onStopCommand), this._conference.addCommandListener(l0, this._onStartCommand), this._conference.addCommandListener(u0, this._onPingCommand), this._registered = !0), this._conference.isModerator() || this._conference.sendCommandOnce(u0, {})) + } + set onStateChanged(e) { + this._onStateChanged = e + } + set onNotify(e) { + this._onNotify = e + } + set onWarning(e) { + this._onWarning = e + } + startRecording() { + this.registerEvents(), this._conference && this._conference.isModerator() ? (this._conference.removeCommand(c0), this._conference.sendCommand(l0, { + attributes: { + sessionToken: this._getRandomToken(), + format: this._format + } + })) : this._onWarning && this._onWarning("localRecording.messages.notModerator") } - - function vJ(e, t) { - return e.filter((e => e === t)).length + stopRecording() { + this._conference && (this._conference.isModerator() ? (this._conference.removeCommand(l0), this._conference.sendCommand(c0, { + attributes: { + sessionToken: this._currentSessionToken + } + })) : this._onWarning && this._onWarning("localRecording.messages.notModerator")) } - - function kJ(e) { - for (const t of mJ) - if (e <= t) return t; - return mJ[mJ.length - 1] + downloadRecordedData(e) { + this._adapters[e] ? this._adapters[e].exportRecordedData().then((t => { + const { + data: n, + format: a + } = t; + ! function(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "recording.ogg"; + const n = window.URL.createObjectURL(e), + a = document.createElement("a"); + a.style = "display: none", a.href = n, a.download = t, document.body.appendChild(a), a.click(), document.body.removeChild(a) + }(n, `session_${e}_${this._conference.myUserId()}.${a}`) + })).catch((t => { + Y1.error(`Failed to download audio for session ${e}. Error: ${t}`) + })) : Y1.error(`Invalid session token for download ${e}`) + } + setMicDevice(e) { + e !== this._micDeviceId && (this._micDeviceId = String(e), this._state === h0.RECORDING && (Y1.log("Before switching microphone..."), this._adapters[this._currentSessionToken].setMicDevice(this._micDeviceId).then((() => { + Y1.log("Finished switching microphone.") + })).catch((() => { + Y1.error("Failed to switch microphone") + }))), Y1.log(`Switch microphone to ${this._micDeviceId}`)) + } + setMuted(e) { + this._isMuted = Boolean(e), this._state === h0.RECORDING && this._adapters[this._currentSessionToken].setMuted(this._isMuted) + } + switchFormat(e) { + p0.has(e) ? (this._format = e, Y1.log(`Recording format switched to ${e}`)) : Y1.log(`Unknown format ${e}. Ignoring...`) + } + getLocalStats() { + return { + currentSessionToken: this._currentSessionToken, + isRecording: this._state === h0.RECORDING, + recordedBytes: 0, + recordedLength: 0 + } + } + getParticipantsStats() { + const e = this._conference.getParticipants().map((e => ({ + id: e.getId(), + displayName: e.getDisplayName(), + recordingStats: r.parse(e.getProperty(d0) || "{}"), + isSelf: !1 + }))), + t = {}; + for (let n = 0; n < e.length; ++n) t[e[n].id] = e[n]; + const n = this._conference.myUserId(); + return t[n] = { + id: n, + displayName: _i.t("localRecording.me"), + recordingStats: this.getLocalStats(), + isSelf: !0 + }, t } - - function _J(e) { + _changeState(e) { + this._state !== e && (Y1.log(`state change: ${this._state.toString()} -> ${e.toString()}`), this._state = e) + } + _updateStats() { + this._conference && this._conference.setLocalParticipantProperty(d0, JSON.stringify(this.getLocalStats())) + } + _onStartCommand(e) { const { - disableReactions: t - } = e["features/base/config"]; - return "ReactNative" === navigator.product ? !t && Df(e, "reactions.enabled", !0) : !t + sessionToken: t, + format: n + } = e.attributes; + this._state === h0.IDLE ? (this._changeState(h0.STARTING), this._switchToNewSession(t, n), this._doStartRecording()) : this._state === h0.RECORDING && this._currentSessionToken !== t && (this._changeState(h0.STOPPING), this._doStopRecording().then((() => { + this._changeState(h0.STARTING), this._switchToNewSession(t, n), this._doStartRecording() + }))) } - - function wJ(e) { - var t; - const n = qe(e), - a = null !== (t = n["features/screen-share"].captureFrameRate) && void 0 !== t ? t : 5, - r = Ni.language || Mi, - { - conference: i, - followMeEnabled: o, - startAudioMutedPolicy: s, - startVideoMutedPolicy: l - } = n["features/base/conference"], - c = iJ(n), - u = interfaceConfig.SETTINGS_SECTIONS || [], - d = Boolean(i && u.includes("moderator") && Jh(n)); - return { - currentFramerate: a, - currentLanguage: r, - desktopShareFramerates: fW, - followMeActive: Boolean(i && c), - followMeEnabled: Boolean(i && o), - languages: Oi, - showLanguageSettings: u.includes("language"), - showModeratorSettings: d, - showPrejoinSettings: n["features/base/config"].prejoinPageEnabled, - showPrejoinPage: !n["features/base/settings"].userSelectedSkipPrejoin, - startAudioMuted: Boolean(i && s), - startVideoMuted: Boolean(i && l) - } - } - - function SJ(e) { - const t = qe(e), - { - authEnabled: n, - authLogin: a, - conference: r - } = t["features/base/conference"], - i = Rh(t); - return { - authEnabled: Boolean(r && n), - authLogin: a, - displayName: i.name, - email: i.email, - readOnlyName: Gn(t) + _onStopCommand(e) { + this._state === h0.RECORDING && this._currentSessionToken === e.attributes.sessionToken && (this._changeState(h0.STOPPING), this._doStopRecording()) + } + _onPingCommand() { + this._conference.isModerator() && (Y1.log("Received ping, sending pong."), this._conference.sendCommandOnce("localRecPong", {})) + } + _getRandomToken() { + return Math.floor(1e8 * Math.random()) + 1 + } + _doStartRecording() { + if (this._state === h0.STARTING) { + const e = this._adapters[this._currentSessionToken]; + e.start(this._micDeviceId).then((() => { + this._changeState(h0.RECORDING), o0.beginSegment(this._currentSessionToken), Y1.log("Local recording engaged."), this._onNotify && this._onNotify("localRecording.messages.engaged"), this._onStateChanged && this._onStateChanged(!0), e.setMuted(this._isMuted), this._updateStats() + })).catch((e => { + Y1.error("Failed to start local recording.", e) + })) } } - - function EJ(e) { - const t = qe(e), - { - soundsIncomingMessage: n, - soundsParticipantJoined: a, - soundsParticipantLeft: r, - soundsTalkWhileMuted: i, - soundsReactions: o - } = t["features/base/settings"]; - return { - soundsIncomingMessage: n, - soundsParticipantJoined: a, - soundsParticipantLeft: r, - soundsTalkWhileMuted: i, - soundsReactions: o, - enableReactions: _J(t) + _doStopRecording() { + if (this._state === h0.STOPPING) { + const e = this._currentSessionToken; + return this._adapters[this._currentSessionToken].stop().then((() => { + this._changeState(h0.IDLE), o0.endSegment(this._currentSessionToken), Y1.log("Local recording unengaged."), this.downloadRecordedData(e); + const t = this._conference.isModerator() ? "localRecording.messages.finishedModerator" : "localRecording.messages.finished", + n = { + token: e + }; + this._onNotify && this._onNotify(t, n), this._onStateChanged && this._onStateChanged(!1), this._updateStats() + })).catch((e => { + Y1.error("Failed to stop local recording.", e) + })) } + return Promise.resolve() } - - function xJ(e) { - return e["features/settings"].audioSettingsVisible + _switchToNewSession(e, t) { + this._format = t, this._currentSessionToken = e, Y1.log(`New session: ${this._currentSessionToken}, format: ${this._format}`), this._adapters[e] = this._createRecordingAdapter(), o0.createSession(e, this._format) } - - function CJ(e) { - return e["features/settings"].videoSettingsVisible + _createRecordingAdapter() { + switch (Y1.debug(`[RecordingController] creating recording adapter for ${this._format} format.`), this._format) { + case "ogg": + return new $1; + case "flac": + return new n0; + case "wav": + return new X1; + default: + throw new Error(`Unknown format: ${this._format}`) + } } - const AJ = Je("features/settings"); - class jJ extends E.Component { - constructor(e) { - super(e), this.state = { - loading: !0 - }, this._onClickDisconnect = this._onClickDisconnect.bind(this), this._onClickGoogle = this._onClickGoogle.bind(this), this._onClickMicrosoft = this._onClickMicrosoft.bind(this) + }; class f0 extends x.Component { + constructor(e) { + super(e), this.state = { + durationString: "" } - componentDidMount() { - this.props.dispatch(((e, t) => { - const n = t(); - if (!w$(n)) return Promise.reject(); - const { - googleApiApplicationClientID: a - } = n["features/base/config"], { - integrationReady: r, - integrationType: i - } = n["features/calendar-sync"]; - return Promise.resolve().then((() => { - if (a) return e(BK()) - })).then((() => { - if (!i || r) return; - const t = E$(i); - if (t) return e(t._isSignedIn()).then((t => { - t ? (e(T$(i)), e(O$(i))) : e(A$()) - })); - e(A$()) + } + componentDidMount() { + this._timer = setInterval((() => { + this.setState(((e, t) => { + const n = new Date; + return { + durationString: this._getDuration(n, t.recordingEngagedAt) + } + })); + try { + this.props.dispatch((e = m0.getParticipantsStats(), { + type: W1, + stats: e })) - })).catch((e => AJ.error("CalendarTab bootstrap failed", e))).then((() => this.setState({ - loading: !1 - }))) - } - render() { - let e; - return e = this.state.loading ? this._renderLoadingState() : this.props._isConnectedToCalendar ? this._renderSignOutState() : this._renderSignInState(), x().createElement("div", { - className: "calendar-tab" - }, e) - } - _attemptSignIn(e) { - var t; - this.props.dispatch((t = e, e => { - const n = E$(t); - return n ? e(n.load()).then((() => e(n.signIn()))).then((() => e(T$(t)))).then((() => e(O$(t)))).then((() => e(x$()))).then((() => Ma(function(e = {}) { - return { - action: "calendar.connected", - actionSubject: "calendar.connected", - attributes: e - } - }()))).catch((e => (c$.error("Error occurred while signing into calendar integration", e), Promise.reject(e)))) : Promise.reject("No supported integration found") - })) - } - _onClickDisconnect() { - this.props.dispatch(A$()) - } - _onClickGoogle() { - this._attemptSignIn(n$) - } - _onClickMicrosoft() { - this._attemptSignIn(a$) - } - _renderLoadingState() { - return x().createElement(Py, { - isCompleting: !1, - size: "medium" - }) - } - _renderSignInState() { - const { - _appName: e, - _enableGoogleIntegration: t, - _enableMicrosoftIntegration: n, - t: a - } = this.props; - return x().createElement("div", null, x().createElement("p", null, a("settings.calendar.about", { - appName: e || "" - })), t && x().createElement("div", { - className: "calendar-tab-sign-in" - }, x().createElement(YK, { - onClick: this._onClickGoogle, - text: a("liveStreaming.signIn") - })), n && x().createElement("div", { - className: "calendar-tab-sign-in" - }, x().createElement(B$, { - onClick: this._onClickMicrosoft, - text: a("settings.calendar.microsoftSignIn") - }))) - } - _renderSignOutState() { - const { - _profileEmail: e, - t - } = this.props; - return x().createElement("div", null, x().createElement("div", { - className: "sign-out-cta" - }, t("settings.calendar.signedIn", { - email: e - })), x().createElement(nS, { - appearance: "primary", - id: "calendar_logout", - onClick: this._onClickDisconnect, - type: "button" - }, t("settings.calendar.disconnect"))) - } + } catch (e) {} + var e + }), 1e3) } - const PJ = Li(ze((function(e) { - const t = e["features/calendar-sync"] || {}, - { - googleApiApplicationClientID: n, - microsoftApiApplicationClientID: a - } = e["features/base/config"], - r = w$(e); - return { - _appName: interfaceConfig.APP_NAME, - _enableGoogleIntegration: Boolean(r && n), - _enableMicrosoftIntegration: Boolean(r && a), - _isConnectedToCalendar: t.integrationReady, - _profileEmail: t.profileEmail - } - }))(jJ)), - DJ = "SET_FILMSTRIP_ENABLED", - TJ = "SET_FILMSTRIP_VISIBLE", - OJ = "SET_TILE_VIEW_DIMENSIONS", - MJ = "SET_HORIZONTAL_VIEW_DIMENSIONS", - IJ = "SET_REMOTE_PARTICIPANTS", - NJ = "SET_VERTICAL_VIEW_DIMENSIONS", - zJ = "SET_VOLUME", - RJ = "SET_VISIBLE_REMOTE_PARTICIPANTS"; - - function LJ(e, t) { - var n; - const a = e.getState(), - { - testing: r = {} - } = a["features/base/config"]; - let i = []; - if (null !== (n = r.enableThumbnailReordering) && void 0 !== n && !n) { - if (t) { - const { - remoteParticipants: n - } = a["features/filmstrip"]; - i = [...n, t], e.dispatch(HJ(i)) - } - return - } + componentWillUnmount() { + this._timer && (clearInterval(this._timer), this._timer = null) + } + render() { + const { + isModerator: e, + t + } = this.props; + return C().createElement(yL, { + cancelKey: "dialog.close", + submitDisabled: !0, + titleKey: "localRecording.dialogTitle" + }, C().createElement("div", { + className: "localrec-control" + }, C().createElement("span", { + className: "localrec-control-info-label" + }, `${t("localRecording.moderator")}:`), C().createElement("span", { + className: "info-value" + }, t(e ? "localRecording.yes" : "localRecording.no"))), this._renderModeratorControls(), this._renderDurationAndFormat()) + } + _renderDurationAndFormat() { + const { + encodingFormat: e, + isEngaged: t, + t: n + } = this.props, { + durationString: a + } = this.state; + return t ? C().createElement("div", null, C().createElement("div", null, C().createElement("span", { + className: "localrec-control-info-label" + }, `${n("localRecording.duration")}:`), C().createElement("span", { + className: "info-value" + }, "" === a ? n("localRecording.durationNA") : a)), C().createElement("div", null, C().createElement("span", { + className: "localrec-control-info-label" + }, `${n("localRecording.encoding")}:`), C().createElement("span", { + className: "info-value" + }, e))) : null + } + _renderStats() { const { - fakeParticipants: o, - sortedRemoteParticipants: s, - sortedRemoteScreenshares: l, - speakersList: c - } = a["features/base/participants"], u = new Map(s), d = new Map(l), p = o ? Array.from(o.keys()) : [], h = new Map(c); - for (const e of d.keys()) u.delete(e), h.delete(e); - for (const e of p) u.delete(e), h.delete(e); - for (const e of h.keys()) u.delete(e); - i = [...Array.from(d.keys()), ...p, ...Array.from(h.keys()), ...Array.from(u.keys())], e.dispatch(HJ(i)) + stats: e + } = this.props; + if (void 0 === e) return null; + const t = Object.keys(e); + return C().createElement("div", { + className: "localrec-participant-stats" + }, this._renderStatsHeader(), t.map(((e, t) => this._renderStatsLine(t, e)))) + } + _renderStatsLine(e, t) { + const { + stats: n + } = this.props; + let a = "localrec-participant-stats-item__status-dot "; + return a += n[t].recordingStats ? n[t].recordingStats.isRecording ? "status-on" : "status-off" : "status-unknown", C().createElement("div", { + className: "localrec-participant-stats-item", + key: e + }, C().createElement("div", { + className: "localrec-participant-stats-item__status" + }, C().createElement("span", { + className: a + })), C().createElement("div", { + className: "localrec-participant-stats-item__name" + }, n[t].displayName || t), C().createElement("div", { + className: "localrec-participant-stats-item__sessionid" + }, n[t].recordingStats.currentSessionToken)) + } + _renderStatsHeader() { + const { + t: e + } = this.props; + return C().createElement("div", { + className: "localrec-participant-stats-item" + }, C().createElement("div", { + className: "localrec-participant-stats-item__status" + }), C().createElement("div", { + className: "localrec-participant-stats-item__name" + }, e("localRecording.participant")), C().createElement("div", { + className: "localrec-participant-stats-item__sessionid" + }, e("localRecording.sessionToken"))) + } + _renderModeratorControls() { + const { + isModerator: e, + isEngaged: t, + t: n + } = this.props; + return e ? C().createElement("div", null, C().createElement("div", { + className: "localrec-control-action-links" + }, C().createElement("div", { + className: "localrec-control-action-link" + }, t ? C().createElement("a", { + onClick: this._onStop, + role: "button", + tabIndex: 0 + }, n("localRecording.stop")) : C().createElement("a", { + onClick: this._onStart, + role: "button", + tabIndex: 0 + }, n("localRecording.start")))), C().createElement("div", null, C().createElement("span", { + className: "localrec-control-info-label" + }, `${n("localRecording.participantStats")}:`)), this._renderStats()) : null } - - function FJ(e) { - return qe(e)["features/filmstrip"].visible + _getDuration(e, t) { + return null == t ? "" : gr()(e - t).utc().format("HH:mm:ss") } - - function qJ(e, t) { - var n; - const a = qe(e), - r = a["features/base/tracks"], - i = t ? Fh(a, t) : Rh(a), - o = null === (n = null == i ? void 0 : i.local) || void 0 === n || n, - { - connectionStatus: s - } = i || {}, - l = o ? Ko(r) : Qo(r, to, t), - c = Boolean(a["features/base/audio-only"].enabled); - let u = !1; - if (o) { - const e = ts(r, to); - u = Boolean(l) && !e && !c - } else if (!(null == i ? void 0 : i.isFakeParticipant)) { - const e = as(r, to, t); - u = Boolean(l) && !e && !c && s === St.ACTIVE - } - return u + _onStart() { + m0.startRecording() } - - function BJ(e) { + _onStop() { + m0.stopRecording() + } + } + const g0 = Ei(Ne((function(e) { + const { + encodingFormat: t, + isEngaged: n, + recordingEngagedAt: a, + stats: r + } = e["features/local-recording"]; + return { + encodingFormat: t, + isModerator: Uh(e).role === Rh, + isEngaged: n, + recordingEngagedAt: a, + stats: r + } + }))(f0)); + + function b0(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const y0 = Ei(Ne()(class extends bC { + constructor() { + super(...arguments), b0(this, "accessibilityLabel", "toolbar.accessibilityLabel.localRecording"), b0(this, "icon", mu), b0(this, "label", "localRecording.dialogTitle"), b0(this, "tooltip", "localRecording.dialogTitle") + } + _handleClick() { const { - isAudioOnly: t, - isCurrentlyOnLargeVideo: n, - isScreenSharing: a, - canPlayEventReceived: r, - isHovered: i, - isRemoteParticipant: o, - tileViewActive: s - } = e, l = e.isVideoPlayable && (!o || r); - return !s && a && o ? i ? 4 : 1 : n && !s ? l && !t ? 2 : 4 : l && !t ? i ? kk : vk : i ? 4 : 1 - } - - function UJ(e) { - return { - type: TJ, - visible: e - } + dispatch: e, + handleClick: t + } = this.props; + t ? t() : (Da(ln("local.recording")), e(VI(g0))) + } + })); class v0 extends x.Component { + render() { + return !this.props._isEngaged || this.props._iAmRecorder ? null : C().createElement(hC, { + content: this.props.t("localRecording.labelToolTip"), + position: "bottom" + }, C().createElement(uG, { + className: "local-rec", + text: this.props.t("localRecording.label") + })) } - - function HJ(e) { - return { - type: IJ, - participants: e + } + const k0 = Ei(Ne((function(e) { + const { + isEngaged: t + } = e["features/local-recording"], { + iAmRecorder: n + } = e["features/base/config"]; + return { + _isEngaged: t, + _iAmRecorder: n + } + }))(v0)), _0 = "PARTICIPANTS_PANE_CLOSE", w0 = "PARTICIPANTS_PANE_OPEN", S0 = "SET_VOLUME", E0 = () => ({ + type: _0 + }), x0 = xw((e => ({ + button: { + alignItems: "center", + backgroundColor: e.palette.action02, + border: 0, + borderRadius: `${e.shape.borderRadius}px`, + display: "flex", + justifyContent: "center", + minHeight: "40px", + padding: `${e.spacing(2)}px ${e.spacing(3)}px`, + ...e.typography.labelButton, + lineHeight: `${e.typography.labelButton.lineHeight}px`, + "&:hover": { + backgroundColor: e.palette.action02Hover + }, + [`@media (max-width: ${HH.qY})`]: { + ...e.typography.labelButtonLarge, + lineHeight: `${e.typography.labelButtonLarge.lineHeight}px`, + minWidth: "48px", + minHeight: "48px" + } + }, + buttonPrimary: { + backgroundColor: e.palette.action01, + "&:hover": { + backgroundColor: e.palette.action01Hover + } + } + }))), C0 = e => { + let { + accessibilityLabel: t, + className: n, + children: a, + id: r, + onClick: i, + primary: o = !1 + } = e; + const s = x0(); + return C().createElement("button", { + "aria-label": t, + className: `${s.button} ${o?s.buttonPrimary:""} ${null!=n?n:""}`, + id: r, + onClick: i + }, a) + }, A0 = xw((e => ({ + button: { + width: "100%", + "& > *:not(:last-child)": { + marginRight: `${e.spacing(2)}px` } } - - function VJ(e, t) { - return { - type: RJ, - startIndex: e, - endIndex: t - } + }))), T0 = () => { + const e = Ae(), + { + t + } = pr(), + n = A0(), + a = (0, x.useCallback)((() => { + Da(ln("invite")), e(WY()) + }), [e]); + return C().createElement(C0, { + accessibilityLabel: t("participantsPane.actions.invite"), + className: n.button, + onClick: a, + primary: !0 + }, C().createElement(lo, { + size: 20, + src: Rl + }), C().createElement("span", null, t("participantsPane.actions.invite"))) + }, D0 = "KNOCKING_PARTICIPANT_ARRIVED_OR_UPDATED", P0 = "KNOCKING_PARTICIPANT_LEFT", j0 = "SET_LOBBY_MODE_ENABLED", M0 = "SET_KNOCKING_STATE", I0 = "TOGGLE_LOBBY_VISIBILITY", O0 = "SET_PASSWORD_JOIN_FAILED"; + + function N0(e) { + return { + participant: e, + type: D0 } + } - function WJ(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - YJ(e, t, n[t]) - })) - } - return e + function R0(e, t) { + return async (n, a) => { + const r = vF(a); + r && (t ? r.lobbyApproveAccess(e) : r.lobbyDenyAccess(e)) } + } - function YJ(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function z0(e) { + return (t, n) => { + const a = vF(n); + a && a.lobbyApproveAccess(e) } + } - function GJ(e) { - return (t, n) => { - const a = n(), - { - clientHeight: r, - clientWidth: i - } = a["features/base/responsive-ui"], - { - disableResponsiveTiles: o - } = a["features/base/config"], - { - height: s, - width: l - } = function({ - columns: e, - minVisibleRows: t, - rows: n, - clientWidth: a, - clientHeight: r, - disableResponsiveTiles: i - }) { - let o = 1.7777777777777777; - !i && a < bk && (o = 1); - const s = a - 4 * e, - l = (r - 4 * t) / t, - c = s / e / o, - u = r / n - 4, - d = (s - 7) / e; - let p = Math.floor(Math.min(c, l)), - h = Math.floor(o * p); - if (p > u && h > d) { - const e = d / o; - p = Math.floor(Math.max(Math.min(e, l), u)), h = Math.floor(o * p) - } - return { - height: p, - width: h - } - }(WJ({}, e, { - clientWidth: i, - clientHeight: r, - disableResponsiveTiles: o - })), - { - columns: c, - rows: u - } = e, - d = u * (4 + s), - p = c * (4 + l) + (r < d ? 7 : 0), - h = Math.min(r, d); - t({ - type: OJ, - dimensions: { - gridDimensions: e, - thumbnailSize: { - height: s, - width: l - }, - filmstripHeight: h, - filmstripWidth: p - } - }) - } + function L0(e) { + return (t, n) => { + const a = vF(n); + a && a.lobbyDenyAccess(e) } + } - function KJ() { - return (e, t) => { - var n, a; - const r = t(), - { - clientHeight: i = 0, - clientWidth: o = 0 - } = r["features/base/responsive-ui"], - s = function(e = 0) { - const t = Math.min(Math.max(e - 25, 0), interfaceConfig.FILM_STRIP_MAX_HEIGHT || 120); - return { - local: { - height: Math.floor(t / interfaceConfig.LOCAL_THUMBNAIL_RATIO), - width: t - }, - remote: { - height: Math.floor(t / interfaceConfig.REMOTE_THUMBNAIL_RATIO), - width: t - } - } - }(o); - e({ - type: NJ, - dimensions: WJ({}, s, { - remoteVideosContainer: { - width: (null == s || null === (n = s.local) || void 0 === n ? void 0 : n.width) + 4 + 4 + 7, - height: i - (null == s || null === (a = s.local) || void 0 === a ? void 0 : a.height) - 60 - } - }) - }) - } + function F0(e) { + return { + failed: e, + type: O0 } + } - function $J() { - return (e, t) => { - var n, a; - const r = t(), - { - clientHeight: i = 0, - clientWidth: o = 0 - } = r["features/base/responsive-ui"], - s = function(e = 0) { - const t = Math.min(e, (interfaceConfig.FILM_STRIP_MAX_HEIGHT || 120) + 15) - 15; - return { - local: { - height: t, - width: Math.floor(interfaceConfig.LOCAL_THUMBNAIL_RATIO * t) - }, - remote: { - height: t, - width: Math.floor(interfaceConfig.REMOTE_THUMBNAIL_RATIO * t) - } - } - }(i); - e({ - type: MJ, - dimensions: WJ({}, s, { - remoteVideosContainer: { - width: o - (null == s || null === (n = s.local) || void 0 === n ? void 0 : n.width) - 39, - height: (null == s || null === (a = s.local) || void 0 === a ? void 0 : a.height) + 4 + 4 + 7 - } - }) - }) - } + function q0() { + return async (e, t) => { + const n = t(), + { + membersOnly: a + } = n["features/base/conference"], + r = Uh(n); + e(fq(a)), xF(n, a), a.joinLobby(r.name, r.email), e({ + knocking: !0, + type: M0 + }) } + } - function JJ(e, t) { - return { - type: zJ, - participantId: e, - volume: t - } + function B0(e) { + return async (t, n) => { + const a = vF(n); + e ? a.enableLobby() : a.disableLobby() } - const ZJ = "OPEN_KEYBOARD_SHORTCUTS_DIALOG"; + } - function QJ(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function U0() { + return { + type: I0, + visible: !1 } - const XJ = Li(ze()(class extends Vw { - constructor(...e) { - super(...e), QJ(this, "accessibilityLabel", "toolbar.accessibilityLabel.shortcuts"), QJ(this, "icon", fc), QJ(this, "label", "toolbar.shortcuts"), QJ(this, "tooltip", "toolbar.shortcuts") - } - _handleClick() { - const { - dispatch: e, - handleClick: t - } = this.props; - t ? t() : (Ma(hn("shortcuts")), e({ - type: ZJ - })) - } - })); + } + + function H0(e, t) { + const n = Ae(); + return [(0, x.useCallback)((a => { + a.stopPropagation(), n(z0(e && e.participantID)), t && t() + }), [n, t]), (0, x.useCallback)((() => { + n(L0(e && e.participantID)), t && t() + }), [n, t])] + } - function eZ(e, t) { - var n = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var a = Object.getOwnPropertySymbols(e); - t && (a = a.filter((function(t) { - return Object.getOwnPropertyDescriptor(e, t).enumerable - }))), n.push.apply(n, a) + function V0() { + const [e, t] = (0, x.useState)(null); + return [e, (0, x.useCallback)((() => { + t(null) + })), t] + } + const W0 = BQ((e => ({ + contextMenu: { + backgroundColor: e.palette.ui02, + borderRadius: e.shape.borderRadius / 2 + "px", + boxShadow: "0px 3px 16px rgba(0, 0, 0, 0.6), 0px 0px 4px 1px rgba(0, 0, 0, 0.25)", + color: e.palette.text01, + ...e.typography.bodyShortRegular, + lineHeight: `${e.typography.bodyShortRegular.lineHeight}px`, + marginTop: `${2*HH.XP+e.typography.bodyShortRegular.fontSize}px`, + position: "absolute", + right: `${HH.XP}px`, + top: 0, + zIndex: 2 + }, + contextMenuHidden: { + pointerEvents: "none", + visibility: "hidden" + }, + drawer: { + "& > div": { + ...e.typography.bodyShortRegularLarge, + lineHeight: `${e.typography.bodyShortRegularLarge.lineHeight}px`, + "& svg": { + fill: e.palette.icon01 + } + }, + "& > *:first-child": { + paddingTop: "15px!important" } - return n } + }))), Y0 = e => { + let { + children: t, + className: n, + entity: a, + hidden: r, + isDrawerOpen: i, + offsetTarget: o, + onClick: s, + onDrawerClose: l, + onMouseEnter: c, + onMouseLeave: u + } = e; + const [d, p] = (0, x.useState)(!0), h = (0, x.useRef)(null), m = W0(), f = Pe(vI); + return (0, x.useLayoutEffect)((() => { + if (!f) + if (a && o && h.current && null != o && o.offsetParent && o.offsetParent instanceof HTMLElement) { + const { + current: e + } = h, { + offsetTop: t, + offsetParent: { + offsetHeight: n, + scrollTop: a + } + } = o, r = (e => { + const t = getComputedStyle(e); + return e.offsetHeight + Im(t, "margin-top") + Im(t, "margin-bottom") + })(e); + e.style.top = t + r > n + a ? "" + (t - r) : `${t}`, p(!1) + } else p(!0) + }), [a, o, f]), (0, x.useEffect)((() => { + void 0 !== r && p(r) + }), [r]), f ? C().createElement(n9, null, C().createElement(e9, { + isOpen: i && f, + onClose: l + }, C().createElement("div", { + className: m.drawer, + onClick: l + }, t))) : C().createElement("div", { + className: iV(HH.m8, m.contextMenu, d && m.contextMenuHidden, n), + onClick: s, + onMouseEnter: c, + onMouseLeave: u, + ref: h + }, t) + }, G0 = BQ((e => ({ + contextMenuItemGroup: { + "&:not(:empty)": { + padding: `${e.spacing(2)}px 0` + }, + "& + &:not(:empty)": { + borderTop: `1px solid ${e.palette.ui04}` + } + }, + contextMenuItem: { + alignItems: "center", + cursor: "pointer", + display: "flex", + minHeight: "40px", + padding: "10px 16px", + boxSizing: "border-box", + "& > *:not(:last-child)": { + marginRight: `${e.spacing(3)}px` + }, + "&:hover": { + backgroundColor: e.palette.ui04 + } + }, + contextMenuItemDrawer: { + padding: "12px 16px" + }, + contextMenuItemIcon: { + "& svg": { + fill: e.palette.icon01 + } + } + }))), K0 = e => { + let { + actions: t, + children: n + } = e; + const a = G0(), + r = Pe(vI); + return C().createElement("div", { + className: a.contextMenuItemGroup + }, n, t && t.map((e => { + let { + accessibilityLabel: t, + className: n, + customIcon: i, + id: o, + icon: s, + onClick: l, + text: c + } = e; + return C().createElement("div", { + "aria-label": t, + className: iV(a.contextMenuItem, r && a.contextMenuItemDrawer, n), + id: o, + key: c, + onClick: l + }, i || s && C().createElement(lo, { + className: a.contextMenuItemIcon, + size: 20, + src: s + }), C().createElement("span", null, c)) + }))) + }; - function tZ(e) { + function $0() { + return $0 = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? eZ(Object(n), !0).forEach((function(t) { - Zf(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : eZ(Object(n)).forEach((function(t) { - Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) - })) + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e - } - var nZ = { - default: { - light: mb.N40, - dark: mb.N40 - }, - inprogress: { - light: mb.B50, - dark: mb.B50 - }, - moved: { - light: mb.Y75, - dark: mb.Y75 - }, - new: { - light: mb.P50, - dark: mb.P50 - }, - removed: { - light: mb.R50, - dark: mb.R50 + }, $0.apply(this, arguments) + } + const J0 = xw((e => ({ + container: { + alignItems: "center", + color: e.palette.text01, + display: "flex", + ...e.typography.bodyShortRegular, + lineHeight: `${e.typography.bodyShortRegular.lineHeight}px`, + margin: `0 -${HH.XP}px`, + padding: `0 ${HH.XP}px`, + position: "relative", + boxShadow: "inset 0px -1px 0px rgba(255, 255, 255, 0.15)", + minHeight: "40px", + "&:hover": { + backgroundColor: e.palette.action02Active, + "& .indicators": { + display: "none" }, - success: { - light: mb.G50, - dark: mb.G50 + "& .actions": { + display: "flex", + boxShadow: `-15px 0px 10px -5px ${e.palette.action02Active}`, + backgroundColor: e.palette.action02Active } }, - aZ = { - default: { - light: mb.N500, - dark: mb.N500 - }, - inprogress: { - light: mb.B500, - dark: mb.B500 - }, - moved: { - light: mb.N800, - dark: mb.N800 - }, - new: { - light: mb.P500, - dark: mb.P500 - }, - removed: { - light: mb.R500, - dark: mb.R500 - }, - success: { - light: mb.G500, - dark: mb.G500 - } + [`@media(max-width: ${HH.qY})`]: { + ...e.typography.bodyShortRegularLarge, + lineHeight: `${e.typography.bodyShortRegularLarge.lineHeight}px`, + padding: `${e.spacing(2)}px ${HH.XP}px` + } + }, + highlighted: { + backgroundColor: e.palette.action02Active + }, + detailsContainer: { + display: "flex", + alignItems: "center", + flex: 1, + height: "100%", + overflow: "hidden", + position: "relative" + }, + name: { + display: "flex", + flex: 1, + marginRight: `${e.spacing(2)}px`, + overflow: "hidden", + flexDirection: "column", + justifyContent: "flex-start" + }, + indicators: { + display: "flex", + justifyContent: "flex-end", + "& > *": { + alignItems: "center", + display: "flex", + justifyContent: "center" }, - rZ = { - default: { - light: mb.N500, - dark: mb.N500 - }, - inprogress: { - light: mb.B400, - dark: mb.B400 - }, - moved: { - light: mb.Y500, - dark: mb.Y500 - }, - new: { - light: mb.P400, - dark: mb.P400 - }, - removed: { - light: mb.R400, - dark: mb.R400 - }, - success: { - light: mb.G400, - dark: mb.G400 - } + "& > *:not(:last-child)": { + marginRight: `${e.spacing(2)}px` }, - iZ = { - default: { - light: mb.N0, - dark: mb.N0 - }, - inprogress: { - light: mb.N0, - dark: mb.N0 - }, - moved: { - light: mb.N800, - dark: mb.N800 - }, - new: { - light: mb.N0, - dark: mb.N0 - }, - removed: { - light: mb.N0, - dark: mb.N0 - }, - success: { - light: mb.N0, - dark: mb.N0 - } - }, - oZ = qg((function(e) { - var t = e.appearance, - n = e.isBold, - a = e.maxWidth; - return tZ(tZ({}, "object" === nb(t) ? tZ({ - backgroundColor: (n ? rZ : nZ).default.light, - textColor: (n ? iZ : aZ).default.light - }, t) : { - backgroundColor: (n ? rZ[t] : nZ[t]).light, - textColor: (n ? iZ[t] : aZ[t]).light - }), {}, { - maxWidth: a - }) - })), - sZ = n(554), - lZ = function() { - var e; - return "node" === (null === (e = null == sZ ? void 0 : sZ.release) || void 0 === e ? void 0 : e.name) + "& .jitsi-icon": { + padding: "3px" + } + }, + indicatorsHidden: { + display: "none" + }, + actionsContainer: { + display: "none", + boxShadow: `-15px 0px 10px -5px ${e.palette.action02Active}`, + backgroundColor: e.palette.action02Active + }, + actionsPermanent: { + display: "flex", + boxShadow: `-15px 0px 10px -5px ${e.palette.ui01}`, + backgroundColor: e.palette.ui01 + }, + actionsVisible: { + display: "flex", + boxShadow: `-15px 0px 10px -5px ${e.palette.action02Active}`, + backgroundColor: e.palette.action02Active + } + }))), Z0 = e => { + let { + actions: t, + className: n, + icon: a, + id: r, + hideActions: i = !1, + indicators: o, + isHighlighted: s, + onClick: l, + onLongPress: c, + onMouseLeave: u, + testId: d, + textChildren: p, + trigger: h + } = e; + const m = J0(), + f = va(); + let g; + return C().createElement("div", $0({ + className: iV("list-item-container", m.container, s && m.highlighted, n), + "data-testid": d, + id: r, + onClick: l + }, f ? { + onTouchEnd: function() { + clearTimeout(g) }, - cZ = lZ() ? (0, E.createContext)(null) : {}; - if (!lZ()) - for (var uZ = document.querySelectorAll("style[data-cmpld]"), dZ = 0; dZ < uZ.length; dZ++) document.head.appendChild(uZ[dZ]); - var pZ = function() { - return lZ() ? (0, E.useContext)(cZ) || {} : cZ - }; - const hZ = function(e) { - if (lZ()) { - var t = pZ(); - return E.createElement(cZ.Provider, { - value: t - }, e.children) - } - return e.children - }; - var mZ = ["", "l", "v", "w", "f", "i", "h", "a", "m"], - fZ = {}, - gZ = { - k: "l", - ited: "v", - "us-within": "w", - us: "f", - "us-visible": "i", - er: "h", - ive: "a" - }, - bZ = function(e) { - return 64 === e.charCodeAt(0) ? "m" : 58 === e.charCodeAt(10) && gZ[e.slice(14, e.indexOf("{"))] || "" - }; - - function yZ(e, t) { - var n = function(e, t) { - if (!fZ[e]) { - for (var n = mZ.indexOf(e) + 1, a = null; n < mZ.length; n++) { - var r = fZ[mZ[n]]; - if (r) { - a = r; - break - } + onTouchMove: function() { + clearTimeout(g) + }, + onTouchStart: function(e) { + const t = e.touches[0].target; + g = setTimeout((() => c(t)), 600) + } + } : { + onMouseLeave: u + }), C().createElement("div", null, " ", a, " "), C().createElement("div", { + className: m.detailsContainer + }, C().createElement("div", { + className: m.name + }, p), o && C().createElement("div", { + className: iV("indicators", m.indicators, (s || h === Em.PERMANENT) && m.indicatorsHidden) + }, o), !i && C().createElement("div", { + className: iV("actions", m.actionsContainer, h === Em.PERMANENT && m.actionsPermanent, s && m.actionsVisible) + }, t))) + }, Q0 = xw((e => ({ + button: { + backgroundColor: e.palette.action01, + color: e.palette.text01, + borderRadius: `${e.shape.borderRadius}px`, + ...e.typography.labelBold, + lineHeight: `${e.typography.labelBold.lineHeight}px`, + padding: "8px 12px", + display: "flex", + justifyContent: "center", + alignItems: "center", + border: 0, + "&:hover": { + backgroundColor: e.palette.action01Hover + } + } + }))), X0 = e => { + let { + accessibilityLabel: t, + className: n, + children: a, + onClick: r, + testId: i + } = e; + const o = Q0(); + return C().createElement("button", { + "aria-label": t, + className: `${o.button} ${n}`, + "data-testid": i, + onClick: r + }, a) + }, e2 = xw((e => ({ + secondary: { + backgroundColor: e.palette.ui04 + } + }))), t2 = e => { + let { + accessibilityLabel: t, + children: n, + className: a, + onClick: r, + secondary: i = !1, + testId: o + } = e; + const s = e2(); + return C().createElement(X0, { + accessibilityLabel: t, + className: `${i?s.secondary:""} ${null!=a?a:""}`, + onClick: r, + testId: o + }, n) + }, n2 = xw((e => ({ + indicator: { + backgroundColor: e.palette.warning02, + borderRadius: e.shape.borderRadius / 2 + "px", + height: "24px", + width: "24px" + } + }))), a2 = () => { + const e = n2(); + return C().createElement("div", { + className: e.indicator + }, C().createElement(lo, { + size: 15, + src: du + })) + }, r2 = xw((e => ({ + nameContainer: { + display: "flex", + flex: 1, + overflow: "hidden" + }, + name: { + overflow: "hidden", + textOverflow: "ellipsis", + whiteSpace: "nowrap" + }, + moderatorLabel: { + ...e.typography.labelRegular, + lineHeight: `${e.typography.labelRegular.lineHeight}px`, + color: e.palette.text03 + } + }))), i2 = Ei((function(e) { + let { + actionsTrigger: t = Em.HOVER, + audioMediaState: n = xm.NONE, + children: a, + disableModeratorIndicator: r, + displayName: i, + isHighlighted: o, + isModerator: s, + local: l, + onLeave: c, + openDrawerForParticipant: u, + overflowDrawer: d, + participantID: p, + raisedHand: h, + t: m, + videoMediaState: f = xm.NONE, + youText: g + } = e; + const b = (0, x.useCallback)((() => u && u({ + participantID: p, + displayName: i + }))), + y = r2(), + v = C().createElement(sp, { + className: "participant-avatar", + displayName: i, + participantId: p, + size: 32 + }), + k = C().createElement(C().Fragment, null, C().createElement("div", { + className: y.nameContainer + }, C().createElement("div", { + className: y.name + }, i), l ? C().createElement("span", null, " (", g, ")") : null), s && !r && C().createElement("div", { + className: y.moderatorLabel + }, m("videothumbnail.moderator"))), + _ = C().createElement(C().Fragment, null, h && C().createElement(a2, null), Dm[f], Tm[n]); + return C().createElement(Z0, { + actions: a, + hideActions: l, + icon: v, + id: `participant-item-${p}`, + indicators: _, + isHighlighted: o, + onClick: !l && d ? b : void 0, + onMouseLeave: c, + textChildren: k, + trigger: t + }) + })), o2 = xw((e => ({ + button: { + marginRight: `${e.spacing(2)}px` + } + }))), s2 = e => { + let { + overflowDrawer: t, + participant: n, + openDrawerForParticipant: a + } = e; + const { + id: r + } = n, [i, o] = H0({ + participantID: r + }), { + t: s + } = pr(), l = o2(); + return C().createElement(i2, { + actionsTrigger: Em.PERMANENT, + audioMediaState: xm.NONE, + displayName: n.name, + local: n.local, + openDrawerForParticipant: a, + overflowDrawer: t, + participantID: r, + raisedHand: am(n), + videoMediaState: xm.NONE, + youText: s("chat.you") + }, C().createElement(t2, { + accessibilityLabel: `${s("lobby.reject")} ${n.name}`, + className: l.button, + onClick: o, + secondary: !0, + testId: `reject-${r}` + }, s("lobby.reject")), C().createElement(t2, { + accessibilityLabel: `${s("lobby.admit")} ${n.name}`, + onClick: i, + testId: `admit-${r}` + }, s("lobby.admit"))) + }, l2 = "_RESET_BREAKOUT_ROOMS", c2 = "_UPDATE_ROOM_COUNTER", u2 = "UPDATE_BREAKOUT_ROOMS", d2 = $e(ym); + + function p2(e, t) { + return (n, a) => { + var r, i; + const o = vm(a)[t]; + if (!o) return void d2.warn(`Invalid room: ${t}`); + const s = function(e, t) { + const n = vF(e); + if (!n) return; + let a, r = t; + if (!t.includes("@")) { + const e = n.getParticipantById(t); + r = null == e ? void 0 : e.getJid() + } + if (r) { + const t = vm(e); + for (const e of Object.values(t)) { + const t = e.participants || {}, + n = t[r] || Object.values(t).find((e => e.jid === r)); + if (n) { + a = n.jid; + break } - var i = document.createElement("style"); - t.nonce && i.setAttribute("nonce", t.nonce), i.appendChild(document.createTextNode("")), fZ[e] = i, document.head.insertBefore(i, a) - } - return fZ[e] - }(bZ(e), t), - a = n.sheet; - a.insertRule(e, a.cssRules.length) - } - const vZ = (0, E.memo)((function(e) { - var t = pZ(); - if (e.children.length) { - if (lZ()) { - for (var n = {}, a = !1, r = 0; r < e.children.length; r++) - if (!t[o = e.children[r]]) { - t[o] = !0, a = !0; - var i = bZ(o); - n[i] = (n[i] || "") + o - } return a ? x().createElement("style", { - "data-cmpld": !0, - nonce: e.nonce - }, mZ.map((function(e) { - return n[e] - })).join("")) : null - } - for (r = 0; r < e.children.length; r++) { - var o; - t[o = e.children[r]] || (t[o] = !0, yZ(o, e)) + } } - } - return null - }), (function() { - return !0 - })); + return a + }(a, e); + s ? null === (r = vF(a)) || void 0 === r || null === (i = r.getBreakoutRooms()) || void 0 === i || i.sendParticipantToRoom(s, o.jid) : d2.warn(`Could not find participant ${e}`) + } + } - function kZ(e) { - if (e.length <= 1) return e[0] || void 0; - for (var t = {}, n = 0; n < e.length; n++) { - var a = e[n]; - if (a) - for (var r = a.split(" "), i = 0; i < r.length; i++) { - var o = r[i]; - t[o.slice(0, 95 === o.charCodeAt(0) ? 5 : void 0)] = o - } - } - var s = ""; - for (var l in t) s += t[l] + " "; - return s.slice(0, -1) - } - - function _Z(e, t, n) { - return null != e ? t ? n ? n + e + t : e + t : e : "var(--, )" - } - var wZ = "".concat(3, "px"); - const SZ = function(e) { - var t = e.backgroundColor, - n = e.textColor, - a = e.children, - r = e.testId; - return x().createElement(hZ, null, x().createElement(vZ, null, ["._bfhkaxbu{background-color:var(--_1ly4823)}", "._2rko1nwa{border-radius:var(--_fer9fa)}", "._vchhusvi{box-sizing:border-box}", "._syaz1u00{color:var(--_srel9g)}", "._1e0c1o8l{display:inline-block}", "._1wyb1skh{font-size:11px}", "._k48p1fw0{font-weight:700}", "._vwz4kb7n{line-height:1}", "._p12f1osq{max-width:100%}", "._ca0qyh40{padding-top:2px}", "._u5f3idpf{padding-right:0}", "._n3td1l7b{padding-bottom:3px}", "._19bvidpf{padding-left:0}", "._1p1dangw{text-transform:uppercase}", "._s7n41q9y{vertical-align:baseline}"]), x().createElement("span", { - "data-testid": r, - className: kZ(["_bfhkaxbu _2rko1nwa _vchhusvi _syaz1u00 _1e0c1o8l _1wyb1skh _k48p1fw0 _vwz4kb7n _p12f1osq _ca0qyh40 _u5f3idpf _n3td1l7b _19bvidpf _1p1dangw _s7n41q9y"]), - style: { - "--_1ly4823": _Z(t), - "--_fer9fa": _Z(wZ), - "--_srel9g": _Z(n) - } - }, a)) - }; - var EZ = "".concat(4, "px"); - const xZ = function(e) { - var t = e.maxWidth, - n = e.children; - return x().createElement(hZ, null, x().createElement(vZ, null, ["._1e0c1o8l{display:inline-block}", "._s7n4jp4b{vertical-align:top}", "._1reo15vq{overflow-x:hidden}", "._18m915vq{overflow-y:hidden}", "._1bto1l2s{text-overflow:ellipsis}", "._o5721q9c{white-space:nowrap}", "._vchhusvi{box-sizing:border-box}", "._ca0qidpf{padding-top:0}", "._u5f370xm{padding-right:var(--_1xlms2h)}", "._n3tdidpf{padding-bottom:0}", "._19bv70xm{padding-left:var(--_1xlms2h)}", "._p12fvyns{max-width:var(--_1w406pq)}", "._1bsb1osq{width:100%}"]), x().createElement("span", { - className: kZ(["_1e0c1o8l _s7n4jp4b _1reo15vq _18m915vq _1bto1l2s _o5721q9c _vchhusvi _ca0qidpf _u5f370xm _n3tdidpf _19bv70xm _p12fvyns _1bsb1osq"]), - style: { - "--_1xlms2h": _Z(EZ), - "--_1w406pq": _Z("number" == typeof t ? "".concat(t, "px") : t) - } - }, n)) - }; - var CZ = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 + function h2(e) { + return async (t, n) => { + var a, r, i; + const o = null === (a = km(n)) || void 0 === a ? void 0 : a.id; + let s = e || o; + if (-1 !== (null === (r = s) || void 0 === r ? void 0 : r.indexOf("@"))) { + const [e, ...t] = s.split("@"); + s = new String(e), s.domain = t.join("@") + } + const l = null === (i = s) || void 0 === i ? void 0 : i.toString(), + c = l === o, + u = vm(n)[l]; + if (u) { + if (t({ + type: l2 + }), "ReactNative" === navigator.product) { + const e = vF(n), + { + audio: a, + video: r + } = n()["features/base/media"]; + t(gq(e)); + try { + await e.leave() + } catch (n) { + d2.warn("JitsiConference.leave() rejected with:", n), t(uq(e)) + } + t(Qf()), t(bq(s)), t(gf(a.muted)), t(yf(r.muted)) + } else { + try { + await APP.conference.leaveRoom(!1) + } catch (e) { + d2.warn("APP.conference.leaveRoom() rejected with:", e) + } + APP.conference.joinRoom(s) } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) + t(tg(c ? { + titleKey: "breakoutRooms.notifications.joinedTitle", + descriptionKey: "breakoutRooms.notifications.joinedMainRoom", + concatText: !0, + maxLines: 2 + } : { + titleKey: "breakoutRooms.notifications.joinedTitle", + descriptionKey: "breakoutRooms.notifications.joined", + descriptionArguments: { + name: u.name + }, + concatText: !0, + maxLines: 2 + }, Yf.MEDIUM)) + } else d2.warn(`Unknown room: ${u}`) + } + } + const m2 = BQ((() => ({ + button: { + width: "100%" + } + }))), f2 = () => { + const { + t: e + } = pr(), t = Ae(), n = m2(), a = (0, x.useCallback)((() => t(((e, t) => { + var n, a; + const r = t(); + let { + roomCounter: i + } = r[ym]; + const o = Qr.t("breakoutRooms.defaultName", { + index: ++i }); - - function r() { - return Jg(this, r), a.apply(this, arguments) - } - return Qg(r, [{ - key: "render", - value: function() { - var e = this.props, - t = e.theme, - n = e.children, - a = e.testId; - return x().createElement(oZ.Provider, { - value: t - }, x().createElement(oZ.Consumer, this.props, (function(e) { - return x().createElement(SZ, z({ - testId: a - }, e), x().createElement(xZ, e, n)) - }))) + Da(dn("create")), e({ + type: c2, + roomCounter: i + }), null === (n = vF(r)) || void 0 === n || null === (a = n.getBreakoutRooms()) || void 0 === a || a.createBreakoutRoom(o) + }))), [t]); + return C().createElement(C0, { + accessibilityLabel: e("breakoutRooms.actions.add"), + className: n.button, + onClick: a + }, e("breakoutRooms.actions.add")) + }, g2 = Object.freeze(Object.create(null)), b2 = () => { + const [e, t] = (0, x.useState)(g2), n = (0, x.useRef)(!1), a = (0, x.useCallback)((function() { + let a = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; + window.queueMicrotask((() => { + n.current && !0 !== a || e !== g2 && t(g2) + })) + }), [e]), r = (0, x.useCallback)(((e, n) => { + t({ + entity: e, + offsetTarget: jm(n, "list-item-container") + }) + }), [e]), i = (0, x.useCallback)((t => n => { + n.stopPropagation(); + const { + entity: i + } = e; + i && i === t ? a() : r(t, n.target) + }), [e]), o = (0, x.useCallback)((() => { + n.current = !0 + }), []), s = (0, x.useCallback)((() => { + n.current = !1, a() + }), [a]); + return [a, r, i, o, s, e] + }, y2 = xw((e => ({ + button: { + color: e.palette.link01, + width: "100%", + backgroundColor: "transparent", + "&:hover": { + backgroundColor: "transparent" + } + } + }))), v2 = () => { + const { + t: e + } = pr(), t = Ae(), n = y2(), a = (0, x.useCallback)((() => { + t(((e, t) => { + const n = vm(t), + a = _().filter(n, (e => !e.isMainRoom)); + if (a) { + Da(dn("auto.assign")); + const n = Array.from(Jh(t).keys()), + r = Math.ceil(n.length / a.length); + _().chunk(_().shuffle(n), r).forEach(((t, n) => t.forEach((t => { + e(p2(t, a[n].id)) + })))) } - }]), r - }(E.PureComponent); - Zf(CZ, "defaultProps", { - isBold: !1, - appearance: "default", - maxWidth: 200 - }); - class AZ extends E.Component { - render() { - const e = Array.from(this.props.shortcutDescriptions).map((e => this._renderShortcutsListItem(...e))); - return x().createElement(IO, { - cancelKey: "dialog.close", - submitDisabled: !0, - titleKey: "keyboardShortcuts.keyboardShortcuts", - width: "small" - }, x().createElement("div", { - id: "keyboard-shortcuts" - }, x().createElement("ul", { - className: "shortcuts-list", - id: "keyboard-shortcuts-list" - }, e))) - } - _renderShortcutsListItem(e, t) { - var n; - let a = "Alt"; - return (null === (n = window.navigator) || void 0 === n ? void 0 : n.platform) && -1 !== window.navigator.platform.indexOf("Mac") && (a = "⌥"), x().createElement("li", { - className: "shortcuts-list__item", - key: e - }, x().createElement("span", { - "aria-label": this.props.t(t), - className: "shortcuts-list__description" - }, this.props.t(t)), x().createElement("span", { - className: "item-action" - }, x().createElement(CZ, { - isBold: !0 - }, e.startsWith(":") ? `${a} + ${e.slice(1)}` : e))) - } - } - const jZ = Li(AZ), - PZ = "INIT_SEARCH", - DZ = "INIT_UPDATE_STATS", - TZ = "UPDATE_STATS", - OZ = "INIT_REORDER_STATS"; - - function MZ(e) { - return { - type: TZ, - stats: e + })) + }), [t]); + return C().createElement(C0, { + accessibilityLabel: e("breakoutRooms.actions.autoAssign"), + className: n.button, + onClick: a + }, e("breakoutRooms.actions.autoAssign")) + }, k2 = xw((e => ({ + container: { + boxShadow: "none" + }, + roomName: { + overflow: "hidden", + textOverflow: "ellipsis", + whiteSpace: "nowrap", + ...e.typography.labelButton, + lineHeight: `${e.typography.labelButton.lineHeight}px`, + padding: "12px 0" + }, + arrowContainer: { + backgroundColor: e.palette.ui03, + width: "24px", + height: "24px", + borderRadius: "6px", + marginRight: "16px", + display: "flex", + alignItems: "center", + justifyContent: "center" + } + }))), _2 = e => { + let { + actionsTrigger: t = Em.HOVER, + children: n, + isHighlighted: a, + onRaiseMenu: r, + onLeave: i, + room: o + } = e; + const { + t: s + } = pr(), l = k2(), [c, u] = (0, x.useState)(!1), d = (0, x.useCallback)((() => { + u(!c) + }), [c]), p = (0, x.useCallback)((e => { + r(e) + }), [r]), { + defaultRemoteDisplayName: h + } = Pe((e => e["features/base/config"])), m = C().createElement("div", { + className: l.arrowContainer + }, C().createElement(lo, { + size: 14, + src: c ? yo : Eo + })), f = C().createElement("span", { + className: l.roomName + }, `${o.name||s("breakoutRooms.mainRoom")} (${Object.keys((null==o?void 0:o.participants)||{}).length})`); + return C().createElement(C().Fragment, null, C().createElement(Z0, { + actions: n, + className: iV(l.container, "breakout-room-container"), + icon: m, + isHighlighted: a, + onClick: d, + onLongPress: p, + onMouseLeave: i, + testId: o.id, + textChildren: f, + trigger: t + }), !c && (null == o ? void 0 : o.participants) && Object.values((null == o ? void 0 : o.participants) || {}).map((e => C().createElement(i2, { + displayName: e.displayName || h, + key: e.jid, + local: !1, + participantID: e.jid + })))) + }, w2 = xw((e => ({ + button: { + marginRight: `${e.spacing(2)}px` + } + }))), S2 = e => { + let { + room: t + } = e; + const n = w2(), + { + t: a + } = pr(), + r = Ae(), + i = (0, x.useCallback)((e => { + e.stopPropagation(), Da(dn("join")), r(h2(t.jid)) + }), [r, t]); + return C().createElement(X0, { + accessibilityLabel: a("breakoutRooms.actions.join"), + className: n.button, + onClick: i, + testId: `join-room-${t.id}` + }, a("breakoutRooms.actions.join")) + }, E2 = xw((e => ({ + button: { + color: e.palette.textError, + backgroundColor: "transparent", + width: "100%", + "&:hover": { + backgroundColor: "transparent" + } + } + }))), x2 = () => { + const { + t: e + } = pr(), t = Ae(), n = E2(), a = (0, x.useCallback)((() => { + Da(dn("leave")), t(h2()) + }), [t]); + return C().createElement(C0, { + accessibilityLabel: e("breakoutRooms.actions.leaveBreakoutRoom"), + className: n.button, + onClick: a + }, e("breakoutRooms.actions.leaveBreakoutRoom")) + }, C2 = xw((() => ({ + button: { + padding: "6px" + } + }))), A2 = e => { + let { + onClick: t + } = e; + const n = C2(), + { + t: a + } = pr(); + return C().createElement(X0, { + accessibilityLabel: a("breakoutRooms.actions.more"), + className: n.button, + onClick: t + }, C().createElement(lo, { + src: Pl + })) + }, T2 = e => { + let { + entity: t, + offsetTarget: n, + onEnter: a, + onLeave: r, + onSelect: i + } = e; + const o = Ae(), + { + t: s + } = pr(), + l = Pe(tm), + c = Pe(vI), + u = (0, x.useCallback)((() => { + Da(dn("join")), o(h2(t.jid)) + }), [o, t]), + d = (0, x.useCallback)((() => { + var e; + o((e = t.jid, (t, n) => { + var a, r; + Da(dn("remove")), null === (a = vF(n)) || void 0 === a || null === (r = a.getBreakoutRooms()) || void 0 === r || r.removeBreakoutRoom(e) + })) + }), [o, t]), + p = (0, x.useCallback)((() => { + var e; + o((e = t.id, (t, n) => { + const a = vm(n)[e], + r = km(n); + Da(dn("close")), a && r && Object.values(a.participants).forEach((e => { + t(p2(e.jid, r.id)) + })) + })) + }), [o, t]), + h = !(null != t && t.participants && Object.keys(t.participants).length > 0), + m = [c ? { + accessibilityLabel: s("breakoutRooms.actions.join"), + icon: Au, + onClick: u, + text: s("breakoutRooms.actions.join") + } : null, null != t && t.isMainRoom || !l ? null : { + accessibilityLabel: s(h ? "breakoutRooms.actions.remove" : "breakoutRooms.actions.close"), + icon: ds, + id: h ? `remove-room-${null==t?void 0:t.id}` : `close-room-${null==t?void 0:t.id}`, + onClick: h ? d : p, + text: s(h ? "breakoutRooms.actions.remove" : "breakoutRooms.actions.close") + }].filter(Boolean), + f = (0, x.useCallback)((() => i(!0))); + return C().createElement(Y0, { + entity: t, + isDrawerOpen: t, + offsetTarget: n, + onClick: f, + onDrawerClose: i, + onMouseEnter: a, + onMouseLeave: r + }, C().createElement(K0, { + actions: m + })) + }; + + function D2() { + return D2 = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } + return e + }, D2.apply(this, arguments) + } + const P2 = () => { + const e = Pe(_m), + t = Object.values(Pe(vm, Re)).filter((t => t.id !== e)).sort(((e, t) => ((null == e ? void 0 : e.name) || "").localeCompare((null == t ? void 0 : t.name) || ""))), + n = Pe(wm), + a = Pe(tm), + r = Pe(Yh), + i = Pe(vI), + [o, s, l, c, u, d] = b2(), + p = (0, x.useCallback)((e => t => s(e, t)), [s]); + return C().createElement(C().Fragment, null, n && C().createElement(x2, null), !n && a && r > 2 && t.length > 1 && C().createElement(v2, null), C().createElement("div", { + id: "breakout-rooms-list" + }, t.map((e => C().createElement(C().Fragment, { + key: e.id + }, C().createElement(_2, { + isHighlighted: d.entity === e, + onLeave: o, + onRaiseMenu: p(e), + room: e + }, !i && C().createElement(C().Fragment, null, C().createElement(S2, { + room: e + }), a && !e.isMainRoom && C().createElement(A2, { + onClick: l(e) + }))))))), C().createElement(T2, D2({ + onEnter: c, + onLeave: u, + onSelect: o + }, d))) + }; class j2 extends x.Component { + constructor(e) { + super(e), this._onKeyPress = this._onKeyPress.bind(this) + } + _onKeyPress(e) { + !this.props.onClick || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.onClick()) + } + render() { + const { + buttonText: e, + displayClass: t, + icon: n, + id: a, + onClick: r + } = this.props, i = `popupmenu__link ${t||""}`; + return C().createElement("li", { + className: "popupmenu__item" + }, C().createElement("a", { + "aria-label": e || "some thing", + className: i, + id: a, + onClick: r, + onKeyPress: this._onKeyPress, + role: "button", + tabIndex: 0 + }, C().createElement("span", { + className: "popupmenu__icon" + }, n && C().createElement(lo, { + src: n + })), C().createElement("span", { + className: "popupmenu__text" + }, e))) } + } + const M2 = Ei(Ne()((e => { + let { + dispatch: t, + participantId: n, + t: a + } = e; + const r = (0, x.useCallback)((() => { + t(qX(!0)) + }), [t]); + return C().createElement(j2, { + buttonText: a("videothumbnail.connectionInfo"), + icon: Il, + id: `connstatus_${n}`, + onClick: r + }) + }))); - function IZ(e) { - var t; - return null === (t = e["features/base/config"]) || void 0 === t ? void 0 : t.disableSpeakerStatsSearch + function I2(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class O2 extends bC { + constructor() { + super(...arguments), I2(this, "accessibilityLabel", "toolbar.accessibilityLabel.grantModerator"), I2(this, "icon", Hs), I2(this, "label", "videothumbnail.grantModerator") } - - function NZ(e) { - var t, n; - return null !== (t = null === (n = e["features/speaker-stats"]) || void 0 === n ? void 0 : n.stats) && void 0 !== t ? t : {} + _handleClick() { + const { + dispatch: e, + participantID: t + } = this.props; + e(VI(z2, { + participantID: t + })) } - - function zZ(e) { - var t; - return null === (t = e["features/speaker-stats"]) || void 0 === t ? void 0 : t.criteria + } + const N2 = Ei(Ne((function(e, t) { + const { + participantID: n + } = t, a = Uh(e), r = Vh(e, n); + return { + visible: Boolean((null == a ? void 0 : a.role) === Rh) && !Qh(r) } - - function RZ(e, t) { - const n = function(e) { - var t, n; - return null !== (t = null === (n = e["features/base/config"]) || void 0 === n ? void 0 : n.speakerStatsOrder) && void 0 !== t ? t : ["role", "name", "hasLeft"] - }(e); - if (n) { - const i = function(e, t, n) { - if (!n) return t; - for (const a in t) - if (t[a].hasOwnProperty("_hasLeft") && !t[a].hasLeft() && n.includes("role")) { - const n = Fh(e, t[a].getUserId()); - t[a].isModerator = n && n.role === Th - } return t - }(e, t, n); - return a = i, r = (e, t) => { - if (n.includes("hasLeft")) { - if (t.hasLeft() && !e.hasLeft()) return -1; - if (e.hasLeft() && !t.hasLeft()) return 1 - } - let a; - for (const r of n) { - switch (r) { - case "role": - a = !t.isModerator && e.isModerator ? -1 : !e.isModerator && t.isModerator ? 1 : 0; - break; - case "name": - a = (e.displayName || "").localeCompare(t.displayName || "") - } - if (0 !== a) break - } - return a - }, Object.entries(a).sort((([, e], [, t]) => r(e, t))).reduce(((e, [t, n]) => function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Dt(e, t, n[t]) - })) - } - return e - }({}, e, { - [t]: n - })), {}) - } - var a, r + }))(class extends O2 { + constructor(e) { + super(e), this._handleClick = this._handleClick.bind(this) + } + render() { + const { + participantID: e, + t, + visible: n + } = this.props; + return n ? C().createElement(j2, { + buttonText: t("videothumbnail.grantModerator"), + displayClass: "grantmoderatorlink", + icon: Hs, + id: `grantmoderatorlink_${e}`, + onClick: this._handleClick + }) : null + } + })); class R2 extends x.Component { + constructor(e) { + super(e), this._onSubmit = this._onSubmit.bind(this) + } + _onSubmit() { + const { + dispatch: e, + participantID: t + } = this.props; + return Da(tn("grant.moderator.button", { + participant_id: t + })), e({ + type: Rw, + id: t + }), !0 } + } + const z2 = Ei(Ne((function(e, t) { + return { + participantName: Vh(e, t.participantID).name + } + }))(class extends R2 { + render() { + return C().createElement(yL, { + okKey: "dialog.Yes", + onSubmit: this._onSubmit, + titleKey: "dialog.grantModeratorTitle", + width: "small" + }, C().createElement("div", null, this.props.t("dialog.grantModeratorDialog", { + participantName: this.props.participantName + }))) + } + })); - function LZ(e, t) { - var n; - const a = k().cloneDeep(null !== (n = t) && void 0 !== n ? n : NZ(e)), - r = zZ(e); - if (null !== r) { - const e = new RegExp(r, "gi"); - for (const t in a) - if (a[t].hasOwnProperty("_isLocalStats")) { - const n = a[t].getDisplayName(); - a[t].hidden = !n || !n.match(e) - } - } - return a + function L2(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class F2 extends bC { + constructor() { + super(...arguments), L2(this, "accessibilityLabel", "toolbar.accessibilityLabel.kick"), L2(this, "icon", ms), L2(this, "label", "videothumbnail.kick") } - class FZ extends E.Component { - render() { - const { - time: e - } = this.props, t = (n = e, Math.floor(n / 36e5)); - var n; - const a = function(e) { - return Math.floor(e / 6e4 % 60) - }(e), - r = function(e) { - return Math.floor(e / 1e3 % 60) - }(e), - i = []; - if (t) { - const e = this._createTimeDisplay(t, "speakerStats.hours", "hours"); - i.push(e) - } - if (t || a) { - const e = this._createTimeDisplay(a, "speakerStats.minutes", "minutes"); - i.push(e) - } - const o = this._createTimeDisplay(r, "speakerStats.seconds", "seconds"); - return i.push(o), x().createElement("div", null, i) - } - _createTimeDisplay(e, t, n) { - const { - t: a - } = this.props; - return x().createElement("span", { - key: n - }, a(t, { - count: e - })) - } + _handleClick() { + const { + dispatch: e, + participantID: t + } = this.props; + e(VI(U2, { + participantID: t + })) } - const qZ = Li(FZ); - class BZ extends E.Component { - render() { - const e = "speaker-stats-item " + (this.props.hasLeft ? "status-user-left" : ""), - t = "speaker-stats-item__status-dot " + (this.props.isDominantSpeaker ? "status-active" : "status-inactive"); - return x().createElement("div", { - className: e - }, x().createElement("div", { - className: "speaker-stats-item__status" - }, x().createElement("span", { - className: t - })), x().createElement("div", { - "aria-label": this.props.t("speakerStats.speakerStats"), - className: "speaker-stats-item__name" - }, this.props.displayName), x().createElement("div", { - "aria-label": this.props.t("speakerStats.speakerTime"), - className: "speaker-stats-item__time" - }, x().createElement(qZ, { - time: this.props.dominantSpeakerTime - }))) - } + } + const q2 = Ei(Ne()(class extends F2 { + constructor(e) { + super(e), this._handleClick = this._handleClick.bind(this) } - const UZ = Li(BZ); - class HZ extends E.Component { - render() { - const { - t: e - } = this.props; - return x().createElement("div", { - className: "speaker-stats-item__labels" - }, x().createElement("div", { - className: "speaker-stats-item__status" - }), x().createElement("div", { - className: "speaker-stats-item__name" - }, e("speakerStats.name")), x().createElement("div", { - className: "speaker-stats-item__time" - }, e("speakerStats.speakerTime"))) - } - } - const VZ = Li(HZ), - WZ = gH((() => ({ - speakerStatsSearch: { - position: "absolute", - right: "50px", - top: "-5px" - } - }))), - YZ = function({ - onSearch: e - }) { - const t = WZ(), - { - t: n - } = mr(), - [a, r] = (0, E.useState)(""), - i = (0, E.useCallback)((t => { - const n = Uj(t); - r(n), e && e(n) - }), []); - return Pe(IZ) ? null : x().createElement("div", { - className: t.speakerStatsSearch - }, x().createElement(bz, { - autoComplete: "off", - autoFocus: !1, - compact: !0, - name: "speakerStatsSearch", - onChange: i, - placeholder: n("speakerStats.search"), - shouldFitContainer: !1, - type: "text", - value: a - })) + render() { + const { + participantID: e, + t + } = this.props; + return C().createElement(j2, { + buttonText: t("videothumbnail.kick"), + displayClass: "kicklink", + icon: Fl, + id: `ejectlink_${e}`, + onClick: this._handleClick + }) + } + })); class B2 extends x.Component { + constructor(e) { + super(e), this._onSubmit = this._onSubmit.bind(this) + } + _onSubmit() { + const { + dispatch: e, + participantID: t + } = this.props; + return Da(tn("kick.button", { + participant_id: t + })), e(Qw(t)), !0 + } + } + const U2 = Ei(Ne()(class extends B2 { + render() { + return C().createElement(yL, { + okKey: "dialog.kickParticipantButton", + onSubmit: this._onSubmit, + titleKey: "dialog.kickParticipantTitle", + width: "small" + }, C().createElement("div", null, this.props.t("dialog.kickParticipantDialog"))) + } + })); + + function H2(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class V2 extends bC { + constructor() { + super(...arguments), H2(this, "accessibilityLabel", "toolbar.accessibilityLabel.remoteMute"), H2(this, "icon", gc), H2(this, "label", "videothumbnail.domute"), H2(this, "toggledLabel", "videothumbnail.muted") + } + _handleClick() { + const { + dispatch: e, + participantID: t + } = this.props; + Da(tn("mute.button", { + participant_id: t + })), e(LX(t, Fi)) + } + _isDisabled() { + return this.props._audioTrackMuted + } + _isToggled() { + return this.props._audioTrackMuted + } + } + const W2 = Ei(Ne((function(e, t) { + return { + _audioTrackMuted: dh(e["features/base/tracks"], Fi, t.participantID) + } + }))(class extends V2 { + constructor(e) { + super(e), this._handleClick = this._handleClick.bind(this) + } + render() { + const { + _audioTrackMuted: e, + participantID: t, + t: n + } = this.props, a = e ? { + translationKey: "videothumbnail.muted", + muteClassName: "mutelink disabled" + } : { + translationKey: "videothumbnail.domute", + muteClassName: "mutelink" }; + return C().createElement(j2, { + buttonText: n(a.translationKey), + displayClass: a.muteClassName, + icon: gc, + id: `mutelink_${t}`, + onClick: this._handleClick + }) + } + })); - function GZ(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Y2(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class G2 extends bC { + constructor() { + super(...arguments), Y2(this, "accessibilityLabel", "toolbar.accessibilityLabel.remoteVideoMute"), Y2(this, "icon", bd), Y2(this, "label", "videothumbnail.domuteVideo"), Y2(this, "toggledLabel", "videothumbnail.videoMuted") } - class KZ extends E.Component { - constructor(e) { - super(e), this._updateStats = this._updateStats.bind(this), this._onSearch = this._onSearch.bind(this), this._updateStats() - } - componentDidMount() { - this._updateInterval = setInterval((() => this._updateStats()), 1e3) - } - componentWillUnmount() { - clearInterval(this._updateInterval) - } - render() { - const e = Object.keys(this.props._stats).map((e => this._createStatsItem(e))); - return x().createElement(IO, { - cancelKey: "dialog.close", - submitDisabled: !0, - titleKey: "speakerStats.speakerStats" - }, x().createElement("div", { - className: "speaker-stats" - }, x().createElement(YZ, { - onSearch: this._onSearch - }), x().createElement(VZ, null), e)) - } - _createStatsItem(e) { - const t = this.props._stats[e]; - if (!t || t.hidden) return null; - const n = t.isDominantSpeaker(), - a = t.getTotalDominantSpeakerTime(), - r = t.hasLeft(); - return x().createElement(UZ, { - displayName: t.getDisplayName(), - dominantSpeakerTime: a, - hasLeft: r, - isDominantSpeaker: n, - key: e - }) - } - _onSearch(e = "") { - this.props.dispatch(function(e) { - return { - type: PZ, - criteria: e - } - }(Mt(e))) - } - _updateStats() { - this.props.dispatch(function(e) { - return { - type: DZ, - getSpeakerStats: e - } - }((() => this._getSpeakerStats()))) - } - _getSpeakerStats() { - const e = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - GZ(e, t, n[t]) - })) - } - return e - }({}, this.props.conference.getSpeakerStats()); - for (const t in e) - if (e[t]) { - if (e[t].isLocalStats()) { - const { - t: n - } = this.props, a = n("me"); - e[t].setDisplayName(this.props._localDisplayName ? `${this.props._localDisplayName} (${a})` : a) - } - e[t].getDisplayName() || e[t].setDisplayName(interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME) - } return e - } + _handleClick() { + const { + dispatch: e, + participantID: t + } = this.props; + Da(tn("video.mute.button", { + participant_id: t + })), e(VI(s3, { + participantID: t + })) } - const $Z = Li(ze((function(e) { - const t = Rh(e); - return { - _localDisplayName: t && t.name, - _stats: NZ(e), - _criteria: zZ(e) - } - }))(KZ)); - - function JZ(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _isDisabled() { + return this.props._videoTrackMuted } - const ZZ = Li(ze((function(e) { - return { - _conference: e["features/base/conference"].conference - } - }))(class extends Vw { - constructor(...e) { - super(...e), JZ(this, "accessibilityLabel", "toolbar.accessibilityLabel.speakerStats"), JZ(this, "icon", jd), JZ(this, "label", "toolbar.speakerStats"), JZ(this, "tooltip", "toolbar.speakerStats") - } - _handleClick() { - const { - _conference: e, - dispatch: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("speaker.stats")), t(sP($Z, { - conference: e - }))) - } - })), - QZ = We().getLogger("modules/keyboardshortcut/keyboardshortcut.js"), - XZ = new Map, - eQ = new Map, - isPushed = !1, // BAO - tQ = "enableShortcuts", - nQ = `:focus:is(${["input","textarea","button","[role=button]","[role=menuitem]","[role=radio]","[role=tab]","[role=option]","[role=switch]","[role=range]","[role=log]"].join(",")})`, - aQ = { - init() { - this._initGlobalShortcuts(), window.onkeyup = e => { - if (!this.getEnabled()) return; - const t = this._getKeyboardKey(e).toUpperCase(), - n = parseInt(t, 10); - var a; - document.querySelector(nQ) || (XZ.has(t) ? XZ.get(t).function(e) : !isNaN(n) && n >= 0 && n <= 9 && APP.store.dispatch((a = n, (e, t) => { - const n = t(), - { - id: r - } = Rh(n), - { - remoteParticipants: i - } = n["features/filmstrip"], - o = [r, ...i], - { - id: s, - pinned: l - } = Fh(n, o[a]); - e(dk(l ? null : s)) - }))) - }, window.onkeydown = e => { - if (!this.getEnabled()) return; - const t = document.querySelector(nQ); - t ? "ESCAPE" === this._getKeyboardKey(e).toUpperCase() && t && t.blur && t.blur() : " " === this._getKeyboardKey(e).toUpperCase() && APP.conference.isLocalAudioMuted() && (Ma(dn("push.to.talk", "pressed")), QZ.log("Talk shortcut pressed"), APP.conference.muteAudio(!1), isPushed = !0) // BAO - } - }, - enable(e) { - l.setItem(tQ, e) - }, - getEnabled: () => "false" !== l.getItem(tQ), - openDialog() { - APP.store.dispatch(lP(jZ, { - shortcutDescriptions: eQ - })) - }, - registerShortcut(e, t, n, a, r = !1) { - XZ.set(r ? `:${e}` : e, { - character: e, - function: n, - shortcutAttr: t, - altKey: r - }), a && this._addShortcutToHelp(r ? `:${e}` : e, a) - }, - unregisterShortcut(e, t = !1) { - XZ.delete(t ? `:${e}` : e), eQ.delete(e) - }, - _getKeyboardKey(e) { - if (e.altKey) return `:${e.code.replace("Key","")}`; - if ("string" == typeof e.key && "Unidentified" !== e.key) return e.key; - if ("keypress" === e.type && (e.which >= 32 && e.which <= 126 || e.which >= 160 && e.which <= 255)) return String.fromCharCode(e.which); - switch (e.which) { - case 27: - return "Escape"; - case 191: - return e.shiftKey ? "?" : "/" - } - return e.shiftKey || "keypress" === e.type ? String.fromCharCode(e.which) : String.fromCharCode(e.which).toLowerCase() - }, - _addShortcutToHelp(e, t) { - eQ.set(e, t) - }, - _initGlobalShortcuts() { - this.registerShortcut("?", null, (() => { - Ma(dn("help")), this.openDialog() - }), "keyboardShortcuts.toggleShortcuts"), this.registerShortcut(" ", null, (() => { - Ma(dn("push.to.talk", "released")), QZ.log("Talk shortcut released"), APP.conference.muteAudio(!0), isPushed = !1 // BAO - })), this._addShortcutToHelp("SPACE", "keyboardShortcuts.pushToTalk"), this.registerShortcut("T", null, (() => { - Ma(dn("speaker.stats")), APP.store.dispatch(lP($Z, { - conference: APP.conference - })) - }), "keyboardShortcuts.showSpeakerStats"), this._addShortcutToHelp("0", "keyboardShortcuts.focusLocal"), this._addShortcutToHelp("1-9", "keyboardShortcuts.focusRemote") - } - }, - rQ = aQ, - iQ = function({ - children: e, - isModal: t - }) { - if (!t || !Sa()) return e; - const n = (0, E.useRef)(null); - - function a(e) { - e.stopImmediatePropagation() - } - return (0, E.useEffect)((() => (n && n.current && n.current.addEventListener("touchmove", a, !0), () => { - n && n.current && n.current.removeEventListener("touchmove", a, !0) - })), []), x().createElement("div", { - className: "touchmove-hack", - ref: n - }, e) - }, - oQ = Li(class extends dP { - constructor(e) { - super(e), this.state = { - isFramerateSelectOpen: !1, - isLanguageSelectOpen: !1 - }, this._onFramerateDropdownOpenChange = this._onFramerateDropdownOpenChange.bind(this), this._onFramerateItemSelect = this._onFramerateItemSelect.bind(this), this._onLanguageDropdownOpenChange = this._onLanguageDropdownOpenChange.bind(this), this._onLanguageItemSelect = this._onLanguageItemSelect.bind(this), this._onStartAudioMutedChanged = this._onStartAudioMutedChanged.bind(this), this._onStartVideoMutedChanged = this._onStartVideoMutedChanged.bind(this), this._onFollowMeEnabledChanged = this._onFollowMeEnabledChanged.bind(this), this._onShowPrejoinPageChanged = this._onShowPrejoinPageChanged.bind(this), this._onKeyboardShortcutEnableChanged = this._onKeyboardShortcutEnableChanged.bind(this) - } - render() { - const e = []; - return e.push(this._renderSettingsLeft()), e.push(this._renderSettingsRight()), x().createElement("div", { - className: "more-tab box" - }, e) - } - _onFramerateDropdownOpenChange({ - isOpen: e - }) { - this.setState({ - isFramerateSelectOpen: e - }) - } - _onFramerateItemSelect(e) { - const t = e.currentTarget.getAttribute("data-framerate"); - super._onChange({ - currentFramerate: t - }) - } - _onLanguageDropdownOpenChange({ - isOpen: e - }) { - this.setState({ - isLanguageSelectOpen: e - }) - } - _onLanguageItemSelect(e) { - const t = e.currentTarget.getAttribute("data-language"); - super._onChange({ - currentLanguage: t - }) - } - _onStartAudioMutedChanged({ - target: { - checked: e - } - }) { - super._onChange({ - startAudioMuted: e - }) - } - _onStartVideoMutedChanged({ - target: { - checked: e - } - }) { - super._onChange({ - startVideoMuted: e - }) - } - _onFollowMeEnabledChanged({ - target: { - checked: e - } - }) { - super._onChange({ - followMeEnabled: e - }) - } - _onShowPrejoinPageChanged({ - target: { - checked: e - } - }) { - super._onChange({ - showPrejoinPage: e - }) - } - _onKeyboardShortcutEnableChanged({ - target: { - checked: e - } - }) { - rQ.enable(e), super._onChange({ - keyboardShortcutEnable: e - }) - } - _renderFramerateSelect() { - const { - currentFramerate: e, - desktopShareFramerates: t, - t: n - } = this.props, a = t.map((e => x().createElement(mY, { - "data-framerate": e, - key: e, - onClick: this._onFramerateItemSelect - }, `${e} ${n("settings.framesPerSecond")}`))); - return x().createElement("div", { - className: "settings-sub-pane-element", - key: "frameRate" - }, x().createElement("h2", { - className: "mock-atlaskit-label" - }, n("settings.desktopShareFramerate")), x().createElement("div", { - className: "dropdown-menu" - }, x().createElement(iQ, { - isModal: !0 - }, x().createElement(Q$, { - isOpen: this.state.isFramerateSelectOpen, - onOpenChange: this._onFramerateDropdownOpenChange, - shouldFitContainer: !0, - trigger: e ? `${e} ${n("settings.framesPerSecond")}` : "", - triggerButtonProps: { - shouldFitContainer: !0 - }, - triggerType: "button" - }, x().createElement(VY, null, a)))), x().createElement("div", { - className: "mock-atlaskit-label" - }, parseInt(e, 10) > 5 ? n("settings.desktopShareHighFpsWarning") : n("settings.desktopShareWarning"))) - } - _renderKeyboardShortcutCheckbox() { - const { - t: e - } = this.props; - return x().createElement("div", { - className: "settings-sub-pane-element", - key: "keyboard-shortcut" - }, x().createElement("h2", { - className: "mock-atlaskit-label" - }, e("keyboardShortcuts.keyboardShortcuts")), x().createElement(GL, { - isChecked: rQ.getEnabled(), - label: e("prejoin.keyboardShortcuts"), - name: "enable-keyboard-shortcuts", - onChange: this._onKeyboardShortcutEnableChanged - })) - } - _renderLanguageSelect() { - const { - currentLanguage: e, - languages: t, - t: n - } = this.props, a = t.map((e => x().createElement(mY, { - "data-language": e, - key: e, - onClick: this._onLanguageItemSelect - }, n(`languages:${e}`)))); - return x().createElement("div", { - className: "settings-sub-pane-element", - key: "language" - }, x().createElement("h2", { - className: "mock-atlaskit-label" - }, n("settings.language")), x().createElement("div", { - className: "dropdown-menu" - }, x().createElement(iQ, { - isModal: !0 - }, x().createElement(Q$, { - isOpen: this.state.isLanguageSelectOpen, - onOpenChange: this._onLanguageDropdownOpenChange, - shouldFitContainer: !0, - trigger: e ? n(`languages:${e}`) : "", - triggerButtonProps: { - shouldFitContainer: !0 - }, - triggerType: "button" - }, x().createElement(VY, null, a))))) - } - _renderModeratorSettings() { - const { - followMeActive: e, - followMeEnabled: t, - startAudioMuted: n, - startVideoMuted: a, - t: r - } = this.props; - return x().createElement("div", { - className: "settings-sub-pane-element", - key: "moderator" - }, x().createElement("h2", { - className: "mock-atlaskit-label" - }, r("settings.moderator")), x().createElement(GL, { - isChecked: n, - label: r("settings.startAudioMuted"), - name: "start-audio-muted", - onChange: this._onStartAudioMutedChanged - }), x().createElement(GL, { - isChecked: a, - label: r("settings.startVideoMuted"), - name: "start-video-muted", - onChange: this._onStartVideoMutedChanged - }), x().createElement(GL, { - isChecked: t && !e, - isDisabled: e, - label: r("settings.followMe"), - name: "follow-me", - onChange: this._onFollowMeEnabledChanged - })) - } - _renderPrejoinScreenSettings() { - const { - t: e, - showPrejoinPage: t - } = this.props; - return x().createElement("div", { - className: "settings-sub-pane-element", - key: "prejoin-screen" - }, x().createElement("h2", { - className: "mock-atlaskit-label" - }, e("prejoin.premeeting")), x().createElement(GL, { - isChecked: t, - label: e("prejoin.showScreen"), - name: "show-prejoin-page", - onChange: this._onShowPrejoinPageChanged - })) - } - _renderSettingsRight() { - const { - showLanguageSettings: e - } = this.props; - return x().createElement("div", { - className: "settings-sub-pane right" - }, e && this._renderLanguageSelect(), this._renderFramerateSelect()) - } - _renderSettingsLeft() { - const { - showPrejoinSettings: e, - showModeratorSettings: t - } = this.props; - return x().createElement("div", { - className: "settings-sub-pane left" - }, e && this._renderPrejoinScreenSettings(), this._renderKeyboardShortcutCheckbox(), t && this._renderModeratorSettings()) - } - }), - sQ = { - NICKNAME_CHANGED: "UI.nickname_changed", - EMAIL_CHANGED: "UI.email_changed", - AUDIO_MUTED: "UI.audio_muted", - VIDEO_MUTED: "UI.video_muted", - ETHERPAD_CLICKED: "UI.etherpad_clicked", - TOGGLE_FULLSCREEN: "UI.toogle_fullscreen", - FULLSCREEN_TOGGLED: "UI.fullscreen_toggled", - AUTH_CLICKED: "UI.auth_clicked", - TOGGLE_AUDIO_ONLY: "UI.toggle_audioonly", - TOGGLE_FILMSTRIP: "UI.toggle_filmstrip", - TOGGLE_SCREENSHARING: "UI.toggle_screensharing", - HANGUP: "UI.hangup", - LOGOUT: "UI.logout", - VIDEO_DEVICE_CHANGED: "UI.video_device_changed", - AUDIO_DEVICE_CHANGED: "UI.audio_device_changed", - SIDE_TOOLBAR_CONTAINER_TOGGLED: "UI.side_container_toggled", - LOCAL_RAISE_HAND_CHANGED: "UI.local_raise_hand_changed" + _isToggled() { + return this.props._videoTrackMuted + } + } + const K2 = Ei(Ne((function(e, t) { + return { + _videoTrackMuted: dh(e["features/base/tracks"], Bi, t.participantID) + } + }))(class extends G2 { + constructor(e) { + super(e), this._handleClick = this._handleClick.bind(this) + } + render() { + const { + _videoTrackMuted: e, + participantID: t, + t: n + } = this.props, a = e ? { + translationKey: "videothumbnail.videoMuted", + muteClassName: "mutevideolink disabled" + } : { + translationKey: "videothumbnail.domuteVideo", + muteClassName: "mutevideolink" }; - class lQ extends dP { - constructor(e) { - super(e), this._onAuthToggle = this._onAuthToggle.bind(this), this._onDisplayNameChange = this._onDisplayNameChange.bind(this), this._onEmailChange = this._onEmailChange.bind(this) - } - _onDisplayNameChange({ - target: { - value: e - } - }) { - super._onChange({ - displayName: e - }) - } - _onEmailChange({ - target: { - value: e - } - }) { - super._onChange({ - email: e - }) - } - render() { - const { - authEnabled: e, - displayName: t, - email: n, - readOnlyName: a, - t: r - } = this.props; - return x().createElement("div", null, x().createElement("div", { - className: "profile-edit" - }, x().createElement("div", { - className: "profile-edit-field" - }, x().createElement(bz, { - autoComplete: "name", - compact: !0, - id: "setDisplayName", - isReadOnly: a, - label: r("profile.setDisplayNameLabel"), - onChange: this._onDisplayNameChange, - placeholder: r("settings.name"), - shouldFitContainer: !0, - type: "text", - value: t - })), x().createElement("div", { - className: "profile-edit-field" - }, x().createElement(bz, { - compact: !0, - id: "setEmail", - label: r("profile.setEmailLabel"), - onChange: this._onEmailChange, - placeholder: r("profile.setEmailInput"), - shouldFitContainer: !0, - type: "text", - value: n - }))), e && this._renderAuth()) - } - _onAuthToggle() { - this.props.authLogin ? (Ma(nn("logout.button")), APP.store.dispatch(sP(hW, { - onLogout: () => APP.UI.emitEvent(sQ.LOGOUT) - }))) : (Ma(nn("login.button")), APP.UI.emitEvent(sQ.AUTH_CLICKED)) - } - _renderAuth() { + return C().createElement(j2, { + buttonText: n(a.translationKey), + displayClass: a.muteClassName, + icon: Fo, + id: `mutelink_${t}`, + onClick: this._handleClick + }) + } + })); class $2 extends x.Component { + constructor(e) { + super(e), this._onSubmit = this._onSubmit.bind(this) + } + _onSubmit() { + const { + dispatch: e, + participantID: t + } = this.props; + return e(LX(t, Fi)), !0 + } + } + class J2 extends $2 { + constructor(e) { + super(e), this.state = { + audioModerationEnabled: e.isAudioModerationEnabled, + content: e.content || e.t(e.isAudioModerationEnabled ? "dialog.muteEveryoneDialogModerationOn" : "dialog.muteEveryoneDialog") + }, this._onSubmit = this._onSubmit.bind(this), this._onToggleModeration = this._onToggleModeration.bind(this) + } + render() { + const { + content: e, + title: t + } = this.props; + return C().createElement(yL, { + okKey: "dialog.muteParticipantButton", + onSubmit: this._onSubmit, + titleString: t, + width: "small" + }, C().createElement("div", null, e)) + } + _onSubmit() { + const { + dispatch: e, + exclude: t + } = this.props; + return e(FX(t, Fi)), this.state.audioModerationEnabled ? e(nf()) : void 0 !== this.state.audioModerationEnabled && e(ef()), !0 + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(J2, "defaultProps", { + exclude: [], + muteLocal: !1 + }); + const Z2 = Ei(Ne((function(e, t) { + const { + exclude: n = [], + t: a + } = t, r = n.map((t => t === Uh(e).id ? a("dialog.muteEveryoneSelf") : Kh(e, t))).join(", "); + return r.length ? { + content: a("dialog.muteEveryoneElseDialog"), + title: a("dialog.muteEveryoneElseTitle", { + whom: r + }) + } : { + title: a("dialog.muteEveryoneTitle"), + isAudioModerationEnabled: pm(Fi, e), + isModerationSupported: (e => { const { - authLogin: e, - t - } = this.props; - return x().createElement("div", null, x().createElement("h2", { - className: "mock-atlaskit-label" - }, t("toolbar.authenticate")), e && x().createElement("div", { - className: "auth-name" - }, t("settings.loggedIn", { - name: e - })), x().createElement(nS, { - appearance: "primary", - id: "login_button", - onClick: this._onAuthToggle, - type: "button" - }, t(e ? "toolbar.logout" : "toolbar.login"))) - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(lQ, "defaultProps", { - displayName: "", - email: "" - }); - const cQ = Li(lQ), - uQ = Li(class extends dP { - constructor(e) { - super(e), this._onChange = this._onChange.bind(this) - } - _onChange({ - target: e - }) { - super._onChange({ - [e.name]: e.checked - }) - } - render() { - const { - soundsIncomingMessage: e, - soundsParticipantJoined: t, - soundsParticipantLeft: n, - soundsTalkWhileMuted: a, - soundsReactions: r, - enableReactions: i, - t: o - } = this.props; - return x().createElement("div", { - className: "settings-sub-pane-element", - key: "sounds" - }, x().createElement("h2", { - className: "mock-atlaskit-label" - }, o("settings.playSounds")), i && x().createElement(KL, { - isChecked: r, - label: o("settings.reactions"), - name: "soundsReactions", - onChange: this._onChange - }), x().createElement(KL, { - isChecked: e, - label: o("settings.incomingMessage"), - name: "soundsIncomingMessage", - onChange: this._onChange - }), x().createElement(KL, { - isChecked: t, - label: o("settings.participantJoined"), - name: "soundsParticipantJoined", - onChange: this._onChange - }), x().createElement(KL, { - isChecked: n, - label: o("settings.participantLeft"), - name: "soundsParticipantLeft", - onChange: this._onChange - }), x().createElement(KL, { - isChecked: a, - label: o("settings.talkWhileMuted"), - name: "soundsTalkWhileMuted", - onChange: this._onChange - })) - } - }); - - function dQ(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - pQ(e, t, n[t]) - })) - } - return e + conference: t + } = e["features/base/conference"]; + return !!t && t.isAVModerationSupported() + })(e) + } + }))(class extends J2 { + _onToggleModeration() { + this.setState((e => ({ + audioModerationEnabled: !e.audioModerationEnabled, + content: this.props.t(e.audioModerationEnabled ? "dialog.muteEveryoneDialog" : "dialog.muteEveryoneDialogModerationOn") + }))) } - - function pQ(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + render() { + return C().createElement(yL, { + okKey: "dialog.muteParticipantButton", + onSubmit: this._onSubmit, + titleString: this.props.title, + width: "small" + }, C().createElement("div", { + className: "mute-dialog" + }, this.state.content, this.props.isModerationSupported && 0 === this.props.exclude.length && C().createElement(C().Fragment, null, C().createElement("div", { + className: "separator-line" + }), C().createElement("div", { + className: "control-row" + }, C().createElement("label", { + htmlFor: "moderation-switch" + }, this.props.t("dialog.moderationAudioLabel")), C().createElement(rM, { + id: "moderation-switch", + onValueChange: this._onToggleModeration, + value: !this.state.audioModerationEnabled + }))))) + } + })); class Q2 extends x.Component { + constructor(e) { + super(e), this._onSubmit = this._onSubmit.bind(this) + } + _onSubmit() { + const { + dispatch: e, + participantID: t + } = this.props; + return e(LX(t, Bi)), e(Qm(t)), !0 } - class hQ extends E.Component { - constructor(e) { - super(e), this._closeDialog = this._closeDialog.bind(this) - } - render() { + } + class X2 extends Q2 { + constructor(e) { + super(e), this.state = { + moderationEnabled: e.isVideoModerationEnabled, + content: e.content || e.t(e.isVideoModerationEnabled ? "dialog.muteEveryonesVideoDialogModerationOn" : "dialog.muteEveryonesVideoDialog") + }, this._onSubmit = this._onSubmit.bind(this), this._onToggleModeration = this._onToggleModeration.bind(this) + } + render() { + const { + content: e, + title: t + } = this.props; + return C().createElement(yL, { + okKey: "dialog.muteParticipantsVideoButton", + onSubmit: this._onSubmit, + titleString: t, + width: "small" + }, C().createElement("div", null, e)) + } + _onSubmit() { + const { + dispatch: e, + exclude: t + } = this.props; + return e(FX(t, Bi)), this.state.moderationEnabled ? e(af()) : void 0 !== this.state.moderationEnabled && e(tf()), !0 + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(X2, "defaultProps", { + exclude: [], + muteLocal: !1 + }); + const e3 = Ei(Ne((function(e, t) { + const { + exclude: n = [], + t: a + } = t, r = pm(Bi, e), i = n.map((t => t === Uh(e).id ? a("dialog.muteEveryoneSelf") : Kh(e, t))).join(", "); + return i.length ? { + content: a("dialog.muteEveryoneElsesVideoDialog"), + title: a("dialog.muteEveryoneElsesVideoTitle", { + whom: i + }) + } : { + title: a("dialog.muteEveryonesVideoTitle"), + isVideoModerationEnabled: r, + isModerationSupported: (e => { const { - _tabs: e, - defaultTab: t, - dispatch: n - } = this.props, a = this._closeDialog, r = e.findIndex((({ - name: e - }) => e === t)), i = e.map((e => dQ({}, e, { - onMount: e.onMount ? (...t) => n(e.onMount(...t)) : void 0, - submit: (...t) => e.submit && n(e.submit(...t)) - }))); - return x().createElement(mM, { - closeDialog: this._closeDialog, - cssClassName: "settings-dialog", - defaultTab: -1 === r ? void 0 : r, - onSubmit: a, - tabs: i, - titleKey: "settings.title" - }) - } - _closeDialog() { - this.props.dispatch(oP()) - } + conference: t + } = e["features/base/conference"]; + return !!t && t.isAVModerationSupported() + })(e) + } + }))(class extends X2 { + _onToggleModeration() { + this.setState((e => ({ + moderationEnabled: !e.moderationEnabled, + content: this.props.t(e.moderationEnabled ? "dialog.muteEveryonesVideoDialog" : "dialog.muteEveryonesVideoDialogModerationOn") + }))) } - const mQ = ze((function(e) { - const t = interfaceConfig.SETTINGS_SECTIONS || [], - n = t.includes("devices"), - a = wJ(e), - { - showModeratorSettings: r, - showLanguageSettings: i, - showPrejoinSettings: o - } = a, - s = t.includes("profile") && !e["features/base/config"].disableProfile, - l = t.includes("calendar") && w$(e), - c = t.includes("sounds"), - u = []; - return n && u.push({ - name: mW.DEVICES, - component: rJ, - label: "settings.devices", - onMount: YM, - props: U$(e), - propsUpdateFunction: (e, t) => dQ({}, t, { - selectedAudioInputId: e.selectedAudioInputId, - selectedAudioOutputId: e.selectedAudioOutputId, - selectedVideoInputId: e.selectedVideoInputId - }), - styles: "settings-pane devices-pane", - submit: W$ - }), s && u.push({ - name: mW.PROFILE, - component: cQ, - label: "profile.title", - props: SJ(e), - styles: "settings-pane profile-pane", - submit: zQ - }), l && u.push({ - name: mW.CALENDAR, - component: PJ, - label: "settings.calendar.title", - styles: "settings-pane calendar-pane" - }), c && u.push({ - name: mW.SOUNDS, - component: uQ, - label: "settings.sounds", - props: EJ(e), - styles: "settings-pane profile-pane", - submit: RQ - }), (r || i || o) && u.push({ - name: mW.MORE, - component: oQ, - label: "settings.more", - props: a, - propsUpdateFunction: (e, t) => dQ({}, t, { - currentFramerate: e.currentFramerate, - currentLanguage: e.currentLanguage, - followMeEnabled: e.followMeEnabled, - showPrejoinPage: e.showPrejoinPage, - startAudioMuted: e.startAudioMuted, - startVideoMuted: e.startVideoMuted - }), - styles: "settings-pane more-pane", - submit: NQ - }), { - _tabs: u - } - }))(hQ), - fQ = Symbol("ASPECT_RATIO_NARROW"), - gQ = Symbol("ASPECT_RATIO_WIDE"); - - function bQ({ - IconComponent: e, - id: t, - text: n - }) { - return x().createElement("div", { - className: "audio-preview-header", - role: "heading" - }, x().createElement("div", { - className: "audio-preview-header-icon" - }, x().createElement(qs, { - size: 20, - src: e - })), x().createElement("div", { - className: "audio-preview-header-text", - id: t - }, n)) + render() { + return C().createElement(yL, { + okKey: "dialog.muteParticipantsVideoButton", + onSubmit: this._onSubmit, + titleString: this.props.title, + width: "small" + }, C().createElement("div", { + className: "mute-dialog" + }, this.state.content, this.props.isModerationSupported && 0 === this.props.exclude.length && C().createElement(C().Fragment, null, C().createElement("div", { + className: "separator-line" + }), C().createElement("div", { + className: "control-row" + }, C().createElement("label", { + htmlFor: "moderation-switch" + }, this.props.t("dialog.moderationVideoLabel")), C().createElement(rM, { + id: "moderation-switch", + onValueChange: this._onToggleModeration, + value: !this.state.moderationEnabled + }))))) + } + })); + + function t3(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class n3 extends bC { + constructor() { + super(...arguments), t3(this, "accessibilityLabel", "toolbar.accessibilityLabel.muteEveryoneElse"), t3(this, "icon", Oc), t3(this, "label", "videothumbnail.domuteOthers") } - - function yQ({ - children: e, - hasError: t, - labelId: n, - isSelected: a - }) { - const r = "audio-preview-entry " + (a ? "audio-preview-entry--selected" : ""); - return x().createElement("div", { - className: r - }, a && x().createElement(qs, { - className: "audio-preview-icon audio-preview-icon--check", - color: "#1C2025", - size: 14, - src: Rl - }), x().createElement("span", { - className: "audio-preview-entry-text", - id: n - }, e), t && x().createElement(qs, { - className: "audio-preview-icon audio-preview-icon--exclamation", - size: 16, - src: Dc + _handleClick() { + const { + dispatch: e, + participantID: t + } = this.props; + Da(ln("mute.everyoneelse.pressed")), e(VI(Z2, { + exclude: [t] })) } + } + const a3 = Ei(Ne()(class extends n3 { + constructor(e) { + super(e), this._handleClick = this._handleClick.bind(this) + } + render() { + const { + participantID: e, + t + } = this.props; + return C().createElement(j2, { + buttonText: t("videothumbnail.domuteOthers"), + displayClass: "mutelink", + icon: Lc, + id: `mutelink_${e}`, + onClick: this._handleClick + }) + } + })); - function vQ({ - className: e, - isDisabled: t, - level: n - }) { - let a; - return a = n > -1 ? `metr metr-l-${n}` : "metr " + (t ? "metr--disabled" : ""), x().createElement(qs, { - className: `${a} ${e}`, - size: 12, - src: zu + function r3(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + class i3 extends bC { + constructor() { + super(...arguments), r3(this, "accessibilityLabel", "toolbar.accessibilityLabel.muteEveryoneElsesVideo"), r3(this, "icon", Bc), r3(this, "label", "videothumbnail.domuteVideoOfOthers") + } + _handleClick() { + const { + dispatch: e, + participantID: t + } = this.props; + Da(ln("mute.everyoneelsesvideo.pressed")), e(VI(e3, { + exclude: [t] + })) + } + } + const o3 = Ei(Ne()(class extends i3 { + constructor(e) { + super(e), this._handleClick = this._handleClick.bind(this) + } + render() { + const { + participantID: e, + t + } = this.props; + return C().createElement(j2, { + buttonText: t("videothumbnail.domuteVideoOfOthers"), + displayClass: "mutelink", + icon: Vc, + id: `mutelink_${e}`, + onClick: this._handleClick }) } - const kQ = c.default.events.track; - class _Q extends E.Component { - constructor(e) { - super(e), this.state = { - level: -1 - }, this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._updateLevel = this._updateLevel.bind(this) - } - _onClick() { - this.props.onClick(this.props.deviceId) - } - _onKeyPress(e) { - " " === e.key && (e.preventDefault(), this.props.onClick(this.props.deviceId)) - } - _updateLevel(e) { - this.setState({ - level: Math.floor(e / .125) - }) - } - _startListening() { - const { - jitsiTrack: e - } = this.props; - e && e.on(kQ.TRACK_AUDIO_LEVEL_CHANGED, this._updateLevel) - } - _stopListening(e) { - e && e.off(kQ.TRACK_AUDIO_LEVEL_CHANGED, this._updateLevel), this.setState({ - level: -1 - }) - } - componentDidUpdate(e) { - e.jitsiTrack !== this.props.jitsiTrack && (this._stopListening(e.jitsiTrack), this._startListening()) - } - componentDidMount() { - this._startListening() - } - componentWillUnmount() { - this._stopListening(this.props.jitsiTrack) - } - render() { - const { - deviceId: e, - children: t, - hasError: n, - index: a, - isSelected: r, - length: i, - jitsiTrack: o, - listHeaderId: s - } = this.props, l = `choose_microphone${e}`, c = `${s} ${l} `; - return x().createElement("li", { - "aria-checked": r, - "aria-labelledby": c, - "aria-posinset": a, - "aria-setsize": i, - className: "audio-preview-microphone", - onClick: this._onClick, - onKeyPress: this._onKeyPress, - role: "radio", - tabIndex: 0 - }, x().createElement(yQ, { - hasError: n, - isSelected: r, - labelId: l - }, t), Boolean(o) && x().createElement(vQ, { - className: "audio-preview-meter-mic", - isDisabled: n, - level: this.state.level - })) + })), s3 = Ei(Ne((function(e) { + return { + isVideoModerationOn: pm(Bi, e) + } + }))(class extends Q2 { + render() { + return C().createElement(yL, { + okKey: "dialog.muteParticipantsVideoButton", + onSubmit: this._onSubmit, + titleKey: "dialog.muteParticipantsVideoTitle", + width: "small" + }, C().createElement("div", null, this.props.t(this.props.isVideoModerationOn ? "dialog.muteParticipantsVideoBodyModerationOn" : "dialog.muteParticipantsVideoBody"))) + } + })); class l3 extends x.Component { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this) + } + render() { + const { + participantID: e, + t, + _hidden: n + } = this.props; + return n ? null : C().createElement(j2, { + buttonText: t("toolbar.privateMessage"), + icon: ac, + id: `privmsglink_${e}`, + onClick: this._onClick + }) + } + _onClick() { + const { + dispatch: e, + _participant: t + } = this.props; + e(nV(t)) + } + } + const c3 = Ei(Ne((function(e, t) { + return { + ...CW(e, t), + _hidden: "undefined" != typeof interfaceConfig && (interfaceConfig.DISABLE_PRIVATE_MESSAGES || !mI("chat", e)) + } + }))(l3)); class u3 extends x.Component { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this) + } + render() { + const { + participantID: e, + remoteControlState: t, + t: n + } = this.props; + let a, r; + switch (t) { + case 1: + r = bu; + break; + case 2: + a = " disabled", r = bu; + break; + case 3: + r = ku; + break; + default: + return null } + return C().createElement(j2, { + buttonText: n("videothumbnail.remoteControl"), + displayClass: a, + icon: r, + id: `remoteControl_${e}`, + onClick: this._onClick + }) } - - function wQ({ - onClick: e, - onKeyPress: t - }) { - return x().createElement("div", { - className: "audio-preview-test-button", + _onClick() { + const { onClick: e, - onKeyPress: t, - role: "button", - tabIndex: 0 - }, "Test") + participantID: t, + remoteControlState: n + } = this.props; + 3 !== n && 1 !== n || Da(tn("remote.control.button", { + enable: 1 === n, + participant_id: t + })), e && e() } - class SQ extends E.Component { - constructor(e) { - super(e), this.audioRef = x().createRef(), this._onTestButtonClick = this._onTestButtonClick.bind(this), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) - } - _onClick() { - this.props.onClick(this.props.deviceId) - } - _onKeyPress(e) { - " " === e.key && (e.preventDefault(), this.props.onClick(this.props.deviceId)) - } - async _onTestButtonClick(e) { - e.stopPropagation(); - try { - await this.audioRef.current.setSinkId(this.props.deviceId), this.audioRef.current.play() - } catch (e) { - AJ.log("Could not set sink id", e) - } - } - render() { + } + const d3 = Ei(u3); + + function p3(e) { + e.stopPropagation() + } + + function h3(e) { + return C().createElement("ul", { + className: "popupmenu", + id: e.id, + onClick: p3 + }, e.children) + } + + function m3(e) { + e.stopPropagation() + } + class f3 extends x.Component { + render() { + const { + isLocalVideo: e, + enableSaveLogs: t, + disableShowMoreStats: n + } = this.props, a = va() ? "connection-info connection-info__mobile" : "connection-info"; + return C().createElement("div", { + className: a, + onClick: m3 + }, this._renderStatistics(), C().createElement("div", { + className: "connection-actions" + }, e && t ? this._renderSaveLogs() : null, !n && this._renderShowMoreLink()), this.props.shouldShowMore ? this._renderAdditionalStats() : null) + } + _renderAdditionalStats() { + const { + isLocalVideo: e + } = this.props; + return C().createElement("table", { + className: "connection-info__container" + }, C().createElement("tbody", null, e ? this._renderBandwidth() : null, e ? this._renderTransport() : null, e ? this._renderRegion() : null, this._renderAudioSsrc(), this._renderVideoSsrc(), this._renderParticipantId())) + } + _renderBandwidth() { + const { + download: e, + upload: t + } = this.props.bandwidth || {}; + return C().createElement("tr", null, C().createElement("td", null, this.props.t("connectionindicator.bandwidth")), C().createElement("td", null, C().createElement("span", { + className: "connection-info__download" + }, "↓"), e ? `${e} Kbps` : "N/A", C().createElement("span", { + className: "connection-info__upload" + }, "↑"), t ? `${t} Kbps` : "N/A")) + } + _renderBitrate() { + const { + download: e, + upload: t + } = this.props.bitrate || {}; + return C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, this.props.t("connectionindicator.bitrate"))), C().createElement("td", null, C().createElement("span", { + className: "connection-info__download" + }, "↓"), e ? `${e} Kbps` : "N/A", C().createElement("span", { + className: "connection-info__upload" + }, "↑"), t ? `${t} Kbps` : "N/A")) + } + _renderAudioSsrc() { + const { + audioSsrc: e, + t + } = this.props; + return C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, t("connectionindicator.audio_ssrc"))), C().createElement("td", null, e || "N/A")) + } + _renderVideoSsrc() { + const { + videoSsrc: e, + t + } = this.props; + return C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, t("connectionindicator.video_ssrc"))), C().createElement("td", null, e || "N/A")) + } + _renderParticipantId() { + const { + participantId: e, + t + } = this.props; + return C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, t("connectionindicator.participant_id"))), C().createElement("td", null, e || "N/A")) + } + _renderCodecs() { + const { + codec: e, + t + } = this.props; + if (!e) return; + let n; + return Object.keys(e || {}).forEach((t => { const { - children: e, - isSelected: t, - index: n, - deviceId: a, - length: r, - listHeaderId: i - } = this.props, o = `choose_speaker${a}`, s = `${i} ${o} `; - return x().createElement("li", { - "aria-checked": t, - "aria-labelledby": s, - "aria-posinset": n, - "aria-setsize": r, - className: "audio-preview-speaker", - onClick: this._onClick, - onKeyPress: this._onKeyPress, - role: "radio", - tabIndex: 0 - }, x().createElement(yQ, { - isSelected: t, - key: a, - labelId: o - }, e), x().createElement(wQ, { - onClick: this._onTestButtonClick, - onKeyPress: this._onTestButtonClick - }), x().createElement("audio", { - preload: "auto", - ref: this.audioRef, - src: "sounds/ring.wav" - })) - } + audio: a, + video: r + } = e[t]; + n = `${a}, ${r}` + })), n || (n = "N/A"), C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, t("connectionindicator.codecs"))), C().createElement("td", null, n)) + } + _renderConnectionSummary() { + return C().createElement("tr", { + className: "connection-info__status" + }, C().createElement("td", null, C().createElement("span", null, this.props.t("connectionindicator.status"))), C().createElement("td", null, this.props.connectionSummary)) + } + _renderE2eRtt() { + const { + e2eRtt: e, + t + } = this.props, n = e ? `${e.toFixed(0)}ms` : "N/A"; + return C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, t("connectionindicator.e2e_rtt"))), C().createElement("td", null, n)) } - - function EQ(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _renderRegion() { + const { + region: e, + serverRegion: t, + t: n + } = this.props; + let a = t; + if (t) return e && t && e !== t && (a += ` from ${e}`), C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, n("connectionindicator.connectedTo"))), C().createElement("td", null, a)) } - const xQ = c.default.util.browser; - - function CQ(e, t, n) { - return "default" === e ? n("settings.sameAsSystem", { - label: t.replace("Default - ", "") - }) : t - } - class AQ extends E.Component { - constructor(e) { - super(e), EQ(this, "microphoneHeaderId", "microphone_settings_header"), EQ(this, "speakerHeaderId", "speaker_settings_header"), this._onMicrophoneEntryClick = this._onMicrophoneEntryClick.bind(this), this._onSpeakerEntryClick = this._onSpeakerEntryClick.bind(this), this._onEscClick = this._onEscClick.bind(this), this._audioContentRef = x().createRef(), this.state = { - audioTracks: e.microphoneDevices.map((({ - deviceId: e, - label: t - }) => ({ - deviceId: e, - hasError: !1, - jitsiTrack: null, - label: t - }))) - } - } - _onEscClick(e) { - "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this._audioContentRef.current.style.display = "none") - } - _onMicrophoneEntryClick(e) { - this.props.setAudioInputDevice(e) - } - _onSpeakerEntryClick(e) { - this.props.setAudioOutputDevice(e) - } - _renderMicrophoneEntry(e, t, n, a) { + _renderBridgeCount() { + const { + bridgeCount: e, + t + } = this.props; + if (e || 0 === e) return C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, t("connectionindicator.bridgeCount"))), C().createElement("td", null, e)) + } + _renderFrameRate() { + const { + framerate: e, + t + } = this.props, n = Object.keys(e || {}).map((t => e[t])).join(", ") || "N/A"; + return C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, t("connectionindicator.framerate"))), C().createElement("td", null, n)) + } + _renderPacketLoss() { + const { + packetLoss: e, + t + } = this.props; + let n; + if (e) { const { - deviceId: r, - jitsiTrack: i, - hasError: o - } = e, s = CQ(r, e.label, a), l = r === this.props.currentMicDeviceId; - return x().createElement(_Q, { - deviceId: r, - hasError: o, - index: t, - isSelected: l, - jitsiTrack: i, - key: `me-${t}`, - length: n, - listHeaderId: this.microphoneHeaderId, - onClick: this._onMicrophoneEntryClick - }, s) - } - _renderSpeakerEntry(e, t, n, a) { + download: t, + upload: a + } = e; + n = C().createElement("td", null, C().createElement("span", { + className: "connection-info__download" + }, "↓"), null === t ? "N/A" : `${t}%`, C().createElement("span", { + className: "connection-info__upload" + }, "↑"), null === a ? "N/A" : `${a}%`) + } else n = C().createElement("td", null, "N/A"); + return C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, t("connectionindicator.packetloss"))), n) + } + _renderResolution() { + const { + resolution: e, + maxEnabledResolution: t, + t: n + } = this.props; + let a = Object.keys(e || {}).map((t => { const { - deviceId: r - } = e, i = CQ(r, e.label, a), o = `se-${t}`, s = r === this.props.currentOutputDeviceId; - return x().createElement(SQ, { - deviceId: r, - index: t, - isSelected: s, - key: o, - length: n, - listHeaderId: this.speakerHeaderId, - onClick: this._onSpeakerEntryClick - }, i) - } - async _setTracks() { - if (xQ.isWebKitBased()) return; - this._disposeTracks(this.state.audioTracks); - const e = await (t = this.props.microphoneDevices, Promise.all(t.map((async ({ - deviceId: e, - label: t - }) => { - let n = null, - a = !1; - try { - n = await st("audio", e, 5e3) - } catch (e) { - a = !0 - } - return { - deviceId: e, - hasError: a, - jitsiTrack: n, - label: t - } - })))); - var t; - this._componentWasUnmounted ? this._disposeTracks(e) : this.setState({ - audioTracks: e + width: n, + height: a + } = e[t]; + return `${n}x${a}` + })).join(", ") || "N/A"; + return t && t < 720 && (a += ` (${n("connectionindicator.maxEnabledResolution")} ${t}p)`), C().createElement("tr", null, C().createElement("td", null, C().createElement("span", null, n("connectionindicator.resolution"))), C().createElement("td", null, a)) + } + _renderSaveLogs() { + return C().createElement("span", null, C().createElement("a", { + className: "savelogs link", + onClick: this.props.onSaveLogs, + role: "button", + tabIndex: 0 + }, this.props.t("connectionindicator.savelogs")), C().createElement("span", null, " | ")) + } + _renderShowMoreLink() { + const e = this.props.shouldShowMore ? "connectionindicator.less" : "connectionindicator.more"; + return C().createElement("a", { + className: "showmore link", + onClick: this.props.onShowMore, + role: "button", + tabIndex: 0 + }, this.props.t(e)) + } + _renderStatistics() { + const e = !this.props.isLocalVideo; + return C().createElement("table", { + className: "connection-info__container" + }, C().createElement("tbody", null, this._renderConnectionSummary(), this._renderBitrate(), this._renderPacketLoss(), e ? this._renderE2eRtt() : null, e ? this._renderRegion() : null, this._renderResolution(), this._renderFrameRate(), this._renderCodecs(), e ? null : this._renderBridgeCount())) + } + _renderTransport() { + const { + t: e, + transport: t + } = this.props; + if (!t || 0 === t.length) return [C().createElement("tr", { + key: "address" + }, C().createElement("td", null, C().createElement("span", null, e("connectionindicator.address"))), C().createElement("td", null, "N/A"))]; + const n = { + localIP: [], + localPort: [], + remoteIP: [], + remotePort: [], + transportType: [] + }; + for (let e = 0; e < t.length; e++) { + const a = g3(t[e].ip), + r = g3(t[e].localip), + i = b3(t[e].localip), + o = b3(t[e].ip); + n.remoteIP.includes(a) || n.remoteIP.push(a), n.localIP.includes(r) || n.localIP.push(r), n.localPort.includes(i) || n.localPort.push(i), n.remotePort.includes(o) || n.remotePort.push(o), n.transportType.includes(t[e].type) || n.transportType.push(t[e].type) + } + let a = !1, + r = !1; + t.length && (a = t[0].p2p, r = "relay" === t[0].localCandidateType || "relay" === t[0].remoteCandidateType); + const i = []; + return a && i.push(C().createElement("span", null, " (p2p)")), r && i.push(C().createElement("span", null, " (turn)")), [{ + additionalData: i, + data: n.remoteIP, + key: "remoteaddress", + label: e("connectionindicator.remoteaddress", { + count: n.remoteIP.length }) - } - _disposeTracks(e) { - e.forEach((({ - jitsiTrack: e - }) => { - e && e.dispose() - })) - } - componentDidMount() { - this._setTracks() - } - componentWillUnmount() { - this._componentWasUnmounted = !0, this._disposeTracks(this.state.audioTracks) - } - componentDidUpdate(e) { - Re(this.props.microphoneDevices, e.microphoneDevices) || this._setTracks() - } - render() { - const { - outputDevices: e, - t - } = this.props; - return x().createElement("div", null, x().createElement("div", { - "aria-labelledby": "audio-settings-button", - className: "audio-preview-content", - id: "audio-settings-dialog", - onKeyDown: this._onEscClick, - ref: this._audioContentRef, - role: "menu", - tabIndex: -1 - }, x().createElement("div", { - role: "menuitem" - }, x().createElement(bQ, { - IconComponent: Zu, - id: this.microphoneHeaderId, - text: t("settings.microphones") - }), x().createElement("ul", { - "aria-labelledby": "microphone_settings_header", - className: "audio-preview-content-ul", - role: "radiogroup", - tabIndex: "-1" - }, this.state.audioTracks.map(((e, n) => this._renderMicrophoneEntry(e, n, this.state.audioTracks.length, t))))), e.length > 0 && x().createElement("div", { - role: "menuitem" - }, x().createElement("hr", { - className: "audio-preview-hr" - }), x().createElement(bQ, { - IconComponent: nh, - id: this.speakerHeaderId, - text: t("settings.speakers") - }), x().createElement("ul", { - "aria-labelledby": "speaker_settings_header", - className: "audio-preview-content-ul", - role: "radiogroup", - tabIndex: "-1" - }, e.map(((n, a) => this._renderSpeakerEntry(n, a, e.length, t))))))) - } - } - const jQ = Li(AQ), - PQ = ze((function(e) { - const { - clientWidth: t - } = e["features/base/responsive-ui"]; - return { - popupPlacement: t <= "320" ? "auto" : "top-start", - currentMicDeviceId: pa(e), - currentOutputDeviceId: ha(e), - isOpen: xJ(e), - microphoneDevices: FM(e), - outputDevices: qM(e) - } - }), { - onClose: LQ, - setAudioInputDevice: JM, - setAudioOutputDevice: ZM - })((function({ - children: e, - currentMicDeviceId: t, - currentOutputDeviceId: n, - isOpen: a, - microphoneDevices: r, - setAudioInputDevice: i, - setAudioOutputDevice: o, - onClose: s, - outputDevices: l, - popupPlacement: c - }) { - return x().createElement("div", { - className: "audio-preview" - }, x().createElement(eE, { - content: x().createElement(jQ, { - currentMicDeviceId: t, - currentOutputDeviceId: n, - microphoneDevices: r, - outputDevices: l, - setAudioInputDevice: i, - setAudioOutputDevice: o - }), - isOpen: a, - onClose: s, - placement: c - }, e)) - })); + }, { + data: n.remotePort, + key: "remoteport", + label: e("connectionindicator.remoteport", { + count: t.length + }) + }, { + data: n.localIP, + key: "localaddress", + label: e("connectionindicator.localaddress", { + count: n.localIP.length + }) + }, { + data: n.localPort, + key: "localport", + label: e("connectionindicator.localport", { + count: t.length + }) + }, { + data: n.transportType, + key: "transport", + label: e("connectionindicator.transport", { + count: n.transportType.length + }) + }].map(this._renderTransportTableRow) + } + _renderTransportTableRow(e) { + const { + additionalData: t, + data: n, + key: a, + label: r + } = e; + return C().createElement("tr", { + key: a + }, C().createElement("td", null, C().createElement("span", null, r)), C().createElement("td", null, function(e) { + let t = ""; + for (let n = 0; n < e.length; n++) t += (0 === n ? "" : ", ") + e[n]; + return t + }(n), t || null)) + } + } - function DQ() { - return DQ = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, DQ.apply(this, arguments) + function g3(e) { + return e ? e.substring(0, e.lastIndexOf(":")) : "" + } + + function b3(e) { + return e ? e.substring(e.lastIndexOf(":") + 1, e.length) : "" + } + const y3 = Ei(f3); + + function v3(e, t) { + const n = encodeURIComponent(JSON.stringify(e, null, " ")), + a = document.createElement("a"); + a.download = t, a.href = `data:application/json;charset=utf-8,\n${n}`, a.dataset.downloadurl = ["text/json", a.download, a.href].join(":"), a.dispatchEvent(new MouseEvent("click", { + view: window, + bubbles: !0, + cancelable: !1 + })) + } + const k3 = {}, _3 = { + startListeningForStats(e) { + e.on(gt.LOCAL_STATS_UPDATED, (t => this._onStatsUpdated(e.myUserId(), t))), e.on(gt.REMOTE_STATS_UPDATED, ((e, t) => this._emitStatsUpdate(e, t))), e.on(bt.E2E_RTT_CHANGED, ((e, t) => { + const n = { + e2eRtt: t, + region: e.getProperty("region") + }; + this._emitStatsUpdate(e.getId(), n) + })) + }, + subscribeToClientStats(e, t) { + e && (k3[e] || (k3[e] = []), k3[e].push(t)) + }, + unsubscribeToClientStats(e, t) { + if (!k3[e]) return; + const n = k3[e].filter((e => e !== t)); + n.length ? k3[e] = n : delete k3[e] + }, + _emitStatsUpdate(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + (k3[e] || []).forEach((e => { + e(t) + })) + }, + _onStatsUpdated(e, t) { + const n = t.framerate || {}, + a = t.resolution || {}, + r = t.codec || {}, + i = Object.assign({}, t, { + framerate: n[e], + resolution: a[e], + codec: r[e] + }); + this._emitStatsUpdate(e, i); + const o = Object.keys(n), + s = Object.keys(a), + l = Object.keys(r); + _().union(o, s, l).filter((t => t !== e)).forEach((e => { + const t = {}, + i = n[e]; + i && (t.framerate = i); + const o = a[e]; + o && (t.resolution = o); + const s = r[e]; + s && (t.codec = s), this._emitStatsUpdate(e, t) + })) } - class TQ extends E.Component { - constructor(e) { - super(e), this._onEscClick = this._onEscClick.bind(this), this._videoContentRef = x().createRef(), this.state = { - trackData: new Array(e.videoDeviceIds.length).fill({ - jitsiTrack: null - }) - } - } - _onEscClick(e) { - "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this._videoContentRef.current.style.display = "none") - } - async _setTracks() { - this._disposeTracks(this.state.trackData); - const e = await (t = this.props.videoDeviceIds, Promise.all(t.map((e => st("video", e, 5e3).then((t => ({ - jitsiTrack: t, - deviceId: e - }))).catch((() => ({ - jitsiTrack: null, - deviceId: e, - error: "deviceSelection.previewUnavailable" - }))))))); - var t; - this._componentWasUnmounted ? this._disposeTracks(e) : this.setState({ - trackData: e + }, w3 = _3; class S3 extends x.Component { + constructor(e) { + super(e), this._onStatsUpdated = this._onStatsUpdated.bind(this) + } + componentDidMount() { + w3.subscribeToClientStats(this.props.participantId, this._onStatsUpdated) + } + componentDidUpdate(e) { + e.participantId !== this.props.participantId && (w3.unsubscribeToClientStats(e.participantId, this._onStatsUpdated), w3.subscribeToClientStats(this.props.participantId, this._onStatsUpdated)) + } + componentWillUnmount() { + w3.unsubscribeToClientStats(this.props.participantId, this._onStatsUpdated), clearTimeout(this.autoHideTimeout) + } + _onStatsUpdated() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const { + connectionQuality: t + } = e, n = void 0 === t ? {} : { + percent: t + }, a = Object.assign({}, this.state.stats, e, n); + this.setState({ + stats: a + }), this._updateIndicatorAutoHide(a.percent) + } + _updateIndicatorAutoHide(e) { + e < 30 ? (clearTimeout(this.autoHideTimeout), this.autoHideTimeout = void 0, this.setState({ + showIndicator: !0 + })) : this.autoHideTimeout || (this.autoHideTimeout = setTimeout((() => { + this.setState({ + showIndicator: !1 }) + }), this.props._autoHideTimeout)) + } + } + const E3 = S3, x3 = [{ + colorClass: "status-high", + percent: 30, + tip: "connectionindicator.quality.good", + width: "100%" + }, { + colorClass: "status-med", + percent: 10, + tip: "connectionindicator.quality.nonoptimal", + width: "66%" + }, { + colorClass: "status-low", + percent: 0, + tip: "connectionindicator.quality.poor", + width: "33%" + }], C3 = Ei(Ne((function(e, t) { + const { + participantId: n + } = t, a = e["features/base/conference"].conference, r = n ? Vh(e, n) : Uh(e), i = { + _connectionStatus: null == r ? void 0 : r.connectionStatus, + _enableSaveLogs: e["features/base/config"].enableSaveLogs, + _disableShowMoreStats: e["features/base/config"].disableShowMoreStats, + _isLocalVideo: null == r ? void 0 : r.local + }; + if (a) { + const t = oh(e["features/base/tracks"], Bi, n), + r = oh(e["features/base/tracks"], Fi, n); + return { + ...i, + _audioSsrc: r ? a.getSsrcByTrack(r.jitsiTrack) : void 0, + _videoSsrc: t ? a.getSsrcByTrack(t.jitsiTrack) : void 0 } - _disposeTracks(e) { - e.forEach((({ - jitsiTrack: e - }) => { - e && e.dispose() - })) - } - _onEntryClick(e) { - return () => { - this.props.setVideoInputDevice(e), this.props.toggleVideoSettings() - } - } - _renderPreviewEntry(e, t) { - const { - error: n, - jitsiTrack: a, - deviceId: r - } = e, { - currentCameraDeviceId: i, - t: o - } = this.props, s = r === i, l = `vp-${t}`, c = "video-preview-entry"; - if (n) return x().createElement("div", { - className: c, - key: l, - tabIndex: -1 - }, x().createElement("div", { - className: "video-preview-error" - }, o(n))); - const u = { - className: c, - key: l, - tabIndex: "0" - }, - d = a && a.getTrackLabel(); - return s ? (u["aria-checked"] = !0, u.className = `${c} video-preview-entry--selected`) : (u.onClick = this._onEntryClick(r), u.onKeyPress = e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), u.onClick()) - }), x().createElement("div", DQ({}, u, { - role: "radio" - }), x().createElement("div", { - className: "video-preview-label" - }, d && x().createElement("div", { - className: "video-preview-label-container" - }, x().createElement("div", { - className: "video-preview-label-text" - }, x().createElement("span", null, d)))), x().createElement("div", { - className: "video-preview-overlay" - }), x().createElement(tJ, { - className: "video-preview-video flipVideoX", - playsinline: !0, - videoTrack: { - jitsiTrack: a - } + } + return i + }), (function(e) { + return { + _onSaveLogs() { + e(((e, t) => { + v3(t()["features/base/connection"].connection.getLogs(), `meetlog-${function(){const e=window.location.pathname;return Sn(e.substring(e.lastIndexOf("/")+1)||void 0)}()||""}.json`) })) } - componentDidMount() { - this._setTracks() - } - componentWillUnmount() { - this._componentWasUnmounted = !0, this._disposeTracks(this.state.trackData) - } - componentDidUpdate(e) { - Re(this.props.videoDeviceIds, e.videoDeviceIds) || this._setTracks() - } - render() { - const { - trackData: e - } = this.state; - return x().createElement("div", { - "aria-labelledby": "video-settings-button", - className: "video-preview-container", - id: "video-settings-dialog", - onKeyDown: this._onEscClick, - ref: this._videoContentRef, - role: "radiogroup", - tabIndex: "-1" - }, e.map(((e, t) => this._renderPreviewEntry(e, t)))) - } - } - const OQ = Li(TQ), - MQ = ze((function(e) { - const { - clientWidth: t - } = e["features/base/responsive-ui"]; - return { - currentCameraDeviceId: da(e), - isOpen: CJ(e), - popupPlacement: t <= "320" ? "auto" : "top-start", - videoDeviceIds: BM(e) - } - }), { - onClose: FQ, - setVideoInputDevice: XM - })((function({ - currentCameraDeviceId: e, - children: t, - isOpen: n, - onClose: a, - popupPlacement: r, - setVideoInputDevice: i, - videoDeviceIds: o - }) { - return x().createElement("div", { - className: "video-preview" - }, x().createElement(eE, { - content: x().createElement(OQ, { - currentCameraDeviceId: e, - setVideoInputDevice: i, - toggleVideoSettings: a, - videoDeviceIds: o - }), - isOpen: n, - onClose: a, - placement: r - }, t)) - })); - - function IQ(e) { - return sP(mQ, { - defaultTab: e + } + }))(class extends E3 { + constructor(e) { + super(e), this.state = { + autoHideTimeout: void 0, + showIndicator: !1, + showMoreStats: !1, + stats: e.inheritedStats || {} + }, this._onToggleShowMore = this._onToggleShowMore.bind(this) + } + render() { + const { + bandwidth: e, + bitrate: t, + bridgeCount: n, + codec: a, + e2eRtt: r, + framerate: i, + maxEnabledResolution: o, + packetLoss: s, + region: l, + resolution: c, + serverRegion: u, + transport: d + } = this.state.stats; + return C().createElement(y3, { + audioSsrc: this.props._audioSsrc, + bandwidth: e, + bitrate: t, + bridgeCount: n, + codec: a, + connectionSummary: this._getConnectionStatusTip(), + disableShowMoreStats: this.props._disableShowMoreStats, + e2eRtt: r, + enableSaveLogs: this.props._enableSaveLogs, + framerate: i, + isLocalVideo: this.props._isLocalVideo, + maxEnabledResolution: o, + onSaveLogs: this.props._onSaveLogs, + onShowMore: this._onToggleShowMore, + packetLoss: s, + participantId: this.props.participantId, + region: l, + resolution: c, + serverRegion: u, + shouldShowMore: this.state.showMoreStats, + transport: d, + videoSsrc: this.props._videoSsrc }) } - - function NQ(e) { - return (t, n) => { - const a = wJ(n()); - e.followMeEnabled !== a.followMeEnabled && t(bN(e.followMeEnabled)); - const r = e.showPrejoinPage; - var i, o, s; - if (r !== a.showPrejoinPage && (r && (null === (i = n()["features/prejoin"]) || void 0 === i ? void 0 : i.showPrejoin) && t(bL(GR)), t(bn({ - userSelectedSkipPrejoin: !r - }))), e.startAudioMuted === a.startAudioMuted && e.startVideoMuted === a.startVideoMuted || t((o = e.startAudioMuted, s = e.startVideoMuted, (e, t) => { - const n = yI(t()); - return n && n.setStartMutedPolicy({ - audio: o, - video: s - }), e(gN(o, s)) - })), e.currentLanguage !== a.currentLanguage && Ni.changeLanguage(e.currentLanguage), e.currentFramerate !== a.currentFramerate) { - const n = parseInt(e.currentFramerate, 10); - t({ - type: xV, - captureFrameRate: n - }) + _getConnectionStatusTip() { + let e; + switch (this.props._connectionStatus) { + case vt.INTERRUPTED: + e = "connectionindicator.quality.lost"; + break; + case vt.INACTIVE: + e = "connectionindicator.quality.inactive"; + break; + default: { + const { + percent: t + } = this.state.stats; + e = void 0 === t ? "connectionindicator.quality.good" : this._getDisplayConfiguration(t).tip } } + return this.props.t(e) } - - function zQ(e) { - return (t, n) => { - const a = SJ(n()); - e.displayName !== a.displayName && APP.conference.changeLocalDisplayName(e.displayName), e.email !== a.email && APP.conference.changeLocalEmail(e.email) - } + _getDisplayConfiguration(e) { + return x3.find((t => e >= t.percent)) || {} } - - function RQ(e) { - return (t, n) => { - const a = EJ(n()); - (e.soundsIncomingMessage !== a.soundsIncomingMessage || e.soundsParticipantJoined !== a.soundsParticipantJoined || e.soundsParticipantLeft !== a.soundsParticipantLeft || e.soundsTalkWhileMuted !== a.soundsTalkWhileMuted || e.soundsReactions !== a.soundsReactions) && t(bn({ - soundsIncomingMessage: e.soundsIncomingMessage, - soundsParticipantJoined: e.soundsParticipantJoined, - soundsParticipantLeft: e.soundsParticipantLeft, - soundsTalkWhileMuted: e.soundsTalkWhileMuted, - soundsReactions: e.soundsReactions - })) - } + _onToggleShowMore() { + this.setState({ + showMoreStats: !this.state.showMoreStats + }) } + })), A3 = "CLIENT_RESIZED", T3 = "SET_ASPECT_RATIO", D3 = "SET_REDUCED_UI", P3 = "SET_CONTEXT_MENU_OPEN"; - function LQ() { - return (e, t) => { - var n; - e((n = !t()["features/settings"].audioSettingsVisible, { - type: dW, - value: n + function j3(e, t) { + return (n, a) => { + let r = e; + if ("ReactNative" !== navigator.product) { + const e = a(), + { + isOpen: t + } = e["features/chat"], + n = Om(e); + t && (r -= 315), n && (r -= HH.CE) + }(0, Me.unstable_batchedUpdates)((() => { + var a, i; + n({ + type: A3, + clientHeight: t, + clientWidth: r + }), n((a = e, i = t, (e, t) => { + if (a !== i) { + const n = a < i ? uX : dX; + if (n !== t()["features/base/responsive-ui"].aspectRatio) return e({ + type: T3, + aspectRatio: n + }) + } })) - } + })) } + } - function FQ() { - return (e, t) => { - var n; - e((n = !t()["features/settings"].videoSettingsVisible, { - type: pW, - value: n - })) - } + function M3(e) { + return { + type: P3, + isOpen: e } - const qQ = (0, Ve.getLogger)("react/features/video-menu/actions.any.js"); - - function BQ(e, t, n = !1) { - return (a, r) => { - const i = t === Xi; - i || t === to ? e || !dm(Xi, r()) ? (e && n && a(us(!1, !1, !0)), Ma(hn(i ? Kt : $t, { - enable: e - })), a(i ? lf(e, !0) : cf(e, t, 4, !0)), "undefined" == typeof APP || APP.UI.emitEvent(i ? sQ.AUDIO_MUTED : sQ.VIDEO_MUTED, e)) : Dv(Xi, r()) || a(Xm(Xi)) : qQ.error(`Unsupported media type: ${t}`) - } + } + const I3 = "CAPTURE_EVENTS", O3 = "REMOTE_CONTROL_ACTIVE", N3 = "SET_RECEIVER_TRANSPORT", R3 = "SET_RECEIVER_ENABLED", z3 = "SET_CONTROLLER", L3 = "SET_CONTROLLED_PARTICIPANT", F3 = "SET_REQUESTED_PARTICIPANT"; class q3 extends x.Component { + constructor(e) { + super(e), this._onCancel = this._onCancel.bind(this), this._onSubmit = this._onSubmit.bind(this) + } + render() { + return C().createElement(yL, { + okKey: "dialog.allow", + onCancel: this._onCancel, + onSubmit: this._onSubmit, + titleKey: "dialog.remoteControlTitle", + width: "small" + }, this.props.t("dialog.remoteControlRequestMessage", { + user: this.props._displayName + }), this._getAdditionalMessage()) + } + _getAdditionalMessage() { + const { + _isScreenSharing: e, + _sourceType: t + } = this.props; + return e && "screen" === t ? null : C().createElement("div", null, C().createElement("br", null), this.props.t("dialog.remoteControlShareScreenWarning")) } - - function UQ(e, t) { - return n => { - t === Xi || t === to ? (Ma(function(e, t) { - return { - action: "clicked", - actionSubject: "remote.mute.dialog.confirm.button", - attributes: { - participant_id: e, - media_type: t - }, - source: "remote.mute.dialog", - type: Wt - } - }(e, t)), n(function(e, t) { - return { - type: Lv, - id: e, - mediaType: t - } - }(e, t))) : qQ.error(`Unsupported media type: ${t}`) - } + _onCancel() { + const { + dispatch: e, + participantId: t + } = this.props; + return e(function(e) { + return (t, n) => { + const a = n(), + { + conference: r + } = a["features/base/conference"]; + t(l5(!1)), t5(r, e, { + type: V3, + action: K3 + }) + } + }(t)), !0 } - - function HQ(e, t) { - return (n, a) => { - const r = a(), - i = Rh(r).id; - e.includes(i) || n(BQ(!0, t, !0)), Wh(r).forEach(((a, r) => { - e.includes(r) || (n(UQ(r, t)), n(t === Xi ? Ym(r) : Gm(r))) - })) - } + _onSubmit() { + const { + dispatch: e, + participantId: t + } = this.props; + return e(HI()), e(function(e) { + return (t, n) => { + let a; + t({ + type: z3, + controller: e + }), X3.log(`Remote control permissions granted to: ${e}`); + const r = n(), + i = nh(r["features/base/tracks"]), + o = "desktop" === (null == i ? void 0 : i.videoType), + { + sourceType: s + } = (null == i ? void 0 : i.jitsiTrack) || {}; + a = o && "screen" === s ? t(h5()) : APP.conference.toggleScreenSharing(!0, { + desktopSharingSources: ["screen"] + }).then((() => t(h5()))); + const { + conference: l + } = r["features/base/conference"]; + a.then((() => t5(l, e, { + type: V3, + action: G3 + }))).catch((n => { + X3.error(n), t5(l, e, { + type: V3, + action: $3 + }), t(tg({ + descriptionKey: "dialog.startRemoteControlErrorMessage", + titleKey: "dialog.remoteControlTitle" + }, Yf.LONG)), t(p5(!0)) + })) + } + }(t)), !1 } + } + const B3 = Ei(Ne((function(e, t) { + const { + _displayName: n, + participantId: a + } = t, r = Vh(e, a), i = nh(e["features/base/tracks"]), o = "desktop" === (null == i ? void 0 : i.videoType), { + sourceType: s + } = (null == i ? void 0 : i.jitsiTrack) || {}; + return { + _displayName: r ? r.name : n, + _isScreenSharing: o, + _sourceType: s + } + }))(q3)), U3 = "remote-control", H3 = "http://jitsi.org/meet/remotecontrol", V3 = "permissions", W3 = "stop", Y3 = "request", G3 = "grant", K3 = "deny", $3 = "error", J3 = "command", Z3 = "printscreen", Q3 = { + 8: "backspace", + 9: "tab", + 13: "enter", + 16: "shift", + 17: "control", + 18: "alt", + 20: "caps_lock", + 27: "escape", + 32: "space", + 33: "pageup", + 34: "pagedown", + 35: "end", + 36: "home", + 37: "left", + 38: "up", + 39: "right", + 40: "down", + 42: Z3, + 44: Z3, + 45: "insert", + 46: "delete", + 59: ";", + 61: "=", + 91: "command", + 92: J3, + 93: J3, + 96: "numpad_0", + 97: "numpad_1", + 98: "numpad_2", + 99: "numpad_3", + 100: "numpad_4", + 101: "numpad_5", + 102: "numpad_6", + 103: "numpad_7", + 104: "numpad_8", + 105: "numpad_9", + 112: "f1", + 113: "f2", + 114: "f3", + 115: "f4", + 116: "f5", + 117: "f6", + 118: "f7", + 119: "f8", + 120: "f9", + 121: "f10", + 122: "f11", + 123: "f12", + 124: Z3, + 173: "-", + 186: ";", + 187: "=", + 188: ",", + 189: "-", + 190: ".", + 191: "/", + 192: "`", + 219: "[", + 220: "\\", + 221: "]", + 222: "'", + 224: "command", + 229: ";" + }; + for (let e = 0; e < 10; e++) Q3[e + 48] = `${e}`; + for (let e = 0; e < 26; e++) { + const t = e + 65; + Q3[t] = String.fromCharCode(t).toLowerCase() + } + const X3 = $e("features/remote-control"); - function VQ(e) { - return { - type: TI, - showConnectionInfo: e - } - } + function e5(e) { + return !e["features/base/config"].disableRemoteControl && c.default.isDesktopSharingEnabled() + } - function WQ(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const YQ = Li(ze((function(e) { - return { - _audioMuted: ts(e["features/base/tracks"], Xi), - _disabled: e["features/base/config"].startSilent, - visible: Df(e, "audio-mute.enabled", !0) - } - }))(class extends Yw { - constructor(e) { - super(e), WQ(this, "accessibilityLabel", "toolbar.accessibilityLabel.mute"), WQ(this, "label", "toolbar.mute"), WQ(this, "tooltip", "toolbar.mute"), this._onKeyboardShortcut = this._onKeyboardShortcut.bind(this) - } - componentDidMount() { - "undefined" == typeof APP || APP.keyboardshortcut.registerShortcut("M", null, this._onKeyboardShortcut, "keyboardShortcuts.mute") - } - componentWillUnmount() { - "undefined" == typeof APP || APP.keyboardshortcut.unregisterShortcut("M") - } - _isAudioMuted() { - return this.props._audioMuted - } - _onKeyboardShortcut() { - Ma(dn(Kt, Gt, { - enable: !this._isAudioMuted() - })), super._handleClick() - } - _setAudioMuted(e) { - this.props.dispatch(BQ(e, Xi)) - } - _isDisabled() { - return this.props._disabled - } - })); - class GQ extends E.Component { - constructor(e) { - super(e), this._onEscClick = this._onEscClick.bind(this), this._onClick = this._onClick.bind(this) - } - _onEscClick(e) { - "Escape" === e.key && this.props.isOpen && (e.preventDefault(), e.stopPropagation(), this._onClick()) - } - _onClick() { - const { - handleClick: e, - onAudioOptionsClick: t - } = this.props; - e ? e() : t() - } - render() { - const { - handleClick: e, - hasPermissions: t, - isDisabled: n, - visible: a, - isOpen: r, - t: i - } = this.props, o = !t || n || !c.default.mediaDevices.isMultipleAudioInputSupported(); - return a ? x().createElement(PQ, null, x().createElement(Yj, { - ariaControls: "audio-settings-dialog", - ariaExpanded: r, - ariaHasPopup: !0, - ariaLabel: i("toolbar.audioSettings"), - icon: tl, - iconDisabled: o, - iconId: "audio-settings-button", - iconTooltip: i("toolbar.audioSettings"), - onIconClick: this._onClick, - onIconKeyDown: this._onEscClick - }, x().createElement(YQ, { - handleClick: e - }))) : x().createElement(YQ, { - handleClick: e - }) - } - } - const KQ = Li(ze((function(e) { - const { - permissions: t = {} - } = e["features/base/devices"]; - return { - hasPermissions: t.audio, - isDisabled: _H(e), - isOpen: xJ(e), - visible: !Sa() - } - }), { - onAudioOptionsClick: LQ - })(GQ)), - $Q = "SET_AUDIO_ONLY", - JQ = Je("features/base/audio-only"); - - function ZQ(e, t = !1) { - return (n, a) => { - const { - enabled: r - } = a()["features/base/audio-only"]; - r !== e && (Ma({ - action: "audio.only." + (e ? "enabled" : "disabled") - }), JQ.log("Audio-only " + (e ? "enabled" : "disabled")), n({ - type: $Q, - audioOnly: e, - ensureVideoTrack: t - }), "undefined" != typeof APP && APP.UI.emitEvent(sQ.TOGGLE_AUDIO_ONLY, e)) - } + function t5(e, t, n) { + if (!t) return X3.warn("Remote control: Skip sending remote control event. Params:", t), !1; + try { + return e.sendEndpointMessage(t, { + name: U3, + ...n + }), !0 + } catch (e) { + return X3.error("Failed to send EndpointMessage via the datachannels", e), !1 } + } - function QQ(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const XQ = Li(ze((function(e) { - const { - enabled: t - } = e["features/base/audio-only"], n = e["features/base/tracks"], a = Df(e, "video-mute.enabled", !0); - return { - _audioOnly: Boolean(t), - _videoDisabled: SH(e), - _videoMediaType: $o(n), - _videoMuted: es(n), - visible: a - } - }))(class extends $w { - constructor(e) { - super(e), QQ(this, "accessibilityLabel", "toolbar.accessibilityLabel.videomute"), QQ(this, "label", "toolbar.videomute"), QQ(this, "tooltip", "toolbar.videomute"), this._onKeyboardShortcut = this._onKeyboardShortcut.bind(this) - } - componentDidMount() { - "undefined" == typeof APP || APP.keyboardshortcut.registerShortcut("V", null, this._onKeyboardShortcut, "keyboardShortcuts.videoMute") - } - componentWillUnmount() { - "undefined" == typeof APP || APP.keyboardshortcut.unregisterShortcut("V") - } - _isDisabled() { - return this.props._videoDisabled - } - _isVideoMuted() { - return this.props._videoMuted - } - _onKeyboardShortcut() { - Ma(dn($t, Gt, { - enable: !this._isVideoMuted() - })), super._handleClick() - } - _setVideoMuted(e) { - Ma(hn($t, { - enable: e - })), this.props._audioOnly && this.props.dispatch(ZQ(!1, !0)); - const t = this.props._videoMediaType; - this.props.dispatch(cf(e, t, 4, !0)), "undefined" == typeof APP || APP.UI.emitEvent(sQ.VIDEO_MUTED, e, !0) - } - })); - class eX extends E.Component { - constructor(e) { - super(e), this._onEscClick = this._onEscClick.bind(this), this._onClick = this._onClick.bind(this) - } - _isIconDisabled() { - const { - hasPermissions: e, - hasVideoTrack: t, - isDisabled: n - } = this.props; - return (!e || n) && !t - } - _onEscClick(e) { - "Escape" === e.key && this.props.isOpen && (e.preventDefault(), e.stopPropagation(), this._onClick()) - } - _onClick() { - const { - handleClick: e, - onVideoOptionsClick: t - } = this.props; - e ? e() : t() - } - render() { - const { - handleClick: e, - t, - visible: n, - isOpen: a - } = this.props; - return n ? x().createElement(MQ, null, x().createElement(Yj, { - ariaControls: "video-settings-dialog", - ariaExpanded: a, - ariaHasPopup: !0, - ariaLabel: this.props.t("toolbar.videoSettings"), - icon: tl, - iconDisabled: this._isIconDisabled(), - iconId: "video-settings-button", - iconTooltip: t("toolbar.videoSettings"), - onIconClick: this._onClick, - onIconKeyDown: this._onEscClick - }, x().createElement(XQ, { - handleClick: e - }))) : x().createElement(XQ, { - handleClick: e - }) - } + function n5() { + return X9.getLargeVideoWrapper() + } + + function a5(e) { + return function(e) { + return Q3[e.which] + }(e) + } + + function r5(e) { + const t = []; + return e.shiftKey && t.push("shift"), e.ctrlKey && t.push("control"), e.altKey && t.push("alt"), e.metaKey && t.push("command"), t + } + let i5, o5, s5; + + function l5(e) { + return (t, n) => { + const a = n(), + { + active: r + } = a["features/remote-control"], + { + conference: i + } = a["features/base/conference"]; + e !== r && (t({ + type: O3, + active: e + }), i.setLocalParticipantProperty("remoteControlSessionStatus", e)) } - const tX = Li(ze((function(e) { + } + + function c5() { + let e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; + return (t, n) => { + const a = n(), + { + controlled: r + } = a["features/remote-control"].controller; + if (!r) return; const { - permissions: t = {} - } = e["features/base/devices"]; - return { - hasPermissions: t.video, - hasVideoTrack: Boolean(Jo(e)), - isDisabled: wH(e), - isOpen: CJ(e), - visible: !Sa() - } - }), { - onVideoOptionsClick: FQ - })(eX)); - class nX extends E.Component { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this) - } - _onClick(...e) { - const { - onClick: t - } = this.props; - return t && t(...e) - } - render() { - return this._renderButton(this._renderIcon()) - } + conference: i + } = a["features/base/conference"]; + e && t5(i, r, { + type: W3 + }), X3.log("Stopping remote control controller."), i.off(ht.ENDPOINT_MESSAGE_RECEIVED, s5), s5 = void 0, t(b5()), t({ + type: L3, + controlled: void 0 + }), t(l5(!1)), t(tg({ + descriptionKey: "dialog.remoteControlStopMessage", + titleKey: "dialog.remoteControlTitle" + }, Yf.LONG)) } - class aX extends nX { - constructor(e) { - super(e), this._onKeyPress = this._onKeyPress.bind(this), this._onClick = this._onClick.bind(this) - } - _onKeyPress(e) { - "Enter" !== e.key && " " !== e.key || (e.preventDefault(), this.props.onClick()) - } - _onClick(e) { - this.props.onClick(e), e && e.currentTarget && e.currentTarget.blur() - } - _renderButton(e) { - return x().createElement("div", { - "aria-label": this.props.accessibilityLabel, - "aria-pressed": this.props.toggled, - className: "toolbox-button", - onClick: this._onClick, - onKeyDown: this.props.onKeyDown, - onKeyPress: this._onKeyPress, - role: "button", - tabIndex: 0 - }, this.props.tooltip ? x().createElement(Fw, { - content: this.props.tooltip, - position: this.props.tooltipPosition - }, e) : e) - } - _renderIcon() { - return x().createElement("div", { - className: "toolbox-icon " + (this.props.toggled ? "toggled" : "") - }, x().createElement(qs, { - src: this.props.icon - })) - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(aX, "defaultProps", { - tooltipPosition: "top" - }); - const rX = aX, - iX = "SELECT_LARGE_VIDEO_PARTICIPANT", - oX = "UPDATE_KNOWN_LARGE_VIDEO_RESOLUTION", - sX = "UPDATE_LAST_LARGE_VIDEO_MEDIA_EVENT"; + } - function lX(e) { - return (t, n) => { - var a; - const r = n(), - i = null !== (a = e) && void 0 !== a ? a : function(e) { - var t; - let n = Yh(e); - if (n) return n.id; - const a = e["features/video-layout"].remoteScreenShares; - if (null == a ? void 0 : a.length) return a[a.length - 1]; - if (n = Kh(e), n && !n.local) return n.id; - n = void 0; - const r = function(e) { - for (let t = e.length - 1; t >= 0; --t) { - const n = e[t]; - if (!n.local && n.mediaType === to) return n - } - }(e["features/base/tracks"]); - if (r) return r.participantId; - const i = [...Wh(e).values()]; - for (let e = i.length; e > 0 && !n; e--) { - const t = i[e - 1]; - !t.botType && (n = t) - } - return n ? n.id : null === (t = Rh(e)) || void 0 === t ? void 0 : t.id - }(r), - o = r["features/large-video"], - s = r["features/video-layout"].remoteScreenShares; - let l; - s && s.length && (l = s[s.length - 1]), i === o.participantId && i !== l || t({ - type: iX, - participantId: i - }) - } + function u5() { + return (e, t) => { + const { + conference: n + } = t()["features/base/conference"]; + e({ + type: F3, + requestedParticipant: void 0 + }), n.off(ht.ENDPOINT_MESSAGE_RECEIVED, i5), i5 = void 0 } - const cX = JSON.parse('{"colors":{"moderationDisabled":"#E54B4B"},"contextFontSize":14,"contextFontWeight":400,"headerSize":60,"panePadding":16,"participantActionButtonHeight":32,"participantItemHeight":48,"participantsPaneWidth":315,"rangeInputThumbSize":14}'), - uX = { - updateLargeVideoAudioLevel(e, t) { - const n = document.getElementById(e); - if (!zz.isVisible(n)) return; - let a = parseFloat(t); - a = isNaN(a) ? 0 : a; - let r = n.getElementsByClassName("dynamic-shadow"); - r && r.length > 0 && (r = r[0]), r.style.boxShadow = this._updateLargeVideoShadow(a) - }, - _updateLargeVideoShadow(e) { - const t = { - level: e > .15 ? 20 : 0, - color: interfaceConfig.AUDIO_LEVEL_PRIMARY_COLOR - }, - n = { - level: parseFloat((2 * t.level * e + t.level).toFixed(0)), - color: interfaceConfig.AUDIO_LEVEL_SECONDARY_COLOR - }; - return t.blur = t.level ? 2 : 0, n.blur = n.level ? 6 : 0, [`0 0 ${t.blur}px ${t.level}px ${t.color}`, `0 0 ${n.blur}px ${n.level}px ${n.color}`].join(", ") - } - }; + } - function dX(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - pX(e, t, n[t]) - })) - } - return e + function d5(e) { + return { + type: N3, + transport: e } + } - function pX(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const hX = e => ({ - position: "fixed", - right: window.innerWidth - e.x + 25 + "px" - }), - mX = (e, t) => ({ - top: `${Math.min(e.y+15,window.innerHeight-t.height-20)}px` - }), - fX = (e, t) => ({ - bottom: window.innerHeight - e.y - e.height - t.height / 2 + "px" - }), - gX = (e, t) => ({ - bottom: `${Math.min(window.innerHeight-e.y-e.height,window.innerHeight-t.height)}px` - }), - bX = e => ({ - right: window.innerWidth - e.x + 10 + "px" - }), - yX = (e, t) => ({ - right: window.innerWidth - e.x - t.width / 2 + "px" - }), - vX = e => ({ - left: `${e.x+e.width+10}px` - }); - class kX extends E.Component { - constructor(e) { - super(e), this.state = { - showDialog: !1, - contextMenuStyle: null - }, this._onHideDialog = this._onHideDialog.bind(this), this._onShowDialog = this._onShowDialog.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._containerRef = x().createRef(), this._onEscKey = this._onEscKey.bind(this), this._onThumbClick = this._onThumbClick.bind(this), this._onTouchStart = this._onTouchStart.bind(this), this._setContextMenuRef = this._setContextMenuRef.bind(this), this._setContextMenuStyle = this._setContextMenuStyle.bind(this), this._getCustomDialogStyle = this._getCustomDialogStyle.bind(this) - } - showDialog() { - this._onShowDialog() - } - componentDidMount() { - window.addEventListener("touchstart", this._onTouchStart) - } - componentWillUnmount() { - window.removeEventListener("touchstart", this._onTouchStart) - } - render() { - const { - children: e, - className: t, - content: n, - id: a, - overflowDrawer: r - } = this.props; - return r ? x().createElement("div", { - className: t, - id: a, - onClick: this._onShowDialog - }, e, x().createElement(k7, null, x().createElement(y7, { - isOpen: this.state.showDialog, - onClose: this._onHideDialog - }, n))) : x().createElement("div", { - className: t, - id: a, - onClick: this._onThumbClick, - onKeyPress: this._onKeyPress, - onMouseEnter: this._onShowDialog, - onMouseLeave: this._onHideDialog, - ref: this._containerRef - }, this.state.showDialog && x().createElement(v7, { - getRef: this._setContextMenuRef, - setSize: this._setContextMenuStyle, - style: this.state.contextMenuStyle - }, this._renderContent()), e) - } - _setContextMenuStyle(e) { - const t = this._getCustomDialogStyle(e); - this.setState({ - contextMenuStyle: t - }) - } - _setContextMenuRef(e) { - this._contextMenuRef = e - } - _onTouchStart(e) { - this.state.showDialog && !this.props.overflowDrawer && this._contextMenuRef && this._contextMenuRef.contains && !this._contextMenuRef.contains(e.target) && this._onHideDialog() - } - _onHideDialog() { - this.setState({ - showDialog: !1, - contextMenuStyle: null - }), this.props.onPopoverClose && this.props.onPopoverClose() - } - _onShowDialog(e) { - e && e.stopPropagation(), this.props.disablePopover || (this.setState({ - showDialog: !0 - }), this.props.onPopoverOpen && this.props.onPopoverOpen()) - } - _onThumbClick(e) { - e.stopPropagation() - } - _onKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.state.showDialog ? this._onHideDialog() : this._onShowDialog(e)) - } - _onEscKey(e) { - "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this.state.showDialog && this._onHideDialog()) - } - _getCustomDialogStyle(e) { - if (this._containerRef && this._containerRef.current) { - return ((e, t, n) => { - const a = n.split("-"); - switch (a[0]) { - case "top": { - let n = {}; - return n = a[1] ? "start" === a[1] ? bX(e) : vX(e) : yX(e, t), dX({}, (r = e, { - position: "fixed", - bottom: window.innerHeight - r.y + 20 + "px" - }), n) - } - case "bottom": { - let n = {}; - return n = a[1] ? "start" === a[1] ? bX(e) : vX(e) : yX(e, t), dX({}, (e => ({ - position: "fixed", - top: `${e.y+e.height+20}px` - }))(e), n) - } - case "left": { - let n = {}; - return n = a[1] ? "start" === a[1] ? mX(e, t) : gX(e, t) : fX(e, t), dX({}, hX(e), n) - } - case "right": { - let n = {}; - return n = a[1] ? "start" === a[1] ? mX(e, t) : gX(e, t) : fX(e, t), dX({}, (e => ({ - position: "fixed", - left: `${e.x+e.width+25}px` - }))(e), n) - } - default: - return dX({}, hX(e), gX(e, t)) - } - var r - })(this._containerRef.current.getBoundingClientRect(), e, this.props.position) - } - } - _renderContent() { - const { - content: e - } = this.props; - return x().createElement("div", { - className: "popover popupmenu", - onKeyDown: this._onEscKey - }, e, !Sa() && x().createElement(x().Fragment, null, x().createElement("div", { - className: "popover-mousemove-padding-top" - }), x().createElement("div", { - className: "popover-mousemove-padding-right" - }), x().createElement("div", { - className: "popover-mousemove-padding-left" - }), x().createElement("div", { - className: "popover-mousemove-padding-bottom" - }))) - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(kX, "defaultProps", { - className: "", - id: "" - }); - const _X = kX, - wX = {}, - SX = { - startListeningForStats(e) { - e.on(kt.LOCAL_STATS_UPDATED, (t => this._onStatsUpdated(e.myUserId(), t))), e.on(kt.REMOTE_STATS_UPDATED, ((e, t) => this._emitStatsUpdate(e, t))), e.on(_t.E2E_RTT_CHANGED, ((e, t) => { - const n = { - e2eRtt: t, - region: e.getProperty("region") - }; - this._emitStatsUpdate(e.getId(), n) - })) - }, - subscribeToClientStats(e, t) { - e && (wX[e] || (wX[e] = []), wX[e].push(t)) - }, - unsubscribeToClientStats(e, t) { - if (!wX[e]) return; - const n = wX[e].filter((e => e !== t)); - n.length ? wX[e] = n : delete wX[e] - }, - _emitStatsUpdate(e, t = {}) { - (wX[e] || []).forEach((e => { - e(t) - })) - }, - _onStatsUpdated(e, t) { - const n = t.framerate || {}, - a = t.resolution || {}, - r = t.codec || {}, - i = Object.assign({}, t, { - framerate: n[e], - resolution: a[e], - codec: r[e] - }); - this._emitStatsUpdate(e, i); - const o = Object.keys(n), - s = Object.keys(a), - l = Object.keys(r); - k().union(o, s, l).filter((t => t !== e)).forEach((e => { - const t = {}, - i = n[e]; - i && (t.framerate = i); - const o = a[e]; - o && (t.resolution = o); - const s = r[e]; - s && (t.codec = s), this._emitStatsUpdate(e, t) - })) - } - }, - EX = SX; - class xX extends E.Component { - constructor(e) { - super(e), this._onStatsUpdated = this._onStatsUpdated.bind(this) - } - componentDidMount() { - EX.subscribeToClientStats(this.props.participantId, this._onStatsUpdated) - } - componentDidUpdate(e) { - e.participantId !== this.props.participantId && (EX.unsubscribeToClientStats(e.participantId, this._onStatsUpdated), EX.subscribeToClientStats(this.props.participantId, this._onStatsUpdated)) - } - componentWillUnmount() { - EX.unsubscribeToClientStats(this.props.participantId, this._onStatsUpdated), clearTimeout(this.autoHideTimeout) - } - _onStatsUpdated(e = {}) { - const { - connectionQuality: t - } = e, n = void 0 === t ? {} : { - percent: t - }, a = Object.assign({}, this.state.stats, e, n); - this.setState({ - stats: a - }), this._updateIndicatorAutoHide(a.percent) - } - _updateIndicatorAutoHide(e) { - e < 30 ? (clearTimeout(this.autoHideTimeout), this.autoHideTimeout = void 0, this.setState({ - showIndicator: !0 - })) : this.autoHideTimeout || (this.autoHideTimeout = setTimeout((() => { - this.setState({ - showIndicator: !1 - }) - }), this.props._autoHideTimeout)) - } + function p5() { + let e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0], + t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + return (n, a) => { + const r = a(), + { + receiver: i + } = r["features/remote-control"], + { + controller: o, + transport: s + } = i; + if (!o) return; + const { + conference: l + } = r["features/base/conference"]; + t || t5(l, o, { + type: W3 + }), n({ + type: z3, + controller: void 0 + }), s.sendEvent({ + name: U3, + type: W3 + }), n(l5(!1)), e || n(tg({ + descriptionKey: "dialog.remoteControlStopMessage", + titleKey: "dialog.remoteControlTitle" + }, Yf.LONG)) } - const CX = xX; + } - function AX(e) { - e.stopPropagation() - } - class jX extends E.Component { - render() { - const { - isLocalVideo: e, - enableSaveLogs: t, - disableShowMoreStats: n - } = this.props, a = Sa() ? "connection-info connection-info__mobile" : "connection-info"; - return x().createElement("div", { - className: a, - onClick: AX - }, this._renderStatistics(), x().createElement("div", { - className: "connection-actions" - }, e && t ? this._renderSaveLogs() : null, !n && this._renderShowMoreLink()), this.props.shouldShowMore ? this._renderAdditionalStats() : null) - } - _renderAdditionalStats() { - const { - isLocalVideo: e - } = this.props; - return x().createElement("table", { - className: "connection-info__container" - }, x().createElement("tbody", null, e ? this._renderBandwidth() : null, e ? this._renderTransport() : null, e ? this._renderRegion() : null, this._renderAudioSsrc(), this._renderVideoSsrc(), this._renderParticipantId())) - } - _renderBandwidth() { - const { - download: e, - upload: t - } = this.props.bandwidth || {}; - return x().createElement("tr", null, x().createElement("td", null, this.props.t("connectionindicator.bandwidth")), x().createElement("td", null, x().createElement("span", { - className: "connection-info__download" - }, "↓"), e ? `${e} Kbps` : "N/A", x().createElement("span", { - className: "connection-info__upload" - }, "↑"), t ? `${t} Kbps` : "N/A")) - } - _renderBitrate() { - const { - download: e, - upload: t - } = this.props.bitrate || {}; - return x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, this.props.t("connectionindicator.bitrate"))), x().createElement("td", null, x().createElement("span", { - className: "connection-info__download" - }, "↓"), e ? `${e} Kbps` : "N/A", x().createElement("span", { - className: "connection-info__upload" - }, "↑"), t ? `${t} Kbps` : "N/A")) - } - _renderAudioSsrc() { - const { - audioSsrc: e, - t - } = this.props; - return x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, t("connectionindicator.audio_ssrc"))), x().createElement("td", null, e || "N/A")) - } - _renderVideoSsrc() { - const { - videoSsrc: e, - t - } = this.props; - return x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, t("connectionindicator.video_ssrc"))), x().createElement("td", null, e || "N/A")) - } - _renderParticipantId() { - const { - participantId: e, - t - } = this.props; - return x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, t("connectionindicator.participant_id"))), x().createElement("td", null, e || "N/A")) - } - _renderCodecs() { - const { - codec: e, - t - } = this.props; - if (!e) return; - let n; - return Object.keys(e || {}).forEach((t => { - const { - audio: a, - video: r - } = e[t]; - n = `${a}, ${r}` - })), n || (n = "N/A"), x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, t("connectionindicator.codecs"))), x().createElement("td", null, n)) - } - _renderConnectionSummary() { - return x().createElement("tr", { - className: "connection-info__status" - }, x().createElement("td", null, x().createElement("span", null, this.props.t("connectionindicator.status"))), x().createElement("td", null, this.props.connectionSummary)) - } - _renderE2eRtt() { - const { - e2eRtt: e, - t - } = this.props, n = e ? `${e.toFixed(0)}ms` : "N/A"; - return x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, t("connectionindicator.e2e_rtt"))), x().createElement("td", null, n)) - } - _renderRegion() { - const { - region: e, - serverRegion: t, - t: n - } = this.props; - let a = t; - if (t) return e && t && e !== t && (a += ` from ${e}`), x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, n("connectionindicator.connectedTo"))), x().createElement("td", null, a)) - } - _renderBridgeCount() { - const { - bridgeCount: e, - t - } = this.props; - if (e || 0 === e) return x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, t("connectionindicator.bridgeCount"))), x().createElement("td", null, e)) - } - _renderFrameRate() { - const { - framerate: e, - t - } = this.props, n = Object.keys(e || {}).map((t => e[t])).join(", ") || "N/A"; - return x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, t("connectionindicator.framerate"))), x().createElement("td", null, n)) - } - _renderPacketLoss() { - const { - packetLoss: e, - t - } = this.props; - let n; - if (e) { - const { - download: t, - upload: a - } = e; - n = x().createElement("td", null, x().createElement("span", { - className: "connection-info__download" - }, "↓"), null === t ? "N/A" : `${t}%`, x().createElement("span", { - className: "connection-info__upload" - }, "↑"), null === a ? "N/A" : `${a}%`) - } else n = x().createElement("td", null, "N/A"); - return x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, t("connectionindicator.packetloss"))), n) - } - _renderResolution() { - const { - resolution: e, - maxEnabledResolution: t, - t: n - } = this.props; - let a = Object.keys(e || {}).map((t => { - const { - width: n, - height: a - } = e[t]; - return `${n}x${a}` - })).join(", ") || "N/A"; - return t && t < 720 && (a += ` (${n("connectionindicator.maxEnabledResolution")} ${t}p)`), x().createElement("tr", null, x().createElement("td", null, x().createElement("span", null, n("connectionindicator.resolution"))), x().createElement("td", null, a)) - } - _renderSaveLogs() { - return x().createElement("span", null, x().createElement("a", { - className: "savelogs link", - onClick: this.props.onSaveLogs, - role: "button", - tabIndex: 0 - }, this.props.t("connectionindicator.savelogs")), x().createElement("span", null, " | ")) - } - _renderShowMoreLink() { - const e = this.props.shouldShowMore ? "connectionindicator.less" : "connectionindicator.more"; - return x().createElement("a", { - className: "showmore link", - onClick: this.props.onShowMore, - role: "button", - tabIndex: 0 - }, this.props.t(e)) - } - _renderStatistics() { - const e = !this.props.isLocalVideo; - return x().createElement("table", { - className: "connection-info__container" - }, x().createElement("tbody", null, this._renderConnectionSummary(), this._renderBitrate(), this._renderPacketLoss(), e ? this._renderE2eRtt() : null, e ? this._renderRegion() : null, this._renderResolution(), this._renderFrameRate(), this._renderCodecs(), e ? null : this._renderBridgeCount())) - } - _renderTransport() { - const { - t: e, - transport: t - } = this.props; - if (!t || 0 === t.length) return [x().createElement("tr", { - key: "address" - }, x().createElement("td", null, x().createElement("span", null, e("connectionindicator.address"))), x().createElement("td", null, "N/A"))]; - const n = { - localIP: [], - localPort: [], - remoteIP: [], - remotePort: [], - transportType: [] - }; - for (let e = 0; e < t.length; e++) { - const a = PX(t[e].ip), - r = PX(t[e].localip), - i = DX(t[e].localip), - o = DX(t[e].ip); - n.remoteIP.includes(a) || n.remoteIP.push(a), n.localIP.includes(r) || n.localIP.push(r), n.localPort.includes(i) || n.localPort.push(i), n.remotePort.includes(o) || n.remotePort.push(o), n.transportType.includes(t[e].type) || n.transportType.push(t[e].type) - } - let a = !1, - r = !1; - t.length && (a = t[0].p2p, r = "relay" === t[0].localCandidateType || "relay" === t[0].remoteCandidateType); - const i = []; - return a && i.push(x().createElement("span", null, " (p2p)")), r && i.push(x().createElement("span", null, " (turn)")), [{ - additionalData: i, - data: n.remoteIP, - key: "remoteaddress", - label: e("connectionindicator.remoteaddress", { - count: n.remoteIP.length - }) - }, { - data: n.remotePort, - key: "remoteport", - label: e("connectionindicator.remoteport", { - count: t.length - }) - }, { - data: n.localIP, - key: "localaddress", - label: e("connectionindicator.localaddress", { - count: n.localIP.length - }) - }, { - data: n.localPort, - key: "localport", - label: e("connectionindicator.localport", { - count: t.length - }) - }, { - data: n.transportType, - key: "transport", - label: e("connectionindicator.transport", { - count: n.transportType.length - }) - }].map(this._renderTransportTableRow) - } - _renderTransportTableRow(e) { - const { - additionalData: t, - data: n, - key: a, - label: r - } = e; - return x().createElement("tr", { - key: a - }, x().createElement("td", null, x().createElement("span", null, r)), x().createElement("td", null, function(e) { - let t = ""; - for (let n = 0; n < e.length; n++) t += (0 === n ? "" : ", ") + e[n]; - return t - }(n), t || null)) - } + function h5() { + return (e, t) => { + const n = t(), + a = nh(n["features/base/tracks"]), + { + sourceId: r + } = (null == a ? void 0 : a.jitsiTrack) || {}, + { + transport: i + } = n["features/remote-control"].receiver; + return i.sendRequest({ + name: U3, + type: "start", + sourceId: r + }) } + } - function PX(e) { - return e ? e.substring(0, e.lastIndexOf(":")) : "" + function m5(e, t) { + return (n, a) => { + const r = a(), + { + conference: i + } = r["features/base/conference"], + { + controller: o + } = r["features/remote-control"]; + t5(i, o.controlled, { + type: e, + button: t.which + }) } + } - function DX(e) { - return e ? e.substring(e.lastIndexOf(":") + 1, e.length) : "" + function f5(e, t) { + return (n, a) => { + const r = a(), + { + conference: i + } = r["features/base/conference"], + { + controller: o + } = r["features/remote-control"]; + t5(i, o.controlled, { + type: e, + key: a5(t), + modifiers: r5(t) + }) } - const TX = Li(jX); + } - function OX(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const MX = [{ - colorClass: "status-high", - percent: 30, - tip: "connectionindicator.quality.good", - width: "100%" - }, { - colorClass: "status-med", - percent: 10, - tip: "connectionindicator.quality.nonoptimal", - width: "66%" - }, { - colorClass: "status-low", - percent: 0, - tip: "connectionindicator.quality.poor", - width: "33%" - }], - IX = Li(ze((function(e, t) { - const { - participantId: n - } = t, a = e["features/base/conference"].conference, r = n ? Fh(e, n) : Rh(e), i = { - _connectionStatus: null == r ? void 0 : r.connectionStatus, - _enableSaveLogs: e["features/base/config"].enableSaveLogs, - _disableShowMoreStats: e["features/base/config"].disableShowMoreStats, - _isLocalVideo: null == r ? void 0 : r.local - }; - if (a) { - const t = Qo(e["features/base/tracks"], to, n), - r = Qo(e["features/base/tracks"], Xi, n); - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - OX(e, t, n[t]) - })) - } - return e - }({}, i, { - _audioSsrc: r ? a.getSsrcByTrack(r.jitsiTrack) : void 0, - _videoSsrc: t ? a.getSsrcByTrack(t.jitsiTrack) : void 0 - }) - } - return i - }), (function(e) { - return { - _onSaveLogs() { - e(((e, t) => { - OL(t()["features/base/connection"].connection.getLogs(), `meetlog-${function(){const e=window.location.pathname;return An(e.substring(e.lastIndexOf("/")+1)||void 0)}()||""}.json`) - })) - } - } - }))(class extends CX { - constructor(e) { - super(e), this.state = { - autoHideTimeout: void 0, - showIndicator: !1, - showMoreStats: !1, - stats: e.inheritedStats || {} - }, this._onToggleShowMore = this._onToggleShowMore.bind(this) - } - render() { - const { - bandwidth: e, - bitrate: t, - bridgeCount: n, - codec: a, - e2eRtt: r, - framerate: i, - maxEnabledResolution: o, - packetLoss: s, - region: l, - resolution: c, - serverRegion: u, - transport: d - } = this.state.stats; - return x().createElement(TX, { - audioSsrc: this.props._audioSsrc, - bandwidth: e, - bitrate: t, - bridgeCount: n, - codec: a, - connectionSummary: this._getConnectionStatusTip(), - disableShowMoreStats: this.props._disableShowMoreStats, - e2eRtt: r, - enableSaveLogs: this.props._enableSaveLogs, - framerate: i, - isLocalVideo: this.props._isLocalVideo, - maxEnabledResolution: o, - onSaveLogs: this.props._onSaveLogs, - onShowMore: this._onToggleShowMore, - packetLoss: s, - participantId: this.props.participantId, - region: l, - resolution: c, - serverRegion: u, - shouldShowMore: this.state.showMoreStats, - transport: d, - videoSsrc: this.props._videoSsrc - }) - } - _getConnectionStatusTip() { - let e; - switch (this.props._connectionStatus) { - case St.INTERRUPTED: - e = "connectionindicator.quality.lost"; - break; - case St.INACTIVE: - e = "connectionindicator.quality.inactive"; - break; - default: { - const { - percent: t - } = this.state.stats; - e = void 0 === t ? "connectionindicator.quality.good" : this._getDisplayConfiguration(t).tip - } + function g5() { + return (e, t) => { + const n = n5(), + a = t(), + { + controller: r + } = a["features/remote-control"], + { + controlled: i, + isCapturingEvents: o + } = r; + e5(a) && n && i && !o && (X3.log("Resuming remote control controller."), APP.keyboardshortcut.enable(!1), n.mousemove((t => { + e(function(e) { + return (t, n) => { + const a = n5(); + if (!a) return; + const r = a.position(), + i = n(), + { + conference: o + } = i["features/base/conference"], + { + controller: s + } = i["features/remote-control"]; + t5(o, s.controlled, { + type: "mousemove", + x: (e.pageX - r.left) / a.width(), + y: (e.pageY - r.top) / a.height() + }) } - return this.props.t(e) - } - _getDisplayConfiguration(e) { - return MX.find((t => e >= t.percent)) || {} - } - _onToggleShowMore() { - this.setState({ - showMoreStats: !this.state.showMoreStats + }(t)) + })), n.mousedown((t => e(m5("mousedown", t)))), n.mouseup((t => e(m5("mouseup", t)))), n.dblclick((t => e(m5("mousedblclick", t)))), n.contextmenu((() => !1)), n[0].onwheel = t => (t.preventDefault(), t.stopPropagation(), e(function(e) { + return (t, n) => { + const a = n(), + { + conference: r + } = a["features/base/conference"], + { + controller: i + } = a["features/remote-control"]; + t5(r, i.controlled, { + type: "mousescroll", + x: e.deltaX, + y: e.deltaY }) } - })), - NX = [{ - colorClass: "status-high", - percent: 30, - tip: "connectionindicator.quality.good", - width: "100%" - }, { - colorClass: "status-med", - percent: 10, - tip: "connectionindicator.quality.nonoptimal", - width: "66%" - }, { - colorClass: "status-low", - percent: 0, - tip: "connectionindicator.quality.poor", - width: "33%" - }], - zX = Li(ze((function(e, t) { - var n; - const { - participantId: a - } = t, r = a ? Fh(e, a) : Rh(e); - return { - _connectionIndicatorInactiveDisabled: Boolean(null === (n = e["features/base/config"].connectionIndicators) || void 0 === n ? void 0 : n.inactiveDisabled), - _connectionStatus: null == r ? void 0 : r.connectionStatus - } - }))(class extends CX { - constructor(e) { - super(e), this.state = { - autoHideTimeout: void 0, - showIndicator: !1, - stats: {} - } - } - render() { - const e = `indicator-container ${this._getVisibilityClass()}`, - t = `connection-indicator indicator ${this._getConnectionColorClass()}`; - return x().createElement(_X, { - className: e, - content: x().createElement(IX, { - inheritedStats: this.state.stats, - participantId: this.props.participantId - }), - disablePopover: !this.props.enableStatsDisplay, - position: this.props.statsPopoverPosition - }, x().createElement("div", { - className: "popover-trigger" - }, x().createElement("div", { - className: t, - style: { - fontSize: this.props.iconSize - } - }, x().createElement("div", { - className: "connection indicatoricon" - }, this._renderIcon())))) - } - _getConnectionColorClass() { - const { - _connectionStatus: e - } = this.props, { - percent: t - } = this.state.stats, { - INACTIVE: n, - INTERRUPTED: a - } = St; - return e === n ? "status-other" : e === a ? "status-lost" : void 0 === t ? "status-high" : this._getDisplayConfiguration(t).colorClass - } - _getDisplayConfiguration(e) { - return NX.find((t => e >= t.percent)) || {} - } - _getVisibilityClass() { - const { - _connectionStatus: e - } = this.props; - return this.state.showIndicator || this.props.alwaysVisible || e === St.INTERRUPTED || e === St.INACTIVE ? "show-connection-indicator" : "hide-connection-indicator" - } - _renderIcon() { - if (this.props._connectionStatus === St.INACTIVE) return this.props._connectionIndicatorInactiveDisabled ? null : x().createElement("span", { - className: "connection_ninja" - }, x().createElement(qs, { - className: "icon-ninja", - size: "1.5em", - src: oc - })); - let e, t = "connection_empty"; - if (this.props._connectionStatus === St.INTERRUPTED) t = "connection_lost", e = "0%"; - else if (void 0 === this.state.stats.percent) e = "100%"; - else { - const { - percent: t - } = this.state.stats; - e = this._getDisplayConfiguration(t).width - } - return [x().createElement("span", { - className: t, - key: "icon-empty" - }, x().createElement(qs, { - className: "icon-gsm-bars", - size: "1em", - src: ac - })), x().createElement("span", { - className: "connection_full", - key: "icon-full", - style: { - width: e - } - }, x().createElement(qs, { - className: "icon-gsm-bars", - size: "1em", - src: ac - }))] - } - })); - - function RX(e) { - const t = e["features/base/config"].testing; - return Boolean(t && t.testMode) - } - - function LX({ - getState: e - }, t) { - var n; - return null === (n = Qo(e()["features/base/tracks"], to, t)) || void 0 === n ? void 0 : n.videoType + }(t)), !1), $(window).keydown((t => e(f5("keydown", t)))), $(window).keyup((t => e(f5("keyup", t)))), e({ + type: I3, + isCapturingEvents: !0 + })) } + } - function FX({ - getState: e - }) { - var t; - const n = e()["features/large-video"].participantId, - a = Qo(e()["features/base/tracks"], to, n), - r = null === (t = e()["features/large-video"]) || void 0 === t ? void 0 : t.lastMediaEvent; - return a && !a.muted && ("playing" === r || "canplaythrough" === r) + function b5() { + return (e, t) => { + const n = t(), + { + controller: a + } = n["features/remote-control"], + { + controlled: r, + isCapturingEvents: i + } = a; + if (!e5(n) || !r || !i) return; + X3.log("Pausing remote control controller."), APP.keyboardshortcut.enable(!0); + const o = n5(); + o && (o.off("contextmenu"), o.off("dblclick"), o.off("mousedown"), o.off("mousemove"), o.off("mouseup"), o[0].onwheel = void 0), $(window).off("keydown"), $(window).off("keyup"), e({ + type: I3, + isCapturingEvents: !1 + }) } - - function qX({ - getState: e - }, t) { - const n = Qo(e()["features/base/tracks"], to, t), - a = null == n ? void 0 : n.lastMediaEvent; - return n && !n.muted && ("playing" === a || "canplaythrough" === a) + } + class y5 extends x.Component { + constructor(e) { + super(e), this._onPopoverClose = this._onPopoverClose.bind(this), this._onPopoverOpen = this._onPopoverOpen.bind(this) } - class BX extends E.Component { - constructor(e) { - super(e), this._onStatsUpdated = this._onStatsUpdated.bind(this), this.state = { - stats: { - bitrate: { - download: 0, - upload: 0 - } - } - } - } - _onStatsUpdated(e = {}) { - var t, n; - this.setState({ - stats: { - bitrate: { - download: (null === (t = e.bitrate) || void 0 === t ? void 0 : t.download) || 0, - upload: (null === (n = e.bitrate) || void 0 === n ? void 0 : n.upload) || 0 - } - } - }) - } - componentDidMount() { - EX.subscribeToClientStats(this.props._localUserId, this._onStatsUpdated) - } - componentDidUpdate(e) { - e._localUserId !== this.props._localUserId && (EX.unsubscribeToClientStats(e._localUserId, this._onStatsUpdated), EX.subscribeToClientStats(this.props._localUserId, this._onStatsUpdated)) - } - componentWillUnmount() { - EX.unsubscribeToClientStats(this.props._localUserId, this._onStatsUpdated) - } - render() { - return this.props._testMode ? x().createElement(E.Fragment, { - accessible: !1 - }, x().createElement(HX(), { - id: "org.jitsi.meet.conference.connectionState", - value: this.props._conferenceConnectionState - }), x().createElement(HX(), { - id: "org.jitsi.meet.conference.joinedState", - value: this.props._conferenceJoinedState - }), x().createElement(HX(), { - id: "org.jitsi.meet.conference.grantModeratorAvailable", - value: !0 - }), x().createElement(HX(), { - id: "org.jitsi.meet.conference.localParticipantRole", - value: this.props._localUserRole - }), x().createElement(HX(), { - id: "org.jitsi.meet.stats.rtp", - value: JSON.stringify(this.state.stats) - })) : null - } - } - ze((function(e) { - const t = Boolean(e["features/base/conference"].conference), - n = Rh(e); - return { - _conferenceConnectionState: e["features/testing"].connectionState, - _conferenceJoinedState: t.toString(), - _localUserId: null == n ? void 0 : n.id, - _localUserRole: null == n ? void 0 : n.role, - _testMode: RX(e) - } - }))(BX); - var UX = n(1192), - HX = n.n(UX); - class VX extends E.Component { - render() { - return x().createElement(Zw, { - className: "audioMuted toolbar-icon", - icon: Fu, - iconId: "mic-disabled", - iconSize: 13, - tooltipKey: "videothumbnail.mute", - tooltipPosition: this.props.tooltipPosition + render() { + const { + _overflowDrawer: e, + _showConnectionInfo: t, + _participantDisplayName: n, + participantID: a, + popoverVisible: r + } = this.props, i = t ? C().createElement(C3, { + participantId: a + }) : this._renderRemoteVideoMenu(); + if (!i) return null; + const o = n; + return C().createElement(A9, { + content: i, + id: "remote-video-menu-trigger", + onPopoverClose: this._onPopoverClose, + onPopoverOpen: this._onPopoverOpen, + position: this.props._menuPosition, + visible: r + }, !e && C().createElement("span", { + className: "popover-trigger remote-video-menu-trigger" + }, !va() && C().createElement(lo, { + ariaLabel: this.props.t("dialog.remoteUserControls", { + username: o + }), + role: "button", + size: "1.4em", + src: Zl, + tabIndex: 0, + title: this.props.t("dialog.remoteUserControls", { + username: o }) - } + }))) } - const WX = VX; - class YX extends E.Component { - render() { - return x().createElement(Zw, { - className: "indicator show-inline", - icon: yc, - iconClassName: "indicatoricon", - iconSize: `${this.props.iconSize}px`, - id: "dominantspeakerindicator", - tooltipKey: "speaker", - tooltipPosition: this.props.tooltipPosition - }) - } + _onPopoverOpen() { + const { + dispatch: e, + showPopover: t + } = this.props; + t(), e(M3(!0)) } - const GX = YX; - - function KX(e, t) { - if (e.length !== t.length) return !1; - for (var n = 0; n < e.length; n++) - if (e[n] !== t[n]) return !1; - return !0 + _onPopoverClose() { + const { + dispatch: e, + hidePopover: t + } = this.props; + t(), (0, Me.unstable_batchedUpdates)((() => { + e(M3(!1)), e(qX(!1)) + })) } - const $X = function(e, t) { - var n; - void 0 === t && (t = KX); - var a, r = [], - i = !1; - return function() { - for (var o = [], s = 0; s < arguments.length; s++) o[s] = arguments[s]; - return i && n === this && t(o, r) || (a = e.apply(this, o), i = !0, n = this, r = o), a + _renderRemoteVideoMenu() { + const { + _disableKick: e, + _disableRemoteMute: t, + _disableGrantModerator: n, + _isModerator: a, + dispatch: r, + initialVolumeValue: i, + onVolumeChange: o, + _remoteControlState: s, + participantID: l + } = this.props, c = [], u = [], d = !ka() && o && "number" == typeof i && !isNaN(i); + if (a && (t || (u.push(C().createElement(W2, { + key: "mute", + participantID: l + })), u.push(C().createElement(a3, { + key: "mute-others", + participantID: l + })), u.push(C().createElement(K2, { + key: "mute-video", + participantID: l + })), u.push(C().createElement(o3, { + key: "mute-others-video", + participantID: l + }))), n || u.push(C().createElement(N2, { + key: "grant-moderator", + participantID: l + })), e || u.push(C().createElement(q2, { + key: "kick", + participantID: l + }))), s) { + let e = null; + 3 === s ? e = () => r(c5(!0)) : 1 === s && (e = () => { + return r((e = l, (t, n) => { + const a = n(); + if (!e5(a)) return Promise.reject(new Error("Remote control is disabled!")); + t(l5(!0)), X3.log(`Requsting remote control permissions from: ${e}`); + const { + conference: r + } = a["features/base/conference"]; + i5 = (e, n) => { + t(function(e, t) { + return (n, a) => { + const r = a(), + { + action: i, + name: o, + type: s + } = t, + { + requestedParticipant: l + } = r["features/remote-control"].controller; + if (e5(r) && o === U3 && s === V3 && e === l) { + let t, a = !1; + switch (i) { + case G3: { + n({ + type: L3, + controlled: e + }), X3.log("Remote control permissions granted!", e), X3.log("Starting remote control controller."); + const { + conference: i + } = r["features/base/conference"]; + s5 = (e, t) => { + n(function(e, t) { + return (n, a) => { + const r = a(), + { + name: i, + type: o + } = t, + { + controlled: s + } = r["features/remote-control"].controller; + e5(r) && i === U3 && o === W3 && e === s && n(c5()) + } + }(e.getId(), t)) + }, i.on(ht.ENDPOINT_MESSAGE_RECEIVED, s5), n(g5()), a = !0, t = "dialog.remoteControlAllowedMessage"; + break + } + case K3: + X3.log("Remote control permissions denied!", e), t = "dialog.remoteControlDeniedMessage"; + break; + case $3: + X3.error("Error occurred on receiver side"), t = "dialog.remoteControlErrorMessage"; + break; + default: + X3.error("Unknown reply received!"), t = "dialog.remoteControlErrorMessage" + } + if (n(u5()), a || n(l5(!1)), n(tg({ + descriptionArguments: { + user: Kh(r, e) + }, + descriptionKey: t, + titleKey: "dialog.remoteControlTitle" + }, Yf.MEDIUM)), a) { + const t = Zh(r); + (null == t ? void 0 : t.id) !== e && n(uS(e)) + } + } + } + }(e.getId(), n)) + }, r.on(ht.ENDPOINT_MESSAGE_RECEIVED, i5), t({ + type: F3, + requestedParticipant: e + }), t5(r, e, { + type: V3, + action: Y3 + }) || t(u5()) + })); + var e + }), u.push(C().createElement(d3, { + key: "remote-control", + onClick: e, + participantID: l, + remoteControlState: s + })) } - }; - var JX = "object" == typeof performance && "function" == typeof performance.now ? function() { - return performance.now() - } : function() { - return Date.now() - }; - - function ZX(e) { - cancelAnimationFrame(e.id) + return u.push(C().createElement(c3, { + key: "privateMessage", + participantID: l + })), va() && c.push(C().createElement(M2, { + key: "conn-status", + participantId: l + })), d && c.push(C().createElement(T5, { + initialValue: i, + key: "volume-slider", + onChange: o + })), u.length > 0 || c.length > 0 ? C().createElement(h3, { + id: l + }, C().createElement(C().Fragment, null, u.length > 0 && C().createElement("li", { + onClick: this.props.hidePopover + }, C().createElement("ul", { + className: "popupmenu__list" + }, u))), C().createElement(C().Fragment, null, c.length > 0 && C().createElement("li", null, C().createElement("ul", { + className: "popupmenu__list" + }, c)))) : null } - - function QX(e, t) { - var n = JX(), - a = { - id: requestAnimationFrame((function r() { - JX() - n >= t ? e.call(null) : a.id = requestAnimationFrame(r) - })) - }; - return a + } + const v5 = Ei(Ne((function(e, t) { + var n, a; + const { + participantID: r + } = t, i = Uh(e), { + remoteVideoMenu: o = {}, + disableRemoteMute: s + } = e["features/base/config"], { + disableKick: l, + disableGrantModerator: c + } = o; + let u = null; + const d = Vh(e, r), + p = null == d ? void 0 : d.name, + h = null !== (n = null == d ? void 0 : d.remoteControlSessionStatus) && void 0 !== n && n, + m = null !== (a = null == d ? void 0 : d.supportsRemoteControl) && void 0 !== a && a, + { + active: f, + controller: g + } = e["features/remote-control"], + { + requestedParticipant: b, + controlled: y + } = g, + v = b || y, + { + overflowDrawer: k + } = e["features/toolbox"], + { + showConnectionInfo: _ + } = e["features/base/connection"]; + let w; + switch (!m || (f || h) && v !== r || (u = b === r ? 2 : y ? 3 : 1), JS(e)) { + case GS: + w = "left-start"; + break; + case KS: + w = "left-end"; + break; + case YS: + w = "top"; + break; + default: + w = "auto" + } + return { + _isModerator: Boolean((null == i ? void 0 : i.role) === Rh), + _disableKick: Boolean(l), + _disableRemoteMute: Boolean(s), + _remoteControlState: u, + _menuPosition: w, + _overflowDrawer: k, + _participantDisplayName: p, + _disableGrantModerator: Boolean(c), + _showConnectionInfo: _ + } + }))(y5)); class k5 extends x.PureComponent { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this) + } + render() { + const { + t: e + } = this.props; + return C().createElement(j2, { + buttonText: e("videothumbnail.flip"), + displayClass: "fliplink", + id: "flipLocalVideoButton", + onClick: this._onClick + }) } - var XX = -1, - e1 = null; - - function t1(e) { - if (void 0 === e && (e = !1), null === e1 || e) { - var t = document.createElement("div"), - n = t.style; - n.width = "50px", n.height = "50px", n.overflow = "scroll", n.direction = "rtl"; - var a = document.createElement("div"), - r = a.style; - return r.width = "100px", r.height = "100px", t.appendChild(a), document.body.appendChild(t), t.scrollLeft > 0 ? e1 = "positive-descending" : (t.scrollLeft = 1, e1 = 0 === t.scrollLeft ? "negative" : "positive-ascending"), document.body.removeChild(t), e1 - } - return e1 + _onClick() { + const { + _localFlipX: e, + dispatch: t, + onClick: n + } = this.props; + n && n(), t(hn({ + localFlipX: !e + })) } - var n1 = function(e) { - var t = e.columnIndex; - return e.data, e.rowIndex + ":" + t - }; - - function a1(e) { - var t, n, a = e.getColumnOffset, - r = e.getColumnStartIndexForOffset, - i = e.getColumnStopIndexForStartIndex, - o = e.getColumnWidth, - s = e.getEstimatedTotalHeight, - l = e.getEstimatedTotalWidth, - c = e.getOffsetForColumnAndAlignment, - u = e.getOffsetForRowAndAlignment, - d = e.getRowHeight, - p = e.getRowOffset, - h = e.getRowStartIndexForOffset, - m = e.getRowStopIndexForStartIndex, - f = e.initInstanceProps, - g = e.shouldResetStyleCacheOnItemSizeChange, - b = e.validateProps; - return n = t = function(e) { - function t(t) { - var n; - return (n = e.call(this, t) || this)._instanceProps = f(n.props, _(_(n))), n._resetIsScrollingTimeoutId = null, n._outerRef = void 0, n.state = { - instance: _(_(n)), - isScrolling: !1, - horizontalScrollDirection: "forward", - scrollLeft: "number" == typeof n.props.initialScrollLeft ? n.props.initialScrollLeft : 0, - scrollTop: "number" == typeof n.props.initialScrollTop ? n.props.initialScrollTop : 0, - scrollUpdateWasRequested: !1, - verticalScrollDirection: "forward" - }, n._callOnItemsRendered = void 0, n._callOnItemsRendered = $X((function(e, t, a, r, i, o, s, l) { - return n.props.onItemsRendered({ - overscanColumnStartIndex: e, - overscanColumnStopIndex: t, - overscanRowStartIndex: a, - overscanRowStopIndex: r, - visibleColumnStartIndex: i, - visibleColumnStopIndex: o, - visibleRowStartIndex: s, - visibleRowStopIndex: l - }) - })), n._callOnScroll = void 0, n._callOnScroll = $X((function(e, t, a, r, i) { - return n.props.onScroll({ - horizontalScrollDirection: a, - scrollLeft: e, - scrollTop: t, - verticalScrollDirection: r, - scrollUpdateWasRequested: i - }) - })), n._getItemStyle = void 0, n._getItemStyle = function(e, t) { - var r, i = n.props, - s = i.columnWidth, - l = i.direction, - c = i.rowHeight, - u = n._getItemStyleCache(g && s, g && l, g && c), - h = e + ":" + t; - if (u.hasOwnProperty(h)) r = u[h]; - else { - var m = a(n.props, t, n._instanceProps), - f = "rtl" === l; - u[h] = r = { - position: "absolute", - left: f ? void 0 : m, - right: f ? m : void 0, - top: p(n.props, e, n._instanceProps), - height: d(n.props, e, n._instanceProps), - width: o(n.props, t, n._instanceProps) - } - } - return r - }, n._getItemStyleCache = void 0, n._getItemStyleCache = $X((function(e, t, n) { - return {} - })), n._onScroll = function(e) { - var t = e.currentTarget, - a = t.clientHeight, - r = t.clientWidth, - i = t.scrollLeft, - o = t.scrollTop, - s = t.scrollHeight, - l = t.scrollWidth; - n.setState((function(e) { - if (e.scrollLeft === i && e.scrollTop === o) return null; - var t = n.props.direction, - c = i; - if ("rtl" === t) switch (t1()) { - case "negative": - c = -i; - break; - case "positive-descending": - c = l - r - i - } - c = Math.max(0, Math.min(c, l - r)); - var u = Math.max(0, Math.min(o, s - a)); - return { - isScrolling: !0, - horizontalScrollDirection: e.scrollLeft < i ? "forward" : "backward", - scrollLeft: c, - scrollTop: u, - verticalScrollDirection: e.scrollTop < o ? "forward" : "backward", - scrollUpdateWasRequested: !1 - } - }), n._resetIsScrollingDebounced) - }, n._outerRefSetter = function(e) { - var t = n.props.outerRef; - n._outerRef = e, "function" == typeof t ? t(e) : null != t && "object" == typeof t && t.hasOwnProperty("current") && (t.current = e) - }, n._resetIsScrollingDebounced = function() { - null !== n._resetIsScrollingTimeoutId && ZX(n._resetIsScrollingTimeoutId), n._resetIsScrollingTimeoutId = QX(n._resetIsScrolling, 150) - }, n._resetIsScrolling = function() { - n._resetIsScrollingTimeoutId = null, n.setState({ - isScrolling: !1 - }, (function() { - n._getItemStyleCache(-1) - })) - }, n - } - S(t, e), t.getDerivedStateFromProps = function(e, t) { - return r1(e, t), b(e), null - }; - var n = t.prototype; - return n.scrollTo = function(e) { - var t = e.scrollLeft, - n = e.scrollTop; - void 0 !== t && (t = Math.max(0, t)), void 0 !== n && (n = Math.max(0, n)), this.setState((function(e) { - return void 0 === t && (t = e.scrollLeft), void 0 === n && (n = e.scrollTop), e.scrollLeft === t && e.scrollTop === n ? null : { - horizontalScrollDirection: e.scrollLeft < t ? "forward" : "backward", - scrollLeft: t, - scrollTop: n, - scrollUpdateWasRequested: !0, - verticalScrollDirection: e.scrollTop < n ? "forward" : "backward" - } - }), this._resetIsScrollingDebounced) - }, n.scrollToItem = function(e) { - var t = e.align, - n = void 0 === t ? "auto" : t, - a = e.columnIndex, - r = e.rowIndex, - i = this.props, - o = i.columnCount, - d = i.height, - p = i.rowCount, - h = i.width, - m = this.state, - f = m.scrollLeft, - g = m.scrollTop, - b = function(e) { - if (void 0 === e && (e = !1), -1 === XX || e) { - var t = document.createElement("div"), - n = t.style; - n.width = "50px", n.height = "50px", n.overflow = "scroll", document.body.appendChild(t), XX = t.offsetWidth - t.clientWidth, document.body.removeChild(t) - } - return XX - }(); - void 0 !== a && (a = Math.max(0, Math.min(a, o - 1))), void 0 !== r && (r = Math.max(0, Math.min(r, p - 1))); - var y = s(this.props, this._instanceProps), - v = l(this.props, this._instanceProps) > h ? b : 0, - k = y > d ? b : 0; - this.scrollTo({ - scrollLeft: void 0 !== a ? c(this.props, a, n, f, this._instanceProps, k) : f, - scrollTop: void 0 !== r ? u(this.props, r, n, g, this._instanceProps, v) : g - }) - }, n.componentDidMount = function() { - var e = this.props, - t = e.initialScrollLeft, - n = e.initialScrollTop; - if (null != this._outerRef) { - var a = this._outerRef; - "number" == typeof t && (a.scrollLeft = t), "number" == typeof n && (a.scrollTop = n) - } - this._callPropsCallbacks() - }, n.componentDidUpdate = function() { - var e = this.props.direction, - t = this.state, - n = t.scrollLeft, - a = t.scrollTop; - if (t.scrollUpdateWasRequested && null != this._outerRef) { - var r = this._outerRef; - if ("rtl" === e) switch (t1()) { - case "negative": - r.scrollLeft = -n; - break; - case "positive-ascending": - r.scrollLeft = n; - break; - default: - var i = r.clientWidth, - o = r.scrollWidth; - r.scrollLeft = o - i - n - } else r.scrollLeft = Math.max(0, n); - r.scrollTop = Math.max(0, a) - } - this._callPropsCallbacks() - }, n.componentWillUnmount = function() { - null !== this._resetIsScrollingTimeoutId && ZX(this._resetIsScrollingTimeoutId) - }, n.render = function() { - var e = this.props, - t = e.children, - n = e.className, - a = e.columnCount, - r = e.direction, - i = e.height, - o = e.innerRef, - c = e.innerElementType, - u = e.innerTagName, - d = e.itemData, - p = e.itemKey, - h = void 0 === p ? n1 : p, - m = e.outerElementType, - f = e.outerTagName, - g = e.rowCount, - b = e.style, - y = e.useIsScrolling, - v = e.width, - k = this.state.isScrolling, - _ = this._getHorizontalRangeToRender(), - w = _[0], - S = _[1], - x = this._getVerticalRangeToRender(), - C = x[0], - A = x[1], - j = []; - if (a > 0 && g) - for (var P = C; P <= A; P++) - for (var D = w; D <= S; D++) j.push((0, E.createElement)(t, { - columnIndex: D, - data: d, - isScrolling: y ? k : void 0, - key: h({ - columnIndex: D, - data: d, - rowIndex: P - }), - rowIndex: P, - style: this._getItemStyle(P, D) - })); - var T = s(this.props, this._instanceProps), - O = l(this.props, this._instanceProps); - return (0, E.createElement)(m || f || "div", { - className: n, - onScroll: this._onScroll, - ref: this._outerRefSetter, - style: z({ - position: "relative", - height: i, - width: v, - overflow: "auto", - WebkitOverflowScrolling: "touch", - willChange: "transform", - direction: r - }, b) - }, (0, E.createElement)(c || u || "div", { - children: j, - ref: o, - style: { - height: T, - pointerEvents: k ? "none" : void 0, - width: O - } - })) - }, n._callPropsCallbacks = function() { - var e = this.props, - t = e.columnCount, - n = e.onItemsRendered, - a = e.onScroll, - r = e.rowCount; - if ("function" == typeof n && t > 0 && r > 0) { - var i = this._getHorizontalRangeToRender(), - o = i[0], - s = i[1], - l = i[2], - c = i[3], - u = this._getVerticalRangeToRender(), - d = u[0], - p = u[1], - h = u[2], - m = u[3]; - this._callOnItemsRendered(o, s, d, p, l, c, h, m) - } - if ("function" == typeof a) { - var f = this.state, - g = f.horizontalScrollDirection, - b = f.scrollLeft, - y = f.scrollTop, - v = f.scrollUpdateWasRequested, - k = f.verticalScrollDirection; - this._callOnScroll(b, y, g, k, v) - } - }, n._getHorizontalRangeToRender = function() { - var e = this.props, - t = e.columnCount, - n = e.overscanColumnCount, - a = e.overscanColumnsCount, - o = e.overscanCount, - s = e.rowCount, - l = this.state, - c = l.horizontalScrollDirection, - u = l.isScrolling, - d = l.scrollLeft, - p = n || a || o || 1; - if (0 === t || 0 === s) return [0, 0, 0, 0]; - var h = r(this.props, d, this._instanceProps), - m = i(this.props, h, d, this._instanceProps), - f = u && "backward" !== c ? 1 : Math.max(1, p), - g = u && "forward" !== c ? 1 : Math.max(1, p); - return [Math.max(0, h - f), Math.max(0, Math.min(t - 1, m + g)), h, m] - }, n._getVerticalRangeToRender = function() { - var e = this.props, - t = e.columnCount, - n = e.overscanCount, - a = e.overscanRowCount, - r = e.overscanRowsCount, - i = e.rowCount, - o = this.state, - s = o.isScrolling, - l = o.verticalScrollDirection, - c = o.scrollTop, - u = a || r || n || 1; - if (0 === t || 0 === i) return [0, 0, 0, 0]; - var d = h(this.props, c, this._instanceProps), - p = m(this.props, d, c, this._instanceProps), - f = s && "backward" !== l ? 1 : Math.max(1, u), - g = s && "forward" !== l ? 1 : Math.max(1, u); - return [Math.max(0, d - f), Math.max(0, Math.min(i - 1, p + g)), d, p] - }, t - }(E.PureComponent), t.defaultProps = { - direction: "ltr", - itemData: void 0, - useIsScrolling: !1 - }, n + } + const _5 = Ei(Ne((function(e) { + const { + localFlipX: t + } = e["features/base/settings"]; + return { + _localFlipX: Boolean(t) + } + }))(k5)); class w5 extends x.PureComponent { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this) + } + render() { + const { + t: e + } = this.props; + return C().createElement(j2, { + buttonText: e("videothumbnail.hideSelfView"), + displayClass: "hideselflink", + id: "hideselfviewbutton", + onClick: this._onClick + }) + } + _onClick() { + const { + disableSelfView: e, + dispatch: t, + onClick: n + } = this.props; + n && n(), t(hn({ + disableSelfView: !e + })), e || t(tg({ + titleKey: "notify.selfViewTitle", + customActionNameKey: ["settings.title"], + customActionHandler: [() => t(DX(jY.PROFILE))] + }, Yf.STICKY)) + } + } + const S5 = Ei(Ne((function(e) { + const { + disableSelfView: t + } = e["features/base/config"]; + return { + disableSelfView: Boolean(t) + } + }))(w5)); class E5 extends x.Component { + constructor(e) { + super(e), this._onPopoverClose = this._onPopoverClose.bind(this), this._onPopoverOpen = this._onPopoverOpen.bind(this) + } + render() { + const { + _localParticipantId: e, + _menuPosition: t, + _showConnectionInfo: n, + _overflowDrawer: a, + _showLocalVideoFlipButton: r, + hidePopover: i, + popoverVisible: o, + t: s + } = this.props, l = n ? C().createElement(C3, { + participantId: e + }) : C().createElement(h3, { + id: "localVideoMenu" + }, C().createElement(_5, { + onClick: i + }), C().createElement(S5, { + onClick: i + }), va() && C().createElement(M2, { + participantId: e + })); + return va() || r ? C().createElement(A9, { + content: l, + id: "local-video-menu-trigger", + onPopoverClose: this._onPopoverClose, + onPopoverOpen: this._onPopoverOpen, + overflowDrawer: a, + position: t, + visible: o + }, !a && C().createElement("span", { + className: "popover-trigger local-video-menu-trigger" + }, !va() && C().createElement(lo, { + ariaLabel: s("dialog.localUserControls"), + role: "button", + size: "1.4em", + src: Zl, + tabIndex: 0, + title: s("dialog.localUserControls") + }))) : null + } + _onPopoverOpen() { + const { + dispatch: e, + showPopover: t + } = this.props; + t(), e(M3(!0)) + } + _onPopoverClose() { + const { + hidePopover: e, + dispatch: t + } = this.props; + e(), (0, Me.unstable_batchedUpdates)((() => { + t(M3(!1)), t(qX(!1)) + })) + } + } + const x5 = Ei(Ne((function(e) { + const t = JS(e), + n = Uh(e), + { + disableLocalVideoFlip: a + } = e["features/base/config"], + r = nh(e["features/base/tracks"]), + { + overflowDrawer: i + } = e["features/toolbox"], + { + showConnectionInfo: o + } = e["features/base/connection"]; + let s; + switch (t) { + case GS: + s = "left-start"; + break; + case KS: + s = "left-end"; + break; + case YS: + s = "top"; + break; + default: + s = "auto" + } + return { + _menuPosition: s, + _showLocalVideoFlipButton: !a && "desktop" !== (null == r ? void 0 : r.videoType), + _overflowDrawer: i, + _localParticipantId: n.id, + _showConnectionInfo: o + } + }))(E5)), C5 = 100; class A5 extends x.Component { + constructor(e) { + super(e), this.state = { + volumeLevel: (e.initialValue || 0) * C5 + }, this._onVolumeChange = this._onVolumeChange.bind(this) + } + render() { + return C().createElement("li", { + "aria-label": this.props.t("volumeSlider"), + className: "popupmenu__item" + }, C().createElement("div", { + className: "popupmenu__contents" + }, C().createElement("span", { + className: "popupmenu__icon" + }, C().createElement(lo, { + src: Po + })), C().createElement("div", { + className: "popupmenu__slider_container" + }, C().createElement("input", { + "aria-valuemax": C5, + "aria-valuemin": 0, + "aria-valuenow": this.state.volumeLevel, + className: "popupmenu__slider", + max: C5, + min: 0, + onChange: this._onVolumeChange, + tabIndex: 0, + type: "range", + value: this.state.volumeLevel + })))) } - var r1 = function(e, t) { - e.children, e.direction, e.height, e.innerTagName, e.outerTagName, e.overscanColumnsCount, e.overscanCount, e.overscanRowsCount, e.width, t.instance + _onVolumeChange(e) { + const t = e.currentTarget.value; + this.props.onChange(t / C5), this.setState({ + volumeLevel: t + }) + } + } + const T5 = Ei(A5), D5 = xw((e => ({ + button: { + padding: `${e.spacing(2)}px` + } + }))), P5 = e => { + let { + accessibilityLabel: t, + children: n, + id: a, + isIconButton: r = !1, + onClick: i + } = e; + const o = D5(); + return C().createElement(C0, { + accessibilityLabel: t, + className: r ? o.button : "", + id: a, + onClick: i + }, n) + }, j5 = BQ((e => ({ + contextMenu: { + bottom: "auto", + margin: "0", + right: 0, + top: "-8px", + transform: "translateY(-100%)", + width: "283px" + }, + text: { + color: e.palette.text02, + padding: "10px 16px", + height: "40px", + overflow: "hidden", + display: "flex", + alignItems: "center", + boxSizing: "border-box" + }, + indentedLabel: { + "& > span": { + marginLeft: "36px" + } + } + }))), M5 = e => { + let { + isOpen: t, + onDrawerClose: n, + onMouseLeave: a + } = e; + const r = Ae(), + i = Pe((e => { + const { + conference: t + } = e["features/base/conference"]; + return !!t && t.isAVModerationSupported() + })), + o = Pe(em), + s = Pe(Yh), + l = Pe(hm(Fi)), + c = Pe(hm(Bi)), + { + t: u + } = pr(), + d = (0, x.useCallback)((() => r(ef())), [r]), + p = (0, x.useCallback)((() => r(tf())), [r]), + h = (0, x.useCallback)((() => r(nf())), [r]), + m = (0, x.useCallback)((() => r(af())), [r]), + f = j5(), + g = (0, x.useCallback)((() => r(VI(e3))), [r]), + b = [{ + accessibilityLabel: u("participantsPane.actions.audioModeration"), + className: l ? f.indentedLabel : "", + id: l ? "participants-pane-context-menu-stop-audio-moderation" : "participants-pane-context-menu-start-audio-moderation", + icon: !l && os, + onClick: l ? d : h, + text: u("participantsPane.actions.audioModeration") + }, { + accessibilityLabel: u("participantsPane.actions.videoModeration"), + className: c ? f.indentedLabel : "", + id: c ? "participants-pane-context-menu-stop-video-moderation" : "participants-pane-context-menu-start-video-moderation", + icon: !c && os, + onClick: c ? p : m, + text: u("participantsPane.actions.videoModeration") + }]; + return C().createElement(Y0, { + className: f.contextMenu, + hidden: !t, + isDrawerOpen: t, + onDrawerClose: n, + onMouseLeave: a + }, C().createElement(K0, { + actions: [{ + accessibilityLabel: u("participantsPane.actions.stopEveryonesVideo"), + id: "participants-pane-context-menu-stop-video", + icon: bd, + onClick: g, + text: u("participantsPane.actions.stopEveryonesVideo") + }] + }), i && (1 === s || !o) && C().createElement(K0, { + actions: b + }, C().createElement("div", { + className: f.text + }, C().createElement("span", null, u("participantsPane.actions.allow")))), C().createElement(K0, { + actions: [{ + accessibilityLabel: u("participantsPane.actions.moreModerationControls"), + id: "participants-pane-open-moderation-control-settings", + icon: Pl, + onClick: () => r(DX(jY.MODERATOR)), + text: u("participantsPane.actions.moreModerationControls") + }] + })) + }; + + function I5(e) { + return e["features/lobby"].lobbyEnabled + } + + function O5(e) { + return e["features/lobby"].knockingParticipants + } + + function N5(e) { + return e["features/lobby"].lobbyVisible + } + + function R5(e) { + let { + openDrawerForParticipant: t, + overflowDrawer: n, + participants: a + } = e; + return C().createElement("div", null, a.map((e => C().createElement(s2, { + key: e.id, + openDrawerForParticipant: t, + overflowDrawer: n, + participant: e + })))) + } + const z5 = C().memo(R5), L5 = BQ((e => ({ + drawerActions: { + listStyleType: "none", + margin: 0, + padding: 0 + }, + drawerItem: { + alignItems: "center", + color: e.palette.text01, + display: "flex", + padding: "12px 16px", + ...no(e.typography.bodyShortRegularLarge), + "&:first-child": { + marginTop: "15px" }, - i1 = function(e, t) { - return e + "&:hover": { + cursor: "pointer", + background: e.palette.action02 + } + }, + icon: { + marginRight: 16 + }, + headingContainer: { + alignItems: "center", + display: "flex", + justifyContent: "space-between" + }, + heading: { + ...no(e.typography.heading7), + color: e.palette.text02 + }, + link: { + ...no(e.typography.labelBold), + color: e.palette.link01, + cursor: "pointer" + } + }))); + + function F5() { + const e = Pe(I5), + t = Pe(O5), + { + t: n + } = pr(), + a = L5(), + r = Ae(), + i = (0, x.useCallback)((() => { + r(function(e) { + return (t, n) => { + const a = vF(n); + e.forEach((e => { + a.lobbyApproveAccess(e.id) + })) + } + }(t)) + }), [r, t]), + o = Pe(vI), + [s, l, c] = V0(), + [u, d] = H0(s, l); + return e && t.length ? C().createElement(C().Fragment, null, C().createElement("div", { + className: a.headingContainer + }, C().createElement("div", { + className: a.heading + }, n("participantsPane.headings.lobby", { + count: t.length + })), C().createElement("div", { + className: a.link, + onClick: i + }, n("lobby.admitAll"))), C().createElement(z5, { + openDrawerForParticipant: c, + overflowDrawer: o, + participants: t + }), C().createElement(n9, null, C().createElement(e9, { + isOpen: Boolean(s && o), + onClose: l + }, C().createElement("ul", { + className: a.drawerActions + }, C().createElement("li", { + className: a.drawerItem + }, C().createElement(sp, { + className: a.icon, + participantId: s && s.participantID, + size: 20 + }), C().createElement("span", null, s && s.displayName)), C().createElement("li", { + className: a.drawerItem, + onClick: u + }, C().createElement(lo, { + className: a.icon, + size: 20, + src: os + }), C().createElement("span", null, n("lobby.admit"))), C().createElement("li", { + className: a.drawerItem, + onClick: d + }, C().createElement(lo, { + className: a.icon, + size: 20, + src: ds + }), C().createElement("span", null, n("lobby.reject"))))))) : null + } + const q5 = BQ((e => ({ + clearableInput: { + display: "flex", + alignItems: "center", + justifyContent: "flex-start", + height: "20px", + border: `1px solid ${e.palette.border02}`, + backgroundColor: e.palette.uiBackground, + position: "relative", + borderRadius: "6px", + padding: "10px 16px", + "&.focused": { + outline: `3px solid ${e.palette.field01Focus}` + } + }, + clearButton: { + backgroundColor: "transparent", + border: 0, + position: "absolute", + right: "10px", + top: "11px", + padding: 0, + "& svg": { + fill: e.palette.icon02 + } + }, + input: { + backgroundColor: "transparent", + border: 0, + width: "100%", + height: "100%", + borderRadius: "6px", + fontSize: "14px", + lineHeight: "20px", + textAlign: "center", + caretColor: e.palette.text01, + color: e.palette.text01, + "&::placeholder": { + color: e.palette.text03 + } + } + }))), B5 = function(e) { + let { + autoFocus: t = !1, + autoComplete: n, + className: a = "", + id: r, + onChange: i, + onSubmit: o, + placeholder: s, + testId: l, + type: c = "text", + value: u + } = e; + const d = q5(), + [p, h] = (0, x.useState)(u || ""), + [m, f] = (0, x.useState)(!1), + g = C().createRef(); + (0, x.useEffect)((() => { + u && u !== p && h(u) + }), [u]); + const b = (0, x.useCallback)((() => { + f(!1) + })), + y = (0, x.useCallback)((e => { + const t = e.target.value; + h(t), i && i(t) + }), [i]), + v = (0, x.useCallback)((() => { + f(!0) + })), + k = (0, x.useCallback)((e => { + o && "Enter" === e.key && o() + }), [o]), + _ = (0, x.useCallback)((() => { + g.current && g.current.focus(), h(""), i && i("") + }), [i]); + return C().createElement("div", { + className: `${d.clearableInput} ${m?"focused":""} ${a||""}` + }, C().createElement("input", { + autoComplete: n, + autoFocus: t, + className: d.input, + "data-testid": l || void 0, + id: r, + onBlur: b, + onChange: y, + onFocus: v, + onKeyDown: k, + placeholder: s, + ref: g, + type: c, + value: p + }), "" !== p && C().createElement("button", { + className: d.clearButton, + onClick: _ + }, C().createElement(lo, { + size: 20, + src: bs + }))) + }; class U5 extends x.Component { + render() { + return C().createElement(EC, { + className: "audioMuted toolbar-icon", + icon: gc, + iconId: "mic-disabled", + iconSize: 13, + tooltipKey: "videothumbnail.mute", + tooltipPosition: this.props.tooltipPosition + }) + } + } + const H5 = U5; class V5 extends x.Component { + render() { + return C().createElement(EC, { + className: "indicator show-inline", + icon: $s, + iconClassName: "indicatoricon", + iconSize: `${this.props.iconSize}px`, + id: "dominantspeakerindicator", + tooltipKey: "speaker", + tooltipPosition: this.props.tooltipPosition + }) + } + } + const W5 = V5; + + function Y5(e, t) { + if (e.length !== t.length) return !1; + for (var n = 0; n < e.length; n++) + if (e[n] !== t[n]) return !1; + return !0 + } + const G5 = function(e, t) { + var n; + void 0 === t && (t = Y5); + var a, r = [], + i = !1; + return function() { + for (var o = [], s = 0; s < arguments.length; s++) o[s] = arguments[s]; + return i && n === this && t(o, r) || (a = e.apply(this, o), i = !0, n = this, r = o), a + } + }; + var K5 = "object" == typeof performance && "function" == typeof performance.now ? function() { + return performance.now() + } : function() { + return Date.now() + }; + + function $5(e) { + cancelAnimationFrame(e.id) + } + + function J5(e, t) { + var n = K5(), + a = { + id: requestAnimationFrame((function r() { + K5() - n >= t ? e.call(null) : a.id = requestAnimationFrame(r) + })) }; + return a + } + var Z5 = -1, Q5 = null; + + function X5(e) { + if (void 0 === e && (e = !1), null === Q5 || e) { + var t = document.createElement("div"), + n = t.style; + n.width = "50px", n.height = "50px", n.overflow = "scroll", n.direction = "rtl"; + var a = document.createElement("div"), + r = a.style; + return r.width = "100px", r.height = "100px", t.appendChild(a), document.body.appendChild(t), t.scrollLeft > 0 ? Q5 = "positive-descending" : (t.scrollLeft = 1, Q5 = 0 === t.scrollLeft ? "negative" : "positive-ascending"), document.body.removeChild(t), Q5 + } + return Q5 + } + var e4 = function(e) { + var t = e.columnIndex; + return e.data, e.rowIndex + ":" + t + }; - function o1(e) { - var t, n, a = e.getItemOffset, - r = e.getEstimatedTotalSize, - i = e.getItemSize, - o = e.getOffsetForIndexAndAlignment, - s = e.getStartIndexForOffset, - l = e.getStopIndexForStartIndex, - c = e.initInstanceProps, - u = e.shouldResetStyleCacheOnItemSizeChange, - d = e.validateProps; - return n = t = function(e) { - function t(t) { - var n; - return (n = e.call(this, t) || this)._instanceProps = c(n.props, _(_(n))), n._outerRef = void 0, n._resetIsScrollingTimeoutId = null, n.state = { - instance: _(_(n)), - isScrolling: !1, - scrollDirection: "forward", - scrollOffset: "number" == typeof n.props.initialScrollOffset ? n.props.initialScrollOffset : 0, - scrollUpdateWasRequested: !1 - }, n._callOnItemsRendered = void 0, n._callOnItemsRendered = $X((function(e, t, a, r) { - return n.props.onItemsRendered({ - overscanStartIndex: e, - overscanStopIndex: t, - visibleStartIndex: a, - visibleStopIndex: r - }) - })), n._callOnScroll = void 0, n._callOnScroll = $X((function(e, t, a) { - return n.props.onScroll({ - scrollDirection: e, - scrollOffset: t, - scrollUpdateWasRequested: a - }) - })), n._getItemStyle = void 0, n._getItemStyle = function(e) { - var t, r = n.props, - o = r.direction, - s = r.itemSize, - l = r.layout, - c = n._getItemStyleCache(u && s, u && l, u && o); - if (c.hasOwnProperty(e)) t = c[e]; - else { - var d = a(n.props, e, n._instanceProps), - p = i(n.props, e, n._instanceProps), - h = "horizontal" === o || "horizontal" === l, - m = "rtl" === o, - f = h ? d : 0; - c[e] = t = { - position: "absolute", - left: m ? void 0 : f, - right: m ? f : void 0, - top: h ? 0 : d, - height: h ? "100%" : p, - width: h ? p : "100%" - } + function t4(e) { + var t, n, a = e.getColumnOffset, + r = e.getColumnStartIndexForOffset, + i = e.getColumnStopIndexForStartIndex, + o = e.getColumnWidth, + s = e.getEstimatedTotalHeight, + l = e.getEstimatedTotalWidth, + c = e.getOffsetForColumnAndAlignment, + u = e.getOffsetForRowAndAlignment, + d = e.getRowHeight, + p = e.getRowOffset, + h = e.getRowStartIndexForOffset, + m = e.getRowStopIndexForStartIndex, + f = e.initInstanceProps, + g = e.shouldResetStyleCacheOnItemSizeChange, + b = e.validateProps; + return n = t = function(e) { + function t(t) { + var n; + return (n = e.call(this, t) || this)._instanceProps = f(n.props, w(w(n))), n._resetIsScrollingTimeoutId = null, n._outerRef = void 0, n.state = { + instance: w(w(n)), + isScrolling: !1, + horizontalScrollDirection: "forward", + scrollLeft: "number" == typeof n.props.initialScrollLeft ? n.props.initialScrollLeft : 0, + scrollTop: "number" == typeof n.props.initialScrollTop ? n.props.initialScrollTop : 0, + scrollUpdateWasRequested: !1, + verticalScrollDirection: "forward" + }, n._callOnItemsRendered = void 0, n._callOnItemsRendered = G5((function(e, t, a, r, i, o, s, l) { + return n.props.onItemsRendered({ + overscanColumnStartIndex: e, + overscanColumnStopIndex: t, + overscanRowStartIndex: a, + overscanRowStopIndex: r, + visibleColumnStartIndex: i, + visibleColumnStopIndex: o, + visibleRowStartIndex: s, + visibleRowStopIndex: l + }) + })), n._callOnScroll = void 0, n._callOnScroll = G5((function(e, t, a, r, i) { + return n.props.onScroll({ + horizontalScrollDirection: a, + scrollLeft: e, + scrollTop: t, + verticalScrollDirection: r, + scrollUpdateWasRequested: i + }) + })), n._getItemStyle = void 0, n._getItemStyle = function(e, t) { + var r, i = n.props, + s = i.columnWidth, + l = i.direction, + c = i.rowHeight, + u = n._getItemStyleCache(g && s, g && l, g && c), + h = e + ":" + t; + if (u.hasOwnProperty(h)) r = u[h]; + else { + var m = a(n.props, t, n._instanceProps), + f = "rtl" === l; + u[h] = r = { + position: "absolute", + left: f ? void 0 : m, + right: f ? m : void 0, + top: p(n.props, e, n._instanceProps), + height: d(n.props, e, n._instanceProps), + width: o(n.props, t, n._instanceProps) } - return t - }, n._getItemStyleCache = void 0, n._getItemStyleCache = $X((function(e, t, n) { - return {} - })), n._onScrollHorizontal = function(e) { - var t = e.currentTarget, - a = t.clientWidth, - r = t.scrollLeft, - i = t.scrollWidth; - n.setState((function(e) { - if (e.scrollOffset === r) return null; - var t = n.props.direction, - o = r; - if ("rtl" === t) switch (t1()) { - case "negative": - o = -r; - break; - case "positive-descending": - o = i - a - r - } - return o = Math.max(0, Math.min(o, i - a)), { - isScrolling: !0, - scrollDirection: e.scrollOffset < r ? "forward" : "backward", - scrollOffset: o, - scrollUpdateWasRequested: !1 - } - }), n._resetIsScrollingDebounced) - }, n._onScrollVertical = function(e) { - var t = e.currentTarget, - a = t.clientHeight, - r = t.scrollHeight, - i = t.scrollTop; - n.setState((function(e) { - if (e.scrollOffset === i) return null; - var t = Math.max(0, Math.min(i, r - a)); - return { - isScrolling: !0, - scrollDirection: e.scrollOffset < t ? "forward" : "backward", - scrollOffset: t, - scrollUpdateWasRequested: !1 - } - }), n._resetIsScrollingDebounced) - }, n._outerRefSetter = function(e) { - var t = n.props.outerRef; - n._outerRef = e, "function" == typeof t ? t(e) : null != t && "object" == typeof t && t.hasOwnProperty("current") && (t.current = e) - }, n._resetIsScrollingDebounced = function() { - null !== n._resetIsScrollingTimeoutId && ZX(n._resetIsScrollingTimeoutId), n._resetIsScrollingTimeoutId = QX(n._resetIsScrolling, 150) - }, n._resetIsScrolling = function() { - n._resetIsScrollingTimeoutId = null, n.setState({ - isScrolling: !1 - }, (function() { - n._getItemStyleCache(-1, null) - })) - }, n - } - S(t, e), t.getDerivedStateFromProps = function(e, t) { - return s1(e, t), d(e), null - }; - var n = t.prototype; - return n.scrollTo = function(e) { - e = Math.max(0, e), this.setState((function(t) { - return t.scrollOffset === e ? null : { - scrollDirection: t.scrollOffset < e ? "forward" : "backward", - scrollOffset: e, - scrollUpdateWasRequested: !0 - } - }), this._resetIsScrollingDebounced) - }, n.scrollToItem = function(e, t) { - void 0 === t && (t = "auto"); - var n = this.props.itemCount, - a = this.state.scrollOffset; - e = Math.max(0, Math.min(e, n - 1)), this.scrollTo(o(this.props, e, t, a, this._instanceProps)) - }, n.componentDidMount = function() { - var e = this.props, - t = e.direction, - n = e.initialScrollOffset, - a = e.layout; - if ("number" == typeof n && null != this._outerRef) { - var r = this._outerRef; - "horizontal" === t || "horizontal" === a ? r.scrollLeft = n : r.scrollTop = n - } - this._callPropsCallbacks() - }, n.componentDidUpdate = function() { - var e = this.props, - t = e.direction, - n = e.layout, - a = this.state, - r = a.scrollOffset; - if (a.scrollUpdateWasRequested && null != this._outerRef) { - var i = this._outerRef; - if ("horizontal" === t || "horizontal" === n) - if ("rtl" === t) switch (t1()) { - case "negative": - i.scrollLeft = -r; - break; - case "positive-ascending": - i.scrollLeft = r; - break; - default: - var o = i.clientWidth, - s = i.scrollWidth; - i.scrollLeft = s - o - r - } else i.scrollLeft = r; - else i.scrollTop = r - } - this._callPropsCallbacks() - }, n.componentWillUnmount = function() { - null !== this._resetIsScrollingTimeoutId && ZX(this._resetIsScrollingTimeoutId) - }, n.render = function() { - var e = this.props, - t = e.children, - n = e.className, - a = e.direction, - i = e.height, - o = e.innerRef, - s = e.innerElementType, - l = e.innerTagName, - c = e.itemCount, - u = e.itemData, - d = e.itemKey, - p = void 0 === d ? i1 : d, - h = e.layout, - m = e.outerElementType, - f = e.outerTagName, - g = e.style, - b = e.useIsScrolling, - y = e.width, - v = this.state.isScrolling, - k = "horizontal" === a || "horizontal" === h, - _ = k ? this._onScrollHorizontal : this._onScrollVertical, - w = this._getRangeToRender(), - S = w[0], - x = w[1], - C = []; - if (c > 0) - for (var A = S; A <= x; A++) C.push((0, E.createElement)(t, { - data: u, - key: p(A, u), - index: A, - isScrolling: b ? v : void 0, - style: this._getItemStyle(A) - })); - var j = r(this.props, this._instanceProps); - return (0, E.createElement)(m || f || "div", { - className: n, - onScroll: _, - ref: this._outerRefSetter, - style: z({ - position: "relative", - height: i, - width: y, - overflow: "auto", - WebkitOverflowScrolling: "touch", - willChange: "transform", - direction: a - }, g) - }, (0, E.createElement)(s || l || "div", { - children: C, - ref: o, - style: { - height: k ? "100%" : j, - pointerEvents: v ? "none" : void 0, - width: k ? j : "100%" + } + return r + }, n._getItemStyleCache = void 0, n._getItemStyleCache = G5((function(e, t, n) { + return {} + })), n._onScroll = function(e) { + var t = e.currentTarget, + a = t.clientHeight, + r = t.clientWidth, + i = t.scrollLeft, + o = t.scrollTop, + s = t.scrollHeight, + l = t.scrollWidth; + n.setState((function(e) { + if (e.scrollLeft === i && e.scrollTop === o) return null; + var t = n.props.direction, + c = i; + if ("rtl" === t) switch (X5()) { + case "negative": + c = -i; + break; + case "positive-descending": + c = l - r - i } + c = Math.max(0, Math.min(c, l - r)); + var u = Math.max(0, Math.min(o, s - a)); + return { + isScrolling: !0, + horizontalScrollDirection: e.scrollLeft < i ? "forward" : "backward", + scrollLeft: c, + scrollTop: u, + verticalScrollDirection: e.scrollTop < o ? "forward" : "backward", + scrollUpdateWasRequested: !1 + } + }), n._resetIsScrollingDebounced) + }, n._outerRefSetter = function(e) { + var t = n.props.outerRef; + n._outerRef = e, "function" == typeof t ? t(e) : null != t && "object" == typeof t && t.hasOwnProperty("current") && (t.current = e) + }, n._resetIsScrollingDebounced = function() { + null !== n._resetIsScrollingTimeoutId && $5(n._resetIsScrollingTimeoutId), n._resetIsScrollingTimeoutId = J5(n._resetIsScrolling, 150) + }, n._resetIsScrolling = function() { + n._resetIsScrollingTimeoutId = null, n.setState({ + isScrolling: !1 + }, (function() { + n._getItemStyleCache(-1) })) - }, n._callPropsCallbacks = function() { - if ("function" == typeof this.props.onItemsRendered && this.props.itemCount > 0) { - var e = this._getRangeToRender(), - t = e[0], - n = e[1], - a = e[2], - r = e[3]; - this._callOnItemsRendered(t, n, a, r) - } - if ("function" == typeof this.props.onScroll) { - var i = this.state, - o = i.scrollDirection, - s = i.scrollOffset, - l = i.scrollUpdateWasRequested; - this._callOnScroll(o, s, l) - } - }, n._getRangeToRender = function() { - var e = this.props, - t = e.itemCount, - n = e.overscanCount, - a = this.state, - r = a.isScrolling, - i = a.scrollDirection, - o = a.scrollOffset; - if (0 === t) return [0, 0, 0, 0]; - var c = s(this.props, o, this._instanceProps), - u = l(this.props, c, o, this._instanceProps), - d = r && "backward" !== i ? 1 : Math.max(1, n), - p = r && "forward" !== i ? 1 : Math.max(1, n); - return [Math.max(0, c - d), Math.max(0, Math.min(t - 1, u + p)), c, u] - }, t - }(E.PureComponent), t.defaultProps = { - direction: "ltr", - itemData: void 0, - layout: "vertical", - overscanCount: 2, - useIsScrolling: !1 - }, n - } - var s1 = function(e, t) { - e.children, e.direction, e.height, e.layout, e.innerTagName, e.outerTagName, e.width, t.instance - }, - l1 = a1({ - getColumnOffset: function(e, t) { - return t * e.columnWidth - }, - getColumnWidth: function(e, t) { - return e.columnWidth - }, - getRowOffset: function(e, t) { - return t * e.rowHeight - }, - getRowHeight: function(e, t) { - return e.rowHeight - }, - getEstimatedTotalHeight: function(e) { - var t = e.rowCount; - return e.rowHeight * t - }, - getEstimatedTotalWidth: function(e) { - var t = e.columnCount; - return e.columnWidth * t - }, - getOffsetForColumnAndAlignment: function(e, t, n, a, r, i) { - var o = e.columnCount, - s = e.columnWidth, - l = e.width, - c = Math.max(0, o * s - l), - u = Math.min(c, t * s), - d = Math.max(0, t * s - l + i + s); - switch ("smart" === n && (n = a >= d - l && a <= u + l ? "auto" : "center"), n) { - case "start": - return u; - case "end": - return d; - case "center": - var p = Math.round(d + (u - d) / 2); - return p < Math.ceil(l / 2) ? 0 : p > c + Math.floor(l / 2) ? c : p; - default: - return a >= d && a <= u ? a : d > u || a < d ? d : u - } - }, - getOffsetForRowAndAlignment: function(e, t, n, a, r, i) { - var o = e.rowHeight, - s = e.height, - l = e.rowCount, - c = Math.max(0, l * o - s), - u = Math.min(c, t * o), - d = Math.max(0, t * o - s + i + o); - switch ("smart" === n && (n = a >= d - s && a <= u + s ? "auto" : "center"), n) { - case "start": - return u; - case "end": - return d; - case "center": - var p = Math.round(d + (u - d) / 2); - return p < Math.ceil(s / 2) ? 0 : p > c + Math.floor(s / 2) ? c : p; - default: - return a >= d && a <= u ? a : d > u || a < d ? d : u - } - }, - getColumnStartIndexForOffset: function(e, t) { - var n = e.columnWidth, - a = e.columnCount; - return Math.max(0, Math.min(a - 1, Math.floor(t / n))) - }, - getColumnStopIndexForStartIndex: function(e, t, n) { - var a = e.columnWidth, - r = e.columnCount, - i = e.width, - o = t * a, - s = Math.ceil((i + n - o) / a); - return Math.max(0, Math.min(r - 1, t + s - 1)) - }, - getRowStartIndexForOffset: function(e, t) { - var n = e.rowHeight, - a = e.rowCount; - return Math.max(0, Math.min(a - 1, Math.floor(t / n))) - }, - getRowStopIndexForStartIndex: function(e, t, n) { - var a = e.rowHeight, - r = e.rowCount, - i = e.height, - o = t * a, - s = Math.ceil((i + n - o) / a); - return Math.max(0, Math.min(r - 1, t + s - 1)) - }, - initInstanceProps: function(e) {}, - shouldResetStyleCacheOnItemSizeChange: !0, - validateProps: function(e) { - e.columnWidth, e.rowHeight - } - }), - c1 = o1({ - getItemOffset: function(e, t) { - return t * e.itemSize - }, - getItemSize: function(e, t) { - return e.itemSize - }, - getEstimatedTotalSize: function(e) { - var t = e.itemCount; - return e.itemSize * t - }, - getOffsetForIndexAndAlignment: function(e, t, n, a) { - var r = e.direction, - i = e.height, - o = e.itemCount, - s = e.itemSize, - l = e.layout, - c = e.width, - u = "horizontal" === r || "horizontal" === l ? c : i, - d = Math.max(0, o * s - u), - p = Math.min(d, t * s), - h = Math.max(0, t * s - u + s); - switch ("smart" === n && (n = a >= h - u && a <= p + u ? "auto" : "center"), n) { - case "start": - return p; - case "end": - return h; - case "center": - var m = Math.round(h + (p - h) / 2); - return m < Math.ceil(u / 2) ? 0 : m > d + Math.floor(u / 2) ? d : m; + }, n + } + E(t, e), t.getDerivedStateFromProps = function(e, t) { + return n4(e, t), b(e), null + }; + var n = t.prototype; + return n.scrollTo = function(e) { + var t = e.scrollLeft, + n = e.scrollTop; + void 0 !== t && (t = Math.max(0, t)), void 0 !== n && (n = Math.max(0, n)), this.setState((function(e) { + return void 0 === t && (t = e.scrollLeft), void 0 === n && (n = e.scrollTop), e.scrollLeft === t && e.scrollTop === n ? null : { + horizontalScrollDirection: e.scrollLeft < t ? "forward" : "backward", + scrollLeft: t, + scrollTop: n, + scrollUpdateWasRequested: !0, + verticalScrollDirection: e.scrollTop < n ? "forward" : "backward" + } + }), this._resetIsScrollingDebounced) + }, n.scrollToItem = function(e) { + var t = e.align, + n = void 0 === t ? "auto" : t, + a = e.columnIndex, + r = e.rowIndex, + i = this.props, + o = i.columnCount, + d = i.height, + p = i.rowCount, + h = i.width, + m = this.state, + f = m.scrollLeft, + g = m.scrollTop, + b = function(e) { + if (void 0 === e && (e = !1), -1 === Z5 || e) { + var t = document.createElement("div"), + n = t.style; + n.width = "50px", n.height = "50px", n.overflow = "scroll", document.body.appendChild(t), Z5 = t.offsetWidth - t.clientWidth, document.body.removeChild(t) + } + return Z5 + }(); + void 0 !== a && (a = Math.max(0, Math.min(a, o - 1))), void 0 !== r && (r = Math.max(0, Math.min(r, p - 1))); + var y = s(this.props, this._instanceProps), + v = l(this.props, this._instanceProps) > h ? b : 0, + k = y > d ? b : 0; + this.scrollTo({ + scrollLeft: void 0 !== a ? c(this.props, a, n, f, this._instanceProps, k) : f, + scrollTop: void 0 !== r ? u(this.props, r, n, g, this._instanceProps, v) : g + }) + }, n.componentDidMount = function() { + var e = this.props, + t = e.initialScrollLeft, + n = e.initialScrollTop; + if (null != this._outerRef) { + var a = this._outerRef; + "number" == typeof t && (a.scrollLeft = t), "number" == typeof n && (a.scrollTop = n) + } + this._callPropsCallbacks() + }, n.componentDidUpdate = function() { + var e = this.props.direction, + t = this.state, + n = t.scrollLeft, + a = t.scrollTop; + if (t.scrollUpdateWasRequested && null != this._outerRef) { + var r = this._outerRef; + if ("rtl" === e) switch (X5()) { + case "negative": + r.scrollLeft = -n; + break; + case "positive-ascending": + r.scrollLeft = n; + break; default: - return a >= h && a <= p ? a : a < h ? h : p + var i = r.clientWidth, + o = r.scrollWidth; + r.scrollLeft = o - i - n + } else r.scrollLeft = Math.max(0, n); + r.scrollTop = Math.max(0, a) + } + this._callPropsCallbacks() + }, n.componentWillUnmount = function() { + null !== this._resetIsScrollingTimeoutId && $5(this._resetIsScrollingTimeoutId) + }, n.render = function() { + var e = this.props, + t = e.children, + n = e.className, + a = e.columnCount, + r = e.direction, + i = e.height, + o = e.innerRef, + c = e.innerElementType, + u = e.innerTagName, + d = e.itemData, + p = e.itemKey, + h = void 0 === p ? e4 : p, + m = e.outerElementType, + f = e.outerTagName, + g = e.rowCount, + b = e.style, + y = e.useIsScrolling, + v = e.width, + k = this.state.isScrolling, + _ = this._getHorizontalRangeToRender(), + w = _[0], + S = _[1], + E = this._getVerticalRangeToRender(), + C = E[0], + A = E[1], + T = []; + if (a > 0 && g) + for (var D = C; D <= A; D++) + for (var P = w; P <= S; P++) T.push((0, x.createElement)(t, { + columnIndex: P, + data: d, + isScrolling: y ? k : void 0, + key: h({ + columnIndex: P, + data: d, + rowIndex: D + }), + rowIndex: D, + style: this._getItemStyle(D, P) + })); + var j = s(this.props, this._instanceProps), + M = l(this.props, this._instanceProps); + return (0, x.createElement)(m || f || "div", { + className: n, + onScroll: this._onScroll, + ref: this._outerRefSetter, + style: z({ + position: "relative", + height: i, + width: v, + overflow: "auto", + WebkitOverflowScrolling: "touch", + willChange: "transform", + direction: r + }, b) + }, (0, x.createElement)(c || u || "div", { + children: T, + ref: o, + style: { + height: j, + pointerEvents: k ? "none" : void 0, + width: M } - }, - getStartIndexForOffset: function(e, t) { - var n = e.itemCount, - a = e.itemSize; - return Math.max(0, Math.min(n - 1, Math.floor(t / a))) - }, - getStopIndexForStartIndex: function(e, t, n) { - var a = e.direction, - r = e.height, - i = e.itemCount, - o = e.itemSize, - s = e.layout, - l = e.width, - c = t * o, - u = "horizontal" === a || "horizontal" === s ? l : r, - d = Math.ceil((u + n - c) / o); - return Math.max(0, Math.min(i - 1, t + d - 1)) - }, - initInstanceProps: function(e) {}, - shouldResetStyleCacheOnItemSizeChange: !0, - validateProps: function(e) { - e.itemSize - } - }); - - function u1(e, t) { - for (var n in e) - if (!(n in t)) return !0; - for (var a in t) - if (e[a] !== t[a]) return !0; - return !1 - } + })) + }, n._callPropsCallbacks = function() { + var e = this.props, + t = e.columnCount, + n = e.onItemsRendered, + a = e.onScroll, + r = e.rowCount; + if ("function" == typeof n && t > 0 && r > 0) { + var i = this._getHorizontalRangeToRender(), + o = i[0], + s = i[1], + l = i[2], + c = i[3], + u = this._getVerticalRangeToRender(), + d = u[0], + p = u[1], + h = u[2], + m = u[3]; + this._callOnItemsRendered(o, s, d, p, l, c, h, m) + } + if ("function" == typeof a) { + var f = this.state, + g = f.horizontalScrollDirection, + b = f.scrollLeft, + y = f.scrollTop, + v = f.scrollUpdateWasRequested, + k = f.verticalScrollDirection; + this._callOnScroll(b, y, g, k, v) + } + }, n._getHorizontalRangeToRender = function() { + var e = this.props, + t = e.columnCount, + n = e.overscanColumnCount, + a = e.overscanColumnsCount, + o = e.overscanCount, + s = e.rowCount, + l = this.state, + c = l.horizontalScrollDirection, + u = l.isScrolling, + d = l.scrollLeft, + p = n || a || o || 1; + if (0 === t || 0 === s) return [0, 0, 0, 0]; + var h = r(this.props, d, this._instanceProps), + m = i(this.props, h, d, this._instanceProps), + f = u && "backward" !== c ? 1 : Math.max(1, p), + g = u && "forward" !== c ? 1 : Math.max(1, p); + return [Math.max(0, h - f), Math.max(0, Math.min(t - 1, m + g)), h, m] + }, n._getVerticalRangeToRender = function() { + var e = this.props, + t = e.columnCount, + n = e.overscanCount, + a = e.overscanRowCount, + r = e.overscanRowsCount, + i = e.rowCount, + o = this.state, + s = o.isScrolling, + l = o.verticalScrollDirection, + c = o.scrollTop, + u = a || r || n || 1; + if (0 === t || 0 === i) return [0, 0, 0, 0]; + var d = h(this.props, c, this._instanceProps), + p = m(this.props, d, c, this._instanceProps), + f = s && "backward" !== l ? 1 : Math.max(1, u), + g = s && "forward" !== l ? 1 : Math.max(1, u); + return [Math.max(0, d - f), Math.max(0, Math.min(i - 1, p + g)), d, p] + }, t + }(x.PureComponent), t.defaultProps = { + direction: "ltr", + itemData: void 0, + useIsScrolling: !1 + }, n + } + var n4 = function(e, t) { + e.children, e.direction, e.height, e.innerTagName, e.outerTagName, e.overscanColumnsCount, e.overscanCount, e.overscanRowsCount, e.width, t.instance + }, a4 = function(e, t) { + return e + }; - function d1(e, t) { - return ! function(e, t) { - var n = e.style, - a = R(e, ["style"]), - r = t.style, - i = R(t, ["style"]); - return !u1(n, r) && !u1(a, i) - }(this.props, e) || u1(this.state, t) - } - const p1 = ze((function(e) { - return { - _tracks: e["features/base/tracks"] - } - }))((function(e) { - const { - _tracks: t - } = e, n = t.filter((e => !e.local && e.mediaType === Xi)); - return x().createElement("div", null, n.map((e => { - const { - jitsiTrack: t, - participantId: n - } = e, a = `remoteAudio_${t&&t.getId()||""}`; - return x().createElement(mf, { - audioTrack: e, - id: a, - key: a, - participantId: n + function r4(e) { + var t, n, a = e.getItemOffset, + r = e.getEstimatedTotalSize, + i = e.getItemSize, + o = e.getOffsetForIndexAndAlignment, + s = e.getStartIndexForOffset, + l = e.getStopIndexForStartIndex, + c = e.initInstanceProps, + u = e.shouldResetStyleCacheOnItemSizeChange, + d = e.validateProps; + return n = t = function(e) { + function t(t) { + var n; + return (n = e.call(this, t) || this)._instanceProps = c(n.props, w(w(n))), n._outerRef = void 0, n._resetIsScrollingTimeoutId = null, n.state = { + instance: w(w(n)), + isScrolling: !1, + scrollDirection: "forward", + scrollOffset: "number" == typeof n.props.initialScrollOffset ? n.props.initialScrollOffset : 0, + scrollUpdateWasRequested: !1 + }, n._callOnItemsRendered = void 0, n._callOnItemsRendered = G5((function(e, t, a, r) { + return n.props.onItemsRendered({ + overscanStartIndex: e, + overscanStopIndex: t, + visibleStartIndex: a, + visibleStopIndex: r }) - }))) - })), - h1 = Math.floor(2.5); - class m1 extends E.Component { - render() { - const { - audioLevel: e - } = this.props, t = 5 * ("number" != typeof e || isNaN(e) ? 0 : Math.min(1.2 * e, 1)), n = []; - for (let e = 0; e < 5; e++) { - const a = h1 - e, - r = t - Math.abs(a), - i = Math.min(1, Math.max(0, r)); - let o; - o = 0 === a ? "audiodot-middle" : a < 0 ? "audiodot-top" : "audiodot-bottom", n.push(x().createElement("span", { - className: o, - key: e, - style: { - opacity: i + })), n._callOnScroll = void 0, n._callOnScroll = G5((function(e, t, a) { + return n.props.onScroll({ + scrollDirection: e, + scrollOffset: t, + scrollUpdateWasRequested: a + }) + })), n._getItemStyle = void 0, n._getItemStyle = function(e) { + var t, r = n.props, + o = r.direction, + s = r.itemSize, + l = r.layout, + c = n._getItemStyleCache(u && s, u && l, u && o); + if (c.hasOwnProperty(e)) t = c[e]; + else { + var d = a(n.props, e, n._instanceProps), + p = i(n.props, e, n._instanceProps), + h = "horizontal" === o || "horizontal" === l, + m = "rtl" === o, + f = h ? d : 0; + c[e] = t = { + position: "absolute", + left: m ? void 0 : f, + right: m ? f : void 0, + top: h ? 0 : d, + height: h ? "100%" : p, + width: h ? p : "100%" } + } + return t + }, n._getItemStyleCache = void 0, n._getItemStyleCache = G5((function(e, t, n) { + return {} + })), n._onScrollHorizontal = function(e) { + var t = e.currentTarget, + a = t.clientWidth, + r = t.scrollLeft, + i = t.scrollWidth; + n.setState((function(e) { + if (e.scrollOffset === r) return null; + var t = n.props.direction, + o = r; + if ("rtl" === t) switch (X5()) { + case "negative": + o = -r; + break; + case "positive-descending": + o = i - a - r + } + return o = Math.max(0, Math.min(o, i - a)), { + isScrolling: !0, + scrollDirection: e.scrollOffset < r ? "forward" : "backward", + scrollOffset: o, + scrollUpdateWasRequested: !1 + } + }), n._resetIsScrollingDebounced) + }, n._onScrollVertical = function(e) { + var t = e.currentTarget, + a = t.clientHeight, + r = t.scrollHeight, + i = t.scrollTop; + n.setState((function(e) { + if (e.scrollOffset === i) return null; + var t = Math.max(0, Math.min(i, r - a)); + return { + isScrolling: !0, + scrollDirection: e.scrollOffset < t ? "forward" : "backward", + scrollOffset: t, + scrollUpdateWasRequested: !1 + } + }), n._resetIsScrollingDebounced) + }, n._outerRefSetter = function(e) { + var t = n.props.outerRef; + n._outerRef = e, "function" == typeof t ? t(e) : null != t && "object" == typeof t && t.hasOwnProperty("current") && (t.current = e) + }, n._resetIsScrollingDebounced = function() { + null !== n._resetIsScrollingTimeoutId && $5(n._resetIsScrollingTimeoutId), n._resetIsScrollingTimeoutId = J5(n._resetIsScrolling, 150) + }, n._resetIsScrolling = function() { + n._resetIsScrollingTimeoutId = null, n.setState({ + isScrolling: !1 + }, (function() { + n._getItemStyleCache(-1, null) })) - } - return x().createElement("span", { - className: "audioindicator in-react" - }, n) + }, n } + E(t, e), t.getDerivedStateFromProps = function(e, t) { + return i4(e, t), d(e), null + }; + var n = t.prototype; + return n.scrollTo = function(e) { + e = Math.max(0, e), this.setState((function(t) { + return t.scrollOffset === e ? null : { + scrollDirection: t.scrollOffset < e ? "forward" : "backward", + scrollOffset: e, + scrollUpdateWasRequested: !0 + } + }), this._resetIsScrollingDebounced) + }, n.scrollToItem = function(e, t) { + void 0 === t && (t = "auto"); + var n = this.props.itemCount, + a = this.state.scrollOffset; + e = Math.max(0, Math.min(e, n - 1)), this.scrollTo(o(this.props, e, t, a, this._instanceProps)) + }, n.componentDidMount = function() { + var e = this.props, + t = e.direction, + n = e.initialScrollOffset, + a = e.layout; + if ("number" == typeof n && null != this._outerRef) { + var r = this._outerRef; + "horizontal" === t || "horizontal" === a ? r.scrollLeft = n : r.scrollTop = n + } + this._callPropsCallbacks() + }, n.componentDidUpdate = function() { + var e = this.props, + t = e.direction, + n = e.layout, + a = this.state, + r = a.scrollOffset; + if (a.scrollUpdateWasRequested && null != this._outerRef) { + var i = this._outerRef; + if ("horizontal" === t || "horizontal" === n) + if ("rtl" === t) switch (X5()) { + case "negative": + i.scrollLeft = -r; + break; + case "positive-ascending": + i.scrollLeft = r; + break; + default: + var o = i.clientWidth, + s = i.scrollWidth; + i.scrollLeft = s - o - r + } else i.scrollLeft = r; + else i.scrollTop = r + } + this._callPropsCallbacks() + }, n.componentWillUnmount = function() { + null !== this._resetIsScrollingTimeoutId && $5(this._resetIsScrollingTimeoutId) + }, n.render = function() { + var e = this.props, + t = e.children, + n = e.className, + a = e.direction, + i = e.height, + o = e.innerRef, + s = e.innerElementType, + l = e.innerTagName, + c = e.itemCount, + u = e.itemData, + d = e.itemKey, + p = void 0 === d ? a4 : d, + h = e.layout, + m = e.outerElementType, + f = e.outerTagName, + g = e.style, + b = e.useIsScrolling, + y = e.width, + v = this.state.isScrolling, + k = "horizontal" === a || "horizontal" === h, + _ = k ? this._onScrollHorizontal : this._onScrollVertical, + w = this._getRangeToRender(), + S = w[0], + E = w[1], + C = []; + if (c > 0) + for (var A = S; A <= E; A++) C.push((0, x.createElement)(t, { + data: u, + key: p(A, u), + index: A, + isScrolling: b ? v : void 0, + style: this._getItemStyle(A) + })); + var T = r(this.props, this._instanceProps); + return (0, x.createElement)(m || f || "div", { + className: n, + onScroll: _, + ref: this._outerRefSetter, + style: z({ + position: "relative", + height: i, + width: y, + overflow: "auto", + WebkitOverflowScrolling: "touch", + willChange: "transform", + direction: a + }, g) + }, (0, x.createElement)(s || l || "div", { + children: C, + ref: o, + style: { + height: k ? "100%" : T, + pointerEvents: v ? "none" : void 0, + width: k ? T : "100%" + } + })) + }, n._callPropsCallbacks = function() { + if ("function" == typeof this.props.onItemsRendered && this.props.itemCount > 0) { + var e = this._getRangeToRender(), + t = e[0], + n = e[1], + a = e[2], + r = e[3]; + this._callOnItemsRendered(t, n, a, r) + } + if ("function" == typeof this.props.onScroll) { + var i = this.state, + o = i.scrollDirection, + s = i.scrollOffset, + l = i.scrollUpdateWasRequested; + this._callOnScroll(o, s, l) + } + }, n._getRangeToRender = function() { + var e = this.props, + t = e.itemCount, + n = e.overscanCount, + a = this.state, + r = a.isScrolling, + i = a.scrollDirection, + o = a.scrollOffset; + if (0 === t) return [0, 0, 0, 0]; + var c = s(this.props, o, this._instanceProps), + u = l(this.props, c, o, this._instanceProps), + d = r && "backward" !== i ? 1 : Math.max(1, n), + p = r && "forward" !== i ? 1 : Math.max(1, n); + return [Math.max(0, c - d), Math.max(0, Math.min(t - 1, u + p)), c, u] + }, t + }(x.PureComponent), t.defaultProps = { + direction: "ltr", + itemData: void 0, + layout: "vertical", + overscanCount: 2, + useIsScrolling: !1 + }, n + } + var i4 = function(e, t) { + e.children, e.direction, e.height, e.layout, e.innerTagName, e.outerTagName, e.width, t.instance + }, o4 = t4({ + getColumnOffset: function(e, t) { + return t * e.columnWidth + }, + getColumnWidth: function(e, t) { + return e.columnWidth + }, + getRowOffset: function(e, t) { + return t * e.rowHeight + }, + getRowHeight: function(e, t) { + return e.rowHeight + }, + getEstimatedTotalHeight: function(e) { + var t = e.rowCount; + return e.rowHeight * t + }, + getEstimatedTotalWidth: function(e) { + var t = e.columnCount; + return e.columnWidth * t + }, + getOffsetForColumnAndAlignment: function(e, t, n, a, r, i) { + var o = e.columnCount, + s = e.columnWidth, + l = e.width, + c = Math.max(0, o * s - l), + u = Math.min(c, t * s), + d = Math.max(0, t * s - l + i + s); + switch ("smart" === n && (n = a >= d - l && a <= u + l ? "auto" : "center"), n) { + case "start": + return u; + case "end": + return d; + case "center": + var p = Math.round(d + (u - d) / 2); + return p < Math.ceil(l / 2) ? 0 : p > c + Math.floor(l / 2) ? c : p; + default: + return a >= d && a <= u ? a : d > u || a < d ? d : u + } + }, + getOffsetForRowAndAlignment: function(e, t, n, a, r, i) { + var o = e.rowHeight, + s = e.height, + l = e.rowCount, + c = Math.max(0, l * o - s), + u = Math.min(c, t * o), + d = Math.max(0, t * o - s + i + o); + switch ("smart" === n && (n = a >= d - s && a <= u + s ? "auto" : "center"), n) { + case "start": + return u; + case "end": + return d; + case "center": + var p = Math.round(d + (u - d) / 2); + return p < Math.ceil(s / 2) ? 0 : p > c + Math.floor(s / 2) ? c : p; + default: + return a >= d && a <= u ? a : d > u || a < d ? d : u + } + }, + getColumnStartIndexForOffset: function(e, t) { + var n = e.columnWidth, + a = e.columnCount; + return Math.max(0, Math.min(a - 1, Math.floor(t / n))) + }, + getColumnStopIndexForStartIndex: function(e, t, n) { + var a = e.columnWidth, + r = e.columnCount, + i = e.width, + o = t * a, + s = Math.ceil((i + n - o) / a); + return Math.max(0, Math.min(r - 1, t + s - 1)) + }, + getRowStartIndexForOffset: function(e, t) { + var n = e.rowHeight, + a = e.rowCount; + return Math.max(0, Math.min(a - 1, Math.floor(t / n))) + }, + getRowStopIndexForStartIndex: function(e, t, n) { + var a = e.rowHeight, + r = e.rowCount, + i = e.height, + o = t * a, + s = Math.ceil((i + n - o) / a); + return Math.max(0, Math.min(r - 1, t + s - 1)) + }, + initInstanceProps: function(e) {}, + shouldResetStyleCacheOnItemSizeChange: !0, + validateProps: function(e) { + e.columnWidth, e.rowHeight + } + }), s4 = r4({ + getItemOffset: function(e, t) { + return t * e.itemSize + }, + getItemSize: function(e, t) { + return e.itemSize + }, + getEstimatedTotalSize: function(e) { + var t = e.itemCount; + return e.itemSize * t + }, + getOffsetForIndexAndAlignment: function(e, t, n, a) { + var r = e.direction, + i = e.height, + o = e.itemCount, + s = e.itemSize, + l = e.layout, + c = e.width, + u = "horizontal" === r || "horizontal" === l ? c : i, + d = Math.max(0, o * s - u), + p = Math.min(d, t * s), + h = Math.max(0, t * s - u + s); + switch ("smart" === n && (n = a >= h - u && a <= p + u ? "auto" : "center"), n) { + case "start": + return p; + case "end": + return h; + case "center": + var m = Math.round(h + (p - h) / 2); + return m < Math.ceil(u / 2) ? 0 : m > d + Math.floor(u / 2) ? d : m; + default: + return a >= h && a <= p ? a : a < h ? h : p + } + }, + getStartIndexForOffset: function(e, t) { + var n = e.itemCount, + a = e.itemSize; + return Math.max(0, Math.min(n - 1, Math.floor(t / a))) + }, + getStopIndexForStartIndex: function(e, t, n) { + var a = e.direction, + r = e.height, + i = e.itemCount, + o = e.itemSize, + s = e.layout, + l = e.width, + c = t * o, + u = "horizontal" === a || "horizontal" === s ? l : r, + d = Math.ceil((u + n - c) / o); + return Math.max(0, Math.min(i - 1, t + d - 1)) + }, + initInstanceProps: function(e) {}, + shouldResetStyleCacheOnItemSizeChange: !0, + validateProps: function(e) { + e.itemSize + } + }); + + function l4(e, t) { + for (var n in e) + if (!(n in t)) return !0; + for (var a in t) + if (e[a] !== t[a]) return !0; + return !1 + } + + function c4(e, t) { + return ! function(e, t) { + var n = e.style, + a = L(e, ["style"]), + r = t.style, + i = L(t, ["style"]); + return !l4(n, r) && !l4(a, i) + }(this.props, e) || l4(this.state, t) + } + const u4 = Ne((function(e) { + return { + _tracks: e["features/base/tracks"] } - const f1 = m1; - class g1 extends E.Component { - constructor(e) { - super(e), this._onKeyPress = this._onKeyPress.bind(this) - } - _onKeyPress(e) { - !this.props.onClick || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.onClick()) - } - render() { - const { - buttonText: e, - displayClass: t, - icon: n, - id: a, - onClick: r - } = this.props, i = `popupmenu__link ${t||""}`; - return x().createElement("li", { - className: "popupmenu__item" - }, x().createElement("a", { - "aria-label": e || "some thing", - className: i, - id: a, - onClick: r, - onKeyPress: this._onKeyPress, - role: "button", - tabIndex: 0 - }, x().createElement("span", { - className: "popupmenu__icon" - }, n && x().createElement(qs, { - src: n - })), x().createElement("span", { - className: "popupmenu__text" - }, e))) + }))((function(e) { + const { + _tracks: t + } = e, n = t.filter((e => !e.local && e.mediaType === Fi)); + return C().createElement("div", null, n.map((e => { + const { + jitsiTrack: t, + participantId: n + } = e, a = `remoteAudio_${t&&t.getId()||""}`; + return C().createElement(Ef, { + audioTrack: e, + id: a, + key: a, + participantId: n + }) + }))) + })), d4 = Math.floor(2.5); class p4 extends x.Component { + render() { + const { + audioLevel: e + } = this.props, t = 5 * ("number" != typeof e || isNaN(e) ? 0 : Math.min(1.2 * e, 1)), n = []; + for (let e = 0; e < 5; e++) { + const a = d4 - e, + r = t - Math.abs(a), + i = Math.min(1, Math.max(0, r)); + let o; + o = 0 === a ? "audiodot-middle" : a < 0 ? "audiodot-top" : "audiodot-bottom", n.push(C().createElement("span", { + className: o, + key: e, + style: { + opacity: i + } + })) } + return C().createElement("span", { + className: "audioindicator in-react" + }, n) } - const b1 = Li(ze()((({ - dispatch: e, - participantId: t, - t: n - }) => { - const a = (0, E.useCallback)((() => { - e(VQ(!0)) - }), [e]); - return x().createElement(g1, { - buttonText: n("videothumbnail.connectionInfo"), - icon: nu, - id: `connstatus_${t}`, - onClick: a - }) - }))); + } + const h4 = p4; - function y1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - class v1 extends Vw { - constructor(...e) { - super(...e), y1(this, "accessibilityLabel", "toolbar.accessibilityLabel.grantModerator"), y1(this, "icon", pc), y1(this, "label", "videothumbnail.grantModerator") + function m4() { + return m4 = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } - _handleClick() { - const { - dispatch: e, - participantID: t - } = this.props; - e(sP(w1, { - participantID: t - })) + return e + }, m4.apply(this, arguments) + } + const f4 = c.default.events.track; + + function g4(e) { + e.stopPropagation() + } + class b4 extends x.Component { + constructor(e) { + super(e); + const t = { + audioLevel: 0, + canPlayEventReceived: !1, + isHovered: !1, + displayMode: yS, + popoverVisible: !1 + }; + this.state = { + ...t, + displayMode: jS(b4.getDisplayModeInput(e, t)), + popoverVisible: !1 + }, this.timeoutHandle = null, this.videoMenuTriggerRef = null, this._clearDoubleClickTimeout = this._clearDoubleClickTimeout.bind(this), this._updateAudioLevel = this._updateAudioLevel.bind(this), this._onCanPlay = this._onCanPlay.bind(this), this._onClick = this._onClick.bind(this), this._onVolumeChange = this._onVolumeChange.bind(this), this._onMouseEnter = this._onMouseEnter.bind(this), this._onMouseLeave = this._onMouseLeave.bind(this), this._onTestingEvent = this._onTestingEvent.bind(this), this._onTouchStart = this._onTouchStart.bind(this), this._onTouchEnd = this._onTouchEnd.bind(this), this._onTouchMove = this._onTouchMove.bind(this), this._showPopover = this._showPopover.bind(this), this._hidePopover = this._hidePopover.bind(this) + } + componentDidMount() { + this._listenForAudioUpdates(), this._onDisplayModeChanged() + } + componentDidUpdate(e, t) { + e._audioTrack !== this.props._audioTrack && (this._stopListeningForAudioUpdates(e._audioTrack), this._listenForAudioUpdates(), this._updateAudioLevel(0)), t.displayMode !== this.state.displayMode && this._onDisplayModeChanged() + } + _onDisplayModeChanged() { + const e = b4.getDisplayModeInput(this.props, this.state); + this._maybeSendScreenSharingIssueEvents(e) + } + _maybeSendScreenSharingIssueEvents(e) { + const { + _currentLayout: t, + _isAudioOnly: n, + _isScreenSharing: a + } = this.props, { + displayMode: r + } = this.state, i = t === GS; + ![yS, vS].includes(r) && i && a && !n && Da(an({ + source: "thumbnail", + ...e + })) + } + static getDerivedStateFromProps(e, t) { + if (!e._videoTrack && t.canPlayEventReceived) { + const n = { + ...t, + canPlayEventReceived: !1 + }; + return { + ...n, + displayMode: jS(b4.getDisplayModeInput(e, n)) + } } + const n = jS(b4.getDisplayModeInput(e, t)); + return n !== t.displayMode ? { + ...t, + displayMode: n + } : null } - const k1 = Li(ze((function(e, t) { + static getDisplayModeInput(e, t) { const { - participantID: n - } = t, a = Rh(e), r = Fh(e, n); + _currentLayout: n, + _isAudioOnly: a, + _isCurrentlyOnLargeVideo: r, + _isScreenSharing: i, + _isVideoPlayable: o, + _participant: s, + _videoTrack: l + } = e, c = n === GS, { + canPlayEventReceived: u, + isHovered: d + } = t; return { - visible: Boolean((null == a ? void 0 : a.role) === Th) && !Gh(r) - } - }))(class extends v1 { - constructor(e) { - super(e), this._handleClick = this._handleClick.bind(this) - } - render() { + isCurrentlyOnLargeVideo: r, + isHovered: d, + isAudioOnly: a, + tileViewActive: c, + isVideoPlayable: o, + connectionStatus: null == s ? void 0 : s.connectionStatus, + canPlayEventReceived: u, + videoStream: Boolean(l), + isRemoteParticipant: !(null != s && s.isFakeParticipant || null != s && s.local), + isScreenSharing: i, + videoStreamMuted: l ? l.muted : "no stream" + } + } + componentWillUnmount() { + this._stopListeningForAudioUpdates(this.props._audioTrack) + } + _clearDoubleClickTimeout() { + clearTimeout(this._firstTap), this._firstTap = void 0 + } + _listenForAudioUpdates() { + const { + _audioTrack: e + } = this.props; + if (e) { const { - participantID: e, - t, - visible: n - } = this.props; - return n ? x().createElement(g1, { - buttonText: t("videothumbnail.grantModerator"), - displayClass: "grantmoderatorlink", - icon: pc, - id: `grantmoderatorlink_${e}`, - onClick: this._handleClick - }) : null - } - })); - class _1 extends E.Component { - constructor(e) { - super(e), this._onSubmit = this._onSubmit.bind(this) + jitsiTrack: t + } = e; + t && t.on(f4.TRACK_AUDIO_LEVEL_CHANGED, this._updateAudioLevel) } - _onSubmit() { + } + _stopListeningForAudioUpdates(e) { + if (e) { const { - dispatch: e, - participantID: t - } = this.props; - return Ma(sn("grant.moderator.button", { - participant_id: t - })), e({ - type: zv, - id: t - }), !0 + jitsiTrack: t + } = e; + t && t.off(f4.TRACK_AUDIO_LEVEL_CHANGED, this._updateAudioLevel) } } - const w1 = Li(ze((function(e, t) { - return { - participantName: Fh(e, t.participantID).name - } - }))(class extends _1 { - render() { - return x().createElement(IO, { - okKey: "dialog.Yes", - onSubmit: this._onSubmit, - titleKey: "dialog.grantModeratorTitle", - width: "small" - }, x().createElement("div", null, this.props.t("dialog.grantModeratorDialog", { - participantName: this.props.participantName - }))) - } - })); - - function S1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _updateAudioLevel(e) { + this.setState({ + audioLevel: e + }) } - class E1 extends Vw { - constructor(...e) { - super(...e), S1(this, "accessibilityLabel", "toolbar.accessibilityLabel.kick"), S1(this, "icon", Wl), S1(this, "label", "videothumbnail.kick") - } - _handleClick() { - const { - dispatch: e, - participantID: t - } = this.props; - e(sP(A1, { - participantID: t - })) - } + _showPopover() { + this.setState({ + popoverVisible: !0 + }) } - const x1 = Li(ze()(class extends E1 { - constructor(e) { - super(e), this._handleClick = this._handleClick.bind(this) - } - render() { + _hidePopover() { + this.setState({ + popoverVisible: !1 + }) + } + _getStyles() { + const { + canPlayEventReceived: e + } = this.state, { + _currentLayout: t, + _disableTileEnlargement: n, + _height: a, + _isHidden: r, + _isScreenSharing: i, + _participant: o, + _width: s, + horizontalOffset: l, + style: c + } = this.props, u = t === GS; + let d = { + thumbnail: {}, + avatar: {}, + video: {} + }; + const p = a / 2; + let { + left: h + } = c || {}; + "number" == typeof h && l && (h += l); + let m = null; + return i || (m = e || o.local ? { + objectFit: a < 320 && u || n ? "contain" : "cover" + } : { + display: "none" + }), d = { + thumbnail: { + ...c, + left: h, + height: `${a}px`, + minHeight: `${a}px`, + minWidth: `${s}px`, + width: `${s}px` + }, + avatar: { + height: `${p}px`, + width: `${p}px` + }, + video: m + }, r && (d.thumbnail.display = "none"), d + } + _onClick() { + const { + _participant: e, + dispatch: t + } = this.props, { + id: n, + pinned: a + } = e; + t(uS(a ? null : n)) + } + _onMouseEnter() { + this.setState({ + isHovered: !0 + }) + } + _onMouseLeave() { + this.setState({ + isHovered: !1 + }) + } + _onTouchStart() { + if (this.timeoutHandle = setTimeout(this._showPopover, 600), this._firstTap) return this._clearDoubleClickTimeout(), void this._onClick(); + this._firstTap = setTimeout(this._clearDoubleClickTimeout, 300) + } + _onTouchEnd() { + clearTimeout(this.timeoutHandle) + } + _onTouchMove() { + clearTimeout(this.timeoutHandle) + } + _renderFakeParticipant() { + const { + _isMobile: e, + _participant: { + avatarURL: t + } + } = this.props, n = this._getStyles(), a = this._getContainerClassName(); + return C().createElement("span", m4({ + className: a, + id: "sharedVideoContainer", + onClick: this._onClick + }, e ? {} : { + onMouseEnter: this._onMouseEnter, + onMouseLeave: this._onMouseLeave + }, { + style: n.thumbnail + }), t ? C().createElement("img", { + className: "sharedVideoAvatar", + src: t + }) : this._renderAvatar(n.avatar)) + } + _renderTopIndicators() { + const { + _connectionIndicatorAutoHideEnabled: e, + _connectionIndicatorDisabled: t, + _currentLayout: n, + _isDominantSpeakerDisabled: a, + _indicatorIconSize: r, + _participant: i, + _participantCountMoreThan2: o + } = this.props, { + isHovered: s + } = this.state, l = s || !e, { + id: c, + dominantSpeaker: u = !1 + } = i, d = !a && u; + let p, h; + switch (n) { + case GS: + p = "right-start", h = "right"; + break; + case KS: + p = "left-start", h = "left"; + break; + case YS: + p = "top", h = "top"; + break; + default: + p = "auto", h = "top" + } + return C().createElement("div", null, !t && C().createElement(D9, { + alwaysVisible: l, + enableStatsDisplay: !0, + iconSize: r, + participantId: c, + statsPopoverPosition: p + }), C().createElement(A4, { + iconSize: r, + participantId: c, + tooltipPosition: h + }), d && o && C().createElement(W5, { + iconSize: r, + tooltipPosition: h + })) + } + _renderAvatar(e) { + const { + _participant: t + } = this.props, { + id: n + } = t; + return C().createElement("div", { + className: "avatar-container", + style: e + }, C().createElement(sp, { + className: "userAvatar", + participantId: n + })) + } + _getContainerClassName() { + let e = "videocontainer"; + const { + displayMode: t + } = this.state, { + _isAudioOnly: n, + _isDominantSpeakerDisabled: a, + _isHidden: r, + _participant: i + } = this.props, o = !(null != i && i.local || null != i && i.isFakeParticipant); + return e += ` ${kS[t]}`, null != i && i.pinned && (e += " videoContainerFocused"), !a && null != i && i.dominantSpeaker && (e += " active-speaker"), r && (e += " hidden"), o && n && (e += " audio-only"), e + } + _renderLocalParticipant() { + const { + _allowEditing: e, + _defaultLocalDisplayName: t, + _disableLocalVideoFlip: n, + _isMobile: a, + _isMobilePortrait: r, + _isScreenSharing: i, + _localFlipX: o, + _participant: s, + _videoTrack: l + } = this.props, { + id: c + } = s || {}, { + audioLevel: u + } = this.state, d = this._getStyles(); + let p = this._getContainerClassName(); + const h = !n && l && !i && o ? "flipVideoX" : ""; + return r && (d.thumbnail.height = d.thumbnail.width, p = `${p} self-view-mobile-portrait`), C().createElement("span", m4({ + className: p, + id: "localVideoContainer" + }, a ? { + onTouchEnd: this._onTouchEnd, + onTouchMove: this._onTouchMove, + onTouchStart: this._onTouchStart + } : { + onClick: this._onClick, + onMouseEnter: this._onMouseEnter, + onMouseLeave: this._onMouseLeave + }, { + style: d.thumbnail + }), C().createElement("div", { + className: "videocontainer__background" + }), C().createElement("span", { + id: "localVideoWrapper" + }, C().createElement(Nf, { + className: h, + id: "localVideo_container", + style: d.video, + videoTrack: l + })), C().createElement("div", { + className: "videocontainer__toolbar" + }, C().createElement(M4, { + participantID: c + }), C().createElement("div", { + className: "videocontainer__participant-name", + onClick: g4 + }, C().createElement(a1, { + allowEditing: e, + displayNameSuffix: t, + elementID: "localDisplayName", + participantID: c + }))), C().createElement("div", { + className: "videocontainer__toptoolbar" + }, this._renderTopIndicators()), C().createElement("div", { + className: "videocontainer__hoverOverlay" + }), this._renderAvatar(d.avatar), C().createElement("span", { + className: "audioindicator-container" + }, C().createElement(h4, { + audioLevel: u + })), C().createElement("span", { + className: "localvideomenu" + }, C().createElement(x5, { + hidePopover: this._hidePopover, + popoverVisible: this.state.popoverVisible, + showPopover: this._showPopover + }))) + } + _onCanPlay(e) { + this.setState({ + canPlayEventReceived: !0 + }); + const { + _isTestModeEnabled: t, + _videoTrack: n + } = this.props; + n && t && this._onTestingEvent(e) + } + _onTestingEvent(e) { + const { + _videoTrack: t, + dispatch: n + } = this.props; + n(function(e, t) { + return { + type: yp, + track: e, + name: t + } + }(null == t ? void 0 : t.jitsiTrack, e.type)) + } + _renderRemoteParticipant() { + const { + _isMobile: e, + _isTestModeEnabled: t, + _participant: n, + _startSilent: a, + _videoTrack: r, + _volume: i = 1 + } = this.props, { + id: o + } = n, { + audioLevel: s + } = this.state, l = this._getStyles(), c = this._getContainerClassName(), u = a ? void 0 : this._onVolumeChange, d = null == r ? void 0 : r.jitsiTrack, p = d && d.getId(), h = {}; + return r && t && bS.forEach((e => { + h[e] = this._onTestingEvent + })), h.onCanPlay = this._onCanPlay, C().createElement("span", m4({ + className: c, + id: `participant_${o}` + }, e ? { + onTouchEnd: this._onTouchEnd, + onTouchMove: this._onTouchMove, + onTouchStart: this._onTouchStart + } : { + onClick: this._onClick, + onMouseEnter: this._onMouseEnter, + onMouseLeave: this._onMouseLeave + }, { + style: l.thumbnail + }), r && C().createElement(Nf, { + eventHandlers: h, + id: `remoteVideo_${p||""}`, + muted: !0, + style: l.video, + videoTrack: r + }), C().createElement("div", { + className: "videocontainer__background" + }), C().createElement("div", { + className: "videocontainer__toptoolbar" + }, this._renderTopIndicators()), C().createElement("div", { + className: "videocontainer__toolbar" + }, C().createElement(M4, { + participantID: o + }), C().createElement("div", { + className: "videocontainer__participant-name" + }, C().createElement(a1, { + elementID: `participant_${o}_name`, + participantID: o + }))), C().createElement("div", { + className: "videocontainer__hoverOverlay" + }), this._renderAvatar(l.avatar), C().createElement("div", { + className: "presence-label-container" + }, C().createElement(eY, { + className: "presence-label", + participantID: o + })), C().createElement("span", { + className: "audioindicator-container" + }, C().createElement(h4, { + audioLevel: s + })), C().createElement("span", { + className: "remotevideomenu" + }, C().createElement(v5, { + hidePopover: this._hidePopover, + initialVolumeValue: i, + onVolumeChange: u, + participantID: o, + popoverVisible: this.state.popoverVisible, + showPopover: this._showPopover + }))) + } + _onVolumeChange(e) { + const { + _participant: t, + dispatch: n + } = this.props, { + id: a + } = t; + n(LS(a, e)) + } + render() { + const { + _participant: e + } = this.props; + if (!e) return null; + const { + isFakeParticipant: t, + local: n + } = e; + return n ? this._renderLocalParticipant() : t ? this._renderFakeParticipant() : this._renderRemoteParticipant() + } + } + const y4 = Ne((function(e, t) { + var n, a, r, i, o; + const { + participantID: s + } = t, l = Wh(e, s), c = null == l ? void 0 : l.id, u = null === (n = null == l ? void 0 : l.local) || void 0 === n || n, d = e["features/base/tracks"], { + participantsVolume: p + } = e["features/filmstrip"], h = u ? nh(d) : oh(d, Bi, s), m = u ? Xp(d) : oh(d, Fi, s), f = JS(e); + let g = {}, + b = !1; + const { + startSilent: y, + defaultLocalDisplayName: v, + disableLocalVideoFlip: k, + disableTileEnlargement: _, + iAmRecorder: w, + iAmSipGateway: S + } = e["features/base/config"], { + NORMAL: E = 8 + } = interfaceConfig.INDICATOR_FONT_SIZES || {}, { + localFlipX: x + } = e["features/base/settings"], C = va(); + switch (f) { + case KS: + case YS: { const { - participantID: e, - t - } = this.props; - return x().createElement(g1, { - buttonText: t("videothumbnail.kick"), - displayClass: "kicklink", - icon: lu, - id: `ejectlink_${e}`, - onClick: this._handleClick - }) - } - })); - class C1 extends E.Component { - constructor(e) { - super(e), this._onSubmit = this._onSubmit.bind(this) + horizontalViewDimensions: t = { + local: {}, + remote: {} + }, + verticalViewDimensions: n = { + local: {}, + remote: {} + } + } = e["features/filmstrip"], { + local: a, + remote: r + } = f === KS ? n : t, { + width: i, + height: o + } = u ? a : r; + g = { + _width: i, + _height: o + }, b = C && e["features/base/responsive-ui"].aspectRatio === uX; + break } - _onSubmit() { + case GS: { const { - dispatch: e, - participantID: t - } = this.props; - return Ma(sn("kick.button", { - participant_id: t - })), e(Xv(t)), !0 + width: t, + height: n + } = e["features/filmstrip"].tileViewDimensions.thumbnailSize; + g = { + _width: t, + _height: n + }; + break } } - const A1 = Li(ze()(class extends C1 { - render() { - return x().createElement(IO, { - okKey: "dialog.kickParticipantButton", - onSubmit: this._onSubmit, - titleKey: "dialog.kickParticipantTitle", - width: "small" - }, x().createElement("div", null, this.props.t("dialog.kickParticipantDialog"))) - } - })); - - function j1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + return { + _allowEditing: !Hn(e), + _audioTrack: m, + _connectionIndicatorAutoHideEnabled: Boolean(null === (a = null === (r = e["features/base/config"].connectionIndicators) || void 0 === r ? void 0 : r.autoHide) || void 0 === a || a), + _connectionIndicatorDisabled: C || Boolean(null === (i = e["features/base/config"].connectionIndicators) || void 0 === i ? void 0 : i.disabled), + _currentLayout: f, + _defaultLocalDisplayName: v, + _disableLocalVideoFlip: Boolean(k), + _disableTileEnlargement: Boolean(_), + _isHidden: u && w && !S, + _isAudioOnly: Boolean(e["features/base/audio-only"].enabled), + _isCurrentlyOnLargeVideo: (null === (o = e["features/large-video"]) || void 0 === o ? void 0 : o.participantId) === c, + _isDominantSpeakerDisabled: interfaceConfig.DISABLE_DOMINANT_SPEAKER_INDICATOR, + _isMobile: C, + _isMobilePortrait: b, + _isScreenSharing: "desktop" === (null == h ? void 0 : h.videoType), + _isTestModeEnabled: P9(e), + _isVideoPlayable: c && PS(e, c), + _indicatorIconSize: E, + _localFlipX: Boolean(x), + _participant: l, + _participantCountMoreThan2: Yh(e) > 2, + _startSilent: Boolean(y), + _videoTrack: h, + _volume: u ? void 0 : c ? p[c] : void 0, + ...g + } + }))(b4); class v4 extends x.Component { + constructor(e) { + super(e), this.shouldComponentUpdate = c4.bind(this) + } + render() { + const { + _participantID: e, + style: t, + _horizontalOffset: n = 0, + _disableSelfView: a + } = this.props; + return "string" != typeof e ? null : "local" === e ? a ? null : C().createElement(y4, { + horizontalOffset: n, + key: "local", + style: t + }) : C().createElement(y4, { + horizontalOffset: n, + key: `remote_${e}`, + participantID: e, + style: t + }) } - class P1 extends Vw { - constructor(...e) { - super(...e), j1(this, "accessibilityLabel", "toolbar.accessibilityLabel.remoteMute"), j1(this, "icon", Fu), j1(this, "label", "videothumbnail.domute"), j1(this, "toggledLabel", "videothumbnail.muted") - } - _handleClick() { + } + const k4 = Ne((function(e, t) { + var n; + const a = JS(e), + { + remoteParticipants: r + } = e["features/filmstrip"], + i = r.length, + { + testing: o = {} + } = e["features/base/config"], + s = qS(e), + l = null === (n = o.enableThumbnailReordering) || void 0 === n || n; + if (a === GS) { + const { + columnIndex: n, + rowIndex: a + } = t, { + gridDimensions: o = {}, + thumbnailSize: c + } = e["features/filmstrip"].tileViewDimensions, { + columns: u, + rows: d + } = o, p = a * u + n; + let h; + const { + iAmRecorder: m + } = e["features/base/config"], f = i + (m ? 0 : 1) - (s ? 1 : 0); + if (a === d - 1) { const { - dispatch: e, - participantID: t - } = this.props; - Ma(sn("mute.button", { - participant_id: t - })), e(UQ(t, Xi)) - } - _isDisabled() { - return this.props._audioTrackMuted - } - _isToggled() { - return this.props._audioTrackMuted + width: e + } = c, t = f % u; + t > 0 && (h = Math.floor((u - t) * (e + 4) / 2)) + } + if (p > f - 1) return {}; + const g = l && !s ? 0 : i, + b = !l || m || s ? p : p - 1; + return m || p !== g ? { + _participantID: r[b], + _horizontalOffset: h + } : { + _disableSelfView: s, + _participantID: "local", + _horizontalOffset: h } } - const D1 = Li(ze((function(e, t) { - return { - _audioTrackMuted: as(e["features/base/tracks"], Xi, t.participantID) + const { + index: c + } = t; + return "number" != typeof c || i <= c ? {} : { + _participantID: r[c] + } + }))(v4); + + function _4() { + return _4 = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } - }))(class extends P1 { - constructor(e) { - super(e), this._handleClick = this._handleClick.bind(this) + return e + }, _4.apply(this, arguments) + } + class w4 extends x.PureComponent { + constructor(e) { + super(e), this._onShortcutToggleFilmstrip = this._onShortcutToggleFilmstrip.bind(this), this._onToolbarToggleFilmstrip = this._onToolbarToggleFilmstrip.bind(this), this._onTabIn = this._onTabIn.bind(this), this._gridItemKey = this._gridItemKey.bind(this), this._listItemKey = this._listItemKey.bind(this), this._onGridItemsRendered = this._onGridItemsRendered.bind(this), this._onListItemsRendered = this._onListItemsRendered.bind(this), this._onToggleButtonTouch = this._onToggleButtonTouch.bind(this) + } + componentDidMount() { + APP.keyboardshortcut.registerShortcut("F", "filmstripPopover", this._onShortcutToggleFilmstrip, "keyboardShortcuts.toggleFilmstrip") + } + componentWillUnmount() { + APP.keyboardshortcut.unregisterShortcut("F") + } + render() { + const e = {}, + { + _currentLayout: t, + _disableSelfView: n + } = this.props, + a = t === GS; + t === KS && (e.maxWidth = (interfaceConfig.FILM_STRIP_MAX_HEIGHT || 120) + 25); + let r = null; + return this.props._isFilmstripButtonEnabled && (r = this._renderToggleButton()), C().createElement("div", { + className: `filmstrip ${this.props._className}`, + style: e + }, r, C().createElement("div", { + className: this.props._videosClassName, + id: "remoteVideos" + }, !n && C().createElement("div", { + className: "filmstrip__videos", + id: "filmstripLocalVideo" + }, C().createElement("div", { + id: "filmstripLocalVideoThumbnail" + }, !a && C().createElement(y4, { + key: "local" + }))), this._renderRemoteParticipants()), C().createElement(u4, null)) + } + _calculateIndices(e, t) { + const { + _currentLayout: n, + _iAmRecorder: a, + _thumbnailsReordered: r + } = this.props; + let i = e, + o = t; + return r && (a || n !== GS || (i = Math.max(e - 1, 0), o = t - 1)), { + startIndex: i, + stopIndex: o } - render() { - const { - _audioTrackMuted: e, - participantID: t, - t: n - } = this.props, a = e ? { - translationKey: "videothumbnail.muted", - muteClassName: "mutelink disabled" + } + _onTabIn() { + !this.props._isToolboxVisible && this.props._visible && this.props.dispatch(xI()) + } + _listItemKey(e) { + const { + _remoteParticipants: t, + _remoteParticipantsLength: n + } = this.props; + return "number" != typeof e || n <= e ? `empty-${e}` : t[e] + } + _gridItemKey(e) { + let { + columnIndex: t, + rowIndex: n + } = e; + const { + _disableSelfView: a, + _columns: r, + _iAmRecorder: i, + _remoteParticipants: o, + _remoteParticipantsLength: s, + _thumbnailsReordered: l + } = this.props, c = n * r + t; + return c > s - (i ? 1 : 0) ? `empty-${c}` : i || c !== (l && !a ? 0 : s) ? o[!l || i || a ? c : c - 1] : "local" + } + _onListItemsRendered(e) { + let { + visibleStartIndex: t, + visibleStopIndex: n + } = e; + const { + dispatch: a + } = this.props, { + startIndex: r, + stopIndex: i + } = this._calculateIndices(t, n); + a(OS(r, i)) + } + _onGridItemsRendered(e) { + let { + visibleColumnStartIndex: t, + visibleColumnStopIndex: n, + visibleRowStartIndex: a, + visibleRowStopIndex: r + } = e; + const { + _columns: i, + dispatch: o + } = this.props, s = a * i + t, l = r * i + n, { + startIndex: c, + stopIndex: u + } = this._calculateIndices(s, l); + o(OS(c, u)) + } + _renderRemoteParticipants() { + const { + _columns: e, + _currentLayout: t, + _filmstripHeight: n, + _filmstripWidth: a, + _remoteParticipantsLength: r, + _rows: i, + _thumbnailHeight: o, + _thumbnailWidth: s + } = this.props; + if (!s || isNaN(s) || !o || isNaN(o) || !n || isNaN(n) || !a || isNaN(a)) return null; + if (t === GS) return C().createElement(o4, { + className: "filmstrip__videos remote-videos", + columnCount: e, + columnWidth: s + 4, + height: n, + initialScrollLeft: 0, + initialScrollTop: 0, + itemKey: this._gridItemKey, + onItemsRendered: this._onGridItemsRendered, + overscanRowCount: 1, + rowCount: i, + rowHeight: o + 4, + width: a + }, k4); + const l = { + itemCount: r, + className: "filmstrip__videos remote-videos", + height: n, + itemKey: this._listItemKey, + itemSize: 0, + onItemsRendered: this._onListItemsRendered, + overscanCount: 1, + width: a, + style: { + willChange: "auto" + } + }; + if (t === YS) { + const e = s + 4, + t = r * e <= a; + l.itemSize = e, l.layout = "horizontal", t && (l.className += " is-not-overflowing") + } else if (t === KS) { + const e = o + 4; + r * e <= n && (l.className += " is-not-overflowing"), l.itemSize = e + } + return C().createElement(s4, l, k4) + } + _doToggleFilmstrip() { + this.props.dispatch(MS(!this.props._visible)) + } + _onShortcutToggleFilmstrip() { + Da(on("toggle.filmstrip", { + enable: this.props._visible + })), this._doToggleFilmstrip() + } + _onToolbarToggleFilmstrip() { + Da(ln("toggle.filmstrip.button", { + enable: this.props._visible + })), this._doToggleFilmstrip() + } + _onToggleButtonTouch(e) { + e.stopPropagation(), this._onToolbarToggleFilmstrip() + } + _renderToggleButton() { + const e = this.props._visible ? Kl : ec, + { + t + } = this.props, + n = va() ? { + onTouchStart: this._onToggleButtonTouch } : { - translationKey: "videothumbnail.domute", - muteClassName: "mutelink" + onClick: this._onToolbarToggleFilmstrip }; - return x().createElement(g1, { - buttonText: n(a.translationKey), - displayClass: a.muteClassName, - icon: Fu, - id: `mutelink_${t}`, - onClick: this._handleClick - }) - } - })); - - function T1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + return C().createElement("div", { + className: "filmstrip__toolbar" + }, C().createElement("button", _4({ + "aria-expanded": this.props._visible, + "aria-label": t("toolbar.accessibilityLabel.toggleFilmstrip"), + id: "toggleFilmstripButton", + onFocus: this._onTabIn, + tabIndex: 0 + }, n), C().createElement(lo, { + "aria-label": t("toolbar.accessibilityLabel.toggleFilmstrip"), + src: e + }))) } - class O1 extends Vw { - constructor(...e) { - super(...e), T1(this, "accessibilityLabel", "toolbar.accessibilityLabel.remoteVideoMute"), T1(this, "icon", Rp), T1(this, "label", "videothumbnail.domuteVideo"), T1(this, "toggledLabel", "videothumbnail.videoMuted") + } + const S4 = Ei(Ne((function(e) { + var t, n, a; + const r = $n(e), + { + testing: i = {}, + iAmRecorder: o + } = e["features/base/config"], + s = null === (t = i.enableThumbnailReordering) || void 0 === t || t, + { + visible: l, + remoteParticipants: c + } = e["features/filmstrip"], + u = e["features/toolbox"].visible && r.length, + d = function(e) { + if (e["features/invite"].calleeInfoVisible) return !1; + const t = Gh(e); + let n; + const { + disable1On1Mode: a + } = e["features/base/config"], { + contextMenuOpened: r + } = e["features/base/responsive-ui"]; + return Boolean(r || t > 2 || t > 1 && null !== a && (e["features/toolbox"].visible || (n = Zh(e)) && n.local) || a) + }(e), + { + isOpen: p + } = e["features/chat"], + { + gridDimensions: h = {}, + filmstripHeight: m, + filmstripWidth: f, + thumbnailSize: g + } = e["features/filmstrip"].tileViewDimensions, + b = JS(e), + y = qS(e), + { + clientHeight: v, + clientWidth: k + } = e["features/base/responsive-ui"], + _ = v - m; + let w = 0; + if (_ > 0) { + const e = 60 - _; + e > 0 && (w = e) + } else w = 60; + const S = u && va() && k <= gS, + E = `${d?"":"hide-videos"} ${u?"reduce-height":""} ${p?"shift-right":""} ${S?"collapse":""}`.trim(), + x = "filmstrip__videos" + (l ? "" : " hidden"); + let C, A, T; + switch (b) { + case GS: + C = g, A = m - (S && w > 0 ? w : 0), T = f; + break; + case KS: { + const { + remote: t, + remoteVideosContainer: n + } = e["features/filmstrip"].verticalViewDimensions; + C = t, A = (null == n ? void 0 : n.height) - (u ? 72 : 0), T = null == n ? void 0 : n.width; + break } - _handleClick() { + case YS: { const { - dispatch: e, - participantID: t - } = this.props; - Ma(sn("mute.button", { - participant_id: t - })), e(sP(Y1, { - participantID: t - })) - } - _isDisabled() { - return this.props._videoTrackMuted - } - _isToggled() { - return this.props._videoTrackMuted + remote: t, + remoteVideosContainer: n + } = e["features/filmstrip"].horizontalViewDimensions; + C = t, A = null == n ? void 0 : n.height, T = null == n ? void 0 : n.width; + break } } - const M1 = Li(ze((function(e, t) { - return { - _videoTrackMuted: as(e["features/base/tracks"], to, t.participantID) - } - }))(class extends O1 { - constructor(e) { - super(e), this._handleClick = this._handleClick.bind(this) - } - render() { - const { - _videoTrackMuted: e, - participantID: t, - t: n - } = this.props, a = e ? { - translationKey: "videothumbnail.videoMuted", - muteClassName: "mutevideolink disabled" - } : { - translationKey: "videothumbnail.domuteVideo", - muteClassName: "mutevideolink" - }; - return x().createElement(g1, { - buttonText: n(a.translationKey), - displayClass: a.muteClassName, - icon: gl, - id: `mutelink_${t}`, - onClick: this._handleClick - }) - } - })); - class I1 extends E.Component { - constructor(e) { - super(e), this._onSubmit = this._onSubmit.bind(this) - } - _onSubmit() { - const { - dispatch: e, - participantID: t - } = this.props; - return e(UQ(t, Xi)), !0 - } + return { + _className: E, + _columns: h.columns, + _currentLayout: b, + _disableSelfView: y, + _filmstripHeight: A, + _filmstripWidth: T, + _iAmRecorder: Boolean(o), + _isFilmstripButtonEnabled: mI("filmstrip", e), + _remoteParticipantsLength: c.length, + _remoteParticipants: c, + _rows: h.rows, + _thumbnailWidth: null === (n = C) || void 0 === n ? void 0 : n.width, + _thumbnailHeight: null === (a = C) || void 0 === a ? void 0 : a.height, + _thumbnailsReordered: s, + _videosClassName: x, + _visible: l, + _isToolboxVisible: fI(e) + } + }))(w4)); class E4 extends x.Component { + render() { + return C().createElement("div", { + className: "moderator-icon right" + }, C().createElement(EC, { + className: "focusindicator toolbar-icon", + icon: jc, + iconSize: 13, + tooltipKey: "videothumbnail.moderator", + tooltipPosition: this.props.tooltipPosition + })) } - class N1 extends I1 { - constructor(e) { - super(e), this.state = { - audioModerationEnabled: e.isAudioModerationEnabled, - content: e.content || e.t(e.isAudioModerationEnabled ? "dialog.muteEveryoneDialogModerationOn" : "dialog.muteEveryoneDialog") - }, this._onSubmit = this._onSubmit.bind(this), this._onToggleModeration = this._onToggleModeration.bind(this) - } - render() { - const { - content: e, - title: t - } = this.props; - return x().createElement(IO, { - okKey: "dialog.muteParticipantButton", - onSubmit: this._onSubmit, - titleString: t, - width: "small" - }, x().createElement("div", null, e)) - } - _onSubmit() { - const { - dispatch: e, - exclude: t - } = this.props; - return e(HQ(t, Xi)), this.state.audioModerationEnabled ? e(Zm()) : void 0 !== this.state.audioModerationEnabled && e($m()), !0 - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(N1, "defaultProps", { - exclude: [], - muteLocal: !1 - }); - const z1 = Li(ze((function(e, t) { + } + const x4 = E4; class C4 extends x.Component { + render() { + return this.props._raisedHand ? this._renderIndicator() : null + } + } + const A4 = Ne((function(e, t) { + return { + _raisedHand: am(Vh(e, t.participantId)) + } + }))(class extends C4 { + _renderIndicator() { + return C().createElement(EC, { + className: "raisehandindicator indicator show-inline", + icon: lu, + iconClassName: "indicatoricon", + iconSize: `${this.props.iconSize}px`, + tooltipKey: "raisedHand", + tooltipPosition: this.props.tooltipPosition + }) + } + }); + + function T4(e) { + return C().createElement(EC, { + className: "screenShare toolbar-icon", + icon: Gu, + iconId: "share-desktop", + iconSize: 13, + tooltipKey: "videothumbnail.videomute", + tooltipPosition: e.tooltipPosition + }) + } + class D4 extends x.Component { + render() { + return C().createElement(EC, { + className: "videoMuted toolbar-icon", + icon: Fo, + iconId: "camera-disabled", + iconSize: 13, + tooltipKey: "videothumbnail.videomute", + tooltipPosition: this.props.tooltipPosition + }) + } + } + const P4 = D4; class j4 extends x.Component { + render() { const { - exclude: n = [], - t: a - } = t, r = n.map((t => t === Rh(e).id ? a("dialog.muteEveryoneSelf") : Hh(e, t))).join(", "); - return r.length ? { - content: a("dialog.muteEveryoneElseDialog"), - title: a("dialog.muteEveryoneElseTitle", { - whom: r - }) - } : { - title: a("dialog.muteEveryoneTitle"), - isAudioModerationEnabled: om(Xi, e), - isModerationSupported: (e => { - const { - conference: t - } = e["features/base/conference"]; - return !!t && t.isAVModerationSupported() - })(e) - } - }))(class extends N1 { - _onToggleModeration() { - this.setState((e => ({ - audioModerationEnabled: !e.audioModerationEnabled, - content: this.props.t(e.audioModerationEnabled ? "dialog.muteEveryoneDialog" : "dialog.muteEveryoneDialogModerationOn") - }))) - } - render() { - return x().createElement(IO, { - okKey: "dialog.muteParticipantButton", - onSubmit: this._onSubmit, - titleString: this.props.title, - width: "small" - }, x().createElement("div", { - className: "mute-dialog" - }, this.state.content, this.props.isModerationSupported && 0 === this.props.exclude.length && x().createElement(x().Fragment, null, x().createElement("div", { - className: "separator-line" - }), x().createElement("div", { - className: "control-row" - }, x().createElement("label", { - htmlFor: "moderation-switch" - }, this.props.t("dialog.moderationAudioLabel")), x().createElement(Oj, { - id: "moderation-switch", - onValueChange: this._onToggleModeration, - value: !this.state.audioModerationEnabled - }))))) - } - })); - class R1 extends E.Component { - constructor(e) { - super(e), this._onSubmit = this._onSubmit.bind(this) - } - _onSubmit() { - const { - dispatch: e, - participantID: t - } = this.props; - return e(UQ(t, to)), e(Gm(t)), !0 - } + _currentLayout: e, + _showAudioMutedIndicator: t, + _showModeratorIndicator: n, + _showScreenShareIndicator: a, + _showVideoMutedIndicator: r + } = this.props; + let i; + switch (e) { + case GS: + i = "right"; + break; + case KS: + i = "left"; + break; + default: + i = "top" + } + return C().createElement("div", null, t ? C().createElement(H5, { + tooltipPosition: i + }) : null, a ? C().createElement(T4, { + tooltipPosition: i + }) : null, r ? C().createElement(P4, { + tooltipPosition: i + }) : null, n ? C().createElement(x4, { + tooltipPosition: i + }) : null) } - class L1 extends R1 { - constructor(e) { - super(e), this.state = { - moderationEnabled: e.isVideoModerationEnabled, - content: e.content || e.t(e.isVideoModerationEnabled ? "dialog.muteEveryonesVideoDialogModerationOn" : "dialog.muteEveryonesVideoDialog") - }, this._onSubmit = this._onSubmit.bind(this), this._onToggleModeration = this._onToggleModeration.bind(this) - } - render() { - const { - content: e, - title: t - } = this.props; - return x().createElement(IO, { - okKey: "dialog.muteParticipantsVideoButton", - onSubmit: this._onSubmit, - titleString: t, - width: "small" - }, x().createElement("div", null, e)) - } - _onSubmit() { - const { - dispatch: e, - exclude: t - } = this.props; - return e(HQ(t, to)), this.state.moderationEnabled ? e(Qm()) : void 0 !== this.state.moderationEnabled && e(Jm()), !0 - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(L1, "defaultProps", { - exclude: [], - muteLocal: !1 - }); - const F1 = Li(ze((function(e, t) { + } + const M4 = Ne((function(e, t) { + const { + participantID: n + } = t, a = Wh(e, n), r = e["features/base/tracks"]; + let i = !0, + o = !0, + s = !1; + if (null != a && a.local) i = ch(r, Bi), o = ch(r, Fi); + else if (null == a || !a.isFakeParticipant) { + const e = oh(r, Bi, n); + s = "desktop" === (null == e ? void 0 : e.videoType), i = dh(r, Bi, n), o = dh(r, Fi, n) + } + const { + disableModeratorIndicator: l + } = e["features/base/config"]; + return { + _currentLayout: JS(e), + _showAudioMutedIndicator: o, + _showModeratorIndicator: !l && a && a.role === Rh, + _showScreenShareIndicator: s, + _showVideoMutedIndicator: i + } + }))(j4), I4 = () => DS(APP.store) && !interfaceConfig.VERTICAL_FILMSTRIP ? $(".filmstrip").outerHeight() : 0, O4 = () => DS(APP.store) ? function() { + const e = (interfaceConfig.FILM_STRIP_MAX_HEIGHT || 120) + 18; + return Math.min(e, window.innerWidth) + }() : 0, N4 = Ve().getLogger("react/features/shared-video/components/web/AbstractVideoManager.js"); class R4 extends x.PureComponent { + constructor() { + super(), this.throttledFireUpdateSharedVideoEvent = qa()(this.fireUpdateSharedVideoEvent.bind(this), 5e3), window._sharedVideoPlayer = this + } + componentDidMount() { + this.props._dockToolbox(!0), this.processUpdatedProps() + } + componentDidUpdate(e) { const { - exclude: n = [], - t: a - } = t, r = om(to, e), i = n.map((t => t === Rh(e).id ? a("dialog.muteEveryoneSelf") : Hh(e, t))).join(", "); - return i.length ? { - content: a("dialog.muteEveryoneElsesVideoDialog"), - title: a("dialog.muteEveryoneElsesVideoTitle", { - whom: i - }) - } : { - title: a("dialog.muteEveryonesVideoTitle"), - isVideoModerationEnabled: r, - isModerationSupported: (e => { - const { - conference: t - } = e["features/base/conference"]; - return !!t && t.isAVModerationSupported() - })(e) - } - }))(class extends L1 { - _onToggleModeration() { - this.setState((e => ({ - moderationEnabled: !e.moderationEnabled, - content: this.props.t(e.moderationEnabled ? "dialog.muteEveryonesVideoDialog" : "dialog.muteEveryonesVideoDialogModerationOn") - }))) - } - render() { - return x().createElement(IO, { - okKey: "dialog.muteParticipantsVideoButton", - onSubmit: this._onSubmit, - titleString: this.props.title, - width: "small" - }, x().createElement("div", { - className: "mute-dialog" - }, this.state.content, this.props.isModerationSupported && 0 === this.props.exclude.length && x().createElement(x().Fragment, null, x().createElement("div", { - className: "separator-line" - }), x().createElement("div", { - className: "control-row" - }, x().createElement("label", { - htmlFor: "moderation-switch" - }, this.props.t("dialog.moderationVideoLabel")), x().createElement(Oj, { - id: "moderation-switch", - onValueChange: this._onToggleModeration, - value: !this.state.moderationEnabled - }))))) - } - })); - - function q1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _videoUrl: t + } = this.props; + e._videoUrl !== t && Da(rn("started")), this.processUpdatedProps() } - class B1 extends Vw { - constructor(...e) { - super(...e), q1(this, "accessibilityLabel", "toolbar.accessibilityLabel.muteEveryoneElse"), q1(this, "icon", ad), q1(this, "label", "videothumbnail.domuteOthers") - } - _handleClick() { - const { - dispatch: e, - participantID: t - } = this.props; - Ma(hn("mute.everyoneelse.pressed")), e(sP(z1, { - exclude: [t] - })) - } + componentWillUnmount() { + Da(rn("stopped")), this.dispose && this.dispose(), this.props._dockToolbox(!1) } - const U1 = Li(ze()(class extends B1 { - constructor(e) { - super(e), this._handleClick = this._handleClick.bind(this) - } - render() { - const { - participantID: e, - t - } = this.props; - return x().createElement(g1, { - buttonText: t("videothumbnail.domuteOthers"), - displayClass: "mutelink", - icon: sd, - id: `mutelink_${e}`, - onClick: this._handleClick - }) - } - })); - - function H1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + processUpdatedProps() { + const { + _status: e, + _time: t, + _isOwner: n, + _muted: a + } = this.props; + if (n) return; + var r, i; + r = t, i = this.getTime(), Math.abs(r - i) > 5 && this.seek(t), this.getPlaybackStatus() !== e && (e === HS.PLAYING && this.play(), e === HS.PAUSED && this.pause()), this.isMuted() !== a && (a ? this.mute() : this.unMute()) + } + onError() { + N4.error("Error in the video player"), this.props._stopSharedVideo(), this.props._displayWarning() + } + onPlay() { + this.smartAudioMute(), Da(rn("play")), this.fireUpdateSharedVideoEvent() + } + onPause() { + Da(rn("paused")), this.fireUpdateSharedVideoEvent() + } + onVolumeChange() { + const e = this.getVolume(), + t = this.isMuted(); + e > 0 && !t && this.smartAudioMute(), Da(rn("volume.changed", { + volume: e, + muted: t + })), this.fireUpdatePlayingVideoEvent() + } + fireUpdatePlayingVideoEvent() { + this.getPlaybackStatus() === HS.PLAYING && this.fireUpdateSharedVideoEvent() + } + fireUpdateSharedVideoEvent() { + const { + _isOwner: e + } = this.props; + if (!e) return; + const t = this.getPlaybackStatus(); + if (!Object.values(HS).includes(t)) return; + const { + _ownerId: n, + _setSharedVideoStatus: a, + _videoUrl: r + } = this.props; + a({ + videoUrl: r, + status: t, + time: this.getTime(), + ownerId: n, + muted: this.isMuted() + }) } - class V1 extends Vw { - constructor(...e) { - super(...e), H1(this, "accessibilityLabel", "toolbar.accessibilityLabel.muteEveryoneElsesVideo"), H1(this, "icon", ud), H1(this, "label", "videothumbnail.domuteVideoOfOthers") - } - _handleClick() { - const { - dispatch: e, - participantID: t - } = this.props; - Ma(hn("mute.everyoneelsesvideo.pressed")), e(sP(F1, { - exclude: [t] - })) - } + isSharedVideoVolumeOn() { + return this.getPlaybackStatus() === HS.PLAYING && !this.isMuted() && this.getVolume() > 0 } - const W1 = Li(ze()(class extends V1 { - constructor(e) { - super(e), this._handleClick = this._handleClick.bind(this) - } - render() { - const { - participantID: e, - t - } = this.props; - return x().createElement(g1, { - buttonText: t("videothumbnail.domuteVideoOfOthers"), - displayClass: "mutelink", - icon: hd, - id: `mutelink_${e}`, - onClick: this._handleClick - }) - } - })), - Y1 = Li(ze()(class extends R1 { - render() { - return x().createElement(IO, { - okKey: "dialog.muteParticipantsVideoButton", - onSubmit: this._onSubmit, - titleKey: "dialog.muteParticipantsVideoTitle", - width: "small" - }, x().createElement("div", null, this.props.t("dialog.muteParticipantsVideoBody"))) - } - })); + smartAudioMute() { + const { + _isLocalAudioMuted: e, + _muteLocal: t + } = this.props; + !e && this.isSharedVideoVolumeOn() && (Da(rn("audio.muted")), t(!0)) + } + } + const z4 = R4; - function G1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function L4(e) { + const { + ownerId: t, + status: n, + time: a, + videoUrl: r, + muted: i + } = e["features/shared-video"], o = Uh(e), s = ch(e["features/base/tracks"], Fi); + return { + _conference: vF(e), + _isLocalAudioMuted: s, + _isOwner: t === o.id, + _muted: i, + _ownerId: t, + _status: n, + _time: a, + _videoUrl: r } + } - function K1(e, t) { - const n = Df(e, "chat.enabled", !0), - { - visible: a = n + function F4(e) { + return { + _displayWarning: () => { + e(ng({ + titleKey: "dialog.shareVideoLinkError" + }, Yf.LONG)) + }, + _dockToolbox: t => { + e(SI(t)) + }, + _stopSharedVideo: () => { + e(b6()) + }, + _muteLocal: t => { + e(zX(t, Fi)) + }, + _setSharedVideoStatus: t => { + let { + videoUrl: n, + status: a, + time: r, + ownerId: i, + muted: o } = t; - return { - _participant: Fh(e, t.participantID), - visible: a + e(g6({ + videoUrl: n, + status: a, + time: r, + ownerId: i, + muted: o + })) } } - const $1 = Li(ze(K1)(class extends Vw { - constructor(...e) { - super(...e), G1(this, "accessibilityLabel", "toolbar.accessibilityLabel.privateMessage"), G1(this, "icon", Cu), G1(this, "label", "toolbar.privateMessage"), G1(this, "toggledIcon", Gd) - } - _handleClick() { - const { - dispatch: e, - _participant: t - } = this.props; - e(Y3(t)) - } - _isToggled() { - return this.props.reply + } + + function q4() { + return q4 = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } - })); + return e + }, q4.apply(this, arguments) + } + const B4 = Ne(L4, F4)(class extends z4 { + constructor(e) { + super(e), this.playerRef = C().createRef() + } + get player() { + return this.playerRef.current + } + getPlaybackStatus() { + let e; + if (this.player) return e = this.player.paused ? HS.PAUSED : HS.PLAYING, e + } + isMuted() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.muted + } + getVolume() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.volume + } + getTime() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.currentTime + } + seek(e) { + this.player && (this.player.currentTime = e) + } + play() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.play() + } + pause() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.pause() + } + mute() { + this.player && (this.player.muted = !0) + } + unMute() { + this.player && (this.player.muted = !1) + } + getPlayerOptions() { + const { + _isOwner: e, + videoId: t + } = this.props; + let n = { + autoPlay: !0, + src: t, + controls: e, + onError: () => this.onError(), + onPlay: () => this.onPlay(), + onVolumeChange: () => this.onVolumeChange() + }; + return e && (n = { + ...n, + onPause: () => this.onPause(), + onTimeUpdate: this.throttledFireUpdateSharedVideoEvent + }), n + } + render() { + return C().createElement("video", q4({ + id: "sharedVideoPlayer", + ref: this.playerRef + }, this.getPlayerOptions())) + } + }); + var U4 = n(4826), H4 = n.n(U4), V4 = n(3184), W4 = n.n(V4); - function J1(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Y4(e) { + return Y4 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e + } : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e + }, Y4(e) + } + + function G4(e, t) { + for (var n = 0; n < t.length; n++) { + var a = t[n]; + a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } - class Z1 extends E.Component { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this) - } - render() { - const { - participantID: e, - t, - _hidden: n - } = this.props; - return n ? null : x().createElement(g1, { - buttonText: t("toolbar.privateMessage"), - icon: Cu, - id: `privmsglink_${e}`, - onClick: this._onClick - }) - } - _onClick() { - const { - dispatch: e, - _participant: t - } = this.props; - e(Y3(t)) - } + } + + function K4(e, t) { + return K4 = Object.setPrototypeOf || function(e, t) { + return e.__proto__ = t, e + }, K4(e, t) + } + + function $4(e, t) { + return !t || "object" !== Y4(t) && "function" != typeof t ? J4(e) : t + } + + function J4(e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e + } + + function Z4(e) { + return Z4 = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { + return e.__proto__ || Object.getPrototypeOf(e) + }, Z4(e) + } + + function Q4(e, t) { + var n = Object.keys(e); + if (Object.getOwnPropertySymbols) { + var a = Object.getOwnPropertySymbols(e); + t && (a = a.filter((function(t) { + return Object.getOwnPropertyDescriptor(e, t).enumerable + }))), n.push.apply(n, a) } - const Q1 = Li(ze((function(e, t) { - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - J1(e, t, n[t]) - })) + return n + } + + function X4(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {}; + t % 2 ? Q4(Object(n), !0).forEach((function(t) { + e6(e, t, n[t]) + })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : Q4(Object(n)).forEach((function(t) { + Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) + })) + } + return e + } + + function e6(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + + function t6(e) { + return X4(X4({}, e), {}, { + playerVars: X4({ + autoplay: 0, + start: 0, + end: 0 + }, e.playerVars) + }) + } + var n6 = function(e) { + ! function(e, t) { + if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); + e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + writable: !0, + configurable: !0 } - return e - }({}, K1(e, t), { - _hidden: "undefined" != typeof interfaceConfig && (interfaceConfig.DISABLE_PRIVATE_MESSAGES || !vH("chat", e)) - }) - }))(Z1)); - class X1 extends E.Component { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this) + }), t && K4(e, t) + }(o, e); + var t, n, a, r, i = (a = o, r = function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 } - render() { - const { - participantID: e, - remoteControlState: t, - t: n - } = this.props; - let a, r; - switch (t) { - case 1: - r = qd; - break; - case 2: - a = " disabled", r = qd; + }(), function() { + var e, t = Z4(a); + if (r) { + var n = Z4(this).constructor; + e = Reflect.construct(t, arguments, n) + } else e = t.apply(this, arguments); + return $4(this, e) + }); + + function o(e) { + var t; + return function(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + }(this, o), e6(J4(t = i.call(this, e)), "onPlayerReady", (function(e) { + return t.props.onReady(e) + })), e6(J4(t), "onPlayerError", (function(e) { + return t.props.onError(e) + })), e6(J4(t), "onPlayerStateChange", (function(e) { + switch (t.props.onStateChange(e), e.data) { + case o.PlayerState.ENDED: + t.props.onEnd(e); break; - case 3: - r = Hd; + case o.PlayerState.PLAYING: + t.props.onPlay(e); break; - default: - return null + case o.PlayerState.PAUSED: + t.props.onPause(e) + } + })), e6(J4(t), "onPlayerPlaybackRateChange", (function(e) { + return t.props.onPlaybackRateChange(e) + })), e6(J4(t), "onPlayerPlaybackQualityChange", (function(e) { + return t.props.onPlaybackQualityChange(e) + })), e6(J4(t), "createPlayer", (function() { + if ("undefined" != typeof document) { + var e = X4(X4({}, t.props.opts), {}, { + videoId: t.props.videoId + }); + t.internalPlayer = W4()(t.container, e), t.internalPlayer.on("ready", t.onPlayerReady), t.internalPlayer.on("error", t.onPlayerError), t.internalPlayer.on("stateChange", t.onPlayerStateChange), t.internalPlayer.on("playbackRateChange", t.onPlayerPlaybackRateChange), t.internalPlayer.on("playbackQualityChange", t.onPlayerPlaybackQualityChange) } - return x().createElement(g1, { - buttonText: n("videothumbnail.remoteControl"), - displayClass: a, - icon: r, - id: `remoteControl_${e}`, - onClick: this._onClick - }) + })), e6(J4(t), "resetPlayer", (function() { + return t.internalPlayer.destroy().then(t.createPlayer) + })), e6(J4(t), "updatePlayer", (function() { + t.internalPlayer.getIframe().then((function(e) { + t.props.id ? e.setAttribute("id", t.props.id) : e.removeAttribute("id"), t.props.className ? e.setAttribute("class", t.props.className) : e.removeAttribute("class") + })) + })), e6(J4(t), "getInternalPlayer", (function() { + return t.internalPlayer + })), e6(J4(t), "updateVideo", (function() { + if (void 0 !== t.props.videoId && null !== t.props.videoId) { + var e = !1, + n = { + videoId: t.props.videoId + }; + "playerVars" in t.props.opts && (e = 1 === t.props.opts.playerVars.autoplay, "start" in t.props.opts.playerVars && (n.startSeconds = t.props.opts.playerVars.start), "end" in t.props.opts.playerVars && (n.endSeconds = t.props.opts.playerVars.end)), e ? t.internalPlayer.loadVideoById(n) : t.internalPlayer.cueVideoById(n) + } else t.internalPlayer.stopVideo() + })), e6(J4(t), "refContainer", (function(e) { + t.container = e + })), t.container = null, t.internalPlayer = null, t + } + return t = o, (n = [{ + key: "componentDidMount", + value: function() { + this.createPlayer() } - _onClick() { - const { - onClick: e, - participantID: t, - remoteControlState: n - } = this.props; - 3 !== n && 1 !== n || Ma(sn("remote.control.button", { - enable: 1 === n, - participant_id: t - })), e && e() + }, { + key: "componentDidUpdate", + value: function(e) { + (function(e, t) { + return e.id !== t.id || e.className !== t.className + })(e, this.props) && this.updatePlayer(), + function(e, t) { + return !H4()(t6(e.opts), t6(t.opts)) + }(e, this.props) && this.resetPlayer(), + function(e, t) { + if (e.videoId !== t.videoId) return !0; + var n = e.opts.playerVars || {}, + a = t.opts.playerVars || {}; + return n.start !== a.start || n.end !== a.end + }(e, this.props) && this.updateVideo() } - } - const e0 = Li(X1); - - function t0(e) { - e.stopPropagation() - } - - function n0(e) { - return x().createElement("ul", { - className: "popupmenu", - id: e.id, - onClick: t0 - }, e.children) - } - const a0 = "chatView", - r0 = "INCOMING_MSG_SOUND", - i0 = "error", - o0 = "local", - s0 = "remote", - l0 = "CLIENT_RESIZED", - c0 = "SET_ASPECT_RATIO", - u0 = "SET_REDUCED_UI", - d0 = "SET_CONTEXT_MENU_OPEN"; - - function p0(e, t) { - return (n, a) => { - let r = e; - if ("ReactNative" !== navigator.product) { - const e = a(), - { - isOpen: t - } = e["features/chat"], - n = jm(e); - t && (r -= 315), n && (r -= cX.participantsPaneWidth) - }(0, Te.unstable_batchedUpdates)((() => { - var a, i; - n({ - type: l0, - clientHeight: t, - clientWidth: r - }), n((a = e, i = t, (e, t) => { - if (a !== i) { - const n = a < i ? fQ : gQ; - if (n !== t()["features/base/responsive-ui"].aspectRatio) return e({ - type: c0, - aspectRatio: n - }) - } - })) + }, { + key: "componentWillUnmount", + value: function() { + this.internalPlayer.destroy() + } + }, { + key: "render", + value: function() { + return C().createElement("div", { + className: this.props.containerClassName + }, C().createElement("div", { + id: this.props.id, + className: this.props.className, + ref: this.refContainer })) } - } + }]) && G4(t.prototype, n), o + }(C().Component); e6(n6, "PlayerState", { + UNSTARTED: -1, + ENDED: 0, + PLAYING: 1, + PAUSED: 2, + BUFFERING: 3, + CUED: 5 + }), n6.propTypes = { + videoId: T().string, + id: T().string, + className: T().string, + containerClassName: T().string, + opts: T().objectOf(T().any), + onReady: T().func, + onError: T().func, + onPlay: T().func, + onPause: T().func, + onEnd: T().func, + onStateChange: T().func, + onPlaybackRateChange: T().func, + onPlaybackQualityChange: T().func + }, n6.defaultProps = { + videoId: null, + id: null, + className: null, + opts: {}, + containerClassName: "", + onReady: function() {}, + onError: function() {}, + onPlay: function() {}, + onPause: function() {}, + onEnd: function() {}, + onStateChange: function() {}, + onPlaybackRateChange: function() {}, + onPlaybackQualityChange: function() {} + }; + const a6 = n6; - function h0(e) { - return { - type: d0, - isOpen: e - } - } - const m0 = "CAPTURE_EVENTS", - f0 = "REMOTE_CONTROL_ACTIVE", - g0 = "SET_RECEIVER_TRANSPORT", - b0 = "SET_RECEIVER_ENABLED", - y0 = "SET_CONTROLLER", - v0 = "SET_CONTROLLED_PARTICIPANT", - k0 = "SET_REQUESTED_PARTICIPANT"; - class _0 extends E.Component { - constructor(e) { - super(e), this._onCancel = this._onCancel.bind(this), this._onSubmit = this._onSubmit.bind(this) - } - render() { - return x().createElement(IO, { - okKey: "dialog.allow", - onCancel: this._onCancel, - onSubmit: this._onSubmit, - titleKey: "dialog.remoteControlTitle", - width: "small" - }, this.props.t("dialog.remoteControlRequestMessage", { - user: this.props._displayName - }), this._getAdditionalMessage()) - } - _getAdditionalMessage() { - const { - _isScreenSharing: e, - _sourceType: t - } = this.props; - return e && "screen" === t ? null : x().createElement("div", null, x().createElement("br", null), this.props.t("dialog.remoteControlShareScreenWarning")) - } - _onCancel() { - const { - dispatch: e, - participantId: t - } = this.props; - return e(function(e) { - return (t, n) => { - const a = n(), - { - conference: r - } = a["features/base/conference"]; - t(V0(!1)), R0(r, e, { - type: x0, - action: P0 - }) - } - }(t)), !0 - } - _onSubmit() { + function r6(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const i6 = Ne(L4, F4)(class extends z4 { + constructor(e) { + super(e), r6(this, "onPlayerStateChange", (e => { + e.data === a6.PlayerState.PLAYING ? this.onPlay() : e.data === a6.PlayerState.PAUSED && this.onPause() + })), r6(this, "onPlayerReady", (e => { const { - dispatch: e, - participantId: t + _isOwner: t } = this.props; - return e(oP()), e(function(e) { - return (t, n) => { - let a; - t({ - type: y0, - controller: e - }), I0.log(`Remote control permissions granted to: ${e}`); - const r = n(), - i = Ko(r["features/base/tracks"]), - o = "desktop" === (null == i ? void 0 : i.videoType), - { - sourceType: s - } = (null == i ? void 0 : i.jitsiTrack) || {}; - a = o && "screen" === s ? t($0()) : APP.conference.toggleScreenSharing(!0, { - desktopSharingSources: ["screen"] - }).then((() => t($0()))); - const { - conference: l - } = r["features/base/conference"]; - a.then((() => R0(l, e, { - type: x0, - action: j0 - }))).catch((n => { - I0.error(n), R0(l, e, { - type: x0, - action: D0 - }), t(Yf({ - descriptionKey: "dialog.startRemoteControlErrorMessage", - titleKey: "dialog.remoteControlTitle" - })), t(K0(!0)) - })) - } - }(t)), !1 - } - } - const w0 = Li(ze((function(e, t) { + this.player = e.target, this.player.addEventListener("onVolumeChange", (() => { + this.onVolumeChange() + })), t && this.player.addEventListener("onVideoProgress", this.throttledFireUpdateSharedVideoEvent), this.play(), this.isMuted() && this.unMute() + })), r6(this, "getPlayerOptions", (() => { const { - _displayName: n, - participantId: a - } = t, r = Fh(e, a), i = Ko(e["features/base/tracks"]), o = "desktop" === (null == i ? void 0 : i.videoType), { - sourceType: s - } = (null == i ? void 0 : i.jitsiTrack) || {}; + _isOwner: e, + videoId: t + } = this.props, n = e ? 1 : 0; return { - _displayName: r ? r.name : n, - _isScreenSharing: o, - _sourceType: s - } - }))(_0)), - S0 = "remote-control", - E0 = "http://jitsi.org/meet/remotecontrol", - x0 = "permissions", - C0 = "stop", - A0 = "request", - j0 = "grant", - P0 = "deny", - D0 = "error", - T0 = "command", - O0 = "printscreen", - M0 = { - 8: "backspace", - 9: "tab", - 13: "enter", - 16: "shift", - 17: "control", - 18: "alt", - 20: "caps_lock", - 27: "escape", - 32: "space", - 33: "pageup", - 34: "pagedown", - 35: "end", - 36: "home", - 37: "left", - 38: "up", - 39: "right", - 40: "down", - 42: O0, - 44: O0, - 45: "insert", - 46: "delete", - 59: ";", - 61: "=", - 91: "command", - 92: T0, - 93: T0, - 96: "numpad_0", - 97: "numpad_1", - 98: "numpad_2", - 99: "numpad_3", - 100: "numpad_4", - 101: "numpad_5", - 102: "numpad_6", - 103: "numpad_7", - 104: "numpad_8", - 105: "numpad_9", - 112: "f1", - 113: "f2", - 114: "f3", - 115: "f4", - 116: "f5", - 117: "f6", - 118: "f7", - 119: "f8", - 120: "f9", - 121: "f10", - 122: "f11", - 123: "f12", - 124: O0, - 173: "-", - 186: ";", - 187: "=", - 188: ",", - 189: "-", - 190: ".", - 191: "/", - 192: "`", - 219: "[", - 220: "\\", - 221: "]", - 222: "'", - 224: "command", - 229: ";" - }; - for (let e = 0; e < 10; e++) M0[e + 48] = `${e}`; - for (let e = 0; e < 26; e++) { - const t = e + 65; - M0[t] = String.fromCharCode(t).toLowerCase() + id: "sharedVideoPlayer", + opts: { + height: "100%", + width: "100%", + playerVars: { + origin: location.origin, + fs: "0", + autoplay: 0, + controls: n, + rel: 0 + } + }, + onError: () => this.onError(), + onReady: this.onPlayerReady, + onStateChange: this.onPlayerStateChange, + videoId: t + } + })), this.isPlayerAPILoaded = !1 } - const I0 = Je("features/remote-control"); - - function N0(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + getPlaybackStatus() { + let e; + if (!this.player) return; + const t = this.player.getPlayerState(); + return t === a6.PlayerState.PLAYING && (e = HS.PLAYING), t === a6.PlayerState.PAUSED && (e = HS.PAUSED), e } - - function z0(e) { - return !e["features/base/config"].disableRemoteControl && c.default.isDesktopSharingEnabled() + isMuted() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.isMuted() } - - function R0(e, t, n) { - if (!t) return I0.warn("Remote control: Skip sending remote control event. Params:", t), !1; - try { - return e.sendEndpointMessage(t, function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - N0(e, t, n[t]) - })) - } - return e - }({ - name: S0 - }, n)), !0 - } catch (e) { - return I0.error("Failed to send EndpointMessage via the datachannels", e), !1 - } + getVolume() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.getVolume() } - - function L0() { - return O3.getLargeVideoWrapper() + getTime() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.getCurrentTime() } - - function F0(e) { - return function(e) { - return M0[e.which] - }(e) + seek(e) { + var t; + return null === (t = this.player) || void 0 === t ? void 0 : t.seekTo(e) } - - function q0(e) { - const t = []; - return e.shiftKey && t.push("shift"), e.ctrlKey && t.push("control"), e.altKey && t.push("alt"), e.metaKey && t.push("command"), t + play() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.playVideo() } - let B0, U0, H0; - - function V0(e) { - return (t, n) => { - const a = n(), - { - active: r - } = a["features/remote-control"], - { - conference: i - } = a["features/base/conference"]; - e !== r && (t({ - type: f0, - active: e - }), i.setLocalParticipantProperty("remoteControlSessionStatus", e)) - } + pause() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.pauseVideo() } - - function W0(e = !1) { - return (t, n) => { - const a = n(), - { - controlled: r - } = a["features/remote-control"].controller; - if (!r) return; - const { - conference: i - } = a["features/base/conference"]; - e && R0(i, r, { - type: C0 - }), I0.log("Stopping remote control controller."), i.off(bt.ENDPOINT_MESSAGE_RECEIVED, H0), H0 = void 0, t(X0()), t({ - type: v0, - controlled: void 0 - }), t(V0(!1)), t(Yf({ - descriptionKey: "dialog.remoteControlStopMessage", - titleKey: "dialog.remoteControlTitle" - })) - } + mute() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.mute() } - - function Y0() { - return (e, t) => { - const { - conference: n - } = t()["features/base/conference"]; - e({ - type: k0, - requestedParticipant: void 0 - }), n.off(bt.ENDPOINT_MESSAGE_RECEIVED, B0), B0 = void 0 - } + unMute() { + var e; + return null === (e = this.player) || void 0 === e ? void 0 : e.unMute() } - - function G0(e) { - return { - type: g0, - transport: e + dispose() { + this.player && (this.player.destroy(), this.player = null) + } + render() { + return C().createElement(a6, this.getPlayerOptions()) + } + }); class o6 extends x.Component { + getDimensions() { + const { + clientHeight: e, + clientWidth: t, + filmstripVisible: n + } = this.props; + let a, r; + return interfaceConfig.VERTICAL_FILMSTRIP ? (a = n ? t - O4() + "px" : `${t}px`, r = e - hI() + "px") : (r = n ? e - I4() + "px" : `${e}px`, a = `${t}px`), { + width: a, + height: r } } - - function K0(e = !1, t = !1) { - return (n, a) => { - const r = a(), - { - receiver: i - } = r["features/remote-control"], + getManager() { + const { + videoUrl: e + } = this.props; + return e ? e.match(/http/) ? C().createElement(B4, { + videoId: e + }) : C().createElement(i6, { + videoId: e + }) : null + } + render() { + const { + isOwner: e + } = this.props, t = e ? "" : "disable-pointer"; + return C().createElement("div", { + className: t, + id: "sharedVideo", + style: this.getDimensions() + }, this.getManager()) + } + } + const s6 = Ne((function(e) { + const { + ownerId: t, + videoUrl: n + } = e["features/shared-video"], { + clientHeight: a, + clientWidth: r + } = e["features/base/responsive-ui"], { + visible: i + } = e["features/filmstrip"], o = Uh(e); + return { + clientHeight: a, + clientWidth: r, + filmstripVisible: i, + isOwner: t === (null == o ? void 0 : o.id), + videoUrl: n + } + }))(o6); + + function l6(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const c6 = Ei(Ne((function(e) { + const { + disabled: t, + status: n + } = e["features/shared-video"]; + return { + _isDisabled: t, + _sharingVideo: VS(n) + } + }))(class extends bC { + constructor() { + super(...arguments), l6(this, "accessibilityLabel", "toolbar.accessibilityLabel.sharedvideo"), l6(this, "icon", Xu), l6(this, "label", "toolbar.sharedvideo"), l6(this, "toggledLabel", "toolbar.stopSharedVideo") + } + get tooltip() { + return this._isToggled() ? "toolbar.stopSharedVideo" : "toolbar.sharedvideo" + } + set tooltip(e) {} + _handleClick() { + const { + handleClick: e + } = this.props; + e ? e() : this._doToggleSharedVideo() + } + _isToggled() { + return this.props._sharingVideo + } + _isDisabled() { + return this.props._isDisabled + } + _doToggleSharedVideo() { + this.props.dispatch(((e, t) => { + const n = t(), { - controller: o, - transport: s - } = i; - if (!o) return; - const { - conference: l - } = r["features/base/conference"]; - t || R0(l, o, { - type: C0 - }), n({ - type: y0, - controller: void 0 - }), s.sendEvent({ - name: S0, - type: C0 - }), n(V0(!1)), e || n(Yf({ - descriptionKey: "dialog.remoteControlStopMessage", - titleKey: "dialog.remoteControlTitle" + status: a + } = n["features/shared-video"]; + ["playing", "start", "pause"].includes(a) ? e(b6()) : e(VI(d6, { + onPostSubmit: t => e(y6(t)) })) + })) + } + })); class u6 extends x.Component { + constructor(e) { + super(e), this._onSetVideoLink = this._onSetVideoLink.bind(this) + } + _onSetVideoLink(e) { + if (!e) return !1; + const t = e.trim(); + if (!t) return !1; + const { + onPostSubmit: n + } = this.props, a = function(e) { + if (!e) return null; + const t = e.match(/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|(?:m\.)?youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/); + return t ? t[1] : null + }(t); + if (a) return n(a), !0; + try { + new URL(t) + } catch (e) { + return !1 } + return n(t), !0 + } + } + const d6 = Ei(Ne()(class extends u6 { + constructor(e) { + super(e), this.state = { + value: "", + okDisabled: !0 + }, this._onChange = this._onChange.bind(this), this._onSubmitValue = this._onSubmitValue.bind(this) + } + _onChange(e) { + const t = mM(e); + this.setState({ + value: t, + okDisabled: !t + }) + } + _onSubmitValue() { + return super._onSetVideoLink(this.state.value) + } + render() { + const { + t: e + } = this.props; + return C().createElement(yL, { + hideCancelButton: !1, + okDisabled: this.state.okDisabled, + okKey: e("dialog.Share"), + onSubmit: this._onSubmitValue, + titleKey: e("dialog.shareVideoTitle"), + width: "small" + }, C().createElement(xB, { + autoFocus: !0, + className: "input-control", + compact: !1, + label: e("dialog.videoLink"), + name: "sharedVideoUrl", + onChange: this._onChange, + placeholder: e("dialog.sharedVideoLinkPlaceholder"), + shouldFitContainer: !0, + type: "text", + value: this.state.value + })) } + })), p6 = "SET_SHARED_VIDEO_STATUS", h6 = "RESET_SHARED_VIDEO_STATUS", m6 = "SET_DISABLE_BUTTON"; - function $0() { - return (e, t) => { - const n = t(), - a = Ko(n["features/base/tracks"]), - { - sourceId: r - } = (null == a ? void 0 : a.jitsiTrack) || {}, - { - transport: i - } = n["features/remote-control"].receiver; - return i.sendRequest({ - name: S0, - type: "start", - sourceId: r - }) - } + function f6() { + return { + type: h6 } + } - function J0(e, t) { - return (n, a) => { - const r = a(), - { - conference: i - } = r["features/base/conference"], - { - controller: o - } = r["features/remote-control"]; - R0(i, o.controlled, { - type: e, - button: t.which - }) - } + function g6(e) { + let { + videoUrl: t, + status: n, + time: a, + ownerId: r, + muted: i + } = e; + return { + type: p6, + ownerId: r, + status: n, + time: a, + videoUrl: t, + muted: i } + } - function Z0(e, t) { - return (n, a) => { - const r = a(), - { - conference: i - } = r["features/base/conference"], - { - controller: o - } = r["features/remote-control"]; - R0(i, o.controlled, { - type: e, - key: F0(t), - modifiers: q0(t) - }) - } + function b6() { + return (e, t) => { + const n = t(), + { + ownerId: a + } = n["features/shared-video"]; + a === Uh(n).id && e(f6()) } + } - function Q0() { - return (e, t) => { - const n = L0(), - a = t(), - { - controller: r - } = a["features/remote-control"], - { - controlled: i, - isCapturingEvents: o - } = r; - z0(a) && n && i && !o && (I0.log("Resuming remote control controller."), APP.keyboardshortcut.enable(!1), n.mousemove((t => { - e(function(e) { - return (t, n) => { - const a = L0(); - if (!a) return; - const r = a.position(), - i = n(), - { - conference: o - } = i["features/base/conference"], - { - controller: s - } = i["features/remote-control"]; - R0(o, s.controlled, { - type: "mousemove", - x: (e.pageX - r.left) / a.width(), - y: (e.pageY - r.top) / a.height() - }) - } - }(t)) - })), n.mousedown((t => e(J0("mousedown", t)))), n.mouseup((t => e(J0("mouseup", t)))), n.dblclick((t => e(J0("mousedblclick", t)))), n.contextmenu((() => !1)), n[0].onwheel = t => (t.preventDefault(), t.stopPropagation(), e(function(e) { - return (t, n) => { - const a = n(), - { - conference: r - } = a["features/base/conference"], - { - controller: i - } = a["features/remote-control"]; - R0(r, i.controlled, { - type: "mousescroll", - x: e.deltaX, - y: e.deltaY - }) - } - }(t)), !1), $(window).keydown((t => e(Z0("keydown", t)))), $(window).keyup((t => e(Z0("keyup", t)))), e({ - type: m0, - isCapturingEvents: !0 + function y6(e) { + return (t, n) => { + if (vF(n())) { + const a = Uh(n()); + t(g6({ + videoUrl: e, + status: "start", + time: 0, + ownerId: a.id })) } } - - function X0() { - return (e, t) => { - const n = t(), - { - controller: a - } = n["features/remote-control"], - { - controlled: r, - isCapturingEvents: i - } = a; - if (!z0(n) || !r || !i) return; - I0.log("Pausing remote control controller."), APP.keyboardshortcut.enable(!0); - const o = L0(); - o && (o.off("contextmenu"), o.off("dblclick"), o.off("mousedown"), o.off("mousemove"), o.off("mouseup"), o[0].onwheel = void 0), $(window).off("keydown"), $(window).off("keyup"), e({ - type: m0, - isCapturingEvents: !1 + } + class v6 extends x.Component { + constructor(e) { + super(e), this._getCurrentParticipantId = this._getCurrentParticipantId.bind(this), this._onGrantModerator = this._onGrantModerator.bind(this), this._onKick = this._onKick.bind(this), this._onMuteEveryoneElse = this._onMuteEveryoneElse.bind(this), this._onMuteVideo = this._onMuteVideo.bind(this), this._onSendPrivateMessage = this._onSendPrivateMessage.bind(this), this._onStopSharedVideo = this._onStopSharedVideo.bind(this), this._onSendToRoom = this._onSendToRoom.bind(this), this._onVolumeChange = this._onVolumeChange.bind(this), this._onAskToUnmute = this._onAskToUnmute.bind(this) + } + _getCurrentParticipantId() { + const { + _participant: e, + drawerParticipant: t, + overflowDrawer: n + } = this.props; + return n ? null == t ? void 0 : t.participantID : null == e ? void 0 : e.id + } + _onGrantModerator() { + this.props.dispatch(VI(z2, { + participantID: this._getCurrentParticipantId() + })) + } + _onKick() { + this.props.dispatch(VI(U2, { + participantID: this._getCurrentParticipantId() + })) + } + _onStopSharedVideo() { + const { + dispatch: e, + onSelect: t + } = this.props; + t(!0), e(b6()) + } + _onMuteEveryoneElse() { + this.props.dispatch(VI(Z2, { + exclude: [this._getCurrentParticipantId()] + })) + } + _onMuteVideo() { + this.props.dispatch(VI(s3, { + participantID: this._getCurrentParticipantId() + })) + } + _onSendPrivateMessage() { + const { + dispatch: e + } = this.props; + var t; + e((t = this._getCurrentParticipantId(), function(e, n) { + return e({ + participant: Vh(n(), t), + type: GH }) - } + })) } - class e2 extends E.Component { - constructor(e) { - super(e), this.popoverRef = x().createRef(), this._onPopoverClose = this._onPopoverClose.bind(this), this._onPopoverOpen = this._onPopoverOpen.bind(this) - } - showContextMenu() { - this.popoverRef && this.popoverRef.current && this.popoverRef.current.showDialog() - } - componentDidMount() { - this.props.getRef && this.props.getRef(this) - } - componentWillUnmount() { - this.props.getRef && this.props.getRef(null) - } - render() { - const { - _overflowDrawer: e, - _showConnectionInfo: t, - _participantDisplayName: n, - participantID: a - } = this.props, r = t ? x().createElement(IX, { - participantId: a - }) : this._renderRemoteVideoMenu(); - if (!r) return null; - const i = n; - return x().createElement(_X, { - content: r, - onPopoverClose: this._onPopoverClose, - onPopoverOpen: this._onPopoverOpen, - overflowDrawer: e, - position: this.props._menuPosition, - ref: this.popoverRef - }, !e && x().createElement("span", { - className: "popover-trigger remote-video-menu-trigger" - }, !Sa() && x().createElement(qs, { - ariaLabel: this.props.t("dialog.remoteUserControls", { - username: i - }), - role: "button", - size: "1.4em", - src: ku, - tabIndex: 0, - title: this.props.t("dialog.remoteUserControls", { - username: i - }) - }))) - } - _onPopoverOpen() { - this.props.dispatch(h0(!0)) - } - _onPopoverClose() { + _onSendToRoom(e) { + return () => { const { - dispatch: e + _participant: t, + dispatch: n, + onSelect: a } = this.props; - (0, Te.unstable_batchedUpdates)((() => { - e(h0(!1)), e(VQ(!1)) - })) - } - _renderRemoteVideoMenu() { - const { - _disableKick: e, - _disableRemoteMute: t, - _disableGrantModerator: n, - _isModerator: a, - dispatch: r, - initialVolumeValue: i, - onVolumeChange: o, - _remoteControlState: s, - participantID: l - } = this.props, c = [], u = !Ea() && o && "number" == typeof i && !isNaN(i); - if (a && (t || (c.push(x().createElement(D1, { - key: "mute", - participantID: l - })), c.push(x().createElement(U1, { - key: "mute-others", - participantID: l - })), c.push(x().createElement(M1, { - key: "mute-video", - participantID: l - })), c.push(x().createElement(W1, { - key: "mute-others-video", - participantID: l - }))), n || c.push(x().createElement(k1, { - key: "grant-moderator", - participantID: l - })), e || c.push(x().createElement(x1, { - key: "kick", - participantID: l - }))), s) { - let e = null; - 3 === s ? e = () => r(W0(!0)) : 1 === s && (e = () => { - return r((e = l, (t, n) => { - const a = n(); - if (!z0(a)) return Promise.reject(new Error("Remote control is disabled!")); - t(V0(!0)), I0.log(`Requsting remote control permissions from: ${e}`); - const { - conference: r - } = a["features/base/conference"]; - B0 = (e, n) => { - t(function(e, t) { - return (n, a) => { - const r = a(), - { - action: i, - name: o, - type: s - } = t, - { - requestedParticipant: l - } = r["features/remote-control"].controller; - if (z0(r) && o === S0 && s === x0 && e === l) { - let t, a = !1; - switch (i) { - case j0: { - n({ - type: v0, - controlled: e - }), I0.log("Remote control permissions granted!", e), I0.log("Starting remote control controller."); - const { - conference: i - } = r["features/base/conference"]; - H0 = (e, t) => { - n(function(e, t) { - return (n, a) => { - const r = a(), - { - name: i, - type: o - } = t, - { - controlled: s - } = r["features/remote-control"].controller; - z0(r) && i === S0 && o === C0 && e === s && n(W0()) - } - }(e.getId(), t)) - }, i.on(bt.ENDPOINT_MESSAGE_RECEIVED, H0), n(Q0()), a = !0, t = "dialog.remoteControlAllowedMessage"; - break - } - case P0: - I0.log("Remote control permissions denied!", e), t = "dialog.remoteControlDeniedMessage"; - break; - case D0: - I0.error("Error occurred on receiver side"), t = "dialog.remoteControlErrorMessage"; - break; - default: - I0.error("Unknown reply received!"), t = "dialog.remoteControlErrorMessage" - } - if (n(Y0()), a || n(V0(!1)), n(Yf({ - descriptionArguments: { - user: Hh(r, e) - }, - descriptionKey: t, - titleKey: "dialog.remoteControlTitle" - })), a) { - const t = Yh(r); - (null == t ? void 0 : t.id) !== e && n(dk(e)) - } - } - } - }(e.getId(), n)) - }, r.on(bt.ENDPOINT_MESSAGE_RECEIVED, B0), t({ - type: k0, - requestedParticipant: e - }), R0(r, e, { - type: x0, - action: A0 - }) || t(Y0()) - })); - var e - }), c.push(x().createElement(e0, { - key: "remote-control", - onClick: e, - participantID: l, - remoteControlState: s - })) - } - return c.push(x().createElement(Q1, { - key: "privateMessage", - participantID: l - })), Sa() && c.push(x().createElement(b1, { - key: "conn-status", - participantId: l - })), u && c.push(x().createElement(l2, { - initialValue: i, - key: "volume-slider", - onChange: o - })), c.length > 0 ? x().createElement(n0, { - id: l - }, c) : null + a(!0), Da(dn("send.participant.to.room")), n(p2(t.id, e.id)) } } - const t2 = Li(ze((function(e, t) { - var n, a; + _onVolumeChange(e) { const { - participantID: r - } = t, i = Rh(e), { - remoteVideoMenu: o = {}, - disableRemoteMute: s - } = e["features/base/config"], { - disableKick: l, - disableGrantModerator: c - } = o; - let u = null; - const d = Fh(e, r), - p = null == d ? void 0 : d.name, - h = null !== (n = null == d ? void 0 : d.remoteControlSessionStatus) && void 0 !== n && n, - m = null !== (a = null == d ? void 0 : d.supportsRemoteControl) && void 0 !== a && a, - { - active: f, - controller: g - } = e["features/remote-control"], - { - requestedParticipant: b, - controlled: y - } = g, - v = b || y, - { - overflowDrawer: k - } = e["features/toolbox"], - { - showConnectionInfo: _ - } = e["features/base/connection"]; - let w; - switch (!m || (f || h) && v !== r || (u = b === r ? 2 : y ? 3 : 1), Dk(e)) { - case Ak: - w = "left-start"; - break; - case jk: - w = "left-end"; - break; - case Ck: - w = "top"; - break; - default: - w = "auto" - } - return { - _isModerator: Boolean((null == i ? void 0 : i.role) === Th), - _disableKick: Boolean(l), - _disableRemoteMute: Boolean(s), - _remoteControlState: u, - _menuPosition: w, - _overflowDrawer: k, - _participantDisplayName: p, - _disableGrantModerator: Boolean(c), - _showConnectionInfo: _ - } - }))(e2)); - class n2 extends E.PureComponent { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this) - } - render() { - const { - t: e - } = this.props; - return x().createElement(g1, { - buttonText: e("videothumbnail.flip"), - displayClass: "fliplink", - id: "flipLocalVideoButton", - onClick: this._onClick - }) - } - _onClick() { - const { - _localFlipX: e, - dispatch: t - } = this.props; - t(bn({ - localFlipX: !e - })) - } + _participant: t, + dispatch: n + } = this.props, { + id: a + } = t; + n(LS(a, e)) } - const a2 = Li(ze((function(e) { + _onAskToUnmute() { const { - localFlipX: t - } = e["features/base/settings"]; - return { - _localFlipX: Boolean(t) - } - }))(n2)); - class r2 extends E.Component { - constructor(e) { - super(e), this.popoverRef = x().createRef(), this._onPopoverClose = this._onPopoverClose.bind(this), this._onPopoverOpen = this._onPopoverOpen.bind(this) - } - showContextMenu() { - this.popoverRef && this.popoverRef.current && this.popoverRef.current.showDialog() - } - componentDidMount() { - this.props.getRef && this.props.getRef(this) - } - componentWillUnmount() { - this.props.getRef && this.props.getRef(null) - } - render() { - const { - _localParticipantId: e, - _menuPosition: t, - _showConnectionInfo: n, - _overflowDrawer: a, - _showLocalVideoFlipButton: r, - t: i - } = this.props, o = n ? x().createElement(IX, { - participantId: e - }) : x().createElement(n0, { - id: "localVideoMenu" - }, x().createElement(a2, null), Sa() && x().createElement(b1, { - participantId: e - })); - return Sa() || r ? x().createElement(_X, { - content: o, - onPopoverClose: this._onPopoverClose, - onPopoverOpen: this._onPopoverOpen, - overflowDrawer: a, - position: t, - ref: this.popoverRef - }, !a && x().createElement("span", { - className: "popover-trigger local-video-menu-trigger" - }, !Sa() && x().createElement(qs, { - ariaLabel: i("dialog.localUserControls"), - role: "button", - size: "1em", - src: ku, - tabIndex: 0, - title: i("dialog.localUserControls") - }))) : null - } - _onPopoverOpen() { - this.props.dispatch(h0(!0)) - } - _onPopoverClose() { - const { - dispatch: e - } = this.props; - (0, Te.unstable_batchedUpdates)((() => { - e(h0(!1)), e(VQ(!1)) - })) - } - } - const i2 = Li(ze((function(e) { - const t = Dk(e), - n = Rh(e), - { - disableLocalVideoFlip: a - } = e["features/base/config"], - r = Ko(e["features/base/tracks"]), - { - overflowDrawer: i - } = e["features/toolbox"], - { - showConnectionInfo: o - } = e["features/base/connection"]; - let s; - switch (t) { - case Ak: - s = "left-start"; - break; - case jk: - s = "left-end"; - break; - case Ck: - s = "top"; - break; - default: - s = "auto" - } - return { - _menuPosition: s, - _showLocalVideoFlipButton: !a && "desktop" !== (null == r ? void 0 : r.videoType), - _overflowDrawer: i, - _localParticipantId: n.id, - _showConnectionInfo: o - } - }))(r2)), - o2 = 100; - class s2 extends E.Component { - constructor(e) { - super(e), this.state = { - volumeLevel: (e.initialValue || 0) * o2 - }, this._onVolumeChange = this._onVolumeChange.bind(this) - } - render() { - return x().createElement("li", { - "aria-label": this.props.t("volumeSlider"), - className: "popupmenu__item" - }, x().createElement("div", { - className: "popupmenu__contents" - }, x().createElement("span", { - className: "popupmenu__icon" - }, x().createElement(qs, { - src: sl - })), x().createElement("div", { - className: "popupmenu__slider_container" - }, x().createElement("input", { - "aria-valuemax": o2, - "aria-valuemin": 0, - "aria-valuenow": this.state.volumeLevel, - className: "popupmenu__slider", - max: o2, - min: 0, - onChange: this._onVolumeChange, - tabIndex: 0, - type: "range", - value: this.state.volumeLevel - })))) - } - _onVolumeChange(e) { - const t = e.currentTarget.value; - this.props.onChange(t / o2), this.setState({ - volumeLevel: t - }) - } - } - const l2 = Li(s2); - - function c2() { - return c2 = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, c2.apply(this, arguments) - } - - function u2(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - d2(e, t, n[t]) - })) - } - return e + _participant: e, + dispatch: t + } = this.props, { + id: n + } = e; + t(Jm(n)) } - - function d2(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + render() { + const { + _isAudioForceMuted: e, + _currentRoomId: t, + _isLocalModerator: n, + _isChatButtonEnabled: a, + _isParticipantModerator: r, + _isParticipantVideoMuted: i, + _isParticipantAudioMuted: o, + _isVideoForceMuted: s, + _localVideoOwner: l, + _participant: c, + _rooms: u, + _volume: d = 1, + classes: p, + closeDrawer: h, + drawerParticipant: m, + offsetTarget: f, + onEnter: g, + onLeave: b, + onSelect: y, + overflowDrawer: v, + muteAudio: k, + t: _ + } = this.props; + if (!c) return null; + const w = !ka() && v && "number" == typeof d && !isNaN(d), + S = [{ + accessibilityLabel: _("toolbar.stopSharedVideo"), + icon: Xu, + onClick: this._onStopSharedVideo, + text: _("toolbar.stopSharedVideo") + }], + E = [v && (e || s) ? { + accessibilityLabel: _(e ? "participantsPane.actions.askUnmute" : "participantsPane.actions.allowVideo"), + icon: vc, + onClick: this._onAskToUnmute, + text: _(e ? "participantsPane.actions.askUnmute" : "participantsPane.actions.allowVideo") + } : null, !o && v ? { + accessibilityLabel: _("dialog.muteParticipantButton"), + icon: gc, + onClick: k(c), + text: _("dialog.muteParticipantButton") + } : null, { + accessibilityLabel: _("toolbar.accessibilityLabel.muteEveryoneElse"), + icon: Lc, + onClick: this._onMuteEveryoneElse, + text: _("toolbar.accessibilityLabel.muteEveryoneElse") + }, i ? null : { + accessibilityLabel: _("participantsPane.actions.stopVideo"), + icon: bd, + onClick: this._onMuteVideo, + text: _("participantsPane.actions.stopVideo") + }].filter(Boolean), + x = [n && !r ? { + accessibilityLabel: _("toolbar.accessibilityLabel.grantModerator"), + icon: Hs, + onClick: this._onGrantModerator, + text: _("toolbar.accessibilityLabel.grantModerator") + } : null, n ? { + accessibilityLabel: _("videothumbnail.kick"), + icon: ms, + onClick: this._onKick, + text: _("videothumbnail.kick") + } : null, a ? { + accessibilityLabel: _("toolbar.accessibilityLabel.privateMessage"), + icon: ac, + onClick: this._onSendPrivateMessage, + text: _("toolbar.accessibilityLabel.privateMessage") + } : null].filter(Boolean), + A = u.map((e => e.id !== t ? { + accessibilityLabel: e.name || _("breakoutRooms.mainRoom"), + icon: Au, + onClick: this._onSendToRoom(e), + text: e.name || _("breakoutRooms.mainRoom") + } : null)).filter(Boolean), + T = null != c && c.isFakeParticipant ? C().createElement(C().Fragment, null, l && C().createElement(K0, { + actions: S + })) : C().createElement(C().Fragment, null, n && C().createElement(K0, { + actions: E + }), C().createElement(K0, { + actions: x + }), n && u.length > 1 && C().createElement(K0, { + actions: A + }, C().createElement("div", { + className: p && p.text + }, _("breakoutRooms.actions.sendToBreakoutRoom"))), w && C().createElement(K0, null, C().createElement(T5, { + initialValue: d, + key: "volume-slider", + onChange: this._onVolumeChange + }))); + return C().createElement(Y0, { + entity: c, + isDrawerOpen: m, + offsetTarget: f, + onClick: y, + onDrawerClose: h, + onMouseEnter: g, + onMouseLeave: b + }, v && C().createElement(K0, { + actions: [{ + accessibilityLabel: m && m.displayName, + customIcon: C().createElement(sp, { + participantId: m && m.participantID, + size: 20 + }), + text: m && m.displayName + }] + }), T) } - const p2 = c.default.events.track; - - function h2(e) { - e.stopPropagation() + } + const k6 = Ei(Ne((function(e, t) { + var n; + const { + participantID: a, + overflowDrawer: r, + drawerParticipant: i + } = t, { + ownerId: o + } = e["features/shared-video"], s = Uh(e).id, l = Wh(e, r ? null == i ? void 0 : i.participantID : a), c = _m(e), u = tm(e), d = Jn("chat", e), p = Zp(l, e), h = Jp(l, e), m = Qh(l), f = Object.values(vm(e)), { + participantsVolume: g + } = e["features/filmstrip"], b = null == l ? void 0 : l.id, y = null === (n = null == l ? void 0 : l.local) || void 0 === n || n; + return { + _isAudioForceMuted: Mm(l, Fi, e), + _currentRoomId: c, + _isLocalModerator: u, + _isChatButtonEnabled: d, + _isParticipantModerator: m, + _isParticipantVideoMuted: p, + _isParticipantAudioMuted: h, + _isVideoForceMuted: Mm(l, Bi, e), + _localVideoOwner: Boolean(o === s), + _participant: l, + _rooms: f, + _volume: y ? void 0 : b ? g[b] : void 0 + } + }))(Aw((e => ({ + text: { + color: e.palette.text02, + padding: "10px 16px", + height: "40px", + overflow: "hidden", + display: "flex", + alignItems: "center", + boxSizing: "border-box" + } + })))(v6))), _6 = xw((() => ({ + button: { + padding: "6px" + } + }))), w6 = e => { + let { + accessibilityLabel: t, + onClick: n + } = e; + const a = _6(); + return C().createElement(X0, { + accessibilityLabel: t, + className: a.button, + onClick: n + }, C().createElement(lo, { + src: Pl + })) + }, S6 = xw((e => ({ + button: { + marginRight: `${e.spacing(2)}px` + } + }))), E6 = e => { + let { + askUnmuteText: t, + buttonType: n, + muteAudio: a, + muteParticipantButtonText: r, + participantID: i, + participantName: o + } = e; + const s = S6(), + l = Ae(), + { + t: c + } = pr(), + u = (0, x.useCallback)((() => { + l(Jm(i)) + }), [l, i]); + switch (n) { + case Cm: + return C().createElement(X0, { + accessibilityLabel: `${c("participantsPane.actions.mute")} ${o}`, + className: s.button, + onClick: a(i), + testId: `mute-${i}` + }, r); + case Am: + return C().createElement(X0, { + accessibilityLabel: `${c("participantsPane.actions.askUnmute")} ${o}`, + className: s.button, + onClick: u, + testId: `unmute-${i}` + }, t); + default: + return null } - class m2 extends E.Component { - constructor(e) { - super(e); - const t = { - audioLevel: 0, - canPlayEventReceived: !1, - isHovered: !1, - displayMode: vk - }; - this.state = u2({}, t, { - displayMode: BJ(m2.getDisplayModeInput(e, t)) - }), this.timeoutHandle = null, this.videoMenuTriggerRef = null, this._setInstance = this._setInstance.bind(this), this._updateAudioLevel = this._updateAudioLevel.bind(this), this._onCanPlay = this._onCanPlay.bind(this), this._onClick = this._onClick.bind(this), this._onVolumeChange = this._onVolumeChange.bind(this), this._onMouseEnter = this._onMouseEnter.bind(this), this._onMouseLeave = this._onMouseLeave.bind(this), this._onTestingEvent = this._onTestingEvent.bind(this), this._onTouchStart = this._onTouchStart.bind(this), this._onTouchEnd = this._onTouchEnd.bind(this), this._onTouchMove = this._onTouchMove.bind(this), this._showPopupMenu = this._showPopupMenu.bind(this) - } - componentDidMount() { - this._listenForAudioUpdates(), this._onDisplayModeChanged() - } - componentDidUpdate(e, t) { - e._audioTrack !== this.props._audioTrack && (this._stopListeningForAudioUpdates(e._audioTrack), this._listenForAudioUpdates(), this._updateAudioLevel(0)), t.displayMode !== this.state.displayMode && this._onDisplayModeChanged() - } - _onDisplayModeChanged() { - const e = m2.getDisplayModeInput(this.props, this.state); - this._maybeSendScreenSharingIssueEvents(e) - } - _maybeSendScreenSharingIssueEvents(e) { - const { - _currentLayout: t, - _isAudioOnly: n, - _isScreenSharing: a - } = this.props, { - displayMode: r - } = this.state, i = t === Ak; - ![vk, kk].includes(r) && i && a && !n && Ma(cn(u2({ - source: "thumbnail" - }, e))) - } - static getDerivedStateFromProps(e, t) { - if (!e._videoTrack && t.canPlayEventReceived) { - const n = u2({}, t, { - canPlayEventReceived: !1 - }); - return u2({}, n, { - displayMode: BJ(m2.getDisplayModeInput(e, n)) - }) - } - const n = BJ(m2.getDisplayModeInput(e, t)); - return n !== t.displayMode ? u2({}, t, { - displayMode: n - }) : null - } - static getDisplayModeInput(e, t) { - const { - _currentLayout: n, - _isAudioOnly: a, - _isCurrentlyOnLargeVideo: r, - _isScreenSharing: i, - _isVideoPlayable: o, - _participant: s, - _videoTrack: l - } = e, c = n === Ak, { - canPlayEventReceived: u, - isHovered: d - } = t; - return { - isCurrentlyOnLargeVideo: r, - isHovered: d, - isAudioOnly: a, - tileViewActive: c, - isVideoPlayable: o, - connectionStatus: null == s ? void 0 : s.connectionStatus, - canPlayEventReceived: u, - videoStream: Boolean(l), - isRemoteParticipant: !(null == s ? void 0 : s.isFakeParticipant) && !(null == s ? void 0 : s.local), - isScreenSharing: i, - videoStreamMuted: l ? l.muted : "no stream" - } - } - componentWillUnmount() { - this._stopListeningForAudioUpdates(this.props._audioTrack) - } - _listenForAudioUpdates() { - const { - _audioTrack: e - } = this.props; - if (e) { - const { - jitsiTrack: t - } = e; - t && t.on(p2.TRACK_AUDIO_LEVEL_CHANGED, this._updateAudioLevel) - } - } - _stopListeningForAudioUpdates(e) { - if (e) { + }, x6 = Ei(Ne((function(e, t) { + const { + participantID: n, + searchString: a + } = t, { + ownerId: r + } = e["features/shared-video"], i = Uh(e).id, o = Wh(e, n), s = Kh(e, null == o ? void 0 : o.id); + let l = !1; + const c = kn(s).toLowerCase().split(" "), + u = a.toLowerCase(); + if ("" === u) l = !0; + else + for (const e of c) + if (e.startsWith(u)) { + l = !0; + break + } const d = Jp(o, e), + p = Zp(o, e), + h = function(e, t, n) { + const a = Xh(n); + return t ? Mm(e, Fi, n) ? xm.FORCE_MUTED : xm.MUTED : e === a ? xm.DOMINANT_SPEAKER : xm.UNMUTED + }(o, d, e), + m = function(e, t, n) { + return t ? Mm(e, Bi, n) ? xm.FORCE_MUTED : xm.MUTED : xm.UNMUTED + }(o, p, e), + f = function(e, t, n) { + if (tm(n)) { + if (!t) return Cm; + if ((e => { + const { + conference: t + } = e["features/base/conference"]; + return !!t && t.isAVModerationSupported() + })(n)) return Am + } + return "None" + }(0, d, e), + g = e["features/base/tracks"], + b = n === i ? Xp(g) : oh(g, Fi, n), + { + disableModeratorIndicator: y + } = e["features/base/config"]; + return { + _audioMediaState: h, + _audioTrack: b, + _disableModeratorIndicator: y, + _displayName: s, + _local: Boolean(null == o ? void 0 : o.local), + _localVideoOwner: Boolean(r === i), + _matchesSearch: l, + _participant: o, + _participantID: null == o ? void 0 : o.id, + _quickActionButtonType: f, + _raisedHand: am(o), + _videoMediaState: m + } + }))((function(e) { + let { + _audioMediaState: t, + _audioTrack: n, + _disableModeratorIndicator: a, + _displayName: r, + _local: i, + _localVideoOwner: o, + _matchesSearch: s, + _participant: l, + _participantID: c, + _quickActionButtonType: u, + _raisedHand: d, + _videoMediaState: p, + askUnmuteText: h, + isHighlighted: m, + muteAudio: f, + muteParticipantButtonText: g, + onContextMenu: b, + onLeave: y, + openDrawerForParticipant: v, + overflowDrawer: k, + participantActionEllipsisLabel: _, + t: w, + youText: S + } = e; + const [E, A] = (0, x.useState)(!1), [T, D] = (0, x.useState)(!1), P = (0, x.useCallback)((e => { + const t = "number" != typeof e || isNaN(e) ? 0 : e; + A(t > .009) + }), []); + if ((0, x.useEffect)((() => { + if (n && !T) { const { - jitsiTrack: t - } = e; - t && t.off(p2.TRACK_AUDIO_LEVEL_CHANGED, this._updateAudioLevel) + jitsiTrack: e + } = n; + e && (e.on(St.TRACK_AUDIO_LEVEL_CHANGED, P), D(!0)) } - } - _updateAudioLevel(e) { - this.setState({ - audioLevel: e - }) - } - _getStyles() { - const { - _height: e, - _isHidden: t, - _width: n, - style: a, - horizontalOffset: r - } = this.props; - let i = { - thumbnail: {}, - avatar: {} - }; - const o = e / 2; - let { - left: s - } = a || {}; - return "number" == typeof s && r && (s += r), i = { - thumbnail: u2({}, a, { - left: s, - height: `${e}px`, - minHeight: `${e}px`, - minWidth: `${n}px`, - width: `${n}px` - }), - avatar: { - height: `${o}px`, - width: `${o}px` - } - }, t && (i.thumbnail.display = "none"), i - } - _onClick() { - const { - _participant: e, - dispatch: t - } = this.props, { - id: n, - pinned: a - } = e; - t(dk(a ? null : n)) - } - _onMouseEnter() { - this.setState({ - isHovered: !0 - }) - } - _onMouseLeave() { - this.setState({ - isHovered: !1 - }) - } - _showPopupMenu() { - this.videoMenuTriggerRef && this.videoMenuTriggerRef.showContextMenu() - } - _onTouchStart() { - this.timeoutHandle = setTimeout(this._showPopupMenu, 600) - } - _onTouchEnd() { - clearTimeout(this.timeoutHandle) - } - _onTouchMove() { - clearTimeout(this.timeoutHandle) - } - _renderFakeParticipant() { - const { - _isMobile: e, - _participant: { - avatarURL: t - } - } = this.props, n = this._getStyles(), a = this._getContainerClassName(); - return x().createElement("span", c2({ - className: a, - id: "sharedVideoContainer", - onClick: this._onClick - }, e ? {} : { - onMouseEnter: this._onMouseEnter, - onMouseLeave: this._onMouseLeave - }, { - style: n.thumbnail - }), t ? x().createElement("img", { - className: "sharedVideoAvatar", - src: t - }) : this._renderAvatar(n.avatar)) - } - _renderTopIndicators() { - const { - _connectionIndicatorAutoHideEnabled: e, - _connectionIndicatorDisabled: t, - _currentLayout: n, - _isDominantSpeakerDisabled: a, - _indicatorIconSize: r, - _participant: i, - _participantCountMoreThan2: o - } = this.props, { - isHovered: s - } = this.state, l = s || !e, { - id: c, - dominantSpeaker: u = !1 - } = i, d = !a && u; - let p, h; - switch (n) { - case Ak: - p = "right-start", h = "right"; - break; - case jk: - p = "left-start", h = "left"; - break; - case Ck: - p = "top", h = "top"; - break; - default: - p = "auto", h = "top" - } - return x().createElement("div", null, !t && x().createElement(zX, { - alwaysVisible: l, - enableStatsDisplay: !0, - iconSize: r, - participantId: c, - statsPopoverPosition: p - }), x().createElement(S2, { - iconSize: r, - participantId: c, - tooltipPosition: h - }), d && o && x().createElement(GX, { - iconSize: r, - tooltipPosition: h - })) - } - _renderAvatar(e) { - const { - _participant: t - } = this.props, { - id: n - } = t; - return x().createElement("div", { - className: "avatar-container", - style: e - }, x().createElement(ZG, { - className: "userAvatar", - participantId: n - })) - } - _getContainerClassName() { - let e = "videocontainer"; - const { - displayMode: t - } = this.state, { - _isAudioOnly: n, - _isDominantSpeakerDisabled: a, - _isHidden: r, - _participant: i - } = this.props, o = !(null == i ? void 0 : i.local) && !(null == i ? void 0 : i.isFakeParticipant); - return e += ` ${_k[t]}`, (null == i ? void 0 : i.pinned) && (e += " videoContainerFocused"), !a && (null == i ? void 0 : i.dominantSpeaker) && (e += " active-speaker"), r && (e += " hidden"), o && n && (e += " audio-only"), e - } - _renderLocalParticipant() { - const { - _allowEditing: e, - _defaultLocalDisplayName: t, - _disableLocalVideoFlip: n, - _isMobile: a, - _isMobilePortrait: r, - _isScreenSharing: i, - _localFlipX: o, - _participant: s, - _videoTrack: l - } = this.props, { - id: c - } = s || {}, { - audioLevel: u - } = this.state, d = this._getStyles(); - let p = this._getContainerClassName(); - const h = !n && l && !i && o ? "flipVideoX" : ""; - return r && (d.thumbnail.height = d.thumbnail.width, p = `${p} self-view-mobile-portrait`), x().createElement("span", c2({ - className: p, - id: "localVideoContainer", - onClick: this._onClick - }, a ? { - onTouchEnd: this._onTouchEnd, - onTouchMove: this._onTouchMove, - onTouchStart: this._onTouchStart - } : { - onMouseEnter: this._onMouseEnter, - onMouseLeave: this._onMouseLeave - }, { - style: d.thumbnail - }), x().createElement("div", { - className: "videocontainer__background" - }), x().createElement("span", { - id: "localVideoWrapper" - }, x().createElement(xf, { - className: h, - id: "localVideo_container", - videoTrack: l - })), x().createElement("div", { - className: "videocontainer__toolbar" - }, x().createElement(j2, { - participantID: c - })), x().createElement("div", { - className: "videocontainer__toptoolbar" - }, this._renderTopIndicators()), x().createElement("div", { - className: "videocontainer__hoverOverlay" - }), x().createElement("div", { - className: "displayNameContainer", - onClick: h2 - }, x().createElement(sF, { - allowEditing: e, - displayNameSuffix: t, - elementID: "localDisplayName", - participantID: c - })), this._renderAvatar(d.avatar), x().createElement("span", { - className: "audioindicator-container" - }, x().createElement(f1, { - audioLevel: u - })), x().createElement("span", { - className: "localvideomenu" - }, x().createElement(i2, { - getRef: this._setInstance - }))) - } - _onCanPlay(e) { - this.setState({ - canPlayEventReceived: !0 - }); - const { - _isTestModeEnabled: t, - _videoTrack: n - } = this.props; - n && t && this._onTestingEvent(e) - } - _onTestingEvent(e) { - const { - _videoTrack: t, - dispatch: n - } = this.props; - var a, r; - n((a = null == t ? void 0 : t.jitsiTrack, r = e.type, { - type: fo, - track: a, - name: r - })) - } - _setInstance(e) { - this.videoMenuTriggerRef = e - } - _renderRemoteParticipant() { - const { - _isMobile: e, - _isTestModeEnabled: t, - _participant: n, - _startSilent: a, - _videoTrack: r, - _volume: i = 1 - } = this.props, { - id: o - } = n, { - audioLevel: s, - canPlayEventReceived: l - } = this.state, c = this._getStyles(), u = this._getContainerClassName(), d = a ? void 0 : this._onVolumeChange, p = null == r ? void 0 : r.jitsiTrack, h = p && p.getId(), m = {}; - r && t && yk.forEach((e => { - m[e] = this._onTestingEvent - })), m.onCanPlay = this._onCanPlay; - const f = l ? null : { - display: "none" - }; - return x().createElement("span", c2({ - className: u, - id: `participant_${o}`, - onClick: this._onClick - }, e ? { - onTouchEnd: this._onTouchEnd, - onTouchMove: this._onTouchMove, - onTouchStart: this._onTouchStart - } : { - onMouseEnter: this._onMouseEnter, - onMouseLeave: this._onMouseLeave - }, { - style: c.thumbnail - }), r && x().createElement(xf, { - eventHandlers: m, - id: `remoteVideo_${h||""}`, - muted: !0, - style: f, - videoTrack: r - }), x().createElement("div", { - className: "videocontainer__background" - }), x().createElement("div", { - className: "videocontainer__toptoolbar" - }, this._renderTopIndicators()), x().createElement("div", { - className: "videocontainer__toolbar" - }, x().createElement(j2, { - participantID: o - })), x().createElement("div", { - className: "videocontainer__hoverOverlay" - }), x().createElement("div", { - className: "displayNameContainer" - }, x().createElement(sF, { - elementID: `participant_${o}_name`, - participantID: o - })), this._renderAvatar(c.avatar), x().createElement("div", { - className: "presence-label-container" - }, x().createElement(SK, { - className: "presence-label", - participantID: o - })), x().createElement("span", { - className: "audioindicator-container" - }, x().createElement(f1, { - audioLevel: s - })), x().createElement("span", { - className: "remotevideomenu" - }, x().createElement(t2, { - getRef: this._setInstance, - initialVolumeValue: i, - onVolumeChange: d, - participantID: o - }))) - } - _onVolumeChange(e) { - const { - _participant: t, - dispatch: n - } = this.props, { - id: a - } = t; - n(JJ(a, e)) - } - render() { + return () => { + if (n && T) { + const { + jitsiTrack: e + } = n; + e && e.off(St.TRACK_AUDIO_LEVEL_CHANGED, P) + } + } + }), [n]), !s) return null; + const j = t === xm.UNMUTED && E ? xm.DOMINANT_SPEAKER : t; + let M = h; + return t !== xm.FORCE_MUTED && p === xm.FORCE_MUTED && (M = w("participantsPane.actions.allowVideo")), C().createElement(i2, { + actionsTrigger: Em.HOVER, + audioMediaState: j, + disableModeratorIndicator: a, + displayName: r, + isHighlighted: m, + isModerator: Qh(l), + local: i, + onLeave: y, + openDrawerForParticipant: v, + overflowDrawer: k, + participantID: c, + raisedHand: d, + videoMediaState: p, + youText: S + }, !k && !(null != l && l.isFakeParticipant) && C().createElement(C().Fragment, null, C().createElement(E6, { + askUnmuteText: M, + buttonType: u, + muteAudio: f, + muteParticipantButtonText: g, + participantID: c, + participantName: r + }), C().createElement(w6, { + accessibilityLabel: _, + onClick: b + })), !k && o && (null == l ? void 0 : l.isFakeParticipant) && C().createElement(w6, { + accessibilityLabel: _, + onClick: b + })) + }))); + + function C6(e) { + let { + askUnmuteText: t, + lowerMenu: n, + toggleMenu: a, + muteAudio: r, + muteParticipantButtonText: i, + participantIds: o, + openDrawerForParticipant: s, + overflowDrawer: l, + raiseContextId: c, + participantActionEllipsisLabel: u, + searchString: d, + youText: p + } = e; + return o.map((e => C().createElement(x6, { + askUnmuteText: t, + isHighlighted: c === e, + key: e, + muteAudio: r, + muteParticipantButtonText: i, + onContextMenu: a(e), + onLeave: n, + openDrawerForParticipant: s, + overflowDrawer: l, + participantActionEllipsisLabel: u, + participantID: e, + searchString: d, + youText: p + }))) + } + const A6 = C().memo(C6), T6 = xw((e => ({ + heading: { + color: e.palette.text02, + ...e.typography.labelButton, + lineHeight: `${e.typography.labelButton.lineHeight}px`, + margin: `8px 0 ${HH.XP}px`, + [`@media(max-width: ${HH.qY})`]: { + ...e.typography.labelButtonLarge, + lineHeight: `${e.typography.labelButtonLarge.lineHeight}px` + } + } + }))), D6 = Ne((function(e) { + const t = function(e) { const { - _participant: e - } = this.props; - if (!e) return null; + id: t + } = Uh(e), n = function(e) { + return Fe(e)["features/filmstrip"].remoteParticipants + }(e), a = new Set(n), r = nm(e).map((e => { + let { + id: t + } = e; + return t + })), i = new Set(r || []), o = Xh(e); + for (const e of i.keys()) a.has(e) && a.delete(e); + const s = [], + l = i.has(t) ? [] : [t]; + return o && o.id !== t && (i.delete(o.id), a.delete(o.id), s.push(o.id)), [...s, ...l, ...Array.from(i.keys()), ...Array.from(a.keys())] + }(e), + n = Gh(e), + a = (e => { const { - isFakeParticipant: t, - local: n - } = e; - return n ? this._renderLocalParticipant() : t ? this._renderFakeParticipant() : this._renderRemoteParticipant() - } + disableInviteFunctions: t + } = Fe(e)["features/base/config"], n = qf(e, Ba, !0), a = wm(e); + return n && !t && !a + })(e) && Jn("invite", e), + r = vI(e), + i = _m(e); + return { + currentRoom: vm(e)[i], + overflowDrawer: r, + participantsCount: n, + showInviteButton: a, + sortedParticipantIds: t + } + }))((function(e) { + let { + currentRoom: t, + overflowDrawer: n, + participantsCount: a, + showInviteButton: r, + sortedParticipantIds: i = [] + } = e; + const o = Ae(), + [s, l] = (0, x.useState)(""), + { + t: c + } = pr(), + [u, , d, p, h, m] = b2(), + f = (0, x.useCallback)((e => () => { + o(LX(e, Fi)), o(Zm(e)) + }), [o]), + [g, b, y] = V0(), + v = c("participantsPane.actions.moreParticipantOptions"), + k = c("chat.you"), + _ = c("participantsPane.actions.askUnmute"), + w = c("dialog.muteParticipantButton"), + S = T6(); + return C().createElement(C().Fragment, null, C().createElement("div", { + className: S.heading + }, null != t && t.name ? `${t.name} (${a})` : c("participantsPane.headings.participantsList", { + count: a + })), r && C().createElement(T0, null), C().createElement(B5, { + onChange: l, + placeholder: c("participantsPane.search") + }), C().createElement("div", null, C().createElement(A6, { + askUnmuteText: _, + lowerMenu: u, + muteAudio: f, + muteParticipantButtonText: w, + openDrawerForParticipant: y, + overflowDrawer: n, + participantActionEllipsisLabel: v, + participantIds: i, + participantsCount: a, + raiseContextId: m.entity, + searchString: kn(s), + toggleMenu: d, + youText: k + })), C().createElement(k6, { + closeDrawer: b, + drawerParticipant: g, + muteAudio: f, + offsetTarget: null == m ? void 0 : m.offsetTarget, + onEnter: p, + onLeave: h, + onSelect: u, + overflowDrawer: n, + participantID: null == m ? void 0 : m.entity + })) + })); class P6 extends x.Component { + constructor(e) { + super(e), this.state = { + contextOpen: !1 + }, this._onClosePane = this._onClosePane.bind(this), this._onDrawerClose = this._onDrawerClose.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._onMuteAll = this._onMuteAll.bind(this), this._onToggleContext = this._onToggleContext.bind(this), this._onWindowClickListener = this._onWindowClickListener.bind(this) } - const f2 = ze((function(e, t) { - var n, a, r, i, o; - const { - participantID: s - } = t, l = qh(e, s), c = null == l ? void 0 : l.id, u = null === (n = null == l ? void 0 : l.local) || void 0 === n || n, d = e["features/base/tracks"], { - participantsVolume: p - } = e["features/filmstrip"], h = u ? Ko(d) : Qo(d, to, s), m = u ? Wo(d) : Qo(d, Xi, s), f = Dk(e); - let g = {}, - b = !1; - const { - startSilent: y, - disableLocalVideoFlip: v, - iAmRecorder: k, - iAmSipGateway: _ - } = e["features/base/config"], { - NORMAL: w = 8 - } = interfaceConfig.INDICATOR_FONT_SIZES || {}, { - localFlipX: S - } = e["features/base/settings"], E = Sa(); - switch (f) { - case jk: - case Ck: { - const { - horizontalViewDimensions: t = { - local: {}, - remote: {} - }, - verticalViewDimensions: n = { - local: {}, - remote: {} - } - } = e["features/filmstrip"], { - local: a, - remote: r - } = f === jk ? n : t, { - width: i, - height: o - } = u ? a : r; - g = { - _width: i, - _height: o - }, b = E && e["features/base/responsive-ui"].aspectRatio === fQ; - break - } - case Ak: { - const { - width: t, - height: n - } = e["features/filmstrip"].tileViewDimensions.thumbnailSize; - g = { - _width: t, - _height: n - }; - break - } - } - return u2({ - _allowEditing: !Gn(e), - _audioTrack: m, - _connectionIndicatorAutoHideEnabled: Boolean(null === (a = null === (r = e["features/base/config"].connectionIndicators) || void 0 === r ? void 0 : r.autoHide) || void 0 === a || a), - _connectionIndicatorDisabled: E || Boolean(null === (i = e["features/base/config"].connectionIndicators) || void 0 === i ? void 0 : i.disabled), - _currentLayout: f, - _defaultLocalDisplayName: interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME, - _disableLocalVideoFlip: Boolean(v), - _isHidden: u && k && !_, - _isAudioOnly: Boolean(e["features/base/audio-only"].enabled), - _isCurrentlyOnLargeVideo: (null === (o = e["features/large-video"]) || void 0 === o ? void 0 : o.participantId) === c, - _isDominantSpeakerDisabled: interfaceConfig.DISABLE_DOMINANT_SPEAKER_INDICATOR, - _isMobile: E, - _isMobilePortrait: b, - _isScreenSharing: "desktop" === (null == h ? void 0 : h.videoType), - _isTestModeEnabled: RX(e), - _isVideoPlayable: c && qJ(e, c), - _indicatorIconSize: w, - _localFlipX: Boolean(S), - _participant: l, - _participantCountMoreThan2: Bh(e) > 2, - _startSilent: Boolean(y), - _videoTrack: h, - _volume: u ? void 0 : c ? p[c] : void 0 - }, g) - }))(m2); - class g2 extends E.Component { - constructor(e) { - super(e), this.shouldComponentUpdate = d1.bind(this) - } - render() { - const { - _participantID: e, - style: t, - _horizontalOffset: n = 0 - } = this.props; - return "string" != typeof e ? null : "local" === e ? x().createElement(f2, { - horizontalOffset: n, - key: "local", - style: t - }) : x().createElement(f2, { - horizontalOffset: n, - key: `remote_${e}`, - participantID: e, - style: t - }) - } + componentDidMount() { + window.addEventListener("click", this._onWindowClickListener) } - const b2 = ze((function(e, t) { - var n; - const a = Dk(e), - { - remoteParticipants: r - } = e["features/filmstrip"], - i = r.length, - { - testing: o = {} - } = e["features/base/config"], - s = null === (n = o.enableThumbnailReordering) || void 0 === n || n; - if (a === Ak) { - const { - columnIndex: n, - rowIndex: a - } = t, { - gridDimensions: o = {}, - thumbnailSize: l - } = e["features/filmstrip"].tileViewDimensions, { - columns: c, - rows: u - } = o, d = a * c + n; - let p; - const { - iAmRecorder: h - } = e["features/base/config"], m = i + (h ? 0 : 1); - if (a === u - 1) { - const { - width: e - } = l, t = m % c; - t > 0 && (p = Math.floor((c - t) * (e + 4) / 2)) - } - if (d > m - 1) return {}; - const f = s ? 0 : i, - g = s && !h ? d - 1 : d; - return h || d !== f ? { - _participantID: r[g], - _horizontalOffset: p - } : { - _participantID: "local", - _horizontalOffset: p - } - } + componentWillUnmount() { + window.removeEventListener("click", this._onWindowClickListener) + } + render() { const { - index: l - } = t; - return "number" != typeof l || i <= l ? {} : { - _participantID: r[l] - } - }))(g2); - class y2 extends E.PureComponent { - constructor(e) { - super(e), this._onShortcutToggleFilmstrip = this._onShortcutToggleFilmstrip.bind(this), this._onToolbarToggleFilmstrip = this._onToolbarToggleFilmstrip.bind(this), this._onTabIn = this._onTabIn.bind(this), this._gridItemKey = this._gridItemKey.bind(this), this._listItemKey = this._listItemKey.bind(this), this._onGridItemsRendered = this._onGridItemsRendered.bind(this), this._onListItemsRendered = this._onListItemsRendered.bind(this) - } - componentDidMount() { - APP.keyboardshortcut.registerShortcut("F", "filmstripPopover", this._onShortcutToggleFilmstrip, "keyboardShortcuts.toggleFilmstrip") - } - componentWillUnmount() { - APP.keyboardshortcut.unregisterShortcut("F") - } - render() { - const e = {}, - { - _currentLayout: t - } = this.props, - n = t === Ak; - t === jk && (e.maxWidth = (interfaceConfig.FILM_STRIP_MAX_HEIGHT || 120) + 25); - let a = null; - return this.props._isFilmstripButtonEnabled && (a = this._renderToggleButton()), x().createElement("div", { - className: `filmstrip ${this.props._className}`, - style: e - }, a, x().createElement("div", { - className: this.props._videosClassName, - id: "remoteVideos" - }, x().createElement("div", { - className: "filmstrip__videos", - id: "filmstripLocalVideo" - }, x().createElement("div", { - id: "filmstripLocalVideoThumbnail" - }, !n && x().createElement(f2, { - key: "local" - }))), this._renderRemoteParticipants()), x().createElement(p1, null)) - } - _calculateIndices(e, t) { - const { - _currentLayout: n, - _iAmRecorder: a, - _thumbnailsReordered: r - } = this.props; - let i = e, - o = t; - return r && (a || n !== Ak || (i = Math.max(e - 1, 0), o = t - 1)), { - startIndex: i, - stopIndex: o - } - } - _onTabIn() { - !this.props._isToolboxVisible && this.props._visible && this.props.dispatch(BV()) - } - _listItemKey(e) { - const { - _remoteParticipants: t, - _remoteParticipantsLength: n - } = this.props; - return "number" != typeof e || n <= e ? `empty-${e}` : t[e] - } - _gridItemKey({ - columnIndex: e, - rowIndex: t - }) { - const { - _columns: n, - _iAmRecorder: a, - _remoteParticipants: r, - _remoteParticipantsLength: i, - _thumbnailsReordered: o - } = this.props, s = t * n + e; - return s > i - (a ? 1 : 0) ? `empty-${s}` : a || s !== (o ? 0 : i) ? r[o && !a ? s - 1 : s] : "local" - } - _onListItemsRendered({ - visibleStartIndex: e, - visibleStopIndex: t - }) { - const { - dispatch: n - } = this.props, { - startIndex: a, - stopIndex: r - } = this._calculateIndices(e, t); - n(VJ(a, r)) - } - _onGridItemsRendered({ - visibleColumnStartIndex: e, - visibleColumnStopIndex: t, - visibleRowStartIndex: n, - visibleRowStopIndex: a - }) { - const { - _columns: r, - dispatch: i - } = this.props, o = n * r + e, s = a * r + t, { - startIndex: l, - stopIndex: c - } = this._calculateIndices(o, s); - i(VJ(l, c)) - } - _renderRemoteParticipants() { - const { - _columns: e, - _currentLayout: t, - _filmstripHeight: n, - _filmstripWidth: a, - _remoteParticipantsLength: r, - _rows: i, - _thumbnailHeight: o, - _thumbnailWidth: s - } = this.props; - if (!s || isNaN(s) || !o || isNaN(o) || !n || isNaN(n) || !a || isNaN(a)) return null; - if (t === Ak) return x().createElement(l1, { - className: "filmstrip__videos remote-videos", - columnCount: e, - columnWidth: s + 4, - height: n, - initialScrollLeft: 0, - initialScrollTop: 0, - itemKey: this._gridItemKey, - onItemsRendered: this._onGridItemsRendered, - overscanRowCount: 1, - rowCount: i, - rowHeight: o + 4, - width: a - }, b2); - const l = { - itemCount: r, - className: "filmstrip__videos remote-videos", - height: n, - itemKey: this._listItemKey, - itemSize: 0, - onItemsRendered: this._onListItemsRendered, - overscanCount: 1, - width: a, - style: { - willChange: "auto" - } - }; - if (t === Ck) { - const e = s + 4, - t = r * e <= a; - l.itemSize = e, l.layout = "horizontal", t && (l.className += " is-not-overflowing") - } else if (t === jk) { - const e = o + 4; - r * e <= n && (l.className += " is-not-overflowing"), l.itemSize = e - } - return x().createElement(c1, l, b2) - } - _doToggleFilmstrip() { - this.props.dispatch(UJ(!this.props._visible)) - } - _onShortcutToggleFilmstrip() { - Ma(dn("toggle.filmstrip", { - enable: this.props._visible - })), this._doToggleFilmstrip() - } - _onToolbarToggleFilmstrip() { - Ma(hn("toggle.filmstrip.button", { - enable: this.props._visible - })), this._doToggleFilmstrip() - } - _renderToggleButton() { - const e = this.props._visible ? bu : Su, - { - t - } = this.props; - return x().createElement("div", { - className: "filmstrip__toolbar" - }, x().createElement("button", { - "aria-expanded": this.props._visible, - "aria-label": t("toolbar.accessibilityLabel.toggleFilmstrip"), - id: "toggleFilmstripButton", - onClick: this._onToolbarToggleFilmstrip, - onFocus: this._onTabIn, - tabIndex: 0 - }, x().createElement(qs, { - "aria-label": t("toolbar.accessibilityLabel.toggleFilmstrip"), - src: e - }))) - } + _isBreakoutRoomsSupported: e, + _paneOpen: t, + _showAddRoomButton: n, + _showFooter: a, + classes: r, + t: i + } = this.props, { + contextOpen: o + } = this.state; + return t ? C().createElement("div", { + className: Pm("participants_pane", !t && "participants_pane--closed") + }, C().createElement("div", { + className: "participants_pane-content" + }, C().createElement("div", { + className: r.header + }, C().createElement("div", { + "aria-label": i("participantsPane.close", "Close"), + className: r.closeButton, + onClick: this._onClosePane, + onKeyPress: this._onKeyPress, + role: "button", + tabIndex: 0 + }, C().createElement(lo, { + size: 24, + src: ds + }))), C().createElement("div", { + className: r.container + }, C().createElement(F5, null), C().createElement("br", { + className: r.antiCollapse + }), C().createElement(D6, null), e && C().createElement(P2, null), n && C().createElement(f2, null)), a && C().createElement("div", { + className: r.footer + }, C().createElement(P5, { + accessibilityLabel: i("participantsPane.actions.muteAll"), + onClick: this._onMuteAll + }, i("participantsPane.actions.muteAll")), C().createElement("div", { + className: r.footerMoreContainer + }, C().createElement(P5, { + accessibilityLabel: i("participantsPane.actions.moreModerationActions"), + id: "participants-pane-context-menu", + isIconButton: !0, + onClick: this._onToggleContext + }, C().createElement(lo, { + src: Pl + })), C().createElement(M5, { + isOpen: o, + onDrawerClose: this._onDrawerClose, + onMouseLeave: this._onToggleContext + }))))) : null + } + _onClosePane() { + this.props.dispatch(E0()) + } + _onDrawerClose() { + this.setState({ + contextOpen: !1 + }) } - const v2 = Li(ze((function(e) { - var t, n, a; - const r = Qn(e), - { - testing: i = {}, - iAmRecorder: o - } = e["features/base/config"], - s = null === (t = i.enableThumbnailReordering) || void 0 === t || t, - { - visible: l, - remoteParticipants: c - } = e["features/filmstrip"], - u = e["features/toolbox"].visible && r.length, - d = function(e) { - if (e["features/invite"].calleeInfoVisible) return !1; - const t = Uh(e); - let n; - const { - disable1On1Mode: a - } = e["features/base/config"], { - contextMenuOpened: r - } = e["features/base/responsive-ui"]; - return Boolean(r || t > 2 || t > 1 && null !== a && (e["features/toolbox"].visible || (n = Yh(e)) && n.local) || a) - }(e), - { - isOpen: p - } = e["features/chat"], - { - gridDimensions: h = {}, - filmstripHeight: m, - filmstripWidth: f, - thumbnailSize: g - } = e["features/filmstrip"].tileViewDimensions, - b = Dk(e), - { - clientHeight: y, - clientWidth: v - } = e["features/base/responsive-ui"], - k = y - m; - let _ = 0; - if (k > 0) { - const e = 60 - k; - e > 0 && (_ = e) - } else _ = 60; - const w = u && Sa() && v <= bk, - S = `${d?"":"hide-videos"} ${u?"reduce-height":""} ${p?"shift-right":""} ${w?"collapse":""}`.trim(), - E = "filmstrip__videos" + (l ? "" : " hidden"); - let x, C, A; - switch (b) { - case Ak: - x = g, C = m - (w && _ > 0 ? _ : 0), A = f; - break; - case jk: { - const { - remote: t, - remoteVideosContainer: n - } = e["features/filmstrip"].verticalViewDimensions; - x = t, C = (null == n ? void 0 : n.height) - (u ? 72 : 0), A = null == n ? void 0 : n.width; - break - } - case Ck: { - const { - remote: t, - remoteVideosContainer: n - } = e["features/filmstrip"].horizontalViewDimensions; - x = t, C = null == n ? void 0 : n.height, A = null == n ? void 0 : n.width; - break - } - } - return { - _className: S, - _columns: h.columns, - _currentLayout: b, - _filmstripHeight: C, - _filmstripWidth: A, - _iAmRecorder: Boolean(o), - _isFilmstripButtonEnabled: vH("filmstrip", e), - _remoteParticipantsLength: c.length, - _remoteParticipants: c, - _rows: h.rows, - _thumbnailWidth: null === (n = x) || void 0 === n ? void 0 : n.width, - _thumbnailHeight: null === (a = x) || void 0 === a ? void 0 : a.height, - _thumbnailsReordered: s, - _videosClassName: E, - _visible: l, - _isToolboxVisible: kH(e) - } - }))(y2)); - class k2 extends E.Component { - render() { - return x().createElement("div", { - className: "moderator-icon right" - }, x().createElement(Zw, { - className: "focusindicator toolbar-icon", - icon: ed, - iconSize: 13, - tooltipKey: "videothumbnail.moderator", - tooltipPosition: this.props.tooltipPosition - })) - } + _onKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClosePane()) } - const _2 = k2; - class w2 extends E.Component { - render() { - return this.props._raisedHand ? this._renderIndicator() : null - } + _onMuteAll() { + this.props.dispatch(VI(Z2)) } - const S2 = ze((function(e, t) { - const n = Fh(e, t.participantId); - return { - _raisedHand: n && n.raisedHand - } - }))(class extends w2 { - _renderIndicator() { - return x().createElement(Zw, { - className: "raisehandindicator indicator show-inline", - icon: Td, - iconClassName: "indicatoricon", - iconSize: `${this.props.iconSize}px`, - tooltipKey: "raisedHand", - tooltipPosition: this.props.tooltipPosition - }) - } - }); - - function E2(e) { - return x().createElement(Zw, { - className: "screenShare toolbar-icon", - icon: hp, - iconId: "share-desktop", - iconSize: 13, - tooltipKey: "videothumbnail.videomute", - tooltipPosition: e.tooltipPosition + _onToggleContext() { + this.setState({ + contextOpen: !this.state.contextOpen }) } - class x2 extends E.Component { - render() { - return x().createElement(Zw, { - className: "videoMuted toolbar-icon", - icon: gl, - iconId: "camera-disabled", - iconSize: 13, - tooltipKey: "videothumbnail.videomute", - tooltipPosition: this.props.tooltipPosition - }) - } + _onWindowClickListener(e) { + this.state.contextOpen && !jm(e.target, this.props.classes.footerMoreContainer) && this.setState({ + contextOpen: !1 + }) } - const C2 = x2; - class A2 extends E.Component { - render() { - const { - _currentLayout: e, - _showAudioMutedIndicator: t, - _showModeratorIndicator: n, - _showScreenShareIndicator: a, - _showVideoMutedIndicator: r - } = this.props; - let i; - switch (e) { - case Ak: - i = "right"; - break; - case jk: - i = "left"; - break; - default: - i = "top" - } - return x().createElement("div", null, t ? x().createElement(WX, { - tooltipPosition: i - }) : null, a ? x().createElement(E2, { - tooltipPosition: i - }) : null, r ? x().createElement(C2, { - tooltipPosition: i - }) : null, n ? x().createElement(_2, { - tooltipPosition: i - }) : null) - } + } + const j6 = Ei(Ne((function(e) { + var t; + const n = Om(e), + { + hideAddRoomButton: a + } = e["features/base/config"], + { + conference: r + } = e["features/base/conference"], + i = null == r || null === (t = r.getBreakoutRooms()) || void 0 === t ? void 0 : t.isSupported(), + o = tm(e); + return { + _isBreakoutRoomsSupported: i, + _paneOpen: n, + _showAddRoomButton: i && !a && o, + _showFooter: n && tm(e) + } + }))(rL((e => ({ + container: { + boxSizing: "border-box", + flex: 1, + overflowY: "auto", + position: "relative", + padding: `0 ${HH.XP}px`, + [`& > * + *:not(.${HH.m8})`]: { + marginTop: e.spacing(3) + }, + "&::-webkit-scrollbar": { + display: "none" + } + }, + closeButton: { + alignItems: "center", + cursor: "pointer", + display: "flex", + justifyContent: "center" + }, + header: { + alignItems: "center", + boxSizing: "border-box", + display: "flex", + height: `${HH.sS}px`, + padding: "0 20px", + justifyContent: "flex-end" + }, + antiCollapse: { + fontSize: 0, + "&:first-child": { + display: "none" + }, + "&:first-child + *": { + marginTop: 0 + } + }, + footer: { + display: "flex", + justifyContent: "flex-end", + padding: `${e.spacing(4)}px ${HH.XP}px`, + "& > *:not(:last-child)": { + marginRight: `${e.spacing(3)}px` + } + }, + footerMoreContainer: { + position: "relative" + } + })))(P6))); + + function M6(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const I6 = Ei(Ne((function(e) { + const { + isOpen: t + } = e["features/participants-pane"]; + return { + _isOpen: t } - const j2 = ze((function(e, t) { - const { - participantID: n - } = t, a = qh(e, n), r = e["features/base/tracks"]; - let i = !0, - o = !0, - s = !1; - if (null == a ? void 0 : a.local) i = ts(r, to), o = ts(r, Xi); - else if (!(null == a ? void 0 : a.isFakeParticipant)) { - const e = Qo(r, to, n); - s = "desktop" === (null == e ? void 0 : e.videoType), i = as(r, to, n), o = as(r, Xi, n) - } - const { - disableModeratorIndicator: l - } = e["features/base/config"]; - return { - _currentLayout: Dk(e), - _showAudioMutedIndicator: o, - _showModeratorIndicator: !l && a && a.role === Th, - _showScreenShareIndicator: s, - _showVideoMutedIndicator: i - } - }))(A2), - P2 = () => FJ(APP.store) && !interfaceConfig.VERTICAL_FILMSTRIP ? $(".filmstrip").outerHeight() : 0, - D2 = () => FJ(APP.store) ? function() { - const e = (interfaceConfig.FILM_STRIP_MAX_HEIGHT || 120) + 18; - return Math.min(e, window.innerWidth) - }() : 0, - T2 = "SET_SHARED_VIDEO_STATUS", - O2 = "RESET_SHARED_VIDEO_STATUS", - M2 = "SET_DISABLE_BUTTON"; - - function I2() { - return { - type: O2 - } + }))(class extends bC { + constructor() { + super(...arguments), M6(this, "accessibilityLabel", "toolbar.accessibilityLabel.participants"), M6(this, "icon", Jc), M6(this, "label", "toolbar.participants"), M6(this, "tooltip", "toolbar.participants") + } + _handleClick() { + const { + handleClick: e + } = this.props; + e && e() + } + _isToggled() { + return this.props._isOpen } + })), O6 = "TOGGLE_REACTIONS_VISIBLE", N6 = "ADD_REACTION_BUFFER", R6 = "FLUSH_REACTION_BUFFER", z6 = "ADD_REACTION_MESSAGE", L6 = "SET_REACTION_QUEUE", F6 = "SEND_REACTIONS", q6 = "PUSH_REACTIONS", B6 = "SHOW_SOUNDS_NOTIFICATION"; - function N2({ - videoUrl: e, - status: t, - time: n, - ownerId: a, - muted: r - }) { - return { - type: T2, - ownerId: a, - status: t, - time: n, - videoUrl: e, - muted: r - } + function U6(e) { + return { + type: L6, + value: e } + } - function z2() { - return (e, t) => { - const n = t(), - { - ownerId: a - } = n["features/shared-video"]; - a === Rh(n).id && e(I2()) - } + function H6(e) { + return { + type: N6, + reaction: e } + } - function R2(e) { - return (t, n) => { - if (yI(n())) { - const a = Rh(n()); - t(N2({ - videoUrl: e, - status: "start", - time: 0, - ownerId: a.id - })) - } - } + function V6(e) { + return { + type: q6, + reactions: e } - const L2 = We().getLogger("react/features/shared-video/components/web/AbstractVideoManager.js"); - class F2 extends E.PureComponent { - constructor() { - super(), this.throttledFireUpdateSharedVideoEvent = Ha()(this.fireUpdateSharedVideoEvent.bind(this), 5e3), window._sharedVideoPlayer = this - } - componentDidMount() { - this.props._dockToolbox(!0), this.processUpdatedProps() - } - componentDidUpdate(e) { - const { - _videoUrl: t - } = this.props; - e._videoUrl !== t && Ma(un("started")), this.processUpdatedProps() - } - componentWillUnmount() { - Ma(un("stopped")), this.dispose && this.dispose(), this.props._dockToolbox(!1) - } - processUpdatedProps() { - const { - _status: e, - _time: t, - _isOwner: n, - _muted: a - } = this.props; - if (n) return; - var r, i; - r = t, i = this.getTime(), Math.abs(r - i) > 5 && this.seek(t), this.getPlaybackStatus() !== e && (e === Ek.PLAYING && this.play(), e === Ek.PAUSED && this.pause()), this.isMuted() !== a && (a ? this.mute() : this.unMute()) - } - onError() { - L2.error("Error in the video player"), this.props._stopSharedVideo(), this.props._displayWarning() - } - onPlay() { - this.smartAudioMute(), Ma(un("play")), this.fireUpdateSharedVideoEvent() - } - onPause() { - Ma(un("paused")), this.fireUpdateSharedVideoEvent() - } - onVolumeChange() { - const e = this.getVolume(), - t = this.isMuted(); - e > 0 && !t && this.smartAudioMute(), Ma(un("volume.changed", { - volume: e, - muted: t - })), this.fireUpdatePlayingVideoEvent() - } - fireUpdatePlayingVideoEvent() { - this.getPlaybackStatus() === Ek.PLAYING && this.fireUpdateSharedVideoEvent() - } - fireUpdateSharedVideoEvent() { - const { - _isOwner: e - } = this.props; - if (!e) return; - const t = this.getPlaybackStatus(); - if (!Object.values(Ek).includes(t)) return; - const { - _ownerId: n, - _setSharedVideoStatus: a, - _videoUrl: r - } = this.props; - a({ - videoUrl: r, - status: t, - time: this.getTime(), - ownerId: n, - muted: this.isMuted() - }) - } - isSharedVideoVolumeOn() { - return this.getPlaybackStatus() === Ek.PLAYING && !this.isMuted() && this.getVolume() > 0 - } - smartAudioMute() { - const { - _isLocalAudioMuted: e, - _muteLocal: t - } = this.props; - !e && this.isSharedVideoVolumeOn() && (Ma(un("audio.muted")), t(!0)) + } + class W6 extends QX { + constructor(e) { + super(e), this._onKeyDown = this._onKeyDown.bind(this), this._onClickHandler = this._onClickHandler.bind(this), this.state = { + increaseLevel: 0, + increaseTimeout: null } } - const q2 = F2; - - function B2(e) { - const { - ownerId: t, - status: n, - time: a, - videoUrl: r, - muted: i - } = e["features/shared-video"], o = Rh(e), s = ts(e["features/base/tracks"], Xi); - return { - _conference: yI(e), - _isLocalAudioMuted: s, - _isOwner: t === o.id, - _muted: i, - _ownerId: t, - _status: n, - _time: a, - _videoUrl: r - } + _onKeyDown(e) { + e.defaultPrevented || "Enter" === e.key && (e.preventDefault(), e.stopPropagation(), this.props.onClick()) } - - function U2(e) { - return { - _displayWarning: () => { - e(Gf({ - titleKey: "dialog.shareVideoLinkError" - })) - }, - _dockToolbox: t => { - e(FV(t)) - }, - _stopSharedVideo: () => { - e(z2()) - }, - _muteLocal: t => { - e(BQ(t, Xi)) - }, - _setSharedVideoStatus: ({ - videoUrl: t, - status: n, - time: a, - ownerId: r, - muted: i - }) => { - e(N2({ - videoUrl: t, - status: n, - time: a, - ownerId: r, - muted: i - })) - } - } + _onClickHandler() { + this.props.onClick(), clearTimeout(this.state.increaseTimeout); + const e = setTimeout((() => { + this.setState({ + increaseLevel: 0 + }) + }), 500); + this.setState((t => ({ + increaseLevel: t.increaseLevel + 1, + increaseTimeout: e + }))) } - - function H2() { - return H2 = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, H2.apply(this, arguments) + _renderButton(e) { + return C().createElement("div", { + "aria-label": this.props.accessibilityLabel, + "aria-pressed": this.props.toggled, + className: "toolbox-button", + onClick: this._onClickHandler, + onKeyDown: this._onKeyDown, + role: "button", + tabIndex: 0 + }, this.props.tooltip ? C().createElement(hC, { + content: this.props.tooltip, + position: this.props.tooltipPosition + }, e) : e) } - - function V2(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _renderIcon() { + const { + toggled: e, + icon: t, + label: n + } = this.props, { + increaseLevel: a + } = this.state; + return C().createElement("div", { + className: "toolbox-icon " + (e ? "toggled" : "") + }, C().createElement("span", { + className: `emoji increase-${a>12?12:a}` + }, t), n && C().createElement("span", { + className: "text" + }, n)) } - const W2 = ze(B2, U2)(class extends q2 { - constructor(e) { - super(e), this.playerRef = x().createRef() - } - get player() { - return this.playerRef.current - } - getPlaybackStatus() { - let e; - if (this.player) return e = this.player.paused ? Ek.PAUSED : Ek.PLAYING, e - } - isMuted() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.muted - } - getVolume() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.volume - } - getTime() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.currentTime - } - seek(e) { - this.player && (this.player.currentTime = e) - } - play() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.play() - } - pause() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.pause() - } - mute() { - this.player && (this.player.muted = !0) - } - unMute() { - this.player && (this.player.muted = !1) - } - getPlayerOptions() { - const { - _isOwner: e, - videoId: t - } = this.props; - let n = { - autoPlay: !0, - src: t, - controls: e, - onError: () => this.onError(), - onPlay: () => this.onPlay(), - onVolumeChange: () => this.onVolumeChange() - }; - return e && (n = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - V2(e, t, n[t]) - })) - } - return e - }({}, n, { - onPause: () => this.onPause(), - onTimeUpdate: this.throttledFireUpdateSharedVideoEvent - })), n - } - render() { - return x().createElement("video", H2({ - id: "sharedVideoPlayer", - ref: this.playerRef - }, this.getPlayerOptions())) - } - }); - var Y2 = n(4826), - G2 = n.n(Y2), - K2 = n(3184), - $2 = n.n(K2); - - function J2(e) { - return J2 = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { - return typeof e - } : function(e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }, J2(e) + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(W6, "defaultProps", { + tooltipPosition: "top" + }); + const Y6 = W6; class G6 extends x.Component { + constructor(e) { + super(e), this.state = { + index: e.index % 21 + } + } + componentDidMount() { + setTimeout((() => this.props.removeReaction(this.props.uid)), 5e3) + } + render() { + const { + reaction: e, + uid: t + } = this.props, { + index: n + } = this.state; + return C().createElement("div", { + className: `reaction-emoji reaction-${n}`, + id: t + }, TZ[e].emoji) } - - function Z2(e, t) { - for (var n = 0; n < t.length; n++) { - var a = t[n]; - a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) + } + const K6 = { + removeReaction: function(e) { + return (t, n) => { + t(U6(n()["features/reactions"].queue.filter((t => t.uid !== e)))) } } + }, $6 = Ne(null, K6)(G6); - function Q2(e, t) { - return Q2 = Object.setPrototypeOf || function(e, t) { - return e.__proto__ = t, e - }, Q2(e, t) + function J6() { + return { + type: O6 } + } - function X2(e, t) { - return !t || "object" !== J2(t) && "function" != typeof t ? e3(e) : t + function Z6() { + return { + type: B6 } - - function e3(e) { - if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e + } + class Q6 extends x.Component { + constructor(e) { + super(e), this._onToolbarToggleRaiseHand = this._onToolbarToggleRaiseHand.bind(this), this._getReactionButtons = this._getReactionButtons.bind(this) } - - function t3(e) { - return t3 = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { - return e.__proto__ || Object.getPrototypeOf(e) - }, t3(e) + componentDidMount() { + this.props._dockToolbox(!0) } - - function n3(e, t) { - var n = Object.keys(e); - if (Object.getOwnPropertySymbols) { - var a = Object.getOwnPropertySymbols(e); - t && (a = a.filter((function(t) { - return Object.getOwnPropertyDescriptor(e, t).enumerable - }))), n.push.apply(n, a) - } - return n + componentWillUnmount() { + this.props._dockToolbox(!1) } - - function a3(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? arguments[t] : {}; - t % 2 ? n3(Object(n), !0).forEach((function(t) { - r3(e, t, n[t]) - })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(n)) : n3(Object(n)).forEach((function(t) { - Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(n, t)) - })) - } - return e + _onToolbarToggleRaiseHand() { + const { + dispatch: e, + _raisedHand: t + } = this.props; + Da(ln("raise.hand", { + enable: !t + })), this._doToggleRaiseHand(), e(J6()) } - - function r3(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _doToggleRaiseHand() { + const { + _raisedHand: e + } = this.props; + this.props.dispatch(dS(!e)) } - - function i3(e) { - return a3(a3({}, e), {}, { - playerVars: a3({ - autoplay: 0, - start: 0, - end: 0 - }, e.playerVars) - }) + _getReactionButtons() { + var e; + const { + t, + dispatch: n + } = this.props; + let a = "Alt"; + return null !== (e = window.navigator) && void 0 !== e && e.platform && -1 !== window.navigator.platform.indexOf("Mac") && (a = "⌥"), Object.keys(TZ).map((e => C().createElement(Y6, { + accessibilityLabel: t(`toolbar.accessibilityLabel.${e}`), + icon: TZ[e].emoji, + key: e, + onClick: function() { + n(H6(e)), Da({ + action: "clicked", + actionSubject: "button", + source: "reaction", + buttonName: e, + type: Lt + }) + }, + toggled: !1, + tooltip: `${t(`toolbar.${e}`)} (${a} + ${TZ[e].shortcutChar})` + }))) } - var o3 = function(e) { - ! function(e, t) { - if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); - e.prototype = Object.create(t && t.prototype, { - constructor: { - value: e, - writable: !0, - configurable: !0 - } - }), t && Q2(e, t) - }(o, e); - var t, n, a, r, i = (a = o, r = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, t = t3(a); - if (r) { - var n = t3(this).constructor; - e = Reflect.construct(t, arguments, n) - } else e = t.apply(this, arguments); - return X2(this, e) + render() { + const { + _raisedHand: e, + t, + overflowMenu: n, + _isMobile: a + } = this.props; + return C().createElement("div", { + className: "reactions-menu " + (n ? "overflow" : "") + }, C().createElement("div", { + className: "reactions-row" + }, this._getReactionButtons()), a && C().createElement("div", { + className: "raise-hand-row" + }, C().createElement(Y6, { + accessibilityLabel: t("toolbar.accessibilityLabel.raiseHand"), + icon: "✋", + key: "raisehand", + label: `${t("toolbar."+(e?"lowerYourHand":"raiseYourHand"))}\n ${n?"":" (R)"}`, + onClick: this._onToolbarToggleRaiseHand, + toggled: !0 + }))) + } + } + const X6 = Ei(Ne((function(e) { + const t = Uh(e); + return { + _localParticipantID: t.id, + _isMobile: va(), + _raisedHand: am(t) + } + }), (function(e) { + return { + dispatch: e, + ...le({ + _dockToolbox: SI + }, e) + } + }))(Q6)); + + function e8(e) { + return e["features/reactions"].visible + } + const t8 = function(e) { + let { + children: t + } = e; + const n = Pe((e => e8(e))), + a = Ae(), + r = (0, x.useCallback)((() => { + a(J6()) + })); + return C().createElement("div", { + className: "reactions-menu-popup" + }, C().createElement(xA, { + content: C().createElement(X6, null), + isOpen: n, + onClose: r, + placement: "top" + }, t)) + }, n8 = Ei(Ne((function(e) { + const t = Uh(e); + return { + _reactionsEnabled: OZ(e), + isOpen: e8(e), + isMobile: va(), + reactionsQueue: PZ(e), + raisedHand: am(t) + } + }))((function(e) { + let { + _reactionsEnabled: t, + dispatch: n, + handleClick: a, + isOpen: r, + isMobile: i, + raisedHand: o, + reactionsQueue: s, + t: l + } = e; + const c = (0, x.useCallback)((() => { + n(J6()) + }), [n]), + u = C().createElement(e1, { + accessibilityLabel: l("toolbar.accessibilityLabel.raiseHand"), + icon: lu, + key: "raise-hand", + onClick: a, + toggled: o, + tooltip: l("toolbar.raiseHand") }); + return C().createElement("div", { + className: "reactions-menu-popup-container" + }, C().createElement(t8, null, !t || i ? u : C().createElement(yM, { + ariaControls: "reactions-menu-dialog", + ariaExpanded: r, + ariaHasPopup: !0, + ariaLabel: l("toolbar.accessibilityLabel.reactionsMenu"), + icon: Eo, + iconDisabled: !1, + iconId: "reactions-menu-button", + iconTooltip: l("toolbar." + (r ? "closeReactionsMenu" : "openReactionsMenu")), + onIconClick: c + }, u)), s.map(((e, t) => { + let { + reaction: n, + uid: a + } = e; + return C().createElement($6, { + index: t, + key: a, + reaction: n, + uid: a + }) + }))) + }))), a8 = "TOGGLE_E2EE", r8 = "SET_EVERYONE_ENABLED_E2EE", i8 = "SET_EVERYONE_SUPPORT_E2EE", o8 = "SET_MAX_MODE", s8 = "SET_MEDIA_ENCRYPTION_KEY"; - function o(e) { - var t; - return function(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - }(this, o), r3(e3(t = i.call(this, e)), "onPlayerReady", (function(e) { - return t.props.onReady(e) - })), r3(e3(t), "onPlayerError", (function(e) { - return t.props.onError(e) - })), r3(e3(t), "onPlayerStateChange", (function(e) { - switch (t.props.onStateChange(e), e.data) { - case o.PlayerState.ENDED: - t.props.onEnd(e); - break; - case o.PlayerState.PLAYING: - t.props.onPlay(e); - break; - case o.PlayerState.PAUSED: - t.props.onPause(e) - } - })), r3(e3(t), "onPlayerPlaybackRateChange", (function(e) { - return t.props.onPlaybackRateChange(e) - })), r3(e3(t), "onPlayerPlaybackQualityChange", (function(e) { - return t.props.onPlaybackQualityChange(e) - })), r3(e3(t), "createPlayer", (function() { - if ("undefined" != typeof document) { - var e = a3(a3({}, t.props.opts), {}, { - videoId: t.props.videoId - }); - t.internalPlayer = $2()(t.container, e), t.internalPlayer.on("ready", t.onPlayerReady), t.internalPlayer.on("error", t.onPlayerError), t.internalPlayer.on("stateChange", t.onPlayerStateChange), t.internalPlayer.on("playbackRateChange", t.onPlayerPlaybackRateChange), t.internalPlayer.on("playbackQualityChange", t.onPlayerPlaybackQualityChange) - } - })), r3(e3(t), "resetPlayer", (function() { - return t.internalPlayer.destroy().then(t.createPlayer) - })), r3(e3(t), "updatePlayer", (function() { - t.internalPlayer.getIframe().then((function(e) { - t.props.id ? e.setAttribute("id", t.props.id) : e.removeAttribute("id"), t.props.className ? e.setAttribute("class", t.props.className) : e.removeAttribute("class") - })) - })), r3(e3(t), "getInternalPlayer", (function() { - return t.internalPlayer - })), r3(e3(t), "updateVideo", (function() { - if (void 0 !== t.props.videoId && null !== t.props.videoId) { - var e = !1, - n = { - videoId: t.props.videoId - }; - "playerVars" in t.props.opts && (e = 1 === t.props.opts.playerVars.autoplay, "start" in t.props.opts.playerVars && (n.startSeconds = t.props.opts.playerVars.start), "end" in t.props.opts.playerVars && (n.endSeconds = t.props.opts.playerVars.end)), e ? t.internalPlayer.loadVideoById(n) : t.internalPlayer.cueVideoById(n) - } else t.internalPlayer.stopVideo() - })), r3(e3(t), "refContainer", (function(e) { - t.container = e - })), t.container = null, t.internalPlayer = null, t - } - return t = o, (n = [{ - key: "componentDidMount", - value: function() { - this.createPlayer() - } - }, { - key: "componentDidUpdate", - value: function(e) { - (function(e, t) { - return e.id !== t.id || e.className !== t.className - })(e, this.props) && this.updatePlayer(), - function(e, t) { - return !G2()(i3(e.opts), i3(t.opts)) - }(e, this.props) && this.resetPlayer(), - function(e, t) { - if (e.videoId !== t.videoId) return !0; - var n = e.opts.playerVars || {}, - a = t.opts.playerVars || {}; - return n.start !== a.start || n.end !== a.end - }(e, this.props) && this.updateVideo() - } - }, { - key: "componentWillUnmount", - value: function() { - this.internalPlayer.destroy() - } - }, { - key: "render", - value: function() { - return x().createElement("div", { - className: this.props.containerClassName - }, x().createElement("div", { - id: this.props.id, - className: this.props.className, - ref: this.refContainer - })) - } - }]) && Z2(t.prototype, n), o - }(x().Component); - r3(o3, "PlayerState", { - UNSTARTED: -1, - ENDED: 0, - PLAYING: 1, - PAUSED: 2, - BUFFERING: 3, - CUED: 5 - }), o3.propTypes = { - videoId: AS().string, - id: AS().string, - className: AS().string, - containerClassName: AS().string, - opts: AS().objectOf(AS().any), - onReady: AS().func, - onError: AS().func, - onPlay: AS().func, - onPause: AS().func, - onEnd: AS().func, - onStateChange: AS().func, - onPlaybackRateChange: AS().func, - onPlaybackQualityChange: AS().func - }, o3.defaultProps = { - videoId: null, - id: null, - className: null, - opts: {}, - containerClassName: "", - onReady: function() {}, - onError: function() {}, - onPlay: function() {}, - onPause: function() {}, - onEnd: function() {}, - onStateChange: function() {}, - onPlaybackRateChange: function() {}, - onPlaybackQualityChange: function() {} - }; - const s3 = o3; + function l8(e) { + return { + type: a8, + enabled: e + } + } - function l3(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function c8(e) { + return { + type: r8, + everyoneEnabledE2EE: e } - const c3 = ze(B2, U2)(class extends q2 { - constructor(e) { - super(e), l3(this, "onPlayerStateChange", (e => { - e.data === s3.PlayerState.PLAYING ? this.onPlay() : e.data === s3.PlayerState.PAUSED && this.onPause() - })), l3(this, "onPlayerReady", (e => { - const { - _isOwner: t - } = this.props; - this.player = e.target, this.player.addEventListener("onVolumeChange", (() => { - this.onVolumeChange() - })), t && this.player.addEventListener("onVideoProgress", this.throttledFireUpdateSharedVideoEvent), this.play(), this.isMuted() && this.unMute() - })), l3(this, "getPlayerOptions", (() => { - const { - _isOwner: e, - videoId: t - } = this.props, n = e ? 1 : 0; - return { - id: "sharedVideoPlayer", - opts: { - height: "100%", - width: "100%", - playerVars: { - origin: location.origin, - fs: "0", - autoplay: 0, - controls: n, - rel: 0 - } - }, - onError: () => this.onError(), - onReady: this.onPlayerReady, - onStateChange: this.onPlayerStateChange, - videoId: t - } - })), this.isPlayerAPILoaded = !1 - } - getPlaybackStatus() { - let e; - if (!this.player) return; - const t = this.player.getPlayerState(); - return t === s3.PlayerState.PLAYING && (e = Ek.PLAYING), t === s3.PlayerState.PAUSED && (e = Ek.PAUSED), e - } - isMuted() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.isMuted() - } - getVolume() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.getVolume() - } - getTime() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.getCurrentTime() - } - seek(e) { - var t; - return null === (t = this.player) || void 0 === t ? void 0 : t.seekTo(e) - } - play() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.playVideo() - } - pause() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.pauseVideo() - } - mute() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.mute() - } - unMute() { - var e; - return null === (e = this.player) || void 0 === e ? void 0 : e.unMute() - } - dispose() { - this.player && (this.player.destroy(), this.player = null) - } - render() { - return x().createElement(s3, this.getPlayerOptions()) - } - }); - class u3 extends E.Component { - getDimensions() { - const { - clientHeight: e, - clientWidth: t, - filmstripVisible: n - } = this.props; - let a, r; - return interfaceConfig.VERTICAL_FILMSTRIP ? (a = n ? t - D2() + "px" : `${t}px`, r = e - yH() + "px") : (r = n ? e - P2() + "px" : `${e}px`, a = `${t}px`), { - width: a, - height: r - } - } - getManager() { - const { - videoUrl: e - } = this.props; - return e ? e.match(/http/) ? x().createElement(W2, { - videoId: e - }) : x().createElement(c3, { - videoId: e - }) : null - } - render() { - const { - isOwner: e - } = this.props, t = e ? "" : "disable-pointer"; - return x().createElement("div", { - className: t, - id: "sharedVideo", - style: this.getDimensions() - }, this.getManager()) - } + } + + function u8(e) { + return { + type: i8, + everyoneSupportE2EE: e } - const d3 = ze((function(e) { - const { - ownerId: t, - videoUrl: n - } = e["features/shared-video"], { - clientHeight: a, - clientWidth: r - } = e["features/base/responsive-ui"], { - visible: i - } = e["features/filmstrip"], o = Rh(e); - return { - clientHeight: a, - clientWidth: r, - filmstripVisible: i, - isOwner: t === (null == o ? void 0 : o.id), - videoUrl: n - } - }))(u3); + } - function p3(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function d8(e) { + return { + type: o8, + maxMode: e } - const h3 = Li(ze((function(e) { + } + const p8 = "E2EE_OFF_SOUND", h8 = "E2EE_ON_SOUND", m8 = "max-mode-enabled", f8 = "max-mode-threshold-exceeded", g8 = "max-mode-disabled"; + + function b8(e) { + const t = Fe(e), + { + everyoneSupportE2EE: n + } = t["features/e2ee"], + { + e2eeSupported: a + } = t["features/base/conference"], + r = Yh(t); + return void 0 === n && 1 === r ? a : n + } + class y8 extends x.Component { + static getDerivedStateFromProps(e, t) { + return e._toggled !== t.toggled ? { + toggled: e._toggled + } : null + } + constructor(e) { + super(e), this.state = { + toggled: !1 + }, this._onToggle = this._onToggle.bind(this) + } + render() { const { - disabled: t, - status: n - } = e["features/shared-video"]; - return { - _isDisabled: t, - _sharingVideo: xk(n) - } - }))(class extends Vw { - constructor(...e) { - super(...e), p3(this, "accessibilityLabel", "toolbar.accessibilityLabel.sharedvideo"), p3(this, "icon", vp), p3(this, "label", "toolbar.sharedvideo"), p3(this, "toggledLabel", "toolbar.stopSharedVideo") - } - get tooltip() { - return this._isToggled() ? "toolbar.stopSharedVideo" : "toolbar.sharedvideo" - } - set tooltip(e) { - return e - } - _handleClick() { - const { - handleClick: e - } = this.props; - e ? e() : this._doToggleSharedVideo() - } - _isToggled() { - return this.props._sharingVideo - } - _isDisabled() { - return this.props._isDisabled - } - _doToggleSharedVideo() { - this.props.dispatch(((e, t) => { - const n = t(), - { - status: a - } = n["features/shared-video"]; - ["playing", "start", "pause"].includes(a) ? e(z2()) : e(sP(f3, { - onPostSubmit: t => e(R2(t)) - })) - })) - } - })); - class m3 extends E.Component { - constructor(e) { - super(e), this._onSetVideoLink = this._onSetVideoLink.bind(this) - } - _onSetVideoLink(e) { - if (!e) return !1; - const t = e.trim(); - if (!t) return !1; - const { - onPostSubmit: n - } = this.props, a = function(e) { - if (!e) return null; - const t = e.match(/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|(?:m\.)?youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/); - return t ? t[1] : null - }(t); - if (a) return n(a), !0; - try { - new URL(t) - } catch (e) { - return !1 - } - return n(t), !0 - } - } - const f3 = Li(ze()(class extends m3 { - constructor(e) { - super(e), this.state = { - value: "", - okDisabled: !0 - }, this._onChange = this._onChange.bind(this), this._onSubmitValue = this._onSubmitValue.bind(this) - } - _onChange(e) { - const t = Uj(e); - this.setState({ - value: t, - okDisabled: !t - }) - } - _onSubmitValue() { - return super._onSetVideoLink(this.state.value) - } - render() { - const { - t: e - } = this.props; - return x().createElement(IO, { - hideCancelButton: !1, - okDisabled: this.state.okDisabled, - okKey: e("dialog.Share"), - onSubmit: this._onSubmitValue, - titleKey: e("dialog.shareVideoTitle"), - width: "small" - }, x().createElement(bz, { - autoFocus: !0, - className: "input-control", - compact: !1, - label: e("dialog.videoLink"), - name: "sharedVideoUrl", - onChange: this._onChange, - placeholder: e("dialog.sharedVideoLinkPlaceholder"), - shouldFitContainer: !0, - type: "text", - value: this.state.value - })) - } - })); - class g3 extends E.Component { - constructor(e) { - super(e), this._clearTapTimeout = this._clearTapTimeout.bind(this), this._onDoubleTap = this._onDoubleTap.bind(this) - } - render() { - const { - _isChatOpen: e, - _noAutoPlayVideo: t - } = this.props, n = this._getCustomSyles(), a = "videocontainer" + (e ? " shift-right" : ""); - return x().createElement("div", { - className: a, - id: "largeVideoContainer", - style: n - }, x().createElement(d3, null), x().createElement("div", { - id: "etherpad" - }), x().createElement(qj, null), x().createElement("div", { - id: "dominantSpeaker", - onTouchEnd: this._onDoubleTap - }, x().createElement("div", { - className: "dynamic-shadow" - }), x().createElement("div", { - id: "dominantSpeakerAvatarContainer" - })), x().createElement("div", { - id: "remotePresenceMessage" - }), x().createElement("span", { - id: "remoteConnectionMessage" - }), x().createElement("div", { - id: "largeVideoElementsContainer" - }, x().createElement("div", { - id: "largeVideoBackgroundContainer" - }), x().createElement("div", { - id: "largeVideoWrapper", - onTouchEnd: this._onDoubleTap, - role: "figure" - }, x().createElement("video", { - autoPlay: !t, - id: "largeVideo", - muted: !0, - playsInline: !0 - }))), interfaceConfig.DISABLE_TRANSCRIPTION_SUBTITLES || x().createElement(Qj, null)) - } - _clearTapTimeout() { - clearTimeout(this._tappedTimeout), this._tappedTimeout = void 0 - } - _getCustomSyles() { - const e = {}, - { - _customBackgroundColor: t, - _customBackgroundImageUrl: n - } = this.props; - if (e.backgroundColor = t || interfaceConfig.DEFAULT_BACKGROUND, void 0 !== this.props._backgroundAlpha) { - const t = zt(e.backgroundColor, this.props._backgroundAlpha); - e.backgroundColor = t - } - return n && (e.backgroundImage = `url(${n})`, e.backgroundSize = "cover"), e - } - _onDoubleTap(e) { - e.stopPropagation(), e.preventDefault(), this._tappedTimeout ? (this._clearTapTimeout(), this.props.dispatch(Nk(!0))) : this._tappedTimeout = setTimeout(this._clearTapTimeout, 300) - } + _descriptionResource: e, + _enabled: t, + _e2eeLabels: n, + _everyoneSupportE2EE: a, + t: r + } = this.props, { + toggled: i + } = this.state, o = (null == n ? void 0 : n.description) || r(e), s = (null == n ? void 0 : n.label) || r("dialog.e2eeLabel"), l = (null == n ? void 0 : n.warning) || r("dialog.e2eeWarning"); + return C().createElement("div", { + id: "e2ee-section" + }, C().createElement("p", { + "aria-live": "polite", + className: "description", + id: "e2ee-section-description" + }, o, !a && C().createElement("br", null), !a && l), C().createElement("div", { + className: "control-row" + }, C().createElement("label", { + htmlFor: "e2ee-section-switch" + }, s), C().createElement(rM, { + disabled: !t, + id: "e2ee-section-switch", + onValueChange: this._onToggle, + value: i + }))) } - const b3 = ze((function(e) { - const t = e["features/base/config"].testing, - { - backgroundColor: n, - backgroundImageUrl: a - } = e["features/dynamic-branding"], - { - isOpen: r - } = e["features/chat"]; - return { - _backgroundAlpha: e["features/base/config"].backgroundAlpha, - _customBackgroundColor: n, - _customBackgroundImageUrl: a, - _isChatOpen: r, - _noAutoPlayVideo: null == t ? void 0 : t.noAutoPlayVideo - } - }))(g3), - y3 = "landscape"; - class v3 extends E.Component { - constructor(e) { - super(e), this._setCanvasEl = this._setCanvasEl.bind(this), this._updateCanvas = this._updateCanvas.bind(this) - } - componentDidMount() { - const { - _shouldDisplayTileView: e, - hidden: t, - videoElement: n - } = this.props; - !n || t || e || (this._updateCanvas(), this._setUpdateCanvasInterval()) - } - componentDidUpdate(e) { - const t = !e.hidden && !e._shouldDisplayTileView && e.videoElement, - n = !this.props.hidden && !this.props._shouldDisplayTileView && this.props.videoElement; - t !== n && (n ? (this._clearCanvas(), this._setUpdateCanvasInterval()) : (this._clearCanvas(), this._clearUpdateCanvasInterval())) - } - componentWillUnmount() { - this._clearUpdateCanvasInterval() - } - render() { - const { - hidden: e, - mirror: t - } = this.props, n = `large-video-background ${t?"flip-x":""} ${e?"invisible":""}`; - return x().createElement("div", { - className: n - }, x().createElement("canvas", { - id: "largeVideoBackground", - ref: this._setCanvasEl - })) - } - _clearCanvas() { - this._canvasEl.getContext("2d").clearRect(0, 0, this._canvasEl.width, this._canvasEl.height) - } - _clearUpdateCanvasInterval() { - clearInterval(this._updateCanvasInterval) - } - _setCanvasEl(e) { - this._canvasEl = e - } - _setUpdateCanvasInterval() { - this._clearUpdateCanvasInterval(), this._updateCanvasInterval = setInterval(this._updateCanvas, 200) - } - _updateCanvas() { - if (!this._canvasEl || null === this._canvasEl.offsetParent || 0 === window.innerHeight || 0 === window.innerWidth) return; - const { - videoElement: e - } = this.props, { - videoWidth: t, - videoHeight: n - } = e, { - height: a, - width: r - } = this._canvasEl, i = this._canvasEl.getContext("2d"); - if (this.props.orientationFit === y3) { - const a = r / t * n; - i.drawImage(e, 0, 0, r, a) - } else { - const r = a / n * t; - i.drawImage(e, 0, 0, r, a) - } - } + _onToggle() { + const e = !this.state.toggled; + this.setState({ + toggled: e + }), Da({ + action: `enabled.${String(e)}`, + actionSubject: "e2ee" + }), this.props.dispatch(l8(e)) } - ze((function(e) { - return { - _shouldDisplayTileView: Ok(e) - } - }))(v3); - class k3 { - show() {} - hide() {} - resize(e, t, n) {} - onHoverIn(e) {} - onHoverOut(e) {} - setStream(e, t, n) {} - showAvatar(e) {} - stayOnStage() {} - } - const _3 = "camera", - w3 = ["abort", "canplay", "canplaythrough", "emptied", "ended", "error", "loadeddata", "loadedmetadata", "loadstart", "pause", "play", "playing", "ratechange", "stalled", "suspend", "waiting"]; - - function S3(e, t, n, a, r) { - if (0 === e || 0 === t || 0 === n || 0 === a) return [0, 0]; - const i = e / t, - o = n / a; - switch (r) { - case "height": - return [a * i, a]; - case "width": - return [n, n / i]; - case "nocrop": - return S3(e, t, n, a, o < i ? "width" : "height"); - case "both": { - const r = interfaceConfig.MAXIMUM_ZOOMING_COEFFICIENT || 1 / 0; - if (o === i) return [n, a]; - let [s, l] = S3(e, t, n, a, o < i ? "height" : "width"); - const c = n * r, - u = a * r; - return s > c ? (s = c, l = s / i) : l > u && (l = u, s = l * i), [s, l] - } - default: - return [e, t] - } + } + const v8 = Ei(Ne((function(e) { + const { + enabled: t, + maxMode: n + } = e["features/e2ee"], { + e2eeLabels: a + } = e["features/base/config"]; + let r = ""; + return r = a ? void 0 : n === f8 ? "dialog.e2eeDisabledDueToMaxModeDescription" : n === m8 ? t ? "dialog.e2eeWillDisableDueToMaxModeDescription" : "dialog.e2eeDisabledDueToMaxModeDescription" : "dialog.e2eeDescription", { + _descriptionResource: r, + _e2eeLabels: a, + _enabled: n === g8 || t, + _toggled: t, + _everyoneSupportE2EE: b8(e) + } + }))(y8)); class k8 extends x.Component { + render() { + if (!this.props._showLabel) return null; + const { + _e2eeLabels: e, + t + } = this.props, n = (null == e ? void 0 : e.labelToolTip) || t("e2ee.labelToolTip"); + return C().createElement(hC, { + content: n, + position: "bottom" + }, C().createElement(uG, { + color: lG, + icon: tl + })) } + } + const _8 = Ei(Ne((function(e) { + const { + e2ee: t = {} + } = e["features/base/config"]; + return { + _e2eeLabels: t.labels, + _showLabel: e["features/e2ee"].everyoneEnabledE2EE + } + }))(k8)), w8 = ["inbound-sip-jibri@jitsi.net", "outbound-sip-jibri@jitsi.net"], S8 = "KNOCKING_PARTICIPANT_SOUND"; + + function E8(e) { + let { + action: t, + children: n, + className: a, + participant: r, + id: i, + testId: o + } = e; + const s = Ae(), + l = (0, x.useCallback)((() => s(t(r.id))), [s, r]); + return C().createElement("button", { + className: a, + "data-testid": o, + id: i, + onClick: l, + type: "button" + }, n) + } - function E3(e, t, n, a) { - return zz.isFullScreen() && (a = window.innerHeight), { - horizontalIndent: (n - e) / 2, - verticalIndent: (a - t) / 2 - } + function x8(e) { + let { + approveButtonText: t, + onApprove: n, + onReject: a, + participants: r, + testIdPrefix: i, + rejectButtonText: o + } = e; + return C().createElement("ul", { + className: "knocking-participants-container" + }, r.map((e => C().createElement("li", { + className: "knocking-participant", + "data-testid": e.id, + key: e.id + }, C().createElement(sp, { + displayName: e.name, + size: 48, + testId: `${i}.avatar`, + url: e.loadableAvatarUrl + }), C().createElement("div", { + className: "details" + }, C().createElement("span", { + "data-testid": `${i}.name` + }, e.name), e.email && !w8.includes(e.email) && C().createElement("span", { + "data-testid": `${i}.email` + }, e.email)), C().createElement(E8, { + action: n, + className: "primary", + id: "unmute-button", + participant: e, + testId: `${i}.allow` + }, t), C().createElement(E8, { + action: a, + className: "borderLess", + id: "dismiss-button", + participant: e, + testId: `${i}.reject` + }, o))))) + } + class C8 extends x.PureComponent { + constructor(e) { + super(e), this._onRespondToParticipant = this._onRespondToParticipant.bind(this) } - class x3 extends k3 { - get $video() { - return $("#largeVideo") - } - get id() { - return this.userId + _onRespondToParticipant(e, t) { + return () => { + this.props.dispatch(R0(e, t)) } - constructor(e) { - if (super(), this.stream = null, this.userId = null, this.videoType = null, this.localFlipX = !0, this.resizeContainer = e, this._backgroundOrientation = null, this._hideBackground = !0, this._isHidden = !1, this.avatarDisplayed = !1, this.$avatar = $("#dominantSpeaker"), this.$remoteConnectionMessage = $("#remoteConnectionMessage"), this.$remotePresenceMessage = $("#remotePresenceMessage"), this.$wrapper = $("#largeVideoWrapper"), this.$wrapperParent = this.$wrapper.parent(), this.avatarHeight = $("#dominantSpeakerAvatarContainer").height(), this.$video[0].onplaying = function(t) { - "function" == typeof e && e(t) - }, this._resizeListeners = new Set, this.$video[0].onresize = this._onResize.bind(this), RX(APP.store.getState())) { - const e = e => APP.store.dispatch(function(e) { - return { - type: sX, - name: e - } - }(e)); - w3.forEach((t => { - this.$video[0].addEventListener(t, e.bind(this, t)) - })) + } + } + const A8 = Ei(Ne((function(e) { + const t = I5(e), + n = O5(e); + return { + _participants: n, + _visible: t && tm(e) && Boolean(n && n.length) + } + }))(class extends C8 { + render() { + const { + _participants: e, + _visible: t, + t: n + } = this.props; + return t ? C().createElement("div", { + id: "knocking-participant-list" + }, C().createElement("div", { + className: "title" + }, n("lobby.knockingParticipantList")), C().createElement(x8, { + approveButtonText: n("lobby.allow"), + onApprove: z0, + onReject: L0, + participants: e, + rejectButtonText: n("lobby.reject"), + testIdPrefix: "lobby" + })) : null + } + })); class T8 extends x.PureComponent { + constructor(e) { + super(e), this.state = { + lobbyEnabled: e._lobbyEnabled + }, this._onToggleLobby = this._onToggleLobby.bind(this) + } + static getDerivedStateFromProps(e, t) { + return e._lobbyEnabled !== t.lobbyEnabled ? { + lobbyEnabled: e._lobbyEnabled + } : null + } + render() { + const { + _visible: e, + t + } = this.props; + return e ? C().createElement(C().Fragment, null, C().createElement("div", { + id: "lobby-section" + }, C().createElement("p", { + className: "description", + role: "banner" + }, t("lobby.enableDialogText")), C().createElement("div", { + className: "control-row" + }, C().createElement("label", { + htmlFor: "lobby-section-switch" + }, t("lobby.toggleLabel")), C().createElement(rM, { + id: "lobby-section-switch", + onValueChange: this._onToggleLobby, + value: this.state.lobbyEnabled + }))), C().createElement("div", { + className: "separator-line" + })) : null + } + _onToggleLobby() { + const e = !this.state.lobbyEnabled; + this.setState({ + lobbyEnabled: e + }), this.props.dispatch(B0(e)) + } + } + const D8 = Ei(Ne((function(e) { + const { + conference: t + } = e["features/base/conference"], { + hideLobbyButton: n + } = e["features/base/config"]; + return { + _lobbyEnabled: e["features/lobby"].lobbyEnabled, + _visible: (null == t ? void 0 : t.isLobbySupported()) && tm(e) && !n && !wm(e) + } + }))(T8)), P8 = Aw((e => ({ + actionButton: { + ...no(e.typography.bodyLongBold), + borderRadius: e.shape.borderRadius, + boxSizing: "border-box", + color: e.palette.text01, + cursor: "pointer", + display: "inline-block", + marginBottom: "16px", + padding: "7px 16px", + position: "relative", + textAlign: "center", + width: "100%", + "&.primary": { + background: e.palette.action01, + border: "1px solid #0376DA", + "&:hover": { + backgroundColor: e.palette.action01Hover } - } - addResizeListener(e) { - this._resizeListeners.add(e) - } - getStreamID() { - return this.stream ? this.stream.getId() : null - } - getStreamSize() { - const e = this.$video[0]; - return { - width: e.videoWidth, - height: e.videoHeight + }, + "&.secondary": { + background: e.palette.action02, + border: "1px solid transparent" + }, + "&.text": { + width: "auto", + fontSize: "13px", + margin: "0", + padding: "0" + }, + "&.disabled": { + background: e.palette.action01Disabled, + border: "1px solid #5E6D7A", + color: "#AFB6BC", + cursor: "initial", + ".icon": { + "& > svg": { + fill: "#AFB6BC" + } } - } - _getVideoSize(e, t) { - const { - width: n, - height: a - } = this.getStreamSize(); - return this.stream && this.isScreenSharing() ? function(e, t, n, a) { - if (0 === e || 0 === t || 0 === n || 0 === a) return [0, 0]; - const r = e / t; - let i = Math.max(e, n), - o = Math.max(t, a); - return interfaceConfig.VERTICAL_FILMSTRIP ? n -= D2() : a -= P2(), i / r >= a && (o = a, i = o * r), o * r >= n && (i = n, o = i / r), [i, o] - }(n, a, e, t) : S3(n, a, e, t, interfaceConfig.VIDEO_LAYOUT_FIT) - } - getVideoPosition(e, t, n, a) { - let r = n; - return this.stream && this.isScreenSharing() ? (interfaceConfig.VERTICAL_FILMSTRIP && (r -= D2()), E3(e, t, r, a)) : E3(e, t, r, a) - } - positionRemoteStatusMessages() { - this._positionParticipantStatus(this.$remoteConnectionMessage), this._positionParticipantStatus(this.$remotePresenceMessage) - } - _positionParticipantStatus(e) { - if (this.avatarDisplayed) { - const t = $("#dominantSpeakerAvatarContainer"); - e.css("top", t.offset().top + t.height() + 10) - } else { - const t = e.height(), - n = e.parent().height(); - e.css("top", n / 2 - t / 2) - } - } - resize(e, t, n = !1) { - if (0 === this.$video.length) return; - if (Dk(APP.store.getState()) === Ak) return; - this.positionRemoteStatusMessages(); - const [a, r] = this._getVideoSize(e, t); - if (0 === a || 0 === r) return; - e > a || t > r ? (this._backgroundOrientation = e > a ? y3 : "portrait", this._hideBackground = !1) : this._hideBackground = !0, this._updateBackground(); - const { - horizontalIndent: i, - verticalIndent: o - } = this.getVideoPosition(a, r, e, t); - this.$wrapper.animate({ - width: a, - height: r, - top: o, - bottom: o, - left: i, - right: i - }, { - queue: !1, - duration: n ? 500 : 0 - }) - } - removeResizeListener(e) { - this._resizeListeners.delete(e) - } - setStream(e, t, n) { - if (this.userId = e, this.stream === t) return void(this.videoType !== n && (this.videoType = n, this.resizeContainer())); - if (this.stream && this.stream.detach(this.$video[0]), this.stream = t, this.videoType = n, !t) return; - t.attach(this.$video[0]); - const a = t.isLocal() && this.localFlipX && !this.isScreenSharing(); - this.$video.css({ - transform: a ? "scaleX(-1)" : "none" - }), this._updateBackground() - } - setLocalFlipX(e) { - this.localFlipX = e, this.$video && this.stream && this.stream.isLocal() && (this.$video.css({ - transform: this.localFlipX ? "scaleX(-1)" : "none" - }), this._updateBackground()) - } - isScreenSharing() { - return "desktop" === this.videoType - } - showAvatar(e) { - this.$avatar.css("visibility", e ? "visible" : "hidden"), this.avatarDisplayed = e, APP.API.notifyLargeVideoVisibilityChanged(e) - } - show() { - return new Promise((e => { - this.$wrapperParent.css("visibility", "visible").fadeTo(300, 1, (() => { - this._isHidden = !1, this._updateBackground(), e() - })) - })) - } - hide() { - return this.showAvatar(!1), new Promise((e => { - this.$wrapperParent.fadeTo(300, 0, (() => { - this.$wrapperParent.css("visibility", "hidden"), this._isHidden = !0, this._updateBackground(), e() - })) - })) - } - stayOnStage() { - return !1 - } - _onResize() { - this._resizeListeners.forEach((e => e())) - } - _updateBackground() { - interfaceConfig.DISABLE_VIDEO_BACKGROUND || ft.isFirefox() || ft.isWebKitBased() || Oe().render(x().createElement(v3, { - hidden: this._hideBackground || this._isHidden, - mirror: this.stream && this.stream.isLocal() && this.localFlipX, - orientationFit: this._backgroundOrientation, - videoElement: this.$video && this.$video[0], - videoTrack: this.stream - }), document.getElementById("largeVideoBackgroundContainer")) + }, + [e.breakpoints.down("400")]: { + fontSize: 16, + marginBottom: 8, + padding: "11px 16px" + } + }, + options: { + borderRadius: e.shape.borderRadius / 2, + alignItems: "center", + display: "flex", + height: "100%", + justifyContent: "center", + position: "absolute", + right: 0, + top: 0, + width: 36, + "&:hover": { + backgroundColor: "#0262B6" + }, + "& svg": { + pointerEvents: "none" } } - const C3 = We().getLogger("modules/UI/videolayout/LargeVideoManager.js"), - A3 = "desktop"; - class j3 { - static isVideoContainer(e) { - return e === _3 || e === A3 - } - constructor() { - this.containers = {}, this.state = _3, this.videoContainer = new x3((() => this.resizeContainer(_3))), this.addContainer(_3, this.videoContainer), this.addContainer(A3, this.videoContainer), this.preferredWidth = void 0, this.preferredHeight = void 0, this.width = 0, this.height = 0, this._videoAspectRatio = 0, this.$container = $("#largeVideoContainer"), this.$container.css({ - display: "inline-block" - }), this.$container.hover((e => this.onHoverIn(e)), (e => this.onHoverOut(e))), this._onVideoResolutionUpdate = this._onVideoResolutionUpdate.bind(this), this.videoContainer.addResizeListener(this._onVideoResolutionUpdate), this._dominantSpeakerAvatarContainer = document.getElementById("dominantSpeakerAvatarContainer") - } - destroy() { - this.videoContainer.removeResizeListener(this._onVideoResolutionUpdate), this.removePresenceLabel(), Oe().unmountComponentAtNode(this._dominantSpeakerAvatarContainer), this.$container.css({ - display: "none" - }) - } - onHoverIn(e) { - this.state && this.getCurrentContainer().onHoverIn(e) - } - onHoverOut(e) { - this.state && this.getCurrentContainer().onHoverOut(e) - } - get id() { - const e = this.getCurrentContainer(); - return this.updateInProcess && this.newStreamData && this.newStreamData.id !== e.id ? this.newStreamData.id : e.id - } - scheduleLargeVideoUpdate() { - if (this.updateInProcess || !this.newStreamData) return; - this.updateInProcess = !0; - const e = this.getCurrentContainer(); - (this.newStreamData.id !== e.id ? e.hide() : Promise.resolve()).then((() => { - const { - id: e, - stream: t, - videoType: n, - resolve: a - } = this.newStreamData, r = j3.isVideoContainer(n); - this.newStreamData = null, C3.info(`hover in ${e}`), this.state = n; - const i = this.getCurrentContainer(); - i.setStream(e, t, n), this.updateAvatar(); - const o = !t || t.isMuted(), - s = APP.store.getState(), - l = Fh(s, e), - c = null == l ? void 0 : l.connectionStatus, - u = !o && (APP.conference.isLocalId(e) || c === St.ACTIVE), - d = APP.conference.isAudioOnly(), - p = r && (d && n !== ao || !u); - let h; - if (p) { - if (this.showWatermark(!0), h = i.hide(), (!Ok(s) || (null == l ? void 0 : l.pinned)) && l && !l.local && !l.isFakeParticipant) { - const t = Qo(s["features/base/tracks"], to, e); - "desktop" === (null == t ? void 0 : t.videoType) && Ma(cn({ - source: "large-video", - connectionStatus: c, - isVideoMuted: o, - isAudioOnly: d, - isVideoContainer: r, - videoType: n - })) - } - } else h = i.show(); - i.showAvatar(p), p && this.updateLargeVideoAudioLevel(0); - const m = c === St.INACTIVE ? "connection.LOW_BANDWIDTH" : null, - f = APP.conference.isAudioOnly(); - return this.updateParticipantConnStatusIndication(e, !f && m), this.updatePresenceLabel(e), this.videoContainer.positionRemoteStatusMessages(), h.then(a), h - })).then((() => { - this.updateInProcess = !1, this.scheduleLargeVideoUpdate() + })))((function(e) { + let { + children: t, + classes: n, + className: a = "", + disabled: r, + hasOptions: i, + OptionsIcon: o = yo, + testId: s, + type: l = "primary", + onClick: c, + onOptionsClick: u, + tabIndex: d, + role: p, + ariaPressed: h, + ariaLabel: m, + ariaDropDownLabel: f + } = e; + const g = (0, x.useCallback)((e => { + !c || r || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), c(e)) + }), [c, r]), + b = (0, x.useCallback)((e => { + !u || r || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), e.stopPropagation(), u(e)) + }), [u, r]), + y = iV(n.actionButton, a && a, l, r && "disabled"); + return C().createElement("div", { + "aria-disabled": r, + "aria-label": m, + className: y, + "data-testid": s || void 0, + onClick: r ? void 0 : c, + onKeyPress: g, + role: "button", + tabIndex: 0 + }, t, i && C().createElement("div", { + "aria-disabled": r, + "aria-haspopup": "true", + "aria-label": f, + "aria-pressed": h, + className: n.options, + "data-testid": "prejoin.joinOptions", + onClick: r ? void 0 : u, + onKeyPress: b, + role: p, + tabIndex: d + }, C().createElement(lo, { + className: "icon", + size: 14, + src: o + }))) + })); class j8 extends x.PureComponent { + constructor(e) { + super(e), this.state = { + focused: !1, + value: e.value || "" + }, this._onBlur = this._onBlur.bind(this), this._onChange = this._onChange.bind(this), this._onFocus = this._onFocus.bind(this), this._onKeyDown = this._onKeyDown.bind(this) + } + static getDerivedStateFromProps(e, t) { + const { + value: n + } = e; + return t.value !== n ? { + ...t, + value: n + } : null + } + render() { + return C().createElement("input", { + autoComplete: this.props.autoComplete, + autoFocus: this.props.autoFocus, + className: `field ${this.state.focused?"focused":""} ${this.props.className||""}`, + "data-testid": this.props.testId ? this.props.testId : void 0, + id: this.props.id, + onBlur: this._onBlur, + onChange: this._onChange, + onFocus: this._onFocus, + onKeyDown: this._onKeyDown, + placeholder: this.props.placeHolder, + readOnly: this.props.readOnly, + type: this.props.type, + value: this.state.value + }) + } + _onBlur() { + this.setState({ + focused: !1 + }) + } + _onChange(e) { + const t = mM(e); + this.setState({ + value: t + }); + const { + onChange: n + } = this.props; + n && n(t) + } + _onFocus() { + this.setState({ + focused: !0 + }) + } + _onKeyDown(e) { + const { + onSubmit: t + } = this.props; + t && "Enter" === e.key && t() + } + } + const M8 = { + warning: { + src: function(e) { + return C().createElement("svg", ll({}, e, { + viewBox: "0 0 18 16", + fill: "none" + }), cl) + }, + className: "device-icon--warning" + }, + ok: { + src: function(e) { + return C().createElement("svg", ss({}, e, { + viewBox: "0 0 18 18", + fill: "none" + }), ls) + }, + className: "device-icon--ok" + } + }, I8 = Ei(Ne((function(e) { + return { + deviceStatusText: pH(e), + deviceStatusType: hH(e) + } + }))((function(e) { + let { + deviceStatusType: t, + deviceStatusText: n, + t: a + } = e; + const { + src: r, + className: i + } = M8[t], o = "warning" === t, s = "device-status " + (o ? "device-status-error" : ""); + return C().createElement("div", { + className: s, + role: "alert", + tabIndex: -1 + }, C().createElement(lo, { + className: `device-icon ${i}`, + size: 16, + src: r + }), C().createElement("span", { + role: "heading" + }, a(o ? "prejoin.errorNoPermissions" : n))) + }))), O8 = "good", N8 = "nonOptimal", R8 = "none", z8 = "poor", L8 = [.33, .05], F8 = [.33, .1, .05], q8 = [8, 20], B8 = [60, 750]; + + function U8(e, t) { + let n, a = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2]; + n = a ? function(e) { + return t > e + } : function(e) { + return t < e + }; + const r = (0, k.findIndex)(e, n); + return -1 === r ? e.length : r + } + const H8 = { + [z8]: { + connectionClass: "con-status--poor", + icon: function(e) { + return C().createElement("svg", Od({}, e, { + viewBox: "0 0 16 12", + fill: "none" + }), Nd, Rd, zd) + }, + connectionText: "prejoin.connection.poor" + }, + [N8]: { + connectionClass: "con-status--non-optimal", + icon: function(e) { + return C().createElement("svg", Ld({}, e, { + viewBox: "0 0 16 12", + fill: "none" + }), Fd, qd, Bd) + }, + connectionText: "prejoin.connection.nonOptimal" + }, + [O8]: { + connectionClass: "con-status--good", + icon: function(e) { + return C().createElement("svg", Ud({}, e, { + viewBox: "0 0 16 12", + fill: "none" + }), Hd, Vd) + }, + connectionText: "prejoin.connection.good" + } + }, V8 = Ei(Ne((function(e) { + const { + connectionDetails: t, + connectionType: n + } = function(e) { + const { + precallTestResults: t + } = e["features/prejoin"]; + return t ? t.mediaConnectivity ? function(e) { + let { + fractionalLoss: t, + throughput: n + } = e; + const a = U8(L8, t), + r = U8(F8, t), + i = U8(q8, n, !1), + o = U8(B8, n, !1); + let s = R8; + const l = []; + return 0 === i || 0 === a ? (s = z8, l.push("prejoin.connectionDetails.veryPoorConnection")) : 2 === i && 2 === o && 2 === a && 3 === r ? (s = O8, l.push("prejoin.connectionDetails.goodQuality")) : (s = N8, 1 === i ? l.push("prejoin.connectionDetails.audioLowNoVideo") : (1 === a ? l.push("prejoin.connectionDetails.audioClipping") : l.push("prejoin.connectionDetails.audioHighQuality"), 0 === o || 0 === r ? l.push("prejoin.connectionDetails.noVideo") : 1 === o ? l.push("prejoin.connectionDetails.videoLowQuality") : 1 === r ? l.push("prejoin.connectionDetails.videoFreezing") : 2 === r ? l.push("prejoin.connectionDetails.videoTearing") : l.push("prejoin.connectionDetails.videoHighQuality")), l.push("prejoin.connectionDetails.undetectable")), { + connectionType: s, + connectionDetails: l + } + }(t) : { + connectionType: z8, + connectionDetails: ["prejoin.connectionDetails.noMediaConnectivity"] + } : { + connectionType: R8, + connectionDetails: [] + } + }(e); + return { + connectionDetails: t, + connectionType: n + } + }))((function(e) { + let { + connectionDetails: t, + t: n, + connectionType: a + } = e; + if (a === R8) return null; + const { + connectionClass: r, + icon: i, + connectionText: o + } = H8[a], [s, l] = (0, x.useState)(!1), c = s ? "con-status-arrow con-status-arrow--up" : "con-status-arrow", u = t.map(n).join(" "), d = s ? "con-status-details-visible" : "con-status-details-hidden", p = (0, x.useCallback)((e => { + e.preventDefault(), l(!s) + }), [s, l]), h = (0, x.useCallback)((e => { + !l || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), l(!s)) + }), [s, l]); + return C().createElement("div", { + className: "con-status" + }, C().createElement("div", { + "aria-level": 1, + className: "con-status-header", + role: "heading" + }, C().createElement("div", { + className: `con-status-circle ${r}` + }, C().createElement(lo, { + size: 16, + src: i + })), C().createElement("span", { + "aria-hidden": !s, + className: "con-status-text", + id: "connection-status-description" + }, n(o)), C().createElement(lo, { + ariaDescribedBy: "connection-status-description", + ariaPressed: s, + className: c, + onClick: p, + onKeyPress: h, + role: "button", + size: 24, + src: _o, + tabIndex: 0 + })), C().createElement("div", { + "aria-level": "2", + className: `con-status-details ${d}`, + role: "heading" + }, u)) + }))), W8 = Ne((function(e, t) { + const n = da(e), + { + id: a + } = Uh(e); + return { + _participantId: a, + flipVideo: e["features/base/settings"].localFlipX, + name: n, + videoMuted: t.videoTrack ? t.videoMuted : e["features/base/media"].video.muted, + videoTrack: t.videoTrack || (nh(e["features/base/tracks"]) || {}).jitsiTrack + } + }))((function(e) { + const { + _participantId: t, + flipVideo: n, + name: a, + videoMuted: r, + videoTrack: i + } = e, o = n ? "flipVideoX" : ""; + return C().createElement("div", { + id: "preview" + }, !r && i ? C().createElement(Af, { + className: o, + videoTrack: { + jitsiTrack: i + } + }) : C().createElement(sp, { + className: "premeeting-screen-avatar", + displayName: a, + participantId: t, + size: 200 + })) + })); class Y8 extends x.PureComponent { + render() { + const { + _buttons: e, + _premeetingBackground: t, + children: n, + className: a, + showDeviceStatus: r, + skipPrejoinButton: i, + title: o, + videoMuted: s, + videoTrack: l + } = this.props, c = `premeeting-screen ${a||""}`, u = t ? { + background: t, + backgroundPosition: "center", + backgroundSize: "cover" + } : {}; + return C().createElement("div", { + className: c + }, C().createElement("div", { + style: u + }, C().createElement("div", { + className: "content" + }, C().createElement(V8, null), C().createElement("div", { + className: "content-controls" + }, C().createElement("h1", { + className: "title" + }, o), n, e.length && C().createElement(g9, { + toolbarButtons: e + }), i, r && C().createElement(I8, null)))), C().createElement(W8, { + videoMuted: s, + videoTrack: l + })) + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(Y8, "defaultProps", { + showCopyUrlButton: !0, + showToolbox: !0 + }); + const G8 = Ne((function(e, t) { + const n = e["features/base/config"].hiddenPremeetingButtons || [], + a = t.thirdParty ? Ln : zn, + { + premeetingBackground: r + } = e["features/dynamic-branding"]; + return { + _buttons: a.filter((e => !n.includes(e))), + _premeetingBackground: r + } + }))(Y8); class K8 extends x.PureComponent { + constructor(e) { + super(e), this.state = { + displayName: e._participantName || "", + email: e._participantEmail || "", + password: "", + passwordJoinFailed: !1, + screenState: e._participantName ? 3 : 1 + }, this._onAskToJoin = this._onAskToJoin.bind(this), this._onCancel = this._onCancel.bind(this), this._onChangeDisplayName = this._onChangeDisplayName.bind(this), this._onChangeEmail = this._onChangeEmail.bind(this), this._onChangePassword = this._onChangePassword.bind(this), this._onEnableEdit = this._onEnableEdit.bind(this), this._onJoinWithPassword = this._onJoinWithPassword.bind(this), this._onSwitchToKnockMode = this._onSwitchToKnockMode.bind(this), this._onSwitchToPasswordMode = this._onSwitchToPasswordMode.bind(this) + } + static getDerivedStateFromProps(e, t) { + return e._passwordJoinFailed && !t.passwordJoinFailed ? { + password: "", + passwordJoinFailed: !0 + } : null + } + _getScreenTitleKey() { + const { + screenState: e + } = this.state, t = 2 === e; + return !t && this.props._knocking ? "lobby.joiningTitle" : t ? "lobby.enterPasswordTitle" : "lobby.joinTitle" + } + _onAskToJoin() { + return this.setState({ + password: "" + }), this.props.dispatch(q0()), !1 + } + _onCancel() { + return this.props.dispatch((async e => { + APP.API.notifyReadyToClose(), e(sB()) + })), !0 + } + _onChangeDisplayName(e) { + const t = mM(e); + this.setState({ + displayName: t + }, (() => { + this.props.dispatch(hn({ + displayName: t })) - } - updateParticipantConnStatusIndication(e, t) { - if (t) { - const n = APP.conference.getParticipantDisplayName(e); - this._setRemoteConnectionMessage(t, { - displayName: n - }), this.showRemoteConnectionMessage(j3.isVideoContainer(this.state)) - } else this.showRemoteConnectionMessage(!1) - } - updateLargeVideo(e, t, n) { - return this.newStreamData && this.newStreamData.reject(), this.newStreamData = DL(), this.newStreamData.id = e, this.newStreamData.stream = t, this.newStreamData.videoType = n, this.scheduleLargeVideoUpdate(), this.newStreamData.promise - } - updateContainerSize(e, t) { - "number" == typeof e && (this.preferredWidth = e), "number" == typeof t && (this.preferredHeight = t); - let n = this.preferredWidth || window.innerWidth; - const a = APP.store.getState(), - { - isOpen: r - } = a["features/chat"]; - jm(a) && (n -= cX.participantsPaneWidth), r && window.innerWidth > 580 && (n -= 315), this.width = n, this.height = this.preferredHeight || window.innerHeight - } - resizeContainer(e, t = !1) { - this.getContainer(e).resize(this.width, this.height, t) - } - resize(e) { - Object.keys(this.containers).forEach((t => this.resizeContainer(t, e))) - } - updateAvatar() { - Oe().render(x().createElement(N, { - store: APP.store - }, x().createElement(ZG, { - id: "dominantSpeakerAvatar", - participantId: this.id, - size: 200 - })), this._dominantSpeakerAvatarContainer) - } - updateLargeVideoAudioLevel(e) { - uX.updateLargeVideoAudioLevel("dominantSpeaker", e) - } - updatePresenceLabel(e) { - if ($("#remoteConnectionMessage").is(":visible")) return void this.removePresenceLabel(); - const t = $("#remotePresenceMessage"); - t.length && Oe().render(x().createElement(N, { - store: APP.store - }, x().createElement(fr, { - i18n: Ni - }, x().createElement(SK, { - participantID: e, - className: "presence-label" - }))), t.get(0)) - } - removePresenceLabel() { - const e = $("#remotePresenceMessage"); - e.length && Oe().unmountComponentAtNode(e.get(0)) - } - showWatermark(e) { - $(".watermark").css("visibility", e ? "visible" : "hidden") - } - showRemoteConnectionMessage(e) { - if ("boolean" != typeof e) { - const t = Fh(APP.store.getState(), this.id), - n = null == t ? void 0 : t.connectionStatus; - e = !APP.conference.isLocalId(this.id) && (n === St.INTERRUPTED || n === St.INACTIVE) - } - e ? $("#remoteConnectionMessage").css({ - display: "block" - }) : $("#remoteConnectionMessage").hide() - } - _setRemoteConnectionMessage(e, t) { - e && ($("#remoteConnectionMessage").attr("data-i18n", e).attr("data-i18n-options", JSON.stringify(t)), APP.translation.translateElement($("#remoteConnectionMessage"), t)) - } - addContainer(e, t) { - if (this.containers[e]) throw new Error(`container of type ${e} already exist`); - this.containers[e] = t, this.resizeContainer(e) - } - getContainer(e) { - const t = this.containers[e]; - if (!t) throw new Error(`container of type ${e} doesn't exist`); - return t - } - getCurrentContainer() { - return this.getContainer(this.state) - } - getCurrentContainerType() { - return this.state - } - removeContainer(e) { - if (!this.containers[e]) throw new Error(`container of type ${e} doesn't exist`); - delete this.containers[e] - } - showContainer(e) { - if (this.state === e) return Promise.resolve(); - const t = this.containers[this.state]; - return j3.isVideoContainer(this.state) && (this.showWatermark(!1), this.showRemoteConnectionMessage(!1)), t.hide(), this.state = e, this.getContainer(e).show().then((() => { - j3.isVideoContainer(e) && (this.showWatermark(!0), this.showRemoteConnectionMessage()) + })) + } + _onChangeEmail(e) { + const t = mM(e); + this.setState({ + email: t + }, (() => { + this.props.dispatch(hn({ + email: t })) - } - onLocalFlipXChange(e) { - this.videoContainer.setLocalFlipX(e) - } - _onVideoResolutionUpdate() { - const { - height: e, - width: t - } = this.videoContainer.getStreamSize(), { - resolution: n - } = APP.store.getState()["features/large-video"]; - e !== n && APP.store.dispatch(function(e) { - return { - type: oX, - resolution: e - } - }(e)); - const a = 0 === e ? 0 : t / e; - this._videoAspectRatio !== a && (this._videoAspectRatio = a, this.resize()) - } + })) } - const P3 = We().getLogger("modules/UI/videolayout/VideoLayout.js"); - let D3; - const T3 = { - onLocalFlipXChanged() { - if (D3) { - const { - store: e - } = APP, { - localFlipX: t - } = e.getState()["features/base/settings"]; - D3.onLocalFlipXChange(t) - } - }, - reset() { - this._resetLargeVideo() - }, - initLargeVideo() { - this._resetLargeVideo(), D3 = new j3; - const { - store: e - } = APP, { - localFlipX: t - } = e.getState()["features/base/settings"]; - "boolean" == typeof t && D3.onLocalFlipXChange(t), D3.updateContainerSize() - }, - setAudioLevel(e, t) { - D3 && e === D3.id && D3.updateLargeVideoAudioLevel(t) - }, - updateVideoMutedForNoTracks(e) { - const t = APP.conference.getParticipantById(e); - t && !t.getTracksByMediaType("video").length && T3._updateLargeVideoIfDisplayed(e, !0) - }, - getRemoteVideoType(e) { - const t = APP.store.getState(), - n = Fh(t, e); - if (null == n ? void 0 : n.isFakeParticipant) return no; - const a = Qo(t["features/base/tracks"], to, e); - return null == a ? void 0 : a.videoType - }, - getPinnedId() { - const { - id: e - } = Yh(APP.store.getState()) || {}; - return e || null - }, - onParticipantConnectionStatusChanged(e) { - APP.conference.isLocalId(e) || this._updateLargeVideoIfDisplayed(e, !0) - }, - onLastNEndpointsChanged(e, t) { - e && e.forEach(this._updateLargeVideoIfDisplayed, this), t && t.forEach(this._updateLargeVideoIfDisplayed, this) - }, - resizeVideoArea() { - D3 && (D3.updateContainerSize(), D3.resize(!1)) - }, - changeUserAvatar(e, t) { - this.isCurrentlyOnLarge(e) && D3.updateAvatar(t) - }, - isLargeVideoVisible() { - return this.isLargeContainerTypeVisible(_3) - }, - getCurrentlyOnLargeContainer: () => D3.getCurrentContainer(), - isCurrentlyOnLarge: e => D3 && D3.id === e, - updateLargeVideo(e, t) { - if (!D3) return; - const n = D3.getCurrentContainer(), - a = D3.getCurrentContainerType(), - r = this.isCurrentlyOnLarge(e), - i = Qo(APP.store.getState()["features/base/tracks"], to, e), - o = null == i ? void 0 : i.jitsiTrack; - if (r && !t && j3.isVideoContainer(a) && o && n.getStreamID() !== ((null == o ? void 0 : o.getId()) || null) && (P3.debug("Enforcing large video update for stream change"), t = !0), !r || t) { - const t = this.getRemoteVideoType(e); - D3.updateLargeVideo(e, o, t || no).catch((() => {})) - } - }, - addLargeVideoContainer(e, t) { - D3 && D3.addContainer(e, t) - }, - removeLargeVideoContainer(e) { - D3 && D3.removeContainer(e) - }, - showLargeVideoContainer(e, t) { - if (!D3) return Promise.reject(); - if (this.isLargeContainerTypeVisible(e) === t) return Promise.resolve(); - let n = e; - if (!t) { - const e = this.getPinnedId(); - n = e ? this.getRemoteVideoType(e) : _3 - } - return D3.showContainer(n) - }, - isLargeContainerTypeVisible: e => D3 && D3.state === e, - getLargeVideoID: () => D3 && D3.id, - getLargeVideo: () => D3, - getLargeVideoWrapper() { - return this.getCurrentlyOnLargeContainer().$wrapper - }, - refreshLayout() { - T3.resizeVideoArea() - }, - _resetLargeVideo() { - D3 && D3.destroy(), D3 = null - }, - _updateLargeVideoIfDisplayed(e, t = !1) { - this.isCurrentlyOnLarge(e) && this.updateLargeVideo(e, t) - }, - onResize() { - T3.resizeVideoArea() + _onChangePassword(e) { + this.setState({ + password: mM(e) + }) + } + _onEnableEdit() { + this.setState({ + screenState: 1 + }) + } + _onJoinWithPassword() { + var e; + this.setState({ + passwordJoinFailed: !1 + }), this.props.dispatch((e = this.state.password, async (t, n) => { + const a = vF(n); + t(xq(a, a.join, e)) + })) + } + _onSwitchToKnockMode() { + this.setState({ + password: "", + screenState: this.state.displayName ? 3 : 1 + }), this.props.dispatch(F0(!1)), this.props.dispatch(fq(this.props._membersOnlyConference)) + } + _onSwitchToPasswordMode() { + this.setState({ + screenState: 2 + }) + } + _renderContent() { + const { + _knocking: e + } = this.props, { + screenState: t + } = this.state; + return 2 !== t && e ? this._renderJoining() : C().createElement(C().Fragment, null, 3 === t && this._renderParticipantInfo(), 1 === t && this._renderParticipantForm(), 2 === t && this._renderPasswordForm(), (3 === t || 1 === t) && this._renderStandardButtons(), 2 === t && this._renderPasswordJoinButtons()) + } + } + const $8 = Ei(Ne((function(e) { + const t = Uh(e), + n = null == t ? void 0 : t.id, + a = qf(e, Ba, !0), + { + disableInviteFunctions: r + } = e["features/base/config"], + { + knocking: i, + passwordJoinFailed: o + } = e["features/lobby"], + { + iAmSipGateway: s + } = e["features/base/config"], + l = a || !r, + c = dH(e), + { + membersOnly: u + } = e["features/base/conference"]; + return { + _deviceStatusVisible: c, + _knocking: i, + _meetingName: gF(e), + _membersOnlyConference: u, + _participantEmail: null == t ? void 0 : t.email, + _participantId: n, + _participantName: null == t ? void 0 : t.name, + _passwordJoinFailed: o, + _renderPassword: !s, + showCopyUrlButton: l + } + }))(class extends K8 { + render() { + const { + _deviceStatusVisible: e, + showCopyUrlButton: t, + t: n + } = this.props; + return C().createElement(G8, { + className: "lobby-screen", + showCopyUrlButton: t, + showDeviceStatus: e, + title: n(this._getScreenTitleKey()) + }, this._renderContent()) + } + _renderJoining() { + return C().createElement("div", { + className: "lobby-screen-content" + }, C().createElement("div", { + className: "spinner" + }, C().createElement(Ay, { + size: "large" + })), C().createElement("span", { + className: "joining-message" + }, this.props.t("lobby.joiningMessage")), this._renderStandardButtons()) + } + _renderParticipantForm() { + return this._renderParticipantInfo() + } + _renderParticipantInfo() { + const { + displayName: e + } = this.state, { + t + } = this.props; + return C().createElement(j8, { + onChange: this._onChangeDisplayName, + placeHolder: t("lobby.nameField"), + testId: "lobby.nameField", + value: e + }) + } + _renderPasswordForm() { + const { + _passwordJoinFailed: e, + t + } = this.props; + return C().createElement(C().Fragment, null, C().createElement(j8, { + className: e ? "error" : "", + onChange: this._onChangePassword, + placeHolder: t("lobby.passwordField"), + testId: "lobby.password", + type: "password", + value: this.state.password + }), e && C().createElement("div", { + className: "prejoin-error", + "data-testid": "lobby.errorMessage" + }, t("lobby.invalidPassword"))) + } + _renderPasswordJoinButtons() { + const { + t: e + } = this.props; + return C().createElement(C().Fragment, null, C().createElement(P8, { + onClick: this._onJoinWithPassword, + testId: "lobby.passwordJoinButton", + type: "primary" + }, e("prejoin.joinMeeting")), C().createElement(P8, { + onClick: this._onSwitchToKnockMode, + testId: "lobby.backToKnockModeButton", + type: "secondary" + }, e("lobby.backToKnockModeButton"))) + } + _renderStandardButtons() { + const { + _knocking: e, + _renderPassword: t, + t: n + } = this.props; + return C().createElement(C().Fragment, null, e || C().createElement(P8, { + disabled: !this.state.displayName, + onClick: this._onAskToJoin, + testId: "lobby.knockButton", + type: "primary" + }, n("lobby.knockButton")), t && C().createElement(P8, { + onClick: this._onSwitchToPasswordMode, + testId: "lobby.enterPasswordButton", + type: "secondary" + }, n("lobby.enterPasswordButton"))) + } + })); class J8 extends x.Component { + constructor(e) { + super(e), + function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(this, "state", { + password: "" + }), this._onPasswordChanged = this._onPasswordChanged.bind(this), this._onCancel = this._onCancel.bind(this), this._onSubmit = this._onSubmit.bind(this) + } + render() { + return C().createElement(yL, { + disableBlanketClickDismiss: !0, + isModal: !1, + onCancel: this._onCancel, + onSubmit: this._onSubmit, + titleKey: "dialog.passwordRequired", + width: "small" + }, this._renderBody()) + } + _renderBody() { + return C().createElement("div", null, C().createElement(xB, { + autoFocus: !0, + compact: !0, + label: this.props.t("dialog.passwordLabel"), + name: "lockKey", + onChange: this._onPasswordChanged, + shouldFitContainer: !0, + type: "password", + value: this.state.password + })) + } + _onPasswordChanged(e) { + let { + target: { + value: t } - }, - O3 = T3, - M3 = "ADD_MESSAGE", - I3 = "CLEAR_MESSAGES", - N3 = "CLOSE_CHAT", - z3 = "OPEN_CHAT", - R3 = "SEND_MESSAGE", - L3 = "SET_PRIVATE_MESSAGE_RECIPIENT", - F3 = "SET_IS_POLL_TAB_FOCUSED"; - - function q3(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + } = e; + this.setState({ + password: t + }) } - - function B3(e) { - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - q3(e, t, n[t]) - })) + _onCancel() { + return this.props.dispatch(function(e) { + return (t, n) => { + if ("undefined" != typeof APP) return APP.API.notifyReadyToClose(), void t(sB()); + const a = n(); + e === a["features/base/conference"].passwordRequired && e[lF] === a["features/base/connection"].locationURL && (t(uq(e)), t(tB(void 0))) } - return e - }({ - type: M3 - }, e) + }(this.props.conference)), !0 } - - function U3() { + _onSubmit() { + const { + conference: e + } = this.props; + return this.props.dispatch(xq(e, e.join, this.state.password)), this.setState({ + password: void 0 + }), !0 + } + } + const Z8 = Ei(Ne()(J8)), Q8 = "LOCKED_LOCALLY", X8 = "LOCKED_REMOTELY"; class e7 extends x.Component { + static getDerivedStateFromProps(e, t) { return { - type: N3 + enteredPassword: e.editEnabled ? t.enteredPassword : "" } } - - function H3(e, t = !1) { - return { - type: R3, - ignorePrivacy: t, - message: e + constructor(e) { + super(e), + function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(this, "state", { + enteredPassword: "" + }), this._onEnteredPasswordChange = this._onEnteredPasswordChange.bind(this), this._onPasswordSubmit = this._onPasswordSubmit.bind(this), this._onKeyPress = this._onKeyPress.bind(this) + } + render() { + const { + t: e + } = this.props; + return C().createElement("div", { + className: "info-password" + }, C().createElement("span", { + className: "info-label" + }, e("info.password")), C().createElement("span", { + className: "spacer" + }, " "), C().createElement("span", { + className: "info-password-field info-value" + }, this._renderPasswordField())) + } + _renderPasswordField() { + if (this.props.editEnabled) { + let e, t; + return this.props.passwordNumberOfDigits && (t = this.props.t("passwordDigitsOnly", { + number: this.props.passwordNumberOfDigits + }), e = "\\d*"), C().createElement("form", { + className: "info-password-form", + onKeyPress: this._onKeyPress, + onSubmit: this._onPasswordSubmit + }, C().createElement("input", { + "aria-label": this.props.t("info.addPassword"), + autoFocus: !0, + className: "info-password-input", + maxLength: this.props.passwordNumberOfDigits, + onChange: this._onEnteredPasswordChange, + pattern: e, + placeholder: t, + spellCheck: "false", + type: "text", + value: this.state.enteredPassword + })) } + return this.props.locked === Q8 ? C().createElement("div", { + className: "info-password-local" + }, this.props.password) : this.props.locked ? C().createElement("div", { + className: "info-password-remote" + }, this.props.t("passwordSetRemotely")) : C().createElement("div", { + className: "info-password-none" + }, this.props.t("info.noPassword")) + } + _onEnteredPasswordChange(e) { + this.setState({ + enteredPassword: e.target.value + }) + } + _onPasswordSubmit(e) { + e.preventDefault(), e.stopPropagation(), this.props.onSubmit(this.state.enteredPassword) + } + _onKeyPress(e) { + "Enter" === e.key && e.stopPropagation() } + } + const t7 = Ei(e7), n7 = Ei((function(e) { + let { + canEditPassword: t, + conference: n, + locked: a, + password: r, + passwordEditEnabled: i, + passwordNumberOfDigits: o, + setPassword: s, + setPasswordEditEnabled: l, + t: c + } = e; + const u = (0, x.useRef)(null); - function V3(e) { - return { - participant: e, - type: L3 - } + function d(e) { + s(n, n.lock, e) } - function W3(e) { - return { - isPollsTabFocused: e, - type: F3 - } + function p() { + l(!i) } - function Y3(e) { - return function(t) { - t({ - participant: e, - type: z3 - }) + function h() { + if (u.current) { + const { + value: e + } = u.current.querySelector("form > input"); + e && d(e) } } - function G3() { - return (e, t) => { - e(t()["features/chat"].isOpen ? U3() : Y3()), O3.onResize() - } + function m() { + d("") } - const K3 = "RECEIVE_POLL", - $3 = "RECEIVE_ANSWER", - J3 = "REGISTER_VOTE", - Z3 = "RETRACT_VOTE", - Q3 = "RESET_NB_UNREAD_POLLS", - X3 = (e, t, n) => ({ - type: K3, - poll: t, - pollId: e, - notify: n - }), - e5 = (e, t) => ({ - type: J3, - answers: t, - pollId: e - }); - function t5() { - return { - type: Q3 - } + function f() { + Ct(r) } - const n5 = "new-poll", - a5 = "answer-poll", - r5 = (c5 = e => { - const { - checkBoxStates: t, - poll: n, - setCheckbox: a, - skipAnswer: r, - submitAnswer: i, - t: o - } = e; - return x().createElement("div", { - className: "poll-answer" - }, x().createElement("div", { - className: "poll-header" - }, x().createElement("div", { - className: "poll-question" - }, x().createElement("span", null, n.question))), x().createElement("ol", { - className: "poll-answer-list" - }, n.answers.map(((e, n) => x().createElement("li", { - className: "poll-answer-container", - key: n - }, x().createElement(GL, { - isChecked: t[n], - key: n, - label: x().createElement("span", null, e.name), - onChange: e => a(n, e.target.checked), - size: "large" - }))))), x().createElement("div", { - className: "poll-footer" - }, x().createElement("button", { - "aria-label": o("polls.answer.skip"), - className: "poll-small-secondary-button", - onClick: r - }, x().createElement("span", null, o("polls.answer.skip"))), x().createElement("button", { - "aria-label": o("polls.answer.submit"), - className: "poll-small-primary-button", - onClick: i - }, x().createElement("span", null, o("polls.answer.submit"))))) - }, e => { - const { - pollId: t - } = e, n = Pe((e => e["features/base/conference"].conference)), a = Pe((e => e["features/polls"].polls[t])), { - id: r - } = Pe(Rh), [i, o] = (0, E.useState)((() => null !== a.lastVote ? [...a.lastVote] : new Array(a.answers.length).fill(!1))), s = (0, E.useCallback)(((e, t) => { - const n = [...i]; - n[e] = t, o(n) - }), [i]), l = Ce(), c = Pe((e => Fh(e, r))), u = c.name ? c.name : "Fellow Jitster", d = (0, E.useCallback)((() => (n.sendMessage({ - type: a5, - pollId: t, - voterId: r, - voterName: u, - answers: i - }), l(e5(t, i)), !1)), [t, r, u, i, n]), p = (0, E.useCallback)((() => { - l(e5(t, null)) - }), [t]), { - t: h - } = mr(); - return x().createElement(c5, { - checkBoxStates: i, - poll: a, - setCheckbox: s, - skipAnswer: p, - submitAnswer: d, - t: h - }) - }), - i5 = (e => t => { - const { - setCreateMode: n - } = t, [a, r] = (0, E.useState)(""), [i, o] = (0, E.useState)(["", ""]), s = (0, E.useCallback)(((e, t) => { - const n = [...i]; - n[e] = t, o(n) - })), l = (0, E.useCallback)((e => { - const t = [...i]; - t.splice("number" == typeof e ? e : i.length, 0, ""), o(t) - })), c = (0, E.useCallback)(((e, t) => { - const n = [...i], - a = i[e]; - n.splice(e, 1), n.splice(t, 0, a), o(n) - })), u = (0, E.useCallback)((e => { - if (i.length <= 2) return; - const t = [...i]; - t.splice(e, 1), o(t) - })), d = Pe((e => e["features/base/conference"].conference)), p = d.myUserId(), h = Pe((e => Hh(e, p))), m = (0, E.useCallback)((e => { - e && e.preventDefault(); - const t = i.filter((e => e.trim().length > 0)); - t.length < 2 || (d.sendMessage({ - type: n5, - pollId: Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(36), - senderId: p, - senderName: h, - question: a, - answers: t - }), n(!1)) - }), [d, a, i]), f = a.trim().length <= 0 || i.filter((e => e.trim().length > 0)).length < 2, { - t: g - } = mr(); - return x().createElement(e, { - addAnswer: l, - answers: i, - isSubmitDisabled: f, - moveAnswer: c, - onSubmit: m, - question: a, - removeAnswer: u, - setAnswer: s, - setCreateMode: n, - setQuestion: r, - t: g - }) - })((e => { - const { - addAnswer: t, - answers: n, - isSubmitDisabled: a, - moveAnswer: r, - onSubmit: i, - question: o, - removeAnswer: s, - setAnswer: l, - setCreateMode: c, - setQuestion: u, - t: d - } = e, p = (0, E.useRef)([]), h = (0, E.useCallback)(((e, t) => { - null !== t && (p.current[e] = t) - }), [p]); - (0, E.useEffect)((() => { - p.current = p.current.slice(0, n.length) - }), [n]); - const [m, f] = (0, E.useState)(null); - (0, E.useEffect)((() => { - if (null === m) return; - const e = p.current[m]; - void 0 !== e && e.focus() - }), [m]); - const g = (0, E.useCallback)((e => { - if ("Enter" === e.key && e.metaKey) return e.preventDefault(), void i(); - e.ctrlKey || e.metaKey || e.altKey || e.shiftKey - })), - b = (0, E.useCallback)((e => { - g(e) || "Enter" === e.key && (f(0), e.preventDefault()) - })), - y = (0, E.useCallback)(((e, a) => { - g(a) || ("Enter" === a.key ? (t(e + 1), f(e + 1), a.preventDefault()) : "Backspace" === a.key && "" === a.target.value && n.length > 1 ? (s(e), f(e > 0 ? e - 1 : 0), a.preventDefault()) : "ArrowDown" === a.key ? (e === n.length - 1 && t(), f(e + 1), a.preventDefault()) : "ArrowUp" === a.key && (0 === e ? (t(0), f(0)) : f(e - 1), a.preventDefault())) - }), [n, t, s, f]), - [v, k] = (0, E.useState)(null), - _ = (0, E.useCallback)(((e, t) => { - 0 === t.button && (k(e), window.addEventListener("mouseup", (() => { - k((e => (f(e), null))) - }), { - once: !0 - })) - })), - w = (0, E.useCallback)((e => { - null !== v && v !== e && (r(v, e), k(e)) - })), - S = e => { - const t = e.target; - t.style.height = "1px", t.style.height = `${t.scrollHeight+2}px` - }; - return x().createElement("form", { - className: "polls-pane-content", - onSubmit: i - }, x().createElement("div", { - className: "poll-create-container poll-container" - }, x().createElement("div", { - className: "poll-create-header" - }, d("polls.create.create")), x().createElement("div", { - className: "poll-question-field" - }, x().createElement("span", { - className: "poll-create-label" - }, d("polls.create.pollQuestion")), x().createElement("textarea", { - autoFocus: !0, - className: "expandable-input", - onChange: e => u(e.target.value), - onInput: S, - onKeyDown: b, - placeholder: d("polls.create.questionPlaceholder"), - required: !0, - row: "1", - value: o - })), x().createElement("ol", { - className: "poll-answer-field-list" - }, n.map(((e, t) => x().createElement("li", { - className: "poll-answer-field" + (v === t ? " poll-dragged" : ""), - key: t, - onMouseOver: () => w(t) - }, x().createElement("span", { - className: "poll-create-label" - }, d("polls.create.pollOption", { - index: t + 1 - })), x().createElement("div", { - className: "poll-create-option-row" - }, x().createElement("textarea", { - className: "expandable-input", - onChange: e => l(t, e.target.value), - onInput: S, - onKeyDown: e => y(t, e), - placeholder: d("polls.create.answerPlaceholder", { - index: t + 1 - }), - ref: e => h(t, e), - required: !0, - row: 1, - value: e - }), x().createElement("button", { - className: "poll-drag-handle", - onMouseDown: e => _(t, e), - tabIndex: "-1", - type: "button" - }, x().createElement(qs, { - src: mu - }))), n.length > 2 && x().createElement(Fw, { - content: d("polls.create.removeOption") - }, x().createElement("button", { - className: "poll-remove-option-button", - onClick: () => s(t), - type: "button" - }, d("polls.create.removeOption"))))))), x().createElement("div", { - className: "poll-add-button" - }, x().createElement("button", { - "aria-label": "Add option", - className: "poll-secondary-button", - onClick: () => { - t(), f(n.length) - }, - type: "button" - }, x().createElement("span", null, d("polls.create.addOption"))))), x().createElement("div", { - className: "poll-footer" - }, x().createElement("button", { - "aria-label": d("polls.create.cancel"), - className: "poll-small-secondary-button", - onClick: () => c(!1), - type: "button" - }, x().createElement("span", null, d("polls.create.cancel"))), x().createElement("button", { - "aria-label": d("polls.create.send"), - className: "poll-small-primary-button", - disabled: a, - type: "submit" - }, x().createElement("span", null, d("polls.create.send"))))) - })), - o5 = (e => t => { - const { - pollId: n - } = t, a = Pe((e => e["features/polls"].polls[n])), [r, i] = (0, E.useState)(!1), o = (0, E.useCallback)((() => { - i(!r) - })), s = (0, E.useMemo)((() => { - const e = new Set; - for (const t of a.answers) - for (const [n] of t.voters) e.add(n); - const t = e.size; - return a.answers.map((e => { - const n = 0 === t ? 0 : Math.round(e.voters.size / t * 100); - let a = null; - return r && (a = [...e.voters].map((([e, t]) => ({ - id: e, - name: t - })))), { - name: e.name, - percentage: n, - voters: a, - voterCount: e.voters.size - } - })) - }), [a.answers, r]), l = Ce(), c = Pe((e => e["features/base/conference"].conference)), u = Pe((e => Rh(e).id)), d = Pe((e => Fh(e, u))), p = d ? d.name : "Fellow Jitster", h = (0, E.useCallback)((() => { - c.sendMessage({ - type: a5, - pollId: n, - voterId: u, - voterName: p, - answers: new Array(a.answers.length).fill(!1) - }), l((e => ({ - type: Z3, - pollId: e - }))(n)) - }), [n, u, p, a]), { - t: m - } = mr(); - return x().createElement(e, { - answers: s, - changeVote: h, - haveVoted: null !== a.lastVote, - question: a.question, - showDetails: r, - t: m, - toggleIsDetailed: o - }) - })((e => { - const { - answers: t, - changeVote: n, - haveVoted: a, - showDetails: r, - question: i, - t: o, - toggleIsDetailed: s - } = e; - return x().createElement("div", { - className: "poll-results" - }, x().createElement("div", { - className: "poll-header" - }, x().createElement("div", { - className: "poll-question" - }, x().createElement("strong", null, i))), x().createElement("ol", { - className: "poll-result-list" - }, t.map((({ - name: e, - percentage: t, - voters: n, - voterCount: a - }, i) => x().createElement("li", { - key: i - }, x().createElement("div", { - className: "poll-answer-header" - }, x().createElement("span", { - className: "poll-answer-vote-name" - }, e)), x().createElement("div", { - className: "poll-answer-short-results" - }, x().createElement("span", { - className: "poll-bar-container" - }, x().createElement("div", { - className: "poll-bar", - style: { - width: `${t}%` - } - })), x().createElement("div", { - className: "poll-answer-vote-count-container" - }, x().createElement("span", { - className: "poll-answer-vote-count" - }, "(", a, ") ", t, "%"))), r && n && a > 0 && x().createElement("ul", { - className: "poll-answer-voters" - }, n.map((e => x().createElement("li", { - key: e.id - }, e.name)))))))), x().createElement("div", { - className: "poll-result-links" - }, x().createElement("a", { - className: "poll-detail-link", - onClick: s - }, o(r ? "polls.results.hideDetailedResults" : "polls.results.showDetailedResults")), x().createElement("a", { - className: "poll-change-vote-link", - onClick: n - }, o(a ? "polls.results.changeVote" : "polls.results.vote")))) - })), - s5 = () => { - const { - t: e - } = mr(), t = Pe((e => e["features/polls"].polls)), n = (0, E.useRef)(null); - (0, E.useEffect)((() => { - n.current && n.current.scrollIntoView({ - behavior: "smooth" - }) - }), [t]); - const a = Object.keys(t); - return x().createElement(x().Fragment, null, 0 === a.length ? x().createElement("div", { - className: "pane-content" - }, x().createElement(qs, { - className: "empty-pane-icon", - src: Il - }), x().createElement("span", { - className: "empty-pane-message" - }, e("polls.results.empty"))) : a.map(((e, t) => x().createElement(d5, { - key: e, - pollId: e, - ref: a.length - 1 === t ? n : null - })))) - }, - l5 = (e => () => { - const [t, n] = (0, E.useState)(!1), { - t: a - } = mr(); - return x().createElement(e, { - createMode: t, - onCreate: () => { - n(!0) - }, - setCreateMode: n, - t: a - }) - })((e => { - const { - createMode: t, - onCreate: n, - setCreateMode: a, - t: r - } = e; - return t ? x().createElement(i5, { - setCreateMode: a - }) : x().createElement("div", { - className: "polls-pane-content" - }, x().createElement("div", { - className: "poll-container" - }, x().createElement(s5, null)), x().createElement("div", { - className: "poll-footer" - }, x().createElement("button", { - "aria-label": r("polls.create.create"), - className: "poll-primary-button", - onClick: n - }, x().createElement("span", null, r("polls.create.create"))))) - })); - var c5; - function u5(e) { + function g(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), p()) + } + return C().createElement("div", { + className: "security-dialog password-section" + }, C().createElement("p", { + className: "description" + }, c(t ? "security.about" : "security.aboutReadOnly")), C().createElement("div", { + className: "security-dialog password" + }, C().createElement("div", { + className: "info-dialog info-dialog-column info-dialog-password", + ref: u + }, C().createElement(t7, { + editEnabled: i, + locked: a, + onSubmit: d, + password: r, + passwordNumberOfDigits: o + })), C().createElement("div", { + className: "security-dialog password-actions" + }, t ? i ? C().createElement(C().Fragment, null, C().createElement("a", { + "aria-label": c("dialog.Cancel"), + onClick: p, + onKeyPress: g, + role: "button", + tabIndex: 0 + }, c("dialog.Cancel")), C().createElement("a", { + "aria-label": c("dialog.add"), + onClick: h, + onKeyPress: function(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), h()) + }, + role: "button", + tabIndex: 0 + }, c("dialog.add"))) : a ? C().createElement(C().Fragment, null, C().createElement("a", { + "aria-label": c("dialog.Remove"), + className: "remove-password", + onClick: m, + onKeyPress: function(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), m()) + }, + role: "button", + tabIndex: 0 + }, c("dialog.Remove")), r ? C().createElement(C().Fragment, null, C().createElement("a", { + "aria-label": c("dialog.copy"), + className: "copy-password", + onClick: f, + onKeyPress: function(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), f()) + }, + role: "button", + tabIndex: 0 + }, c("dialog.copy"))) : null) : C().createElement("a", { + "aria-label": c("info.addPassword"), + className: "add-password", + onClick: p, + onKeyPress: g, + role: "button", + tabIndex: 0 + }, c("info.addPassword")) : null))) + })), a7 = Ne((function(e) { + const { + conference: t, + e2eeSupported: n, + locked: a, + password: r + } = e["features/base/conference"], { + roomPasswordNumberOfDigits: i + } = e["features/base/config"], o = Boolean(n) && tm(e); + return { + _canEditPassword: tm(e), + _conference: t, + _dialIn: e["features/invite"], + _locked: a, + _password: r, + _passwordNumberOfDigits: i, + _showE2ee: o + } + }), { + setPassword: xq + })((function(e) { + let { + _canEditPassword: t, + _conference: n, + _locked: a, + _password: r, + _passwordNumberOfDigits: i, + _showE2ee: o, + setPassword: s + } = e; + const [l, c] = (0, x.useState)(!1); + return (0, x.useEffect)((() => { + l && r && c(!1) + }), [r]), C().createElement(yL, { + hideCancelButton: !0, + submitDisabled: !0, + titleKey: "security.securityOptions", + width: "small" + }, C().createElement("div", { + className: "security-dialog" + }, C().createElement(D8, null), C().createElement(n7, { + canEditPassword: t, + conference: n, + locked: a, + password: r, + passwordEditEnabled: l, + passwordNumberOfDigits: i, + setPassword: s, + setPasswordEditEnabled: c + }), o ? C().createElement(C().Fragment, null, C().createElement("div", { + className: "separator-line" + }), C().createElement(v8, null)) : null)) + })); + + function r7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const i7 = Ei(Ne((function(e) { + const { + conference: t + } = e["features/base/conference"], { + hideLobbyButton: n + } = e["features/base/config"], { + locked: a + } = e["features/base/conference"], { + lobbyEnabled: r + } = e["features/lobby"], i = t && t.isLobbySupported() && tm(e) && !n, o = qf(e, "security-options.enabled", !0), s = qf(e, "lobby-mode.enabled", !0) && i, l = qf(e, "meeting-password.enabled", !0); + return { + _locked: a || r, + visible: o || s || l + } + }))(class extends bC { + constructor() { + super(...arguments), r7(this, "accessibilityLabel", "toolbar.accessibilityLabel.security"), r7(this, "icon", Mu), r7(this, "label", "toolbar.security"), r7(this, "toggledIcon", Lu), r7(this, "tooltip", "toolbar.security") + } + _handleClick() { + const { + _locked: e, + dispatch: t, + handleClick: n + } = this.props; + n ? n() : (Da(ln("toggle.security", { + enable: !e + })), t((function(e) { + e(WI(a7)) + }))) + } + _isToggled() { + return this.props._locked + } + })); + + function o7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const s7 = Ei(class extends bC { + constructor() { + super(...arguments), o7(this, "accessibilityLabel", "toolbar.accessibilityLabel.callQuality"), o7(this, "label", "videoStatus.performanceSettings"), o7(this, "tooltip", "videoStatus.performanceSettings"), o7(this, "icon", js) + } + _handleClick() { const { - nbUnreadPolls: t - } = e["features/polls"]; - return t + handleClick: e + } = this.props; + e && e() } - const d5 = x().forwardRef((({ - pollId: e - }, t) => { - const n = Pe((t => ((e, t) => { - var n; - return Boolean(null === (n = e["features/polls"]) || void 0 === n ? void 0 : n.polls[t].showResults) - })(t, e))); - return x().createElement("div", { - ref: t - }, n ? x().createElement(o5, { - key: e, - pollId: e - }) : x().createElement(r5, { - pollId: e - })) - })); - class p5 extends E.Component { - constructor(e) { - super(e), this._onSendMessage = this._onSendMessage.bind(this), this._onToggleChatTab = this._onToggleChatTab.bind(this), this._onTogglePollsTab = this._onTogglePollsTab.bind(this) - } - _onSendMessage(e) { - this.props.dispatch(H3(e)) + }), l7 = "SET_LAST_N"; + + function c7(e) { + return { + type: l7, + lastN: e + } + } + const u7 = 20, d7 = { + ULTRA: 2160, + HIGH: 720, + STANDARD: 360, + LOW: 180, + NONE: 0 + }, p7 = { + low: d7.LOW, + standard: d7.STANDARD, + high: d7.HIGH + }, h7 = "SET_PREFERRED_VIDEO_QUALITY", m7 = "SET_MAX_RECEIVER_VIDEO_QUALITY", f7 = $e("features/video-quality"); + + function g7(e) { + return { + type: h7, + preferredVideoQuality: e + } + } + const b7 = "empty-list", y7 = e => ({ + [b7]: { + listStyleType: "none", + margin: 0, + padding: 0 + }, + "overflow-menu-item": { + alignItems: "center", + color: e.palette.text01, + cursor: "pointer", + display: "flex", + fontSize: 14, + fontWeight: 400, + height: 40, + lineHeight: "24px", + padding: "8px 16px", + boxSizing: "border-box", + "& > div": { + display: "flex", + alignItems: "center" + }, + "&.unclickable": { + cursor: "default" + }, + "&.disabled": { + cursor: "initial", + color: e.palette.text03, + "&:hover": { + background: "none" + }, + "& svg": { + fill: e.palette.text03 + } + }, + "@media (hover: hover) and (pointer: fine)": { + "&:hover": { + background: e.palette.action02Hover + }, + "&.unclickable:hover": { + background: "inherit" + } } - _onToggleChatTab() { - this.props.dispatch(W3(!1)) + }, + "overflow-menu-item-icon": { + marginRight: "16px", + "& i": { + display: "inline", + fontSize: 24 + }, + "@media (hover: hover) and (pointer: fine)": { + "&i:hover": { + backgroundColor: "initial" + } + }, + "& img": { + maxWidth: 24, + maxHeight: 24 + }, + "& svg": { + fill: e.palette.text01, + height: 20, + width: 20 + } + }, + "toolbox-icon": { + display: "flex", + borderRadius: 3, + flexDirection: "column", + fontSize: 24, + height: 48, + justifyContent: "center", + width: 48, + "@media (hover: hover) and (pointer: fine)": { + "&:hover": { + background: e.palette.action02Hover + } + }, + [e.breakpoints.down("320")]: { + height: 36, + width: 36 + }, + "&.toggled": { + background: e.palette.ui02 + }, + "&.disabled": { + cursor: "initial !important", + backgroundColor: `${e.palette.action02Disabled} !important`, + "& svg": { + fill: `${e.palette.text03} !important` + } + } + }, + "toolbox-button": { + color: e.palette.text01, + cursor: "pointer", + display: "inline-block", + lineHeight: "48px", + textAlign: "center" + }, + "toolbox-content-items": { + background: e.palette.ui01, + borderRadius: 6, + margin: "0 auto", + padding: 6, + textAlign: "center", + pointerEvents: "all", + boxShadow: "0px 2px 8px 4px rgba(0, 0, 0, 0.25), 0px 0px 0px 1px rgba(0, 0, 0, 0.15)", + "& > div": { + marginLeft: 8, + "&:first-child": { + marginLeft: 0 + } } - _onTogglePollsTab() { - this.props.dispatch(W3(!0)) + } + }), v7 = e => ({ + ".atlaskit-portal div[role=dialog]": { + "& > div": { + background: e.palette.ui02, + color: e.palette.text01 } } - const h5 = Li(ze(null, { - onCancel: G3 - })((function({ - onCancel: e, - className: t, - isPollsEnabled: n, - t: a - }) { - const r = (0, E.useCallback)((t => { - !e || " " !== t.key && "Enter" !== t.key || (t.preventDefault(), e()) - }), [e]); - return x().createElement("div", { - className: t || "chat-dialog-header", - role: "heading" - }, a(n ? "chat.titleWithPolls" : "chat.title"), x().createElement(qs, { - ariaLabel: a("toolbar.closeChat"), - onClick: e, - onKeyPress: r, - role: "button", - src: Ul, - tabIndex: 0 - })) - }))), - m5 = function({ - children: e, - isPollsEnabled: t - }) { - return x().createElement(IO, { - customHeader: h5, - disableEnter: !0, - disableFooter: !0, - hideCancelButton: !0, - submitDisabled: !0, - titleKey: t ? "chat.titleWithPolls" : "chat.title" - }, x().createElement("div", { - className: "chat-dialog" - }, e)) + }), k7 = BQ((e => { + const t = { + background: "transparent", + height: 6 + }, + n = { + background: e.palette.text01, + border: 0, + borderRadius: "50%", + height: 24, + width: 24 + }, + a = { + outline: `1px solid ${e.palette.action03Focus}` }; - - function f5() { - return f5 = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, f5.apply(this, arguments) - } - const g5 = E.useLayoutEffect; - var b5 = function(e, t) { - "function" != typeof e ? e.current = t : e(t) - }; - var y5 = { - "min-height": "0", - "max-height": "none", - height: "0", - visibility: "hidden", - overflow: "hidden", + return { + sliderContainer: { + cursor: "pointer", + width: "100%", + position: "relative", + textAlign: "center" + }, + knobContainer: { + display: "flex", + justifyContent: "space-between", + marginLeft: 2, + marginRight: 2, position: "absolute", - "z-index": "-1000", - top: "0", - right: "0" + width: "100%" }, - v5 = function(e) { - Object.keys(y5).forEach((function(t) { - e.style.setProperty(t, y5[t], "important") - })) + knob: { + background: e.palette.text01, + borderRadius: "50%", + display: "inline-block", + height: 6, + width: 6 }, - k5 = null, - _5 = function() {}, - w5 = ["borderBottomWidth", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "boxSizing", "fontFamily", "fontSize", "fontStyle", "fontWeight", "letterSpacing", "lineHeight", "paddingBottom", "paddingLeft", "paddingRight", "paddingTop", "tabSize", "textIndent", "textRendering", "textTransform", "width"], - S5 = !!document.documentElement.currentStyle, - E5 = function(e, t) { - var n, a = e.cacheMeasurements, - r = e.maxRows, - i = e.minRows, - o = e.onChange, - s = void 0 === o ? _5 : o, - l = e.onHeightChange, - c = void 0 === l ? _5 : l, - u = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, ["cacheMeasurements", "maxRows", "minRows", "onChange", "onHeightChange"]), - d = void 0 !== u.value, - p = (0, E.useRef)(null), - h = function(e, t) { - var n = (0, E.useRef)(); - return (0, E.useCallback)((function(a) { - e.current = a, n.current && b5(n.current, null), n.current = t, t && b5(t, a) - }), [t]) - }(p, t), - m = (0, E.useRef)(0), - f = (0, E.useRef)(), - g = function() { - var e = p.current, - t = a && f.current ? f.current : function(e) { - var t = window.getComputedStyle(e); - if (null === t) return null; - var n, a = (n = t, w5.reduce((function(e, t) { - return e[t] = n[t], e - }), {})), - r = a.boxSizing; - return "" === r ? null : (S5 && "border-box" === r && (a.width = parseFloat(a.width) + parseFloat(a.borderRightWidth) + parseFloat(a.borderLeftWidth) + parseFloat(a.paddingRight) + parseFloat(a.paddingLeft) + "px"), { - sizingStyle: a, - paddingSize: parseFloat(a.paddingBottom) + parseFloat(a.paddingTop), - borderSize: parseFloat(a.borderBottomWidth) + parseFloat(a.borderTopWidth) - }) - }(e); - if (t) { - f.current = t; - var n = function(e, t, n, a) { - void 0 === n && (n = 1), void 0 === a && (a = 1 / 0), k5 || ((k5 = document.createElement("textarea")).setAttribute("tab-index", "-1"), k5.setAttribute("aria-hidden", "true"), v5(k5)), null === k5.parentNode && document.body.appendChild(k5); - var r = e.paddingSize, - i = e.borderSize, - o = e.sizingStyle, - s = o.boxSizing; - Object.keys(o).forEach((function(e) { - var t = e; - k5.style[t] = o[t] - })), v5(k5), k5.value = t; - var l = function(e, t) { - var n = e.scrollHeight; - return "border-box" === t.sizingStyle.boxSizing ? n + t.borderSize : n - t.paddingSize - }(k5, e); - k5.value = "x"; - var c = k5.scrollHeight - r, - u = c * n; - "border-box" === s && (u = u + r + i), l = Math.max(u, l); - var d = c * a; - return "border-box" === s && (d = d + r + i), [l = Math.min(d, l), c] - }(t, e.value || e.placeholder || "x", i, r), - o = n[0], - s = n[1]; - m.current !== o && (m.current = o, e.style.setProperty("height", o + "px", "important"), c(o, { - rowHeight: s - })) - } - }; - return (0, E.useLayoutEffect)(g), n = function(e) { - var t = (0, E.useRef)(e); - return g5((function() { - t.current = e - })), t - }(g), (0, E.useEffect)((function() { - var e = function(e) { - n.current(e) - }; - return window.addEventListener("resize", e), - function() { - window.removeEventListener("resize", e) - } - }), []), (0, E.createElement)("textarea", f5({}, u, { - onChange: function(e) { - d || g(), s(e) + track: { + background: e.palette.ui02, + borderRadius: e.shape.borderRadius / 2, + height: 6 + }, + slider: { + "&.custom-slider": { + "-webkit-appearance": "none", + background: "transparent", + height: 6, + left: 0, + position: "absolute", + top: 0, + width: "100%", + "&:focus": { + outline: "none !important", + "&::-webkit-slider-runnable-track": a, + "&::ms-track": a, + "&::-moz-range-track": a }, - ref: h - })) - }; - const x5 = (0, E.forwardRef)(E5); - var C5 = n(4964), - A5 = n.n(C5), - j5 = n(1653), - P5 = n.n(j5); - const D5 = []; - - function T5(e) { + "&::-webkit-slider-runnable-track": { + "-webkit-appearance": "none", + ...t + }, + "&::-webkit-slider-thumb": { + "-webkit-appearance": "none", + position: "relative", + top: -6, + ...n + }, + "&::ms-track": { + ...t + }, + "&::-ms-thumb": { + ...n + }, + "&::-moz-range-track": { + ...t + }, + "&::-moz-range-thumb": { + ...n + } + } + } + } + })), _7 = function(e) { + let { + ariaLabel: t, + max: n, + min: a, + onChange: r, + step: i, + value: o + } = e; + const s = k7(), + l = [...Array(Math.floor((n - a) / i) + 1)]; + return C().createElement("div", { + className: s.sliderContainer + }, C().createElement("ul", { + className: iV(b7, s.knobContainer) + }, l.map(((e, t) => C().createElement("li", { + className: s.knob, + key: `knob-${t}` + })))), C().createElement("div", { + className: s.track + }), C().createElement("input", { + "aria-label": t, + className: iV(s.slider, "custom-slider"), + max: n, + min: a, + onChange: r, + step: i, + type: "range", + value: o + })) + }, { + ULTRA: w7, + HIGH: S7, + STANDARD: E7, + LOW: x7 + } = d7, C7 = function(e) { + return ln("video.quality", { + quality: e + }) + }; class A7 extends x.Component { + constructor(e) { + super(e), this._enableAudioOnly = this._enableAudioOnly.bind(this), this._enableHighDefinition = this._enableHighDefinition.bind(this), this._enableLowDefinition = this._enableLowDefinition.bind(this), this._enableStandardDefinition = this._enableStandardDefinition.bind(this), this._enableUltraHighDefinition = this._enableUltraHighDefinition.bind(this), this._onSliderChange = this._onSliderChange.bind(this), this._sliderOptions = [{ + audioOnly: !0, + onSelect: this._enableAudioOnly, + textKey: "audioOnly.audioOnly" + }, { + onSelect: this._enableLowDefinition, + textKey: "videoStatus.lowDefinition", + videoQuality: x7 + }, { + onSelect: this._enableStandardDefinition, + textKey: "videoStatus.standardDefinition", + videoQuality: E7 + }, { + onSelect: this._enableUltraHighDefinition, + textKey: "videoStatus.highDefinition", + videoQuality: w7 + }] + } + render() { const { - lastReadMessage: t, - messages: n - } = e["features/chat"], a = n.length; - if (!a) return 0; - let r = 0; - if ("ReactNative" === navigator.product) { - const e = n.indexOf(t); - for (let t = 0; t < e; t++) n[t].isReaction && r++; - return e - r - } - const i = n.lastIndexOf(t); - for (let e = i + 1; e < a; e++) n[e].isReaction && r++; - return a - (i + 1) - r - } - - function O5(e) { - var t; - return !0 === (null === (t = e["features/base/config"]) || void 0 === t ? void 0 : t.disableChatSmileys) - }! function() { - for (const [e, t] of Object.entries(A5())) { - let n; - const a = P5()[e]; - n = a ? a.map((e => Mt(e))) : [], n.push(Mt(`:${e}:`)); - const r = `\\B(${n.join("|")})\\B`; - D5.push([new RegExp(r, "g"), t]) - } - }(); - var M5 = n(9114); - const I5 = { - smiley1: ":)", - smiley2: ":(", - smiley3: ":D", - smiley4: ":+1:", - smiley5: ":P", - smiley6: ":wave:", - smiley7: ":blush:", - smiley8: ":slightly_smiling_face:", - smiley9: ":scream:", - smiley10: ":*", - smiley11: ":-1:", - smiley12: ":mag:", - smiley13: ":heart:", - smiley14: ":innocent:", - smiley15: ":angry:", - smiley16: ":angel:", - smiley17: ";(", - smiley18: ":clap:", - smiley19: ";)", - smiley20: ":beer:" - }; - class N5 extends E.PureComponent { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._onEscKey = this._onEscKey.bind(this) - } - _onEscKey(e) { - "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this.props.onSmileySelect()) - } - _onKeyPress(e) { - " " === e.key && (e.preventDefault(), this.props.onSmileySelect(e.target.id && I5[e.target.id])) - } - _onClick(e) { - e.preventDefault(), this.props.onSmileySelect(e.currentTarget.id && I5[e.currentTarget.id]) - } - render() { - const e = Object.keys(I5).map((e => x().createElement("div", { - className: "smileyContainer", - id: e, - key: e, - onClick: this._onClick, - onKeyDown: this._onEscKey, - onKeyPress: this._onKeyPress, - role: "option", - tabIndex: 0 - }, x().createElement(M5.ZP, { - onlyEmojiClassName: "smiley", - text: I5[e] - })))); - return x().createElement("div", { - "aria-orientation": "horizontal", - id: "smileysContainer", - onKeyDown: this._onEscKey, - role: "listbox", - tabIndex: -1 - }, e) - } + classes: e, + t + } = this.props, n = this._mapCurrentQualityToSliderValue(); + return C().createElement("div", { + className: iV("video-quality-dialog", e.dialog) + }, C().createElement("div", { + className: e.dialogDetails + }, t("videoStatus.adjustFor")), C().createElement("div", { + className: e.dialogContents + }, C().createElement("div", { + className: e.sliderDescription + }, C().createElement("span", null, t("videoStatus.bestPerformance")), C().createElement("span", null, t("videoStatus.highestQuality"))), C().createElement(_7, { + ariaLabel: t("videoStatus.callQuality"), + max: this._sliderOptions.length - 1, + min: 0, + onChange: this._onSliderChange, + step: 1, + value: n + }))) } - const z5 = N5; - class R5 extends E.Component { - constructor(e) { - super(e), - function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(this, "state", { - message: "", - showSmileysPanel: !1 - }), this._textArea = null, this._onDetectSubmit = this._onDetectSubmit.bind(this), this._onMessageChange = this._onMessageChange.bind(this), this._onSmileySelect = this._onSmileySelect.bind(this), this._onSubmitMessage = this._onSubmitMessage.bind(this), this._onToggleSmileysPanel = this._onToggleSmileysPanel.bind(this), this._onEscHandler = this._onEscHandler.bind(this), this._onToggleSmileysPanelKeyPress = this._onToggleSmileysPanelKeyPress.bind(this), this._onSubmitMessageKeyPress = this._onSubmitMessageKeyPress.bind(this), this._setTextAreaRef = this._setTextAreaRef.bind(this) - } - componentDidMount() { - Sa() && this._textArea && this._textArea.blur() - } - render() { - const e = (this.state.showSmileysPanel ? "show-smileys" : "hide-smileys") + " smileys-panel"; - return x().createElement("div", { - className: "chat-input-container" + (this.state.message.trim().length ? " populated" : "") - }, x().createElement("div", { - id: "chat-input" - }, this.props._areSmileysDisabled ? null : x().createElement("div", { - className: "smiley-input" - }, x().createElement("div", { - id: "smileysarea" - }, x().createElement("div", { - id: "smileys" - }, x().createElement("div", { - "aria-expanded": this.state.showSmileysPanel, - "aria-haspopup": "smileysContainer", - "aria-label": this.props.t("chat.smileysPanel"), - className: "smiley-button", - onClick: this._onToggleSmileysPanel, - onKeyDown: this._onEscHandler, - onKeyPress: this._onToggleSmileysPanelKeyPress, - role: "button", - tabIndex: 0 - }, x().createElement(qs, { - src: wp - })))), x().createElement("div", { - className: e - }, x().createElement(z5, { - onSmileySelect: this._onSmileySelect - }))), x().createElement("div", { - className: "usrmsg-form" - }, x().createElement(x5, { - autoComplete: "off", - autoFocus: !0, - id: "usermsg", - maxRows: 5, - onChange: this._onMessageChange, - onHeightChange: this.props.onResize, - onKeyDown: this._onDetectSubmit, - placeholder: this.props.t("chat.messagebox"), - ref: this._setTextAreaRef, - tabIndex: 0, - value: this.state.message - })), x().createElement("div", { - className: "send-button-container" - }, x().createElement("div", { - "aria-label": this.props.t("chat.sendButton"), - className: "send-button", - onClick: this._onSubmitMessage, - onKeyPress: this._onSubmitMessageKeyPress, - role: "button", - tabIndex: this.state.message.trim() ? 0 : -1 - }, x().createElement(qs, { - src: xd - }))))) - } - _focus() { - this._textArea && this._textArea.focus() - } - _onSubmitMessage() { - const e = this.state.message.trim(); - e && (this.props.onSend(e), this.setState({ - message: "" - }), this._focus()) - } - _onDetectSubmit(e) { - "Enter" === e.key && !1 === e.shiftKey && !1 === e.ctrlKey && (e.preventDefault(), e.stopPropagation(), this._onSubmitMessage()) - } - _onSubmitMessageKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onSubmitMessage()) - } - _onMessageChange(e) { - this.setState({ - message: e.target.value - }) - } - _onSmileySelect(e) { - e ? this.setState({ - message: `${this.state.message} ${e}`, - showSmileysPanel: !1 - }) : this.setState({ - showSmileysPanel: !1 - }), this._focus() - } - _onToggleSmileysPanel() { - this.state.showSmileysPanel && this._focus(), this.setState({ - showSmileysPanel: !this.state.showSmileysPanel - }) - } - _onEscHandler(e) { - this.state.showSmileysPanel && "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this._onToggleSmileysPanel()) - } - _onToggleSmileysPanelKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onToggleSmileysPanel()) - } - _setTextAreaRef(e) { - this._textArea = e + _enableAudioOnly() { + Da(C7("audio.only")), f7.log("Video quality: audio only enabled"), this.props.dispatch(GX(!0)) + } + _enableHighDefinition() { + Da(C7("high")), f7.log("Video quality: high enabled"), this._setPreferredVideoQuality(S7) + } + _enableLowDefinition() { + Da(C7("low")), f7.log("Video quality: low enabled"), this._setPreferredVideoQuality(x7) + } + _enableStandardDefinition() { + Da(C7("standard")), f7.log("Video quality: standard enabled"), this._setPreferredVideoQuality(E7) + } + _enableUltraHighDefinition() { + Da(C7("ultra high")), f7.log("Video quality: ultra high enabled"), this._setPreferredVideoQuality(w7) + } + _mapCurrentQualityToSliderValue() { + const { + _audioOnly: e, + _sendrecvVideoQuality: t + } = this.props, { + _sliderOptions: n + } = this; + if (e) { + const e = n.find((e => { + let { + audioOnly: t + } = e; + return t + })); + return n.indexOf(e) } + for (let e = 0; e < n.length; e++) + if (n[e].videoQuality >= t) return e; + return -1 } - const L5 = Li(ze((e => ({ - _areSmileysDisabled: O5(e) - })))(R5)), - F5 = Ug.default.div` - height: ${e=>e.elementHeight}px; -`, - q5 = function() { - if (!Ea()) return null; - const [e, t] = (0, E.useState)(0), [n, a] = (0, E.useState)(window.innerHeight); + _onSliderChange(e) { + const { + _audioOnly: t, + _sendrecvVideoQuality: n + } = this.props, { + audioOnly: a, + onSelect: r, + videoQuality: i + } = this._sliderOptions[e.target.value]; + t && a || !t && i === n || r() + } + _setPreferredVideoQuality(e) { + this.props.dispatch(g7(e)), this.props._audioOnly && this.props.dispatch(GX(!1)); + let { + _channelLastN: t = u7 + } = this.props; + t = -1 === t ? u7 : t; + const n = function(e, t) { + let n = t; + const a = Object.values(d7); + for (const r in a) a.hasOwnProperty(r) && e === a[r] && r > 1 && (n = Math.floor(t / Math.pow(2, r - 1))); + return n + }(e, t); + this.props.dispatch(c7(n)) + } + } + const T7 = Ei(Ne((function(e) { + const { + enabled: t + } = e["features/base/audio-only"], { + p2p: n + } = e["features/base/conference"], { + preferredVideoQuality: a + } = e["features/video-quality"], { + channelLastN: r + } = e["features/base/config"]; + return { + _audioOnly: t, + _channelLastN: r, + _p2p: n, + _sendrecvVideoQuality: a + } + }))(rL((e => ({ + dialog: { + color: e.palette.text01 + }, + dialogDetails: { + ...no(e.typography.bodyShortRegularLarge), + marginBottom: 16 + }, + dialogContents: { + background: e.palette.ui01, + padding: "16px 16px 48px 16px" + }, + sliderDescription: { + ...no(e.typography.heading6), + display: "flex", + justifyContent: "space-between", + marginBottom: 40 + } + })))(A7))); class D7 extends x.Component { + render() { + return C().createElement(yL, { + hideCancelButton: !0, + submitDisabled: !0, + titleKey: "videoStatus.performanceSettings", + width: "small" + }, C().createElement(T7, null)) + } + } + class P7 extends x.Component {} - function r() { - const { - innerWidth: e, - visualViewport: { - width: r, - height: i - } - } = window; - r === e && (t(i < n ? n - i : 0), a(i)) - } - return (0, E.useEffect)((() => (r(), window.visualViewport.addEventListener("resize", r), () => { - window.visualViewport.removeEventListener("resize", r) - })), []), x().createElement(F5, { - elementHeight: e - }) - }; - class B5 extends E.Component { - constructor(e) { - super(e), - function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(this, "state", { - displayName: "" - }), this._onDisplayNameChange = this._onDisplayNameChange.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onKeyPress = this._onKeyPress.bind(this) - } - render() { - const { - isPollsEnabled: e, - t - } = this.props; - return x().createElement("div", { - id: "nickname" - }, x().createElement("form", { - onSubmit: this._onSubmit - }, x().createElement(bz, { - "aria-describedby": "nickname-title", - autoComplete: "name", - autoFocus: !0, - compact: !0, - id: "nickinput", - label: t(e ? "chat.nickname.titleWithPolls" : "chat.nickname.title"), - onChange: this._onDisplayNameChange, - placeholder: t("chat.nickname.popover"), - shouldFitContainer: !0, - type: "text", - value: this.state.displayName - })), x().createElement("div", { - className: "enter-chat" + (this.state.displayName.trim() ? "" : " disabled"), - onClick: this._onSubmit, - onKeyPress: this._onKeyPress, - role: "button", - tabIndex: 0 - }, t("chat.enter")), x().createElement(q5, null)) + function j7(e) { + const { + enabled: t + } = e["features/base/audio-only"]; + return { + _audioOnly: t + } + } + const M7 = Ei(Ne((function(e) { + return { + ...j7(e), + _visible: !(QS(e) || interfaceConfig.VIDEO_QUALITY_LABEL_DISABLED) + } + }))(class extends P7 { + render() { + const { + _audioOnly: e, + _visible: t, + dispatch: n, + t: a + } = this.props; + if (!t) return null; + let r, i, o, s, l; + return e ? (r = "audio-only", o = a("videoStatus.audioOnly"), l = "videoStatus.labelTooltipAudioOnly") : (r = "current-video-quality", i = js, s = () => n(VI(D7)), l = "videoStatus.performanceSettings"), C().createElement(hC, { + content: a(l), + position: "bottom" + }, C().createElement(uG, { + className: r, + icon: i, + id: "videoResolutionLabel", + onClick: s, + text: o + })) + } + })); + + function I7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const O7 = Ei(Ne((function(e) { + return { + _isBackgroundEnabled: Boolean(e["features/virtual-background"].backgroundEffectEnabled), + visible: Cp() + } + }))(class extends bC { + constructor() { + super(...arguments), I7(this, "accessibilityLabel", "toolbar.accessibilityLabel.selectBackground"), I7(this, "icon", Sd), I7(this, "label", "toolbar.selectBackground"), I7(this, "tooltip", "toolbar.selectBackground") + } + _handleClick() { + const { + dispatch: e, + handleClick: t + } = this.props; + t ? t() : e(VI(q7)) + } + _isToggled() { + return this.props._isBackgroundEnabled + } + })), N7 = Ei((function(e) { + let { + setLoading: t, + setOptions: n, + setStoredImages: a, + showLabel: r, + storedImages: i, + t: o + } = e; + const s = (0, x.useRef)(null), + l = (0, x.useCallback)((e => { + !s.current || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), s.current.click()) + }), [s.current]), + c = (0, x.useCallback)((async e => { + const r = new FileReader, + o = e.target.files; + r.readAsDataURL(o[0]), r.onload = async () => { + const e = await + function(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 1920, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 1080; + return new Promise((a => { + const r = document.createElement("img"); + r.onload = function() { + const e = document.createElement("canvas"), + i = e.getContext("2d"); + e.width = t, e.height = n, i.drawImage(r, 0, 0, t, n), a(e.toDataURL("image/jpeg", .5)) + }, r.src = e + })) + }(r.result), t = rU(); + a([...i, { + id: t, + src: e + }]), n({ + backgroundType: Dp, + enabled: !0, + url: e, + selectedThumbnail: t + }) + }, wp.info("New virtual background image uploaded!"), r.onerror = () => { + t(!1), wp.error("Failed to upload virtual image!") + } + }), [i]); + return C().createElement(C().Fragment, null, r && C().createElement("label", { + "aria-label": o("virtualBackground.uploadImage"), + className: "file-upload-label", + htmlFor: "file-upload", + onKeyPress: l, + tabIndex: 0 + }, C().createElement(lo, { + className: "add-background", + size: 20, + src: Ro + }), o("virtualBackground.addBackground")), C().createElement("input", { + accept: "image/*", + className: "file-upload-btn", + id: "file-upload", + onChange: c, + ref: s, + type: "file" + })) + })); class R7 extends x.PureComponent { + constructor(e) { + super(e), this.state = { + loading: !1, + localTrackLoaded: !1, + jitsiTrack: null } - _onDisplayNameChange(e) { + } + _stopStream(e) { + e && e.dispose() + } + async _setTracks() { + try { this.setState({ - displayName: e.target.value - }) - } - _onSubmit(e) { - e.preventDefault(), this.props.dispatch(bn({ - displayName: this.state.displayName - })) - } - _onKeyPress(e) { - " " !== e.key && "Enter" !== e.key || this._onSubmit(e) - } + loading: !0 + }); + const [e] = await Qp({ + cameraDeviceId: this.props._currentCameraDeviceId, + devices: ["video"] + }); + if (this.setState({ + localTrackLoaded: !0 + }), this._componentWasUnmounted) return void this._stopStream(e); + this.setState({ + jitsiTrack: e, + loading: !1 + }), this.props.loadedPreview(!0) + } catch (e) { + return this.props.dispatch(HI()), this.props.dispatch(ng({ + titleKey: "virtualBackground.backgroundEffectError", + description: "Failed to access camera device." + }, Yf.LONG)), void wp.error("Failed to access camera device. Error on apply background effect.") + } + this.props.options.backgroundType === Pp && this.state.localTrackLoaded && this._applyBackgroundEffect() + } + async _applyBackgroundEffect() { + this.setState({ + loading: !0 + }), this.props.loadedPreview(!1), await this.props.dispatch(Sp(this.props.options, this.state.jitsiTrack)), this.props.loadedPreview(!0), this.setState({ + loading: !1 + }) } - const U5 = Li(ze()(B5)); - class H5 extends E.PureComponent { - _getMessagesGroupedBySender() { - const e = this.props.messages.length, - t = []; - let n, a = []; - for (let r = 0; r < e; r++) { - const e = this.props.messages[r]; - e.id === n ? a.push(e) : (a.length && t.push(a), a = [e], n = e.id) + _loadVideoPreview() { + return C().createElement("div", { + className: "video-preview-loader" + }, C().createElement(Ay, { + invertColor: !0, + isCompleting: !1, + size: "large" + })) + } + _renderPreviewEntry(e) { + const { + t + } = this.props, n = "video-background-preview-entry"; + if (this.state.loading) return this._loadVideoPreview(); + if (!e) return C().createElement("div", { + className: n, + "video-preview-container": !0 + }, C().createElement("div", { + className: "video-preview-error" + }, t("deviceSelection.previewUnavailable"))); + const a = { + className: n + }; + return C().createElement("div", a, C().createElement(hZ, { + className: "video-preview-video", + playsinline: !0, + videoTrack: { + jitsiTrack: e } - return a.length && t.push(a), t - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(H5, "defaultProps", { - messages: [] - }); - class V5 extends E.PureComponent { - _getFormattedTimestamp() { - return zi(new Date(this.props.message.timestamp)).format("H:mm") - } - _getMessageText() { - const { - message: e - } = this.props; - return e.messageType === i0 ? this.props.t("chat.error", { - error: e.message - }) : e.message - } - _getPrivateNoticeMessage() { - const { - message: e, - t - } = this.props; - return t("chat.privateNotice", { - recipient: e.messageType === o0 ? e.recipient : t("chat.you") - }) - } + })) } - const W5 = Li(class extends V5 { - render() { - const { - message: e, - t - } = this.props, n = [], a = this._getMessageText().split(" "), r = []; - for (const e of a) e.includes("://") ? r.push(e) : r.push(...(0, M5.qo)(e, { - className: "smiley" - })), r.push(" "); - return r.forEach((e => { - "string" == typeof e && " " !== e ? n.push(x().createElement(kS, { - key: e - }, e)) : n.push(e) - })), x().createElement("div", { - className: "chatmessage-wrapper", - tabIndex: -1 - }, x().createElement("div", { - className: "chatmessage " + (e.privateMessage ? "privatemessage" : "") - }, x().createElement("div", { - className: "replywrapper" - }, x().createElement("div", { - className: "messagecontent" - }, this.props.showDisplayName && this._renderDisplayName(), x().createElement("div", { - className: "usermessage" - }, x().createElement("span", { - className: "sr-only" - }, this.props.message.displayName === this.props.message.recipient ? t("chat.messageAccessibleTitleMe") : t("chat.messageAccessibleTitle", { - user: this.props.message.displayName - })), n), e.privateMessage && this._renderPrivateNotice()), e.privateMessage && e.messageType !== o0 && x().createElement("div", { - className: "messageactions" - }, x().createElement($1, { - participantID: e.id, - reply: !0, - showLabel: !1 - })))), this.props.showTimestamp && this._renderTimestamp()) - } - _renderDisplayName() { - return x().createElement("div", { - "aria-hidden": !0, - className: "display-name" - }, this.props.message.displayName) - } - _renderPrivateNotice() { - return x().createElement("div", { - className: "privatemessagenotice" - }, this._getPrivateNoticeMessage()) - } - _renderTimestamp() { - return x().createElement("div", { - className: "timestamp" - }, this._getFormattedTimestamp()) - } - }); - class Y5 extends E.Component { - render() { - const { - className: e, - messages: t - } = this.props; - return t.length ? x().createElement("div", { - className: `chat-message-group ${e}` - }, t.map(((e, n) => x().createElement(W5, { - key: n, - message: e, - showDisplayName: 0 === n, - showTimestamp: n === t.length - 1 - })))) : null - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(Y5, "defaultProps", { - className: "" - }); - const G5 = Y5; - class K5 extends H5 { - constructor(e) { - super(e), this._isScrolledToBottom = !0, this._messageListRef = x().createRef(), this._messagesListEndRef = x().createRef(), this._onChatScroll = this._onChatScroll.bind(this) - } - render() { - const e = this._getMessagesGroupedBySender().map(((e, t) => { - const n = e[0] && e[0].messageType; - return x().createElement(G5, { - className: n || s0, - key: t, - messages: e - }) - })); - return x().createElement("div", { - "aria-labelledby": "chat-header", - id: "chatconversation", - onScroll: this._onChatScroll, - ref: this._messageListRef, - role: "log", - tabIndex: 0 - }, e, x().createElement("div", { - ref: this._messagesListEndRef - })) - } - maybeUpdateBottomScroll() { - this._isScrolledToBottom && this.scrollToBottom(!1) - } - scrollToBottom(e) { - this._messagesListEndRef.current.scrollIntoView({ - behavior: e ? "smooth" : "auto", - block: "nearest" - }) - } - _onChatScroll() { - const e = this._messageListRef.current; - this._isScrolledToBottom = e.scrollHeight - e.scrollTop === e.clientHeight - } + componentDidMount() { + this._setTracks() } - class $5 extends E.PureComponent {} - const J5 = Li(ze((function(e) { - const { - privateMessageRecipient: t - } = e["features/chat"]; - return { - _privateMessageRecipient: t ? Hh(e, t.id) : void 0 + componentWillUnmount() { + this._componentWasUnmounted = !0, this._stopStream(this.state.jitsiTrack) + } + async componentDidUpdate(e) { + var t; + Re(this.props._currentCameraDeviceId, e._currentCameraDeviceId) || this._setTracks(), !Re(this.props.options, e.options) && this.state.localTrackLoaded && (e.options.backgroundType === Pp && e.options.url.dispose(), this._applyBackgroundEffect()), (null === (t = this.props.options.url) || void 0 === t ? void 0 : t.videoType) === Yi && Ap(this.props.dispatch, this.props.options.url, this.state.jitsiTrack) + } + render() { + const { + jitsiTrack: e + } = this.state; + return e ? C().createElement("div", { + className: "video-preview" + }, this._renderPreviewEntry(e)) : C().createElement("div", { + className: "video-preview-loader" + }, this._loadVideoPreview()) + } + } + const z7 = Ei(Ne((function(e) { + return { + _currentCameraDeviceId: sa(e) + } + }))(R7)), L7 = e => { + e.target.style.display = "none" + }, F7 = Ei(Ne((function(e) { + var t; + const { + localFlipX: n + } = e["features/base/settings"], a = e["features/dynamic-branding"].virtualBackgrounds, r = Boolean(a.length); + return { + _localFlipX: Boolean(n), + _images: r && a || Ip, + _virtualBackground: e["features/virtual-background"], + _selectedThumbnail: e["features/virtual-background"].selectedThumbnail, + _showUploadButton: !(r || e["features/base/config"].disableAddingBackgroundImages), + _jitsiTrack: null === (t = nh(e["features/base/tracks"])) || void 0 === t ? void 0 : t.jitsiTrack + } + }))((function(e) { + var t; + let { + _images: n, + _jitsiTrack: a, + _localFlipX: i, + _selectedThumbnail: o, + _showUploadButton: s, + _virtualBackground: c, + dispatch: u, + initialOptions: d, + t: p + } = e; + const [h, m] = (0, x.useState)(!1), [f, g] = (0, x.useState)({ + ...d + }), b = l.getItem("virtualBackgrounds"), [y, v] = (0, x.useState)(b && r.parse(b) || []), [k, _] = (0, x.useState)(!1), { + disableScreensharingVirtualBackground: w + } = Pe((e => e["features/base/config"])), [S] = (0, x.useState)((null == c || null === (t = c.virtualSource) || void 0 === t ? void 0 : t.videoType) === Yi ? c.virtualSource : null), [E] = (0, x.useState)(c), A = (0, x.useCallback)((e => { + const t = e.currentTarget.getAttribute("data-imageid"); + v(y.filter((e => e.id !== t))) + }), [y]), T = (0, x.useCallback)((e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), A(e)) + }), [A]); + (0, x.useEffect)((() => { + try { + l.setItem("virtualBackgrounds", JSON.stringify(y)) + } catch (e) { + e && v(y.slice(1)) + } + 25 === y.length && v(y.slice(1)) + }), [y]); + const D = (0, x.useCallback)((async () => { + g({ + backgroundType: jp, + enabled: !0, + blurValue: 25, + selectedThumbnail: "blur" + }), wp.info('"Blur" option setted for virtual background preview!') + }), []), + P = (0, x.useCallback)((e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), D()) + }), [D]), + j = (0, x.useCallback)((async () => { + g({ + backgroundType: jp, + enabled: !0, + blurValue: 8, + selectedThumbnail: "slight-blur" + }), wp.info('"Slight-blur" option setted for virtual background preview!') + }), []), + M = (0, x.useCallback)((e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), j()) + }), [j]), + I = (0, x.useCallback)((async () => { + if (w) return; + let e, t = !1; + try { + e = await rt("desktop", "") + } catch (e) { + e.name === wt.SCREENSHARING_USER_CANCELED ? t = !0 : wp.error(e) } - }), (function(e) { - return { - _onRemovePrivateMessageRecipient: () => { - e(V3()) + if (!e) return t || (u(eg({ + titleKey: "virtualBackground.desktopShareError" + }, Yf.LONG)), wp.error("Could not create desktop share as a virtual background!")), void(dt.isElectron() && u(VI(F7, { + initialOptions: f + }))); + const n = { + backgroundType: Pp, + enabled: !0, + selectedThumbnail: "desktop-share", + url: e + }; + dt.isElectron() ? u(VI(F7, { + initialOptions: n + })) : (g(n), wp.info('"Desktop-share" option setted for virtual background preview!')) + }), [u, f]), + O = (0, x.useCallback)((e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), I()) + }), [I]), + N = (0, x.useCallback)((async () => { + g({ + enabled: !1, + selectedThumbnail: "none" + }), wp.info('"None" option setted for virtual background preview!') + }), []), + R = (0, x.useCallback)((e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), N()) + }), [N]), + z = (0, x.useCallback)((async e => { + const t = e.currentTarget.getAttribute("data-imageid"), + n = y.find((e => e.id === t)); + n && (g({ + backgroundType: "image", + enabled: !0, + url: n.src, + selectedThumbnail: n.id + }), wp.info("Uploaded image setted for virtual background preview!")) + }), [y]), + L = (0, x.useCallback)((async e => { + const t = e.currentTarget.getAttribute("data-imageid"), + a = n.find((e => e.id === t)); + if (a) { + try { + const e = await (async e => { + const t = await fetch(e), + n = await t.blob(), + a = await (e => new Promise((t => { + const n = new FileReader; + n.onloadend = () => t(n.result.toString()), n.readAsDataURL(e) + })))(n); + return a + })(a.src); + g({ + backgroundType: "image", + enabled: !0, + url: e, + selectedThumbnail: a.id + }), wp.info("Image set for virtual background preview!") + } catch (e) { + wp.error("Could not fetch virtual background image:", e) } + _(!1) } - }))(class extends $5 { - constructor(e) { - super(e), this._onKeyPress = this._onKeyPress.bind(this) - } - _onKeyPress(e) { - !this.props._onRemovePrivateMessageRecipient || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props._onRemovePrivateMessageRecipient()) - } - render() { - const { - _privateMessageRecipient: e - } = this.props; - if (!e) return null; - const { - t - } = this.props; - return x().createElement("div", { - id: "chat-recipient", - role: "alert" - }, x().createElement("span", null, t("chat.messageTo", { - recipient: e - })), x().createElement("div", { - "aria-label": t("dialog.close"), - onClick: this.props._onRemovePrivateMessageRecipient, - onKeyPress: this._onKeyPress, - role: "button", - tabIndex: 0 - }, x().createElement(qs, { - src: jl - }))) - } + }), []), + F = (0, x.useCallback)((e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), L(e)) + }), [L]), + q = (0, x.useCallback)((e => { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), z(e)) + }), [z]), + B = (0, x.useCallback)((async () => { + S && await S.dispose(), _(!0), await u(Sp(f, a)), await _(!1), i && f.backgroundType === Pp ? u(hn({ + localFlipX: !i + })) : u(hn({ + localFlipX: !0 + })), u(HI()), wp.info(`Virtual background type: '${void 0===f.backgroundType?"none":f.backgroundType}' applied!`), u({ + type: _p + }) + }), [u, f, i]), + U = (0, x.useCallback)((async () => { + await g({ + backgroundType: E.backgroundType, + enabled: E.backgroundEffectEnabled, + url: E.virtualSource, + selectedThumbnail: E.selectedThumbnail, + blurValue: E.blurValue + }), u(HI()) })), - Z5 = Li(ze((function(e) { - const { - isOpen: t, - isPollsTabFocused: n, - messages: a, - nbUnreadMessages: r - } = e["features/chat"], { - nbUnreadPolls: i - } = e["features/polls"], o = Rh(e), { - disablePolls: s - } = e["features/base/config"]; - return { - _isModal: window.innerWidth <= 580, - _isOpen: t, - _isPollsEnabled: !s, - _isPollsTabFocused: n, - _messages: a, - _nbUnreadMessages: r, - _nbUnreadPolls: i, - _showNamePrompt: !(null == o ? void 0 : o.name) - } - }))(class extends p5 { - constructor(e) { - super(e), this._isExited = !0, this._messageContainerRef = x().createRef(), this._renderPanelContent = this._renderPanelContent.bind(this), this._onChatInputResize = this._onChatInputResize.bind(this), this._onEscClick = this._onEscClick.bind(this), this._onToggleChat = this._onToggleChat.bind(this) - } - componentDidMount() { - this._scrollMessageContainerToBottom(!0) - } - componentDidUpdate(e) { - this.props._messages !== e._messages ? this._scrollMessageContainerToBottom(!0) : this.props._isOpen && !e._isOpen && this._scrollMessageContainerToBottom(!1) - } - _onEscClick(e) { - "Escape" === e.key && this.props._isOpen && (e.preventDefault(), e.stopPropagation(), this._onToggleChat()) - } - render() { - return x().createElement(x().Fragment, null, this._renderPanelContent()) - } - _onChatInputResize() { - this._messageContainerRef.current.maybeUpdateBottomScroll() - } - _renderChat() { - return this.props._isPollsTabFocused ? x().createElement(x().Fragment, null, this.props._isPollsEnabled && this._renderTabs(), x().createElement(l5, null), x().createElement(q5, null)) : x().createElement(x().Fragment, null, this.props._isPollsEnabled && this._renderTabs(), x().createElement(iQ, { - isModal: this.props._isModal - }, x().createElement(K5, { - messages: this.props._messages, - ref: this._messageContainerRef - })), x().createElement(J5, null), x().createElement(L5, { - onResize: this._onChatInputResize, - onSend: this._onSendMessage - }), x().createElement(q5, null)) - } - _renderTabs() { - return x().createElement("div", { - className: "chat-tabs-container" - }, x().createElement("div", { - className: "chat-tab " + (this.props._isPollsTabFocused ? "" : "chat-tab-focus"), - onClick: this._onToggleChatTab - }, x().createElement("span", { - className: "chat-tab-title" - }, this.props.t("chat.tabs.chat")), this.props._isPollsTabFocused && this.props._nbUnreadMessages > 0 && x().createElement("span", { - className: "chat-tab-badge" - }, this.props._nbUnreadMessages)), x().createElement("div", { - className: "chat-tab " + (this.props._isPollsTabFocused ? "chat-tab-focus" : ""), - onClick: this._onTogglePollsTab - }, x().createElement("span", { - className: "chat-tab-title" - }, this.props.t("chat.tabs.polls")), !this.props._isPollsTabFocused && this.props._nbUnreadPolls > 0 && x().createElement("span", { - className: "chat-tab-badge" - }, this.props._nbUnreadPolls))) - } - _renderChatHeader() { - return x().createElement(h5, { - className: "chat-header", - id: "chat-header", - isPollsEnabled: this.props._isPollsEnabled, - onCancel: this._onToggleChat - }) - } - _renderPanelContent() { - const { - _isModal: e, - _isOpen: t, - _showNamePrompt: n - } = this.props; - let a = null; - t && (a = e ? x().createElement(m5, { - isPollsEnabled: this.props._isPollsEnabled - }, n ? x().createElement(U5, { - isPollsEnabled: this.props._isPollsEnabled - }) : this._renderChat()) : x().createElement(x().Fragment, null, this._renderChatHeader(), n ? x().createElement(U5, { - isPollsEnabled: this.props._isPollsEnabled - }) : this._renderChat())); - let r = ""; - return t ? r = "slideInExt" : this._isExited && (r = "invisible"), x().createElement("div", { - "aria-haspopup": "true", - className: `sideToolbarContainer ${r}`, - id: "sideToolbarContainer", - onKeyDown: this._onEscClick - }, a) - } - _scrollMessageContainerToBottom(e) { - this._messageContainerRef.current && this._messageContainerRef.current.scrollToBottom(e) - } - _onToggleChat() { - this.props.dispatch(G3()) - } + H = (0, x.useCallback)((async e => { + await m(e) })); - class Q5 extends E.Component { - render() { - return x().createElement("span", { - className: "badge-round" - }, x().createElement("span", null, !this.props._isOpen && (this.props._count || null))) - } + return C().createElement(yL, { + hideCancelButton: !1, + okKey: "virtualBackground.apply", + onCancel: U, + onSubmit: B, + submitDisabled: !f || k || !h, + titleKey: "virtualBackground.title" + }, C().createElement(z7, { + loadedPreview: H, + options: f + }), k ? C().createElement("div", { + className: "virtual-background-loading" + }, C().createElement(Ay, { + isCompleting: !1, + size: "medium" + })) : C().createElement("div", null, s && C().createElement(N7, { + setLoading: _, + setOptions: g, + setStoredImages: v, + showLabel: h, + storedImages: y + }), C().createElement("div", { + className: "virtual-background-dialog", + role: "radiogroup", + tabIndex: "-1" + }, C().createElement(hC, { + content: p("virtualBackground.removeBackground"), + position: "top" + }, C().createElement("div", { + "aria-checked": "none" === o, + "aria-label": p("virtualBackground.removeBackground"), + className: "none" === o ? "background-option none-selected" : "background-option virtual-background-none", + onClick: N, + onKeyPress: R, + role: "radio", + tabIndex: 0 + }, p("virtualBackground.none"))), C().createElement(hC, { + content: p("virtualBackground.slightBlur"), + position: "top" + }, C().createElement("div", { + "aria-checked": "slight-blur" === o, + "aria-label": p("virtualBackground.slightBlur"), + className: "slight-blur" === o ? "background-option slight-blur-selected" : "background-option slight-blur", + onClick: j, + onKeyPress: M, + role: "radio", + tabIndex: 0 + }, p("virtualBackground.slightBlur"))), C().createElement(hC, { + content: p("virtualBackground.blur"), + position: "top" + }, C().createElement("div", { + "aria-checked": "blur" === o, + "aria-label": p("virtualBackground.blur"), + className: "blur" === o ? "background-option blur-selected" : "background-option blur", + onClick: D, + onKeyPress: P, + role: "radio", + tabIndex: 0 + }, p("virtualBackground.blur"))), !w && C().createElement(hC, { + content: p("virtualBackground.desktopShare"), + position: "top" + }, C().createElement("div", { + "aria-checked": "desktop-share" === o, + "aria-label": p("virtualBackground.desktopShare"), + className: "desktop-share" === o ? "background-option desktop-share-selected" : "background-option desktop-share", + onClick: I, + onKeyPress: O, + role: "radio", + tabIndex: 0 + }, C().createElement(lo, { + className: "share-desktop-icon", + size: 30, + src: Gu + }))), n.map((e => C().createElement(hC, { + content: e.tooltip && p(`virtualBackground.${e.tooltip}`), + key: e.id, + position: "top" + }, C().createElement("img", { + alt: e.tooltip && p(`virtualBackground.${e.tooltip}`), + "aria-checked": f.selectedThumbnail === e.id || o === e.id, + className: f.selectedThumbnail === e.id || o === e.id ? "background-option thumbnail-selected" : "background-option thumbnail", + "data-imageid": e.id, + onClick: L, + onError: L7, + onKeyPress: F, + role: "radio", + src: e.src, + tabIndex: 0 + })))), y.map(((e, t) => C().createElement("div", { + className: "thumbnail-container", + key: e.id + }, C().createElement("img", { + alt: p("virtualBackground.uploadedImage", { + index: t + 1 + }), + "aria-checked": o === e.id, + className: o === e.id ? "background-option thumbnail-selected" : "background-option thumbnail", + "data-imageid": e.id, + onClick: z, + onError: L7, + onKeyPress: q, + role: "radio", + src: e.src, + tabIndex: 0 + }), C().createElement(lo, { + ariaLabel: p("virtualBackground.deleteImage"), + className: "delete-image-icon", + "data-imageid": e.id, + onClick: A, + onKeyPress: T, + role: "button", + size: 15, + src: Ss, + tabIndex: 0 + }))))))) + }))), q7 = F7; + + function B7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const U7 = Ei(Ne((function(e) { + const { + downloadAppsUrl: t + } = e["features/base/config"].deploymentUrls || {}; + return { + _downloadAppsUrl: t, + visible: "string" == typeof t && !cM(e) } - const X5 = ze((function(e) { + }))(class extends bC { + constructor() { + super(...arguments), B7(this, "accessibilityLabel", "toolbar.accessibilityLabel.download"), B7(this, "icon", Qs), B7(this, "label", "toolbar.download"), B7(this, "tooltip", "toolbar.download") + } + _handleClick() { const { - isOpen: t - } = e["features/chat"]; - return { - _count: T5(e) + u5(e), - _isOpen: t - } - }))(Q5); + _downloadAppsUrl: e, + handleClick: t + } = this.props; + t ? t() : (Da(ln("download.pressed")), vn(e)) + } + })); - function e6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function H7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const V7 = Ei(Ne()(class extends kC { + constructor(e) { + super(e), H7(this, "accessibilityLabel", "toolbar.accessibilityLabel.hangup"), H7(this, "label", "toolbar.hangup"), H7(this, "tooltip", "toolbar.hangup"), this._hangup = _().once((() => { + Da(ln("hangup")), "ReactNative" === navigator.product ? this.props.dispatch(tB(void 0)) : this.props.dispatch(RF(!0)) + })) } - const t6 = Li(ze((e => ({ - _chatOpen: e["features/chat"].isOpen - })))(class extends Vw { - constructor(...e) { - super(...e), e6(this, "accessibilityLabel", "toolbar.accessibilityLabel.chat"), e6(this, "icon", Tl), e6(this, "label", "toolbar.openChat"), e6(this, "toggledLabel", "toolbar.closeChat") - } - get tooltip() { - return this._isToggled() ? "toolbar.closeChat" : "toolbar.openChat" - } - set tooltip(e) { - return e - } - _handleClick() { - const { - handleClick: e - } = this.props; - e && e() - } - _isToggled() { - return this.props._chatOpen - } - render() { - return x().createElement("div", { - className: "toolbar-button-with-badge", - key: "chatcontainer" - }, super.render(), x().createElement(X5, null)) - } - })); - class n6 extends E.PureComponent { - constructor(e) { - super(e), this._onSendGroupMessage = this._onSendGroupMessage.bind(this), this._onSendPrivateMessage = this._onSendPrivateMessage.bind(this) - } - _onSendGroupMessage() { - return this.props._onSendMessage(this.props.message), !0 - } - _onSendPrivateMessage() { - const { - message: e, - _onSendMessage: t, - _onSetMessageRecipient: n, - _participant: a - } = this.props; - return n(a), t(e), !0 - } + _doHangup() { + this._hangup() } - const a6 = Li(ze((function(e, t) { - return { - _participant: Fh(e, t.participantID) - } - }), (function(e) { - return { - _onSendMessage: t => { - e(H3(t, !0)) - }, - _onSetMessageRecipient: t => { - e(V3(t)) - } - } - }))(class extends n6 { - render() { - return x().createElement(IO, { - cancelKey: "dialog.sendPrivateMessageCancel", - okKey: "dialog.sendPrivateMessageOk", - onCancel: this._onSendGroupMessage, - onSubmit: this._onSendPrivateMessage, - titleKey: "dialog.sendPrivateMessageTitle", - width: "small" - }, x().createElement("div", null, this.props.t("dialog.sendPrivateMessage"))) - } - })); + })); - function r6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function W7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const Y7 = Ei(Ne((function(e) { + const { + userDocumentationURL: t + } = e["features/base/config"].deploymentUrls || {}, n = qf(e, "help.enabled", !0); + return { + _userDocumentationURL: t, + visible: "string" == typeof t && n && !cM(e) } - const i6 = Li(ze()(class extends Vw { - constructor(...e) { - super(...e), r6(this, "accessibilityLabel", "toolbar.accessibilityLabel.embedMeeting"), r6(this, "icon", ec), r6(this, "label", "toolbar.embedMeeting"), r6(this, "tooltip", "toolbar.embedMeeting") - } - _handleClick() { - const { - dispatch: e, - handleClick: t - } = this.props; - t ? t() : (Ma(hn("embed.meeting")), e(sP(MW))) - } - })), - o6 = "SET_DOCUMENT_EDITING_STATUS", - s6 = "SET_DOCUMENT_URL", - l6 = "TOGGLE_DOCUMENT_EDITING"; - - function c6(e) { - return { - type: o6, - editing: e - } + }))(class extends bC { + constructor() { + super(...arguments), W7(this, "accessibilityLabel", "toolbar.accessibilityLabel.help"), W7(this, "icon", Al), W7(this, "label", "toolbar.help"), W7(this, "tooltip", "toolbar.help") } - - function u6(e) { - return { - type: s6, - documentUrl: e - } + _handleClick() { + const { + _userDocumentationURL: e, + handleClick: t + } = this.props; + t ? t() : (Da(ln("help.pressed")), vn(e)) } + })); - function d6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function G7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const K7 = Ei(Ne((function(e, t) { + const n = Uh(e), + { + disableRemoteMute: a + } = e["features/base/config"], + { + visible: r = tm(e) && !a + } = t; + return { + localParticipantId: n.id, + visible: r } - const p6 = Li(ze((function(e, t) { - const { - documentUrl: n, - editing: a - } = e["features/etherpad"], { - visible: r = Boolean(n) - } = t; - return { - _editing: a, - visible: r - } - }))(class extends Vw { - constructor(...e) { - super(...e), d6(this, "accessibilityLabel", "toolbar.accessibilityLabel.document"), d6(this, "icon", gp), d6(this, "label", "toolbar.documentOpen"), d6(this, "toggledLabel", "toolbar.documentClose") - } - get tooltip() { - return this._isToggled() ? "toolbar.documentClose" : "toolbar.documentOpen" - } - set tooltip(e) { - return e - } - _handleClick() { - const { - _editing: e, - dispatch: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("toggle.etherpad", { - enable: !e - })), t({ - type: l6 - })) - } - _isToggled() { - return this.props._editing - } - })), - h6 = { - showControls: "true", - showChat: "false", - showLineNumbers: "true", - useMonospaceFont: "false" - }, - m6 = "LOCAL_RECORDING_ENGAGED", - f6 = "LOCAL_RECORDING_UNENGAGED", - g6 = "LOCAL_RECORDING_STATS_UPDATE", - b6 = Je("features/local-recording"); - class y6 { - start(e) { - throw new Error("Not implemented") - } - stop() { - throw new Error("Not implemented") - } - exportRecordedData() { - throw new Error("Not implemented") - } - setMuted(e) { - throw new Error("Not implemented") - } - setMicDevice(e) { - throw new Error("Not implemented") - } - _getAudioStream(e) { - return c.default.createLocalTracks({ - devices: ["audio"], - micDeviceId: e - }).then((e => { - if (1 !== e.length) throw new Error("Unexpected number of streams from createLocalTracks."); - const t = e[0].stream; - if (void 0 === t) throw new Error("Failed to create local track."); - return t - })) - } + }))(class extends bC { + constructor() { + super(...arguments), G7(this, "accessibilityLabel", "toolbar.accessibilityLabel.muteEveryone"), G7(this, "icon", Oc), G7(this, "label", "toolbar.muteEveryone"), G7(this, "tooltip", "toolbar.muteEveryone") } + _handleClick() { + const { + dispatch: e, + localParticipantId: t, + handleClick: n + } = this.props; + n ? n() : (Da(ln("mute.everyone.pressed")), e(VI(Z2, { + exclude: [t] + }))) + } + })); - function v6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function $7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const J7 = Ei(Ne((function(e, t) { + const n = Uh(e), + { + disableRemoteMute: a + } = e["features/base/config"], + { + visible: r = tm(e) && !a + } = t; + return { + localParticipantId: n.id, + visible: r } - class k6 extends y6 { - constructor(...e) { - super(...e), v6(this, "_mediaRecorder", null), v6(this, "_initPromise", null), v6(this, "_recordedData", null) - } - start(e) { - return this._initPromise || (this._initPromise = this._initialize(e)), this._initPromise.then((() => new Promise((e => { - this._mediaRecorder.start(), e() - })))) - } - stop() { - return new Promise((e => { - this._mediaRecorder.onstop = () => e(), this._mediaRecorder.stop() - })) - } - exportRecordedData() { - return null !== this._recordedData ? Promise.resolve({ - data: this._recordedData, - format: "ogg" - }) : Promise.reject("No audio data recorded.") - } - setMuted(e) { - const t = !e; - if (!this._stream) return Promise.resolve(); - const n = this._stream.getAudioTracks()[0]; - return n ? (n.enabled !== t && (n.enabled = t, b6.log(e ? "Mute" : "Unmute")), Promise.resolve()) : (b6.error("Cannot mute/unmute. Track not found!"), Promise.resolve()) - } - _initialize(e) { - return this._mediaRecorder ? Promise.resolve() : new Promise(((t, n) => { - this._getAudioStream(e).then((e => { - this._stream = e, this._mediaRecorder = new MediaRecorder(e), this._mediaRecorder.ondataavailable = e => this._saveMediaData(e.data), t() - })).catch((e => { - b6.error(`Error calling getUserMedia(): ${e}`), n() - })) - })) - } - _saveMediaData(e) { - this._recordedData = e - } + }))(class extends bC { + constructor() { + super(...arguments), $7(this, "accessibilityLabel", "toolbar.accessibilityLabel.muteEveryonesVideo"), $7(this, "icon", Bc), $7(this, "label", "toolbar.muteEveryonesVideo"), $7(this, "tooltip", "toolbar.muteEveryonesVideo") + } + _handleClick() { + const { + dispatch: e, + localParticipantId: t, + handleClick: n + } = this.props; + n ? n() : (Da(ln("mute.everyone.pressed")), e(VI(e3, { + exclude: [t] + }))) } + })); - function _6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Z7(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const Q7 = Ei(Ne((e => ({ + _fullScreen: e["features/toolbox"].fullScreen + })))(class extends bC { + constructor() { + super(...arguments), Z7(this, "accessibilityLabel", "toolbar.accessibilityLabel.fullScreen"), Z7(this, "label", "toolbar.enterFullScreen"), Z7(this, "toggledLabel", "toolbar.exitFullScreen") } - class w6 extends y6 { - constructor() { - super(), _6(this, "_audioContext", null), _6(this, "_audioProcessingNode", null), _6(this, "_audioSource", null), _6(this, "_stream", null), _6(this, "_sampleRate", 44100), this._audioContext = new AudioContext, this._sampleRate = this._audioContext.sampleRate, b6.log(`Current sampleRate ${this._sampleRate}.`) - } - _initializeAudioContext(e, t) { - return "function" != typeof t ? Promise.reject("a callback function is required.") : this._getAudioStream(e).then((e => { - this._stream = e, this._audioSource = this._audioContext.createMediaStreamSource(e), this._audioProcessingNode = this._audioContext.createScriptProcessor(4096, 1, 1), this._audioProcessingNode.onaudioprocess = t, b6.debug("AudioContext is set up.") - })).catch((e => (b6.error(`Error calling getUserMedia(): ${e}`), Promise.reject(e)))) - } - _connectAudioGraph() { - this._audioSource.connect(this._audioProcessingNode), this._audioProcessingNode.connect(this._audioContext.destination) - } - _disconnectAudioGraph() { - this._audioProcessingNode.onaudioprocess = void 0, this._audioProcessingNode.disconnect(), this._audioSource.disconnect() - } - _replaceMic(e) { - return this._audioContext && this._audioProcessingNode ? this._getAudioStream(e).then((e => { - const t = this._audioContext.createMediaStreamSource(e); - this._audioSource.disconnect(), t.connect(this._audioProcessingNode), this._stream = e, this._audioSource = t - })) : Promise.resolve() - } + get icon() { + return this._isToggled() ? pl : yl } - - function S6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + set icon(e) {} + get tooltip() { + return this._isToggled() ? "toolbar.exitFullScreen" : "toolbar.enterFullScreen" } - class E6 extends w6 { - constructor() { - super(), S6(this, "_wavLength", 0), S6(this, "_wavBuffers", []), S6(this, "_isInitialized", !1), S6(this, "_initPromise", null), this._onAudioProcess = this._onAudioProcess.bind(this) - } - start(e) { - return this._initPromise || (this._initPromise = this._initialize(e)), this._initPromise.then((() => { - this._wavBuffers = [], this._wavLength = 0, this._connectAudioGraph() - })) - } - stop() { - return this._disconnectAudioGraph(), this._data = this._exportMonoWAV(this._wavBuffers, this._wavLength), this._audioProcessingNode = null, this._audioSource = null, this._isInitialized = !1, Promise.resolve() - } - exportRecordedData() { - return null !== this._data ? Promise.resolve({ - data: this._data, - format: "wav" - }) : Promise.reject("No audio data recorded.") - } - setMuted(e) { - const t = !e; - if (!this._stream) return Promise.resolve(); - const n = this._stream.getAudioTracks()[0]; - return n ? (n.enabled !== t && (n.enabled = t, b6.log(e ? "Mute" : "Unmute")), Promise.resolve()) : (b6.error("Cannot mute/unmute. Track not found!"), Promise.resolve()) - } - setMicDevice(e) { - return this._replaceMic(e) - } - _createWavHeader(e) { - const t = new ArrayBuffer(44), - n = new DataView(t); - return x6(n, 0, "RIFF"), x6(n, 8, "WAVE"), x6(n, 12, "fmt "), n.setUint32(16, 16, !0), n.setUint16(20, 1, !0), n.setUint16(22, 1, !0), n.setUint32(24, this._sampleRate, !0), n.setUint32(28, 1 * Number(this._sampleRate) * 16 / 8, !0), n.setUint16(32, 1 * Number(16) / 8, !0), n.setUint16(34, 16, !0), x6(n, 36, "data"), n.setUint32(4, 32 + e, !0), n.setUint32(40, e, !0), new Uint8Array(t) - } - _initialize(e) { - return this._isInitialized ? Promise.resolve() : this._initializeAudioContext(e, this._onAudioProcess).then((() => { - this._isInitialized = !0 - })) - } - _onAudioProcess(e) { - const t = e.inputBuffer.getChannelData(0); - this._wavBuffers.push(new Float32Array(t)), this._wavLength += t.length - } - _exportMonoWAV(e, t) { - const n = 2 * t, - a = new ArrayBuffer(44 + n), - r = new DataView(a), - i = this._createWavHeader(n), - o = i.length; - for (let e = 0; e < o; ++e) r.setUint8(e, i[e]); - return function(e, t, n) { - let a, r, i, o, s; - const l = n.length; - let c = 44; - for (a = 0; a < l; ++a) - for (i = n[a], s = i.length, r = 0; r < s; ++r, c += 2) o = Math.max(-1, Math.min(1, i[r])), e.setInt16(c, o < 0 ? 32768 * o : 32767 * o, !0) - }(r, 0, e), new Blob([r], { - type: "audio/wav" - }) - } + set tooltip(e) {} + _handleClick() { + const { + handleClick: e + } = this.props; + e && e() } - - function x6(e, t, n) { - const a = n.length; - for (let r = 0; r < a; ++r) e.setUint8(t + r, n.charCodeAt(r)) + _isToggled() { + return this.props._fullScreen } - - function C6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + })), X7 = BQ((e => ({ + drawer: { + backgroundColor: e.palette.ui02 } - class A6 extends w6 { - constructor() { - super(), C6(this, "_encoder", null), C6(this, "_stopPromiseResolver", null), C6(this, "_initWorkerPromiseResolver", null), C6(this, "_initPromise", null), this._onAudioProcess = this._onAudioProcess.bind(this), this._onWorkerMessage = this._onWorkerMessage.bind(this) - } - start(e) { - return this._initPromise || (this._initPromise = this._initialize(e)), this._initPromise.then((() => { - this._connectAudioGraph() - })) - } - stop() { - return this._encoder ? new Promise((e => { - this._initPromise = null, this._disconnectAudioGraph(), this._stopPromiseResolver = e, this._encoder.postMessage({ - command: "MAIN_THREAD_FINISH" - }) - })) : (b6.error("Attempting to stop but has nothing to stop."), Promise.reject()) - } - exportRecordedData() { - return null !== this._data ? Promise.resolve({ - data: this._data, - format: "flac" - }) : Promise.reject("No audio data recorded.") - } - setMuted(e) { - const t = !e; - if (!this._stream) return Promise.resolve(); - const n = this._stream.getAudioTracks()[0]; - return n ? (n.enabled !== t && (n.enabled = t, b6.log(e ? "Mute" : "Unmute")), Promise.resolve()) : (b6.error("Cannot mute/unmute. Track not found!"), Promise.resolve()) - } - setMicDevice(e) { - return this._replaceMic(e) - } - _initialize(e) { - return null !== this._encoder ? Promise.resolve() : new Promise(((e, t) => { - try { - this._loadWebWorker() - } catch (e) { - t() - } - this._initWorkerPromiseResolver = e, this._encoder.onmessage = this._onWorkerMessage, this._encoder.postMessage({ - command: "MAIN_THREAD_INIT", - config: { - sampleRate: this._sampleRate, - bps: 16 - } - }) - })).then((() => this._initializeAudioContext(e, this._onAudioProcess))) + }))), e9 = function(e) { + let { + children: t, + isOpen: n, + onClose: a + } = e; + const r = X7(), + i = (0, x.useCallback)((e => { + e.stopPropagation() + }), []), + o = (0, x.useCallback)((e => { + e.stopPropagation(), a() + }), [a]); + return n ? C().createElement("div", { + className: "drawer-menu-container", + onClick: o + }, C().createElement("div", { + className: `drawer-menu ${r.drawer}`, + onClick: i + }, t)) : null + }, t9 = function(e) { + let { + children: t, + className: n, + style: a, + getRef: r, + setSize: i + } = e; + const [o] = (0, x.useState)((() => document.createElement("div"))); + return (0, x.useEffect)((() => { + if (a) + for (const e of Object.keys(a)) o.style[e] = a[e]; + n && (o.className = n) + }), [a, n]), (0, x.useEffect)((() => { + o && r && r(o) + }), [o]), (0, x.useEffect)((() => { + const e = new ResizeObserver((e => { + const { + contentRect: t + } = e[0]; + 1 === t.width && 1 === t.height || i && i(t) + })); + return document.body && (document.body.appendChild(o), e.observe(o)), () => { + e.unobserve(o), document.body && document.body.removeChild(o) } - _onAudioProcess(e) { - const t = e.inputBuffer.getChannelData(0); - this._encoder.postMessage({ - command: "MAIN_THREAD_NEW_DATA_ARRIVED", - buf: t + }), []), Ie().createPortal(t, o) + }, n9 = function(e) { + let { + children: t, + className: n + } = e; + return C().createElement(t9, { + className: `drawer-portal ${null!=n?n:""}` + }, t) + }; class a9 extends x.Component { + constructor(e) { + super(e), this._onCloseDialog = this._onCloseDialog.bind(this), this._onToggleDialogVisibility = this._onToggleDialogVisibility.bind(this), this._onEscClick = this._onEscClick.bind(this) + } + _onEscClick(e) { + "Escape" === e.key && this.props.isOpen && (e.preventDefault(), e.stopPropagation(), this._onCloseDialog()) + } + render() { + const { + children: e, + isOpen: t, + overflowDrawer: n, + reactionsQueue: a, + showMobileReactions: r + } = this.props; + return C().createElement("div", { + className: "toolbox-button-wth-dialog" + }, n ? C().createElement(C().Fragment, null, this._renderToolbarButton(), C().createElement(n9, null, C().createElement(e9, { + isOpen: t, + onClose: this._onCloseDialog + }, e, r && C().createElement(X6, { + overflowMenu: !0 + })), r && C().createElement("div", { + className: "reactions-animations-container" + }, a.map(((e, t) => { + let { + reaction: n, + uid: a + } = e; + return C().createElement($6, { + index: t, + key: a, + reaction: n, + uid: a }) - } - _onWorkerMessage(e) { - switch (e.data.command) { - case "WORKER_BLOB_READY": - this._data = e.data.buf, null !== this._stopPromiseResolver && (this._stopPromiseResolver(), this._stopPromiseResolver = null, this._encoder.terminate(), this._encoder = null); - break; - case "DEBUG": - b6.log(e.data); - break; - case "WORKER_LIBFLAC_READY": - b6.log("libflac is ready."), this._initWorkerPromiseResolver(); - break; - default: - b6.error(`Unknown event\n from encoder (WebWorker): "${e.data.command}"!`) - } - } - _loadWebWorker() { - try { - this._encoder = new Worker("/libs/flacEncodeWorker.min.js", { - name: "FLAC encoder worker" - }) - } catch (e) { - try { - this._encoder = new Worker("/libs/flacEncodeWorker.js", { - name: "FLAC encoder worker" - }) - } catch (e) { - throw new Error("Failed to load flacEncodeWorker.") - } - } - } + }))))) : C().createElement(xA, { + content: e, + isOpen: t, + onClose: this._onCloseDialog, + placement: "top-end" + }, this._renderToolbarButton())) } - - function j6() { - return window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now() + _renderToolbarButton() { + const { + ariaControls: e, + isOpen: t, + t: n + } = this.props; + return C().createElement(e1, { + accessibilityLabel: n("toolbar.accessibilityLabel.moreActions"), + "aria-controls": e, + "aria-haspopup": "true", + icon: Pl, + onClick: this._onToggleDialogVisibility, + onKeyDown: this._onEscClick, + toggled: t, + tooltip: n("toolbar.moreActions") + }) } - const P6 = Object.freeze({ - SESSION_STARTED: "SESSION_STARTED", - SEGMENT_STARTED: "SEGMENT_STARTED", - SEGMENT_ENDED: "SEGMENT_ENDED" - }), - D6 = "localRecordingMetadataVersion1", - T6 = new class { - constructor() { - ! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(this, "_sessionsMetadata", {}), this._loadMetadata() - } - _loadMetadata() { - const e = l.getItem(D6); - if (null !== e) try { - const t = r.parse(e); - this._sessionsMetadata = t - } catch (e) { - return void b6.warn("Failed to parse localStorage item.") - } - } - _saveMetadata() { - l.setItem(D6, JSON.stringify(this._sessionsMetadata)) - } - createSession(e, t) { - void 0 === this._sessionsMetadata[e] ? (this._sessionsMetadata[e] = { - format: t, - events: [] - }, this._sessionsMetadata[e].events.push({ - type: P6.SESSION_STARTED, - timestamp: j6() - }), this._saveMetadata()) : b6.warn(`Session ${e} already exists`) - } - getSessions() { - const e = Object.keys(this._sessionsMetadata), - t = []; - for (let n = 0; n < e.length; ++n) { - const a = this._sessionsMetadata[e[n]], - r = { - start: a.events[0].timestamp, - format: a.format, - sessionToken: e[n], - segments: this.getSegments(e[n]) - }; - t.push(r) - } - return t.sort(((e, t) => (e.start || 0) - (t.start || 0))), t - } - removeSession(e) { - delete this._sessionsMetadata[e], this._saveMetadata() - } - getSegments(e) { - const t = this._sessionsMetadata[e]; - return t ? this._constructSegments(t.events) : [] - } - beginSegment(e) { - return void 0 === this._sessionsMetadata[e] ? (b6.warn(`Attempting to add segments to nonexistent session ${e}`), -1) : (this._sessionsMetadata[e].events.push({ - type: P6.SEGMENT_STARTED, - timestamp: j6() - }), this._saveMetadata(), this.getSegments(e).length - 1) - } - getCurrentSegmentIndex(e) { - if (void 0 === this._sessionsMetadata[e]) return -1; - const t = this.getSegments(e); - return 0 === t.length || t[t.length - 1].end ? -1 : t.length - 1 - } - endSegment(e) { - void 0 === this._sessionsMetadata[e] ? b6.warn(`Attempting to end a segment in nonexistent session ${e}`) : (this._sessionsMetadata[e].events.push({ - type: P6.SEGMENT_ENDED, - timestamp: j6() - }), this._saveMetadata()) - } - _constructSegments(e) { - if (0 === e.length) return []; - const t = []; - let n = null, - a = {}; - - function r() { - if (void 0 === a.gapBefore || null === a.gapBefore) - if (t.length > 0 && t[t.length - 1].end) { - const e = t[t.length - 1]; - a.start && e.end ? a.gapBefore = a.start - e.end : a.gapBefore = null - } else null !== n && 0 === t.length ? a.gapBefore = a.start ? a.start - n : null : a.gapBefore = null; - a.duration = a.end && a.start ? a.end - a.start : null, t.push(a), a = {} - } - for (let t = 0; t < e.length; ++t) { - const i = e[t]; - switch (i.type) { - case P6.SESSION_STARTED: - null === n ? n = i.timestamp : b6.warn("Unexpected SESSION_STARTED event.", i); - break; - case P6.SEGMENT_STARTED: - void 0 === a.start || null === a.start || r(), a.start = i.timestamp; - break; - case P6.SEGMENT_ENDED: - void 0 === a.start || null === a.start ? b6.warn("Unexpected SEGMENT_ENDED event", i) : (a.end = i.timestamp, r()); - break; - default: - b6.warn("Unexpected error during _constructSegments") - } - } - return a.start && r(), t - } - }; - - function O6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _onCloseDialog() { + this.props.onVisibilityChange(!1) } - window.sessionManager = T6; - const M6 = "localRecStart", - I6 = "localRecStop", - N6 = "localRecPing", - z6 = "localRecStats", - R6 = new Set(["flac", "wav", "ogg"]), - L6 = Object.freeze({ - IDLE: Symbol("IDLE"), - STARTING: Symbol("STARTING"), - RECORDING: Symbol("RECORDING"), - STOPPING: Symbol("STOPPING"), - FAILED: Symbol("FAILED") - }), - F6 = new class { - constructor() { - O6(this, "_adapters", {}), O6(this, "_conference", null), O6(this, "_currentSessionToken", -1), O6(this, "_state", L6.IDLE), O6(this, "_isMuted", !1), O6(this, "_micDeviceId", "default"), O6(this, "_format", "flac"), O6(this, "_registered", !1), this.registerEvents = this.registerEvents.bind(this), this.getParticipantsStats = this.getParticipantsStats.bind(this), this._onStartCommand = this._onStartCommand.bind(this), this._onStopCommand = this._onStopCommand.bind(this), this._onPingCommand = this._onPingCommand.bind(this), this._doStartRecording = this._doStartRecording.bind(this), this._doStopRecording = this._doStopRecording.bind(this), this._updateStats = this._updateStats.bind(this), this._switchToNewSession = this._switchToNewSession.bind(this) - } - registerEvents(e) { - this._registered || (this._conference = e, this._conference && (this._conference.addCommandListener(I6, this._onStopCommand), this._conference.addCommandListener(M6, this._onStartCommand), this._conference.addCommandListener(N6, this._onPingCommand), this._registered = !0), this._conference.isModerator() || this._conference.sendCommandOnce(N6, {})) - } - set onStateChanged(e) { - this._onStateChanged = e - } - set onNotify(e) { - this._onNotify = e - } - set onWarning(e) { - this._onWarning = e - } - startRecording() { - this.registerEvents(), this._conference && this._conference.isModerator() ? (this._conference.removeCommand(I6), this._conference.sendCommand(M6, { - attributes: { - sessionToken: this._getRandomToken(), - format: this._format - } - })) : this._onWarning && this._onWarning("localRecording.messages.notModerator") - } - stopRecording() { - this._conference && (this._conference.isModerator() ? (this._conference.removeCommand(M6), this._conference.sendCommand(I6, { - attributes: { - sessionToken: this._currentSessionToken - } - })) : this._onWarning && this._onWarning("localRecording.messages.notModerator")) - } - downloadRecordedData(e) { - this._adapters[e] ? this._adapters[e].exportRecordedData().then((t => { - const { - data: n, - format: a - } = t; - ! function(e, t = "recording.ogg") { - const n = window.URL.createObjectURL(e), - a = document.createElement("a"); - a.style = "display: none", a.href = n, a.download = t, document.body.appendChild(a), a.click(), document.body.removeChild(a) - }(n, `session_${e}_${this._conference.myUserId()}.${a}`) - })).catch((t => { - b6.error(`Failed to download audio for session ${e}. Error: ${t}`) - })) : b6.error(`Invalid session token for download ${e}`) - } - setMicDevice(e) { - e !== this._micDeviceId && (this._micDeviceId = String(e), this._state === L6.RECORDING && (b6.log("Before switching microphone..."), this._adapters[this._currentSessionToken].setMicDevice(this._micDeviceId).then((() => { - b6.log("Finished switching microphone.") - })).catch((() => { - b6.error("Failed to switch microphone") - }))), b6.log(`Switch microphone to ${this._micDeviceId}`)) - } - setMuted(e) { - this._isMuted = Boolean(e), this._state === L6.RECORDING && this._adapters[this._currentSessionToken].setMuted(this._isMuted) - } - switchFormat(e) { - R6.has(e) ? (this._format = e, b6.log(`Recording format switched to ${e}`)) : b6.log(`Unknown format ${e}. Ignoring...`) - } - getLocalStats() { - return { - currentSessionToken: this._currentSessionToken, - isRecording: this._state === L6.RECORDING, - recordedBytes: 0, - recordedLength: 0 - } - } - getParticipantsStats() { - const e = this._conference.getParticipants().map((e => ({ - id: e.getId(), - displayName: e.getDisplayName(), - recordingStats: r.parse(e.getProperty(z6) || "{}"), - isSelf: !1 - }))), - t = {}; - for (let n = 0; n < e.length; ++n) t[e[n].id] = e[n]; - const n = this._conference.myUserId(); - return t[n] = { - id: n, - displayName: Ni.t("localRecording.me"), - recordingStats: this.getLocalStats(), - isSelf: !0 - }, t - } - _changeState(e) { - this._state !== e && (b6.log(`state change: ${this._state.toString()} -> ${e.toString()}`), this._state = e) - } - _updateStats() { - this._conference && this._conference.setLocalParticipantProperty(z6, JSON.stringify(this.getLocalStats())) - } - _onStartCommand(e) { - const { - sessionToken: t, - format: n - } = e.attributes; - this._state === L6.IDLE ? (this._changeState(L6.STARTING), this._switchToNewSession(t, n), this._doStartRecording()) : this._state === L6.RECORDING && this._currentSessionToken !== t && (this._changeState(L6.STOPPING), this._doStopRecording().then((() => { - this._changeState(L6.STARTING), this._switchToNewSession(t, n), this._doStartRecording() - }))) - } - _onStopCommand(e) { - this._state === L6.RECORDING && this._currentSessionToken === e.attributes.sessionToken && (this._changeState(L6.STOPPING), this._doStopRecording()) - } - _onPingCommand() { - this._conference.isModerator() && (b6.log("Received ping, sending pong."), this._conference.sendCommandOnce("localRecPong", {})) - } - _getRandomToken() { - return Math.floor(1e8 * Math.random()) + 1 - } - _doStartRecording() { - if (this._state === L6.STARTING) { - const e = this._adapters[this._currentSessionToken]; - e.start(this._micDeviceId).then((() => { - this._changeState(L6.RECORDING), T6.beginSegment(this._currentSessionToken), b6.log("Local recording engaged."), this._onNotify && this._onNotify("localRecording.messages.engaged"), this._onStateChanged && this._onStateChanged(!0), e.setMuted(this._isMuted), this._updateStats() - })).catch((e => { - b6.error("Failed to start local recording.", e) - })) - } - } - _doStopRecording() { - if (this._state === L6.STOPPING) { - const e = this._currentSessionToken; - return this._adapters[this._currentSessionToken].stop().then((() => { - this._changeState(L6.IDLE), T6.endSegment(this._currentSessionToken), b6.log("Local recording unengaged."), this.downloadRecordedData(e); - const t = this._conference.isModerator() ? "localRecording.messages.finishedModerator" : "localRecording.messages.finished", - n = { - token: e - }; - this._onNotify && this._onNotify(t, n), this._onStateChanged && this._onStateChanged(!1), this._updateStats() - })).catch((e => { - b6.error("Failed to stop local recording.", e) - })) - } - return Promise.resolve() - } - _switchToNewSession(e, t) { - this._format = t, this._currentSessionToken = e, b6.log(`New session: ${this._currentSessionToken}, format: ${this._format}`), this._adapters[e] = this._createRecordingAdapter(), T6.createSession(e, this._format) - } - _createRecordingAdapter() { - switch (b6.debug(`[RecordingController] creating recording adapter for ${this._format} format.`), this._format) { - case "ogg": - return new k6; - case "flac": - return new A6; - case "wav": - return new E6; - default: - throw new Error(`Unknown format: ${this._format}`) - } - } - }; - class q6 extends E.Component { - constructor(e) { - super(e), this.state = { - durationString: "" - } - } - componentDidMount() { - this._timer = setInterval((() => { - this.setState(((e, t) => { - const n = new Date; - return { - durationString: this._getDuration(n, t.recordingEngagedAt) - } - })); - try { - this.props.dispatch((e = F6.getParticipantsStats(), { - type: g6, - stats: e - })) - } catch (e) {} - var e - }), 1e3) - } - componentWillUnmount() { - this._timer && (clearInterval(this._timer), this._timer = null) - } - render() { - const { - isModerator: e, - t - } = this.props; - return x().createElement(IO, { - cancelKey: "dialog.close", - submitDisabled: !0, - titleKey: "localRecording.dialogTitle" - }, x().createElement("div", { - className: "localrec-control" - }, x().createElement("span", { - className: "localrec-control-info-label" - }, `${t("localRecording.moderator")}:`), x().createElement("span", { - className: "info-value" - }, t(e ? "localRecording.yes" : "localRecording.no"))), this._renderModeratorControls(), this._renderDurationAndFormat()) - } - _renderDurationAndFormat() { - const { - encodingFormat: e, - isEngaged: t, - t: n - } = this.props, { - durationString: a - } = this.state; - return t ? x().createElement("div", null, x().createElement("div", null, x().createElement("span", { - className: "localrec-control-info-label" - }, `${n("localRecording.duration")}:`), x().createElement("span", { - className: "info-value" - }, "" === a ? n("localRecording.durationNA") : a)), x().createElement("div", null, x().createElement("span", { - className: "localrec-control-info-label" - }, `${n("localRecording.encoding")}:`), x().createElement("span", { - className: "info-value" - }, e))) : null - } - _renderStats() { - const { - stats: e - } = this.props; - if (void 0 === e) return null; - const t = Object.keys(e); - return x().createElement("div", { - className: "localrec-participant-stats" - }, this._renderStatsHeader(), t.map(((e, t) => this._renderStatsLine(t, e)))) - } - _renderStatsLine(e, t) { - const { - stats: n - } = this.props; - let a = "localrec-participant-stats-item__status-dot "; - return a += n[t].recordingStats ? n[t].recordingStats.isRecording ? "status-on" : "status-off" : "status-unknown", x().createElement("div", { - className: "localrec-participant-stats-item", - key: e - }, x().createElement("div", { - className: "localrec-participant-stats-item__status" - }, x().createElement("span", { - className: a - })), x().createElement("div", { - className: "localrec-participant-stats-item__name" - }, n[t].displayName || t), x().createElement("div", { - className: "localrec-participant-stats-item__sessionid" - }, n[t].recordingStats.currentSessionToken)) - } - _renderStatsHeader() { - const { - t: e - } = this.props; - return x().createElement("div", { - className: "localrec-participant-stats-item" - }, x().createElement("div", { - className: "localrec-participant-stats-item__status" - }), x().createElement("div", { - className: "localrec-participant-stats-item__name" - }, e("localRecording.participant")), x().createElement("div", { - className: "localrec-participant-stats-item__sessionid" - }, e("localRecording.sessionToken"))) - } - _renderModeratorControls() { - const { - isModerator: e, - isEngaged: t, - t: n - } = this.props; - return e ? x().createElement("div", null, x().createElement("div", { - className: "localrec-control-action-links" - }, x().createElement("div", { - className: "localrec-control-action-link" - }, t ? x().createElement("a", { - onClick: this._onStop, - role: "button", - tabIndex: 0 - }, n("localRecording.stop")) : x().createElement("a", { - onClick: this._onStart, - role: "button", - tabIndex: 0 - }, n("localRecording.start")))), x().createElement("div", null, x().createElement("span", { - className: "localrec-control-info-label" - }, `${n("localRecording.participantStats")}:`)), this._renderStats()) : null - } - _getDuration(e, t) { - return null == t ? "" : yr()(e - t).utc().format("HH:mm:ss") - } - _onStart() { - F6.startRecording() - } - _onStop() { - F6.stopRecording() - } + _onToggleDialogVisibility() { + Da(ln("overflow")), this.props.onVisibilityChange(!this.props.isOpen) } - const B6 = Li(ze((function(e) { + } + const r9 = Ei(Ne((function(e) { + const { + overflowDrawer: t + } = e["features/toolbox"]; + return { + overflowDrawer: t, + reactionsQueue: PZ(e) + } + }))(a9)); class i9 extends x.Component { + render() { const { - encodingFormat: t, - isEngaged: n, - recordingEngagedAt: a, - stats: r - } = e["features/local-recording"]; - return { - encodingFormat: t, - isModerator: Rh(e).role === Th, - isEngaged: n, - recordingEngagedAt: a, - stats: r - } - }))(q6)); - - function U6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _localParticipant: e + } = this.props; + return C().createElement(sp, { + participantId: e.id, + size: 20 + }) } - const H6 = Li(ze()(class extends Vw { - constructor(...e) { - super(...e), U6(this, "accessibilityLabel", "toolbar.accessibilityLabel.localRecording"), U6(this, "icon", Rd), U6(this, "label", "localRecording.dialogTitle"), U6(this, "tooltip", "localRecording.dialogTitle") - } - _handleClick() { - const { - dispatch: e, - handleClick: t - } = this.props; - t ? t() : (Ma(hn("local.recording")), e(sP(B6))) - } - })); - class V6 extends E.Component { - render() { - return !this.props._isEngaged || this.props._iAmRecorder ? null : x().createElement(Fw, { - content: this.props.t("localRecording.labelToolTip"), - position: "bottom" - }, x().createElement(qW, { - className: "local-rec", - text: this.props.t("localRecording.label") - })) - } + } + const o9 = Ei(Ne((function(e) { + return { + _localParticipant: Uh(e) } - const W6 = Li(ze((function(e) { - const { - isEngaged: t - } = e["features/local-recording"], { - iAmRecorder: n - } = e["features/base/config"]; - return { - _isEngaged: t, - _iAmRecorder: n - } - }))(V6)), - Y6 = "PARTICIPANTS_PANE_CLOSE", - G6 = "PARTICIPANTS_PANE_OPEN", - K6 = () => ({ - type: Y6 - }); + }))(i9)); - function $6(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const J6 = Li(ze((function(e) { - const { - isOpen: t - } = e["features/participants-pane"]; - return { - _isOpen: t - } - }))(class extends Vw { - constructor(...e) { - super(...e), $6(this, "accessibilityLabel", "toolbar.accessibilityLabel.participants"), $6(this, "icon", vd), $6(this, "label", "toolbar.participants"), $6(this, "tooltip", "toolbar.participants") - } - _handleClick() { - const { - handleClick: e - } = this.props; - e && e() - } - _isToggled() { - return this.props._isOpen - } - })), - Z6 = "TOGGLE_REACTIONS_VISIBLE", - Q6 = "ADD_REACTION_BUFFER", - X6 = "FLUSH_REACTION_BUFFER", - e4 = "ADD_REACTION_MESSAGE", - t4 = "SET_REACTION_QUEUE", - n4 = "SEND_REACTIONS", - a4 = "PUSH_REACTIONS", - r4 = "SHOW_SOUNDS_NOTIFICATION"; - - function i4(e) { - return { - type: t4, - value: e - } + function s9(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const l9 = Ei(Ne((e => { + const { + defaultLocalDisplayName: t + } = e["features/base/config"]; + return { + _defaultLocalDisplayName: t, + _localParticipant: Uh(e), + _unclickable: !interfaceConfig.SETTINGS_SECTIONS.includes("profile"), + customClass: "profile-button-avatar" + } + }))(class extends bC { + constructor() { + super(...arguments), s9(this, "accessibilityLabel", "toolbar.accessibilityLabel.profile"), s9(this, "icon", o9) + } + get label() { + const { + _defaultLocalDisplayName: e, + _localParticipant: t + } = this.props; + let n; + return n = null != t && t.name ? t.name : e, n } - - function o4(e) { - return { - type: Q6, - reaction: e - } + set label(e) {} + get tooltip() { + return this.label } - - function s4(e) { - return { - type: a4, - reactions: e - } + set tooltip(e) {} + _handleClick() { + const { + dispatch: e, + _unclickable: t, + handleClick: n + } = this.props; + n ? n() : t || (Da(ln("profile")), e(DX(jY.PROFILE))) } - class l4 extends nX { - constructor(e) { - super(e), this._onKeyDown = this._onKeyDown.bind(this), this._onClickHandler = this._onClickHandler.bind(this), this.state = { - increaseLevel: 0, - increaseTimeout: null - } - } - _onKeyDown(e) { - e.defaultPrevented || "Enter" === e.key && (e.preventDefault(), e.stopPropagation(), this.props.onClick()) - } - _onClickHandler() { - this.props.onClick(), clearTimeout(this.state.increaseTimeout); - const e = setTimeout((() => { - this.setState({ - increaseLevel: 0 - }) - }), 500); - this.setState((t => ({ - increaseLevel: t.increaseLevel + 1, - increaseTimeout: e - }))) - } - _renderButton(e) { - return x().createElement("div", { - "aria-label": this.props.accessibilityLabel, - "aria-pressed": this.props.toggled, - className: "toolbox-button", - onClick: this._onClickHandler, - onKeyDown: this._onKeyDown, - role: "button", - tabIndex: 0 - }, this.props.tooltip ? x().createElement(Fw, { - content: this.props.tooltip, - position: this.props.tooltipPosition - }, e) : e) - } - _renderIcon() { - const { - toggled: e, - icon: t, - label: n - } = this.props, { - increaseLevel: a - } = this.state; - return x().createElement("div", { - className: "toolbox-icon " + (e ? "toggled" : "") - }, x().createElement("span", { - className: `emoji increase-${a>12?12:a}` - }, t), n && x().createElement("span", { - className: "text" - }, n)) - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(l4, "defaultProps", { - tooltipPosition: "top" - }); - const c4 = l4; - class u4 extends E.Component { - constructor(e) { - super(e), this.state = { - index: e.index % 21 - } - } - componentDidMount() { - setTimeout((() => this.props.removeReaction(this.props.uid)), 5e3) - } - render() { - const { - reaction: e, - uid: t - } = this.props, { - index: n - } = this.state; - return x().createElement("div", { - className: `reaction-emoji reaction-${n}`, - id: t - }, fJ[e].emoji) - } + _isDisabled() { + return this.props._unclickable } - const d4 = { - removeReaction: function(e) { - return (t, n) => { - t(i4(n()["features/reactions"].queue.filter((t => t.uid !== e)))) - } - } - }, - p4 = ze(null, d4)(u4); + })), c9 = () => C().createElement("hr", { + className: "overflow-menu-hr" + }); - function h4() { - return { - type: Z6 - } + function u9(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const d9 = Ei(Ne((e => { + let t = c.default.isDesktopSharingEnabled(); + const { + enableFeaturesBasedOnToken: n + } = e["features/base/config"]; + let a; + return n && (t = e["features/base/participants"].haveParticipantWithScreenSharingFeature, a = "dialog.shareYourScreenDisabled"), { + _desktopSharingDisabledTooltipKey: a, + _desktopSharingEnabled: t, + _screensharing: yY(e) + } + }))(class extends bC { + constructor() { + super(...arguments), u9(this, "accessibilityLabel", "toolbar.accessibilityLabel.shareYourScreen"), u9(this, "label", "toolbar.startScreenSharing"), u9(this, "icon", Gu), u9(this, "toggledLabel", "toolbar.stopScreenSharing"), u9(this, "tooltip", "toolbar.accessibilityLabel.shareYourScreen") + } + get tooltip() { + const { + _desktopSharingDisabledTooltipKey: e, + _desktopSharingEnabled: t, + _screensharing: n + } = this.props; + return t ? n ? "toolbar.stopScreenSharing" : "toolbar.startScreenSharing" : e } - - function m4() { - return { - type: r4 - } + set tooltip(e) {} + _handleClick() { + const { + handleClick: e + } = this.props; + e && e() } - - function f4(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _isToggled() { + return this.props._screensharing } - class g4 extends E.Component { - constructor(e) { - super(e), this._onToolbarToggleRaiseHand = this._onToolbarToggleRaiseHand.bind(this), this._getReactionButtons = this._getReactionButtons.bind(this) - } - componentDidMount() { - this.props._dockToolbox(!0) - } - componentWillUnmount() { - this.props._dockToolbox(!1) - } - _onToolbarToggleRaiseHand() { - const { - dispatch: e, - _raisedHand: t - } = this.props; - Ma(hn("raise.hand", { - enable: !t - })), this._doToggleRaiseHand(), e(h4()) - } - _doToggleRaiseHand() { - const { - _localParticipantID: e, - _raisedHand: t - } = this.props, n = !t; - this.props.dispatch(lk({ - id: e, - local: !0, - raisedHand: n - })), APP.API.notifyRaiseHandUpdated(e, n) - } - _getReactionButtons() { - var e; - const { - t, - dispatch: n - } = this.props; - let a = "Alt"; - return (null === (e = window.navigator) || void 0 === e ? void 0 : e.platform) && -1 !== window.navigator.platform.indexOf("Mac") && (a = "⌥"), Object.keys(fJ).map((e => x().createElement(c4, { - accessibilityLabel: t(`toolbar.accessibilityLabel.${e}`), - icon: fJ[e].emoji, - key: e, - onClick: function() { - n(o4(e)), Ma({ - action: "clicked", - actionSubject: e, - source: "reaction.button", - type: Wt - }) - }, - toggled: !1, - tooltip: `${t(`toolbar.${e}`)} (${a} + ${fJ[e].shortcutChar})` - }))) - } - render() { - const { - _raisedHand: e, - t, - overflowMenu: n, - _isMobile: a - } = this.props; - return x().createElement("div", { - className: "reactions-menu " + (n ? "overflow" : "") - }, x().createElement("div", { - className: "reactions-row" - }, this._getReactionButtons()), a && x().createElement("div", { - className: "raise-hand-row" - }, x().createElement(c4, { - accessibilityLabel: t("toolbar.accessibilityLabel.raiseHand"), - icon: "✋", - key: "raisehand", - label: `${t("toolbar."+(e?"lowerYourHand":"raiseYourHand"))}\n ${n?"":" (R)"}`, - onClick: this._onToolbarToggleRaiseHand, - toggled: !0 - }))) - } + _isDisabled() { + return !this.props._desktopSharingEnabled } - const b4 = Li(ze((function(e) { - const t = Rh(e); - return { - _localParticipantID: t.id, - _isMobile: Sa(), - _raisedHand: t.raisedHand - } - }), (function(e) { - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - f4(e, t, n[t]) - })) - } - return e - }({ - dispatch: e - }, se({ - _dockToolbox: FV - }, e)) - }))(g4)); - - function y4(e) { - return e["features/reactions"].visible - } - const v4 = function({ - children: e - }) { - const t = Pe((e => y4(e))), - n = Ce(); - return x().createElement("div", { - className: "reactions-menu-popup" - }, x().createElement(eE, { - content: x().createElement(b4, null), - isOpen: t, - onClose: function() { - n(h4()) - }, - placement: "top" - }, e)) - }, - k4 = Li(ze((function(e) { - const t = Rh(e); - return { - _reactionsEnabled: _J(e), - isOpen: y4(e), - isMobile: Sa(), - reactionsQueue: bJ(e), - raisedHand: null == t ? void 0 : t.raisedHand - } - }))((function({ - _reactionsEnabled: e, - dispatch: t, - handleClick: n, - isOpen: a, - isMobile: r, - raisedHand: i, - reactionsQueue: o, - t: s - }) { - const l = x().createElement(rX, { - accessibilityLabel: s("toolbar.accessibilityLabel.raiseHand"), - icon: Td, - key: "raise-hand", - onClick: n, - toggled: i, - tooltip: s("toolbar.raiseHand") - }); - return x().createElement("div", { - className: "reactions-menu-popup-container" - }, x().createElement(v4, null, !e || r ? l : x().createElement(Yj, { - ariaControls: "reactions-menu-dialog", - ariaExpanded: a, - ariaHasPopup: !0, - ariaLabel: s("toolbar.accessibilityLabel.reactionsMenu"), - icon: tl, - iconDisabled: !1, - iconId: "reactions-menu-button", - iconTooltip: s("toolbar." + (a ? "closeReactionsMenu" : "openReactionsMenu")), - onIconClick: function() { - t(h4()) - } - }, l)), o.map((({ - reaction: e, - uid: t - }, n) => x().createElement(p4, { - index: n, - key: t, - reaction: e, - uid: t - })))) - }))), - _4 = "TOGGLE_E2EE", - w4 = "SET_EVERYONE_ENABLED_E2EE", - S4 = "SET_EVERYONE_SUPPORT_E2EE", - E4 = "SET_MAX_MODE"; + })); - function x4(e) { - return { - type: _4, - enabled: e - } + function p9(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const h9 = Ei(Ne((function(e) { + const { + enabled: t + } = e["features/base/audio-only"], n = e["features/base/tracks"]; + return { + _audioOnly: Boolean(t), + _videoMuted: lh(n), + visible: mh(e) + } + }))(class extends bC { + constructor() { + super(...arguments), p9(this, "accessibilityLabel", "toolbar.accessibilityLabel.toggleCamera"), p9(this, "icon", Ko), p9(this, "label", "toolbar.toggleCamera") + } + _handleClick() { + const { + dispatch: e, + handleClick: t + } = this.props; + t ? t() : e(jh()) } - - function C4(e) { - return { - type: w4, - everyoneEnabledE2EE: e - } + _isDisabled() { + return this.props._audioOnly || this.props._videoMuted } + })); - function A4(e) { - return { - type: S4, - everyoneSupportE2EE: e + function m9() { + return m9 = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } + return e + }, m9.apply(this, arguments) + } + class f9 extends x.Component { + constructor(e) { + super(e), this._onMouseOut = this._onMouseOut.bind(this), this._onMouseOver = this._onMouseOver.bind(this), this._onSetOverflowVisible = this._onSetOverflowVisible.bind(this), this._onTabIn = this._onTabIn.bind(this), this._onShortcutToggleChat = this._onShortcutToggleChat.bind(this), this._onShortcutToggleFullScreen = this._onShortcutToggleFullScreen.bind(this), this._onShortcutToggleParticipantsPane = this._onShortcutToggleParticipantsPane.bind(this), this._onShortcutToggleRaiseHand = this._onShortcutToggleRaiseHand.bind(this), this._onShortcutToggleScreenshare = this._onShortcutToggleScreenshare.bind(this), this._onShortcutToggleVideoQuality = this._onShortcutToggleVideoQuality.bind(this), this._onToolbarToggleParticipantsPane = this._onToolbarToggleParticipantsPane.bind(this), this._onToolbarOpenVideoQuality = this._onToolbarOpenVideoQuality.bind(this), this._onToolbarToggleChat = this._onToolbarToggleChat.bind(this), this._onToolbarToggleFullScreen = this._onToolbarToggleFullScreen.bind(this), this._onToolbarToggleRaiseHand = this._onToolbarToggleRaiseHand.bind(this), this._onToolbarToggleScreenshare = this._onToolbarToggleScreenshare.bind(this), this._onShortcutToggleTileView = this._onShortcutToggleTileView.bind(this), this._onEscKey = this._onEscKey.bind(this) } - - function j4(e) { - return { - type: E4, - maxMode: e + componentDidMount() { + const { + _toolbarButtons: e, + t, + dispatch: n, + _reactionsEnabled: a + } = this.props; + if ([Jn("videoquality", e) && { + character: "A", + exec: this._onShortcutToggleVideoQuality, + helpDescription: "toolbar.callQuality" + }, Jn("chat", e) && { + character: "C", + exec: this._onShortcutToggleChat, + helpDescription: "keyboardShortcuts.toggleChat" + }, Jn("desktop", e) && { + character: "D", + exec: this._onShortcutToggleScreenshare, + helpDescription: "keyboardShortcuts.toggleScreensharing" + }, Jn("participants-pane", e) && { + character: "P", + exec: this._onShortcutToggleParticipantsPane, + helpDescription: "keyboardShortcuts.toggleParticipantsPane" + }, Jn("raisehand", e) && { + character: "R", + exec: this._onShortcutToggleRaiseHand, + helpDescription: "keyboardShortcuts.raiseHand" + }, Jn("fullscreen", e) && { + character: "S", + exec: this._onShortcutToggleFullScreen, + helpDescription: "keyboardShortcuts.fullScreen" + }, Jn("tileview", e) && { + character: "W", + exec: this._onShortcutToggleTileView, + helpDescription: "toolbar.tileViewToggle" + }].forEach((e => { + "object" == typeof e && APP.keyboardshortcut.registerShortcut(e.character, null, e.exec, e.helpDescription) + })), a) { + const e = Object.keys(TZ).map((e => ({ + character: TZ[e].shortcutChar, + exec: () => { + n(H6(e)), Da(on(`reaction.${e}`)) + }, + helpDescription: t(`toolbar.reaction${e.charAt(0).toUpperCase()}${e.slice(1)}`), + altKey: !0 + }))); + e.forEach((e => { + APP.keyboardshortcut.registerShortcut(e.character, null, e.exec, e.helpDescription, e.altKey) + })) } } - const P4 = "E2EE_OFF_SOUND", - D4 = "E2EE_ON_SOUND", - T4 = "max-mode-enabled", - O4 = "max-mode-threshold-exceeded", - M4 = "max-mode-disabled"; - - function I4(e) { - const t = qe(e), - { - everyoneSupportE2EE: n - } = t["features/e2ee"], - { - e2eeSupported: a - } = t["features/base/conference"], - r = Bh(t); - return void 0 === n && 1 === r ? a : n - } - class N4 extends E.Component { - static getDerivedStateFromProps(e, t) { - return e._toggled !== t.toggled ? { - toggled: e._toggled - } : null - } - constructor(e) { - super(e), this.state = { - toggled: !1 - }, this._onToggle = this._onToggle.bind(this) - } - render() { - const { - _descriptionResource: e, - _enabled: t, - _e2eeLabels: n, - _everyoneSupportE2EE: a, - t: r - } = this.props, { - toggled: i - } = this.state, o = (null == n ? void 0 : n.description) || r(e), s = (null == n ? void 0 : n.label) || r("dialog.e2eeLabel"), l = (null == n ? void 0 : n.warning) || r("dialog.e2eeWarning"); - return x().createElement("div", { - id: "e2ee-section" - }, x().createElement("p", { - "aria-live": "polite", - className: "description", - id: "e2ee-section-description" - }, o, !a && x().createElement("br", null), !a && l), x().createElement("div", { - className: "control-row" - }, x().createElement("label", { - htmlFor: "e2ee-section-switch" - }, s), x().createElement(Oj, { - disabled: !t, - id: "e2ee-section-switch", - onValueChange: this._onToggle, - value: i - }))) - } - _onToggle() { - const e = !this.state.toggled; - this.setState({ - toggled: e - }), Ma({ - action: `enabled.${String(e)}`, - actionSubject: "e2ee" - }), this.props.dispatch(x4(e)) - } + componentDidUpdate(e) { + const { + _dialog: t, + dispatch: n + } = this.props; + e._overflowMenuVisible && !e._dialog && t && (this._onSetOverflowVisible(!1), n(TI(!1))) } - const z4 = Li(ze((function(e) { + componentWillUnmount() { + ["A", "C", "D", "R", "S"].forEach((e => APP.keyboardshortcut.unregisterShortcut(e))), this.props._reactionsEnabled && Object.keys(TZ).map((e => TZ[e].shortcutChar)).forEach((e => APP.keyboardshortcut.unregisterShortcut(e, !0))) + } + render() { const { - enabled: t, - maxMode: n - } = e["features/e2ee"], { - e2eeLabels: a - } = e["features/base/config"]; - let r = ""; - return r = a ? void 0 : n === O4 ? "dialog.e2eeDisabledDueToMaxModeDescription" : n === T4 ? t ? "dialog.e2eeWillDisableDueToMaxModeDescription" : "dialog.e2eeDisabledDueToMaxModeDescription" : "dialog.e2eeDescription", { - _descriptionResource: r, - _e2eeLabels: a, - _enabled: n === M4 || t, - _toggled: t, - _everyoneSupportE2EE: I4(e) - } - }))(N4)); - class R4 extends E.Component { - render() { - if (!this.props._showLabel) return null; - const { - _e2eeLabels: e, - t - } = this.props, n = (null == e ? void 0 : e.labelToolTip) || t("e2ee.labelToolTip"); - return x().createElement(Fw, { - content: n, - position: "bottom" - }, x().createElement(qW, { - className: "label--green", - icon: Ec - })) - } + _chatOpen: e, + _visible: t, + _toolbarButtons: n + } = this.props, a = `new-toolbox ${t?"visible":""} ${n.length?"":"no-buttons"} ${e?"shift-right":""}`; + return C().createElement("div", { + className: a, + id: "new-toolbox" + }, this._renderToolboxContent()) + } + _onEscKey(e) { + "Escape" === e.key && (e.stopPropagation(), this._closeOverflowMenuIfOpen()) + } + _closeOverflowMenuIfOpen() { + const { + dispatch: e, + _overflowMenuVisible: t + } = this.props; + t && e(AI(!1)) + } + _doOpenVideoQuality() { + this.props.dispatch(VI(D7)) } - const L4 = Li(ze((function(e) { + _doToggleChat() { + this.props.dispatch(aV()) + } + _doToggleFullScreen() { + const e = !this.props._fullScreen; + this.props.dispatch(function(e) { return { - _e2eeLabels: e["features/base/config"].e2eeLabels, - _showLabel: e["features/e2ee"].everyoneEnabledE2EE + type: _M, + fullScreen: e } - }))(R4)), - F4 = ["inbound-sip-jibri@jitsi.net", "outbound-sip-jibri@jitsi.net"], - q4 = "KNOCKING_PARTICIPANT_SOUND"; - - function B4({ - action: e, - children: t, - className: n, - participant: a, - id: r, - testId: i - }) { - const o = Ce(), - s = (0, E.useCallback)((() => o(e(a.id))), [o, a]); - return x().createElement("button", { - className: n, - "data-testid": i, - id: r, - onClick: s, - type: "button" - }, t) + }(e)) } - - function U4({ - approveButtonText: e, - onApprove: t, - onReject: n, - participants: a, - testIdPrefix: r, - rejectButtonText: i - }) { - return x().createElement("ul", { - className: "knocking-participants-container" - }, a.map((a => x().createElement("li", { - className: "knocking-participant", - key: a.id - }, x().createElement(ZG, { - displayName: a.name, - size: 48, - testId: `${r}.avatar`, - url: a.loadableAvatarUrl - }), x().createElement("div", { - className: "details" - }, x().createElement("span", { - "data-testid": `${r}.name` - }, a.name), a.email && !F4.includes(a.email) && x().createElement("span", { - "data-testid": `${r}.email` - }, a.email)), x().createElement(B4, { - action: t, - className: "primary", - id: "unmute-button", - participant: a, - testId: `${r}.allow` - }, e), x().createElement(B4, { - action: n, - className: "borderLess", - id: "dismiss-button", - participant: a, - testId: `${r}.reject` - }, i))))) - } - const H4 = "KNOCKING_PARTICIPANT_ARRIVED_OR_UPDATED", - V4 = "KNOCKING_PARTICIPANT_LEFT", - W4 = "SET_LOBBY_MODE_ENABLED", - Y4 = "SET_KNOCKING_STATE", - G4 = "TOGGLE_LOBBY_VISIBILITY", - K4 = "SET_PASSWORD_JOIN_FAILED"; - - function $4(e) { - return { - participant: e, - type: H4 - } + _doToggleRaiseHand() { + const { + _raisedHand: e + } = this.props; + this.props.dispatch(dS(!e)) } - - function J4(e) { - return (t, n) => { - const a = yI(n); - a && a.lobbyApproveAccess(e) + _doToggleScreenshare() { + const { + _backgroundType: e, + _desktopSharingEnabled: t, + _localVideo: n, + _virtualSource: a, + dispatch: r + } = this.props; + if (e === Pp) { + const e = { + enabled: !1, + backgroundType: Mp, + selectedThumbnail: Mp, + backgroundEffectEnabled: !1 + }; + return a.dispose(), void r(Sp(e, n)) } + t && r(AY()) } - - function Z4(e) { - return (t, n) => { - const a = yI(n); - a && a.lobbyDenyAccess(e) - } + _doToggleVideoQuality() { + this.props.dispatch(WI(D7)) } - - function Q4(e) { + _doToggleTileView() { + this.props.dispatch(nE()) + } + _getAllButtons() { + const { + _feedbackConfigured: e, + _isIosMobile: t, + _isMobile: n, + _screenSharing: a + } = this.props, r = { + key: "microphone", + Content: VX, + group: 0 + }, i = { + key: "camera", + Content: ZX, + group: 0 + }, o = this._isProfileVisible() && { + key: "profile", + Content: l9, + group: 1 + }, s = { + key: "chat", + Content: LW, + handleClick: this._onToolbarToggleChat, + group: 2 + }; return { - failed: e, - type: K4 + microphone: r, + camera: i, + profile: o, + desktop: this._showDesktopSharingButton() && { + key: "desktop", + Content: d9, + handleClick: this._onToolbarToggleScreenshare, + group: 2 + }, + chat: s, + raisehand: { + key: "raisehand", + Content: n8, + handleClick: this._onToolbarToggleRaiseHand, + group: 2 + }, + participants: { + key: "participants-pane", + Content: I6, + handleClick: this._onToolbarToggleParticipantsPane, + group: 2 + }, + invite: { + key: "invite", + Content: I$, + group: 2 + }, + tileview: { + key: "tileview", + Content: MI, + group: 2 + }, + toggleCamera: { + key: "toggle-camera", + Content: h9, + group: 2 + }, + videoQuality: { + key: "videoquality", + Content: s7, + handleClick: this._onToolbarOpenVideoQuality, + group: 2 + }, + fullscreen: !t && { + key: "fullscreen", + Content: Q7, + handleClick: this._onToolbarToggleFullScreen, + group: 2 + }, + security: { + key: "security", + alias: "info", + Content: i7, + group: 2 + }, + cc: { + key: "closedcaptions", + Content: nF, + group: 2 + }, + recording: { + key: "recording", + Content: EK, + group: 2 + }, + localRecording: { + key: "localrecording", + Content: y0, + group: 2 + }, + livestreaming: { + key: "livestreaming", + Content: fG, + group: 2 + }, + muteEveryone: { + key: "mute-everyone", + Content: K7, + group: 2 + }, + muteVideoEveryone: { + key: "mute-video-everyone", + Content: J7, + group: 2 + }, + shareVideo: { + key: "sharedvideo", + Content: c6, + group: 3 + }, + shareAudio: this._showAudioSharingButton() && { + key: "shareaudio", + Content: kY, + group: 3 + }, + etherpad: { + key: "etherpad", + Content: y1, + group: 3 + }, + virtualBackground: !a && { + key: "select-background", + Content: O7, + group: 3 + }, + speakerStats: { + key: "stats", + Content: CQ, + group: 3 + }, + settings: { + key: "settings", + Content: OY, + group: 4 + }, + shortcuts: !n && eX.getEnabled() && { + key: "shortcuts", + Content: GZ, + group: 4 + }, + embed: this._isEmbedMeetingVisible() && { + key: "embedmeeting", + Content: d1, + group: 4 + }, + feedback: e && { + key: "feedback", + Content: E1, + group: 4 + }, + download: { + key: "download", + Content: U7, + group: 4 + }, + help: { + key: "help", + Content: Y7, + group: 4 + } } } - - function X4() { - return async (e, t) => { - const n = t(), - { - membersOnly: a - } = n["features/base/conference"], - r = Rh(n); - e(pN(a)), EI(n, a), a.joinLobby(r.name, r.email), e({ - knocking: !0, - type: Y4 - }) - } + _overwriteButtonsClickHandlers(e) { + var t; + "undefined" != typeof APP && null !== (t = this.props._buttonsWithNotifyClick) && void 0 !== t && t.length && Object.values(e).forEach((e => { + "object" == typeof e && this.props._buttonsWithNotifyClick.includes(e.key) && (e.handleClick = () => APP.API.notifyToolbarButtonClicked(e.key)) + })) } - - function e8(e) { - return async (t, n) => { - const a = yI(n); - e ? a.enableLobby() : a.disableLobby() + _getVisibleButtons() { + const { + _clientWidth: e, + _toolbarButtons: t + } = this.props, n = this._getAllButtons(); + this._overwriteButtonsClickHandlers(n); + const a = Jn("hangup", t), + { + order: r + } = uI.find((t => { + let { + width: n + } = t; + return e > n + })) || uI[uI.length - 1]; + let i = r.length + 2; + const o = Object.keys(n), + s = [...r.map((e => n[e])), ...Object.values(n).filter(((e, t) => !r.includes(o[t])))].filter(Boolean).filter((e => { + let { + key: n, + alias: a = dI + } = e; + return Jn(n, t) || Jn(a, t) + })); + return a && (i -= 1), i < s.length && (i -= 1), { + mainMenuButtons: s.slice(0, i), + overflowMenuButtons: s.slice(i) } } - - function t8() { - return { - type: G4, - visible: !1 - } + _onMouseOut() { + const { + _overflowMenuVisible: e, + dispatch: t + } = this.props; + !e && t(TI(!1)) } - - function n8(e) { - return e["features/lobby"].lobbyEnabled + _onMouseOver() { + this.props.dispatch(TI(!0)) } - - function a8(e) { - return e["features/lobby"].knockingParticipants + _onSetOverflowVisible(e) { + this.props.dispatch(AI(e)), this.props.dispatch(TI(e)) } - - function r8(e) { - return e["features/lobby"].lobbyVisible + _onShortcutToggleChat() { + if (Da(on("toggle.chat", { + enable: !this.props._chatOpen + })), "" !== window.getSelection().toString()) return !1; + this._doToggleChat() } - class i8 extends E.PureComponent { - constructor(e) { - super(e), this._onRespondToParticipant = this._onRespondToParticipant.bind(this) - } - _onRespondToParticipant(e, t) { - return () => { - this.props.dispatch(function(e, t) { - return async (n, a) => { - const r = yI(a); - r && (t ? r.lobbyApproveAccess(e) : r.lobbyDenyAccess(e)) + _onShortcutToggleParticipantsPane() { + Da(on("toggle.participants-pane", { + enable: !this.props._participantsPaneOpen + })), this._onToolbarToggleParticipantsPane() + } + _onShortcutToggleVideoQuality() { + Da(on("video.quality")), this._doToggleVideoQuality() + } + _onShortcutToggleTileView() { + Da(on("toggle.tileview", { + enable: !this.props._tileViewEnabled + })), this._doToggleTileView() + } + _onShortcutToggleFullScreen() { + Da(on("toggle.fullscreen", { + enable: !this.props._fullScreen + })), this._doToggleFullScreen() + } + _onShortcutToggleRaiseHand() { + Da(on("toggle.raise.hand", qt, { + enable: !this.props._raisedHand + })), this._doToggleRaiseHand() + } + _onShortcutToggleScreenshare() { + Da(on("toggle.screen.sharing", qt, { + enable: !this.props._screenSharing + })), this._doToggleScreenshare() + } + _onTabIn() { + this.props._visible || this.props.dispatch(xI()) + } + _onToolbarToggleParticipantsPane() { + const { + dispatch: e, + _participantsPaneOpen: t + } = this.props; + e(t ? E0() : { + type: w0 + }) + } + _onToolbarOpenVideoQuality() { + Da(ln("video.quality")), this._doOpenVideoQuality() + } + _onToolbarToggleChat() { + Da(ln("toggle.chat", { + enable: !this.props._chatOpen + })), this._closeOverflowMenuIfOpen(), this._doToggleChat() + } + _onToolbarToggleFullScreen() { + Da(ln("toggle.fullscreen", { + enable: !this.props._fullScreen + })), this._closeOverflowMenuIfOpen(), this._doToggleFullScreen() + } + _onToolbarToggleRaiseHand() { + Da(ln("raise.hand", { + enable: !this.props._raisedHand + })), this._doToggleRaiseHand() + } + _onToolbarToggleScreenshare() { + Da(ln("toggle.screen.sharing", qt, { + enable: !this.props._screenSharing + })), this._closeOverflowMenuIfOpen(), this._doToggleScreenshare() + } + _showAudioSharingButton() { + const { + _desktopSharingEnabled: e + } = this.props; + return e && bY() + } + _showDesktopSharingButton() { + const { + _desktopSharingEnabled: e, + _desktopSharingDisabledTooltipKey: t + } = this.props; + return e || t + } + _isEmbedMeetingVisible() { + return !this.props._isVpaasMeeting && !this.props._isMobile + } + _isProfileVisible() { + return !this.props._isProfileDisabled + } + _renderToolboxContent() { + const { + _isMobile: e, + _overflowMenuVisible: t, + _reactionsEnabled: n, + _toolbarButtons: a, + classes: r, + showDominantSpeakerName: i, + t: o + } = this.props, s = "toolbox-content" + (e ? " toolbox-content-mobile" : ""), { + mainMenuButtons: l, + overflowMenuButtons: c + } = this._getVisibleButtons(); + return C().createElement("div", { + className: s + }, C().createElement("div", m9({ + className: "toolbox-content-wrapper", + onFocus: this._onTabIn + }, e ? {} : { + onMouseOut: this._onMouseOut, + onMouseOver: this._onMouseOver + }), i && C().createElement(c1, null), C().createElement("div", { + className: "toolbox-content-items" + }, l.map((e => { + let { + Content: t, + key: n, + ...a + } = e; + return t !== c9 && C().createElement(t, m9({}, a, { + key: n + })) + })), Boolean(c.length) && C().createElement(r9, { + ariaControls: "overflow-menu", + isOpen: t, + key: "overflow-menu", + onVisibilityChange: this._onSetOverflowVisible, + showMobileReactions: n && c.find((e => { + let { + key: t + } = e; + return "raisehand" === t + })) + }, C().createElement("ul", { + "aria-label": o("toolbar.accessibilityLabel.moreActionsMenu"), + className: r.overflowMenu, + id: "overflow-menu", + onKeyDown: this._onEscKey, + role: "menu" + }, c.map(((e, t, a) => { + let { + group: r, + key: i, + Content: o, + ...s + } = e; + const l = t > 0 && a[t - 1].group !== r; + return ("raisehand" !== i || !n) && C().createElement(x.Fragment, { + key: `f${i}` + }, l && C().createElement(c9, { + key: `hr${r}` + }), C().createElement(o, m9({}, s, { + key: i, + showLabel: !0 + }))) + })))), C().createElement(V7, { + customClass: "hangup-button", + key: "hangup-button", + visible: Jn("hangup", a) + })))) + } + } + const g9 = Ei(Ne((function(e, t) { + const { + conference: n + } = e["features/base/conference"]; + let a = c.default.isDesktopSharingEnabled(); + const { + callStatsID: r, + disableProfile: i, + enableFeaturesBasedOnToken: o, + buttonsWithNotifyClick: s + } = e["features/base/config"], { + fullScreen: l, + overflowMenuVisible: u + } = e["features/toolbox"], d = Uh(e), p = nh(e["features/base/tracks"]), { + clientWidth: h + } = e["features/base/responsive-ui"]; + let m; + o && a && (a = Fe(e)["features/base/participants"].haveParticipantWithScreenSharingFeature, m = "dialog.shareYourScreenDisabled"); + let { + toolbarButtons: f + } = t; + const g = $n(e); + return f = f ? f.filter((e => Jn(e, g))) : g, { + _backgroundType: e["features/virtual-background"].backgroundType, + _buttonsWithNotifyClick: s, + _chatOpen: e["features/chat"].isOpen, + _clientWidth: h, + _conference: n, + _desktopSharingEnabled: a, + _desktopSharingDisabledTooltipKey: m, + _dialog: Boolean(e["features/base/dialog"].component), + _feedbackConfigured: Boolean(r), + _fullScreen: l, + _isProfileDisabled: Boolean(i), + _isIosMobile: ka(), + _isMobile: va(), + _isVpaasMeeting: cM(e), + _localParticipantID: null == d ? void 0 : d.id, + _localVideo: p, + _overflowMenuVisible: u, + _participantsPaneOpen: Om(e), + _raisedHand: am(d), + _reactionsEnabled: OZ(e), + _screenSharing: yY(e), + _tileViewEnabled: QS(e), + _toolbarButtons: f, + _virtualSource: e["features/virtual-background"].virtualSource, + _visible: fI(e) + } + }))(rL((e => ({ + overflowMenu: { + fontSize: 14, + listStyleType: "none", + padding: "8px 0", + backgroundColor: e.palette.ui03 + } + })))(f9))), b9 = e => ({ + position: "fixed", + right: window.innerWidth - e.x + 25 + "px" + }), y9 = e => ({ + position: "fixed", + left: `${e.x+e.width+25}px` + }), v9 = e => ({ + position: "fixed", + top: `${e.y+e.height+20}px` + }), k9 = (e, t) => ({ + top: `${Math.min(e.y+15,window.innerHeight-t.height-20)}px` + }), _9 = (e, t) => ({ + bottom: window.innerHeight - e.y - e.height - t.height / 2 + "px" + }), w9 = (e, t) => ({ + bottom: `${Math.min(window.innerHeight-e.y-e.height,window.innerHeight-t.height)}px` + }), S9 = e => ({ + right: window.innerWidth - e.x + 10 + "px" + }), E9 = (e, t) => ({ + right: window.innerWidth - e.x - t.width / 2 + "px" + }), x9 = e => ({ + left: `${e.x+e.width+10}px` + }); class C9 extends x.Component { + constructor(e) { + super(e), this.state = { + contextMenuStyle: null + }, this._onHideDialog = this._onHideDialog.bind(this), this._onShowDialog = this._onShowDialog.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._containerRef = C().createRef(), this._onEscKey = this._onEscKey.bind(this), this._onThumbClick = this._onThumbClick.bind(this), this._onTouchStart = this._onTouchStart.bind(this), this._setContextMenuRef = this._setContextMenuRef.bind(this), this._setContextMenuStyle = this._setContextMenuStyle.bind(this), this._getCustomDialogStyle = this._getCustomDialogStyle.bind(this) + } + componentDidMount() { + window.addEventListener("touchstart", this._onTouchStart) + } + componentWillUnmount() { + window.removeEventListener("touchstart", this._onTouchStart) + } + render() { + const { + children: e, + className: t, + content: n, + id: a, + overflowDrawer: r, + visible: i + } = this.props; + return r ? C().createElement("div", { + className: t, + id: a, + onClick: this._onShowDialog + }, e, C().createElement(n9, null, C().createElement(e9, { + isOpen: i, + onClose: this._onHideDialog + }, n))) : C().createElement("div", { + className: t, + id: a, + onClick: this._onThumbClick, + onKeyPress: this._onKeyPress, + onMouseEnter: this._onShowDialog, + onMouseLeave: this._onHideDialog, + ref: this._containerRef + }, i && C().createElement(t9, { + getRef: this._setContextMenuRef, + setSize: this._setContextMenuStyle, + style: this.state.contextMenuStyle + }, this._renderContent()), e) + } + _setContextMenuStyle(e) { + const t = this._getCustomDialogStyle(e); + this.setState({ + contextMenuStyle: t + }) + } + _setContextMenuRef(e) { + this._contextMenuRef = e + } + _onTouchStart(e) { + this.props.visible && !this.props.overflowDrawer && this._contextMenuRef && this._contextMenuRef.contains && !this._contextMenuRef.contains(e.target) && this._onHideDialog() + } + _onHideDialog() { + this.setState({ + contextMenuStyle: null + }), this.props.onPopoverClose && this.props.onPopoverClose() + } + _onShowDialog(e) { + e && e.stopPropagation(), this.props.disablePopover || this.props.onPopoverOpen() + } + _onThumbClick(e) { + e.stopPropagation() + } + _onKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.visible ? this._onHideDialog() : this._onShowDialog(e)) + } + _onEscKey(e) { + "Escape" === e.key && (e.preventDefault(), e.stopPropagation(), this.props.visible && this._onHideDialog()) + } + _getCustomDialogStyle(e) { + if (this._containerRef && this._containerRef.current) return ((e, t, n) => { + const a = this.props.position.split("-"); + switch (a[0]) { + case "top": { + let n = {}; + return n = a[1] ? "start" === a[1] ? S9(e) : x9(e) : E9(e, t), { + ...(r = e, { + position: "fixed", + bottom: window.innerHeight - r.y + 20 + "px" + }), + ...n + } + } + case "bottom": { + let n = {}; + return n = a[1] ? "start" === a[1] ? S9(e) : x9(e) : E9(e, t), { + ...v9(e), + ...n + } + } + case "left": { + let n = {}; + return n = a[1] ? "start" === a[1] ? k9(e, t) : w9(e, t) : _9(e, t), { + ...b9(e), + ...n + } + } + case "right": { + let n = {}; + return n = a[1] ? "start" === a[1] ? k9(e, t) : w9(e, t) : _9(e, t), { + ...y9(e), + ...n + } + } + default: + return { + ...b9(e), ...w9(e, t) } - }(e, t)) } - } + var r + })(this._containerRef.current.getBoundingClientRect(), e) } - const o8 = Li(ze((function(e) { - const t = n8(e), - n = a8(e); - return { - _participants: n, - _visible: t && Jh(e) && Boolean(n && n.length) - } - }))(class extends i8 { - render() { + _renderContent() { + const { + content: e, + paddedContent: t + } = this.props, n = iV("popover popupmenu", t && "padded-content"); + return C().createElement("div", { + className: n, + onKeyDown: this._onEscKey + }, e, !va() && C().createElement(C().Fragment, null, C().createElement("div", { + className: "popover-mousemove-padding-top" + }), C().createElement("div", { + className: "popover-mousemove-padding-right" + }), C().createElement("div", { + className: "popover-mousemove-padding-left" + }), C().createElement("div", { + className: "popover-mousemove-padding-bottom" + }))) + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(C9, "defaultProps", { + className: "", + id: "" + }); + const A9 = Ne((function(e) { + return { + overflowDrawer: e["features/toolbox"].overflowDrawer + } + }))(C9), T9 = [{ + colorClass: "status-high", + percent: 30, + tip: "connectionindicator.quality.good", + width: "100%" + }, { + colorClass: "status-med", + percent: 10, + tip: "connectionindicator.quality.nonoptimal", + width: "66%" + }, { + colorClass: "status-low", + percent: 0, + tip: "connectionindicator.quality.poor", + width: "33%" + }], D9 = Ei(Ne((function(e, t) { + var n, a; + const { + participantId: r + } = t, i = r ? Vh(e, r) : Uh(e); + return { + _connectionIndicatorInactiveDisabled: Boolean(null === (n = e["features/base/config"].connectionIndicators) || void 0 === n ? void 0 : n.inactiveDisabled), + _popoverDisabled: null === (a = e["features/base/config"].connectionIndicators) || void 0 === a ? void 0 : a.disableDetails, + _connectionStatus: null == i ? void 0 : i.connectionStatus + } + }))(class extends E3 { + constructor(e) { + super(e), this.state = { + showIndicator: !1, + stats: {}, + popoverVisible: !1 + }, this._onShowPopover = this._onShowPopover.bind(this), this._onHidePopover = this._onHidePopover.bind(this) + } + render() { + const { + enableStatsDisplay: e, + participantId: t, + statsPopoverPosition: n + } = this.props, a = `indicator-container ${this._getVisibilityClass()}`; + return this.props._popoverDisabled ? this._renderIndicator() : C().createElement(A9, { + className: a, + content: C().createElement(C3, { + inheritedStats: this.state.stats, + participantId: t + }), + disablePopover: !e, + id: "participant-connection-indicator", + noPaddingContent: !0, + onPopoverClose: this._onHidePopover, + onPopoverOpen: this._onShowPopover, + paddedContent: !0, + position: n, + visible: this.state.popoverVisible + }, this._renderIndicator()) + } + _getConnectionColorClass() { + const { + _connectionStatus: e + } = this.props, { + percent: t + } = this.state.stats, { + INACTIVE: n, + INTERRUPTED: a + } = vt; + return e === n ? this.props._connectionIndicatorInactiveDisabled ? "status-disabled" : "status-other" : e === a ? "status-lost" : void 0 === t ? "status-high" : this._getDisplayConfiguration(t).colorClass + } + _getDisplayConfiguration(e) { + return T9.find((t => e >= t.percent)) || {} + } + _getVisibilityClass() { + const { + _connectionStatus: e + } = this.props; + return this.state.showIndicator || this.props.alwaysVisible || e === vt.INTERRUPTED || e === vt.INACTIVE ? "show-connection-indicator" : "hide-connection-indicator" + } + _onHidePopover() { + this.setState({ + popoverVisible: !1 + }) + } + _renderIcon() { + if (this.props._connectionStatus === vt.INACTIVE) return this.props._connectionIndicatorInactiveDisabled ? null : C().createElement("span", { + className: "connection_ninja" + }, C().createElement(lo, { + className: "icon-ninja", + size: "1.5em", + src: zs + })); + let e, t = "connection_empty"; + if (this.props._connectionStatus === vt.INTERRUPTED) t = "connection_lost", e = "0%"; + else if (void 0 === this.state.stats.percent) e = "100%"; + else { const { - _participants: e, - _visible: t, - t: n - } = this.props; - return t ? x().createElement("div", { - id: "knocking-participant-list" - }, x().createElement("div", { - className: "title" - }, n("lobby.knockingParticipantList")), x().createElement(U4, { - approveButtonText: n("lobby.allow"), - onApprove: J4, - onReject: Z4, - participants: e, - rejectButtonText: n("lobby.reject"), - testIdPrefix: "lobby" - })) : null + percent: t + } = this.state.stats; + e = this._getDisplayConfiguration(t).width } - })); - class s8 extends E.PureComponent { - constructor(e) { - super(e), this.state = { - lobbyEnabled: e._lobbyEnabled - }, this._onToggleLobby = this._onToggleLobby.bind(this) - } - static getDerivedStateFromProps(e, t) { - return e._lobbyEnabled !== t.lobbyEnabled ? { - lobbyEnabled: e._lobbyEnabled - } : null + return [C().createElement("span", { + className: t, + key: "icon-empty" + }, C().createElement(lo, { + className: "icon-gsm-bars", + size: "1em", + src: Os + })), C().createElement("span", { + className: "connection_full", + key: "icon-full", + style: { + width: e + } + }, C().createElement(lo, { + className: "icon-gsm-bars", + size: "1em", + src: Os + }))] + } + _onShowPopover() { + this.setState({ + popoverVisible: !0 + }) + } + _renderIndicator() { + const e = `connection-indicator indicator ${this._getConnectionColorClass()}`; + return C().createElement("div", { + className: "popover-trigger" + }, C().createElement("div", { + className: e, + style: { + fontSize: this.props.iconSize + } + }, C().createElement("div", { + className: "connection indicatoricon" + }, this._renderIcon()))) + } + })); + + function P9(e) { + const t = e["features/base/config"].testing; + return Boolean(t && t.testMode) + } + + function j9(e, t) { + var n; + let { + getState: a + } = e; + return null === (n = oh(a()["features/base/tracks"], Bi, t)) || void 0 === n ? void 0 : n.videoType + } + + function M9(e) { + var t; + let { + getState: n + } = e; + const a = n()["features/large-video"].participantId, + r = oh(n()["features/base/tracks"], Bi, a), + i = null === (t = n()["features/large-video"]) || void 0 === t ? void 0 : t.lastMediaEvent; + return r && !r.muted && ("playing" === i || "canplaythrough" === i) + } + + function I9(e, t) { + let { + getState: n + } = e; + const a = oh(n()["features/base/tracks"], Bi, t), + r = null == a ? void 0 : a.lastMediaEvent; + return a && !a.muted && ("playing" === r || "canplaythrough" === r) + } + class O9 extends x.Component { + constructor(e) { + super(e), this._onStatsUpdated = this._onStatsUpdated.bind(this), this.state = { + stats: { + bitrate: { + download: 0, + upload: 0 + } + } } - render() { - const { - _visible: e, - t + } + _onStatsUpdated() { + var e, t; + let n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + this.setState({ + stats: { + bitrate: { + download: (null === (e = n.bitrate) || void 0 === e ? void 0 : e.download) || 0, + upload: (null === (t = n.bitrate) || void 0 === t ? void 0 : t.upload) || 0 + } + } + }) + } + componentDidMount() { + w3.subscribeToClientStats(this.props._localUserId, this._onStatsUpdated) + } + componentDidUpdate(e) { + e._localUserId !== this.props._localUserId && (w3.unsubscribeToClientStats(e._localUserId, this._onStatsUpdated), w3.subscribeToClientStats(this.props._localUserId, this._onStatsUpdated)) + } + componentWillUnmount() { + w3.unsubscribeToClientStats(this.props._localUserId, this._onStatsUpdated) + } + render() { + return this.props._testMode ? C().createElement(x.Fragment, { + accessible: !1 + }, C().createElement(R9(), { + id: "org.jitsi.meet.conference.connectionState", + value: this.props._conferenceConnectionState + }), C().createElement(R9(), { + id: "org.jitsi.meet.conference.joinedState", + value: this.props._conferenceJoinedState + }), C().createElement(R9(), { + id: "org.jitsi.meet.conference.grantModeratorAvailable", + value: !0 + }), C().createElement(R9(), { + id: "org.jitsi.meet.conference.localParticipantRole", + value: this.props._localUserRole + }), C().createElement(R9(), { + id: "org.jitsi.meet.stats.rtp", + value: JSON.stringify(this.state.stats) + })) : null + } + } + Ne((function(e) { + const t = Boolean(e["features/base/conference"].conference), + n = Uh(e); + return { + _conferenceConnectionState: e["features/testing"].connectionState, + _conferenceJoinedState: t.toString(), + _localUserId: null == n ? void 0 : n.id, + _localUserRole: null == n ? void 0 : n.role, + _testMode: P9(e) + } + }))(O9); + var N9 = n(1192), R9 = n.n(N9); class z9 extends x.Component { + constructor(e) { + super(e), this._clearTapTimeout = this._clearTapTimeout.bind(this), this._onDoubleTap = this._onDoubleTap.bind(this) + } + render() { + const { + _isChatOpen: e, + _noAutoPlayVideo: t + } = this.props, n = this._getCustomSyles(), a = "videocontainer" + (e ? " shift-right" : ""); + return C().createElement("div", { + className: a, + id: "largeVideoContainer", + style: n + }, C().createElement(s6, null), C().createElement("div", { + id: "etherpad" + }), C().createElement(pM, null), C().createElement("div", { + id: "dominantSpeaker", + onTouchEnd: this._onDoubleTap + }, C().createElement("div", { + className: "dynamic-shadow" + }), C().createElement("div", { + id: "dominantSpeakerAvatarContainer" + })), C().createElement("div", { + id: "remotePresenceMessage" + }), C().createElement("span", { + id: "remoteConnectionMessage" + }), C().createElement("div", { + id: "largeVideoElementsContainer" + }, C().createElement("div", { + id: "largeVideoBackgroundContainer" + }), C().createElement("div", { + id: "largeVideoWrapper", + onTouchEnd: this._onDoubleTap, + role: "figure" + }, C().createElement("video", { + autoPlay: !t, + id: "largeVideo", + muted: !0, + playsInline: !0 + }))), interfaceConfig.DISABLE_TRANSCRIPTION_SUBTITLES || C().createElement(NI, null)) + } + _clearTapTimeout() { + clearTimeout(this._tappedTimeout), this._tappedTimeout = void 0 + } + _getCustomSyles() { + const e = {}, + { + _customBackgroundColor: t, + _customBackgroundImageUrl: n } = this.props; - return e ? x().createElement(x().Fragment, null, x().createElement("div", { - id: "lobby-section" - }, x().createElement("p", { - className: "description", - role: "banner" - }, t("lobby.enableDialogText")), x().createElement("div", { - className: "control-row" - }, x().createElement("label", { - htmlFor: "lobby-section-switch" - }, t("lobby.toggleLabel")), x().createElement(Oj, { - id: "lobby-section-switch", - onValueChange: this._onToggleLobby, - value: this.state.lobbyEnabled - }))), x().createElement("div", { - className: "separator-line" - })) : null - } - _onToggleLobby() { - const e = !this.state.lobbyEnabled; - this.setState({ - lobbyEnabled: e - }), this.props.dispatch(e8(e)) + if (e.backgroundColor = t || interfaceConfig.DEFAULT_BACKGROUND, void 0 !== this.props._backgroundAlpha) { + const t = jt(e.backgroundColor, this.props._backgroundAlpha); + e.backgroundColor = t } + return n && (e.backgroundImage = `url(${n})`, e.backgroundSize = "cover"), e } - const l8 = Li(ze((function(e) { + _onDoubleTap(e) { + e.stopPropagation(), e.preventDefault(), this._tappedTimeout ? (this._clearTapTimeout(), this.props.dispatch(tE(!0))) : this._tappedTimeout = setTimeout(this._clearTapTimeout, 300) + } + } + const L9 = Ne((function(e) { + const t = e["features/base/config"].testing, + { + backgroundColor: n, + backgroundImageUrl: a + } = e["features/dynamic-branding"], + { + isOpen: r + } = e["features/chat"]; + return { + _backgroundAlpha: e["features/base/config"].backgroundAlpha, + _customBackgroundColor: n, + _customBackgroundImageUrl: a, + _isChatOpen: r, + _noAutoPlayVideo: null == t ? void 0 : t.noAutoPlayVideo + } + }))(z9), F9 = "landscape"; class q9 extends x.Component { + constructor(e) { + super(e), this._setCanvasEl = this._setCanvasEl.bind(this), this._updateCanvas = this._updateCanvas.bind(this) + } + componentDidMount() { const { - conference: t - } = e["features/base/conference"], { - hideLobbyButton: n - } = e["features/base/config"]; - return { - _lobbyEnabled: e["features/lobby"].lobbyEnabled, - _visible: t && t.isLobbySupported() && Jh(e) && !n - } - }))(s8)); - class c8 extends E.PureComponent { - constructor(e) { - super(e), this.state = { - displayName: e._participantName || "", - email: e._participantEmail || "", - password: "", - passwordJoinFailed: !1, - screenState: e._participantName ? 3 : 1 - }, this._onAskToJoin = this._onAskToJoin.bind(this), this._onCancel = this._onCancel.bind(this), this._onChangeDisplayName = this._onChangeDisplayName.bind(this), this._onChangeEmail = this._onChangeEmail.bind(this), this._onChangePassword = this._onChangePassword.bind(this), this._onEnableEdit = this._onEnableEdit.bind(this), this._onJoinWithPassword = this._onJoinWithPassword.bind(this), this._onSwitchToKnockMode = this._onSwitchToKnockMode.bind(this), this._onSwitchToPasswordMode = this._onSwitchToPasswordMode.bind(this) - } - static getDerivedStateFromProps(e, t) { - return e._passwordJoinFailed && !t.passwordJoinFailed ? { - password: "", - passwordJoinFailed: !0 - } : null - } - _getScreenTitleKey() { - const { - screenState: e - } = this.state, t = 2 === e; - return !t && this.props._knocking ? "lobby.joiningTitle" : t ? "lobby.enterPasswordTitle" : "lobby.joinTitle" - } - _onAskToJoin() { - return this.setState({ - password: "" - }), this.props.dispatch(X4()), !1 - } - _onCancel() { - return this.props.dispatch((async e => { - APP.API.notifyReadyToClose(), e(XN()) - })), !0 - } - _onChangeDisplayName(e) { - const t = Uj(e); - this.setState({ - displayName: t - }, (() => { - this.props.dispatch(bn({ - displayName: t - })) - })) - } - _onChangeEmail(e) { - const t = Uj(e); - this.setState({ - email: t - }, (() => { - this.props.dispatch(bn({ - email: t - })) - })) - } - _onChangePassword(e) { - this.setState({ - password: Uj(e) - }) - } - _onEnableEdit() { - this.setState({ - screenState: 1 - }) + _shouldDisplayTileView: e, + hidden: t, + videoElement: n + } = this.props; + !n || t || e || (this._updateCanvas(), this._setUpdateCanvasInterval()) + } + componentDidUpdate(e) { + const t = !e.hidden && !e._shouldDisplayTileView && e.videoElement, + n = !this.props.hidden && !this.props._shouldDisplayTileView && this.props.videoElement; + t !== n && (n ? (this._clearCanvas(), this._setUpdateCanvasInterval()) : (this._clearCanvas(), this._clearUpdateCanvasInterval())) + } + componentWillUnmount() { + this._clearUpdateCanvasInterval() + } + render() { + const { + hidden: e, + mirror: t + } = this.props, n = `large-video-background ${t?"flip-x":""} ${e?"invisible":""}`; + return C().createElement("div", { + className: n + }, C().createElement("canvas", { + id: "largeVideoBackground", + ref: this._setCanvasEl + })) + } + _clearCanvas() { + this._canvasEl.getContext("2d").clearRect(0, 0, this._canvasEl.width, this._canvasEl.height) + } + _clearUpdateCanvasInterval() { + clearInterval(this._updateCanvasInterval) + } + _setCanvasEl(e) { + this._canvasEl = e + } + _setUpdateCanvasInterval() { + this._clearUpdateCanvasInterval(), this._updateCanvasInterval = setInterval(this._updateCanvas, 200) + } + _updateCanvas() { + if (!this._canvasEl || null === this._canvasEl.offsetParent || 0 === window.innerHeight || 0 === window.innerWidth) return; + const { + videoElement: e + } = this.props, { + videoWidth: t, + videoHeight: n + } = e, { + height: a, + width: r + } = this._canvasEl, i = this._canvasEl.getContext("2d"); + if (this.props.orientationFit === F9) { + const a = r / t * n; + i.drawImage(e, 0, 0, r, a) + } else { + const r = a / n * t; + i.drawImage(e, 0, 0, r, a) } - _onJoinWithPassword() { - var e; - this.setState({ - passwordJoinFailed: !1 - }), this.props.dispatch((e = this.state.password, async (t, n) => { - const a = yI(n); - t(yN(a, a.join, e)) + } + } + Ne((function(e) { + return { + _shouldDisplayTileView: QS(e) + } + }))(q9); class B9 { + show() {} + hide() {} + resize(e, t, n) {} + onHoverIn(e) {} + onHoverOut(e) {} + setStream(e, t, n) {} + showAvatar(e) {} + stayOnStage() {} + } + const U9 = "camera", H9 = ["abort", "canplay", "canplaythrough", "emptied", "ended", "error", "loadeddata", "loadedmetadata", "loadstart", "pause", "play", "playing", "ratechange", "stalled", "suspend", "waiting"]; + + function V9(e, t, n, a, r) { + if (0 === e || 0 === t || 0 === n || 0 === a) return [0, 0]; + const i = e / t, + o = n / a; + switch (r) { + case "height": + return [a * i, a]; + case "width": + return [n, n / i]; + case "nocrop": + return V9(e, t, n, a, o < i ? "width" : "height"); + case "both": { + const r = interfaceConfig.MAXIMUM_ZOOMING_COEFFICIENT || 1 / 0; + if (o === i) return [n, a]; + let [s, l] = V9(e, t, n, a, o < i ? "height" : "width"); + const c = n * r, + u = a * r; + return s > c ? (s = c, l = s / i) : l > u && (l = u, s = l * i), [s, l] + } + default: + return [e, t] + } + } + + function W9(e, t, n, a) { + return HB.isFullScreen() && (a = window.innerHeight), { + horizontalIndent: (n - e) / 2, + verticalIndent: (a - t) / 2 + } + } + class Y9 extends B9 { + get $video() { + return $("#largeVideo") + } + get id() { + return this.userId + } + constructor(e) { + if (super(), this.stream = null, this.userId = null, this.videoType = null, this.localFlipX = !0, this.resizeContainer = e, this._backgroundOrientation = null, this._hideBackground = !0, this._isHidden = !1, this.avatarDisplayed = !1, this.$avatar = $("#dominantSpeaker"), this.$remoteConnectionMessage = $("#remoteConnectionMessage"), this.$remotePresenceMessage = $("#remotePresenceMessage"), this.$wrapper = $("#largeVideoWrapper"), this.$wrapperParent = this.$wrapper.parent(), this.avatarHeight = $("#dominantSpeakerAvatarContainer").height(), this.$video[0].onplaying = function(t) { + "function" == typeof e && e(t) + }, this._resizeListeners = new Set, this.$video[0].onresize = this._onResize.bind(this), P9(APP.store.getState())) { + const e = e => APP.store.dispatch(function(e) { + return { + type: HW, + name: e + } + }(e)); + H9.forEach((t => { + this.$video[0].addEventListener(t, e.bind(this, t)) })) } - _onSwitchToKnockMode() { - this.setState({ - password: "", - screenState: this.state.displayName ? 3 : 1 - }), this.props.dispatch(Q4(!1)), this.props.dispatch(pN(this.props._membersOnlyConference)) - } - _onSwitchToPasswordMode() { - this.setState({ - screenState: 2 - }) - } - _renderContent() { - const { - _knocking: e - } = this.props, { - screenState: t - } = this.state; - return 2 !== t && e ? this._renderJoining() : x().createElement(x().Fragment, null, 3 === t && this._renderParticipantInfo(), 1 === t && this._renderParticipantForm(), 2 === t && this._renderPasswordForm(), (3 === t || 1 === t) && this._renderStandardButtons(), 2 === t && this._renderPasswordJoinButtons()) - } } - const u8 = Li(ze((function(e) { - const t = Rh(e), - n = null == t ? void 0 : t.id, - a = Df(e, Va, !0), - { - disableInviteFunctions: r - } = e["features/base/config"], - { - knocking: i, - passwordJoinFailed: o - } = e["features/lobby"], - { - iAmSipGateway: s - } = e["features/base/config"], - l = a || !r, - c = JR(e), - { - membersOnly: u - } = e["features/base/conference"]; + addResizeListener(e) { + this._resizeListeners.add(e) + } + getStreamID() { + return this.stream ? this.stream.getId() : null + } + getStreamSize() { + const e = this.$video[0]; return { - _deviceStatusVisible: c, - _knocking: i, - _meetingName: fI(e), - _membersOnlyConference: u, - _participantEmail: null == t ? void 0 : t.email, - _participantId: n, - _participantName: null == t ? void 0 : t.name, - _passwordJoinFailed: o, - _renderPassword: !s, - showCopyUrlButton: l - } - }))(class extends c8 { - render() { - const { - _deviceStatusVisible: e, - showCopyUrlButton: t, - t: n - } = this.props; - return x().createElement($7, { - className: "lobby-screen", - showCopyUrlButton: t, - showDeviceStatus: e, - title: n(this._getScreenTitleKey()) - }, this._renderContent()) - } - _renderJoining() { - return x().createElement("div", { - className: "lobby-screen-content" - }, x().createElement("div", { - className: "spinner" - }, x().createElement(Py, { - size: "large" - })), x().createElement("span", { - className: "joining-message" - }, this.props.t("lobby.joiningMessage")), this._renderStandardButtons()) - } - _renderParticipantForm() { - return this._renderParticipantInfo() - } - _renderParticipantInfo() { - const { - displayName: e - } = this.state, { - t - } = this.props; - return x().createElement(_V, { - onChange: this._onChangeDisplayName, - placeHolder: t("lobby.nameField"), - testId: "lobby.nameField", - value: e - }) - } - _renderPasswordForm() { - const { - _passwordJoinFailed: e, - t - } = this.props; - return x().createElement(x().Fragment, null, x().createElement(_V, { - className: e ? "error" : "", - onChange: this._onChangePassword, - placeHolder: t("lobby.passwordField"), - testId: "lobby.password", - type: "password", - value: this.state.password - }), e && x().createElement("div", { - className: "prejoin-error", - "data-testid": "lobby.errorMessage" - }, t("lobby.invalidPassword"))) - } - _renderPasswordJoinButtons() { - const { - t: e - } = this.props; - return x().createElement(x().Fragment, null, x().createElement(vV, { - onClick: this._onJoinWithPassword, - testId: "lobby.passwordJoinButton", - type: "primary" - }, e("prejoin.joinMeeting")), x().createElement(vV, { - onClick: this._onSwitchToKnockMode, - testId: "lobby.backToKnockModeButton", - type: "secondary" - }, e("lobby.backToKnockModeButton"))) - } - _renderStandardButtons() { - const { - _knocking: e, - _renderPassword: t, - t: n - } = this.props; - return x().createElement(x().Fragment, null, e || x().createElement(vV, { - disabled: !this.state.displayName, - onClick: this._onAskToJoin, - testId: "lobby.knockButton", - type: "primary" - }, n("lobby.knockButton")), t && x().createElement(vV, { - onClick: this._onSwitchToPasswordMode, - testId: "lobby.enterPasswordButton", - type: "secondary" - }, n("lobby.enterPasswordButton"))) + width: e.videoWidth, + height: e.videoHeight } - })); - class d8 extends E.Component { - constructor(e) { - super(e), - function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(this, "state", { - password: "" - }), this._onPasswordChanged = this._onPasswordChanged.bind(this), this._onCancel = this._onCancel.bind(this), this._onSubmit = this._onSubmit.bind(this) - } - render() { - return x().createElement(IO, { - disableBlanketClickDismiss: !0, - isModal: !1, - onCancel: this._onCancel, - onSubmit: this._onSubmit, - titleKey: "dialog.passwordRequired", - width: "small" - }, this._renderBody()) - } - _renderBody() { - return x().createElement("div", null, x().createElement(bz, { - autoFocus: !0, - compact: !0, - label: this.props.t("dialog.passwordLabel"), - name: "lockKey", - onChange: this._onPasswordChanged, - shouldFitContainer: !0, - type: "password", - value: this.state.password + } + _getVideoSize(e, t) { + const { + width: n, + height: a + } = this.getStreamSize(); + return this.stream && this.isScreenSharing() ? function(e, t, n, a) { + if (0 === e || 0 === t || 0 === n || 0 === a) return [0, 0]; + const r = e / t; + let i = Math.max(e, n), + o = Math.max(t, a); + return interfaceConfig.VERTICAL_FILMSTRIP ? n -= O4() : a -= I4(), i / r >= a && (o = a, i = o * r), o * r >= n && (i = n, o = i / r), [i, o] + }(n, a, e, t) : V9(n, a, e, t, interfaceConfig.VIDEO_LAYOUT_FIT) + } + getVideoPosition(e, t, n, a) { + let r = n; + return this.stream && this.isScreenSharing() ? (interfaceConfig.VERTICAL_FILMSTRIP && (r -= O4()), W9(e, t, r, a)) : W9(e, t, r, a) + } + positionRemoteStatusMessages() { + this._positionParticipantStatus(this.$remoteConnectionMessage), this._positionParticipantStatus(this.$remotePresenceMessage) + } + _positionParticipantStatus(e) { + if (this.avatarDisplayed) { + const t = $("#dominantSpeakerAvatarContainer"); + e.css("top", t.offset().top + t.height() + 10) + } else { + const t = e.height(), + n = e.parent().height(); + e.css("top", n / 2 - t / 2) + } + } + resize(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + if (0 === this.$video.length) return; + if (JS(APP.store.getState()) === GS) return; + this.positionRemoteStatusMessages(); + const [a, r] = this._getVideoSize(e, t); + if (0 === a || 0 === r) return; + e > a || t > r ? (this._backgroundOrientation = e > a ? F9 : "portrait", this._hideBackground = !1) : this._hideBackground = !0, this._updateBackground(); + const { + horizontalIndent: i, + verticalIndent: o + } = this.getVideoPosition(a, r, e, t); + this.$wrapper.animate({ + width: a, + height: r, + top: o, + bottom: o, + left: i, + right: i + }, { + queue: !1, + duration: n ? 500 : 0 + }) + } + removeResizeListener(e) { + this._resizeListeners.delete(e) + } + setStream(e, t, n) { + if (this.userId = e, this.stream === t) return void(this.videoType !== n && (this.videoType = n, this.resizeContainer())); + if (this.stream && this.stream.detach(this.$video[0]), this.stream = t, this.videoType = n, !t) return; + t.attach(this.$video[0]), dt.isWebKitBased() && this.$video[0].play(); + const a = t.isLocal() && this.localFlipX && !this.isScreenSharing(); + this.$video.css({ + transform: a ? "scaleX(-1)" : "none" + }), this._updateBackground() + } + setLocalFlipX(e) { + this.localFlipX = e, this.$video && this.stream && this.stream.isLocal() && (this.$video.css({ + transform: this.localFlipX ? "scaleX(-1)" : "none" + }), this._updateBackground()) + } + isScreenSharing() { + return "desktop" === this.videoType + } + showAvatar(e) { + this.$avatar.css("visibility", e ? "visible" : "hidden"), this.avatarDisplayed = e, APP.API.notifyLargeVideoVisibilityChanged(e) + } + show() { + return new Promise((e => { + this.$wrapperParent.css("visibility", "visible").fadeTo(300, 1, (() => { + this._isHidden = !1, this._updateBackground(), e() })) - } - _onPasswordChanged({ - target: { - value: e - } - }) { - this.setState({ - password: e - }) - } - _onCancel() { - return this.props.dispatch(function(e) { - return (t, n) => { - if ("undefined" != typeof APP) return APP.API.notifyReadyToClose(), void t(XN()); - const a = n(); - e === a["features/base/conference"].passwordRequired && e[sI] === a["features/base/connection"].locationURL && (t(lN(e)), t(KN(void 0))) - } - }(this.props.conference)), !0 - } - _onSubmit() { + })) + } + hide() { + return this.showAvatar(!1), new Promise((e => { + this.$wrapperParent.fadeTo(300, 0, (() => { + this.$wrapperParent.css("visibility", "hidden"), this._isHidden = !0, this._updateBackground(), e() + })) + })) + } + stayOnStage() { + return !1 + } + _onResize() { + this._resizeListeners.forEach((e => e())) + } + _updateBackground() { + interfaceConfig.DISABLE_VIDEO_BACKGROUND || dt.isFirefox() || dt.isWebKitBased() || Ie().render(C().createElement(q9, { + hidden: this._hideBackground || this._isHidden, + mirror: this.stream && this.stream.isLocal() && this.localFlipX, + orientationFit: this._backgroundOrientation, + videoElement: this.$video && this.$video[0], + videoTrack: this.stream + }), document.getElementById("largeVideoBackgroundContainer")) + } + } + const G9 = Ve().getLogger("modules/UI/videolayout/LargeVideoManager.js"), K9 = "desktop"; class $9 { + static isVideoContainer(e) { + return e === U9 || e === K9 + } + constructor() { + this.containers = {}, this.state = U9, this.videoContainer = new Y9((() => this.resizeContainer(U9))), this.addContainer(U9, this.videoContainer), this.addContainer(K9, this.videoContainer), this.preferredWidth = void 0, this.preferredHeight = void 0, this.width = 0, this.height = 0, this._videoAspectRatio = 0, this.$container = $("#largeVideoContainer"), this.$container.css({ + display: "inline-block" + }), this.$container.hover((e => this.onHoverIn(e)), (e => this.onHoverOut(e))), this._onVideoResolutionUpdate = this._onVideoResolutionUpdate.bind(this), this.videoContainer.addResizeListener(this._onVideoResolutionUpdate), this._dominantSpeakerAvatarContainer = document.getElementById("dominantSpeakerAvatarContainer") + } + destroy() { + this.videoContainer.removeResizeListener(this._onVideoResolutionUpdate), this.removePresenceLabel(), Ie().unmountComponentAtNode(this._dominantSpeakerAvatarContainer), this.$container.css({ + display: "none" + }) + } + onHoverIn(e) { + this.state && this.getCurrentContainer().onHoverIn(e) + } + onHoverOut(e) { + this.state && this.getCurrentContainer().onHoverOut(e) + } + get id() { + const e = this.getCurrentContainer(); + return this.updateInProcess && this.newStreamData && this.newStreamData.id !== e.id ? this.newStreamData.id : e.id + } + scheduleLargeVideoUpdate() { + if (this.updateInProcess || !this.newStreamData) return; + this.updateInProcess = !0; + const e = this.getCurrentContainer(); + (this.newStreamData.id !== e.id ? e.hide() : Promise.resolve()).then((() => { const { - conference: e - } = this.props; - return this.props.dispatch(yN(e, e.join, this.state.password)), this.setState({ - password: void 0 - }), !0 - } + id: e, + stream: t, + videoType: n, + resolve: a + } = this.newStreamData, r = $9.isVideoContainer(n); + this.newStreamData = null, G9.info(`hover in ${e}`), this.state = n; + const i = this.getCurrentContainer(); + i.setStream(e, t, n), this.updateAvatar(); + const o = !t || t.isMuted(), + s = APP.store.getState(), + l = Vh(s, e), + c = null == l ? void 0 : l.connectionStatus, + u = !o && (APP.conference.isLocalId(e) || c === vt.ACTIVE), + d = APP.conference.isAudioOnly(), + p = r && (d && n !== Yi || !u); + let h; + if (p) { + if (this.showWatermark(!0), h = i.hide(), (!QS(s) || null != l && l.pinned) && l && !l.local && !l.isFakeParticipant) { + const t = oh(s["features/base/tracks"], Bi, e); + "desktop" === (null == t ? void 0 : t.videoType) && Da(an({ + source: "large-video", + connectionStatus: c, + isVideoMuted: o, + isAudioOnly: d, + isVideoContainer: r, + videoType: n + })) + } + } else h = i.show(); + i.showAvatar(p), p && this.updateLargeVideoAudioLevel(0); + const m = c === vt.INACTIVE ? "connection.LOW_BANDWIDTH" : null, + f = APP.conference.isAudioOnly(); + return this.updateParticipantConnStatusIndication(e, !f && m), this.updatePresenceLabel(e), this.videoContainer.positionRemoteStatusMessages(), h.then(a), h + })).then((() => { + this.updateInProcess = !1, this.scheduleLargeVideoUpdate() + })) + } + updateParticipantConnStatusIndication(e, t) { + const n = APP.store.getState(); + if (t) { + const a = Kh(n, e); + this._setRemoteConnectionMessage(t, { + displayName: a + }), this.showRemoteConnectionMessage($9.isVideoContainer(this.state)) + } else this.showRemoteConnectionMessage(!1) + } + updateLargeVideo(e, t, n) { + return this.newStreamData && this.newStreamData.reject(), this.newStreamData = aY(), this.newStreamData.id = e, this.newStreamData.stream = t, this.newStreamData.videoType = n, this.scheduleLargeVideoUpdate(), this.newStreamData.promise + } + updateContainerSize(e, t) { + "number" == typeof e && (this.preferredWidth = e), "number" == typeof t && (this.preferredHeight = t); + let n = this.preferredWidth || window.innerWidth; + const a = APP.store.getState(), + { + isOpen: r + } = a["features/chat"]; + Om(a) && (n -= HH.CE), r && window.innerWidth > 580 && (n -= 315), this.width = n, this.height = this.preferredHeight || window.innerHeight + } + resizeContainer(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + this.getContainer(e).resize(this.width, this.height, t) + } + resize(e) { + Object.keys(this.containers).forEach((t => this.resizeContainer(t, e))) + } + updateAvatar() { + Ie().render(C().createElement(R, { + store: APP.store + }, C().createElement(sp, { + id: "dominantSpeakerAvatar", + participantId: this.id, + size: 200 + })), this._dominantSpeakerAvatarContainer) + } + updateLargeVideoAudioLevel(e) { + iY.updateLargeVideoAudioLevel("dominantSpeaker", e) + } + updatePresenceLabel(e) { + if ($("#remoteConnectionMessage").is(":visible")) return void this.removePresenceLabel(); + const t = $("#remotePresenceMessage"); + t.length && Ie().render(C().createElement(R, { + store: APP.store + }, C().createElement(hr, { + i18n: _i + }, C().createElement(eY, { + participantID: e, + className: "presence-label" + }))), t.get(0)) + } + removePresenceLabel() { + const e = $("#remotePresenceMessage"); + e.length && Ie().unmountComponentAtNode(e.get(0)) + } + showWatermark(e) { + $(".watermark").css("visibility", e ? "visible" : "hidden") + } + showRemoteConnectionMessage(e) { + if ("boolean" != typeof e) { + const t = Vh(APP.store.getState(), this.id), + n = null == t ? void 0 : t.connectionStatus; + e = !APP.conference.isLocalId(this.id) && (n === vt.INTERRUPTED || n === vt.INACTIVE) + } + e ? $("#remoteConnectionMessage").css({ + display: "block" + }) : $("#remoteConnectionMessage").hide() + } + _setRemoteConnectionMessage(e, t) { + e && ($("#remoteConnectionMessage").attr("data-i18n", e).attr("data-i18n-options", JSON.stringify(t)), APP.translation.translateElement($("#remoteConnectionMessage"), t)) + } + addContainer(e, t) { + if (this.containers[e]) throw new Error(`container of type ${e} already exist`); + this.containers[e] = t, this.resizeContainer(e) + } + getContainer(e) { + const t = this.containers[e]; + if (!t) throw new Error(`container of type ${e} doesn't exist`); + return t + } + getCurrentContainer() { + return this.getContainer(this.state) + } + getCurrentContainerType() { + return this.state + } + removeContainer(e) { + if (!this.containers[e]) throw new Error(`container of type ${e} doesn't exist`); + delete this.containers[e] } - const p8 = Li(ze()(d8)), - h8 = "LOCKED_LOCALLY", - m8 = "LOCKED_REMOTELY"; - class f8 extends E.Component { - static getDerivedStateFromProps(e, t) { + showContainer(e) { + if (this.state === e) return Promise.resolve(); + const t = this.containers[this.state]; + return $9.isVideoContainer(this.state) && (this.showWatermark(!1), this.showRemoteConnectionMessage(!1)), t.hide(), this.state = e, this.getContainer(e).show().then((() => { + $9.isVideoContainer(e) && (this.showWatermark(!0), this.showRemoteConnectionMessage()) + })) + } + onLocalFlipXChange(e) { + this.videoContainer.setLocalFlipX(e) + } + _onVideoResolutionUpdate() { + const { + height: e, + width: t + } = this.videoContainer.getStreamSize(), { + resolution: n + } = APP.store.getState()["features/large-video"]; + e !== n && APP.store.dispatch(function(e) { return { - enteredPassword: e.editEnabled ? t.enteredPassword : "" - } - } - constructor(e) { - super(e), - function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(this, "state", { - enteredPassword: "" - }), this._onEnteredPasswordChange = this._onEnteredPasswordChange.bind(this), this._onPasswordSubmit = this._onPasswordSubmit.bind(this), this._onKeyPress = this._onKeyPress.bind(this) - } - render() { - const { - t: e - } = this.props; - return x().createElement("div", { - className: "info-password" - }, x().createElement("span", { - className: "info-label" - }, e("info.password")), x().createElement("span", { - className: "spacer" - }, " "), x().createElement("span", { - className: "info-password-field info-value" - }, this._renderPasswordField())) - } - _renderPasswordField() { - if (this.props.editEnabled) { - let e, t; - return this.props.passwordNumberOfDigits && (t = this.props.t("passwordDigitsOnly", { - number: this.props.passwordNumberOfDigits - }), e = "\\d*"), x().createElement("form", { - className: "info-password-form", - onKeyPress: this._onKeyPress, - onSubmit: this._onPasswordSubmit - }, x().createElement("input", { - "aria-label": this.props.t("info.addPassword"), - autoFocus: !0, - className: "info-password-input", - maxLength: this.props.passwordNumberOfDigits, - onChange: this._onEnteredPasswordChange, - pattern: e, - placeholder: t, - spellCheck: "false", - type: "text", - value: this.state.enteredPassword - })) + type: UW, + resolution: e } - return this.props.locked === h8 ? x().createElement("div", { - className: "info-password-local" - }, this.props.password) : this.props.locked ? x().createElement("div", { - className: "info-password-remote" - }, this.props.t("passwordSetRemotely")) : x().createElement("div", { - className: "info-password-none" - }, this.props.t("info.noPassword")) - } - _onEnteredPasswordChange(e) { - this.setState({ - enteredPassword: e.target.value - }) - } - _onPasswordSubmit(e) { - e.preventDefault(), e.stopPropagation(), this.props.onSubmit(this.state.enteredPassword) - } - _onKeyPress(e) { - "Enter" === e.key && e.stopPropagation() - } + }(e)); + const a = 0 === e ? 0 : t / e; + this._videoAspectRatio !== a && (this._videoAspectRatio = a, this.resize()) } - const g8 = Li(f8), - b8 = Li((function({ - canEditPassword: e, - conference: t, - locked: n, - password: a, - passwordEditEnabled: r, - passwordNumberOfDigits: i, - setPassword: o, - setPasswordEditEnabled: s, - t: l - }) { - const c = (0, E.useRef)(null); + } + const J9 = Ve().getLogger("modules/UI/videolayout/VideoLayout.js"); + let Z9; + const Q9 = { + onLocalFlipXChanged() { + if (Z9) { + const { + store: e + } = APP, { + localFlipX: t + } = e.getState()["features/base/settings"]; + Z9.onLocalFlipXChange(t) + } + }, + reset() { + this._resetLargeVideo() + }, + initLargeVideo() { + this._resetLargeVideo(), Z9 = new $9; + const { + store: e + } = APP, { + localFlipX: t + } = e.getState()["features/base/settings"]; + "boolean" == typeof t && Z9.onLocalFlipXChange(t), Z9.updateContainerSize() + }, + setAudioLevel(e, t) { + Z9 && e === Z9.id && Z9.updateLargeVideoAudioLevel(t) + }, + updateVideoMutedForNoTracks(e) { + const t = APP.conference.getParticipantById(e); + t && !t.getTracksByMediaType("video").length && Q9._updateLargeVideoIfDisplayed(e, !0) + }, + getRemoteVideoType(e) { + const t = APP.store.getState(), + n = Vh(t, e); + if (null != n && n.isFakeParticipant) return Wi; + const a = oh(t["features/base/tracks"], Bi, e); + return null == a ? void 0 : a.videoType + }, + getPinnedId() { + const { + id: e + } = Zh(APP.store.getState()) || {}; + return e || null + }, + onParticipantConnectionStatusChanged(e) { + APP.conference.isLocalId(e) || this._updateLargeVideoIfDisplayed(e, !0) + }, + onLastNEndpointsChanged(e, t) { + e && e.forEach(this._updateLargeVideoIfDisplayed, this), t && t.forEach(this._updateLargeVideoIfDisplayed, this) + }, + resizeVideoArea() { + Z9 && (Z9.updateContainerSize(), Z9.resize(!1)) + }, + changeUserAvatar(e, t) { + this.isCurrentlyOnLarge(e) && Z9.updateAvatar(t) + }, + isLargeVideoVisible() { + return this.isLargeContainerTypeVisible(U9) + }, + getCurrentlyOnLargeContainer: () => Z9.getCurrentContainer(), + isCurrentlyOnLarge: e => Z9 && Z9.id === e, + updateLargeVideo(e, t) { + if (!Z9) return; + const n = Z9.getCurrentContainer(), + a = Z9.getCurrentContainerType(), + r = this.isCurrentlyOnLarge(e), + i = oh(APP.store.getState()["features/base/tracks"], Bi, e), + o = null == i ? void 0 : i.jitsiTrack; + if (r && !t && $9.isVideoContainer(a) && o && n.getStreamID() !== ((null == o ? void 0 : o.getId()) || null) && (J9.debug("Enforcing large video update for stream change"), t = !0), !r || t) { + const t = this.getRemoteVideoType(e); + Z9.updateLargeVideo(e, o, t || Wi).catch((() => {})) + } + }, + addLargeVideoContainer(e, t) { + Z9 && Z9.addContainer(e, t) + }, + removeLargeVideoContainer(e) { + Z9 && Z9.removeContainer(e) + }, + showLargeVideoContainer(e, t) { + if (!Z9) return Promise.reject(); + if (this.isLargeContainerTypeVisible(e) === t) return Promise.resolve(); + let n = e; + if (!t) { + const e = this.getPinnedId(); + n = e ? this.getRemoteVideoType(e) : U9 + } + return Z9.showContainer(n) + }, + isLargeContainerTypeVisible: e => Z9 && Z9.state === e, + getLargeVideoID: () => Z9 && Z9.id, + getLargeVideo: () => Z9, + getLargeVideoWrapper() { + return this.getCurrentlyOnLargeContainer().$wrapper + }, + refreshLayout() { + Q9.resizeVideoArea() + }, + _resetLargeVideo() { + Z9 && Z9.destroy(), Z9 = null + }, + _updateLargeVideoIfDisplayed(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1]; + this.isCurrentlyOnLarge(e) && this.updateLargeVideo(e, t) + }, + onResize() { + Q9.resizeVideoArea() + } + }, X9 = Q9; + + function eee(e) { + if (!JitsiMeetJS.mediaDevices.isDeviceChangeAvailable("output")) return; + const t = BM(), + n = e.filter((e => "audiooutput" === e.kind)); + if ("default" !== t && !n.find((e => e.deviceId === t))) return "default"; + const a = ra(APP.store.getState()); + return a && a !== t && n.find((e => e.deviceId === a)) ? a : void 0 + } - function u(e) { - o(t, t.lock, e) - } + function tee(e, t, n) { + const a = e.filter((e => "audioinput" === e.kind)), + r = aa(APP.store.getState()), + i = a.find((e => e.deviceId === r)), + o = null == t ? void 0 : t.getDeviceId(), + s = a.find((e => e.deviceId === o)); + if (!t || t.disposed || t.isEnded()) { + if (i && r) return r; + if (a.length && "" !== a[0].label) return a[0].deviceId + } else if (i && r !== o) { + if (!n) return r; + APP.store.dispatch(hn({ + userSelectedMicDeviceId: o, + userSelectedMicDeviceLabel: s.label + })) + } + } - function d() { - s(!r) - } + function nee(e, t, n) { + const a = e.filter((e => "videoinput" === e.kind)), + r = na(APP.store.getState()), + i = a.find((e => e.deviceId === r)), + o = null == t ? void 0 : t.getDeviceId(), + s = a.find((e => e.deviceId === o)); + if (!t || t.disposed || t.isEnded()) { + if (i && r) return r; + if (a.length && "" !== a[0].label) return a[0].deviceId + } else if (i && r !== o) { + if (!n) return r; + APP.store.dispatch(hn({ + userSelectedCameraDeviceId: o, + userSelectedCameraDeviceLabel: s.label + })) + } + } + const aee = { + getNewMediaDevicesAfterDeviceListChanged: (e, t, n, a, r) => ({ + audioinput: tee(e, a, r), + videoinput: t ? void 0 : nee(e, n, r), + audiooutput: eee(e) + }), + newDeviceListAddedLabelsOnly(e, t) { + const n = e.audioInput.concat(e.audioOutput).concat(e.videoInput); + return n.length === t.length && (n.forEach((e => { + if ("" !== e.label) return !1; + const n = t.find((t => t.deviceId === e.deviceId)); + return !(!n || "" === n.label) && void 0 + })), !0) + }, + createLocalTracksAfterDeviceListChanged(e, t, n) { + let a, r; + const i = Boolean(n), + o = Boolean(t); + return i && o ? e({ + devices: ["audio", "video"], + cameraDeviceId: t, + micDeviceId: n + }).catch((() => Promise.all([s(!1).then((e => { + let [t] = e; + return t + })), l(!1).then((e => { + let [t] = e; + return t + }))]))).then((e => (a && APP.store.dispatch(nI(a)), r && APP.store.dispatch(tI(r)), e.filter((e => void 0 !== e))))) : o && !i ? l() : i && !o ? s() : Promise.resolve([]); - function p() { - if (c.current) { - const { - value: e - } = c.current.querySelector("form > input"); - e && u(e) - } - } + function s() { + let t = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + return e({ + devices: ["audio"], + cameraDeviceId: null, + micDeviceId: n + }).catch((e => (a = e, t && APP.store.dispatch(nI(e)), []))) + } - function h() { - u("") - } + function l() { + let n = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + return e({ + devices: ["video"], + cameraDeviceId: t, + micDeviceId: null + }).catch((e => (r = e, n && APP.store.dispatch(tI(e)), []))) + } + } + }, ree = "userinfo", iee = $e("features/desktop-picker"); - function m() { - Tt(a) + function oee() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + const t = { + screen: [], + window: [] + }; + return e.forEach((e => { + const n = e.id.split(":")[0]; + t[n] && t[n].push(e) + })), t + } + class see extends x.Component { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this), this._onDoubleClick = this._onDoubleClick.bind(this) + } + render() { + const e = "desktop-picker-source " + (this.props.selected ? "is-selected" : ""); + return C().createElement("div", { + className: e, + onClick: this._onClick, + onDoubleClick: this._onDoubleClick + }, C().createElement("div", { + className: "desktop-source-preview-image-container" + }, C().createElement("img", { + alt: this.props.t("welcomepage.logo.desktopPreviewThumbnail"), + className: "desktop-source-preview-thumbnail", + src: this.props.source.thumbnail.toDataURL() + })), C().createElement("div", { + className: "desktop-source-preview-label" + }, this.props.source.name)) + } + _onClick() { + const { + source: e, + type: t + } = this.props; + this.props.onClick(e.id, t) + } + _onDoubleClick() { + const { + source: e, + type: t + } = this.props; + this.props.onDoubleClick(e.id, t) + } + } + const lee = Ei(see); class cee extends x.Component { + constructor(e) { + super(e), this._onShareAudioCheck = this._onShareAudioCheck.bind(this) + } + _onShareAudioCheck(e) { + let { + target: { + checked: t } - - function f(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), d()) - } - return x().createElement("div", { - className: "security-dialog password-section" - }, x().createElement("p", { - className: "description" - }, l(e ? "security.about" : "security.aboutReadOnly")), x().createElement("div", { - className: "security-dialog password" - }, x().createElement("div", { - className: "info-dialog info-dialog-column info-dialog-password", - ref: c - }, x().createElement(g8, { - editEnabled: r, - locked: n, - onSubmit: u, - password: a, - passwordNumberOfDigits: i - })), x().createElement("div", { - className: "security-dialog password-actions" - }, e ? r ? x().createElement(x().Fragment, null, x().createElement("a", { - "aria-label": l("dialog.Cancel"), - onClick: d, - onKeyPress: f, - role: "button", - tabIndex: 0 - }, l("dialog.Cancel")), x().createElement("a", { - "aria-label": l("dialog.add"), - onClick: p, - onKeyPress: function(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), p()) - }, - role: "button", - tabIndex: 0 - }, l("dialog.add"))) : n ? x().createElement(x().Fragment, null, x().createElement("a", { - "aria-label": l("dialog.Remove"), - className: "remove-password", - onClick: h, - onKeyPress: function(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), h()) - }, - role: "button", - tabIndex: 0 - }, l("dialog.Remove")), a ? x().createElement(x().Fragment, null, x().createElement("a", { - "aria-label": l("dialog.copy"), - className: "copy-password", - onClick: m, - onKeyPress: function(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), m()) - }, - role: "button", - tabIndex: 0 - }, l("dialog.copy"))) : null) : x().createElement("a", { - "aria-label": l("info.addPassword"), - className: "add-password", - onClick: d, - onKeyPress: f, - role: "button", - tabIndex: 0 - }, l("info.addPassword")) : null))) - })), - y8 = ze((function(e) { - const { - conference: t, - e2eeSupported: n, - locked: a, - password: r - } = e["features/base/conference"], { - roomPasswordNumberOfDigits: i - } = e["features/base/config"], o = Boolean(n) && Jh(e); - return { - _canEditPassword: Jh(e), - _conference: t, - _dialIn: e["features/invite"], - _locked: a, - _password: r, - _passwordNumberOfDigits: i, - _showE2ee: o - } - }), { - setPassword: yN - })((function({ - _canEditPassword: e, - _conference: t, - _locked: n, - _password: a, - _passwordNumberOfDigits: r, - _showE2ee: i, - setPassword: o - }) { - const [s, l] = (0, E.useState)(!1); - return (0, E.useEffect)((() => { - s && a && l(!1) - }), [a]), x().createElement(IO, { - hideCancelButton: !0, - submitDisabled: !0, - titleKey: "security.securityOptions", - width: "small" - }, x().createElement("div", { - className: "security-dialog" - }, x().createElement(l8, null), x().createElement(b8, { - canEditPassword: e, - conference: t, - locked: n, - password: a, - passwordEditEnabled: s, - passwordNumberOfDigits: r, - setPassword: o, - setPasswordEditEnabled: l - }), i ? x().createElement(x().Fragment, null, x().createElement("div", { - className: "separator-line" - }), x().createElement(z4, null)) : null)) + } = e; + this.props.onShareAudioChecked(t) + } + render() { + const { + onClick: e, + onDoubleClick: t, + selectedSourceId: n, + sources: a, + type: r, + t: i + } = this.props, o = `desktop-picker-pane default-scrollbar source-type-${r}`, s = a ? a.map((a => C().createElement(lee, { + key: a.id, + onClick: e, + onDoubleClick: t, + selected: a.id === n, + source: a, + type: r + }))) : C().createElement("div", { + className: "desktop-picker-pane-spinner" + }, C().createElement(Ay, { + isCompleting: !1, + size: "medium" })); - - function v8(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + let l; + return "screen" === r && "windows" === ya.OS && (l = C().createElement(vV, { + label: i("dialog.screenSharingAudio"), + name: "share-system-audio", + onChange: this._onShareAudioCheck + })), C().createElement("div", { + className: o + }, s, l) } - const k8 = Li(ze((function(e) { - const { - conference: t - } = e["features/base/conference"], { - hideLobbyButton: n - } = e["features/base/config"], { - locked: a - } = e["features/base/conference"], { - lobbyEnabled: r - } = e["features/lobby"], i = t && t.isLobbySupported() && Jh(e) && !n, o = Df(e, "security-options.enabled", !0), s = Df(e, "lobby-mode.enabled", !0) && i, l = Df(e, "meeting-password.enabled", !0); - return { - _locked: a || r, - visible: o || s || l - } - }))(class extends Vw { - constructor(...e) { - super(...e), v8(this, "accessibilityLabel", "toolbar.accessibilityLabel.security"), v8(this, "icon", Qd), v8(this, "label", "toolbar.security"), v8(this, "toggledIcon", rp), v8(this, "tooltip", "toolbar.security") - } - _handleClick() { - const { - _locked: e, - dispatch: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("toggle.security", { - enable: !e - })), t((function(e) { - e(lP(y8)) - }))) - } - _isToggled() { - return this.props._locked + } + const uee = Ei(cee); + + function dee(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e + } + const pee = { + height: 300, + width: 300 + }, hee = { + screen: "dialog.yourEntireScreen", + window: "dialog.applicationWindow" + }, mee = Object.keys(hee); class fee extends x.PureComponent { + static getDerivedStateFromProps(e) { + return { + types: fee._getValidTypes(e.desktopSharingSources) + } + } + static _getValidTypes() { + return (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []).filter((e => mee.includes(e))) + } + constructor(e) { + super(e), dee(this, "_poller", null), dee(this, "state", { + screenShareAudio: !1, + selectedSource: {}, + selectedTab: 0, + sources: {}, + types: [] + }), dee(this, "_selectedTabType", "screen"), this._onCloseModal = this._onCloseModal.bind(this), this._onPreviewClick = this._onPreviewClick.bind(this), this._onShareAudioChecked = this._onShareAudioChecked.bind(this), this._onSubmit = this._onSubmit.bind(this), this._onTabSelected = this._onTabSelected.bind(this), this._updateSources = this._updateSources.bind(this), this.state.types = fee._getValidTypes(this.props.desktopSharingSources) + } + componentDidMount() { + this._startPolling() + } + componentWillUnmount() { + this._stopPolling() + } + render() { + return C().createElement(yL, { + isModal: !1, + okDisabled: Boolean(!this.state.selectedSource.id), + okKey: "dialog.Share", + onCancel: this._onCloseModal, + onSubmit: this._onSubmit, + titleKey: "dialog.shareYourScreen", + width: "medium" + }, this._renderTabs()) + } + _getSelectedSource() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const { + selectedSource: t + } = this.state; + return !Array.isArray(e[this._selectedTabType]) || e[this._selectedTabType].length <= 0 ? {} : t && t.type === this._selectedTabType && e[this._selectedTabType].some((e => e.id === t.id)) ? t : { + id: e[this._selectedTabType][0].id, + type: this._selectedTabType + } + } + _onCloseModal() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "", + t = arguments.length > 1 ? arguments[1] : void 0, + n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + this.props.onSourceChoose(e, t, n), this.props.dispatch(HI()) + } + _onPreviewClick(e, t) { + this.setState({ + selectedSource: { + id: e, + type: t } - })), - _8 = 20, - w8 = { - ULTRA: 2160, - HIGH: 720, - STANDARD: 360, - LOW: 180, - NONE: 0 - }, - S8 = { - low: w8.LOW, - standard: w8.STANDARD, - high: w8.HIGH - }, - { - LOW: E8, - STANDARD: x8, - HIGH: C8, - ULTRA: A8 - } = w8, - j8 = [E8, x8, C8, A8]; - - function P8(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + }) } - const D8 = { - [w8.ULTRA]: Hp, - [w8.HIGH]: Hp, - [w8.STANDARD]: function(e) { - return x().createElement("svg", Yp({}, e, { - viewBox: "0 0 32 32" - }), Gp) + _onSubmit() { + const { + selectedSource: { + id: e, + type: t }, - [w8.LOW]: function(e) { - return x().createElement("svg", Vp({}, e, { - viewBox: "0 0 32 32" - }), Wp) - } - }, - T8 = Li(ze((function(e) { - return { - _audioOnly: e["features/base/audio-only"].enabled, - _videoQuality: e["features/video-quality"].preferredVideoQuality - } - }))(class extends Vw { - constructor(...e) { - super(...e), P8(this, "accessibilityLabel", "toolbar.accessibilityLabel.callQuality"), P8(this, "label", "toolbar.callQuality"), P8(this, "tooltip", "toolbar.callQuality") - } - get icon() { - const { - _audioOnly: e, - _videoQuality: t - } = this.props, n = function(e) { - for (let t = 0; t < j8.length; t++) { - const n = j8[t]; - if (n >= e) return n - } - }(t); - return e || !n ? qp : D8[n] - } - set icon(e) { - return e - } - _handleClick() { - const { - handleClick: e - } = this.props; - e && e() - } - })), - O8 = "SET_LAST_N"; - - function M8(e) { - return { - type: O8, - lastN: e - } + screenShareAudio: n + } = this.state; + this._onCloseModal(e, t, n) } - const I8 = "SET_PREFERRED_VIDEO_QUALITY", - N8 = "SET_MAX_RECEIVER_VIDEO_QUALITY", - z8 = Je("features/video-quality"); - - function R8(e) { - return { - type: I8, - preferredVideoQuality: e - } + _onTabSelected(e, t) { + const { + types: n, + sources: a + } = this.state; + this._selectedTabType = n[t], this.setState({ + screenShareAudio: !1, + selectedSource: this._getSelectedSource(a), + selectedTab: t + }) } - const { - ULTRA: L8, - HIGH: F8, - STANDARD: q8, - LOW: B8 - } = w8, U8 = function(e) { - return hn("video.quality", { - quality: e + _onShareAudioChecked(e) { + this.setState({ + screenShareAudio: e }) - }; - class H8 extends E.Component { - constructor(e) { - super(e), this._enableAudioOnly = this._enableAudioOnly.bind(this), this._enableHighDefinition = this._enableHighDefinition.bind(this), this._enableLowDefinition = this._enableLowDefinition.bind(this), this._enableStandardDefinition = this._enableStandardDefinition.bind(this), this._enableUltraHighDefinition = this._enableUltraHighDefinition.bind(this), this._onSliderChange = this._onSliderChange.bind(this), this._sliderOptions = [{ - audioOnly: !0, - onSelect: this._enableAudioOnly, - textKey: "audioOnly.audioOnly" - }, { - onSelect: this._enableLowDefinition, - textKey: "videoStatus.lowDefinition", - videoQuality: B8 - }, { - onSelect: this._enableStandardDefinition, - textKey: "videoStatus.standardDefinition", - videoQuality: q8 - }, { - onSelect: this._enableUltraHighDefinition, - textKey: "videoStatus.highDefinition", - videoQuality: L8 - }] - } - render() { - const { - t: e - } = this.props, t = this._mapCurrentQualityToSliderValue(); - return x().createElement("div", { - className: "video-quality-dialog" - }, x().createElement("h3", { - className: "video-quality-dialog-title" - }, e("videoStatus.callQuality")), x().createElement("div", { - className: "video-quality-dialog-contents" - }, x().createElement("div", { - className: "video-quality-dialog-slider-container" - }, x().createElement("input", { - "aria-label": e("videoStatus.callQuality"), - className: "video-quality-dialog-slider", - max: this._sliderOptions.length - 1, - min: "0", - onChange: this._onSliderChange, - onMouseUp: this._onSliderChange, - step: "1", - type: "range", - value: t - })), x().createElement("div", { - className: "video-quality-dialog-labels" - }, this._createLabels(t)))) - } - _createLabels(e) { - const t = this._sliderOptions.length, - n = 100 / t + "%"; - return this._sliderOptions.map(((a, r) => { - const i = { - maxWidth: n, - left: 100 * r / (t - 1) + "%" - }, - o = "video-quality-dialog-label-container " + (e === r ? "active" : ""); - return x().createElement("div", { - className: o, - key: r, - style: i - }, x().createElement("div", { - className: "video-quality-dialog-label" - }, this.props.t(a.textKey))) - })) - } - _enableAudioOnly() { - Ma(U8("audio.only")), z8.log("Video quality: audio only enabled"), this.props.dispatch(ZQ(!0)) - } - _enableHighDefinition() { - Ma(U8("high")), z8.log("Video quality: high enabled"), this._setPreferredVideoQuality(F8) - } - _enableLowDefinition() { - Ma(U8("low")), z8.log("Video quality: low enabled"), this._setPreferredVideoQuality(B8) - } - _enableStandardDefinition() { - Ma(U8("standard")), z8.log("Video quality: standard enabled"), this._setPreferredVideoQuality(q8) - } - _enableUltraHighDefinition() { - Ma(U8("ultra high")), z8.log("Video quality: ultra high enabled"), this._setPreferredVideoQuality(L8) - } - _mapCurrentQualityToSliderValue() { - const { - _audioOnly: e, - _sendrecvVideoQuality: t - } = this.props, { - _sliderOptions: n - } = this; - if (e) { - const e = n.find((({ - audioOnly: e - }) => e)); - return n.indexOf(e) - } - for (let e = 0; e < n.length; e++) - if (n[e].videoQuality >= t) return e; - return -1 - } - _onSliderChange(e) { - const { - _audioOnly: t, - _sendrecvVideoQuality: n - } = this.props, { - audioOnly: a, - onSelect: r, - videoQuality: i - } = this._sliderOptions[e.target.value]; - t && a || !t && i === n || r() - } - _setPreferredVideoQuality(e) { - this.props.dispatch(R8(e)), this.props._audioOnly && this.props.dispatch(ZQ(!1)); - let { - _channelLastN: t = _8 - } = this.props; - t = -1 === t ? _8 : t; - const n = function(e, t) { - let n = t; - const a = Object.values(w8); - for (const r in a) a.hasOwnProperty(r) && e === a[r] && r > 1 && (n = Math.floor(t / Math.pow(2, r - 1))); - return n - }(e, t); - this.props.dispatch(M8(n)) - } } - const V8 = Li(ze((function(e) { + _renderTabs() { const { - enabled: t - } = e["features/base/audio-only"], { - p2p: n - } = e["features/base/conference"], { - preferredVideoQuality: a - } = e["features/video-quality"], { - channelLastN: r - } = e["features/base/config"]; - return { - _audioOnly: t, - _channelLastN: r, - _p2p: n, - _sendrecvVideoQuality: a - } - }))(H8)); - class W8 extends E.Component { - render() { - return x().createElement(IO, { - hideCancelButton: !0, - okKey: "dialog.done", - titleKey: "videoStatus.callQuality", - width: "small" - }, x().createElement(V8, null)) - } + selectedSource: e, + sources: t, + types: n + } = this.state, { + t: a + } = this.props, r = n.map((n => ({ + content: C().createElement(uee, { + key: n, + onClick: this._onPreviewClick, + onDoubleClick: this._onSubmit, + onShareAudioChecked: this._onShareAudioChecked, + selectedSourceId: e.id, + sources: t[n], + type: n + }), + label: a(hee[n]) + }))); + return C().createElement(YL, { + onSelect: this._onTabSelected, + selected: this.state.selectedTab, + tabs: r + }) } - class Y8 extends E.Component {} - - function G8(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _startPolling() { + this._stopPolling(), this._updateSources(), this._poller = window.setInterval(this._updateSources, 2e3) } - const K8 = { - 720: "videoStatus.hd", - 360: "videoStatus.sd", - 180: "videoStatus.ld" - }, - $8 = Object.keys(K8).map((e => parseInt(e, 10))).sort(((e, t) => e - t)), - J8 = Li(ze((function(e) { - const { - enabled: t - } = e["features/base/audio-only"], { - resolution: n, - participantId: a - } = e["features/large-video"], r = Qo(e["features/base/tracks"], to, a), i = t ? {} : function(e) { - let t = $8[0]; - for (let n = 0; n < $8.length; n++) { - const a = $8[n]; - if (!(e >= a)) break; - t = a - } - const n = K8[t]; - return { - labelKey: n, - tooltipKey: `${n}Tooltip` - } - }(n); - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - G8(e, t, n[t]) - })) - } - return e - }({}, function(e) { + _stopPolling() { + window.clearInterval(this._poller), this._poller = null + } + _updateSources() { + const { + types: e + } = this.state; + e.length > 0 && function(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + const n = { + types: e + }; + return t.thumbnailSize && (n.thumbnailSize = t.thumbnailSize), new Promise(((e, t) => { const { - enabled: t - } = e["features/base/audio-only"]; - return { - _audioOnly: t + JitsiMeetElectron: a + } = window; + if (!a || !a.obtainDesktopStreams) { + const e = "Called JitsiMeetElectron.obtainDesktopStreams but it is not defined"; + return iee.error(e), Promise.reject(new Error(e)) } - }(e), { - _labelKey: i.labelKey, - _tooltipKey: i.tooltipKey, - _videoTrack: r, - _visible: !(Ok(e) || interfaceConfig.VIDEO_QUALITY_LABEL_DISABLED) + a.obtainDesktopStreams((t => e(oee(t))), (e => { + iee.error(`Error while obtaining desktop sources: ${e}`), t(e) + }), n) + })) + }(this.state.types, { + thumbnailSize: pee + }).then((e => { + const t = this._getSelectedSource(e); + this.setState({ + sources: e, + selectedSource: t }) - }))(class extends Y8 { - render() { - const { - _audioOnly: e, - _labelKey: t, - _tooltipKey: n, - _videoTrack: a, - _visible: r, - t: i - } = this.props; - if (!r) return null; - let o, s, l; - return e ? (o = "audio-only", s = i("videoStatus.audioOnly"), l = "videoStatus.labelTooltipAudioOnly") : !a || a.muted ? (o = "no-video", s = i("videoStatus.audioOnly"), l = "videoStatus.labelTooiltipNoVideo") : (o = "current-video-quality", s = i(t), l = n), x().createElement(Fw, { - content: i(l), - position: "bottom" - }, x().createElement(qW, { - className: o, - id: "videoResolutionLabel", - text: s - })) - } - })); - - function Z8(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + })).catch((() => {})) } - const Q8 = Li(ze((function(e) { - return { - _isBackgroundEnabled: Boolean(e["features/virtual-background"].backgroundEffectEnabled), - visible: wo() - } - }))(class extends Vw { - constructor(...e) { - super(...e), Z8(this, "accessibilityLabel", "toolbar.accessibilityLabel.selectBackground"), Z8(this, "icon", Xp), Z8(this, "label", "toolbar.selectBackground"), Z8(this, "tooltip", "toolbar.selectBackground") - } - _handleClick() { - const { - dispatch: e, - handleClick: t - } = this.props; - t ? t() : e(sP(i7)) + } + const gee = Ei(Ne()(fee)), bee = { + window: window.opener || window.parent + }, yee = "message"; class vee { + constructor() { + let { + postisOptions: e + } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + this.postis = function(e) { + var t, n = e.scope, + a = e.window, + r = e.windowForEventListening || window, + i = e.allowedOrigin, + o = {}, + s = [], + l = {}, + c = !1, + u = "__ready__", + d = function(e) { + var t; + try { + t = JSON.parse(e.data) + } catch (e) { + return + } + if ((!i || e.origin === i) && t && t.postis && t.scope === n) { + var a = o[t.method]; + if (a) + for (var r = 0; r < a.length; r++) a[r].call(null, t.params); + else l[t.method] = l[t.method] || [], l[t.method].push(t.params) + } + }; + r.addEventListener("message", d, !1); + var p = { + listen: function(e, t) { + o[e] = o[e] || [], o[e].push(t); + var n = l[e]; + if (n) + for (var a = o[e], r = 0; r < a.length; r++) + for (var i = 0; i < n.length; i++) a[r].call(null, n[i]); + delete l[e] + }, + send: function(e) { + var t = e.method; + (c || e.method === u) && a && "function" == typeof a.postMessage ? a.postMessage(JSON.stringify({ + postis: !0, + scope: n, + method: t, + params: e.params + }), "*") : s.push(e) + }, + ready: function(e) { + c ? e() : setTimeout((function() { + p.ready(e) + }), 50) + }, + destroy: function(e) { + clearInterval(t), c = !1, r && "function" == typeof r.removeEventListener && r.removeEventListener("message", d), e && e() + } + }, + h = +new Date + Math.random() + ""; + return t = setInterval((function() { + p.send({ + method: u, + params: h + }) + }), 50), p.listen(u, (function(e) { + if (e === h) { + clearInterval(t), c = !0; + for (var n = 0; n < s.length; n++) p.send(s[n]); + s = [] + } else p.send({ + method: u, + params: e + }) + })), p + }({ + ...bee, + ...e + }), this._receiveCallback = () => {}, this.postis.listen(yee, (e => this._receiveCallback(e))) + } + dispose() { + this.postis.destroy() + } + send(e) { + this.postis.send({ + method: yee, + params: e + }) + } + setReceiveCallback(e) { + this._receiveCallback = e + } + } + const kee = "request", _ee = "response"; class wee { + constructor() { + let { + backend: e + } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + this._listeners = new Map, this._requestID = 0, this._responseHandlers = new Map, this._unprocessedMessages = new Set, this.addListener = this.on, e && this.setBackend(e) + } + _disposeBackend() { + this._backend && (this._backend.dispose(), this._backend = null) + } + _onMessageReceived(e) { + if (e.type === _ee) { + const t = this._responseHandlers.get(e.id); + t && (t(e), this._responseHandlers.delete(e.id)) + } else e.type === kee ? this.emit("request", e.data, ((t, n) => { + this._backend.send({ + type: _ee, + error: n, + id: e.id, + result: t + }) + })) : this.emit("event", e.data) + } + dispose() { + this._responseHandlers.clear(), this._unprocessedMessages.clear(), this.removeAllListeners(), this._disposeBackend() + } + emit(e) { + for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), a = 1; a < t; a++) n[a - 1] = arguments[a]; + const r = this._listeners.get(e); + let i = !1; + return r && r.size && r.forEach((e => { + i = e(...n) || i + })), i || this._unprocessedMessages.add(n), i + } + on(e, t) { + let n = this._listeners.get(e); + return n || (n = new Set, this._listeners.set(e, n)), n.add(t), this._unprocessedMessages.forEach((e => { + t(...e) && this._unprocessedMessages.delete(e) + })), this + } + removeAllListeners(e) { + return e ? this._listeners.delete(e) : this._listeners.clear(), this + } + removeListener(e, t) { + const n = this._listeners.get(e); + return n && n.delete(t), this + } + sendEvent() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + this._backend && this._backend.send({ + type: "event", + data: e + }) + } + sendRequest(e) { + if (!this._backend) return Promise.reject(new Error("No transport backend defined!")); + this._requestID++; + const t = this._requestID; + return new Promise(((n, a) => { + this._responseHandlers.set(t, (e => { + let { + error: t, + result: r + } = e; + void 0 !== r ? n(r) : a(void 0 !== t ? t : new Error("Unexpected response format!")) + })), this._backend.send({ + type: kee, + data: e, + id: t + }) + })) + } + setBackend(e) { + this._disposeBackend(), this._backend = e, this._backend.setReceiveCallback(this._onMessageReceived.bind(this)) + } + } + const See = {}; + let Eee; + + function xee() { + return Eee || (Eee = new wee({ + backend: new vee({ + postisOptions: See + }) + })), Eee + } + "number" == typeof Rt && (See.scope = `jitsi_meet_external_api_${Rt}`), Dt().setExternalTransportBackend = e => Eee.setBackend(e); + const Cee = "SUSPEND_DETECTED", Aee = "SET_TRANSPORT"; + + function Tee() { + return { + type: Cee + } + } + + function Dee(e) { + return { + type: Aee, + transport: e + } + } + const Pee = Aw((e => ({ + prejoinPreviewDropdownBtn: { + alignItems: "center", + color: "#1C2025", + cursor: "pointer", + display: "flex", + height: 40, + fontSize: 15, + lineHeight: "24px", + padding: "0 16px", + backgroundColor: e.palette.field02, + "&:hover": { + backgroundColor: e.palette.field02Hover + } + }, + prejoinPreviewDropdownIcon: { + display: "inline-block", + marginRight: 16, + "& > svg": { + fill: "#1C2025" + } + } + })))((e => { + let { + classes: t, + dataTestId: n, + icon: a, + onButtonClick: r, + onKeyPressed: i, + label: o + } = e; + return C().createElement("div", { + className: t.prejoinPreviewDropdownBtn, + "data-testid": n, + onClick: r, + onKeyPress: i, + role: "button", + tabIndex: 0 + }, C().createElement(lo, { + className: t.prejoinPreviewDropdownIcon, + size: 24, + src: a + }), o) + })), jee = function(e) { + let { + children: t, + className: n, + number: a, + onClick: r + } = e; + const i = n ? `prejoin-dialog-label ${n}` : "prejoin-dialog-label"; + return C().createElement("div", { + className: i, + onClick: r + }, a && C().createElement("div", { + className: "prejoin-dialog-label-num" + }, a), C().createElement("span", null, t)) + }, Mee = Ei((function(e) { + const { + number: t, + onClose: n, + status: a, + t: r + } = e; + return C().createElement("div", { + className: "prejoin-dialog-calling" + }, C().createElement("div", { + className: "prejoin-dialog-calling-header" + }, C().createElement(lo, { + className: "prejoin-dialog-icon", + onClick: n, + role: "button", + size: 24, + src: ds + })), C().createElement(jee, { + className: "prejoin-dialog-calling-label" + }, r(a)), C().createElement(sp, { + size: 72 + }), C().createElement("div", { + className: "prejoin-dialog-calling-number" + }, t)) + })), Iee = [{ + name: "Afghanistan", + dialCode: "93", + code: "af" + }, { + name: "Aland Islands", + dialCode: "358", + code: "ax" + }, { + name: "Albania", + dialCode: "355", + code: "al" + }, { + name: "Algeria", + dialCode: "213", + code: "dz" + }, { + name: "AmericanSamoa", + dialCode: "1684", + code: "as" + }, { + name: "Andorra", + dialCode: "376", + code: "ad" + }, { + name: "Angola", + dialCode: "244", + code: "ao" + }, { + name: "Anguilla", + dialCode: "1264", + code: "ai" + }, { + name: "Antarctica", + dialCode: "672", + code: "aq" + }, { + name: "Antigua and Barbuda", + dialCode: "1268", + code: "ag" + }, { + name: "Argentina", + dialCode: "54", + code: "ar" + }, { + name: "Armenia", + dialCode: "374", + code: "am" + }, { + name: "Aruba", + dialCode: "297", + code: "aw" + }, { + name: "Australia", + dialCode: "61", + code: "au" + }, { + name: "Austria", + dialCode: "43", + code: "at" + }, { + name: "Azerbaijan", + dialCode: "994", + code: "az" + }, { + name: "Bahamas", + dialCode: "1242", + code: "bs" + }, { + name: "Bahrain", + dialCode: "973", + code: "bh" + }, { + name: "Bangladesh", + dialCode: "880", + code: "bd" + }, { + name: "Barbados", + dialCode: "1246", + code: "bb" + }, { + name: "Belarus", + dialCode: "375", + code: "by" + }, { + name: "Belgium", + dialCode: "32", + code: "be" + }, { + name: "Belize", + dialCode: "501", + code: "bz" + }, { + name: "Benin", + dialCode: "229", + code: "bj" + }, { + name: "Bermuda", + dialCode: "1441", + code: "bm" + }, { + name: "Bhutan", + dialCode: "975", + code: "bt" + }, { + name: "Bolivia, Plurinational State of", + dialCode: "591", + code: "bo" + }, { + name: "Bosnia and Herzegovina", + dialCode: "387", + code: "ba" + }, { + name: "Botswana", + dialCode: "267", + code: "bw" + }, { + name: "Brazil", + dialCode: "55", + code: "br" + }, { + name: "British Indian Ocean Territory", + dialCode: "246", + code: "io" + }, { + name: "Brunei Darussalam", + dialCode: "673", + code: "bn" + }, { + name: "Bulgaria", + dialCode: "359", + code: "bg" + }, { + name: "Burkina Faso", + dialCode: "226", + code: "bf" + }, { + name: "Burundi", + dialCode: "257", + code: "bi" + }, { + name: "Cambodia", + dialCode: "855", + code: "kh" + }, { + name: "Cameroon", + dialCode: "237", + code: "cm" + }, { + name: "Canada", + dialCode: "1", + code: "ca" + }, { + name: "Cape Verde", + dialCode: "238", + code: "cv" + }, { + name: "Cayman Islands", + dialCode: " 345", + code: "ky" + }, { + name: "Central African Republic", + dialCode: "236", + code: "cf" + }, { + name: "Chad", + dialCode: "235", + code: "td" + }, { + name: "Chile", + dialCode: "56", + code: "cl" + }, { + name: "China", + dialCode: "86", + code: "cn" + }, { + name: "Christmas Island", + dialCode: "61", + code: "cx" + }, { + name: "Cocos (Keeling) Islands", + dialCode: "61", + code: "cc" + }, { + name: "Colombia", + dialCode: "57", + code: "co" + }, { + name: "Comoros", + dialCode: "269", + code: "km" + }, { + name: "Congo", + dialCode: "242", + code: "cg" + }, { + name: "Congo, The Democratic Republic of the Congo", + dialCode: "243", + code: "cd" + }, { + name: "Cook Islands", + dialCode: "682", + code: "ck" + }, { + name: "Costa Rica", + dialCode: "506", + code: "cr" + }, { + name: "Cote d'Ivoire", + dialCode: "225", + code: "ci" + }, { + name: "Croatia", + dialCode: "385", + code: "hr" + }, { + name: "Cuba", + dialCode: "53", + code: "cu" + }, { + name: "Cyprus", + dialCode: "357", + code: "cy" + }, { + name: "Czech Republic", + dialCode: "420", + code: "cz" + }, { + name: "Denmark", + dialCode: "45", + code: "dk" + }, { + name: "Djibouti", + dialCode: "253", + code: "dj" + }, { + name: "Dominica", + dialCode: "1767", + code: "dm" + }, { + name: "Dominican Republic", + dialCode: "1849", + code: "do" + }, { + name: "Ecuador", + dialCode: "593", + code: "ec" + }, { + name: "Egypt", + dialCode: "20", + code: "eg" + }, { + name: "El Salvador", + dialCode: "503", + code: "sv" + }, { + name: "Equatorial Guinea", + dialCode: "240", + code: "gq" + }, { + name: "Eritrea", + dialCode: "291", + code: "er" + }, { + name: "Estonia", + dialCode: "372", + code: "ee" + }, { + name: "Ethiopia", + dialCode: "251", + code: "et" + }, { + name: "Falkland Islands (Malvinas)", + dialCode: "500", + code: "fk" + }, { + name: "Faroe Islands", + dialCode: "298", + code: "fo" + }, { + name: "Fiji", + dialCode: "679", + code: "fj" + }, { + name: "Finland", + dialCode: "358", + code: "fi" + }, { + name: "France", + dialCode: "33", + code: "fr" + }, { + name: "French Guiana", + dialCode: "594", + code: "gf" + }, { + name: "French Polynesia", + dialCode: "689", + code: "pf" + }, { + name: "Gabon", + dialCode: "241", + code: "ga" + }, { + name: "Gambia", + dialCode: "220", + code: "gm" + }, { + name: "Georgia", + dialCode: "995", + code: "ge" + }, { + name: "Germany", + dialCode: "49", + code: "de" + }, { + name: "Ghana", + dialCode: "233", + code: "gh" + }, { + name: "Gibraltar", + dialCode: "350", + code: "gi" + }, { + name: "Greece", + dialCode: "30", + code: "gr" + }, { + name: "Greenland", + dialCode: "299", + code: "gl" + }, { + name: "Grenada", + dialCode: "1473", + code: "gd" + }, { + name: "Guadeloupe", + dialCode: "590", + code: "gp" + }, { + name: "Guam", + dialCode: "1671", + code: "gu" + }, { + name: "Guatemala", + dialCode: "502", + code: "gt" + }, { + name: "Guernsey", + dialCode: "44", + code: "gg" + }, { + name: "Guinea", + dialCode: "224", + code: "gn" + }, { + name: "Guinea-Bissau", + dialCode: "245", + code: "gw" + }, { + name: "Guyana", + dialCode: "595", + code: "gy" + }, { + name: "Haiti", + dialCode: "509", + code: "ht" + }, { + name: "Holy See (Vatican City State)", + dialCode: "379", + code: "va" + }, { + name: "Honduras", + dialCode: "504", + code: "hn" + }, { + name: "Hong Kong", + dialCode: "852", + code: "hk" + }, { + name: "Hungary", + dialCode: "36", + code: "hu" + }, { + name: "Iceland", + dialCode: "354", + code: "is" + }, { + name: "India", + dialCode: "91", + code: "in" + }, { + name: "Indonesia", + dialCode: "62", + code: "id" + }, { + name: "Iran, Islamic Republic of Persian Gulf", + dialCode: "98", + code: "ir" + }, { + name: "Iraq", + dialCode: "964", + code: "iq" + }, { + name: "Ireland", + dialCode: "353", + code: "ie" + }, { + name: "Isle of Man", + dialCode: "44", + code: "im" + }, { + name: "Israel", + dialCode: "972", + code: "il" + }, { + name: "Italy", + dialCode: "39", + code: "it" + }, { + name: "Jamaica", + dialCode: "1876", + code: "jm" + }, { + name: "Japan", + dialCode: "81", + code: "jp" + }, { + name: "Jersey", + dialCode: "44", + code: "je" + }, { + name: "Jordan", + dialCode: "962", + code: "jo" + }, { + name: "Kazakhstan", + dialCode: "77", + code: "kz" + }, { + name: "Kenya", + dialCode: "254", + code: "ke" + }, { + name: "Kiribati", + dialCode: "686", + code: "ki" + }, { + name: "Korea, Democratic People's Republic of Korea", + dialCode: "850", + code: "kp" + }, { + name: "Korea, Republic of South Korea", + dialCode: "82", + code: "kr" + }, { + name: "Kuwait", + dialCode: "965", + code: "kw" + }, { + name: "Kyrgyzstan", + dialCode: "996", + code: "kg" + }, { + name: "Laos", + dialCode: "856", + code: "la" + }, { + name: "Latvia", + dialCode: "371", + code: "lv" + }, { + name: "Lebanon", + dialCode: "961", + code: "lb" + }, { + name: "Lesotho", + dialCode: "266", + code: "ls" + }, { + name: "Liberia", + dialCode: "231", + code: "lr" + }, { + name: "Libyan Arab Jamahiriya", + dialCode: "218", + code: "ly" + }, { + name: "Liechtenstein", + dialCode: "423", + code: "li" + }, { + name: "Lithuania", + dialCode: "370", + code: "lt" + }, { + name: "Luxembourg", + dialCode: "352", + code: "lu" + }, { + name: "Macao", + dialCode: "853", + code: "mo" + }, { + name: "Macedonia", + dialCode: "389", + code: "mk" + }, { + name: "Madagascar", + dialCode: "261", + code: "mg" + }, { + name: "Malawi", + dialCode: "265", + code: "mw" + }, { + name: "Malaysia", + dialCode: "60", + code: "my" + }, { + name: "Maldives", + dialCode: "960", + code: "mv" + }, { + name: "Mali", + dialCode: "223", + code: "ml" + }, { + name: "Malta", + dialCode: "356", + code: "mt" + }, { + name: "Marshall Islands", + dialCode: "692", + code: "mh" + }, { + name: "Martinique", + dialCode: "596", + code: "mq" + }, { + name: "Mauritania", + dialCode: "222", + code: "mr" + }, { + name: "Mauritius", + dialCode: "230", + code: "mu" + }, { + name: "Mayotte", + dialCode: "262", + code: "yt" + }, { + name: "Mexico", + dialCode: "52", + code: "mx" + }, { + name: "Micronesia, Federated States of Micronesia", + dialCode: "691", + code: "fm" + }, { + name: "Moldova", + dialCode: "373", + code: "md" + }, { + name: "Monaco", + dialCode: "377", + code: "mc" + }, { + name: "Mongolia", + dialCode: "976", + code: "mn" + }, { + name: "Montenegro", + dialCode: "382", + code: "me" + }, { + name: "Montserrat", + dialCode: "1664", + code: "ms" + }, { + name: "Morocco", + dialCode: "212", + code: "ma" + }, { + name: "Mozambique", + dialCode: "258", + code: "mz" + }, { + name: "Myanmar", + dialCode: "95", + code: "mm" + }, { + name: "Namibia", + dialCode: "264", + code: "na" + }, { + name: "Nauru", + dialCode: "674", + code: "nr" + }, { + name: "Nepal", + dialCode: "977", + code: "np" + }, { + name: "Netherlands", + dialCode: "31", + code: "nl" + }, { + name: "Netherlands Antilles", + dialCode: "599", + code: "an" + }, { + name: "New Caledonia", + dialCode: "687", + code: "nc" + }, { + name: "New Zealand", + dialCode: "64", + code: "nz" + }, { + name: "Nicaragua", + dialCode: "505", + code: "ni" + }, { + name: "Niger", + dialCode: "227", + code: "ne" + }, { + name: "Nigeria", + dialCode: "234", + code: "ng" + }, { + name: "Niue", + dialCode: "683", + code: "nu" + }, { + name: "Norfolk Island", + dialCode: "672", + code: "nf" + }, { + name: "Northern Mariana Islands", + dialCode: "1670", + code: "mp" + }, { + name: "Norway", + dialCode: "47", + code: "no" + }, { + name: "Oman", + dialCode: "968", + code: "om" + }, { + name: "Pakistan", + dialCode: "92", + code: "pk" + }, { + name: "Palau", + dialCode: "680", + code: "pw" + }, { + name: "Palestinian Territory, Occupied", + dialCode: "970", + code: "ps" + }, { + name: "Panama", + dialCode: "507", + code: "pa" + }, { + name: "Papua New Guinea", + dialCode: "675", + code: "pg" + }, { + name: "Paraguay", + dialCode: "595", + code: "py" + }, { + name: "Peru", + dialCode: "51", + code: "pe" + }, { + name: "Philippines", + dialCode: "63", + code: "ph" + }, { + name: "Pitcairn", + dialCode: "872", + code: "pn" + }, { + name: "Poland", + dialCode: "48", + code: "pl" + }, { + name: "Portugal", + dialCode: "351", + code: "pt" + }, { + name: "Puerto Rico", + dialCode: "1939", + code: "pr" + }, { + name: "Qatar", + dialCode: "974", + code: "qa" + }, { + name: "Romania", + dialCode: "40", + code: "ro" + }, { + name: "Russia", + dialCode: "7", + code: "ru" + }, { + name: "Rwanda", + dialCode: "250", + code: "rw" + }, { + name: "Reunion", + dialCode: "262", + code: "re" + }, { + name: "Saint Barthelemy", + dialCode: "590", + code: "bl" + }, { + name: "Saint Helena, Ascension and Tristan Da Cunha", + dialCode: "290", + code: "sh" + }, { + name: "Saint Kitts and Nevis", + dialCode: "1869", + code: "kn" + }, { + name: "Saint Lucia", + dialCode: "1758", + code: "lc" + }, { + name: "Saint Martin", + dialCode: "590", + code: "mf" + }, { + name: "Saint Pierre and Miquelon", + dialCode: "508", + code: "pm" + }, { + name: "Saint Vincent and the Grenadines", + dialCode: "1784", + code: "vc" + }, { + name: "Samoa", + dialCode: "685", + code: "ws" + }, { + name: "San Marino", + dialCode: "378", + code: "sm" + }, { + name: "Sao Tome and Principe", + dialCode: "239", + code: "st" + }, { + name: "Saudi Arabia", + dialCode: "966", + code: "sa" + }, { + name: "Senegal", + dialCode: "221", + code: "sn" + }, { + name: "Serbia", + dialCode: "381", + code: "rs" + }, { + name: "Seychelles", + dialCode: "248", + code: "sc" + }, { + name: "Sierra Leone", + dialCode: "232", + code: "sl" + }, { + name: "Singapore", + dialCode: "65", + code: "sg" + }, { + name: "Slovakia", + dialCode: "421", + code: "sk" + }, { + name: "Slovenia", + dialCode: "386", + code: "si" + }, { + name: "Solomon Islands", + dialCode: "677", + code: "sb" + }, { + name: "Somalia", + dialCode: "252", + code: "so" + }, { + name: "South Africa", + dialCode: "27", + code: "za" + }, { + name: "South Sudan", + dialCode: "211", + code: "ss" + }, { + name: "South Georgia and the South Sandwich Islands", + dialCode: "500", + code: "gs" + }, { + name: "Spain", + dialCode: "34", + code: "es" + }, { + name: "Sri Lanka", + dialCode: "94", + code: "lk" + }, { + name: "Sudan", + dialCode: "249", + code: "sd" + }, { + name: "Suriname", + dialCode: "597", + code: "sr" + }, { + name: "Svalbard and Jan Mayen", + dialCode: "47", + code: "sj" + }, { + name: "Swaziland", + dialCode: "268", + code: "sz" + }, { + name: "Sweden", + dialCode: "46", + code: "se" + }, { + name: "Switzerland", + dialCode: "41", + code: "ch" + }, { + name: "Syrian Arab Republic", + dialCode: "963", + code: "sy" + }, { + name: "Taiwan", + dialCode: "886", + code: "tw" + }, { + name: "Tajikistan", + dialCode: "992", + code: "tj" + }, { + name: "Tanzania, United Republic of Tanzania", + dialCode: "255", + code: "tz" + }, { + name: "Thailand", + dialCode: "66", + code: "th" + }, { + name: "Timor-Leste", + dialCode: "670", + code: "tl" + }, { + name: "Togo", + dialCode: "228", + code: "tg" + }, { + name: "Tokelau", + dialCode: "690", + code: "tk" + }, { + name: "Tonga", + dialCode: "676", + code: "to" + }, { + name: "Trinidad and Tobago", + dialCode: "1868", + code: "tt" + }, { + name: "Tunisia", + dialCode: "216", + code: "tn" + }, { + name: "Turkey", + dialCode: "90", + code: "tr" + }, { + name: "Turkmenistan", + dialCode: "993", + code: "tm" + }, { + name: "Turks and Caicos Islands", + dialCode: "1649", + code: "tc" + }, { + name: "Tuvalu", + dialCode: "688", + code: "tv" + }, { + name: "Uganda", + dialCode: "256", + code: "ug" + }, { + name: "Ukraine", + dialCode: "380", + code: "ua" + }, { + name: "United Arab Emirates", + dialCode: "971", + code: "ae" + }, { + name: "United Kingdom", + dialCode: "44", + code: "gb" + }, { + name: "United States", + dialCode: "1", + code: "us" + }, { + name: "Uruguay", + dialCode: "598", + code: "uy" + }, { + name: "Uzbekistan", + dialCode: "998", + code: "uz" + }, { + name: "Vanuatu", + dialCode: "678", + code: "vu" + }, { + name: "Venezuela, Bolivarian Republic of Venezuela", + dialCode: "58", + code: "ve" + }, { + name: "Vietnam", + dialCode: "84", + code: "vn" + }, { + name: "Virgin Islands, British", + dialCode: "1284", + code: "vg" + }, { + name: "Virgin Islands, U.S.", + dialCode: "1340", + code: "vi" + }, { + name: "Wallis and Futuna", + dialCode: "681", + code: "wf" + }, { + name: "Yemen", + dialCode: "967", + code: "ye" + }, { + name: "Zambia", + dialCode: "260", + code: "zm" + }, { + name: "Zimbabwe", + dialCode: "263", + code: "zw" + }], Oee = Iee.reduce(((e, t) => (e[t.dialCode] = t, e)), {}), Nee = Iee.reduce(((e, t) => (e[t.dialCode] = t.code, e)), {}), Ree = Ei((function(e) { + const { + number: t, + onBack: n, + onPrimaryButtonClick: a, + onSmallTextClick: r, + onTextButtonClick: i, + passCode: o, + t: s + } = e, l = `prejoin-dialog-flag iti-flag ${function(e){const t=e.replace(/[+.\s]/g,"");for(let e=4;e>0;e--){const n=t.slice(0,e);if(Nee[n])return Nee[n]}return""}(t)}`; + return C().createElement("div", { + className: "prejoin-dialog-dialin" + }, C().createElement("div", { + className: "prejoin-dialog-dialin-header" + }, C().createElement(lo, { + className: "prejoin-dialog-icon prejoin-dialog-dialin-icon", + onClick: n, + role: "button", + size: 24, + src: Ao + }), C().createElement("div", { + className: "prejoin-dialog-title" + }, s("prejoin.dialInMeeting"))), C().createElement(jee, { + number: 1 + }, s("prejoin.dialInPin")), C().createElement("div", { + className: "prejoin-dialog-dialin-num-container" + }, C().createElement("div", { + className: "prejoin-dialog-dialin-num" + }, C().createElement("div", { + className: l + }), C().createElement("span", null, t)), C().createElement("div", { + className: "prejoin-dialog-dialin-num" + }, o)), C().createElement("div", null, C().createElement("span", { + className: "prejoin-dialog-dialin-link", + onClick: r + }, s("prejoin.viewAllNumbers"))), C().createElement("div", { + className: "prejoin-dialog-delimiter" + }), C().createElement(jee, { + className: "prejoin-dialog-dialin-spaced-label", + number: 2 + }, s("prejoin.connectedWithAudioQ")), C().createElement("div", { + className: "prejoin-dialog-dialin-btns" + }, C().createElement(P8, { + className: "prejoin-dialog-btn", + onClick: a, + type: "primary" + }, s("prejoin.joinMeeting")), C().createElement(P8, { + className: "prejoin-dialog-btn", + onClick: i, + type: "text" + }, s("dialog.Cancel")))) + })); class zee extends x.PureComponent { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this) + } + render() { + const { + country: { + code: e, + dialCode: t, + name: n } - _isToggled() { - return this.props._isBackgroundEnabled + } = this.props; + return C().createElement("div", { + className: "cpick-dropdown-entry", + onClick: this._onClick + }, C().createElement("div", { + className: `prejoin-dialog-flag iti-flag ${e}` + }), C().createElement("div", { + className: "cpick-dropdown-entry-text" + }, `${n} (+${t})`)) + } + _onClick() { + this.props.onEntryClick(this.props.country) + } + } + const Lee = zee, Fee = function(e) { + let { + onEntryClick: t + } = e; + return C().createElement("div", { + className: "cpick-dropdown" + }, Iee.map((e => C().createElement(Lee, { + country: e, + key: `${e.code}`, + onEntryClick: t + })))) + }, qee = function(e) { + let { + country: { + code: t, + dialCode: n + }, + onClick: a + } = e; + const r = (0, x.useCallback)((e => { + !a || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), a()) + }), [a]); + return C().createElement("div", { + className: "cpick-selector", + onClick: a, + onKeyPress: r + }, C().createElement("div", { + className: `prejoin-dialog-flag iti-flag ${t}` + }), C().createElement("span", null, `+${n}`), C().createElement(lo, { + className: "cpick-icon", + size: 16, + src: yo + })) + }, Bee = /^(00)|\+/; class Uee extends x.PureComponent { + constructor(e) { + super(e), this.state = { + isOpen: !1, + value: "" + }, this.inputRef = C().createRef(), this._onChange = this._onChange.bind(this), this._onDropdownClose = this._onDropdownClose.bind(this), this._onCountrySelectorClick = this._onCountrySelectorClick.bind(this), this._onEntryClick = this._onEntryClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) + } + componentDidMount() { + this.inputRef.current.focus() + } + render() { + const { + dialOutCountry: e, + dialOutNumber: t + } = this.props, { + isOpen: n + } = this.state, { + inputRef: a, + _onChange: r, + _onCountrySelectorClick: i, + _onDropdownClose: o, + _onKeyPress: s, + _onEntryClick: l + } = this; + return C().createElement("div", { + className: "cpick-container" + }, C().createElement(xA, { + content: C().createElement(Fee, { + onEntryClick: l + }), + isOpen: n, + onClose: o + }, C().createElement("div", { + className: "cpick" + }, C().createElement(qee, { + country: e, + onClick: i + }), C().createElement("input", { + className: "cpick-input", + onChange: r, + onKeyPress: s, + ref: a, + value: t + })))) + } + _onChange(e) { + let { + target: { + value: t } - })), - X8 = Li((function({ - setLoading: e, - setOptions: t, - setStoredImages: n, - showLabel: a, - storedImages: r, - t: i - }) { - const o = (0, E.useRef)(null), - s = (0, E.useCallback)((e => { - !o.current || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), o.current.click()) - }), [o.current]), - l = (0, E.useCallback)((async a => { - const i = new FileReader, - o = a.target.files; - i.readAsDataURL(o[0]), i.onload = async () => { - const e = await - function(e, t = 1920, n = 1080) { - return new Promise((a => { - const r = document.createElement("img"); - r.onload = function() { - const e = document.createElement("canvas"), - i = e.getContext("2d"); - e.width = t, e.height = n, i.drawImage(r, 0, 0, t, n), a(e.toDataURL("image/jpeg", .5)) - }, r.src = e - })) - }(i.result), a = Wz().v4(); - n([...r, { - id: a, - src: e - }]), t({ - backgroundType: xo, - enabled: !0, - url: e, - selectedThumbnail: a - }) - }, yo.info("New virtual background image uploaded!"), i.onerror = () => { - e(!1), yo.error("Failed to upload virtual image!") - } - }), [r]); - return x().createElement(x().Fragment, null, a && x().createElement("label", { - "aria-label": i("virtualBackground.uploadImage"), - className: "file-upload-label", - htmlFor: "file-upload", - onKeyPress: s, - tabIndex: 0 - }, x().createElement(qs, { - className: "add-background", - size: 20, - src: hl - }), i("virtualBackground.addBackground")), x().createElement("input", { - accept: "image/*", - className: "file-upload-btn", - id: "file-upload", - onChange: l, - ref: o, - type: "file" - })) - })); - class e7 extends E.PureComponent { - constructor(e) { - super(e), this.state = { - loading: !1, - localTrackLoaded: !1, - jitsiTrack: null + } = e; + if (Bee.test(t)) { + const e = t.replace(Bee, ""); + if (e.length >= 4) { + const t = Oee[(n = e).slice(0, 4)] || Oee[n.slice(0, 3)] || Oee[n.slice(0, 2)] || Oee[n.slice(0, 1)] || null; + if (t) { + const n = e.replace(t.dialCode, ""); + return this.props.setDialOutCountry(t), void this.props.setDialOutNumber(n) + } } } - _stopStream(e) { - e && e.dispose() + var n; + this.props.setDialOutNumber(t) + } + _onCountrySelectorClick() { + this.setState({ + isOpen: !this.setState.isOpen + }) + } + _onDropdownClose() { + this.setState({ + isOpen: !1 + }) + } + _onEntryClick(e) { + this.props.setDialOutCountry(e), this._onDropdownClose() + } + _onKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.onSubmit()) + } + } + const Hee = Ne((function(e) { + return { + dialOutCountry: mH(e), + dialOutNumber: fH(e) + } + }), { + setDialOutCountry: function(e) { + return { + type: aH, + value: e } - async _setTracks() { + }, + setDialOutNumber: function(e) { + return { + type: rH, + value: e + } + } + })(Uee), Vee = Ei((function(e) { + const { + onClose: t, + onTextButtonClick: n, + onSubmit: a, + t: r + } = e; + return C().createElement("div", { + className: "prejoin-dialog-callout" + }, C().createElement("div", { + className: "prejoin-dialog-callout-header" + }, C().createElement("div", { + className: "prejoin-dialog-title" + }, r("prejoin.startWithPhone")), C().createElement(lo, { + className: "prejoin-dialog-icon", + onClick: t, + role: "button", + size: 24, + src: ds + })), C().createElement(jee, null, r("prejoin.callMeAtNumber")), C().createElement("div", { + className: "prejoin-dialog-callout-picker" + }, C().createElement(Hee, { + onSubmit: a + })), C().createElement(P8, { + className: "prejoin-dialog-btn", + onClick: a, + type: "primary" + }, r("prejoin.callMe")), C().createElement("div", { + className: "prejoin-dialog-delimiter-container" + }, C().createElement("div", { + className: "prejoin-dialog-delimiter" + }), C().createElement("div", { + className: "prejoin-dialog-delimiter-txt-container" + }, C().createElement("span", { + className: "prejoin-dialog-delimiter-txt" + }, r("prejoin.or")))), C().createElement("div", { + className: "prejoin-dialog-dialin-container" + }, C().createElement(P8, { + className: "prejoin-dialog-btn", + onClick: n, + type: "text" + }, r("prejoin.iWantToDialIn")))) + })); class Wee extends x.PureComponent { + constructor(e) { + super(e), this.state = { + isCalling: !1, + showDialOut: !0, + showDialIn: !1 + }, this._dialOut = this._dialOut.bind(this), this._showDialInDialog = this._showDialInDialog.bind(this), this._showDialOutDialog = this._showDialOutDialog.bind(this) + } + _dialOut() { + const { + dialOut: e, + joinConferenceWithoutAudio: t + } = this.props; + this.setState({ + isCalling: !0, + showDialOut: !1, + showDialIn: !1 + }), e(t, this._showDialOutDialog) + } + _showDialInDialog() { + this.setState({ + isCalling: !1, + showDialOut: !1, + showDialIn: !0 + }) + } + _showDialOutDialog() { + this.setState({ + isCalling: !1, + showDialOut: !0, + showDialIn: !1 + }) + } + componentDidMount() { + this.props.fetchConferenceDetails() + } + render() { + const { + dialOutStatus: e, + dialInNumber: t, + dialOutNumber: n, + joinConferenceWithoutAudio: a, + passCode: r, + onClose: i, + openDialInPage: o + } = this.props, { + _dialOut: s, + _showDialInDialog: l, + _showDialOutDialog: c + } = this, { + isCalling: u, + showDialOut: d, + showDialIn: p + } = this.state, h = u ? "prejoin-dialog prejoin-dialog--small" : "prejoin-dialog"; + return C().createElement("div", { + className: "prejoin-dialog-container" + }, C().createElement("div", { + className: h + }, d && C().createElement(Vee, { + onClose: i, + onSubmit: s, + onTextButtonClick: l + }), p && C().createElement(Ree, { + number: t, + onBack: c, + onPrimaryButtonClick: a, + onSmallTextClick: o, + onTextButtonClick: i, + passCode: r + }), u && C().createElement(Mee, { + number: n, + onClose: i, + status: e + }))) + } + } + const Yee = { + dialOut: function(e, t) { + return async function(n, a) { + const r = a(), + i = rU(), + o = Gn(r), + s = function(e) { + return `${kF(e)}@${e["features/base/config"].hosts.muc}` + }(r), + l = bH(r), + c = { + conferenceUrl: s, + countryCode: mH(r).code.toUpperCase(), + name: l, + phoneNumber: l + }; try { - this.setState({ - loading: !0 - }); - const [e] = await Vo({ - cameraDeviceId: this.props._currentCameraDeviceId, - devices: ["video"] - }); - if (this.setState({ - localTrackLoaded: !0 - }), this._componentWasUnmounted) return void this._stopStream(e); - this.setState({ - jitsiTrack: e, - loading: !1 - }), this.props.loadedPreview(!0) + await async function(e, t, n) { + const a = await fetch(e, { + method: "POST", + headers: { + "Content-Type": "application/json", + "request-id": n + }, + body: JSON.stringify(t) + }), + r = await a.json(); + return a.ok ? r : Promise.reject(r) + }(o, c, i), n(TH(i, e, t)) } catch (e) { - return this.props.dispatch(oP()), this.props.dispatch(Gf({ - titleKey: "virtualBackground.backgroundEffectError", - description: "Failed to access camera device." - })), void yo.error("Failed to access camera device. Error on apply background effect.") + const a = { + titleKey: "prejoin.errorDialOut", + titleArguments: void 0 + }; + e.status && ("validation.failed" === e.messageKey ? a.titleKey = "prejoin.errorValidation" : (a.titleKey = "prejoin.errorStatusCode", a.titleArguments = { + status: e.status + })), n(eg(a, Yf.LONG)), _H.error("Error dialing out", e), t() } - this.props.options.backgroundType === Co && this.state.localTrackLoaded && this._applyBackgroundEffect() - } - async _applyBackgroundEffect() { - this.setState({ - loading: !0 - }), this.props.loadedPreview(!1), await this.props.dispatch(vo(this.props.options, this.state.jitsiTrack)), this.props.loadedPreview(!0), this.setState({ - loading: !1 - }) - } - _loadVideoPreview() { - return x().createElement("div", { - className: "video-preview-loader" - }, x().createElement(Py, { - invertColor: !0, - isCompleting: !1, - size: "large" - })) - } - _renderPreviewEntry(e) { - const { - t - } = this.props, n = "video-background-preview-entry"; - if (this.state.loading) return this._loadVideoPreview(); - if (!e) return x().createElement("div", { - className: n, - "video-preview-container": !0 - }, x().createElement("div", { - className: "video-preview-error" - }, t("deviceSelection.previewUnavailable"))); - const a = { - className: n - }; - return x().createElement("div", a, x().createElement(tJ, { - className: "video-preview-video", - playsinline: !0, - videoTrack: { - jitsiTrack: e - } - })) - } - componentDidMount() { - this._setTracks() - } - componentWillUnmount() { - this._componentWasUnmounted = !0, this._stopStream(this.state.jitsiTrack) - } - async componentDidUpdate(e) { - var t; - Re(this.props._currentCameraDeviceId, e._currentCameraDeviceId) || this._setTracks(), !Re(this.props.options, e.options) && this.state.localTrackLoaded && (e.options.backgroundType === Co && e.options.url.dispose(), this._applyBackgroundEffect()), (null === (t = this.props.options.url) || void 0 === t ? void 0 : t.videoType) === ao && So(this.props.dispatch, this.props.options.url, this.state.jitsiTrack) } - render() { - const { - jitsiTrack: e - } = this.state; - return e ? x().createElement("div", { - className: "video-preview" - }, this._renderPreviewEntry(e)) : x().createElement("div", { - className: "video-preview-loader" - }, this._loadVideoPreview()) + }, + fetchConferenceDetails: GY, + joinConferenceWithoutAudio: MH, + openDialInPage: function() { + return function(e, t) { + vn(UU(t()), !0) } } - const t7 = Li(ze((function(e) { - return { - _currentCameraDeviceId: da(e) - } - }))(e7)); + }, Gee = Ne((function(e) { + return { + dialInNumber: (t = e, WU(Fe(t)["features/invite"].numbers)), + dialOutNumber: bH(e), + dialOutStatus: gH(e), + passCode: GU(e) + }; + var t + }), Yee)(Wee); - function n7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Kee() { + return Kee = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, Kee.apply(this, arguments) + } + class $ee extends x.Component { + constructor(e) { + super(e), this.state = { + showError: !1, + showJoinByPhoneButtons: !1 + }, this._closeDialog = this._closeDialog.bind(this), this._showDialog = this._showDialog.bind(this), this._onJoinButtonClick = this._onJoinButtonClick.bind(this), this._onDropdownClose = this._onDropdownClose.bind(this), this._onOptionsClick = this._onOptionsClick.bind(this), this._setName = this._setName.bind(this), this._onJoinConferenceWithoutAudioKeyPress = this._onJoinConferenceWithoutAudioKeyPress.bind(this), this._showDialogKeyPress = this._showDialogKeyPress.bind(this), this._onJoinKeyPress = this._onJoinKeyPress.bind(this), this._getExtraJoinButtons = this._getExtraJoinButtons.bind(this) + } + _onJoinButtonClick() { + this.props.showErrorOnJoin ? this.setState({ + showError: !0 + }) : (this.setState({ + showError: !1 + }), this.props.joinConference()) + } + _onJoinKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onJoinButtonClick()) + } + _onDropdownClose() { + this.setState({ + showJoinByPhoneButtons: !1 + }) } - const a7 = e => { - e.target.style.display = "none" - }, - r7 = Li(ze((function(e) { - var t; - const { - localFlipX: n - } = e["features/base/settings"], a = e["features/dynamic-branding"].virtualBackgrounds, r = Boolean(a.length); - return { - _localFlipX: Boolean(n), - _images: r && a || Po, - _virtualBackground: e["features/virtual-background"], - _selectedThumbnail: e["features/virtual-background"].selectedThumbnail, - _showUploadButton: !(r || e["features/base/config"].disableAddingBackgroundImages), - _jitsiTrack: null === (t = Ko(e["features/base/tracks"])) || void 0 === t ? void 0 : t.jitsiTrack - } - }))((function({ - _images: e, - _jitsiTrack: t, - _localFlipX: n, - _selectedThumbnail: a, - _showUploadButton: i, - _virtualBackground: o, - dispatch: s, - initialOptions: c, - t: u - }) { - var d; - const [p, h] = (0, E.useState)(!1), [m, f] = (0, E.useState)(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - n7(e, t, n[t]) - })) - } - return e - }({}, c)), g = l.getItem("virtualBackgrounds"), [b, y] = (0, E.useState)(g && r.parse(g) || []), [v, k] = (0, E.useState)(!1), [_] = (0, E.useState)((null == o || null === (d = o.virtualSource) || void 0 === d ? void 0 : d.videoType) === ao ? o.virtualSource : null), [w] = (0, E.useState)(o), S = (0, E.useCallback)((e => { - const t = e.currentTarget.getAttribute("data-imageid"); - y(b.filter((e => e.id !== t))) - }), [b]), C = (0, E.useCallback)((e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), S(e)) - }), [S]); - (0, E.useEffect)((() => { - try { - l.setItem("virtualBackgrounds", JSON.stringify(b)) - } catch (e) { - e && y(b.slice(1)) - } - 25 === b.length && y(b.slice(1)) - }), [b]); - const A = (0, E.useCallback)((async () => { - f({ - backgroundType: Ao, - enabled: !0, - blurValue: 25, - selectedThumbnail: "blur" - }), yo.info('"Blur" option setted for virtual background preview!') - }), []), - j = (0, E.useCallback)((e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), A()) - }), [A]), - P = (0, E.useCallback)((async () => { - f({ - backgroundType: Ao, - enabled: !0, - blurValue: 8, - selectedThumbnail: "slight-blur" - }), yo.info('"Slight-blur" option setted for virtual background preview!') - }), []), - D = (0, E.useCallback)((e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), P()) - }), [P]), - T = (0, E.useCallback)((async () => { - let e, t = !1; - try { - e = await st("desktop", "") - } catch (e) { - e.name === Ct.SCREENSHARING_USER_CANCELED ? t = !0 : yo.error(e) - } - if (!e) return t || (s(Wf({ - titleKey: "virtualBackground.desktopShareError" - })), yo.error("Could not create desktop share as a virtual background!")), void(ft.isElectron() && s(sP(r7, { - initialOptions: m - }))); - const n = { - backgroundType: Co, - enabled: !0, - selectedThumbnail: "desktop-share", - url: e - }; - ft.isElectron() ? s(sP(r7, { - initialOptions: n - })) : (f(n), yo.info('"Desktop-share" option setted for virtual background preview!')) - }), [s, m]), - O = (0, E.useCallback)((e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), T()) - }), [T]), - M = (0, E.useCallback)((async () => { - f({ - enabled: !1, - selectedThumbnail: "none" - }), yo.info('"None" option setted for virtual background preview!') - }), []), - I = (0, E.useCallback)((e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), M()) - }), [M]), - N = (0, E.useCallback)((async e => { - const t = e.currentTarget.getAttribute("data-imageid"), - n = b.find((e => e.id === t)); - n && (f({ - backgroundType: "image", - enabled: !0, - url: n.src, - selectedThumbnail: n.id - }), yo.info("Uploaded image setted for virtual background preview!")) - }), [b]), - z = (0, E.useCallback)((async t => { - const n = t.currentTarget.getAttribute("data-imageid"), - a = e.find((e => e.id === n)); - if (a) { - try { - const e = await (async e => { - const t = await fetch(e), - n = await t.blob(), - a = await (e => new Promise((t => { - const n = new FileReader; - n.onloadend = () => t(n.result.toString()), n.readAsDataURL(e) - })))(n); - return a - })(a.src); - f({ - backgroundType: "image", - enabled: !0, - url: e, - selectedThumbnail: a.id - }), yo.info("Image set for virtual background preview!") - } catch (e) { - yo.error("Could not fetch virtual background image:", e) - } - k(!1) - } - }), []), - R = (0, E.useCallback)((e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), z(e)) - }), [z]), - L = (0, E.useCallback)((e => { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), N(e)) - }), [N]), - F = (0, E.useCallback)((async () => { - _ && await _.dispose(), k(!0), await s(vo(m, t)), await k(!1), n && m.backgroundType === Co ? s(bn({ - localFlipX: !n - })) : s(bn({ - localFlipX: !0 - })), s(oP()), yo.info(`Virtual background type: '${void 0===m.backgroundType?"none":m.backgroundType}' applied!`) - }), [s, m, n]), - q = (0, E.useCallback)((async () => { - await f({ - backgroundType: w.backgroundType, - enabled: w.backgroundEffectEnabled, - url: w.virtualSource, - selectedThumbnail: w.selectedThumbnail, - blurValue: w.blurValue - }), s(oP()) - })), - B = (0, E.useCallback)((async e => { - await h(e) - })); - return x().createElement(IO, { - hideCancelButton: !1, - okKey: "virtualBackground.apply", - onCancel: q, - onSubmit: F, - submitDisabled: !m || v || !p, - titleKey: "virtualBackground.title" - }, x().createElement(t7, { - loadedPreview: B, - options: m - }), v ? x().createElement("div", { - className: "virtual-background-loading" - }, x().createElement(Py, { - isCompleting: !1, - size: "medium" - })) : x().createElement("div", null, i && x().createElement(X8, { - setLoading: k, - setOptions: f, - setStoredImages: y, - showLabel: p, - storedImages: b - }), x().createElement("div", { - className: "virtual-background-dialog", - role: "radiogroup", - tabIndex: "-1" - }, x().createElement(Fw, { - content: u("virtualBackground.removeBackground"), - position: "top" - }, x().createElement("div", { - "aria-checked": "none" === a, - "aria-label": u("virtualBackground.removeBackground"), - className: "none" === a ? "background-option none-selected" : "background-option virtual-background-none", - onClick: M, - onKeyPress: I, - role: "radio", - tabIndex: 0 - }, u("virtualBackground.none"))), x().createElement(Fw, { - content: u("virtualBackground.slightBlur"), - position: "top" - }, x().createElement("div", { - "aria-checked": "slight-blur" === a, - "aria-label": u("virtualBackground.slightBlur"), - className: "slight-blur" === a ? "background-option slight-blur-selected" : "background-option slight-blur", - onClick: P, - onKeyPress: D, - role: "radio", - tabIndex: 0 - }, u("virtualBackground.slightBlur"))), x().createElement(Fw, { - content: u("virtualBackground.blur"), - position: "top" - }, x().createElement("div", { - "aria-checked": "blur" === a, - "aria-label": u("virtualBackground.blur"), - className: "blur" === a ? "background-option blur-selected" : "background-option blur", - onClick: A, - onKeyPress: j, - role: "radio", - tabIndex: 0 - }, u("virtualBackground.blur"))), x().createElement(Fw, { - content: u("virtualBackground.desktopShare"), - position: "top" - }, x().createElement("div", { - "aria-checked": "desktop-share" === a, - "aria-label": u("virtualBackground.desktopShare"), - className: "desktop-share" === a ? "background-option desktop-share-selected" : "background-option desktop-share", - onClick: T, - onKeyPress: O, - role: "radio", - tabIndex: 0 - }, x().createElement(qs, { - className: "share-desktop-icon", - size: 30, - src: hp - }))), e.map((e => x().createElement(Fw, { - content: e.tooltip && u(`virtualBackground.${e.tooltip}`), - key: e.id, - position: "top" - }, x().createElement("img", { - alt: e.tooltip && u(`virtualBackground.${e.tooltip}`), - "aria-checked": m.selectedThumbnail === e.id || a === e.id, - className: m.selectedThumbnail === e.id || a === e.id ? "background-option thumbnail-selected" : "background-option thumbnail", - "data-imageid": e.id, - onClick: z, - onError: a7, - onKeyPress: R, - role: "radio", - src: e.src, - tabIndex: 0 - })))), b.map(((e, t) => x().createElement("div", { - className: "thumbnail-container", - key: e.id - }, x().createElement("img", { - alt: u("virtualBackground.uploadedImage", { - index: t + 1 - }), - "aria-checked": a === e.id, - className: a === e.id ? "background-option thumbnail-selected" : "background-option thumbnail", - "data-imageid": e.id, - onClick: N, - onError: a7, - onKeyPress: L, - role: "radio", - src: e.src, - tabIndex: 0 - }), x().createElement(qs, { - ariaLabel: u("virtualBackground.deleteImage"), - className: "delete-image-icon", - "data-imageid": e.id, - onClick: S, - onKeyPress: C, - role: "button", - size: 15, - src: Zl, - tabIndex: 0 - }))))))) - }))), - i7 = r7; - - function o7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _onOptionsClick(e) { + e.stopPropagation(), this.setState({ + showJoinByPhoneButtons: !this.state.showJoinByPhoneButtons + }) + } + _setName(e) { + this.props.updateSettings({ + displayName: e + }) } - const s7 = Li(ze((function(e) { + _closeDialog() { + this.props.setJoinByPhoneDialogVisiblity(!1) + } + _showDialog() { + this.props.setJoinByPhoneDialogVisiblity(!0), this._onDropdownClose() + } + _showDialogKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._showDialog()) + } + _onJoinConferenceWithoutAudioKeyPress(e) { + !this.props.joinConferenceWithoutAudio || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.joinConferenceWithoutAudio()) + } + _getExtraJoinButtons() { const { - downloadAppsUrl: t - } = e["features/base/config"].deploymentUrls || {}; + joinConferenceWithoutAudio: e, + t + } = this.props; return { - _downloadAppsUrl: t, - visible: "string" == typeof t && !Rj(e) - } - }))(class extends Vw { - constructor(...e) { - super(...e), o7(this, "accessibilityLabel", "toolbar.accessibilityLabel.download"), o7(this, "icon", _c), o7(this, "label", "toolbar.download"), o7(this, "tooltip", "toolbar.download") - } - _handleClick() { - const { - _downloadAppsUrl: e, - handleClick: t - } = this.props; - t ? t() : (Ma(hn("download.pressed")), Sn(e)) - } - })); - - function l7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const c7 = Li(ze()(class extends Gw { - constructor(e) { - super(e), l7(this, "accessibilityLabel", "toolbar.accessibilityLabel.hangup"), l7(this, "label", "toolbar.hangup"), l7(this, "tooltip", "toolbar.hangup"), this._hangup = k().once((() => { - Ma(hn("hangup")), "ReactNative" === navigator.product ? this.props.dispatch(KN(void 0)) : this.props.dispatch(NI(!0)) - })) - } - _doHangup() { - this._hangup() + noAudio: { + key: "no-audio", + dataTestId: "prejoin.joinWithoutAudio", + icon: Dd, + label: t("prejoin.joinWithoutAudio"), + onButtonClick: e, + onKeyPressed: this._onJoinConferenceWithoutAudioKeyPress + }, + byPhone: { + key: "by-phone", + dataTestId: "prejoin.joinByPhone", + icon: Xc, + label: t("prejoin.joinAudioByPhone"), + onButtonClick: this._showDialog, + onKeyPressed: this._showDialogKeyPress + } } - })); - - function u7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e } - const d7 = Li(ze((function(e) { + render() { const { - userDocumentationURL: t - } = e["features/base/config"].deploymentUrls || {}, n = Df(e, "help.enabled", !0); + deviceStatusVisible: e, + hasJoinByPhoneButton: t, + joinConference: n, + joinConferenceWithoutAudio: a, + name: r, + prejoinConfig: i, + readOnlyName: o, + showCameraPreview: s, + showDialog: l, + t: c, + videoTrack: u + } = this.props, { + _closeDialog: d, + _onDropdownClose: p, + _onJoinButtonClick: h, + _onJoinKeyPress: m, + _onOptionsClick: f, + _setName: g + } = this, b = this._getExtraJoinButtons(); + let y = Object.values(b).filter((e => !((null == i ? void 0 : i.hideExtraJoinButtons) || []).includes(e.key))); + t || (y = y.filter((e => "by-phone" !== e.key))); + const v = Boolean(y.length), + { + showJoinByPhoneButtons: k, + showError: _ + } = this.state; + return C().createElement(G8, { + showDeviceStatus: e, + title: c("prejoin.joinMeeting"), + videoMuted: !s, + videoTrack: u + }, C().createElement("div", { + className: "prejoin-input-area", + "data-testid": "prejoin.screen" + }, C().createElement(j8, { + autoComplete: "name", + autoFocus: !0, + className: _ ? "error" : "", + hasError: _, + onChange: g, + onSubmit: n, + placeHolder: c("dialog.enterDisplayName"), + readOnly: o, + value: r + }), _ && C().createElement("div", { + className: "prejoin-error", + "data-testid": "prejoin.errorMessage" + }, c("prejoin.errorMissingName")), C().createElement("div", { + className: "prejoin-preview-dropdown-container" + }, C().createElement(xA, { + content: v && C().createElement("div", { + className: "prejoin-preview-dropdown-btns" + }, y.map((e => { + let { + key: t, + ...n + } = e; + return C().createElement(Pee, Kee({ + key: t + }, n)) + }))), + isOpen: k, + onClose: p + }, C().createElement(P8, { + OptionsIcon: k ? Eo : yo, + ariaDropDownLabel: c("prejoin.joinWithoutAudio"), + ariaLabel: c("prejoin.joinMeeting"), + ariaPressed: k, + hasOptions: v, + onClick: h, + onKeyPress: m, + onOptionsClick: f, + role: "button", + tabIndex: 0, + testId: "prejoin.joinMeeting", + type: "primary" + }, c("prejoin.joinMeeting"))))), l && C().createElement(Gee, { + joinConferenceWithoutAudio: a, + onClose: d + })) + } + } + const Jee = Ne((function(e) { + const t = da(e), + n = function(e) { + return e["features/prejoin"].isDisplayNameRequired || e["features/base/config"].requireDisplayName + }(e) && !t; + return { + name: t, + deviceStatusVisible: dH(e), + roomName: kF(e), + showDialog: yH(e), + showErrorOnJoin: n, + hasJoinByPhoneButton: uH(e), + readOnlyName: Hn(e), + showCameraPreview: !jf(e), + videoTrack: rh(e), + prejoinConfig: e["features/base/config"].prejoinConfig + } + }), { + joinConferenceWithoutAudio: MH, + joinConference: PH, + setJoinByPhoneDialogVisiblity: function(e) { return { - _userDocumentationURL: t, - visible: "string" == typeof t && n && !Rj(e) - } - }))(class extends Vw { - constructor(...e) { - super(...e), u7(this, "accessibilityLabel", "toolbar.accessibilityLabel.help"), u7(this, "icon", Jc), u7(this, "label", "toolbar.help"), u7(this, "tooltip", "toolbar.help") - } - _handleClick() { - const { - _userDocumentationURL: e, - handleClick: t - } = this.props; - t ? t() : (Ma(hn("help.pressed")), Sn(e)) + type: oH, + value: e } - })); - - function p7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + }, + updateSettings: hn + })(Ei($ee)); class Zee { + constructor(e) { + if (e.getType() !== Fi) throw new Error("AudioMixerEffect only supports audio JitsiLocalTracks; effect will not work!"); + this._mixAudio = e + } + isEnabled(e) { + return e.isAudioTrack() && this._mixAudio.isAudioTrack() } - const h7 = Li(ze((function(e, t) { - const n = Rh(e), + startEffect(e) { + return this._originalStream = e, this._originalTrack = e.getTracks()[0], this._audioMixer = c.default.createAudioMixer(), this._audioMixer.addMediaStream(this._mixAudio.getOriginalStream()), this._audioMixer.addMediaStream(this._originalStream), this._mixedMediaStream = this._audioMixer.start(), this._mixedMediaTrack = this._mixedMediaStream.getTracks()[0], this._mixedMediaStream + } + stopEffect() { + this._audioMixer.reset() + } + setMuted(e) { + this._originalTrack.enabled = !e + } + isMuted() { + return !this._originalTrack.enabled + } + } + const Qee = URL.createObjectURL(new Blob(["\n var timer;\n\n onmessage = function(request) {\n switch (request.data.id) {\n case 1: {\n timer = setInterval(() => {\n postMessage({ id: 3 });\n }, request.data.timeMs);\n break;\n }\n case 2: {\n if (timer) {\n clearInterval(timer);\n }\n break;\n }\n }\n };\n"], { + type: "application/javascript" + })); class Xee { + constructor(e) { + var t; + const n = document.createElement("div"), + a = e.getVideoTracks()[0], { - disableRemoteMute: a - } = e["features/base/config"], + height: r, + width: i, + frameRate: o + } = null !== (t = a.getSettings()) && void 0 !== t ? t : a.getConstraints(); + this._canvas = document.createElement("canvas"), this._ctx = this._canvas.getContext("2d"), this._desktopElement = document.createElement("video"), this._videoElement = document.createElement("video"), n.appendChild(this._videoElement), n.appendChild(this._desktopElement), null !== document.body && document.body.appendChild(n), this._frameRate = parseInt(o, 10), this._videoElement.width = parseInt(i, 10), this._videoElement.height = parseInt(r, 10), this._videoElement.autoplay = !0, this._videoElement.srcObject = e, this._videoElement.play(), n.style.display = "none", this._onVideoFrameTimer = this._onVideoFrameTimer.bind(this) + } + _onVideoFrameTimer(e) { + 3 === e.data.id && this._renderVideo() + } + _renderVideo() { + var e; + const [t] = this._desktopStream.getVideoTracks(), { + height: n, + width: a + } = null !== (e = t.getSettings()) && void 0 !== e ? e : t.getConstraints(); + this._canvas.width = parseInt(a, 10), this._canvas.height = parseInt(n, 10), this._ctx.drawImage(this._desktopElement, 0, 0, this._canvas.width, this._canvas.height), this._ctx.drawImage(this._videoElement, this._canvas.width - this._videoElement.width, this._canvas.height - this._videoElement.height, this._videoElement.width, this._videoElement.height), this._ctx.beginPath(), this._ctx.lineWidth = 2, this._ctx.strokeStyle = "#A9A9A9", this._ctx.rect(this._canvas.width - this._videoElement.width, this._canvas.height - this._videoElement.height, this._videoElement.width, this._videoElement.height), this._ctx.stroke() + } + isEnabled(e) { + return e.isVideoTrack() && "desktop" === e.videoType + } + startEffect(e) { + var t; + const n = e.getVideoTracks()[0], { - visible: r = Jh(e) && !a - } = t; - return { - localParticipantId: n.id, - visible: r - } - }))(class extends Vw { - constructor(...e) { - super(...e), p7(this, "accessibilityLabel", "toolbar.accessibilityLabel.muteEveryone"), p7(this, "icon", ad), p7(this, "label", "toolbar.muteEveryone"), p7(this, "tooltip", "toolbar.muteEveryone") - } - _handleClick() { - const { - dispatch: e, - localParticipantId: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("mute.everyone.pressed")), e(sP(z1, { - exclude: [t] - }))) - } + height: a, + width: r + } = null !== (t = n.getSettings()) && void 0 !== t ? t : n.getConstraints(); + return this._desktopStream = e, this._desktopElement.width = parseInt(r, 10), this._desktopElement.height = parseInt(a, 10), this._desktopElement.autoplay = !0, this._desktopElement.srcObject = e, this._desktopElement.play(), this._canvas.width = parseInt(r, 10), this._canvas.height = parseInt(a, 10), this._videoFrameTimerWorker = new Worker(Qee, { + name: "Presenter effect worker" + }), this._videoFrameTimerWorker.onmessage = this._onVideoFrameTimer, this._videoFrameTimerWorker.postMessage({ + id: 1, + timeMs: 1e3 / this._frameRate + }), this._canvas.captureStream(this._frameRate) + } + stopEffect() { + this._videoFrameTimerWorker.postMessage({ + id: 2 + }), this._videoFrameTimerWorker.terminate() + } + } + var ete, tte = n(554), nte = (ete = "undefined" != typeof document && document.currentScript ? document.currentScript.src : void 0, function(e) { + var t; + (e = void 0 !== (e = e || {}) ? e : {}).ready = new Promise((function(e, n) { + t = e + })); + var n, a = {}; + for (n in e) e.hasOwnProperty(n) && (a[n] = e[n]); + var r, i, o = []; + r = "object" == typeof window, i = "function" == typeof importScripts, "object" == typeof tte && "object" == typeof tte.versions && tte.versions.node; + var s, l = ""; + (r || i) && (i ? l = self.location.href : document.currentScript && (l = document.currentScript.src), ete && (l = ete), l = 0 !== l.indexOf("blob:") ? l.substr(0, l.lastIndexOf("/") + 1) : "", i && (s = function(e) { + var t = new XMLHttpRequest; + return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response) })); + var c, u, d = e.print || console.log.bind(console), + p = e.printErr || console.warn.bind(console); + for (n in a) a.hasOwnProperty(n) && (e[n] = a[n]); + a = null, e.arguments && (o = e.arguments), e.thisProgram && e.thisProgram, e.quit && e.quit, e.wasmBinary && (c = e.wasmBinary), e.noExitRuntime && e.noExitRuntime, "object" != typeof WebAssembly && p("no native wasm support detected"); + var h, m, f, g = new WebAssembly.Table({ + initial: 1, + maximum: 1, + element: "anyfunc" + }), + b = !1; - function m7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function y(t) { + h = t, e.HEAP8 = new Int8Array(t), e.HEAP16 = new Int16Array(t), e.HEAP32 = f = new Int32Array(t), e.HEAPU8 = m = new Uint8Array(t), e.HEAPU16 = new Uint16Array(t), e.HEAPU32 = new Uint32Array(t), e.HEAPF32 = new Float32Array(t), e.HEAPF64 = new Float64Array(t) } - const f7 = Li(ze((function(e, t) { - const n = Rh(e), - { - disableRemoteMute: a - } = e["features/base/config"], - { - visible: r = Jh(e) && !a - } = t; - return { - localParticipantId: n.id, - visible: r - } - }))(class extends Vw { - constructor(...e) { - super(...e), m7(this, "accessibilityLabel", "toolbar.accessibilityLabel.muteEveryonesVideo"), m7(this, "icon", ud), m7(this, "label", "toolbar.muteEveryonesVideo"), m7(this, "tooltip", "toolbar.muteEveryonesVideo") + var v = e.INITIAL_MEMORY || 16777216; + + function k(t) { + for (; t.length > 0;) { + var n = t.shift(); + if ("function" != typeof n) { + var a = n.func; + "number" == typeof a ? void 0 === n.arg ? e.dynCall_v(a) : e.dynCall_vi(a, n.arg) : a(void 0 === n.arg ? null : n.arg) + } else n(e) } - _handleClick() { - const { - dispatch: e, - localParticipantId: t, - handleClick: n - } = this.props; - n ? n() : (Ma(hn("mute.everyone.pressed")), e(sP(F1, { - exclude: [t] - }))) + }(u = e.wasmMemory ? e.wasmMemory : new WebAssembly.Memory({ + initial: v / 65536, + maximum: 32768 + })) && (h = u.buffer), v = h.byteLength, y(h), f[24364] = 5340496; + var _ = [], + w = [], + S = [], + E = [], + x = 0, + C = null, + A = null; + + function T(t) { + throw e.onAbort && e.onAbort(t), d(t += ""), p(t), b = !0, t = "abort(" + t + "). Build with -s ASSERTIONS=1 for more info.", new WebAssembly.RuntimeError(t) + } + + function D(e) { + return t = e, n = "data:application/octet-stream;base64,", String.prototype.startsWith ? t.startsWith(n) : 0 === t.indexOf(n); + var t, n + } + e.preloadedImages = {}, e.preloadedAudios = {}; + var P, j = "rnnoise.wasm"; + + function M() { + try { + if (c) return new Uint8Array(c); + if (s) return s(j); + throw "both async and sync fetching of the wasm failed" + } catch (e) { + T(e) } - })); + } - function g7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function I(e) { + try { + return u.grow(e - h.byteLength + 65535 >>> 16), y(u.buffer), 1 + } catch (e) {} } - const b7 = Li(ze((e => ({ - _fullScreen: e["features/toolbox"].fullScreen - })))(class extends Vw { - constructor(...e) { - super(...e), g7(this, "accessibilityLabel", "toolbar.accessibilityLabel.fullScreen"), g7(this, "label", "toolbar.enterFullScreen"), g7(this, "toggledLabel", "toolbar.exitFullScreen") - } - get icon() { - return this._isToggled() ? Nc : Bc - } - set icon(e) { - return e - } - get tooltip() { - return this._isToggled() ? "toolbar.exitFullScreen" : "toolbar.enterFullScreen" - } - set tooltip(e) { - return e + D(j) || (P = j, j = e.locateFile ? e.locateFile(P, l) : l + P), w.push({ + func: function() { + R() + } + }); + var O, N = { + a: function(e, t, n) { + m.copyWithin(e, t, t + n) + }, + b: function(e) { + e >>>= 0; + var t = m.length, + n = 2147483648; + if (e > n) return !1; + for (var a, r = 1; r <= 4; r *= 2) { + var i = t * (1 + .2 / r); + if (i = Math.min(i, e + 100663296), I(Math.min(n, ((a = Math.max(16777216, e, i)) % 65536 > 0 && (a += 65536 - a % 65536), a)))) return !0 + } + return !1 + }, + memory: u, + table: g + }, + R = (function() { + var t = { + a: N + }; + + function n(t, n) { + var a = t.exports; + e.asm = a, + function(t) { + if (x--, e.monitorRunDependencies && e.monitorRunDependencies(x), 0 == x && (null !== C && (clearInterval(C), C = null), A)) { + var n = A; + A = null, n() + } + }() } - _handleClick() { - const { - handleClick: e - } = this.props; - e && e() + + function a(e) { + n(e.instance) } - _isToggled() { - return this.props._fullScreen + + function o(e) { + return (c || !r && !i || "function" != typeof fetch ? new Promise((function(e, t) { + e(M()) + })) : fetch(j, { + credentials: "same-origin" + }).then((function(e) { + if (!e.ok) throw "failed to load wasm binary file at '" + j + "'"; + return e.arrayBuffer() + })).catch((function() { + return M() + }))).then((function(e) { + return WebAssembly.instantiate(e, t) + })).then(e, (function(e) { + p("failed to asynchronously prepare wasm: " + e), T(e) + })) } - })), - y7 = function({ - children: e, - isOpen: t, - onClose: n - }) { - const a = (0, E.useCallback)((e => { - e.stopPropagation() - }), []), - r = (0, E.useCallback)((e => { - e.stopPropagation(), n() - }), [n]); - return t ? x().createElement("div", { - className: "drawer-menu-container", - onClick: r - }, x().createElement("div", { - className: "drawer-menu", - onClick: a - }, e)) : null - }, - v7 = function({ - children: e, - className: t, - style: n, - getRef: a, - setSize: r - }) { - const [i] = (0, E.useState)((() => document.createElement("div"))); - return (0, E.useEffect)((() => { - if (n) - for (const e of Object.keys(n)) i.style[e] = n[e]; - t && (i.className = t) - }), [n, t]), (0, E.useEffect)((() => { - i && a && a(i) - }), [i]), (0, E.useEffect)((() => { - const e = new ResizeObserver((e => { - const { - contentRect: t - } = e[0]; - 1 === t.width && 1 === t.height || r && r(t) - })); - return document.body && (document.body.appendChild(i), e.observe(i)), () => { - e.unobserve(i), document.body && document.body.removeChild(i) - } - }), []), Oe().createPortal(e, i) - }, - k7 = function({ - children: e - }) { - return x().createElement(v7, { - className: "drawer-portal" - }, e) - }; - class _7 extends E.Component { - constructor(e) { - super(e), this._onCloseDialog = this._onCloseDialog.bind(this), this._onToggleDialogVisibility = this._onToggleDialogVisibility.bind(this), this._onEscClick = this._onEscClick.bind(this) - } - _onEscClick(e) { - "Escape" === e.key && this.props.isOpen && (e.preventDefault(), e.stopPropagation(), this._onCloseDialog()) - } - render() { - const { - children: e, - isOpen: t, - overflowDrawer: n, - reactionsQueue: a, - showMobileReactions: r - } = this.props; - return x().createElement("div", { - className: "toolbox-button-wth-dialog" - }, n ? x().createElement(x().Fragment, null, this._renderToolbarButton(), x().createElement(k7, null, x().createElement(y7, { - isOpen: t, - onClose: this._onCloseDialog - }, e, r && x().createElement(b4, { - overflowMenu: !0 - })), r && x().createElement("div", { - className: "reactions-animations-container" - }, a.map((({ - reaction: e, - uid: t - }, n) => x().createElement(p4, { - index: n, - key: t, - reaction: e, - uid: t - })))))) : x().createElement(eE, { - content: e, - isOpen: t, - onClose: this._onCloseDialog, - placement: "top-end" - }, this._renderToolbarButton())) - } - _renderToolbarButton() { - const { - ariaControls: e, - isOpen: t, - t: n - } = this.props; - return x().createElement(rX, { - accessibilityLabel: n("toolbar.accessibilityLabel.moreActions"), - "aria-controls": e, - "aria-haspopup": "true", - icon: Xc, - onClick: this._onToggleDialogVisibility, - onKeyDown: this._onEscClick, - toggled: t, - tooltip: n("toolbar.moreActions") - }) - } - _onCloseDialog() { - this.props.onVisibilityChange(!1) + if (x++, e.monitorRunDependencies && e.monitorRunDependencies(x), e.instantiateWasm) try { + return e.instantiateWasm(t, n) + } catch (e) { + return p("Module.instantiateWasm callback failed with error: " + e), !1 + }! function() { + if (c || "function" != typeof WebAssembly.instantiateStreaming || D(j) || "function" != typeof fetch) return o(a); + fetch(j, { + credentials: "same-origin" + }).then((function(e) { + return WebAssembly.instantiateStreaming(e, t).then(a, (function(e) { + return p("wasm streaming compile failed: " + e), p("falling back to ArrayBuffer instantiation"), o(a) + })) + })) + }() + }(), e.___wasm_call_ctors = function() { + return (R = e.___wasm_call_ctors = e.asm.c).apply(null, arguments) + }); + + function z(n) { + function a() { + O || (O = !0, e.calledRun = !0, b || (k(w), k(S), t(e), e.onRuntimeInitialized && e.onRuntimeInitialized(), function() { + if (e.postRun) + for ("function" == typeof e.postRun && (e.postRun = [e.postRun]); e.postRun.length;) t = e.postRun.shift(), E.unshift(t); + var t; + k(E) + }())) } - _onToggleDialogVisibility() { - Ma(hn("overflow")), this.props.onVisibilityChange(!this.props.isOpen) + n = n || o, x > 0 || (function() { + if (e.preRun) + for ("function" == typeof e.preRun && (e.preRun = [e.preRun]); e.preRun.length;) t = e.preRun.shift(), _.unshift(t); + var t; + k(_) + }(), x > 0 || (e.setStatus ? (e.setStatus("Running..."), setTimeout((function() { + setTimeout((function() { + e.setStatus("") + }), 1), a() + }), 1)) : a())) + } + if (e._rnnoise_init = function() { + return (e._rnnoise_init = e.asm.d).apply(null, arguments) + }, e._rnnoise_create = function() { + return (e._rnnoise_create = e.asm.e).apply(null, arguments) + }, e._malloc = function() { + return (e._malloc = e.asm.f).apply(null, arguments) + }, e._rnnoise_destroy = function() { + return (e._rnnoise_destroy = e.asm.g).apply(null, arguments) + }, e._free = function() { + return (e._free = e.asm.h).apply(null, arguments) + }, e._rnnoise_process_frame = function() { + return (e._rnnoise_process_frame = e.asm.i).apply(null, arguments) + }, A = function e() { + O || z(), O || (A = e) + }, e.run = z, e.preInit) + for ("function" == typeof e.preInit && (e.preInit = [e.preInit]); e.preInit.length > 0;) e.preInit.pop()(); + return z(), e.ready + }); + const ate = nte; class rte { + constructor(e) { + ! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: false, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = false + }(this, "_destroyed"); + try { + if (this._wasmInterface = e, this._wasmPcmInput = this._wasmInterface._malloc(1920), !this._wasmPcmInput) throw Error("Failed to create wasm input memory buffer!"); + if (this._wasmPcmOutput = this._wasmInterface._malloc(1920), !this._wasmPcmOutput) throw e._free(this._wasmPcmInput), Error("Failed to create wasm output memory buffer!"); + this._wasmPcmInputF32Index = this._wasmPcmInput / 4, this._context = this._wasmInterface._rnnoise_create() + } catch (e) { + throw this._releaseWasmResources(), e } } - const w7 = Li(ze((function(e) { - const { - overflowDrawer: t - } = e["features/toolbox"]; - return { - overflowDrawer: t, - reactionsQueue: bJ(e) - } - }))(_7)); - class S7 extends E.Component { - render() { + _copyPCMSampleToWasmBuffer(e) { + this._wasmInterface.HEAPF32.set(e, this._wasmPcmInputF32Index) + } + _convertTo16BitPCM(e) { + for (const [t, n] of e.entries()) e[t] = 32767 * n + } + _releaseWasmResources() { + this._wasmPcmInput && (this._wasmInterface._free(this._wasmPcmInput), this._wasmPcmInput = null), this._wasmPcmOutput && (this._wasmInterface._free(this._wasmPcmOutput), this._wasmPcmOutput = null), this._context && (this._wasmInterface._rnnoise_destroy(this._context), this._context = null) + } + getSampleLength() { + return 480 + } + getRequiredPCMFrequency() { + return 44100 + } + destroy() { + this._destroyed || (this._releaseWasmResources(), this._destroyed = !0) + } + calculateAudioFrameVAD(e) { + if (this._destroyed) throw new Error("RnnoiseProcessor instance is destroyed, please create another one!"); + const t = e.length; + if (480 !== t) throw new Error(`Rnnoise can only process PCM frames of 480 samples! Input sample was:${t}`); + return this._convertTo16BitPCM(e), this._copyPCMSampleToWasmBuffer(e), this._wasmInterface._rnnoise_process_frame(this._context, this._wasmPcmOutput, this._wasmPcmInput) + } + } + let ite; + + function ote() { + return ite || (ite = ate()), ite.then((e => new rte(e))) + } + const ste = Ve().getLogger("conference.js"), lte = new(o()); + let cte, ute, dte, pte, hte = Promise.resolve(); window.JitsiMeetScreenObtainer = { + openDesktopPicker(e, t) { + APP.store.dispatch(function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; const { - _localParticipant: e - } = this.props; - return x().createElement(ZG, { - participantId: e.id, - size: 20 + desktopSharingSources: n + } = e; + return VI(gee, { + desktopSharingSources: n, + onSourceChoose: t }) - } + }(e, t)) } - const E7 = Li(ze((function(e) { - return { - _localParticipant: Rh(e) - } - }))(S7)); + }; + const mte = { + AVATAR_URL: oF, + CUSTOM_ROLE: "custom-role", + EMAIL: sF, + ETHERPAD: "etherpad" + }; - function x7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const C7 = Li(ze((e => ({ - _localParticipant: Rh(e), - _unclickable: !interfaceConfig.SETTINGS_SECTIONS.includes("profile"), - customClass: "profile-button-avatar" - })))(class extends Vw { - constructor(...e) { - super(...e), x7(this, "accessibilityLabel", "toolbar.accessibilityLabel.profile"), x7(this, "icon", E7) - } - get label() { + function fte(e) { + return BH({ + retry: !0, + roomName: e + }).catch((e => { + throw e === mt.PASSWORD_REQUIRED ? APP.UI.notifyTokenAuthFailed() : APP.UI.notifyConnectionFailed(e), e + })) + } + + function gte(e, t) { + cte && (cte.removeCommand(e), cte.sendCommand(e, { + value: t + })) + } + + function bte(e) { + APP.store.dispatch(gf(e)) + } + + function yte(e) { + APP.store.dispatch(yf(e)) + } + const vte = rY(), kte = rY(); class _te { + constructor(e, t) { + this._resolve = e, this._reject = t, this.reconnectTimeout = null, cte.on(ht.CONFERENCE_JOINED, this._handleConferenceJoined.bind(this)), cte.on(ht.CONFERENCE_FAILED, this._onConferenceFailed.bind(this)) + } + _handleConferenceFailed(e) { + this._unsubscribe(), this._reject(e) + } + _onConferenceFailed(e) { + for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), a = 1; a < t; a++) n[a - 1] = arguments[a]; + switch (APP.store.dispatch(lq(cte, e, ...n)), ste.error("CONFERENCE FAILED:", e, ...n), e) { + case pt.NOT_ALLOWED_ERROR: + APP.store.dispatch(aB("static/authError.html")); + break; + case pt.AUTHENTICATION_REQUIRED: { + const e = Kn(APP.store.getState()); + this.reconnectTimeout = setTimeout((() => { + APP.store.dispatch(fq(cte)), cte.join(null, e) + }), 5e3); const { - _localParticipant: e - } = this.props; - let t; - return t = e && e.name ? e.name : interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME, t - } - set label(e) { - return e - } - get tooltip() { - return this.label - } - set tooltip(e) { - return e + password: t + } = APP.store.getState()["features/base/conference"]; + $B.requireAuth(cte, t); + break } - _handleClick() { - const { - dispatch: e, - _unclickable: t, - handleClick: n - } = this.props; - n ? n() : t || (Ma(hn("profile")), e(IQ(mW.PROFILE))) + case pt.RESERVATION_ERROR: { + const [e, t] = n; + APP.UI.notifyReservationError(e, t); + break } - _isDisabled() { - return this.props._unclickable + case pt.GRACEFUL_SHUTDOWN: + APP.UI.notifyGracefulShutdown(); + break; + case pt.FOCUS_DISCONNECTED: { + const [e, t] = n; + APP.store.dispatch(tg({ + descriptionKey: e, + titleKey: t + }, Yf.SHORT)); + break } - })), - A7 = () => x().createElement("hr", { - className: "overflow-menu-hr" - }); - - function j7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const P7 = Li(ze((e => { - let t = c.default.isDesktopSharingEnabled(); - const { - enableFeaturesBasedOnToken: n - } = e["features/base/config"]; - let a; - return n && (t = e["features/base/participants"].haveParticipantWithScreenSharingFeature, a = "dialog.shareYourScreenDisabled"), { - _desktopSharingDisabledTooltipKey: a, - _desktopSharingEnabled: t, - _screensharing: tW(e) - } - }))(class extends Vw { - constructor(...e) { - super(...e), j7(this, "accessibilityLabel", "toolbar.accessibilityLabel.shareYourScreen"), j7(this, "label", "toolbar.startScreenSharing"), j7(this, "icon", hp), j7(this, "toggledLabel", "toolbar.stopScreenSharing"), j7(this, "tooltip", "toolbar.accessibilityLabel.shareYourScreen") - } - get tooltip() { - const { - _desktopSharingDisabledTooltipKey: e, - _desktopSharingEnabled: t, - _screensharing: n - } = this.props; - return t ? n ? "toolbar.stopScreenSharing" : "toolbar.startScreenSharing" : e + case pt.FOCUS_LEFT: + case pt.ICE_FAILED: + case pt.VIDEOBRIDGE_NOT_AVAILABLE: + case pt.OFFER_ANSWER_FAILED: + APP.store.dispatch(gq(cte)), cte.leave().then((() => ute.disconnect())); + break; + case pt.CONFERENCE_MAX_USERS: + ute.disconnect(), APP.UI.notifyMaxUsersLimitReached(); + break; + case pt.INCOMPATIBLE_SERVER_VERSIONS: + APP.store.dispatch(oB()); + break; + default: + this._handleConferenceFailed(e, ...n) } - set tooltip(e) { - return e - } - _handleClick() { - const { - handleClick: e - } = this.props; - e && e() - } - _isToggled() { - return this.props._screensharing - } - _isDisabled() { - return !this.props._desktopSharingEnabled - } - })); - - function D7(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e } - const T7 = Li(ze((function(e) { + _unsubscribe() { + cte.off(ht.CONFERENCE_JOINED, this._handleConferenceJoined), cte.off(ht.CONFERENCE_FAILED, this._onConferenceFailed), null !== this.reconnectTimeout && clearTimeout(this.reconnectTimeout) + } + _handleConferenceJoined() { + this._unsubscribe(), this._resolve() + } + connect() { + const e = Kn(APP.store.getState()); + cte.join(l.getItem("xmpp_conference_password_override"), e) + } + } + + function wte() { + const e = () => (APP.API.notifyConferenceLeft(APP.conference.roomName), Promise.resolve()); + return ute ? ute.disconnect().then(e, e) : e() + } + + function Ste(e) { + st(e) && (APP.connection.removeEventListener(ft.CONNECTION_FAILED, Ste), cte && (APP.store.dispatch(gq(cte)), cte.leave())) + } + const Ete = { + _localTracksInitialized: !1, + isSharingScreen: !1, + localPresenterVideo: null, + createInitialLocalTracks() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const t = {}, + n = config.disableInitialGUM ? [] : ["audio"], + a = !config.disableInitialGUM; + let r, i = !1; + config.disableInitialGUM || e.startWithVideoMuted || e.startAudioOnly || e.startScreenSharing || (n.push("video"), i = !0), config.disableInitialGUM || JitsiMeetJS.mediaDevices.addEventListener(yt.PERMISSION_PROMPT_IS_SHOWN, (e => APP.store.dispatch(Pq(!0, e)))), JitsiMeetJS.mediaDevices.addEventListener(yt.SLOW_GET_USER_MEDIA, (() => APP.store.dispatch(jq(!0)))); + const o = dt.isElectron() ? 15e3 : 6e4; + return r = e.startScreenSharing ? this._createDesktopTrack().then((e => { + let [n] = e; + return a ? Qp({ + devices: ["audio"], + timeout: o, + firePermissionPromptIsShownEvent: !0, + fireSlowPromiseEvent: !0 + }).then((e => { + let [t] = e; + return [n, t] + })).catch((e => (t.audioOnlyError = e, [n]))) : [n] + })).catch((e => (ste.error("Failed to obtain desktop stream", e), t.screenSharingError = e, a ? Qp({ + devices: ["audio"], + timeout: o, + firePermissionPromptIsShownEvent: !0, + fireSlowPromiseEvent: !0 + }) : []))).catch((e => (t.audioOnlyError = e, []))) : a || i ? Qp({ + devices: n, + timeout: o, + firePermissionPromptIsShownEvent: !0, + fireSlowPromiseEvent: !0 + }).catch((e => a && i ? (t.audioAndVideoError = e, e.name !== wt.TIMEOUT || dt.isElectron() ? Qp({ + devices: ["audio"], + timeout: o, + firePermissionPromptIsShownEvent: !0, + fireSlowPromiseEvent: !0 + }) : (t.audioOnlyError = e, t.videoOnlyError = e, [])) : a && !i ? (t.audioOnlyError = e, []) : i && !a ? (t.videoOnlyError = e, []) : void ste.error("Should never happen"))).catch((e => (a || ste.error("The impossible just happened", e), t.audioOnlyError = e, i ? Qp({ + devices: ["video"], + firePermissionPromptIsShownEvent: !0, + fireSlowPromiseEvent: !0 + }) : []))).catch((e => (i || ste.error("The impossible just happened", e), t.videoOnlyError = e, []))) : Promise.resolve([]), r.then((e => (APP.store.dispatch(jq(!1)), APP.store.dispatch(Pq(!1)), e))), { + tryCreateLocalTracks: r, + errors: t + } + }, + _displayErrorsForCreateInitialLocalTracks(e) { const { - enabled: t - } = e["features/base/audio-only"], n = e["features/base/tracks"]; - return { - _audioOnly: Boolean(t), - _videoMuted: es(n), - visible: os(e) - } - }))(class extends Vw { - constructor(...e) { - super(...e), D7(this, "accessibilityLabel", "toolbar.accessibilityLabel.toggleCamera"), D7(this, "icon", xl), D7(this, "label", "toolbar.toggleCamera") + audioAndVideoError: t, + audioOnlyError: n, + screenSharingError: a, + videoOnlyError: r + } = e; + a && this._handleScreenSharingError(a), (t || n) && (n || r ? (APP.store.dispatch(nI(n)), APP.store.dispatch(tI(r))) : APP.store.dispatch(tI(t))) + }, + createInitialLocalTracksAndConnect(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + const { + tryCreateLocalTracks: n, + errors: a + } = this.createInitialLocalTracks(t); + return Promise.all([n, fte(e)]).then((e => { + let [t, n] = e; + return this._displayErrorsForCreateInitialLocalTracks(a), [t, n] + })) + }, + startConference(e, t) { + return t.forEach((e => { + if (e.isAudioTrack() && this.isLocalAudioMuted() || e.isVideoTrack() && this.isLocalVideoMuted()) { + const t = e.getType(); + Da(cn(t, "initial mute")), ste.log(`${t} mute: initially muted.`), e.mute() + } + })), e.addEventListener(ft.CONNECTION_FAILED, Ste), APP.connection = ute = e, this._createRoom(t), t.find((e => e.isAudioTrack())) || this.setAudioMuteStatus(!0), t.find((e => e.isVideoTrack())) || this.setVideoMuteStatus(), config.iAmRecorder && (this.recorder = new class { + constructor() { + config.iAmRecorder && this._sendRecorderInfo() + } + _sendRecorderInfo() { + const e = APP.conference.commands; + e.removeCommand(ree), e.sendCommand(ree, { + attributes: { + xmlns: "http://jitsi.org/jitmeet/userinfo", + robot: !0 + } + }) + } + }), config.startSilent && (Da({ + action: "start.silent" + }), APP.store.dispatch(tg({ + descriptionKey: "notify.startSilentDescription", + titleKey: "notify.startSilentTitle" + }, Yf.LONG))), new Promise(((e, t) => { + new _te(e, t).connect() + })) + }, + async init(e) { + let { + roomName: t + } = e; + const n = { + startAudioOnly: config.startAudioOnly, + startScreenSharing: config.startScreenSharing, + startWithAudioMuted: Df(APP.store.getState()) || config.startSilent || ph(APP.store.getState()), + startWithVideoMuted: Pf(APP.store.getState()) || ph(APP.store.getState()) + }; + this.roomName = t; + try { + await this._initDeviceList() + } catch (e) { + ste.warn("initial device list initialization failed", e) } - _handleClick() { + if (vH(APP.store.getState())) { + dte = fte(t).then((e => (APP.connection = e, e))), pte && pte(), APP.store.dispatch(IH(this._getConferenceOptions())); const { - dispatch: e, - handleClick: t - } = this.props; - t ? t() : e(_s()) + tryCreateLocalTracks: e, + errors: a + } = this.createInitialLocalTracks(n), r = await e; + return this._initDeviceList(!0), kH(APP.store.getState()) ? APP.store.dispatch(DH(r, a)) : (ste.debug("Prejoin screen no longer displayed at the time when tracks were created"), this._displayErrorsForCreateInitialLocalTracks(a), this._setLocalAudioVideoStreams(r)) + } + const [a, r] = await this.createInitialLocalTracksAndConnect(t, n); + let i = a; + return this._initDeviceList(!0), n.startWithAudioMuted && (dt.isWebKitBased() ? this.muteAudio(!0, !0) : i = i.filter((e => e.getType() !== Fi))), this.startConference(r, i) + }, + async prejoinStart(e) { + let t; + dte || (await new Promise((e => { + pte = e + })), pte = void 0); + try { + t = await dte, this.startConference(t, e) + } catch (e) { + ste.error(`An error occurred while trying to join a meeting from the prejoin screen: ${e}`), APP.store.dispatch(jH(!1)) + } + }, + isLocalId(e) { + return this.getMyUserId() === e + }, + isLocalVideoMuted() { + return this._localTracksInitialized ? lh(APP.store.getState()["features/base/tracks"]) : jf(APP.store) + }, + muteAudio(e) { + let t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + const n = APP.store.getState(); + if (e || !ph(n)) + if (e || !bm(Fi, n)) { + if (!this._localTracksInitialized) return bte(e), void this.setAudioMuteStatus(e); + if (this.isLocalAudioMuted() !== e) + if (ih(APP.store.getState()) || e) bte(e); + else { + const e = e => { + t && APP.store.dispatch(nI(e)) + }; + Qp({ + devices: ["audio"] + }).then((e => { + let [t] = e; + return t + })).catch((t => (e(t), null))).then((e => this.useAudioStream(e))) + } + } else jw(Fi, n) || APP.store.dispatch(rf(Fi)); + else ste.error("Unmuting audio requires user interaction") + }, + isLocalAudioMuted() { + return this._localTracksInitialized ? ch(APP.store.getState()["features/base/tracks"], Fi) : Boolean(APP.store.getState()["features/base/media"].audio.muted) + }, + toggleAudioMuted() { + let e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + this.muteAudio(!this.isLocalAudioMuted(), e) + }, + async mutePresenter(e) { + let t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + const n = e => { + t && APP.store.dispatch(tI(e)) + }, + a = rh(APP.store.getState()); + if (e) try { + await a.setEffect(void 0) + } catch (e) { + ste.error("Failed to remove the presenter effect", e), n(e) + } else try { + await a.setEffect(await this._createPresenterStreamEffect()) + } catch (e) { + ste.error("Failed to apply the presenter effect", e), n(e) + } + }, + muteVideo(e) { + let t = !(arguments.length > 1 && void 0 !== arguments[1]) || arguments[1]; + if (this.videoSwitchInProgress) console.warn("muteVideo - unable to perform operations while video switch is in progress"); + else if (e || !ph(APP.store.getState())) + if (this.isSharingScreen) hte = hte.then((() => this._mutePresenterVideo(e))); + else { + if (!this._localTracksInitialized) return yte(e), void this.setVideoMuteStatus(); + if (this.isLocalVideoMuted() !== e) + if (rh(APP.store.getState()) || e) yte(e); + else { + const e = e => { + t && APP.store.dispatch(tI(e)) + }; + Qp({ + devices: ["video"] + }).then((e => { + let [t] = e; + return t + })).catch((t => (e(t), null))).then((e => (ste.debug(`muteVideo: calling useVideoStream for track: ${e}`), this.useVideoStream(e)))) + } + } + else ste.error("Unmuting video requires user interaction") + }, + toggleVideoMuted() { + let e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + this.muteVideo(!this.isLocalVideoMuted(), e) + }, + listMembersIds: () => cte.getParticipants().map((e => e.getId())), + isParticipantModerator(e) { + const t = cte.getParticipantById(e); + return t && t.isModerator() + }, + listMembers: () => cte.getParticipants(), + get membersCount() { + return cte.getParticipants().length + 1 + }, + isCallstatsEnabled: () => cte && cte.isCallstatsEnabled(), + getSpeakerStats: () => cte.getSpeakerStats(), + getConnectionTimes: () => cte.getConnectionTimes(), + isJoined: () => cte && cte.isJoined(), + getConnectionState: () => cte && cte.getConnectionState(), + getP2PConnectionState: () => cte && cte.getP2PConnectionState(), + _startP2P() { + try { + cte && cte.startP2PSession() + } catch (e) { + throw ste.error("Start P2P failed", e), e } - _isDisabled() { - return this.props._audioOnly || this.props._videoMuted + }, + _stopP2P() { + try { + cte && cte.stopP2PSession() + } catch (e) { + throw ste.error("Stop P2P failed", e), e + } + }, + isConnectionInterrupted: () => cte.isConnectionInterrupted(), + getParticipantById: e => cte ? cte.getParticipantById(e) : null, + getMyUserId: () => cte && cte.myUserId(), + audioLevelsMap: {}, + getPeerSSRCAudioLevel(e) { + return this.audioLevelsMap[e] + }, + getNumberOfParticipantsWithTracks: () => cte.getParticipants().filter((e => e.getTracks().length > 0)).length, + getStats: () => cte.connectionQuality.getStats(), + saveLogs() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "meetlog.json"; + v3(APP.connection.getLogs(), e) + }, + commands: { + defaults: mte, + addCommandListener() { + cte.addCommandListener(...arguments) + }, + removeCommand() { + cte.removeCommand(...arguments) + }, + sendCommand() { + cte.sendCommand(...arguments) + }, + sendCommandOnce() { + cte.sendCommandOnce(...arguments) } - })); - - function O7() { - return O7 = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + }, + async joinRoom(e) { + X9.initLargeVideo(), X9.resizeVideoArea(), APP.store.dispatch(gh()), this._localTracksInitialized = !1, this.roomName = e; + const { + tryCreateLocalTracks: t, + errors: n + } = this.createInitialLocalTracks(), a = await t; + return this._displayErrorsForCreateInitialLocalTracks(n), a.forEach((e => { + (e.isAudioTrack() && this.isLocalAudioMuted() || e.isVideoTrack() && this.isLocalVideoMuted()) && e.mute() + })), this._createRoom(a), new Promise(((e, t) => { + new _te(e, t).connect() + })) + }, + _createRoom(e) { + cte = ute.initJitsiConference(APP.conference.roomName, this._getConferenceOptions()); + const t = dt.isWebKitBased() ? e : e.filter((e => !e.isMuted())); + this._setLocalAudioVideoStreams(t), this._room = cte, APP.store.dispatch(mq(cte)), xF(APP.store, cte), this._setupListeners() + }, + _setLocalAudioVideoStreams() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : []; + const t = e.map((e => e.isAudioTrack() ? this.useAudioStream(e) : e.isVideoTrack() ? (ste.debug(`_setLocalAudioVideoStreams is calling useVideoStream with track: ${e}`), this.useVideoStream(e)) : (ste.error("Ignored not an audio nor a video track: ", e), Promise.resolve()))); + return Promise.allSettled(t).then((() => { + this._localTracksInitialized = !0, ste.log(`Initialized with ${e.length} local tracks`) + })) + }, + _getConferenceOptions() { + const e = bF(APP.store.getState()); + return e.createVADProcessor = ote, e + }, + useVideoStream(e) { + return ste.debug(`useVideoStream: ${e}`), new Promise(((t, n) => { + kte.enqueue((a => { + const r = rh(APP.store.getState()); + if (ste.debug(`useVideoStream: Replacing ${r} with ${e}`), r === e) return t(), void a(); + APP.store.dispatch(vh(r, e, cte)).then((() => { + this._setSharingScreen(e), this.setVideoMuteStatus() + })).then(t).catch((e => { + ste.error(`useVideoStream failed: ${e}`), n(e) + })).then(a) + })) + })) + }, + _setSharingScreen(e) { + const t = this.isSharingScreen; + if (this.isSharingScreen = e && "desktop" === e.videoType, t !== this.isSharingScreen) { + const t = {}; + this.isSharingScreen && (t.sourceType = e.sourceType), APP.API.notifyScreenSharingStatusChanged(this.isSharingScreen, t) + } + }, + useAudioStream(e) { + return new Promise(((t, n) => { + vte.enqueue((a => { + const r = ih(APP.store.getState()); + if (r === e) return t(), void a(); + APP.store.dispatch(vh(r, e, cte)).then((() => { + this.setAudioMuteStatus(this.isLocalAudioMuted()) + })).then(t).catch(n).then(a) + })) + })) + }, + isAudioOnly: () => Boolean(APP.store.getState()["features/base/audio-only"].enabled), + videoSwitchInProgress: !1, + _untoggleScreenSharing: null, + async _turnScreenSharingOff(e, t) { + var n, a; + this._untoggleScreenSharing = null, this.videoSwitchInProgress = !0, APP.store.dispatch(p5()), this._stopProxyConnection(), config.enableScreenshotCapture && APP.store.dispatch(OK(!1)); + const r = null !== (n = null === (a = nh(APP.store.getState()["features/base/tracks"])) || void 0 === a ? void 0 : a.jitsiTrack.getDuration()) && void 0 !== n ? n : 0; + let i = hte = hte.then((() => { + if (this.localPresenterVideo) return APP.store.dispatch(yf(!0, qi)), this.localPresenterVideo.dispose().then((() => { + APP.store.dispatch(wh(this.localPresenterVideo)), this.localPresenterVideo = null + })) + })); + if (this._mixerEffect) { + const e = ih(APP.store.getState()); + await e.setEffect(void 0), await this._desktopAudioStream.dispose(), this._mixerEffect = void 0, this._desktopAudioStream = void 0 + } else this._desktopAudioStream && (await this.useAudioStream(null), this._desktopAudioStream = void 0); + return APP.store.dispatch(xY(!1)), i = e && !t ? i.then((() => Qp({ + devices: ["video"] + }))).then((e => { + let [t] = e; + return ste.debug(`_turnScreenSharingOff using ${t} for useVideoStream`), this.useVideoStream(t) + })).catch((e => (ste.error("failed to switch back to local video", e), this.useVideoStream(null).then((() => Promise.reject(e)))))) : i.then((() => (ste.debug("_turnScreenSharingOff using null for useVideoStream"), this.useVideoStream(null)))), i.then((() => { + this.videoSwitchInProgress = !1, Da(nn("stopped", 0 === r ? null : r)), ste.info("Screen sharing stopped.") + }), (e => { + throw this.videoSwitchInProgress = !1, ste.error(`_turnScreenSharingOff failed: ${e}`), e + })) + }, + async toggleScreenSharing() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : !this._untoggleScreenSharing, + t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = arguments.length > 2 ? arguments[2] : void 0; + if (ste.debug(`toggleScreenSharing: ${e}`), this.videoSwitchInProgress) return Promise.reject(`toggleScreenSharing: ${e} aborted - video switch in progress.`); + if (!JitsiMeetJS.isDesktopSharingEnabled()) return Promise.reject("Cannot toggle screen sharing: not supported."); + if (this.isAudioOnly()) return Promise.reject("No screensharing in audio only mode"); + if (e) try { + return void await this._switchToScreenSharing(t) + } catch (e) { + return void ste.error("Failed to switch to screensharing", e) + } + return this._untoggleScreenSharing ? this._untoggleScreenSharing(n) : Promise.resolve() + }, + _createDesktopTrack() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const t = !this.isLocalVideoMuted(); + return (e.desktopStream ? Promise.resolve([e.desktopStream]) : Qp({ + desktopSharingSourceDevice: e.desktopSharingSources ? null : config._desktopSharingSourceDevice, + desktopSharingSources: e.desktopSharingSources, + devices: ["desktop"] + })).then((e => { + this._untoggleScreenSharing = this._turnScreenSharingOff.bind(this, t); + const n = e.find((e => e.getType() === Bi)), + a = e.find((e => e.getType() === Fi)); + return a && a.on(St.LOCAL_TRACK_STOPPED, (() => { + ste.debug(`Local screensharing audio track stopped. ${this.isSharingScreen}`), gY(APP.store.getState()) && this._untoggleScreenSharing && this._untoggleScreenSharing() + })), n && n.on(St.LOCAL_TRACK_STOPPED, (() => { + ste.debug(`Local screensharing track stopped. ${this.isSharingScreen}`), this.isSharingScreen && this._untoggleScreenSharing && this._untoggleScreenSharing() + })), e + }), (e => { + throw e + })) + }, + async _createPresenterStreamEffect() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, + t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; + if (!this.localPresenterVideo) { + const n = null != t ? t : na(APP.store.getState()); + try { + this.localPresenterVideo = await async function(e, t) { + const { + cameraDeviceId: n + } = e, a = { + video: { + aspectRatio: 4 / 3, + height: { + ideal: [180, 270, 360, 540, 720].find((e => t / 5 < e)) + } + } + }, [r] = await c.default.createLocalTracks({ + cameraDeviceId: n, + constraints: a, + devices: ["video"] + }); + return r.type = qi, r + }({ + cameraDeviceId: n + }, e) + } catch (e) { + return void ste.error("Failed to create a camera track for presenter", e) } - return e - }, O7.apply(this, arguments) - } - - function M7(e, t) { - if (null == e) return {}; - var n, a, r = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, t); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) + APP.store.dispatch(kh(this.localPresenterVideo)) } - return r - } - class I7 extends E.Component { - constructor(e) { - super(e), this._onMouseOut = this._onMouseOut.bind(this), this._onMouseOver = this._onMouseOver.bind(this), this._onSetOverflowVisible = this._onSetOverflowVisible.bind(this), this._onTabIn = this._onTabIn.bind(this), this._onShortcutToggleChat = this._onShortcutToggleChat.bind(this), this._onShortcutToggleFullScreen = this._onShortcutToggleFullScreen.bind(this), this._onShortcutToggleParticipantsPane = this._onShortcutToggleParticipantsPane.bind(this), this._onShortcutToggleRaiseHand = this._onShortcutToggleRaiseHand.bind(this), this._onShortcutToggleScreenshare = this._onShortcutToggleScreenshare.bind(this), this._onShortcutToggleVideoQuality = this._onShortcutToggleVideoQuality.bind(this), this._onToolbarToggleParticipantsPane = this._onToolbarToggleParticipantsPane.bind(this), this._onToolbarOpenVideoQuality = this._onToolbarOpenVideoQuality.bind(this), this._onToolbarToggleChat = this._onToolbarToggleChat.bind(this), this._onToolbarToggleFullScreen = this._onToolbarToggleFullScreen.bind(this), this._onToolbarToggleRaiseHand = this._onToolbarToggleRaiseHand.bind(this), this._onToolbarToggleScreenshare = this._onToolbarToggleScreenshare.bind(this), this._onShortcutToggleTileView = this._onShortcutToggleTileView.bind(this), this._onEscKey = this._onEscKey.bind(this) + try { + return await (n = this.localPresenterVideo.stream, MediaStreamTrack.prototype.getSettings || MediaStreamTrack.prototype.getConstraints ? Promise.resolve(new Xee(n)) : Promise.reject(new Error("JitsiStreamPresenterEffect not supported!"))) + } catch (e) { + ste.error("Failed to create the presenter effect", e) } - componentDidMount() { + var n + }, + async _mutePresenterVideo(e) { + if ((!e || this.localPresenterVideo && !this.localPresenterVideo.isMuted()) && (e || !this.localPresenterVideo || this.localPresenterVideo.isMuted())) + if (this.localPresenterVideo || e) APP.store.dispatch(yf(e, qi)); + else { + var t, n, a; + const r = rh(APP.store.getState()), + { + height: i, + width: o + } = null !== (t = r.track.getSettings()) && void 0 !== t ? t : r.track.getConstraints(), + s = i >= o, + l = 720, + c = (s && o > l || !s && i > l) && (null === (n = config.videoQuality) || void 0 === n ? void 0 : n.resizeDesktopForPresenter); + if (c) { + let e = {}; + if (i && o) { + const t = [{ + aspectRatio: (o / i).toPrecision(4) + }], + n = s ? { + width: l + } : { + height: l + }; + t.push(n), e.advanced = t + } else e = { + width: 1280, + height: 720 + }; + try { + await r.track.applyConstraints(e) + } catch (e) { + return void ste.error("Failed to apply constraints on the desktop stream for presenter mode", e) + } + } + const u = c ? null !== (a = r.track.getSettings().height) && void 0 !== a ? a : l : i; + let d; + try { + d = await this._createPresenterStreamEffect(u) + } catch (e) { + return ste.error("Failed to unmute Presenter Video", e), void(e => { + APP.store.dispatch(tI(e)) + })(e) + } + try { + await r.setEffect(d), APP.store.dispatch(yf(e, qi)), this.setVideoMuteStatus() + } catch (e) { + ste.error("Failed to apply the Presenter effect", e) + } + } + }, + _switchToScreenSharing() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + return this.videoSwitchInProgress ? Promise.reject("Switch in progress.") : (this.videoSwitchInProgress = !0, this._createDesktopTrack(e).then((async t => { + let n = t.find((e => e.getType() === Bi)); + this._desktopAudioStream = t.find((e => e.getType() === Fi)); const { - _toolbarButtons: e, - t, - dispatch: n, - _reactionsEnabled: a - } = this.props; - if ([Xn("videoquality", e) && { - character: "A", - exec: this._onShortcutToggleVideoQuality, - helpDescription: "toolbar.callQuality" - }, Xn("chat", e) && { - character: "C", - exec: this._onShortcutToggleChat, - helpDescription: "keyboardShortcuts.toggleChat" - }, Xn("desktop", e) && { - character: "D", - exec: this._onShortcutToggleScreenshare, - helpDescription: "keyboardShortcuts.toggleScreensharing" - }, Xn("participants-pane", e) && { - character: "P", - exec: this._onShortcutToggleParticipantsPane, - helpDescription: "keyboardShortcuts.toggleParticipantsPane" - }, Xn("raisehand", e) && { - character: "R", - exec: this._onShortcutToggleRaiseHand, - helpDescription: "keyboardShortcuts.raiseHand" - }, Xn("fullscreen", e) && { - character: "S", - exec: this._onShortcutToggleFullScreen, - helpDescription: "keyboardShortcuts.fullScreen" - }, Xn("tileview", e) && { - character: "W", - exec: this._onShortcutToggleTileView, - helpDescription: "toolbar.tileViewToggle" - }].forEach((e => { - "object" == typeof e && APP.keyboardshortcut.registerShortcut(e.character, null, e.exec, e.helpDescription) - })), a) { - const e = Object.keys(fJ).map((e => ({ - character: fJ[e].shortcutChar, - exec: () => { - n(o4(e)), Ma(dn(`reaction.${e}`)) + audioOnly: a = !1 + } = e; + if (a && (n.dispose(), n = void 0, !this._desktopAudioStream)) return Promise.reject(UH); + if (n && (ste.debug(`_switchToScreenSharing is using ${n} for useVideoStream`), await this.useVideoStream(n)), this._desktopAudioStream) { + const e = ih(APP.store.getState()); + e ? (this._mixerEffect = new Zee(this._desktopAudioStream), await e.setEffect(this._mixerEffect)) : await this.useAudioStream(this._desktopAudioStream), APP.store.dispatch(xY(!0)) + } + })).then((() => { + this.videoSwitchInProgress = !1, config.enableScreenshotCapture && kU(APP.store.getState(), kt.mode.FILE) && APP.store.dispatch(OK(!0)), Da(nn("started")), ste.log("Screen sharing started") + })).catch((e => (this.videoSwitchInProgress = !1, this._untoggleScreenSharing && this._untoggleScreenSharing(), this._handleScreenSharingError(e), Promise.reject(e))))) + }, + _handleScreenSharingError(e) { + if (e.name === wt.SCREENSHARING_USER_CANCELED) return; + let t, n; + ste.error("failed to share local desktop", e), e.name === wt.PERMISSION_DENIED ? (t = "dialog.screenSharingPermissionDeniedError", n = "dialog.screenSharingFailedTitle") : e.name === wt.CONSTRAINT_FAILED ? (t = "dialog.cameraConstraintFailedError", n = "deviceError.cameraError") : e.name === wt.SCREENSHARING_GENERIC_ERROR ? (t = "dialog.screenSharingFailed", n = "dialog.screenSharingFailedTitle") : e === UH && (t = "notify.screenShareNoAudio", n = "notify.screenShareNoAudioTitle"), APP.UI.messageHandler.showError({ + descriptionKey: t, + titleKey: n + }) + }, + _setupListeners() { + cte.on(ht.CONFERENCE_JOINED, (() => { + this._onConferenceJoined() + })), cte.on(ht.CONFERENCE_JOIN_IN_PROGRESS, (() => { + APP.store.dispatch(zH(!1)) + })), cte.on(ht.CONFERENCE_LEFT, (function() { + APP.store.dispatch(pq(0)); + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + APP.store.dispatch(uq(cte, ...t)) + })), cte.on(ht.CONFERENCE_UNIQUE_ID_SET, (function() { + cte.sessionId = cte.getMeetingUniqueId(); + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + APP.store.dispatch(hq(cte, ...t)) + })), cte.on(ht.AUTH_STATUS_CHANGED, ((e, t) => APP.store.dispatch(function(e, t) { + return { + type: BF, + authEnabled: e, + authLogin: t + } + }(e, t)))), cte.on(ht.PARTCIPANT_FEATURES_CHANGED, (e => { + APP.store.dispatch(aS(e)) + })), cte.on(ht.USER_JOINED, ((e, t) => { + hF(APP.store, cte, t), t.isHidden() || (APP.store.dispatch(aS(t)), ste.log(`USER ${e} connected:`, t), APP.UI.addUser(t)) + })), cte.on(ht.USER_LEFT, ((e, t) => { + mF(APP.store, cte, t), t.isHidden() || ste.log(`USER ${e} LEFT:`, t) + })), cte.on(ht.USER_STATUS_CHANGED, ((e, t) => { + APP.store.dispatch(iS(e, t)); + const n = cte.getParticipantById(e); + n && APP.UI.updateUserStatus(n, t) + })), cte.on(ht.USER_ROLE_CHANGED, ((e, t) => { + this.isLocalId(e) ? (ste.info(`My role changed, new role: ${t}`), APP.store.dispatch(function(e) { + return (t, n) => { + const a = Uh(n); + if (a) return t(oS(a.id, e)) + } + }(t)), APP.API.notifyUserRoleChanged(e, t)) : APP.store.dispatch(oS(e, t)) + })), cte.on(ht.TRACK_ADDED, (e => { + e && !e.isLocal() && APP.store.dispatch(kh(e)) + })), cte.on(ht.TRACK_REMOVED, (e => { + e && !e.isLocal() && APP.store.dispatch(wh(e)) + })), cte.on(ht.TRACK_AUDIO_LEVEL_CHANGED, ((e, t) => { + const n = ih(APP.store.getState()); + let a = t; + this.isLocalId(e) && null != n && n.isMuted() && (a = 0), config.debug && (this.audioLevelsMap[e] = a, config.debugAudioLevels && ste.log(`AudioLevel:${e}/${a}`)), APP.UI.setAudioLevel(e, a) + })), cte.on(ht.TRACK_MUTE_CHANGED, ((e, t) => { + t && (APP.store.dispatch(lS(t, e)), this.isSharingScreen && e.isVideoTrack() && (ste.debug("TRACK_MUTE_CHANGED while screen sharing"), this._turnScreenSharingOff(!1))) + })), cte.on(ht.TRACK_UNMUTE_REJECTED, (e => APP.store.dispatch(gh(e)))), cte.on(ht.SUBJECT_CHANGED, (e => APP.store.dispatch(dq(e)))), cte.on(ht.LAST_N_ENDPOINTS_CHANGED, ((e, t) => APP.UI.handleLastNEndpoints(e, t))), cte.on(ht.P2P_STATUS, ((e, t) => APP.store.dispatch(function(e) { + return { + type: XF, + p2p: e + } + }(t)))), cte.on(ht.PARTICIPANT_CONN_STATUS_CHANGED, ((e, t) => APP.store.dispatch(tS(e, t)))), cte.on(ht.DOMINANT_SPEAKER_CHANGED, ((e, t) => APP.store.dispatch(Zw(e, t, cte)))), cte.on(ht.CONFERENCE_CREATED_TIMESTAMP, (e => APP.store.dispatch(pq(e)))), cte.on(ht.CONNECTION_INTERRUPTED, (() => { + APP.store.dispatch(Xw(vt.INTERRUPTED)) + })), cte.on(ht.CONNECTION_RESTORED, (() => { + APP.store.dispatch(Xw(vt.ACTIVE)) + })), cte.on(ht.DISPLAY_NAME_CHANGED, ((e, t) => { + const n = Hh(t), + a = APP.store.getState(), + { + defaultRemoteDisplayName: r + } = a["features/base/config"]; + APP.store.dispatch(sS({ + conference: cte, + id: e, + name: n + })), APP.API.notifyDisplayNameChanged(e, { + displayName: n, + formattedDisplayName: t1(n || r) + }) + })), cte.on(ht.BOT_TYPE_CHANGED, ((e, t) => { + APP.store.dispatch(sS({ + conference: cte, + id: e, + botType: t + })) + })), cte.on(ht.ENDPOINT_MESSAGE_RECEIVED, (function() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + if (APP.store.dispatch(Ra(...t)), t && t.length >= 2) { + const [e, n] = t; + n.name === zt && APP.API.notifyEndpointTextMessageReceived({ + senderInfo: { + jid: e._jid, + id: e._id }, - helpDescription: t(`toolbar.reaction${e.charAt(0).toUpperCase()}${e.slice(1)}`), - altKey: !0 - }))); - e.forEach((e => { - APP.keyboardshortcut.registerShortcut(e.character, null, e.exec, e.helpDescription, e.altKey) - })) + eventData: n + }) } - } - componentDidUpdate(e) { + })), cte.on(ht.NON_PARTICIPANT_MESSAGE_RECEIVED, (function() { + return APP.store.dispatch(kq(...arguments)) + })), cte.on(ht.LOCK_STATE_CHANGED, (function() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + return APP.store.dispatch(vq(cte, ...t)) + })), cte.on(ht.KICKED, ((e, t, n) => { + if (n) { + const e = Uh(APP.store.getState()); + APP.store.dispatch(sS({ + conference: cte, + id: e.id, + isReplaced: n + })), APP.API.notifyReadyToClose() + } + APP.store.dispatch(yq(cte, e)) + })), cte.on(ht.PARTICIPANT_KICKED, ((e, t) => { + APP.store.dispatch(cS(e, t)) + })), cte.on(ht.SUSPEND_DETECTED, (() => { + APP.store.dispatch(Tee()) + })), cte.on(ht.AUDIO_UNMUTE_PERMISSIONS_CHANGED, (e => { + APP.store.dispatch(bf(e)) + })), cte.on(ht.VIDEO_UNMUTE_PERMISSIONS_CHANGED, (e => { + APP.store.dispatch(vf(e)) + })), APP.UI.addListener(rX.AUDIO_MUTED, (e => { + this.muteAudio(e) + })), APP.UI.addListener(rX.VIDEO_MUTED, (e => { + this.muteVideo(e) + })), cte.addCommandListener(this.commands.defaults.ETHERPAD, (e => { + let { + value: t + } = e; + APP.UI.initEtherpad(t) + })), APP.UI.addListener(rX.EMAIL_CHANGED, this.changeLocalEmail.bind(this)), cte.addCommandListener(this.commands.defaults.EMAIL, ((e, t) => { + APP.store.dispatch(sS({ + conference: cte, + id: t, + email: e.value + })) + })), cte.addCommandListener(this.commands.defaults.AVATAR_URL, ((e, t) => { + APP.store.dispatch(sS({ + conference: cte, + id: t, + avatarURL: e.value + })) + })), APP.UI.addListener(rX.NICKNAME_CHANGED, this.changeLocalDisplayName.bind(this)), cte.on(ht.START_MUTED_POLICY_CHANGED, (e => { + let { + audio: t, + video: n + } = e; + APP.store.dispatch(_q(t, n)) + })), cte.on(ht.STARTED_MUTED, (() => { + const e = cte.isStartAudioMuted(), + t = cte.isStartVideoMuted(), + n = th(APP.store.getState()["features/base/tracks"]), + a = []; + APP.store.dispatch(gf(e)), APP.store.dispatch(yf(t)); + for (const o of n) { + var r, i; + e && (null === (r = o.jitsiTrack) || void 0 === r ? void 0 : r.getType()) === Fi && !dt.isWebKitBased() && a.push(this.useAudioStream(null)), t && (null === (i = o.jitsiTrack) || void 0 === i ? void 0 : i.getType()) === Bi && a.push(this.useVideoStream(null)) + } + Promise.allSettled(a).then((() => { + APP.store.dispatch(tg({ + titleKey: "notify.mutedTitle", + descriptionKey: "notify.muted" + }, Yf.SHORT)) + })) + })), cte.on(ht.DATA_CHANNEL_OPENED, (() => { + APP.store.dispatch({ + type: JF + }) + })), APP.UI.addListener(rX.HANGUP, (() => { + this.hangup(!0) + })), APP.UI.addListener(rX.LOGOUT, (() => { + $B.logout(cte).then((e => { + e ? HB.redirect(e) : this.hangup(!0) + })) + })), APP.UI.addListener(rX.AUTH_CLICKED, (() => { + $B.authenticate(cte) + })), APP.UI.addListener(rX.VIDEO_DEVICE_CHANGED, (e => { + const t = rh(APP.store.getState()), + n = this.isLocalVideoMuted(); + if (Da(Kt("video", "input")), this.isSharingScreen && !n) { + const { + height: n + } = t.track.getSettings(); + return this.localPresenterVideo && this.localPresenterVideo.dispose(), this.localPresenterVideo = null, this._createPresenterStreamEffect(n, e).then((e => t.setEffect(e))).then((() => { + this.setVideoMuteStatus(), ste.log("Switched local video device while screen sharing and the video is unmuted"), this._updateVideoDeviceId() + })).catch((e => APP.store.dispatch(tI(e)))) + } + if (this.isSharingScreen && n) { + ste.log("Switched local video device: while screen sharing and the video is muted"); + const { + height: n + } = t.track.getSettings(); + this._updateVideoDeviceId(), this.localPresenterVideo && this.localPresenterVideo.dispose(), this.localPresenterVideo = null, this._createPresenterStreamEffect(n, e) + } else Qp({ + devices: ["video"], + cameraDeviceId: e, + micDeviceId: null + }).then((e => { + let [t] = e; + return this.isAudioOnly() || n ? t.mute().then((() => t)) : t + })).then((e => (ste.log("Switching the local video device."), this.useVideoStream(e)))).then((() => { + ste.log("Switched local video device."), this._updateVideoDeviceId() + })).catch((e => (ste.error(`Switching the local video device failed: ${e}`), APP.store.dispatch(tI(e))))) + })), APP.UI.addListener(rX.AUDIO_DEVICE_CHANGED, (e => { + const t = this.isLocalAudioMuted(), + n = "default" === e; + Da(Kt("audio", "input")), Qp({ + devices: ["audio"], + cameraDeviceId: null, + micDeviceId: n ? UM(APP.store.getState(), "audioInput") : e + }).then((e => { + let [n] = e; + return t ? n.mute().then((() => n)) : n + })).then((async e => (this._mixerEffect && (this._mixerEffect = new Zee(this._desktopAudioStream), await e.setEffect(this._mixerEffect)), this.useAudioStream(e)))).then((() => { + const e = ih(APP.store.getState()); + e && n && (e._realDeviceId = e.deviceId = "default"), ste.log(`switched local audio device: ${null==e?void 0:e.getDeviceId()}`), this._updateAudioDeviceId() + })).catch((e => { + APP.store.dispatch(nI(e)) + })) + })), APP.UI.addListener(rX.TOGGLE_AUDIO_ONLY, (e => { + const t = APP.store.getState()["features/base/tracks"], + n = Boolean(t.find((e => e.jitsiTrack && "video" === e.jitsiTrack.getType()))); + n || this.muteVideo(e); + const a = APP.UI.getLargeVideoID(); + a && APP.UI.updateLargeVideo(a, !0) + })), APP.UI.addListener(rX.TOGGLE_SCREENSHARING, (e => { + let { + enabled: t, + audioOnly: n, + ignoreDidHaveVideo: a + } = e; + this.toggleScreenSharing(t, { + audioOnly: n + }, a) + })) + }, + onSuspendDetected() { + this.deviceChangeListener && JitsiMeetJS.mediaDevices.removeEventListener(yt.DEVICE_LIST_CHANGED, this.deviceChangeListener) + }, + _onConferenceJoined() { + APP.UI.initConference(), config.disableShortcuts || APP.keyboardshortcut.init(), APP.store.dispatch(cq(cte)) + }, + _initDeviceList() { + let e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; + const { + mediaDevices: t + } = JitsiMeetJS; + if (t.isDeviceListAvailable() && t.isDeviceChangeAvailable()) { + e && (this.deviceChangeListener = e => window.setTimeout((() => this._onDeviceListChanged(e)), 0), t.addEventListener(yt.DEVICE_LIST_CHANGED, this.deviceChangeListener)); const { - _dialog: t, dispatch: n - } = this.props; - e._overflowMenuVisible && !e._dialog && t && (this._onSetOverflowVisible(!1), n(VV(!1))) - } - componentWillUnmount() { - ["A", "C", "D", "R", "S"].forEach((e => APP.keyboardshortcut.unregisterShortcut(e))), this.props._reactionsEnabled && Object.keys(fJ).map((e => fJ[e].shortcutChar)).forEach((e => APP.keyboardshortcut.unregisterShortcut(e, !0))) + } = APP.store; + return n(eI()).then((e => { + this._updateAudioDeviceId(), this._updateVideoDeviceId(), APP.UI.onAvailableDevicesChanged(e) + })) } - render() { - const { - _chatOpen: e, - _visible: t, - _toolbarButtons: n - } = this.props, a = `new-toolbox ${t?"visible":""} ${n.length?"":"no-buttons"} ${e?"shift-right":""}`; - return x().createElement("div", { - className: a, - id: "new-toolbox" - }, this._renderToolboxContent()) - } - _onEscKey(e) { - "Escape" === e.key && (e.stopPropagation(), this._closeOverflowMenuIfOpen()) - } - _closeOverflowMenuIfOpen() { + return Promise.resolve() + }, + _updateVideoDeviceId() { + const e = rh(APP.store.getState()); + e && "camera" === e.videoType && APP.store.dispatch(hn({ + cameraDeviceId: e.getDeviceId() + })), this.localPresenterVideo && APP.store.dispatch(hn({ + cameraDeviceId: this.localPresenterVideo.getDeviceId() + })) + }, + _updateAudioDeviceId() { + const e = ih(APP.store.getState()); + e && APP.store.dispatch(hn({ + micDeviceId: e.getDeviceId() + })) + }, + _onDeviceListChanged(e) { + const t = APP.store.getState()["features/base/devices"].availableDevices, + n = ih(APP.store.getState()), + a = rh(APP.store.getState()); + APP.store.dispatch(lI(e)); + const r = aee.newDeviceListAddedLabelsOnly(t, e), + i = aee.getNewMediaDevicesAfterDeviceListChanged(e, this.isSharingScreen, a, n, r), + o = [], + s = this.isLocalAudioMuted(), + l = this.isLocalVideoMuted(), + c = { + audio: Boolean(i.audioinput), + video: Boolean(i.videoinput) + }; + if (void 0 !== i.audiooutput) { const { - dispatch: e, - _overflowMenuVisible: t - } = this.props; - t && e(HV(!1)) - } - _doOpenVideoQuality() { - this.props.dispatch(sP(W8)) - } - _doToggleChat() { - this.props.dispatch(G3()) - } - _doToggleFullScreen() { - const e = !this.props._fullScreen; - this.props.dispatch(function(e) { - return { - type: jV, - fullScreen: e + dispatch: e + } = APP.store, t = ZM(i.audiooutput, e).catch(); + o.push(t) + } + c.audio && n && n.stopStream(), c.video && a && a.stopStream(); + const u = APP.store.getState()["features/base/devices"].availableDevices; + let d = [], + p = []; + void 0 === i.audiooutput && (d = u.audioOutput, p = t.audioOutput), c.audio || (d = d.concat(u.audioInput), p = p.concat(t.audioInput)), d.length > 0 && APP.store.dispatch(cI(d, p)), c.video || APP.store.dispatch(cI(u.videoInput, t.videoInput)); + const h = "default" === i.audioinput; + return c.video && this.isLocalVideoMuted() && (c.video = !1, APP.store.dispatch(hn({ + cameraDeviceId: i.videoinput + })), delete i.videoinput, ste.debug("_onDeviceListChanged: Removing the current video track."), this.useVideoStream(null)), o.push(aee.createLocalTracksAfterDeviceListChanged(Qp, i.videoinput, h ? UM(APP.store.getState(), "audioInput") : i.audioinput).then((e => { + const t = e.map((e => e.isVideoTrack() && l || e.isAudioTrack() && s ? e.mute() : Promise.resolve())); + return Promise.all(t).then((() => Promise.all(Object.keys(c).map((t => { + if (c[t]) { + const n = "audio" === t ? this.useAudioStream.bind(this) : this.useVideoStream.bind(this), + a = e.find((e => e.getType() === t)) || null; + return n(a).then((() => { + null != a && a.isAudioTrack() && h && (a._realDeviceId = a.deviceId = "default"), "audio" === t ? this._updateAudioDeviceId() : this._updateVideoDeviceId() + })) } - }(e)) - } - _doToggleRaiseHand() { - const { - _localParticipantID: e, - _raisedHand: t - } = this.props, n = !t; - this.props.dispatch(pk(n)), APP.API.notifyRaiseHandUpdated(e, n) - } - _doToggleScreenshare() { - const { - _backgroundType: e, - _desktopSharingEnabled: t, - _localVideo: n, - _virtualSource: a, - dispatch: r - } = this.props; - if (e === Co) { - const e = { - enabled: !1, - backgroundType: jo, - selectedThumbnail: jo, - backgroundEffectEnabled: !1 - }; - return a.dispose(), void r(vo(e, n)) + return Promise.resolve() + }))))) + })).then((() => { + s && (Da(cn("audio", "device list changed")), ste.log("Audio mute: device list changed"), bte(!0)), !this.isSharingScreen && l && (Da(cn("video", "device list changed")), ste.log("Video mute: device list changed"), yte(!0)) + }))), Promise.all(o).then((() => { + APP.UI.onAvailableDevicesChanged(e) + })) + }, + updateAudioIconEnabled() { + const e = ih(APP.store.getState()), + t = APP.store.getState()["features/base/devices"].availableDevices.audioInput, + n = (t ? t.length : 0) > 0 || Boolean(e); + APP.store.dispatch(function(e) { + return { + type: sf, + available: e } - t && r(uW()) - } - _doToggleVideoQuality() { - this.props.dispatch(lP(W8)) - } - _doToggleTileView() { - this.props.dispatch(zk()) - } - _getAllButtons() { - const { - _feedbackConfigured: e, - _isMobile: t, - _screenSharing: n - } = this.props, a = { - key: "microphone", - Content: KQ, - group: 0 - }, r = { - key: "camera", - Content: tX, - group: 0 - }, i = this._isProfileVisible() && { - key: "profile", - Content: C7, - group: 1 - }, o = { - key: "chat", - Content: t6, - handleClick: this._onToolbarToggleChat, - group: 2 - }; + }(n)), APP.API.notifyAudioAvailabilityChanged(n) + }, + updateVideoIconEnabled() { + const e = APP.store.getState()["features/base/devices"].availableDevices.videoInput, + t = e ? e.length : 0, + n = rh(APP.store.getState()), + a = t > 0 || Boolean(n); + APP.store.dispatch(function(e) { return { - microphone: a, - camera: r, - profile: i, - desktop: this._showDesktopSharingButton() && { - key: "desktop", - Content: P7, - handleClick: this._onToolbarToggleScreenshare, - group: 2 - }, - chat: o, - raisehand: { - key: "raisehand", - Content: k4, - handleClick: this._onToolbarToggleRaiseHand, - group: 2 - }, - participants: { - key: "participants-pane", - Content: J6, - handleClick: this._onToolbarToggleParticipantsPane, - group: 2 - }, - invite: { - key: "invite", - Content: sK, - group: 2 - }, - tileview: { - key: "tileview", - Content: $j, - group: 2 - }, - toggleCamera: { - key: "toggle-camera", - Content: T7, - group: 2 - }, - videoQuality: { - key: "videoquality", - Content: T8, - handleClick: this._onToolbarOpenVideoQuality, - group: 2 - }, - fullscreen: !t && { - key: "fullscreen", - Content: b7, - handleClick: this._onToolbarToggleFullScreen, - group: 2 - }, - security: { - key: "security", - alias: "info", - Content: k8, - group: 2 - }, - cc: { - key: "closedcaptions", - Content: kM, - group: 2 - }, - recording: { - key: "recording", - Content: eG, - group: 2 - }, - localRecording: { - key: "localrecording", - Content: H6, - group: 2 - }, - livestreaming: { - key: "livestreaming", - Content: YW, - group: 2 - }, - muteEveryone: { - key: "mute-everyone", - Content: h7, - group: 2 - }, - muteVideoEveryone: { - key: "mute-video-everyone", - Content: f7, - group: 2 - }, - shareVideo: { - key: "sharedvideo", - Content: h3, - group: 3 - }, - shareAudio: this._showAudioSharingButton() && { - key: "shareaudio", - Content: aW, - group: 3 - }, - etherpad: { - key: "etherpad", - Content: p6, - group: 3 - }, - virtualBackground: !n && { - key: "select-background", - Content: Q8, - group: 3 - }, - speakerStats: { - key: "stats", - Content: ZZ, - group: 3 - }, - settings: { - key: "settings", - Content: bW, - group: 4 - }, - shortcuts: !t && rQ.getEnabled() && { - key: "shortcuts", - Content: XJ, - group: 4 - }, - embed: this._isEmbedMeetingVisible() && { - key: "embedmeeting", - Content: i6, - group: 4 - }, - feedback: e && { - key: "feedback", - Content: FH, - group: 4 - }, - download: { - key: "download", - Content: s7, - group: 4 - }, - help: { - key: "help", - Content: d7, - group: 4 - } + type: df, + available: e } - } - _overwriteButtonsClickHandlers(e) { - var t; - "undefined" != typeof APP && (null === (t = this.props._buttonsWithNotifyClick) || void 0 === t ? void 0 : t.length) && Object.values(e).forEach((e => { - this.props._buttonsWithNotifyClick.includes(e.key) && (e.handleClick = () => APP.API.notifyToolbarButtonClicked(e.key)) - })) - } - _getVisibleButtons() { - const { - _clientWidth: e, - _toolbarButtons: t - } = this.props, n = this._getAllButtons(); - this._overwriteButtonsClickHandlers(n); - const a = Xn("hangup", t), + }(a)), APP.API.notifyVideoAvailabilityChanged(a) + }, + hangup() { + let e, t = arguments.length > 0 && void 0 !== arguments[0] && arguments[0]; + APP.store.dispatch(((e, t) => { + const n = t(), { - order: r - } = bH.find((({ - width: t - }) => e > t)) || bH[bH.length - 1]; - let i = r.length + 2; - const o = Object.keys(n), - s = [...r.map((e => n[e])), ...Object.values(n).filter(((e, t) => !r.includes(o[t])))].filter(Boolean).filter((({ - key: e, - alias: n = "N/A" - }) => Xn(e, t) || Xn(n, t))); - return a && (i -= 1), i < s.length && (i -= 1), { - mainMenuButtons: s.slice(0, i), - overflowMenuButtons: s.slice(i) - } - } - _onMouseOut() { - const { - _overflowMenuVisible: e, - dispatch: t - } = this.props; - !e && t(VV(!1)) - } - _onMouseOver() { - this.props.dispatch(VV(!0)) - } - _onSetOverflowVisible(e) { - this.props.dispatch(HV(e)), this.props.dispatch(VV(e)) - } - _onShortcutToggleChat() { - if (Ma(dn("toggle.chat", { - enable: !this.props._chatOpen - })), "" !== window.getSelection().toString()) return !1; - this._doToggleChat() - } - _onShortcutToggleParticipantsPane() { - Ma(dn("toggle.participants-pane", { - enable: !this.props._participantsPaneOpen - })), this._onToolbarToggleParticipantsPane() - } - _onShortcutToggleVideoQuality() { - Ma(dn("video.quality")), this._doToggleVideoQuality() - } - _onShortcutToggleTileView() { - Ma(dn("toggle.tileview", { - enable: !this.props._tileViewEnabled - })), this._doToggleTileView() - } - _onShortcutToggleFullScreen() { - Ma(dn("toggle.fullscreen", { - enable: !this.props._fullScreen - })), this._doToggleFullScreen() - } - _onShortcutToggleRaiseHand() { - Ma(dn("toggle.raise.hand", Gt, { - enable: !this.props._raisedHand - })), this._doToggleRaiseHand() - } - _onShortcutToggleScreenshare() { - Ma(dn("toggle.screen.sharing", Gt, { - enable: !this.props._screenSharing - })), this._doToggleScreenshare() - } - _onTabIn() { - this.props._visible || this.props.dispatch(BV()) - } - _onToolbarToggleParticipantsPane() { - const { - dispatch: e, - _participantsPaneOpen: t - } = this.props; - e(t ? K6() : { - type: G6 - }) - } - _onToolbarOpenVideoQuality() { - Ma(hn("video.quality")), this._doOpenVideoQuality() - } - _onToolbarToggleChat() { - Ma(hn("toggle.chat", { - enable: !this.props._chatOpen - })), this._closeOverflowMenuIfOpen(), this._doToggleChat() - } - _onToolbarToggleFullScreen() { - Ma(hn("toggle.fullscreen", { - enable: !this.props._fullScreen - })), this._closeOverflowMenuIfOpen(), this._doToggleFullScreen() - } - _onToolbarToggleRaiseHand() { - Ma(hn("raise.hand", { - enable: !this.props._raisedHand - })), this._doToggleRaiseHand() - } - _onToolbarToggleScreenshare() { - Ma(hn("toggle.screen.sharing", Gt, this.props._screenSharing)), this._closeOverflowMenuIfOpen(), this._doToggleScreenshare() - } - _showAudioSharingButton() { - const { - _desktopSharingEnabled: e - } = this.props; - return e && eW() - } - _showDesktopSharingButton() { + enabled: a + } = n["features/remote-control"].receiver; + if (!a) return; const { - _desktopSharingEnabled: e, - _desktopSharingDisabledTooltipKey: t - } = this.props; - return e || t - } - _isEmbedMeetingVisible() { - return !this.props._isVpaasMeeting && !this.props._isMobile - } - _isProfileVisible() { - return !this.props._isProfileDisabled - } - _renderToolboxContent() { + connection: r + } = n["features/base/connection"], { + conference: i + } = n["features/base/conference"]; + r && i ? (X3.log("Remote control receiver disabled."), e({ + type: R3, + enabled: !1 + }), e(p5(!0)), r.removeFeature(H3), i.off(ht.ENDPOINT_MESSAGE_RECEIVED, o5)) : X3.error("Couldn't enable the remote receiver! The connection or conference instance is undefined!") + })), this._stopProxyConnection(), APP.store.dispatch(gh()), this._localTracksInitialized = !1, this.deviceChangeListener && JitsiMeetJS.mediaDevices.removeEventListener(yt.DEVICE_LIST_CHANGED, this.deviceChangeListener), APP.UI.removeAllListeners(), e = t ? APP.store.dispatch(function(e) { + return (t, n) => { + const a = n(), + { + feedbackPercentage: r = 100 + } = a["features/base/config"]; + if (config.iAmRecorder); + else { + if (a["features/base/dialog"].component === F1) return Promise.reject("FeedbackRequestInProgress"); + if (a["features/feedback"].submitted) return Promise.resolve({ + feedbackSubmitted: !0, + showThankYou: !0 + }); + if (e.isCallstatsEnabled() && r > 100 * Math.random()) return new Promise((a => { + t(B1(e, (() => { + const { + submitted: e + } = n()["features/feedback"]; + a({ + feedbackSubmitted: e, + showThankYou: !1 + }) + }))) + })) + } + return Promise.resolve({ + feedbackSubmitted: !1, + showThankYou: !0 + }) + } + }(cte)).catch((() => Promise.resolve(!1))) : Promise.resolve(!0), Promise.all([e, this.leaveRoom()]).then((e => { + this._room = void 0, cte = void 0, interfaceConfig.SHOW_PROMOTIONAL_CLOSE_PAGE || APP.API.notifyReadyToClose(), APP.store.dispatch(sB(e[0])) + })) + }, + async leaveRoom() { + let e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + return APP.store.dispatch(gq(cte)), cte && cte.isJoined() ? cte.leave().finally((() => { + if (e) return wte() + })) : e ? wte() : void 0 + }, + changeLocalEmail() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""; + const t = Uh(APP.store.getState()), + n = String(e).trim(); + if (n === t.email) return; + const a = t.id; + APP.store.dispatch(sS({ + id: a, + local: !0, + email: n + })), APP.store.dispatch(hn({ + email: n + })), APP.API.notifyEmailChanged(a, { + email: n + }), gte(mte.EMAIL, n) + }, + changeLocalAvatarUrl() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""; + const { + avatarURL: t, + id: n + } = Uh(APP.store.getState()), a = String(e).trim(); + a !== t && (APP.store.dispatch(sS({ + id: n, + local: !0, + avatarURL: a + })), APP.store.dispatch(hn({ + avatarURL: a + })), gte(mte.AVATAR_URL, e)) + }, + sendEndpointMessage(e, t) { + cte.sendEndpointMessage(e, t) + }, + sendFacialExpression(e) { + cte.sendFacialExpression(e) + }, + addListener(e, t) { + lte.addListener(e, t) + }, + removeListener(e, t) { + lte.removeListener(e, t) + }, + changeLocalDisplayName() { + const e = Hh(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""), + { + id: t, + name: n + } = Uh(APP.store.getState()); + e !== n && (APP.store.dispatch(sS({ + id: t, + local: !0, + name: e + })), APP.store.dispatch(hn({ + displayName: e + }))) + }, + onProxyConnectionEvent(e) { + this._proxyConnection || (this._proxyConnection = new JitsiMeetJS.ProxyConnectionService({ + jitsiConnection: APP.connection, + convertVideoToDesktop: !0, + onConnectionClosed: () => { + this._untoggleScreenSharing && this._untoggleScreenSharing() + }, + onSendMessage: (e, t) => APP.API.sendProxyConnectionEvent({ + data: t, + to: e + }), + onRemoteStream: e => { + if ("desktop" !== e.videoType) return ste.warn("Received a non-desktop stream to proxy."), void e.dispose(); + this.toggleScreenSharing(void 0, { + desktopStream: e + }) + } + })), this._proxyConnection.processMessage(e) + }, + setVideoMuteStatus() { + APP.UI.setVideoMuted(this.getMyUserId()) + }, + setAudioMuteStatus(e) { + APP.UI.setAudioMuted(this.getMyUserId(), e), APP.API.notifyAudioMutedStatusChanged(e) + }, + submitFeedback() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : -1, + t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ""; + (-1 === e || e >= 1 && e <= 5) && APP.store.dispatch(U1(e, t, cte)) + }, + _stopProxyConnection() { + this._proxyConnection && this._proxyConnection.stop(), this._proxyConnection = null + } + }, { + LOW: xte, + STANDARD: Cte, + HIGH: Ate, + ULTRA: Tte + } = d7, Dte = { + maxReceiverVideoQuality: d7.ULTRA, + minHeightForQualityLvl: new Map, + preferredVideoQuality: d7.ULTRA + }; + + function Pte(e, t) { + var n; + let { + config: a + } = t; + const r = null == a || null === (n = a.videoQuality) || void 0 === n ? void 0 : n.minHeightForQualityLvl, + i = function(e) { + if ("object" != typeof e || Object.keys(e).map((e => Number(e))).find((e => null === e || isNaN(e) || e < 0))) return; + const t = Object.keys(e).map((e => Number(e))).sort(((e, t) => e - t)), + n = new Map; + for (const a of t) { + const t = e[a], + r = p7[t]; + if (!r) return; + n.set(a, r) + } + return n + }(r); + return r && !i && f7.error("Invalid config value videoQuality.minHeightForQualityLvl"), i ? ze(e, "minHeightForQualityLvl", i) : e + } + Dte.minHeightForQualityLvl.set(360, d7.STANDARD), Dte.minHeightForQualityLvl.set(720, d7.HIGH), Xe.register("features/video-quality-persistent-storage"), et.register("features/video-quality-persistent-storage", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + if (t.type === h7) { + const { + preferredVideoQuality: n + } = t; + return { + ...e, + persistedPrefferedVideoQuality: n + } + } + return e + })), et.register("features/video-quality", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Dte, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case In: + return Pte(e, t); + case m7: + return ze(e, "maxReceiverVideoQuality", t.maxReceiverVideoQuality); + case h7: { const { - _isMobile: e, - _overflowMenuVisible: t, - _toolbarButtons: n, - showDominantSpeakerName: a, - t: r, - _reactionsEnabled: i - } = this.props, o = "toolbox-content" + (e ? " toolbox-content-mobile" : ""), { - mainMenuButtons: s, - overflowMenuButtons: l - } = this._getVisibleButtons(); - return x().createElement("div", { - className: o - }, x().createElement("div", O7({ - className: "toolbox-content-wrapper", - onFocus: this._onTabIn - }, e ? {} : { - onMouseOut: this._onMouseOut, - onMouseOver: this._onMouseOver - }), a && x().createElement(TH, null), x().createElement("div", { - className: "toolbox-content-items" - }, s.map((e => { - let { - Content: t, - key: n - } = e, a = M7(e, ["Content", "key"]); - return t !== A7 && x().createElement(t, O7({}, a, { - key: n - })) - })), Boolean(l.length) && x().createElement(w7, { - ariaControls: "overflow-menu", - isOpen: t, - key: "overflow-menu", - onVisibilityChange: this._onSetOverflowVisible, - showMobileReactions: i && l.find((({ - key: e - }) => "raisehand" === e)) - }, x().createElement("ul", { - "aria-label": r("toolbar.accessibilityLabel.moreActionsMenu"), - className: "overflow-menu", - id: "overflow-menu", - onKeyDown: this._onEscKey, - role: "menu" - }, l.map(((e, t, n) => { - let { - group: a, - key: r, - Content: o - } = e, s = M7(e, ["group", "key", "Content"]); - const l = t > 0 && n[t - 1].group !== a; - return ("raisehand" !== r || !i) && x().createElement(E.Fragment, { - key: `f${r}` - }, l && x().createElement(A7, { - key: `hr${a}` - }), x().createElement(o, O7({}, s, { - key: r, - showLabel: !0 - }))) - })))), x().createElement(c7, { - customClass: "hangup-button", - key: "hangup-button", - visible: Xn("hangup", n) - })))) + preferredVideoQuality: n + } = t; + return { + ...e, + preferredVideoQuality: n + } } } - const N7 = Li(ze((function(e, t) { - const { - conference: n - } = e["features/base/conference"]; - let a = c.default.isDesktopSharingEnabled(); - const { - callStatsID: r, - disableProfile: i, - enableFeaturesBasedOnToken: o, - buttonsWithNotifyClick: s - } = e["features/base/config"], { - fullScreen: l, - overflowMenuVisible: u - } = e["features/toolbox"], d = Rh(e), p = Ko(e["features/base/tracks"]), { - clientWidth: h - } = e["features/base/responsive-ui"]; - let m; - o && a && (a = qe(e)["features/base/participants"].haveParticipantWithScreenSharingFeature, m = "dialog.shareYourScreenDisabled"); - let { - toolbarButtons: f - } = t; - const g = Qn(e); - return f = f ? f.filter((e => Xn(e, g))) : g, { - _backgroundType: e["features/virtual-background"].backgroundType, - _buttonsWithNotifyClick: s, - _chatOpen: e["features/chat"].isOpen, - _clientWidth: h, - _conference: n, - _desktopSharingEnabled: a, - _desktopSharingDisabledTooltipKey: m, - _dialog: Boolean(e["features/base/dialog"].component), - _feedbackConfigured: Boolean(r), - _fullScreen: l, - _isProfileDisabled: Boolean(i), - _isMobile: Sa(), - _isVpaasMeeting: Rj(e), - _localParticipantID: null == d ? void 0 : d.id, - _localVideo: p, - _overflowMenuVisible: u, - _participantsPaneOpen: jm(e), - _raisedHand: null == d ? void 0 : d.raisedHand, - _reactionsEnabled: _J(e), - _screenSharing: tW(e), - _tileViewEnabled: Ok(e), - _toolbarButtons: f, - _virtualSource: e["features/virtual-background"].virtualSource, - _visible: kH(e) - } - }))(I7)), - z7 = "good", - R7 = "nonOptimal", - L7 = "none", - F7 = "poor", - q7 = [.33, .05], - B7 = [.33, .1, .05], - U7 = [8, 20], - H7 = [60, 750]; - - function V7(e, t, n = !0) { - let a; - a = n ? function(e) { - return t > e - } : function(e) { - return t < e - }; - const r = (0, v.findIndex)(e, a); - return -1 === r ? e.length : r - } - const W7 = { - [F7]: { - connectionClass: "con-status--poor", - icon: function(e) { - return x().createElement("svg", uh({}, e, { - viewBox: "0 0 16 12", - fill: "none" - }), dh, ph, hh) - }, - connectionText: "prejoin.connection.poor" + return e + })); + const jte = Ve().getLogger("modules/API/API.js"); + let Mte = {}; + const Ite = xee(); + let Ote = !0, Nte = !0; + + function Rte(e) { + c.default.isDesktopSharingEnabled() && APP.store.dispatch(AY(e)) + } + + function zte(e) { + const { + clientX: t, + clientY: n, + movementX: a, + movementY: r, + offsetX: i, + offsetY: o, + pageX: s, + pageY: l, + x: c, + y: u, + screenX: d, + screenY: p + } = e; + return { + clientX: t, + clientY: n, + movementX: a, + movementY: r, + offsetX: i, + offsetY: o, + pageX: s, + pageY: l, + x: c, + y: u, + screenX: d, + screenY: p + } + } + const Lte = new class { + init() { + ("number" == typeof Rt || qB()) && (this._enabled = !0, Mte = { + "answer-knocking-participant": (e, t) => { + APP.store.dispatch(R0(e, t)) }, - [R7]: { - connectionClass: "con-status--non-optimal", - icon: function(e) { - return x().createElement("svg", mh({}, e, { - viewBox: "0 0 16 12", - fill: "none" - }), fh, gh, bh) - }, - connectionText: "prejoin.connection.nonOptimal" + "approve-video": e => { + tm(APP.store.getState()) && APP.store.dispatch($m(e)) }, - [z7]: { - connectionClass: "con-status--good", - icon: function(e) { - return x().createElement("svg", yh({}, e, { - viewBox: "0 0 16 12", - fill: "none" - }), vh, kh) - }, - connectionText: "prejoin.connection.good" - } - }, - Y7 = Li(ze((function(e) { - const { - connectionDetails: t, - connectionType: n - } = function(e) { + "ask-to-unmute": e => { + tm(APP.store.getState()) && APP.store.dispatch(Km(e)) + }, + "display-name": e => { + Da(Ht("display.name.changed")), APP.conference.changeLocalDisplayName(e) + }, + "mute-everyone": e => { + const t = e || Fi; + Da(Ht("muted-everyone")); + const n = Uh(APP.store.getState()), + a = []; + n && Qh(n) && a.push(n.id), APP.store.dispatch(FX(a, t)) + }, + "toggle-lobby": e => { + APP.store.dispatch(B0(e)) + }, + password: e => { const { - precallTestResults: t - } = e["features/prejoin"]; - return t ? t.mediaConnectivity ? function({ - fractionalLoss: e, - throughput: t - }) { - const n = V7(q7, e), - a = V7(B7, e), - r = V7(U7, t, !1), - i = V7(H7, t, !1); - let o = L7; - const s = []; - return 0 === r || 0 === n ? (o = F7, s.push("prejoin.connectionDetails.veryPoorConnection")) : 2 === r && 2 === i && 2 === n && 3 === a ? (o = z7, s.push("prejoin.connectionDetails.goodQuality")) : (o = R7, 1 === r ? s.push("prejoin.connectionDetails.audioLowNoVideo") : (1 === n ? s.push("prejoin.connectionDetails.audioClipping") : s.push("prejoin.connectionDetails.audioHighQuality"), 0 === i || 0 === a ? s.push("prejoin.connectionDetails.noVideo") : 1 === i ? s.push("prejoin.connectionDetails.videoLowQuality") : 1 === a ? s.push("prejoin.connectionDetails.videoFreezing") : 2 === a ? s.push("prejoin.connectionDetails.videoTearing") : s.push("prejoin.connectionDetails.videoHighQuality")), s.push("prejoin.connectionDetails.undetectable")), { - connectionType: o, - connectionDetails: s - } - }(t) : { - connectionType: F7, - connectionDetails: ["prejoin.connectionDetails.noMediaConnectivity"] + conference: t, + passwordRequired: n + } = APP.store.getState()["features/base/conference"]; + n ? (Da(Ht("submit.password")), APP.store.dispatch(xq(n, n.join, e))) : (Da(Ht("password.changed")), APP.store.dispatch(xq(t, t.lock, e))) + }, + "pin-participant": e => { + jte.debug("Pin participant command received"), Da(Ht("participant.pinned")), APP.store.dispatch(uS(e)) + }, + "proxy-connection-event": e => { + APP.conference.onProxyConnectionEvent(e) + }, + "reject-participant": (e, t) => { + if (!tm(APP.store.getState())) return; + const n = t === Bi ? Qm : Zm; + APP.store.dispatch(n(e)) + }, + "resize-large-video": (e, t) => { + jte.debug("Resize large video command received"), Da(Ht("largevideo.resized")), APP.store.dispatch(function(e, t) { + return (n, a) => { + if (a()["features/large-video"]) { + const n = X9.getLargeVideo(); + n.updateContainerSize(e, t), n.resize() + } + } + }(e, t)) + }, + "send-tones": function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + const { + duration: t, + tones: n, + pause: a + } = e; + APP.store.dispatch(wq(n, t, a)) + }, + "set-follow-me": e => { + jte.debug("Set follow me command received"), Da(Ht(e ? "follow.me.set" : "follow.me.unset")), APP.store.dispatch(Sq(e)) + }, + "set-large-video-participant": e => { + jte.debug("Set large video participant command received"), Da(Ht("largevideo.participant.set")), APP.store.dispatch(VW(e)) + }, + "set-participant-volume": (e, t) => { + APP.store.dispatch(LS(e, t)) + }, + subject: e => { + Da(Ht("subject.changed")), APP.store.dispatch(Cq(e)) + }, + "submit-feedback": e => { + Da(Ht("submit.feedback")), APP.conference.submitFeedback(e.score, e.message) + }, + "toggle-audio": () => { + Da(Ht("toggle-audio")), jte.log("Audio toggle: API command received"), APP.conference.toggleAudioMuted(!1) + }, + "toggle-video": () => { + Da(Ht("toggle-video")), jte.log("Video toggle: API command received"), APP.conference.toggleVideoMuted(!1) + }, + "toggle-film-strip": () => { + Da(Ht("film.strip.toggled")), APP.UI.toggleFilmstrip() + }, + "toggle-camera": () => { + mh(APP.store.getState()) && APP.store.dispatch(jh()) + }, + "toggle-camera-mirror": () => { + const e = APP.store.getState(), + { + localFlipX: t + } = e["features/base/settings"]; + APP.store.dispatch(hn({ + localFlipX: !t + })) + }, + "toggle-chat": () => { + Da(Ht("chat.toggled")), APP.store.dispatch(aV()) + }, + "toggle-moderation": (e, t) => { + if (!tm(APP.store.getState())) return; + const n = t === Bi ? af : nf, + a = t === Bi ? tf : ef; + e ? APP.store.dispatch(n()) : APP.store.dispatch(a()) + }, + "toggle-raise-hand": () => { + const e = Uh(APP.store.getState()); + if (!e) return; + const t = am(e); + Da(Ht("raise-hand.toggled")), APP.store.dispatch(dS(!t)) + }, + "toggle-share-audio": () => { + Da(Ht("audio.screen.sharing.toggled")), bY() ? APP.store.dispatch(CY()) : jte.error("Audio screen sharing is not supported by the current platform!") + }, + "toggle-share-screen": function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + Da(Ht("screen.sharing.toggled")), Rte(e.enable) + }, + "toggle-tile-view": () => { + Da(Ht("tile-view.toggled")), APP.store.dispatch(nE()) + }, + "set-tile-view": e => { + APP.store.dispatch(tE(e)) + }, + "video-hangup": function() { + let e = !(arguments.length > 0 && void 0 !== arguments[0]) || arguments[0]; + Da(Ht("video.hangup")), APP.conference.hangup(e) + }, + email: e => { + Da(Ht("email.changed")), APP.conference.changeLocalEmail(e) + }, + "avatar-url": e => { + Da(Ht("avatar.url.changed")), APP.conference.changeLocalAvatarUrl(e) + }, + "send-chat-message": function(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + if (jte.debug("Send chat message command received"), t) { + const e = Vh(APP.store.getState(), t); + if (!e) return void jte.error(`Participant with id ${t} not found!`); + APP.store.dispatch(eV(e)) + } else APP.store.dispatch(eV()); + APP.store.dispatch(XH(e, n)) + }, + "send-endpoint-text-message": (e, t) => { + jte.debug("Send endpoint message command received"); + try { + APP.conference.sendEndpointMessage(e, { + name: zt, + text: t + }) + } catch (e) { + jte.error("Failed sending endpoint text message", e) + } + }, + "toggle-e2ee": e => { + jte.debug("Toggle E2EE key command received"), APP.store.dispatch(l8(e)) + }, + "set-media-encryption-key": e => { + APP.store.dispatch(function(e) { + return { + type: s8, + keyInfo: e + } + }(JSON.parse(e))) + }, + "set-video-quality": e => { + jte.debug("Set video quality command received"), Da(Ht("set.video.quality")), APP.store.dispatch(function(e) { + return t => { + e < d7.LOW ? f7.error(`Invalid frame height for video quality - ${e}`) : t(g7(Math.min(e, d7.HIGH))) + } + }(e)) + }, + "start-share-video": e => { + jte.debug("Share video command received"), Da(Ht("share.video.start")), APP.store.dispatch(y6(e)) + }, + "stop-share-video": () => { + jte.debug("Share video command received"), Da(Ht("share.video.stop")), APP.store.dispatch(b6()) + }, + "start-recording": e => { + let { + mode: t, + dropboxToken: n, + shouldShare: a, + rtmpStreamKey: r, + rtmpBroadcastID: i, + youtubeStreamKey: o, + youtubeBroadcastID: s + } = e; + const l = APP.store.getState(), + c = vF(l); + if (!c) return void jte.error("Conference is not defined"); + if (n && !uU(l)) return void jte.error("Failed starting recording: dropbox is not enabled on this deployment"); + if (t === kt.mode.STREAM && !o && !r) return void jte.error("Failed starting recording: missing youtube or RTMP stream key"); + let u; + if (t === kt.mode.FILE) u = n ? { + mode: kt.mode.FILE, + appData: JSON.stringify({ + file_recording_metadata: { + upload_credentials: { + service_name: yU, + token: n + } + } + }) } : { - connectionType: L7, - connectionDetails: [] + mode: kt.mode.FILE, + appData: JSON.stringify({ + file_recording_metadata: { + share: a + } + }) + }; + else { + if (t !== kt.mode.STREAM) return void jte.error("Invalid recording mode provided"); + u = { + broadcastId: s || i, + mode: kt.mode.STREAM, + streamId: o || r + } } - }(e); - return { - connectionDetails: t, - connectionType: n + yY(APP.store.getState()) && APP.store.dispatch(OK(!0)), c.startRecording(u) + }, + "stop-recording": e => { + const t = APP.store.getState(), + n = vF(t); + if (!n) return void jte.error("Conference is not defined"); + if (![kt.mode.FILE, kt.mode.STREAM].includes(e)) return void jte.error("Invalid recording mode provided!"); + const a = kU(t, e); + a && a.id ? (APP.store.dispatch(OK(!1)), n.stopRecording(a.id)) : jte.error("No recording or streaming session found") + }, + "initiate-private-chat": e => { + const t = APP.store.getState(), + n = Vh(t, e); + if (n) { + const { + isOpen: e + } = t["features/chat"]; + e || APP.store.dispatch(aV()), APP.store.dispatch(nV(n)) + } else jte.error("No participant found for the given participantId") + }, + "cancel-private-chat": () => { + APP.store.dispatch(eV()) + }, + "kick-participant": e => { + APP.store.dispatch(Qw(e)) + }, + "overwrite-config": e => { + const t = Un("config", e); + APP.store.dispatch(Xn(t)) + }, + "toggle-virtual-background": () => { + APP.store.dispatch(WI(q7)) } - }))((function({ - connectionDetails: e, - t, - connectionType: n - }) { - if (n === L7) return null; + }, Ite.on("event", (e => { + let { + data: t, + name: n + } = e; + return !(!n || !Mte[n] || (Mte[n](...t), 0)) + })), Ite.on("request", ((e, t) => { const { - connectionClass: a, - icon: r, - connectionText: i - } = W7[n], [o, s] = (0, E.useState)(!1), l = o ? "con-status-arrow con-status-arrow--up" : "con-status-arrow", c = e.map(t).join(" "), u = o ? "con-status-details-visible" : "con-status-details-hidden", d = (0, E.useCallback)((e => { - e.preventDefault(), s(!o) - }), [o, s]), p = (0, E.useCallback)((e => { - !s || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), s(!o)) - }), [o, s]); - return x().createElement("div", { - className: "con-status" - }, x().createElement("div", { - "aria-level": 1, - className: "con-status-header", - role: "heading" - }, x().createElement("div", { - className: `con-status-circle ${a}` - }, x().createElement(qs, { - size: 16, - src: r - })), x().createElement("span", { - "aria-hidden": !o, - className: "con-status-text", - id: "connection-status-description" - }, t(i)), x().createElement(qs, { - ariaDescribedBy: "connection-status-description", - ariaPressed: o, - className: l, - onClick: d, - onKeyPress: p, - role: "button", - size: 24, - src: Qs, - tabIndex: 0 - })), x().createElement("div", { - "aria-level": "2", - className: `con-status-details ${u}`, - role: "heading" - }, c)) - }))), - G7 = ze((function(e, t) { - const n = fa(e), - { - id: a - } = Rh(e); - return { - _participantId: a, - flipVideo: e["features/base/settings"].localFlipX, - name: n, - videoMuted: t.videoTrack ? t.videoMuted : e["features/base/media"].video.muted, - videoTrack: t.videoTrack || (Ko(e["features/base/tracks"]) || {}).jitsiTrack - } - }))((function(e) { + dispatch: n, + getState: a + } = APP.store; + if (tZ(n, a, e, t)) return !0; const { - _participantId: t, - flipVideo: n, - name: a, - videoMuted: r, - videoTrack: i - } = e, o = n ? "flipVideoX" : ""; - return x().createElement("div", { - id: "preview" - }, !r && i ? x().createElement(bf, { - className: o, - videoTrack: { - jitsiTrack: i + name: r + } = e; + switch (r) { + case "capture-largevideo-screenshot": + APP.store.dispatch(((e, t) => { + var n; + const a = t(), + r = a["features/large-video"], + i = Promise.resolve(); + if (!r) return i; + const o = oh(a["features/base/tracks"], Bi, r.participantId); + if (!o || !o.jitsiTrack) return i; + const s = o.jitsiTrack.getOriginalStream(); + if (!s) return i; + const l = document.getElementById("largeVideo"); + if (!l) return i; + const [c] = s.getVideoTracks(), { + height: u, + width: d + } = null !== (n = c.getSettings()) && void 0 !== n ? n : c.getConstraints(), p = document.createElement("canvas"), h = p.getContext("2d"); + p.style.display = "none", p.height = parseInt(u, 10), p.width = parseInt(d, 10), h.drawImage(l, 0, 0); + const m = p.toDataURL("image/png", 1); + return h.clearRect(0, 0, p.width, p.height), p.remove(), Promise.resolve(m) + })).then((e => { + let n; + e || (n = new Error("No large video found!")), t({ + error: n, + dataURL: e + }) + })); + break; + case "deployment-info": + t(APP.store.getState()["features/base/config"].deploymentInfo); + break; + case "invite": { + const { + invitees: n + } = e; + if (!Array.isArray(n) || 0 === n.length) { + t({ + error: new Error("Unexpected format of invitees") + }); + break + } + APP.store.dispatch(YY(n, !0)).then((e => { + let n, a; + e.length ? n = new Error("One or more invites failed!") : a = !0, t({ + error: n, + result: a + }) + })); + break } - }) : x().createElement(ZG, { - className: "premeeting-screen-avatar", - displayName: a, - participantId: t, - size: 200 - })) - })); - class K7 extends E.PureComponent { - render() { - const { - _buttons: e, - _premeetingBackground: t, - children: n, - className: a, - showDeviceStatus: r, - skipPrejoinButton: i, - title: o, - videoMuted: s, - videoTrack: l - } = this.props, c = `premeeting-screen ${a||""}`, u = t ? { - background: t, - backgroundPosition: "center", - backgroundSize: "cover" - } : {}; - return x().createElement("div", { - className: c - }, x().createElement("div", { - style: u - }, x().createElement("div", { - className: "content" - }, x().createElement(Y7, null), x().createElement("div", { - className: "content-controls" - }, x().createElement("h1", { - className: "title" - }, o), n, e.length && x().createElement(N7, { - toolbarButtons: e - }), i, r && x().createElement(SV, null)))), x().createElement(G7, { - videoMuted: s, - videoTrack: l - })) - } - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(K7, "defaultProps", { - showCopyUrlButton: !0, - showToolbox: !0 - }); - const $7 = ze((function(e, t) { - const n = e["features/base/config"].hiddenPremeetingButtons || [], - a = t.thirdParty ? Un : Bn, - { - premeetingBackground: r - } = e["features/dynamic-branding"]; - return { - _buttons: a.filter((e => !n.includes(e))), - _premeetingBackground: r + case "is-audio-muted": + t(APP.conference.isLocalAudioMuted()); + break; + case "is-moderation-on": { + const { + mediaType: n + } = e; + t(pm(n || Fi, APP.store.getState())); + break + } + case "is-participant-force-muted": { + const n = APP.store.getState(), + { + participantId: a, + mediaType: r + } = e, + i = r || Fi, + o = Vh(n, a); + t(Mm(o, i, n)); + break + } + case "is-video-muted": + t(APP.conference.isLocalVideoMuted()); + break; + case "is-audio-available": + t(Ote); + break; + case "is-video-available": + t(Nte); + break; + case "is-sharing-screen": + t(Boolean(APP.conference.isSharingScreen)); + break; + case "get-content-sharing-participants": { + const e = a()["features/base/tracks"].filter((e => "desktop" === e.videoType)).map((e => e.participantId)); + t({ + sharingParticipantIds: e + }); + break + } + case "get-livestream-url": { + const e = APP.store.getState(); + let n; + if (vF(e)) { + const t = kU(e, kt.mode.STREAM); + n = null == t ? void 0 : t.liveStreamViewURL + } else jte.error("Conference is not defined"); + t({ + livestreamUrl: n + }); + break + } + case "get-custom-avatar-backgrounds": + t({ + avatarBackgrounds: APP.store.getState()["features/dynamic-branding"].avatarBackgrounds + }); + break; + default: + return !1 } - }))(K7), - J7 = function({ - children: e, - className: t, - number: n, - onClick: a - }) { - const r = t ? `prejoin-dialog-label ${t}` : "prejoin-dialog-label"; - return x().createElement("div", { - className: r, - onClick: a - }, n && x().createElement("div", { - className: "prejoin-dialog-label-num" - }, n), x().createElement("span", null, e)) - }, - Z7 = Li((function(e) { - const { - number: t, - onClose: n, - status: a, - t: r - } = e; - return x().createElement("div", { - className: "prejoin-dialog-calling" - }, x().createElement("div", { - className: "prejoin-dialog-calling-header" - }, x().createElement(qs, { - className: "prejoin-dialog-icon", - onClick: n, - role: "button", - size: 24, - src: Ul - })), x().createElement(J7, { - className: "prejoin-dialog-calling-label" - }, r(a)), x().createElement(ZG, { - size: 72 - }), x().createElement("div", { - className: "prejoin-dialog-calling-number" - }, t)) - })), - Q7 = [{ - name: "Afghanistan", - dialCode: "93", - code: "af" - }, { - name: "Aland Islands", - dialCode: "358", - code: "ax" - }, { - name: "Albania", - dialCode: "355", - code: "al" - }, { - name: "Algeria", - dialCode: "213", - code: "dz" - }, { - name: "AmericanSamoa", - dialCode: "1684", - code: "as" - }, { - name: "Andorra", - dialCode: "376", - code: "ad" - }, { - name: "Angola", - dialCode: "244", - code: "ao" - }, { - name: "Anguilla", - dialCode: "1264", - code: "ai" - }, { - name: "Antarctica", - dialCode: "672", - code: "aq" - }, { - name: "Antigua and Barbuda", - dialCode: "1268", - code: "ag" - }, { - name: "Argentina", - dialCode: "54", - code: "ar" - }, { - name: "Armenia", - dialCode: "374", - code: "am" - }, { - name: "Aruba", - dialCode: "297", - code: "aw" - }, { - name: "Australia", - dialCode: "61", - code: "au" - }, { - name: "Austria", - dialCode: "43", - code: "at" - }, { - name: "Azerbaijan", - dialCode: "994", - code: "az" - }, { - name: "Bahamas", - dialCode: "1242", - code: "bs" - }, { - name: "Bahrain", - dialCode: "973", - code: "bh" - }, { - name: "Bangladesh", - dialCode: "880", - code: "bd" - }, { - name: "Barbados", - dialCode: "1246", - code: "bb" - }, { - name: "Belarus", - dialCode: "375", - code: "by" - }, { - name: "Belgium", - dialCode: "32", - code: "be" - }, { - name: "Belize", - dialCode: "501", - code: "bz" - }, { - name: "Benin", - dialCode: "229", - code: "bj" - }, { - name: "Bermuda", - dialCode: "1441", - code: "bm" - }, { - name: "Bhutan", - dialCode: "975", - code: "bt" - }, { - name: "Bolivia, Plurinational State of", - dialCode: "591", - code: "bo" - }, { - name: "Bosnia and Herzegovina", - dialCode: "387", - code: "ba" - }, { - name: "Botswana", - dialCode: "267", - code: "bw" - }, { - name: "Brazil", - dialCode: "55", - code: "br" - }, { - name: "British Indian Ocean Territory", - dialCode: "246", - code: "io" - }, { - name: "Brunei Darussalam", - dialCode: "673", - code: "bn" - }, { - name: "Bulgaria", - dialCode: "359", - code: "bg" - }, { - name: "Burkina Faso", - dialCode: "226", - code: "bf" - }, { - name: "Burundi", - dialCode: "257", - code: "bi" - }, { - name: "Cambodia", - dialCode: "855", - code: "kh" - }, { - name: "Cameroon", - dialCode: "237", - code: "cm" - }, { - name: "Canada", - dialCode: "1", - code: "ca" - }, { - name: "Cape Verde", - dialCode: "238", - code: "cv" - }, { - name: "Cayman Islands", - dialCode: " 345", - code: "ky" - }, { - name: "Central African Republic", - dialCode: "236", - code: "cf" - }, { - name: "Chad", - dialCode: "235", - code: "td" - }, { - name: "Chile", - dialCode: "56", - code: "cl" - }, { - name: "China", - dialCode: "86", - code: "cn" - }, { - name: "Christmas Island", - dialCode: "61", - code: "cx" - }, { - name: "Cocos (Keeling) Islands", - dialCode: "61", - code: "cc" - }, { - name: "Colombia", - dialCode: "57", - code: "co" - }, { - name: "Comoros", - dialCode: "269", - code: "km" - }, { - name: "Congo", - dialCode: "242", - code: "cg" - }, { - name: "Congo, The Democratic Republic of the Congo", - dialCode: "243", - code: "cd" - }, { - name: "Cook Islands", - dialCode: "682", - code: "ck" - }, { - name: "Costa Rica", - dialCode: "506", - code: "cr" - }, { - name: "Cote d'Ivoire", - dialCode: "225", - code: "ci" - }, { - name: "Croatia", - dialCode: "385", - code: "hr" - }, { - name: "Cuba", - dialCode: "53", - code: "cu" - }, { - name: "Cyprus", - dialCode: "357", - code: "cy" - }, { - name: "Czech Republic", - dialCode: "420", - code: "cz" - }, { - name: "Denmark", - dialCode: "45", - code: "dk" - }, { - name: "Djibouti", - dialCode: "253", - code: "dj" - }, { - name: "Dominica", - dialCode: "1767", - code: "dm" - }, { - name: "Dominican Republic", - dialCode: "1849", - code: "do" - }, { - name: "Ecuador", - dialCode: "593", - code: "ec" - }, { - name: "Egypt", - dialCode: "20", - code: "eg" - }, { - name: "El Salvador", - dialCode: "503", - code: "sv" - }, { - name: "Equatorial Guinea", - dialCode: "240", - code: "gq" - }, { - name: "Eritrea", - dialCode: "291", - code: "er" - }, { - name: "Estonia", - dialCode: "372", - code: "ee" - }, { - name: "Ethiopia", - dialCode: "251", - code: "et" - }, { - name: "Falkland Islands (Malvinas)", - dialCode: "500", - code: "fk" - }, { - name: "Faroe Islands", - dialCode: "298", - code: "fo" - }, { - name: "Fiji", - dialCode: "679", - code: "fj" - }, { - name: "Finland", - dialCode: "358", - code: "fi" - }, { - name: "France", - dialCode: "33", - code: "fr" - }, { - name: "French Guiana", - dialCode: "594", - code: "gf" - }, { - name: "French Polynesia", - dialCode: "689", - code: "pf" - }, { - name: "Gabon", - dialCode: "241", - code: "ga" - }, { - name: "Gambia", - dialCode: "220", - code: "gm" - }, { - name: "Georgia", - dialCode: "995", - code: "ge" - }, { - name: "Germany", - dialCode: "49", - code: "de" - }, { - name: "Ghana", - dialCode: "233", - code: "gh" - }, { - name: "Gibraltar", - dialCode: "350", - code: "gi" - }, { - name: "Greece", - dialCode: "30", - code: "gr" - }, { - name: "Greenland", - dialCode: "299", - code: "gl" - }, { - name: "Grenada", - dialCode: "1473", - code: "gd" - }, { - name: "Guadeloupe", - dialCode: "590", - code: "gp" - }, { - name: "Guam", - dialCode: "1671", - code: "gu" - }, { - name: "Guatemala", - dialCode: "502", - code: "gt" - }, { - name: "Guernsey", - dialCode: "44", - code: "gg" - }, { - name: "Guinea", - dialCode: "224", - code: "gn" - }, { - name: "Guinea-Bissau", - dialCode: "245", - code: "gw" - }, { - name: "Guyana", - dialCode: "595", - code: "gy" - }, { - name: "Haiti", - dialCode: "509", - code: "ht" - }, { - name: "Holy See (Vatican City State)", - dialCode: "379", - code: "va" - }, { - name: "Honduras", - dialCode: "504", - code: "hn" - }, { - name: "Hong Kong", - dialCode: "852", - code: "hk" - }, { - name: "Hungary", - dialCode: "36", - code: "hu" - }, { - name: "Iceland", - dialCode: "354", - code: "is" - }, { - name: "India", - dialCode: "91", - code: "in" - }, { - name: "Indonesia", - dialCode: "62", - code: "id" - }, { - name: "Iran, Islamic Republic of Persian Gulf", - dialCode: "98", - code: "ir" - }, { - name: "Iraq", - dialCode: "964", - code: "iq" - }, { - name: "Ireland", - dialCode: "353", - code: "ie" - }, { - name: "Isle of Man", - dialCode: "44", - code: "im" - }, { - name: "Israel", - dialCode: "972", - code: "il" - }, { - name: "Italy", - dialCode: "39", - code: "it" - }, { - name: "Jamaica", - dialCode: "1876", - code: "jm" - }, { - name: "Japan", - dialCode: "81", - code: "jp" - }, { - name: "Jersey", - dialCode: "44", - code: "je" - }, { - name: "Jordan", - dialCode: "962", - code: "jo" - }, { - name: "Kazakhstan", - dialCode: "77", - code: "kz" - }, { - name: "Kenya", - dialCode: "254", - code: "ke" - }, { - name: "Kiribati", - dialCode: "686", - code: "ki" - }, { - name: "Korea, Democratic People's Republic of Korea", - dialCode: "850", - code: "kp" - }, { - name: "Korea, Republic of South Korea", - dialCode: "82", - code: "kr" - }, { - name: "Kuwait", - dialCode: "965", - code: "kw" - }, { - name: "Kyrgyzstan", - dialCode: "996", - code: "kg" - }, { - name: "Laos", - dialCode: "856", - code: "la" - }, { - name: "Latvia", - dialCode: "371", - code: "lv" - }, { - name: "Lebanon", - dialCode: "961", - code: "lb" - }, { - name: "Lesotho", - dialCode: "266", - code: "ls" - }, { - name: "Liberia", - dialCode: "231", - code: "lr" - }, { - name: "Libyan Arab Jamahiriya", - dialCode: "218", - code: "ly" - }, { - name: "Liechtenstein", - dialCode: "423", - code: "li" - }, { - name: "Lithuania", - dialCode: "370", - code: "lt" - }, { - name: "Luxembourg", - dialCode: "352", - code: "lu" - }, { - name: "Macao", - dialCode: "853", - code: "mo" - }, { - name: "Macedonia", - dialCode: "389", - code: "mk" - }, { - name: "Madagascar", - dialCode: "261", - code: "mg" - }, { - name: "Malawi", - dialCode: "265", - code: "mw" - }, { - name: "Malaysia", - dialCode: "60", - code: "my" - }, { - name: "Maldives", - dialCode: "960", - code: "mv" - }, { - name: "Mali", - dialCode: "223", - code: "ml" - }, { - name: "Malta", - dialCode: "356", - code: "mt" - }, { - name: "Marshall Islands", - dialCode: "692", - code: "mh" - }, { - name: "Martinique", - dialCode: "596", - code: "mq" - }, { - name: "Mauritania", - dialCode: "222", - code: "mr" - }, { - name: "Mauritius", - dialCode: "230", - code: "mu" - }, { - name: "Mayotte", - dialCode: "262", - code: "yt" - }, { - name: "Mexico", - dialCode: "52", - code: "mx" - }, { - name: "Micronesia, Federated States of Micronesia", - dialCode: "691", - code: "fm" - }, { - name: "Moldova", - dialCode: "373", - code: "md" - }, { - name: "Monaco", - dialCode: "377", - code: "mc" - }, { - name: "Mongolia", - dialCode: "976", - code: "mn" - }, { - name: "Montenegro", - dialCode: "382", - code: "me" - }, { - name: "Montserrat", - dialCode: "1664", - code: "ms" - }, { - name: "Morocco", - dialCode: "212", - code: "ma" - }, { - name: "Mozambique", - dialCode: "258", - code: "mz" - }, { - name: "Myanmar", - dialCode: "95", - code: "mm" - }, { - name: "Namibia", - dialCode: "264", - code: "na" - }, { - name: "Nauru", - dialCode: "674", - code: "nr" - }, { - name: "Nepal", - dialCode: "977", - code: "np" - }, { - name: "Netherlands", - dialCode: "31", - code: "nl" - }, { - name: "Netherlands Antilles", - dialCode: "599", - code: "an" - }, { - name: "New Caledonia", - dialCode: "687", - code: "nc" - }, { - name: "New Zealand", - dialCode: "64", - code: "nz" - }, { - name: "Nicaragua", - dialCode: "505", - code: "ni" - }, { - name: "Niger", - dialCode: "227", - code: "ne" - }, { - name: "Nigeria", - dialCode: "234", - code: "ng" - }, { - name: "Niue", - dialCode: "683", - code: "nu" - }, { - name: "Norfolk Island", - dialCode: "672", - code: "nf" - }, { - name: "Northern Mariana Islands", - dialCode: "1670", - code: "mp" - }, { - name: "Norway", - dialCode: "47", - code: "no" - }, { - name: "Oman", - dialCode: "968", - code: "om" - }, { - name: "Pakistan", - dialCode: "92", - code: "pk" - }, { - name: "Palau", - dialCode: "680", - code: "pw" - }, { - name: "Palestinian Territory, Occupied", - dialCode: "970", - code: "ps" - }, { - name: "Panama", - dialCode: "507", - code: "pa" - }, { - name: "Papua New Guinea", - dialCode: "675", - code: "pg" - }, { - name: "Paraguay", - dialCode: "595", - code: "py" - }, { - name: "Peru", - dialCode: "51", - code: "pe" - }, { - name: "Philippines", - dialCode: "63", - code: "ph" - }, { - name: "Pitcairn", - dialCode: "872", - code: "pn" - }, { - name: "Poland", - dialCode: "48", - code: "pl" - }, { - name: "Portugal", - dialCode: "351", - code: "pt" - }, { - name: "Puerto Rico", - dialCode: "1939", - code: "pr" - }, { - name: "Qatar", - dialCode: "974", - code: "qa" - }, { - name: "Romania", - dialCode: "40", - code: "ro" - }, { - name: "Russia", - dialCode: "7", - code: "ru" - }, { - name: "Rwanda", - dialCode: "250", - code: "rw" - }, { - name: "Reunion", - dialCode: "262", - code: "re" - }, { - name: "Saint Barthelemy", - dialCode: "590", - code: "bl" - }, { - name: "Saint Helena, Ascension and Tristan Da Cunha", - dialCode: "290", - code: "sh" - }, { - name: "Saint Kitts and Nevis", - dialCode: "1869", - code: "kn" - }, { - name: "Saint Lucia", - dialCode: "1758", - code: "lc" - }, { - name: "Saint Martin", - dialCode: "590", - code: "mf" - }, { - name: "Saint Pierre and Miquelon", - dialCode: "508", - code: "pm" - }, { - name: "Saint Vincent and the Grenadines", - dialCode: "1784", - code: "vc" - }, { - name: "Samoa", - dialCode: "685", - code: "ws" - }, { - name: "San Marino", - dialCode: "378", - code: "sm" - }, { - name: "Sao Tome and Principe", - dialCode: "239", - code: "st" - }, { - name: "Saudi Arabia", - dialCode: "966", - code: "sa" - }, { - name: "Senegal", - dialCode: "221", - code: "sn" - }, { - name: "Serbia", - dialCode: "381", - code: "rs" - }, { - name: "Seychelles", - dialCode: "248", - code: "sc" - }, { - name: "Sierra Leone", - dialCode: "232", - code: "sl" - }, { - name: "Singapore", - dialCode: "65", - code: "sg" - }, { - name: "Slovakia", - dialCode: "421", - code: "sk" - }, { - name: "Slovenia", - dialCode: "386", - code: "si" - }, { - name: "Solomon Islands", - dialCode: "677", - code: "sb" - }, { - name: "Somalia", - dialCode: "252", - code: "so" - }, { - name: "South Africa", - dialCode: "27", - code: "za" - }, { - name: "South Sudan", - dialCode: "211", - code: "ss" - }, { - name: "South Georgia and the South Sandwich Islands", - dialCode: "500", - code: "gs" - }, { - name: "Spain", - dialCode: "34", - code: "es" - }, { - name: "Sri Lanka", - dialCode: "94", - code: "lk" - }, { - name: "Sudan", - dialCode: "249", - code: "sd" - }, { - name: "Suriname", - dialCode: "597", - code: "sr" - }, { - name: "Svalbard and Jan Mayen", - dialCode: "47", - code: "sj" - }, { - name: "Swaziland", - dialCode: "268", - code: "sz" - }, { - name: "Sweden", - dialCode: "46", - code: "se" - }, { - name: "Switzerland", - dialCode: "41", - code: "ch" - }, { - name: "Syrian Arab Republic", - dialCode: "963", - code: "sy" - }, { - name: "Taiwan", - dialCode: "886", - code: "tw" - }, { - name: "Tajikistan", - dialCode: "992", - code: "tj" - }, { - name: "Tanzania, United Republic of Tanzania", - dialCode: "255", - code: "tz" - }, { - name: "Thailand", - dialCode: "66", - code: "th" - }, { - name: "Timor-Leste", - dialCode: "670", - code: "tl" - }, { - name: "Togo", - dialCode: "228", - code: "tg" - }, { - name: "Tokelau", - dialCode: "690", - code: "tk" - }, { - name: "Tonga", - dialCode: "676", - code: "to" - }, { - name: "Trinidad and Tobago", - dialCode: "1868", - code: "tt" - }, { - name: "Tunisia", - dialCode: "216", - code: "tn" - }, { - name: "Turkey", - dialCode: "90", - code: "tr" - }, { - name: "Turkmenistan", - dialCode: "993", - code: "tm" - }, { - name: "Turks and Caicos Islands", - dialCode: "1649", - code: "tc" - }, { - name: "Tuvalu", - dialCode: "688", - code: "tv" - }, { - name: "Uganda", - dialCode: "256", - code: "ug" - }, { - name: "Ukraine", - dialCode: "380", - code: "ua" - }, { - name: "United Arab Emirates", - dialCode: "971", - code: "ae" - }, { - name: "United Kingdom", - dialCode: "44", - code: "gb" - }, { - name: "United States", - dialCode: "1", - code: "us" - }, { - name: "Uruguay", - dialCode: "598", - code: "uy" - }, { - name: "Uzbekistan", - dialCode: "998", - code: "uz" - }, { - name: "Vanuatu", - dialCode: "678", - code: "vu" - }, { - name: "Venezuela, Bolivarian Republic of Venezuela", - dialCode: "58", - code: "ve" - }, { - name: "Vietnam", - dialCode: "84", - code: "vn" - }, { - name: "Virgin Islands, British", - dialCode: "1284", - code: "vg" - }, { - name: "Virgin Islands, U.S.", - dialCode: "1340", - code: "vi" - }, { - name: "Wallis and Futuna", - dialCode: "681", - code: "wf" - }, { - name: "Yemen", - dialCode: "967", - code: "ye" - }, { - name: "Zambia", - dialCode: "260", - code: "zm" - }, { - name: "Zimbabwe", - dialCode: "263", - code: "zw" - }], - X7 = Q7.reduce(((e, t) => (e[t.dialCode] = t, e)), {}), - e9 = Q7.reduce(((e, t) => (e[t.dialCode] = t.code, e)), {}), - t9 = Li((function(e) { - const { - number: t, - onBack: n, - onPrimaryButtonClick: a, - onSmallTextClick: r, - onTextButtonClick: i, - passCode: o, - t: s - } = e, l = `prejoin-dialog-flag iti-flag ${function(e){const t=e.replace(/[+.\s]/g,"");for(let e=4;e>0;e--){const n=t.slice(0,e);if(e9[n])return e9[n]}return""}(t)}`; - return x().createElement("div", { - className: "prejoin-dialog-dialin" - }, x().createElement("div", { - className: "prejoin-dialog-dialin-header" - }, x().createElement(qs, { - className: "prejoin-dialog-icon prejoin-dialog-dialin-icon", - onClick: n, - role: "button", - size: 24, - src: rl - }), x().createElement("div", { - className: "prejoin-dialog-title" - }, s("prejoin.dialInMeeting"))), x().createElement(J7, { - number: 1 - }, s("prejoin.dialInPin")), x().createElement("div", { - className: "prejoin-dialog-dialin-num-container" - }, x().createElement("div", { - className: "prejoin-dialog-dialin-num" - }, x().createElement("div", { - className: l - }), x().createElement("span", null, t)), x().createElement("div", { - className: "prejoin-dialog-dialin-num" - }, o)), x().createElement("div", null, x().createElement("span", { - className: "prejoin-dialog-dialin-link", - onClick: r - }, s("prejoin.viewAllNumbers"))), x().createElement("div", { - className: "prejoin-dialog-delimiter" - }), x().createElement(J7, { - className: "prejoin-dialog-dialin-spaced-label", - number: 2 - }, s("prejoin.connectedWithAudioQ")), x().createElement("div", { - className: "prejoin-dialog-dialin-btns" - }, x().createElement(vV, { - className: "prejoin-dialog-btn", - onClick: a, - type: "primary" - }, s("prejoin.joinMeeting")), x().createElement(vV, { - className: "prejoin-dialog-btn", - onClick: i, - type: "text" - }, s("dialog.Cancel")))) - })); - class n9 extends E.PureComponent { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this) - } - render() { - const { - country: { - code: e, - dialCode: t, - name: n - } - } = this.props; - return x().createElement("div", { - className: "cpick-dropdown-entry", - onClick: this._onClick - }, x().createElement("div", { - className: `prejoin-dialog-flag iti-flag ${e}` - }), x().createElement("div", { - className: "cpick-dropdown-entry-text" - }, `${n} (+${t})`)) - } - _onClick() { - this.props.onEntryClick(this.props.country) - } - } - const a9 = n9, - r9 = function({ - onEntryClick: e - }) { - return x().createElement("div", { - className: "cpick-dropdown" - }, Q7.map((t => x().createElement(a9, { - country: t, - key: `${t.code}`, - onEntryClick: e - })))) - }, - i9 = function({ - country: { - code: e, - dialCode: t - }, - onClick: n - }) { - const a = (0, E.useCallback)((e => { - !n || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), n()) - }), [n]); - return x().createElement("div", { - className: "cpick-selector", - onClick: n, - onKeyPress: a - }, x().createElement("div", { - className: `prejoin-dialog-flag iti-flag ${e}` - }), x().createElement("span", null, `+${t}`), x().createElement(qs, { - className: "cpick-icon", - size: 16, - src: $s - })) - }, - o9 = /^(00)|\+/; - class s9 extends E.PureComponent { - constructor(e) { - super(e), this.state = { - isOpen: !1, - value: "" - }, this.inputRef = x().createRef(), this._onChange = this._onChange.bind(this), this._onDropdownClose = this._onDropdownClose.bind(this), this._onCountrySelectorClick = this._onCountrySelectorClick.bind(this), this._onEntryClick = this._onEntryClick.bind(this), this._onKeyPress = this._onKeyPress.bind(this) - } - componentDidMount() { - this.inputRef.current.focus() - } - render() { - const { - dialOutCountry: e, - dialOutNumber: t - } = this.props, { - isOpen: n - } = this.state, { - inputRef: a, - _onChange: r, - _onCountrySelectorClick: i, - _onDropdownClose: o, - _onKeyPress: s, - _onEntryClick: l - } = this; - return x().createElement("div", { - className: "cpick-container" - }, x().createElement(eE, { - content: x().createElement(r9, { - onEntryClick: l - }), - isOpen: n, - onClose: o - }, x().createElement("div", { - className: "cpick" - }, x().createElement(i9, { - country: e, - onClick: i - }), x().createElement("input", { - className: "cpick-input", - onChange: r, - onKeyPress: s, - ref: a, - value: t - })))) - } - _onChange({ - target: { - value: e - } - }) { - if (o9.test(e)) { - const n = e.replace(o9, ""); - if (n.length >= 4) { - const e = X7[(t = n).slice(0, 4)] || X7[t.slice(0, 3)] || X7[t.slice(0, 2)] || X7[t.slice(0, 1)] || null; - if (e) { - const t = n.replace(e.dialCode, ""); - return this.props.setDialOutCountry(e), void this.props.setDialOutNumber(t) - } - } - } - var t; - this.props.setDialOutNumber(e) - } - _onCountrySelectorClick() { - this.setState({ - isOpen: !this.setState.isOpen - }) - } - _onDropdownClose() { - this.setState({ - isOpen: !1 - }) - } - _onEntryClick(e) { - this.props.setDialOutCountry(e), this._onDropdownClose() - } - _onKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.onSubmit()) - } - } - const l9 = ze((function(e) { - return { - dialOutCountry: XR(e), - dialOutNumber: eL(e) - } - }), { - setDialOutCountry: function(e) { - return { - type: qR, - value: e - } - }, - setDialOutNumber: function(e) { - return { - type: BR, - value: e - } - } - })(s9), - c9 = Li((function(e) { - const { - onClose: t, - onTextButtonClick: n, - onSubmit: a, - t: r - } = e; - return x().createElement("div", { - className: "prejoin-dialog-callout" - }, x().createElement("div", { - className: "prejoin-dialog-callout-header" - }, x().createElement("div", { - className: "prejoin-dialog-title" - }, r("prejoin.startWithPhone")), x().createElement(qs, { - className: "prejoin-dialog-icon", - onClick: t, - role: "button", - size: 24, - src: Ul - })), x().createElement(J7, null, r("prejoin.callMeAtNumber")), x().createElement("div", { - className: "prejoin-dialog-callout-picker" - }, x().createElement(l9, { - onSubmit: a - })), x().createElement(vV, { - className: "prejoin-dialog-btn", - onClick: a, - type: "primary" - }, r("prejoin.callMe")), x().createElement("div", { - className: "prejoin-dialog-delimiter-container" - }, x().createElement("div", { - className: "prejoin-dialog-delimiter" - }), x().createElement("div", { - className: "prejoin-dialog-delimiter-txt-container" - }, x().createElement("span", { - className: "prejoin-dialog-delimiter-txt" - }, r("prejoin.or")))), x().createElement("div", { - className: "prejoin-dialog-dialin-container" - }, x().createElement(vV, { - className: "prejoin-dialog-btn", - onClick: n, - type: "text" - }, r("prejoin.iWantToDialIn")))) - })); - class u9 extends E.PureComponent { - constructor(e) { - super(e), this.state = { - isCalling: !1, - showDialOut: !0, - showDialIn: !1 - }, this._dialOut = this._dialOut.bind(this), this._showDialInDialog = this._showDialInDialog.bind(this), this._showDialOutDialog = this._showDialOutDialog.bind(this) - } - _dialOut() { - const { - dialOut: e, - joinConferenceWithoutAudio: t - } = this.props; - this.setState({ - isCalling: !0, - showDialOut: !1, - showDialIn: !1 - }), e(t, this._showDialOutDialog) - } - _showDialInDialog() { - this.setState({ - isCalling: !1, - showDialOut: !1, - showDialIn: !0 - }) - } - _showDialOutDialog() { - this.setState({ - isCalling: !1, - showDialOut: !0, - showDialIn: !1 - }) - } - componentDidMount() { - this.props.fetchConferenceDetails() - } - render() { - const { - dialOutStatus: e, - dialInNumber: t, - dialOutNumber: n, - joinConferenceWithoutAudio: a, - passCode: r, - onClose: i, - openDialInPage: o - } = this.props, { - _dialOut: s, - _showDialInDialog: l, - _showDialOutDialog: c - } = this, { - isCalling: u, - showDialOut: d, - showDialIn: p - } = this.state, h = u ? "prejoin-dialog prejoin-dialog--small" : "prejoin-dialog"; - return x().createElement("div", { - className: "prejoin-dialog-container" - }, x().createElement("div", { - className: h - }, d && x().createElement(c9, { - onClose: i, - onSubmit: s, - onTextButtonClick: l - }), p && x().createElement(t9, { - number: t, - onBack: c, - onPrimaryButtonClick: a, - onSmallTextClick: o, - onTextButtonClick: i, - passCode: r - }), u && x().createElement(Z7, { - number: n, - onClose: i, - status: e - }))) - } - } - const d9 = { - dialOut: function(e, t) { - return async function(n, a) { - const r = a(), - i = Wz().v4(), - o = Jn(r), - s = function(e) { - return `${vI(e)}@${e["features/base/config"].hosts.muc}` - }(r), - l = nL(r), - c = { - conferenceUrl: s, - countryCode: XR(r).code.toUpperCase(), - name: l, - phoneNumber: l - }; - try { - await async function(e, t, n) { - const a = await fetch(e, { - method: "POST", - headers: { - "Content-Type": "application/json", - "request-id": n - }, - body: JSON.stringify(t) - }), - r = await a.json(); - return a.ok ? r : Promise.reject(r) - }(o, c, i), n(cL(i, e, t)) - } catch (e) { - const a = { - titleKey: "prejoin.errorDialOut", - titleArguments: void 0 - }; - e.status && ("validation.failed" === e.messageKey ? a.titleKey = "prejoin.errorValidation" : (a.titleKey = "prejoin.errorStatusCode", a.titleArguments = { - status: e.status - })), n(Wf(a)), sL.error("Error dialing out", e), t() - } - } - }, - fetchConferenceDetails: PW, - joinConferenceWithoutAudio: hL, - openDialInPage: function() { - return function(e, t) { - Sn(jR(t()), !0) - } - } - }, - p9 = ze((function(e) { - return { - dialInNumber: (t = e, TR(qe(t)["features/invite"].numbers)), - dialOutNumber: nL(e), - dialOutStatus: tL(e), - passCode: MR(e) - }; - var t - }), d9)(u9); - class h9 extends E.Component { - constructor(e) { - super(e), this.state = { - showError: !1, - showJoinByPhoneButtons: !1 - }, this._closeDialog = this._closeDialog.bind(this), this._showDialog = this._showDialog.bind(this), this._onJoinButtonClick = this._onJoinButtonClick.bind(this), this._onDropdownClose = this._onDropdownClose.bind(this), this._onOptionsClick = this._onOptionsClick.bind(this), this._setName = this._setName.bind(this), this._onJoinConferenceWithoutAudioKeyPress = this._onJoinConferenceWithoutAudioKeyPress.bind(this), this._showDialogKeyPress = this._showDialogKeyPress.bind(this), this._onJoinKeyPress = this._onJoinKeyPress.bind(this) - } - _onJoinButtonClick() { - this.props.showErrorOnJoin ? this.setState({ - showError: !0 - }) : (this.setState({ - showError: !1 - }), this.props.joinConference()) - } - _onJoinKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onJoinButtonClick()) - } - _onDropdownClose() { - this.setState({ - showJoinByPhoneButtons: !1 - }) - } - _onOptionsClick(e) { - e.stopPropagation(), this.setState({ - showJoinByPhoneButtons: !this.state.showJoinByPhoneButtons - }) - } - _setName(e) { - this.props.updateSettings({ - displayName: e - }) - } - _closeDialog() { - this.props.setJoinByPhoneDialogVisiblity(!1) - } - _showDialog() { - this.props.setJoinByPhoneDialogVisiblity(!0), this._onDropdownClose() - } - _showDialogKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._showDialog()) - } - _onJoinConferenceWithoutAudioKeyPress(e) { - !this.props.joinConferenceWithoutAudio || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this.props.joinConferenceWithoutAudio()) - } - render() { - const { - deviceStatusVisible: e, - hasJoinByPhoneButton: t, - joinConference: n, - joinConferenceWithoutAudio: a, - name: r, - readOnlyName: i, - showCameraPreview: o, - showDialog: s, - t: l, - videoTrack: c - } = this.props, { - _closeDialog: u, - _onDropdownClose: d, - _onJoinButtonClick: p, - _onJoinKeyPress: h, - _showDialogKeyPress: m, - _onJoinConferenceWithoutAudioKeyPress: f, - _onOptionsClick: g, - _setName: b, - _showDialog: y - } = this, { - showJoinByPhoneButtons: v, - showError: k - } = this.state; - return x().createElement($7, { - showDeviceStatus: e, - title: l("prejoin.joinMeeting"), - videoMuted: !o, - videoTrack: c - }, x().createElement("div", { - className: "prejoin-input-area", - "data-testid": "prejoin.screen" - }, x().createElement(_V, { - autoComplete: "name", - autoFocus: !0, - className: k ? "error" : "", - hasError: k, - onChange: b, - onSubmit: n, - placeHolder: l("dialog.enterDisplayName"), - readOnly: i, - value: r - }), k && x().createElement("div", { - className: "prejoin-error", - "data-testid": "prejoin.errorMessage" - }, l("prejoin.errorMissingName")), x().createElement("div", { - className: "prejoin-preview-dropdown-container" - }, x().createElement(eE, { - content: x().createElement("div", { - className: "prejoin-preview-dropdown-btns" - }, x().createElement("div", { - className: "prejoin-preview-dropdown-btn", - "data-testid": "prejoin.joinWithoutAudio", - onClick: a, - onKeyPress: f, - role: "button", - tabIndex: 0 - }, x().createElement(qs, { - className: "prejoin-preview-dropdown-icon", - size: 24, - src: ih - }), l("prejoin.joinWithoutAudio")), t && x().createElement("div", { - className: "prejoin-preview-dropdown-btn", - onClick: y, - onKeyPress: m, - role: "button", - tabIndex: 0 - }, x().createElement(qs, { - className: "prejoin-preview-dropdown-icon", - "data-testid": "prejoin.joinByPhone", - size: 24, - src: wd - }), l("prejoin.joinAudioByPhone"))), - isOpen: v, - onClose: d - }, x().createElement(vV, { - OptionsIcon: v ? tl : $s, - ariaDropDownLabel: l("prejoin.joinWithoutAudio"), - ariaLabel: l("prejoin.joinMeeting"), - ariaPressed: v, - hasOptions: !0, - onClick: p, - onKeyPress: h, - onOptionsClick: g, - role: "button", - tabIndex: 0, - testId: "prejoin.joinMeeting", - type: "primary" - }, l("prejoin.joinMeeting"))))), s && x().createElement(p9, { - joinConferenceWithoutAudio: a, - onClose: u - })) - } - } - const m9 = ze((function(e) { - const t = fa(e), - n = function(e) { - return e["features/prejoin"].isDisplayNameRequired || e["features/base/config"].requireDisplayName - }(e) && !t; - return { - name: t, - deviceStatusVisible: JR(e), - roomName: vI(e), - showDialog: aL(e), - showErrorOnJoin: n, - hasJoinByPhoneButton: $R(e), - readOnlyName: Gn(e), - showCameraPreview: !_f(e), - videoTrack: Jo(e) - } - }), { - joinConferenceWithoutAudio: hL, - joinConference: dL, - setJoinByPhoneDialogVisiblity: function(e) { - return { - type: HR, - value: e - } - }, - updateSettings: bn - })(Li(h9)), - f9 = "SET_SCREENSHOT_CAPTURE"; - var g9 = n(7510), - b9 = n.n(g9); - let y9 = window.ImageCapture; - void 0 === y9 && (y9 = class { - constructor(e) { - if ("video" !== e.kind) throw new DOMException("NotSupportedError"); - this._videoStreamTrack = e, "readyState" in this._videoStreamTrack || (this._videoStreamTrack.readyState = "live"), this._previewStream = new MediaStream([e]), this.videoElement = document.createElement("video"), this.videoElementPlaying = new Promise((e => { - this.videoElement.addEventListener("playing", e) - })), HTMLMediaElement ? this.videoElement.srcObject = this._previewStream : this.videoElement.src = URL.createObjectURL(this._previewStream), this.videoElement.muted = !0, this.videoElement.setAttribute("playsinline", ""), this.videoElement.play(), this.canvasElement = document.createElement("canvas"), this.canvas2dContext = this.canvasElement.getContext("2d") - } - get videoStreamTrack() { - return this._videoStreamTrack - } - getPhotoCapabilities() { - return new Promise((function(e, t) { - const n = { - current: 0, - min: 0, - max: 0 - }; - e({ - exposureCompensation: n, - exposureMode: "none", - fillLightMode: "none", - focusMode: "none", - imageHeight: n, - imageWidth: n, - iso: n, - redEyeReduction: !1, - whiteBalanceMode: "none", - zoom: n - }), t(new DOMException("OperationError")) - })) - } - setOptions(e = {}) { - return new Promise((function(e, t) {})) - } - takePhoto() { - const e = this; - return new Promise((function(t, n) { - if ("live" !== e._videoStreamTrack.readyState) return n(new DOMException("InvalidStateError")); - e.videoElementPlaying.then((() => { - try { - e.canvasElement.width = e.videoElement.videoWidth, e.canvasElement.height = e.videoElement.videoHeight, e.canvas2dContext.drawImage(e.videoElement, 0, 0), e.canvasElement.toBlob(t) - } catch (e) { - n(new DOMException("UnknownError")) - } - })) - })) - } - grabFrame() { - const e = this; - return new Promise((function(t, n) { - if ("live" !== e._videoStreamTrack.readyState) return n(new DOMException("InvalidStateError")); - e.videoElementPlaying.then((() => { - try { - e.canvasElement.width = e.videoElement.videoWidth, e.canvasElement.height = e.videoElement.videoHeight, e.canvas2dContext.drawImage(e.videoElement, 0, 0), t(window.createImageBitmap(e.canvasElement)) - } catch (e) { - n(new DOMException("UnknownError")) - } - })) - })) - } - }), window.ImageCapture = y9, n(9738); - const v9 = URL.createObjectURL(new Blob(["\n var timer;\n\n onmessage = function(request) {\n switch (request.data.id) {\n case 1: {\n timer = setInterval(() => {\n postMessage({ id: 3 });\n }, request.data.timeMs);\n break;\n }\n case 2: {\n if (timer) {\n clearInterval(timer);\n }\n break;\n }\n }\n };\n"], { - type: "application/javascript" - })); - class k9 { - constructor(e) { - this._state = e, this._currentCanvas = document.createElement("canvas"), this._currentCanvasContext = this._currentCanvas.getContext("2d"), this._handleWorkerAction = this._handleWorkerAction.bind(this), this._initScreenshotCapture = this._initScreenshotCapture.bind(this), this._streamWorker = new Worker(v9, { - name: "Screenshot capture worker" - }), this._streamWorker.onmessage = this._handleWorkerAction - } - start(e) { - var t; - const { - videoType: n - } = e, a = e.getOriginalStream(); - if ("desktop" !== n) return; - const r = a.getVideoTracks()[0], - { - height: i, - width: o - } = null !== (t = r.getSettings()) && void 0 !== t ? t : r.getConstraints(); - this._streamHeight = i, this._streamWidth = o, this._currentCanvas.height = parseInt(i, 10), this._currentCanvas.width = parseInt(o, 10), this._imageCapture = new ImageCapture(r), this._initScreenshotCapture() - } - stop() { - this._streamWorker.postMessage({ - id: 2 - }) - } - async _initScreenshotCapture() { - const e = await this._imageCapture.grabFrame(); - this._currentCanvasContext.drawImage(e, 0, 0, this._streamWidth, this._streamHeight); - const t = this._currentCanvasContext.getImageData(0, 0, this._streamWidth, this._streamHeight); - this._storedImageData = t, this._streamWorker.postMessage({ - id: 1, - timeMs: 2e3 - }) - } - _handleWorkerAction(e) { - return 3 === e.data.id && this._handleScreenshot() - } - _doProcessScreenshot(e) { - Ma({ - action: "screen.sharing.capture" - }), yI(this._state).getMeetingUniqueId(); - const { - connection: t, - timeEstablished: n - } = this._state["features/base/connection"], { - jwt: a - } = (t.getJid(), n && Math.floor((Date.now() - n) / 1e3), this._state["features/base/jwt"]); - this._storedImageData = e, this._currentCanvas - } - async _handleScreenshot() { - const e = await this._imageCapture.grabFrame(); - this._currentCanvasContext.drawImage(e, 0, 0, this._streamWidth, this._streamHeight); - const t = this._currentCanvasContext.getImageData(0, 0, this._streamWidth, this._streamHeight); - b9()(t).compareTo(this._storedImageData).setReturnEarlyThreshold(5).onComplete((e => { - e.rawMisMatchPercentage > 5 && this._doProcessScreenshot(t) - })) - } - } - const _9 = Je("features/screenshot-capture"); - let w9; - - function S9(e) { - return { - type: f9, - payload: e - } - } - - function E9(e) { - return async function(t, n) { - const a = n(); - if (a["features/screenshot-capture"].capturesEnabled !== e) { - const { - jitsiTrack: n - } = Ko(a["features/base/tracks"]); - if (!w9) try { - w9 = await (r = a, MediaStreamTrack.prototype.getSettings || MediaStreamTrack.prototype.getConstraints ? new k9(qe(r)) : Promise.reject(new Error("ScreenshotCaptureSummary not supported!"))) - } catch (e) { - _9.error("Cannot create screenshotCaptureSummary", e) - } - if (e) try { - await w9.start(n), t(S9(e)) - } catch (e) { - _9.error("Unsupported stream type.") - } else w9.stop(), t(S9(e)) - } - var r; - return Promise.resolve() - } - } - class x9 { - constructor(e) { - if (e.getType() !== Xi) throw new Error("AudioMixerEffect only supports audio JitsiLocalTracks; effect will not work!"); - this._mixAudio = e - } - isEnabled(e) { - return e.isAudioTrack() && this._mixAudio.isAudioTrack() - } - startEffect(e) { - return this._originalStream = e, this._originalTrack = e.getTracks()[0], this._audioMixer = c.default.createAudioMixer(), this._audioMixer.addMediaStream(this._mixAudio.getOriginalStream()), this._audioMixer.addMediaStream(this._originalStream), this._mixedMediaStream = this._audioMixer.start(), this._mixedMediaTrack = this._mixedMediaStream.getTracks()[0], this._mixedMediaStream - } - stopEffect() { - this._audioMixer.reset() - } - setMuted(e) { - this._originalTrack.enabled = !e - } - isMuted() { - return !this._originalTrack.enabled - } - } - const C9 = URL.createObjectURL(new Blob(["\n var timer;\n\n onmessage = function(request) {\n switch (request.data.id) {\n case 1: {\n timer = setInterval(() => {\n postMessage({ id: 3 });\n }, request.data.timeMs);\n break;\n }\n case 2: {\n if (timer) {\n clearInterval(timer);\n }\n break;\n }\n }\n };\n"], { - type: "application/javascript" - })); - class A9 { - constructor(e) { - var t; - const n = document.createElement("div"), - a = e.getVideoTracks()[0], - { - height: r, - width: i, - frameRate: o - } = null !== (t = a.getSettings()) && void 0 !== t ? t : a.getConstraints(); - this._canvas = document.createElement("canvas"), this._ctx = this._canvas.getContext("2d"), this._desktopElement = document.createElement("video"), this._videoElement = document.createElement("video"), n.appendChild(this._videoElement), n.appendChild(this._desktopElement), null !== document.body && document.body.appendChild(n), this._frameRate = parseInt(o, 10), this._videoElement.width = parseInt(i, 10), this._videoElement.height = parseInt(r, 10), this._videoElement.autoplay = !0, this._videoElement.srcObject = e, this._videoElement.play(), n.style.display = "none", this._onVideoFrameTimer = this._onVideoFrameTimer.bind(this) - } - _onVideoFrameTimer(e) { - 3 === e.data.id && this._renderVideo() - } - _renderVideo() { - var e; - const [t] = this._desktopStream.getVideoTracks(), { - height: n, - width: a - } = null !== (e = t.getSettings()) && void 0 !== e ? e : t.getConstraints(); - this._canvas.width = parseInt(a, 10), this._canvas.height = parseInt(n, 10), this._ctx.drawImage(this._desktopElement, 0, 0, this._canvas.width, this._canvas.height), this._ctx.drawImage(this._videoElement, this._canvas.width - this._videoElement.width, this._canvas.height - this._videoElement.height, this._videoElement.width, this._videoElement.height), this._ctx.beginPath(), this._ctx.lineWidth = 2, this._ctx.strokeStyle = "#A9A9A9", this._ctx.rect(this._canvas.width - this._videoElement.width, this._canvas.height - this._videoElement.height, this._videoElement.width, this._videoElement.height), this._ctx.stroke() - } - isEnabled(e) { - return e.isVideoTrack() && "desktop" === e.videoType - } - startEffect(e) { - var t; - const n = e.getVideoTracks()[0], - { - height: a, - width: r - } = null !== (t = n.getSettings()) && void 0 !== t ? t : n.getConstraints(); - return this._desktopStream = e, this._desktopElement.width = parseInt(r, 10), this._desktopElement.height = parseInt(a, 10), this._desktopElement.autoplay = !0, this._desktopElement.srcObject = e, this._desktopElement.play(), this._canvas.width = parseInt(r, 10), this._canvas.height = parseInt(a, 10), this._videoFrameTimerWorker = new Worker(C9, { - name: "Presenter effect worker" - }), this._videoFrameTimerWorker.onmessage = this._onVideoFrameTimer, this._videoFrameTimerWorker.postMessage({ - id: 1, - timeMs: 1e3 / this._frameRate - }), this._canvas.captureStream(this._frameRate) - } - stopEffect() { - this._videoFrameTimerWorker.postMessage({ - id: 2 - }), this._videoFrameTimerWorker.terminate() - } - } - var j9, P9 = n(554), - D9 = (j9 = "undefined" != typeof document && document.currentScript ? document.currentScript.src : void 0, function(e) { - var t; - (e = void 0 !== (e = e || {}) ? e : {}).ready = new Promise((function(e, n) { - t = e - })); - var n, a = {}; - for (n in e) e.hasOwnProperty(n) && (a[n] = e[n]); - var r, i, o = []; - r = "object" == typeof window, i = "function" == typeof importScripts, "object" == typeof P9 && "object" == typeof P9.versions && P9.versions.node; - var s, l = ""; - (r || i) && (i ? l = self.location.href : document.currentScript && (l = document.currentScript.src), j9 && (l = j9), l = 0 !== l.indexOf("blob:") ? l.substr(0, l.lastIndexOf("/") + 1) : "", i && (s = function(e) { - var t = new XMLHttpRequest; - return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response) - })); - var c, u, d = e.print || console.log.bind(console), - p = e.printErr || console.warn.bind(console); - for (n in a) a.hasOwnProperty(n) && (e[n] = a[n]); - a = null, e.arguments && (o = e.arguments), e.thisProgram && e.thisProgram, e.quit && e.quit, e.wasmBinary && (c = e.wasmBinary), e.noExitRuntime && e.noExitRuntime, "object" != typeof WebAssembly && p("no native wasm support detected"); - var h, m, f, g = new WebAssembly.Table({ - initial: 1, - maximum: 1, - element: "anyfunc" - }), - b = !1; - - function y(t) { - h = t, e.HEAP8 = new Int8Array(t), e.HEAP16 = new Int16Array(t), e.HEAP32 = f = new Int32Array(t), e.HEAPU8 = m = new Uint8Array(t), e.HEAPU16 = new Uint16Array(t), e.HEAPU32 = new Uint32Array(t), e.HEAPF32 = new Float32Array(t), e.HEAPF64 = new Float64Array(t) - } - var v = e.INITIAL_MEMORY || 16777216; - - function k(t) { - for (; t.length > 0;) { - var n = t.shift(); - if ("function" != typeof n) { - var a = n.func; - "number" == typeof a ? void 0 === n.arg ? e.dynCall_v(a) : e.dynCall_vi(a, n.arg) : a(void 0 === n.arg ? null : n.arg) - } else n(e) - } - }(u = e.wasmMemory ? e.wasmMemory : new WebAssembly.Memory({ - initial: v / 65536, - maximum: 32768 - })) && (h = u.buffer), v = h.byteLength, y(h), f[24364] = 5340496; - var _ = [], - w = [], - S = [], - E = [], - x = 0, - C = null, - A = null; - - function j(t) { - throw e.onAbort && e.onAbort(t), d(t += ""), p(t), b = !0, t = "abort(" + t + "). Build with -s ASSERTIONS=1 for more info.", new WebAssembly.RuntimeError(t) - } - - function P(e) { - return function(e, t) { - return String.prototype.startsWith ? e.startsWith(t) : 0 === e.indexOf(t) - }(e, "data:application/octet-stream;base64,") - } - e.preloadedImages = {}, e.preloadedAudios = {}; - var D, T = "rnnoise.wasm"; - - function O() { - try { - if (c) return new Uint8Array(c); - if (s) return s(T); - throw "both async and sync fetching of the wasm failed" - } catch (e) { - j(e) - } - } - - function M(e) { - try { - return u.grow(e - h.byteLength + 65535 >>> 16), y(u.buffer), 1 - } catch (e) {} - } - P(T) || (D = T, T = e.locateFile ? e.locateFile(D, l) : l + D), w.push({ - func: function() { - z() - } - }); - var I, N = { - a: function(e, t, n) { - m.copyWithin(e, t, t + n) - }, - b: function(e) { - e >>>= 0; - var t = m.length, - n = 2147483648; - if (e > n) return !1; - for (var a, r = 1; r <= 4; r *= 2) { - var i = t * (1 + .2 / r); - if (i = Math.min(i, e + 100663296), M(Math.min(n, ((a = Math.max(16777216, e, i)) % 65536 > 0 && (a += 65536 - a % 65536), a)))) return !0 - } - return !1 - }, - memory: u, - table: g - }, - z = (function() { - var t = { - a: N - }; - - function n(t, n) { - var a = t.exports; - e.asm = a, - function(t) { - if (x--, e.monitorRunDependencies && e.monitorRunDependencies(x), 0 == x && (null !== C && (clearInterval(C), C = null), A)) { - var n = A; - A = null, n() - } - }() - } - - function a(e) { - n(e.instance) - } - - function o(e) { - return (c || !r && !i || "function" != typeof fetch ? new Promise((function(e, t) { - e(O()) - })) : fetch(T, { - credentials: "same-origin" - }).then((function(e) { - if (!e.ok) throw "failed to load wasm binary file at '" + T + "'"; - return e.arrayBuffer() - })).catch((function() { - return O() - }))).then((function(e) { - return WebAssembly.instantiate(e, t) - })).then(e, (function(e) { - p("failed to asynchronously prepare wasm: " + e), j(e) - })) - } - if (x++, e.monitorRunDependencies && e.monitorRunDependencies(x), e.instantiateWasm) try { - return e.instantiateWasm(t, n) - } catch (e) { - return p("Module.instantiateWasm callback failed with error: " + e), !1 - }! function() { - if (c || "function" != typeof WebAssembly.instantiateStreaming || P(T) || "function" != typeof fetch) return o(a); - fetch(T, { - credentials: "same-origin" - }).then((function(e) { - return WebAssembly.instantiateStreaming(e, t).then(a, (function(e) { - return p("wasm streaming compile failed: " + e), p("falling back to ArrayBuffer instantiation"), o(a) - })) - })) - }() - }(), e.___wasm_call_ctors = function() { - return (z = e.___wasm_call_ctors = e.asm.c).apply(null, arguments) - }); - - function R(n) { - function a() { - I || (I = !0, e.calledRun = !0, b || (k(w), k(S), t(e), e.onRuntimeInitialized && e.onRuntimeInitialized(), function() { - if (e.postRun) - for ("function" == typeof e.postRun && (e.postRun = [e.postRun]); e.postRun.length;) t = e.postRun.shift(), E.unshift(t); - var t; - k(E) - }())) - } - n = n || o, x > 0 || (function() { - if (e.preRun) - for ("function" == typeof e.preRun && (e.preRun = [e.preRun]); e.preRun.length;) t = e.preRun.shift(), _.unshift(t); - var t; - k(_) - }(), x > 0 || (e.setStatus ? (e.setStatus("Running..."), setTimeout((function() { - setTimeout((function() { - e.setStatus("") - }), 1), a() - }), 1)) : a())) - } - if (e._rnnoise_init = function() { - return (e._rnnoise_init = e.asm.d).apply(null, arguments) - }, e._rnnoise_create = function() { - return (e._rnnoise_create = e.asm.e).apply(null, arguments) - }, e._malloc = function() { - return (e._malloc = e.asm.f).apply(null, arguments) - }, e._rnnoise_destroy = function() { - return (e._rnnoise_destroy = e.asm.g).apply(null, arguments) - }, e._free = function() { - return (e._free = e.asm.h).apply(null, arguments) - }, e._rnnoise_process_frame = function() { - return (e._rnnoise_process_frame = e.asm.i).apply(null, arguments) - }, A = function e() { - I || R(), I || (A = e) - }, e.run = R, e.preInit) - for ("function" == typeof e.preInit && (e.preInit = [e.preInit]); e.preInit.length > 0;) e.preInit.pop()(); - return R(), e.ready - }); - const T9 = D9; - class O9 { - constructor(e) { - ! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: false, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = false - }(this, "_destroyed"); - try { - if (this._wasmInterface = e, this._wasmPcmInput = this._wasmInterface._malloc(1920), !this._wasmPcmInput) throw Error("Failed to create wasm input memory buffer!"); - if (this._wasmPcmOutput = this._wasmInterface._malloc(1920), !this._wasmPcmOutput) throw e._free(this._wasmPcmInput), Error("Failed to create wasm output memory buffer!"); - this._wasmPcmInputF32Index = this._wasmPcmInput / 4, this._context = this._wasmInterface._rnnoise_create() - } catch (e) { - throw this._releaseWasmResources(), e - } - } - _copyPCMSampleToWasmBuffer(e) { - this._wasmInterface.HEAPF32.set(e, this._wasmPcmInputF32Index) - } - _convertTo16BitPCM(e) { - for (const [t, n] of e.entries()) e[t] = 32767 * n - } - _releaseWasmResources() { - this._wasmPcmInput && (this._wasmInterface._free(this._wasmPcmInput), this._wasmPcmInput = null), this._wasmPcmOutput && (this._wasmInterface._free(this._wasmPcmOutput), this._wasmPcmOutput = null), this._context && (this._wasmInterface._rnnoise_destroy(this._context), this._context = null) - } - getSampleLength() { - return 480 - } - getRequiredPCMFrequency() { - return 44100 - } - destroy() { - this._destroyed || (this._releaseWasmResources(), this._destroyed = !0) - } - calculateAudioFrameVAD(e) { - if (this._destroyed) throw new Error("RnnoiseProcessor instance is destroyed, please create another one!"); - const t = e.length; - if (480 !== t) throw new Error(`Rnnoise can only process PCM frames of 480 samples! Input sample was:${t}`); - return this._convertTo16BitPCM(e), this._copyPCMSampleToWasmBuffer(e), this._wasmInterface._rnnoise_process_frame(this._context, this._wasmPcmOutput, this._wasmPcmInput) - } - } - let M9; - - function I9() { - return M9 || (M9 = T9()), M9.then((e => new O9(e))) - } - const N9 = We().getLogger("conference.js"), - z9 = new(o()); - let R9, L9, F9, q9, B9 = Promise.resolve(); - window.JitsiMeetScreenObtainer = { - openDesktopPicker(e, t) { - APP.store.dispatch(function(e = {}, t) { - const { - desktopSharingSources: n - } = e; - return sP(rF, { - desktopSharingSources: n, - onSourceChoose: t - }) - }(e, t)) - } - }; - const U9 = { - AVATAR_URL: iI, - CUSTOM_ROLE: "custom-role", - EMAIL: oI, - ETHERPAD: "etherpad" - }; - - function H9(e) { - return _L({ - retry: !0, - roomName: e - }).catch((e => { - throw e === yt.PASSWORD_REQUIRED ? APP.UI.notifyTokenAuthFailed() : APP.UI.notifyConnectionFailed(e), e - })) - } - - function V9(e, t) { - R9 && (R9.removeCommand(e), R9.sendCommand(e, { - value: t - })) - } - - function W9(e) { - const t = Fh(APP.store.getState(), e); - return t && t.name - } - - function Y9(e) { - APP.store.dispatch(lf(e)) - } - - function G9(e) { - APP.store.dispatch(cf(e)) - } - const K9 = TL(), - $9 = TL(); - class J9 { - constructor(e, t) { - this._resolve = e, this._reject = t, this.reconnectTimeout = null, R9.on(bt.CONFERENCE_JOINED, this._handleConferenceJoined.bind(this)), R9.on(bt.CONFERENCE_FAILED, this._onConferenceFailed.bind(this)) - } - _handleConferenceFailed(e) { - this._unsubscribe(), this._reject(e) - } - _onConferenceFailed(e, ...t) { - switch (APP.store.dispatch(oN(R9, e, ...t)), N9.error("CONFERENCE FAILED:", e, ...t), e) { - case gt.NOT_ALLOWED_ERROR: - APP.store.dispatch($N("static/authError.html")); - break; - case gt.AUTHENTICATION_REQUIRED: { - const e = Zn(APP.store.getState()); - this.reconnectTimeout = setTimeout((() => { - APP.store.dispatch(pN(R9)), R9.join(null, e) - }), 5e3); - const { - password: t - } = APP.store.getState()["features/base/conference"]; - Uz.requireAuth(R9, t); - break - } - case gt.RESERVATION_ERROR: { - const [e, n] = t; - APP.UI.notifyReservationError(e, n); - break - } - case gt.GRACEFUL_SHUTDOWN: - APP.UI.notifyGracefulShutdown(); - break; - case gt.FOCUS_DISCONNECTED: { - const [e, n] = t; - APP.UI.notifyFocusDisconnected(e, n); - break - } - case gt.FOCUS_LEFT: - case gt.ICE_FAILED: - case gt.VIDEOBRIDGE_NOT_AVAILABLE: - case gt.OFFER_ANSWER_FAILED: - APP.store.dispatch(hN(R9)), R9.leave().then((() => L9.disconnect())); - break; - case gt.CONFERENCE_MAX_USERS: - L9.disconnect(), APP.UI.notifyMaxUsersLimitReached(); - break; - case gt.INCOMPATIBLE_SERVER_VERSIONS: - APP.store.dispatch(QN()); - break; - default: - this._handleConferenceFailed(e, ...t) - } - } - _unsubscribe() { - R9.off(bt.CONFERENCE_JOINED, this._handleConferenceJoined), R9.off(bt.CONFERENCE_FAILED, this._onConferenceFailed), null !== this.reconnectTimeout && clearTimeout(this.reconnectTimeout) - } - _handleConferenceJoined() { - this._unsubscribe(), this._resolve() - } - connect() { - const e = Zn(APP.store.getState()); - R9.join(l.getItem("xmpp_conference_password_override"), e) - } - } - - function Z9() { - const e = () => (APP.API.notifyConferenceLeft(APP.conference.roomName), Promise.resolve()); - return L9 ? L9.disconnect().then(e, e) : e() - } - - function Q9(e) { - ut(e) && (APP.connection.removeEventListener(vt.CONNECTION_FAILED, Q9), R9 && (APP.store.dispatch(hN(R9)), R9.leave())) - } - const X9 = { - _localTracksInitialized: !1, - isSharingScreen: !1, - localPresenterVideo: null, - createInitialLocalTracks(e = {}) { - const t = {}, - n = config.disableInitialGUM ? [] : ["audio"], - a = !config.disableInitialGUM; - let r, i = !1; - config.disableInitialGUM || e.startWithVideoMuted || e.startAudioOnly || e.startScreenSharing || (n.push("video"), i = !0), config.disableInitialGUM || JitsiMeetJS.mediaDevices.addEventListener(wt.PERMISSION_PROMPT_IS_SHOWN, (e => APP.store.dispatch(SN(!0, e)))), JitsiMeetJS.mediaDevices.addEventListener(wt.SLOW_GET_USER_MEDIA, (() => APP.store.dispatch(EN(!0)))); - const o = ft.isElectron() ? 15e3 : 6e4; - return r = e.startScreenSharing ? this._createDesktopTrack().then((([e]) => a ? Vo({ - devices: ["audio"], - timeout: o, - firePermissionPromptIsShownEvent: !0, - fireSlowPromiseEvent: !0 - }).then((([t]) => [e, t])).catch((n => (t.audioOnlyError = n, [e]))) : [e])).catch((e => (N9.error("Failed to obtain desktop stream", e), t.screenSharingError = e, a ? Vo({ - devices: ["audio"], - timeout: o, - firePermissionPromptIsShownEvent: !0, - fireSlowPromiseEvent: !0 - }) : []))).catch((e => (t.audioOnlyError = e, []))) : a || i ? Vo({ - devices: n, - timeout: o, - firePermissionPromptIsShownEvent: !0, - fireSlowPromiseEvent: !0 - }).catch((e => a && i ? (t.audioAndVideoError = e, e.name !== Ct.TIMEOUT || ft.isElectron() ? Vo({ - devices: ["audio"], - timeout: o, - firePermissionPromptIsShownEvent: !0, - fireSlowPromiseEvent: !0 - }) : (t.audioOnlyError = e, t.videoOnlyError = e, [])) : a && !i ? (t.audioOnlyError = e, []) : i && !a ? (t.videoOnlyError = e, []) : void N9.error("Should never happen"))).catch((e => (a || N9.error("The impossible just happened", e), t.audioOnlyError = e, i ? Vo({ - devices: ["video"], - firePermissionPromptIsShownEvent: !0, - fireSlowPromiseEvent: !0 - }) : []))).catch((e => (i || N9.error("The impossible just happened", e), t.videoOnlyError = e, []))) : Promise.resolve([]), r.then((e => (APP.store.dispatch(EN(!1)), APP.store.dispatch(SN(!1)), e))), { - tryCreateLocalTracks: r, - errors: t - } - }, - _displayErrorsForCreateInitialLocalTracks(e) { - const { - audioAndVideoError: t, - audioOnlyError: n, - screenSharingError: a, - videoOnlyError: r - } = e; - a && this._handleScreenSharingError(a), (t || n) && (n || r ? (APP.store.dispatch(KM(n)), APP.store.dispatch(GM(r))) : APP.store.dispatch(GM(t))) - }, - createInitialLocalTracksAndConnect(e, t = {}) { - const { - tryCreateLocalTracks: n, - errors: a - } = this.createInitialLocalTracks(t); - return Promise.all([n, H9(e)]).then((([e, t]) => (this._displayErrorsForCreateInitialLocalTracks(a), [e, t]))) - }, - startConference(e, t) { - return t.forEach((e => { - if (e.isAudioTrack() && this.isLocalAudioMuted() || e.isVideoTrack() && this.isLocalVideoMuted()) { - const t = e.getType(); - Ma(mn(t, "initial mute")), N9.log(`${t} mute: initially muted.`), e.mute() - } - })), e.addEventListener(vt.CONNECTION_FAILED, Q9), APP.connection = L9 = e, this._createRoom(t), t.find((e => e.isAudioTrack())) || this.setAudioMuteStatus(!0), t.find((e => e.isVideoTrack())) || this.setVideoMuteStatus(), config.iAmRecorder && (this.recorder = new class { - constructor() { - config.iAmRecorder && this._sendRecorderInfo() - } - _sendRecorderInfo() { - const e = APP.conference.commands; - e.removeCommand(AL), e.sendCommand(AL, { - attributes: { - xmlns: "http://jitsi.org/jitmeet/userinfo", - robot: !0 - } - }) - } - }), config.startSilent && (Ma({ - action: "start.silent" - }), APP.store.dispatch(Yf({ - descriptionKey: "notify.startSilentDescription", - titleKey: "notify.startSilentTitle" - }))), new Promise(((e, t) => { - new J9(e, t).connect() - })) - }, - async init({ - roomName: e - }) { - const t = { - startAudioOnly: config.startAudioOnly, - startScreenSharing: config.startScreenSharing, - startWithAudioMuted: vf(APP.store.getState()) || config.startSilent || rs(APP.store.getState()), - startWithVideoMuted: kf(APP.store.getState()) || rs(APP.store.getState()) - }; - this.roomName = e; - try { - await this._initDeviceList() - } catch (e) { - N9.warn("initial device list initialization failed", e) - } - if (rL(APP.store.getState())) { - F9 = H9(e).then((e => (APP.connection = e, e))), q9 && q9(), APP.store.dispatch(mL(this._getConferenceOptions())); - const { - tryCreateLocalTracks: n, - errors: a - } = this.createInitialLocalTracks(t), r = await n; - return this._initDeviceList(!0), iL(APP.store.getState()) ? APP.store.dispatch(uL(r, a)) : (N9.debug("Prejoin screen no longer displayed at the time when tracks were created"), this._displayErrorsForCreateInitialLocalTracks(a), this._setLocalAudioVideoStreams(r)) - } - const [n, a] = await this.createInitialLocalTracksAndConnect(e, t); - let r = n; - return this._initDeviceList(!0), t.startWithAudioMuted && (ft.isWebKitBased() ? this.muteAudio(!0, !0) : r = r.filter((e => e.getType() !== Xi))), this.startConference(a, r) - }, - async prejoinStart(e) { - let t; - F9 || (await new Promise((e => { - q9 = e - })), q9 = void 0); - try { - t = await F9, this.startConference(t, e) - } catch (e) { - N9.error(`An error occurred while trying to join a meeting from the prejoin screen: ${e}`), APP.store.dispatch(pL(!1)) - } - }, - isLocalId(e) { - return this.getMyUserId() === e - }, - isLocalVideoMuted() { - return this._localTracksInitialized ? es(APP.store.getState()["features/base/tracks"]) : _f(APP.store) - }, - muteAudio(e, t = !0) { - const n = APP.store.getState(); - if (e || !rs(n)) - if (e || !dm(Xi, n)) { - if (!this._localTracksInitialized) return Y9(e), void this.setAudioMuteStatus(e); - if (this.isLocalAudioMuted() !== e) - if (Zo(APP.store.getState()) || e) Y9(e); - else { - const e = e => { - t && APP.store.dispatch(KM(e)) - }; - Vo({ - devices: ["audio"] - }).then((([e]) => e)).catch((t => (e(t), null))).then((e => this.useAudioStream(e))) - } - } else Dv(Xi, n) || APP.store.dispatch(Xm(Xi)); - else N9.error("Unmuting audio requires user interaction") - }, - isLocalAudioMuted() { - return this._localTracksInitialized ? ts(APP.store.getState()["features/base/tracks"], Xi) : Boolean(APP.store.getState()["features/base/media"].audio.muted) - }, - toggleAudioMuted(e = !0) { - this.muteAudio(!this.isLocalAudioMuted(), e) - }, - async mutePresenter(e, t = !0) { - const n = e => { - t && APP.store.dispatch(GM(e)) - }, - a = Jo(APP.store.getState()); - if (e) try { - await a.setEffect(void 0) - } catch (e) { - N9.error("Failed to remove the presenter effect", e), n(e) - } else try { - await a.setEffect(await this._createPresenterStreamEffect()) - } catch (e) { - N9.error("Failed to apply the presenter effect", e), n(e) - } - }, - muteVideo(e, t = !0) { - if (e || !rs(APP.store.getState())) - if (this.isSharingScreen) B9 = B9.then((() => this._mutePresenterVideo(e))); - else { - if (!this._localTracksInitialized) return G9(e), void this.setVideoMuteStatus(); - if (this.isLocalVideoMuted() !== e) - if (Jo(APP.store.getState()) || e) G9(e); - else { - const e = e => { - t && APP.store.dispatch(GM(e)) - }; - Vo({ - devices: ["video"] - }).then((([e]) => e)).catch((t => (e(t), null))).then((e => (N9.debug(`muteVideo: calling useVideoStream for track: ${e}`), this.useVideoStream(e)))) - } - } - else N9.error("Unmuting video requires user interaction") - }, - toggleVideoMuted(e = !0) { - this.muteVideo(!this.isLocalVideoMuted(), e) - }, - listMembersIds: () => R9.getParticipants().map((e => e.getId())), - isParticipantModerator(e) { - const t = R9.getParticipantById(e); - return t && t.isModerator() - }, - listMembers: () => R9.getParticipants(), - get membersCount() { - return R9.getParticipants().length + 1 - }, - isCallstatsEnabled: () => R9 && R9.isCallstatsEnabled(), - getSpeakerStats: () => R9.getSpeakerStats(), - getConnectionTimes: () => R9.getConnectionTimes(), - isJoined: () => R9 && R9.isJoined(), - getConnectionState: () => R9 && R9.getConnectionState(), - getP2PConnectionState: () => R9 && R9.getP2PConnectionState(), - _startP2P() { - try { - R9 && R9.startP2PSession() - } catch (e) { - throw N9.error("Start P2P failed", e), e - } - }, - _stopP2P() { - try { - R9 && R9.stopP2PSession() - } catch (e) { - throw N9.error("Stop P2P failed", e), e - } - }, - isConnectionInterrupted: () => R9.isConnectionInterrupted(), - getLocalDisplayName() { - return W9(this.getMyUserId()) - }, - getParticipantById: e => R9 ? R9.getParticipantById(e) : null, - getParticipantDisplayName: e => W9(e) || (APP.conference.isLocalId(e) ? APP.translation.generateTranslationHTML(interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME) : interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME), - getMyUserId: () => R9 && R9.myUserId(), - audioLevelsMap: {}, - getPeerSSRCAudioLevel(e) { - return this.audioLevelsMap[e] - }, - getNumberOfParticipantsWithTracks: () => R9.getParticipants().filter((e => e.getTracks().length > 0)).length, - getStats: () => R9.connectionQuality.getStats(), - saveLogs(e = "meetlog.json") { - OL(APP.connection.getLogs(), e) - }, - commands: { - defaults: U9, - addCommandListener() { - R9.addCommandListener(...arguments) - }, - removeCommand() { - R9.removeCommand(...arguments) - }, - sendCommand() { - R9.sendCommand(...arguments) - }, - sendCommandOnce() { - R9.sendCommandOnce(...arguments) - } - }, - _createRoom(e) { - R9 = L9.initJitsiConference(APP.conference.roomName, this._getConferenceOptions()); - const t = ft.isWebKitBased() ? e : e.filter((e => !e.isMuted())); - this._setLocalAudioVideoStreams(t), this._room = R9, APP.store.dispatch(dN(R9)), EI(APP.store, R9), this._setupListeners() - }, - _setLocalAudioVideoStreams(e = []) { - const t = e.map((e => e.isAudioTrack() ? this.useAudioStream(e) : e.isVideoTrack() ? (N9.debug(`_setLocalAudioVideoStreams is calling useVideoStream with track: ${e}`), this.useVideoStream(e)) : (N9.error("Ignored not an audio nor a video track: ", e), Promise.resolve()))); - return Promise.allSettled(t).then((() => { - this._localTracksInitialized = !0, N9.log(`Initialized with ${e.length} local tracks`) - })) - }, - _getConferenceOptions() { - const e = gI(APP.store.getState()); - return e.createVADProcessor = I9, e - }, - useVideoStream(e) { - return N9.debug(`useVideoStream: ${e}`), new Promise(((t, n) => { - $9.enqueue((a => { - const r = Jo(APP.store.getState()); - if (N9.debug(`useVideoStream: Replacing ${r} with ${e}`), r === e) return t(), void a(); - APP.store.dispatch(ds(r, e, R9)).then((() => { - this._setSharingScreen(e), this.setVideoMuteStatus() - })).then(t).catch((e => { - N9.error(`useVideoStream failed: ${e}`), n(e) - })).then(a) - })) - })) - }, - _setSharingScreen(e) { - const t = this.isSharingScreen; - if (this.isSharingScreen = e && "desktop" === e.videoType, t !== this.isSharingScreen) { - const t = {}; - this.isSharingScreen && (t.sourceType = e.sourceType), APP.API.notifyScreenSharingStatusChanged(this.isSharingScreen, t) - } - }, - useAudioStream(e) { - return new Promise(((t, n) => { - K9.enqueue((a => { - const r = Zo(APP.store.getState()); - if (r === e) return t(), void a(); - APP.store.dispatch(ds(r, e, R9)).then((() => { - this.setAudioMuteStatus(this.isLocalAudioMuted()) - })).then(t).catch(n).then(a) - })) - })) - }, - isAudioOnly: () => Boolean(APP.store.getState()["features/base/audio-only"].enabled), - videoSwitchInProgress: !1, - _untoggleScreenSharing: null, - async _turnScreenSharingOff(e, t) { - this._untoggleScreenSharing = null, this.videoSwitchInProgress = !0, APP.store.dispatch(K0()), this._stopProxyConnection(), config.enableScreenshotCapture && APP.store.dispatch(E9(!1)); - let n = B9 = B9.then((() => { - if (this.localPresenterVideo) return APP.store.dispatch(cf(!0, eo)), this.localPresenterVideo.dispose().then((() => { - APP.store.dispatch(ms(this.localPresenterVideo)), this.localPresenterVideo = null - })) - })); - if (this._mixerEffect) { - const e = Zo(APP.store.getState()); - await e.setEffect(void 0), await this._desktopAudioStream.dispose(), this._mixerEffect = void 0, this._desktopAudioStream = void 0 - } else this._desktopAudioStream && (await this.useAudioStream(null), this._desktopAudioStream = void 0); - return APP.store.dispatch(lW(!1)), n = e && !t ? n.then((() => Vo({ - devices: ["video"] - }))).then((([e]) => (N9.debug(`_turnScreenSharingOff using ${e} for useVideoStream`), this.useVideoStream(e)))).catch((e => (N9.error("failed to switch back to local video", e), this.useVideoStream(null).then((() => Promise.reject(e)))))) : n.then((() => (N9.debug("_turnScreenSharingOff using null for useVideoStream"), this.useVideoStream(null)))), n.then((() => { - this.videoSwitchInProgress = !1, Ma(ln("stopped")), N9.info("Screen sharing stopped.") - }), (e => { - throw this.videoSwitchInProgress = !1, N9.error(`_turnScreenSharingOff failed: ${e}`), e - })) - }, - async toggleScreenSharing(e = !this._untoggleScreenSharing, t = {}, n) { - if (N9.debug(`toggleScreenSharing: ${e}`), this.videoSwitchInProgress) return Promise.reject("Switch in progress."); - if (!JitsiMeetJS.isDesktopSharingEnabled()) return Promise.reject("Cannot toggle screen sharing: not supported."); - if (this.isAudioOnly()) return Promise.reject("No screensharing in audio only mode"); - if (e) try { - return void await this._switchToScreenSharing(t) - } catch (e) { - return void N9.error("Failed to switch to screensharing", e) - } - return this._untoggleScreenSharing ? this._untoggleScreenSharing(n) : Promise.resolve() - }, - _createDesktopTrack(e = {}) { - const t = !this.isLocalVideoMuted(); - return (e.desktopStream ? Promise.resolve([e.desktopStream]) : Vo({ - desktopSharingSourceDevice: e.desktopSharingSources ? null : config._desktopSharingSourceDevice, - desktopSharingSources: e.desktopSharingSources, - devices: ["desktop"] - })).then((e => { - this._untoggleScreenSharing = this._turnScreenSharingOff.bind(this, t); - const n = e.find((e => e.getType() === to)), - a = e.find((e => e.getType() === Xi)); - return a && a.on(At.LOCAL_TRACK_STOPPED, (() => { - N9.debug(`Local screensharing audio track stopped. ${this.isSharingScreen}`), XV(APP.store.getState()) && this._untoggleScreenSharing && this._untoggleScreenSharing() - })), n && n.on(At.LOCAL_TRACK_STOPPED, (() => { - N9.debug(`Local screensharing track stopped. ${this.isSharingScreen}`), this.isSharingScreen && this._untoggleScreenSharing && this._untoggleScreenSharing() - })), e - }), (e => { - throw e - })) - }, - async _createPresenterStreamEffect(e = null, t = null) { - if (!this.localPresenterVideo) { - var n; - const a = null !== (n = t) && void 0 !== n ? n : oa(APP.store.getState()); - try { - this.localPresenterVideo = await async function(e, t) { - const { - cameraDeviceId: n - } = e, a = { - video: { - aspectRatio: 4 / 3, - height: { - ideal: [180, 270, 360, 540, 720].find((e => t / 5 < e)) - } - } - }, [r] = await c.default.createLocalTracks({ - cameraDeviceId: n, - constraints: a, - devices: ["video"] - }); - return r.type = eo, r - }({ - cameraDeviceId: a - }, e) - } catch (e) { - return void N9.error("Failed to create a camera track for presenter", e) - } - APP.store.dispatch(ps(this.localPresenterVideo)) - } - try { - return await (a = this.localPresenterVideo.stream, MediaStreamTrack.prototype.getSettings || MediaStreamTrack.prototype.getConstraints ? Promise.resolve(new A9(a)) : Promise.reject(new Error("JitsiStreamPresenterEffect not supported!"))) - } catch (e) { - N9.error("Failed to create the presenter effect", e) - } - var a - }, - async _mutePresenterVideo(e) { - if ((!e || this.localPresenterVideo && !this.localPresenterVideo.isMuted()) && (e || !this.localPresenterVideo || this.localPresenterVideo.isMuted())) - if (this.localPresenterVideo || e) APP.store.dispatch(cf(e, eo)); - else { - var t, n, a; - const r = Jo(APP.store.getState()), - { - height: i, - width: o - } = null !== (t = r.track.getSettings()) && void 0 !== t ? t : r.track.getConstraints(), - s = i >= o, - l = 720, - c = (s && o > l || !s && i > l) && (null === (n = config.videoQuality) || void 0 === n ? void 0 : n.resizeDesktopForPresenter); - if (c) { - let e = {}; - if (i && o) { - const t = [{ - aspectRatio: (o / i).toPrecision(4) - }], - n = s ? { - width: l - } : { - height: l - }; - t.push(n), e.advanced = t - } else e = { - width: 1280, - height: 720 - }; - try { - await r.track.applyConstraints(e) - } catch (e) { - return void N9.error("Failed to apply constraints on the desktop stream for presenter mode", e) - } - } - const u = c ? null !== (a = r.track.getSettings().height) && void 0 !== a ? a : l : i; - let d; - try { - d = await this._createPresenterStreamEffect(u) - } catch (e) { - return N9.error("Failed to unmute Presenter Video", e), void(e => { - APP.store.dispatch(GM(e)) - })(e) - } - try { - await r.setEffect(d), APP.store.dispatch(cf(e, eo)), this.setVideoMuteStatus() - } catch (e) { - N9.error("Failed to apply the Presenter effect", e) - } - } - }, - _switchToScreenSharing(e = {}) { - return this.videoSwitchInProgress ? Promise.reject("Switch in progress.") : (this.videoSwitchInProgress = !0, this._createDesktopTrack(e).then((async t => { - let n = t.find((e => e.getType() === to)); - this._desktopAudioStream = t.find((e => e.getType() === Xi)); - const { - audioOnly: a = !1 - } = e; - if (a && (n.dispose(), n = void 0, !this._desktopAudioStream)) return Promise.reject(wL); - if (n && (N9.debug(`_switchToScreenSharing is using ${n} for useVideoStream`), await this.useVideoStream(n)), this._desktopAudioStream) { - const e = Zo(APP.store.getState()); - e ? (this._mixerEffect = new x9(this._desktopAudioStream), await e.setEffect(this._mixerEffect)) : await this.useAudioStream(this._desktopAudioStream), APP.store.dispatch(lW(!0)) - } - })).then((() => { - this.videoSwitchInProgress = !1, config.enableScreenshotCapture && APP.store.dispatch(E9(!0)), Ma(ln("started")), N9.log("Screen sharing started") - })).catch((e => (this.videoSwitchInProgress = !1, this._untoggleScreenSharing && this._untoggleScreenSharing(), this._handleScreenSharingError(e), Promise.reject(e))))) - }, - _handleScreenSharingError(e) { - if (e.name === Ct.SCREENSHARING_USER_CANCELED) return; - let t, n; - N9.error("failed to share local desktop", e), e.name === Ct.PERMISSION_DENIED ? (t = "dialog.screenSharingPermissionDeniedError", n = "dialog.screenSharingFailedTitle") : e.name === Ct.CONSTRAINT_FAILED ? (t = "dialog.cameraConstraintFailedError", n = "deviceError.cameraError") : e.name === Ct.SCREENSHARING_GENERIC_ERROR ? (t = "dialog.screenSharingFailed", n = "dialog.screenSharingFailedTitle") : e === wL && (t = "notify.screenShareNoAudio", n = "notify.screenShareNoAudioTitle"), APP.UI.messageHandler.showError({ - descriptionKey: t, - titleKey: n - }) - }, - _setupListeners() { - R9.on(bt.CONFERENCE_JOINED, (() => { - this._onConferenceJoined() - })), R9.on(bt.CONFERENCE_LEFT, ((...e) => { - APP.store.dispatch(uN(0)), APP.store.dispatch(lN(R9, ...e)) - })), R9.on(bt.CONFERENCE_UNIQUE_ID_SET, ((...e) => { - R9.sessionId = R9.getMeetingUniqueId(), APP.store.dispatch(function(e) { - return { - type: YI, - conference: e - } - }(R9, ...e)) - })), R9.on(bt.AUTH_STATUS_CHANGED, ((e, t) => APP.store.dispatch(function(e, t) { - return { - type: qI, - authEnabled: e, - authLogin: t - } - }(e, t)))), R9.on(bt.PARTCIPANT_FEATURES_CHANGED, (e => { - APP.store.dispatch(rk(e)) - })), R9.on(bt.USER_JOINED, ((e, t) => { - pI(APP.store, R9, t), t.isHidden() || (APP.store.dispatch(rk(t)), N9.log(`USER ${e} connected:`, t), APP.UI.addUser(t)) - })), R9.on(bt.USER_LEFT, ((e, t) => { - hI(APP.store, R9, t), t.isHidden() || N9.log(`USER ${e} LEFT:`, t) - })), R9.on(bt.USER_STATUS_CHANGED, ((e, t) => { - APP.store.dispatch(ok(e, t)); - const n = R9.getParticipantById(e); - n && APP.UI.updateUserStatus(n, t) - })), R9.on(bt.USER_ROLE_CHANGED, ((e, t) => { - this.isLocalId(e) ? (N9.info(`My role changed, new role: ${t}`), APP.store.dispatch(function(e) { - return (t, n) => { - const a = Rh(n); - if (a) return t(sk(a.id, e)) - } - }(t)), APP.API.notifyUserRoleChanged(e, t)) : APP.store.dispatch(sk(e, t)) - })), R9.on(bt.TRACK_ADDED, (e => { - e && !e.isLocal() && APP.store.dispatch(ps(e)) - })), R9.on(bt.TRACK_REMOVED, (e => { - e && !e.isLocal() && APP.store.dispatch(ms(e)) - })), R9.on(bt.TRACK_AUDIO_LEVEL_CHANGED, ((e, t) => { - const n = Zo(APP.store.getState()); - let a = t; - this.isLocalId(e) && (null == n ? void 0 : n.isMuted()) && (a = 0), config.debug && (this.audioLevelsMap[e] = a, config.debugAudioLevels && N9.log(`AudioLevel:${e}/${a}`)), APP.UI.setAudioLevel(e, a) - })), R9.on(bt.TRACK_MUTE_CHANGED, ((e, t) => { - t && (APP.store.dispatch(ck(t, e)), this.isSharingScreen && e.isVideoTrack() && (N9.debug("TRACK_MUTE_CHANGED while screen sharing"), this._turnScreenSharingOff(!1))) - })), R9.on(bt.SUBJECT_CHANGED, (e => APP.store.dispatch(cN(e)))), R9.on(bt.LAST_N_ENDPOINTS_CHANGED, ((e, t) => APP.UI.handleLastNEndpoints(e, t))), R9.on(bt.P2P_STATUS, ((e, t) => APP.store.dispatch(function(e) { - return { - type: QI, - p2p: e - } - }(t)))), R9.on(bt.PARTICIPANT_CONN_STATUS_CHANGED, ((e, t) => APP.store.dispatch(nk(e, t)))), R9.on(bt.DOMINANT_SPEAKER_CHANGED, ((e, t) => APP.store.dispatch(Qv(e, t, R9)))), R9.on(bt.CONFERENCE_CREATED_TIMESTAMP, (e => APP.store.dispatch(uN(e)))), R9.on(bt.CONNECTION_INTERRUPTED, (() => { - APP.store.dispatch(ek(St.INTERRUPTED)) - })), R9.on(bt.CONNECTION_RESTORED, (() => { - APP.store.dispatch(ek(St.ACTIVE)) - })), R9.on(bt.DISPLAY_NAME_CHANGED, ((e, t) => { - const n = Lh(t); - APP.store.dispatch(lk({ - conference: R9, - id: e, - name: n - })), APP.API.notifyDisplayNameChanged(e, { - displayName: n, - formattedDisplayName: iF(n || interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME) - }) - })), R9.on(bt.BOT_TYPE_CHANGED, ((e, t) => { - APP.store.dispatch(lk({ - conference: R9, - id: e, - botType: t - })) - })), R9.on(bt.ENDPOINT_MESSAGE_RECEIVED, ((...e) => { - if (APP.store.dispatch(Fa(...e)), e && e.length >= 2) { - const [t, n] = e; - n.name === Ut && APP.API.notifyEndpointTextMessageReceived({ - senderInfo: { - jid: t._jid, - id: t._id - }, - eventData: n - }) - } - })), R9.on(bt.LOCK_STATE_CHANGED, ((...e) => APP.store.dispatch(fN(R9, ...e)))), R9.on(bt.KICKED, ((e, t, n) => { - if (n) { - const e = Rh(APP.store.getState()); - APP.store.dispatch(lk({ - conference: R9, - id: e.id, - isReplaced: n - })), APP.API.notifyReadyToClose() - } - APP.store.dispatch(mN(R9, e)) - })), R9.on(bt.PARTICIPANT_KICKED, ((e, t) => { - APP.store.dispatch(uk(e, t)) - })), R9.on(bt.SUSPEND_DETECTED, (() => { - APP.store.dispatch(bV()) - })), APP.UI.addListener(sQ.AUDIO_MUTED, (e => { - this.muteAudio(e) - })), APP.UI.addListener(sQ.VIDEO_MUTED, (e => { - this.muteVideo(e) - })), R9.addCommandListener(this.commands.defaults.ETHERPAD, (({ - value: e - }) => { - APP.UI.initEtherpad(e) - })), APP.UI.addListener(sQ.EMAIL_CHANGED, this.changeLocalEmail.bind(this)), R9.addCommandListener(this.commands.defaults.EMAIL, ((e, t) => { - APP.store.dispatch(lk({ - conference: R9, - id: t, - email: e.value - })) - })), R9.addCommandListener(this.commands.defaults.AVATAR_URL, ((e, t) => { - APP.store.dispatch(lk({ - conference: R9, - id: t, - avatarURL: e.value - })) - })), APP.UI.addListener(sQ.NICKNAME_CHANGED, this.changeLocalDisplayName.bind(this)), R9.on(bt.START_MUTED_POLICY_CHANGED, (({ - audio: e, - video: t - }) => { - APP.store.dispatch(gN(e, t)) - })), R9.on(bt.STARTED_MUTED, (() => { - const e = R9.isStartAudioMuted(), - t = R9.isStartVideoMuted(), - n = Go(APP.store.getState()["features/base/tracks"]), - a = []; - APP.store.dispatch(lf(e)), APP.store.dispatch(cf(t)); - for (const o of n) { - var r, i; - e && (null === (r = o.jitsiTrack) || void 0 === r ? void 0 : r.getType()) === Xi && !ft.isWebKitBased() && a.push(this.useAudioStream(null)), t && (null === (i = o.jitsiTrack) || void 0 === i ? void 0 : i.getType()) === to && a.push(this.useVideoStream(null)) - } - Promise.allSettled(a).then((() => APP.UI.notifyInitiallyMuted())) - })), R9.on(bt.DATA_CHANNEL_OPENED, (() => { - APP.store.dispatch({ - type: $I - }) - })), APP.UI.addListener(sQ.HANGUP, (() => { - this.hangup(!0) - })), APP.UI.addListener(sQ.LOGOUT, (() => { - Uz.logout(R9).then((e => { - e ? zz.redirect(e) : this.hangup(!0) - })) - })), APP.UI.addListener(sQ.AUTH_CLICKED, (() => { - Uz.authenticate(R9) - })), APP.UI.addListener(sQ.VIDEO_DEVICE_CHANGED, (e => { - const t = Jo(APP.store.getState()), - n = this.isLocalVideoMuted(); - if (Ma(en("video", "input")), this.isSharingScreen && !n) { - const { - height: n - } = t.track.getSettings(); - return this.localPresenterVideo && this.localPresenterVideo.dispose(), this.localPresenterVideo = null, this._createPresenterStreamEffect(n, e).then((e => t.setEffect(e))).then((() => { - this.setVideoMuteStatus(), N9.log("Switched local video device while screen sharing and the video is unmuted"), this._updateVideoDeviceId() - })).catch((e => APP.store.dispatch(GM(e)))) - } - if (this.isSharingScreen && n) { - N9.log("Switched local video device: while screen sharing and the video is muted"); - const { - height: n - } = t.track.getSettings(); - this._updateVideoDeviceId(), this.localPresenterVideo && this.localPresenterVideo.dispose(), this.localPresenterVideo = null, this._createPresenterStreamEffect(n, e) - } else Vo({ - devices: ["video"], - cameraDeviceId: e, - micDeviceId: null - }).then((([e]) => this.isAudioOnly() || n ? e.mute().then((() => e)) : e)).then((e => (N9.log("Switching the local video device."), this.useVideoStream(e)))).then((() => { - N9.log("Switched local video device."), this._updateVideoDeviceId() - })).catch((e => (N9.error(`Switching the local video device failed: ${e}`), APP.store.dispatch(GM(e))))) - })), APP.UI.addListener(sQ.AUDIO_DEVICE_CHANGED, (e => { - const t = this.isLocalAudioMuted(), - n = "default" === e; - Ma(en("audio", "input")), Vo({ - devices: ["audio"], - cameraDeviceId: null, - micDeviceId: n ? IM(APP.store.getState(), "audioInput") : e - }).then((([e]) => t ? e.mute().then((() => e)) : e)).then((async e => (this._mixerEffect && (this._mixerEffect = new x9(this._desktopAudioStream), await e.setEffect(this._mixerEffect)), this.useAudioStream(e)))).then((() => { - const e = Zo(APP.store.getState()); - e && n && (e._realDeviceId = e.deviceId = "default"), N9.log(`switched local audio device: ${null==e?void 0:e.getDeviceId()}`), this._updateAudioDeviceId() - })).catch((e => { - APP.store.dispatch(KM(e)) - })) - })), APP.UI.addListener(sQ.TOGGLE_AUDIO_ONLY, (e => { - const t = APP.store.getState()["features/base/tracks"]; - Boolean(t.find((e => e.jitsiTrack && "video" === e.jitsiTrack.getType()))) || this.muteVideo(e); - const n = APP.UI.getLargeVideoID(); - n && APP.UI.updateLargeVideo(n, !0) - })), APP.UI.addListener(sQ.TOGGLE_SCREENSHARING, (({ - enabled: e, - audioOnly: t, - ignoreDidHaveVideo: n - }) => { - this.toggleScreenSharing(e, { - audioOnly: t - }, n) - })) - }, - onSuspendDetected() { - this.deviceChangeListener && JitsiMeetJS.mediaDevices.removeEventListener(wt.DEVICE_LIST_CHANGED, this.deviceChangeListener) - }, - _onConferenceJoined() { - APP.UI.initConference(), config.disableShortcuts || APP.keyboardshortcut.init(), APP.store.dispatch(sN(R9)) - }, - _initDeviceList(e = !1) { - const { - mediaDevices: t - } = JitsiMeetJS; - if (t.isDeviceListAvailable() && t.isDeviceChangeAvailable()) { - e && (this.deviceChangeListener = e => window.setTimeout((() => this._onDeviceListChanged(e)), 0), t.addEventListener(wt.DEVICE_LIST_CHANGED, this.deviceChangeListener)); - const { - dispatch: n - } = APP.store; - return n(YM()).then((e => { - this._updateAudioDeviceId(), this._updateVideoDeviceId(), APP.UI.onAvailableDevicesChanged(e) - })) - } - return Promise.resolve() - }, - _updateVideoDeviceId() { - const e = Jo(APP.store.getState()); - e && "camera" === e.videoType && APP.store.dispatch(bn({ - cameraDeviceId: e.getDeviceId() - })), this.localPresenterVideo && APP.store.dispatch(bn({ - cameraDeviceId: this.localPresenterVideo.getDeviceId() - })) - }, - _updateAudioDeviceId() { - const e = Zo(APP.store.getState()); - e && APP.store.dispatch(bn({ - micDeviceId: e.getDeviceId() - })) - }, - _onDeviceListChanged(e) { - const t = APP.store.getState()["features/base/devices"].availableDevices, - n = Zo(APP.store.getState()), - a = Jo(APP.store.getState()); - APP.store.dispatch(eI(e)); - const r = CL.getNewMediaDevicesAfterDeviceListChanged(e, this.isSharingScreen, a, n), - i = [], - o = this.isLocalAudioMuted(), - s = this.isLocalVideoMuted(), - l = { - audio: Boolean(r.audioinput), - video: Boolean(r.videoinput) - }; - if (void 0 !== r.audiooutput) { - const { - dispatch: e - } = APP.store, t = HM(r.audiooutput, e).catch(); - i.push(t) - } - l.audio && n && n.stopStream(), l.video && a && a.stopStream(); - const c = APP.store.getState()["features/base/devices"].availableDevices; - let u = [], - d = []; - void 0 === r.audiooutput && (u = c.audioOutput, d = t.audioOutput), l.audio || (u = u.concat(c.audioInput), d = d.concat(t.audioInput)), u.length > 0 && APP.store.dispatch(tI(u, d)), l.video || APP.store.dispatch(tI(c.videoInput, t.videoInput)); - const p = "default" === r.audioinput; - return l.video && this.isLocalVideoMuted() && (l.video = !1, APP.store.dispatch(bn({ - cameraDeviceId: r.videoinput - })), delete r.videoinput, N9.debug("_onDeviceListChanged: Removing the current video track."), this.useVideoStream(null)), i.push(CL.createLocalTracksAfterDeviceListChanged(Vo, r.videoinput, p ? IM(APP.store.getState(), "audioInput") : r.audioinput).then((e => { - const t = e.map((e => e.isVideoTrack() && s || e.isAudioTrack() && o ? e.mute() : Promise.resolve())); - return Promise.all(t).then((() => Promise.all(Object.keys(l).map((t => { - if (l[t]) { - const n = "audio" === t ? this.useAudioStream.bind(this) : this.useVideoStream.bind(this), - a = e.find((e => e.getType() === t)) || null; - return n(a).then((() => { - (null == a ? void 0 : a.isAudioTrack()) && p && (a._realDeviceId = a.deviceId = "default"), "audio" === t ? this._updateAudioDeviceId() : this._updateVideoDeviceId() - })) - } - return Promise.resolve() - }))))) - })).then((() => { - o && (Ma(mn("audio", "device list changed")), N9.log("Audio mute: device list changed"), Y9(!0)), !this.isSharingScreen && s && (Ma(mn("video", "device list changed")), N9.log("Video mute: device list changed"), G9(!0)) - }))), Promise.all(i).then((() => { - APP.UI.onAvailableDevicesChanged(e) - })) - }, - updateAudioIconEnabled() { - const e = Zo(APP.store.getState()), - t = APP.store.getState()["features/base/devices"].availableDevices.audioInput, - n = (t ? t.length : 0) > 0 || Boolean(e); - APP.store.dispatch(function(e) { - return { - type: nf, - available: e - } - }(n)), APP.API.notifyAudioAvailabilityChanged(n) - }, - updateVideoIconEnabled() { - const e = APP.store.getState()["features/base/devices"].availableDevices.videoInput, - t = e ? e.length : 0, - n = Jo(APP.store.getState()), - a = t > 0 || Boolean(n); - APP.store.dispatch(function(e) { - return { - type: rf, - available: e - } - }(a)), APP.API.notifyVideoAvailabilityChanged(a) - }, - hangup(e = !1) { - let t; - APP.store.dispatch(((e, t) => { - const n = t(), - { - enabled: a - } = n["features/remote-control"].receiver; - if (!a) return; - const { - connection: r - } = n["features/base/connection"], { - conference: i - } = n["features/base/conference"]; - r && i ? (I0.log("Remote control receiver disabled."), e({ - type: b0, - enabled: !1 - }), e(K0(!0)), r.removeFeature(E0), i.off(bt.ENDPOINT_MESSAGE_RECEIVED, U0)) : I0.error("Couldn't enable the remote receiver! The connection or conference instance is undefined!") - })), this._stopProxyConnection(), APP.store.dispatch(ls()), this._localTracksInitialized = !1, this.deviceChangeListener && JitsiMeetJS.mediaDevices.removeEventListener(wt.DEVICE_LIST_CHANGED, this.deviceChangeListener), APP.UI.removeAllListeners(), t = e ? APP.store.dispatch(function(e) { - return (t, n) => { - const a = n(), - { - feedbackPercentage: r = 100 - } = a["features/base/config"]; - if (config.iAmRecorder); - else { - if (a["features/base/dialog"].component === eV) return Promise.reject("FeedbackRequestInProgress"); - if (a["features/feedback"].submitted) return Promise.resolve({ - feedbackSubmitted: !0, - showThankYou: !0 - }); - if (e.isCallstatsEnabled() && r > 100 * Math.random()) return new Promise((a => { - t(aV(e, (() => { - const { - submitted: e - } = n()["features/feedback"]; - a({ - feedbackSubmitted: e, - showThankYou: !1 - }) - }))) - })) - } - return Promise.resolve({ - feedbackSubmitted: !1, - showThankYou: !0 - }) - } - }(R9)).catch((() => Promise.resolve(!1))) : Promise.resolve(!0), Promise.all([t, this.leaveRoomAndDisconnect()]).then((e => { - this._room = void 0, R9 = void 0, interfaceConfig.SHOW_PROMOTIONAL_CLOSE_PAGE || APP.API.notifyReadyToClose(), APP.store.dispatch(XN(e[0])) - })) - }, - leaveRoomAndDisconnect: () => (APP.store.dispatch(hN(R9)), R9 && R9.isJoined() ? R9.leave().then(Z9, Z9) : Z9()), - changeLocalEmail(e = "") { - const t = Rh(APP.store.getState()), - n = String(e).trim(); - if (n === t.email) return; - const a = t.id; - APP.store.dispatch(lk({ - id: a, - local: !0, - email: n - })), APP.store.dispatch(bn({ - email: n - })), APP.API.notifyEmailChanged(a, { - email: n - }), V9(U9.EMAIL, n) - }, - changeLocalAvatarUrl(e = "") { - const { - avatarURL: t, - id: n - } = Rh(APP.store.getState()), a = String(e).trim(); - a !== t && (APP.store.dispatch(lk({ - id: n, - local: !0, - avatarURL: a - })), APP.store.dispatch(bn({ - avatarURL: a - })), V9(U9.AVATAR_URL, e)) - }, - sendEndpointMessage(e, t) { - R9.sendEndpointMessage(e, t) - }, - addListener(e, t) { - z9.addListener(e, t) - }, - removeListener(e, t) { - z9.removeListener(e, t) - }, - changeLocalDisplayName(e = "") { - const t = Lh(e), - { - id: n, - name: a - } = Rh(APP.store.getState()); - t !== a && (APP.store.dispatch(lk({ - id: n, - local: !0, - name: t - })), APP.store.dispatch(bn({ - displayName: t - }))) - }, - onProxyConnectionEvent(e) { - this._proxyConnection || (this._proxyConnection = new JitsiMeetJS.ProxyConnectionService({ - jitsiConnection: APP.connection, - convertVideoToDesktop: !0, - onConnectionClosed: () => { - this._untoggleScreenSharing && this._untoggleScreenSharing() - }, - onSendMessage: (e, t) => APP.API.sendProxyConnectionEvent({ - data: t, - to: e - }), - onRemoteStream: e => { - if ("desktop" !== e.videoType) return N9.warn("Received a non-desktop stream to proxy."), void e.dispose(); - this.toggleScreenSharing(void 0, { - desktopStream: e - }) - } - })), this._proxyConnection.processMessage(e) - }, - setVideoMuteStatus() { - APP.UI.setVideoMuted(this.getMyUserId()) - }, - setAudioMuteStatus(e) { - APP.UI.setAudioMuted(this.getMyUserId(), e), APP.API.notifyAudioMutedStatusChanged(e) - }, - submitFeedback(e = -1, t = "") { - (-1 === e || e >= 1 && e <= 5) && APP.store.dispatch(rV(e, t, R9)) - }, - _stopProxyConnection() { - this._proxyConnection && this._proxyConnection.stop(), this._proxyConnection = null - } - }; - - function eee(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - tee(e, t, n[t]) - })) - } - return e - } - - function tee(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const nee = { - maxReceiverVideoQuality: w8.ULTRA, - minHeightForQualityLvl: new Map, - preferredVideoQuality: w8.ULTRA - }; - - function aee(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - ree(e, t, n[t]) - })) - } - return e - } - - function ree(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nee.minHeightForQualityLvl.set(360, w8.STANDARD), nee.minHeightForQualityLvl.set(720, w8.HIGH), et.register("features/video-quality-persistent-storage"), nt.register("features/video-quality-persistent-storage", ((e = {}, t) => { - if (t.type === I8) { - const { - preferredVideoQuality: n - } = t; - return eee({}, e, { - persistedPrefferedVideoQuality: n - }) - } - return e - })), nt.register("features/video-quality", ((e = nee, t) => { - switch (t.type) { - case Rn: - return function(e, { - config: t - }) { - var n; - const a = null == t || null === (n = t.videoQuality) || void 0 === n ? void 0 : n.minHeightForQualityLvl, - r = function(e) { - if ("object" != typeof e || Object.keys(e).map((e => Number(e))).find((e => null === e || isNaN(e) || e < 0))) return; - const t = Object.keys(e).map((e => Number(e))).sort(((e, t) => e - t)), - n = new Map; - for (const a of t) { - const t = e[a], - r = S8[t]; - if (!r) return; - n.set(a, r) - } - return n - }(a); - return a && !r && z8.error("Invalid config value videoQuality.minHeightForQualityLvl"), r ? Le(e, "minHeightForQualityLvl", r) : e - }(e, t); - case N8: - return Le(e, "maxReceiverVideoQuality", t.maxReceiverVideoQuality); - case I8: { - const { - preferredVideoQuality: n - } = t; - return eee({}, e, { - preferredVideoQuality: n - }) - } - } - return e - })); - const iee = We().getLogger("modules/API/API.js"); - let oee = {}; - const see = mV(); - let lee = !0, - cee = !0; - - function uee(e) { - const { - clientX: t, - clientY: n, - movementX: a, - movementY: r, - offsetX: i, - offsetY: o, - pageX: s, - pageY: l, - x: c, - y: u, - screenX: d, - screenY: p - } = e; - return { - clientX: t, - clientY: n, - movementX: a, - movementY: r, - offsetX: i, - offsetY: o, - pageX: s, - pageY: l, - x: c, - y: u, - screenX: d, - screenY: p - } - } - const dee = new class { - init() { - ("number" == typeof Bt || Mz()) && (this._enabled = !0, oee = { - "approve-video": e => { - Jh(APP.store.getState()) && APP.store.dispatch(Vm(e)) - }, - "ask-to-unmute": e => { - Jh(APP.store.getState()) && APP.store.dispatch(Hm(e)) - }, - "display-name": e => { - Ma(Jt("display.name.changed")), APP.conference.changeLocalDisplayName(e) - }, - "mute-everyone": e => { - const t = e || Xi; - Ma(Jt("muted-everyone")); - const n = Rh(APP.store.getState()), - a = []; - n && Gh(n) && a.push(n.id), APP.store.dispatch(HQ(a, t)) - }, - "toggle-lobby": e => { - APP.store.dispatch(e8(e)) - }, - password: e => { - const { - conference: t, - passwordRequired: n - } = APP.store.getState()["features/base/conference"]; - n ? (Ma(Jt("submit.password")), APP.store.dispatch(yN(n, n.join, e))) : (Ma(Jt("password.changed")), APP.store.dispatch(yN(t, t.lock, e))) - }, - "pin-participant": e => { - iee.debug("Pin participant command received"), Ma(Jt("participant.pinned")), APP.store.dispatch(dk(e)) - }, - "proxy-connection-event": e => { - APP.conference.onProxyConnectionEvent(e) - }, - "reject-participant": (e, t) => { - if (!Jh(APP.store.getState())) return; - const n = t === to ? Gm : Ym; - APP.store.dispatch(n(e)) - }, - "resize-large-video": (e, t) => { - iee.debug("Resize large video command received"), Ma(Jt("largevideo.resized")), APP.store.dispatch(function(e, t) { - return (n, a) => { - if (a()["features/large-video"]) { - const n = O3.getLargeVideo(); - n.updateContainerSize(e, t), n.resize() - } - } - }(e, t)) - }, - "send-tones": (e = {}) => { - const { - duration: t, - tones: n, - pause: a - } = e; - APP.store.dispatch(function(e, t, n) { - return { - type: XI, - tones: e, - duration: t, - pause: n - } - }(n, t, a)) - }, - "set-follow-me": e => { - iee.debug("Set follow me command received"), Ma(Jt(e ? "follow.me.set" : "follow.me.unset")), APP.store.dispatch(bN(e)) - }, - "set-large-video-participant": e => { - iee.debug("Set large video participant command received"), Ma(Jt("largevideo.participant.set")), APP.store.dispatch(lX(e)) - }, - "set-participant-volume": (e, t) => { - APP.store.dispatch(JJ(e, t)) - }, - subject: e => { - Ma(Jt("subject.changed")), APP.store.dispatch(vN(e)) - }, - "submit-feedback": e => { - Ma(Jt("submit.feedback")), APP.conference.submitFeedback(e.score, e.message) - }, - "toggle-audio": () => { - Ma(Jt("toggle-audio")), iee.log("Audio toggle: API command received"), APP.conference.toggleAudioMuted(!1) - }, - "toggle-video": () => { - Ma(Jt("toggle-video")), iee.log("Video toggle: API command received"), APP.conference.toggleVideoMuted(!1) - }, - "toggle-film-strip": () => { - Ma(Jt("film.strip.toggled")), APP.UI.toggleFilmstrip() - }, - "toggle-camera": () => { - os(APP.store.getState()) && APP.store.dispatch(_s()) - }, - "toggle-camera-mirror": () => { - const e = APP.store.getState(), - { - localFlipX: t - } = e["features/base/settings"]; - APP.store.dispatch(bn({ - localFlipX: !t - })) - }, - "toggle-chat": () => { - Ma(Jt("chat.toggled")), APP.store.dispatch(G3()) - }, - "toggle-moderation": (e, t) => { - if (!Jh(APP.store.getState())) return; - const n = t === to ? Qm : Zm, - a = t === to ? Jm : $m; - e ? APP.store.dispatch(n()) : APP.store.dispatch(a()) - }, - "toggle-raise-hand": () => { - const e = Rh(APP.store.getState()); - if (!e) return; - const { - raisedHand: t - } = e; - Ma(Jt("raise-hand.toggled")), APP.store.dispatch(pk(!t)) - }, - "toggle-share-audio": () => { - Ma(Jt("audio.screen.sharing.toggled")), eW() ? APP.store.dispatch(cW()) : iee.error("Audio screen sharing is not supported by the current platform!") - }, - "toggle-share-screen": (e = {}) => { - var t; - Ma(Jt("screen.sharing.toggled")), t = e.enable, c.default.isDesktopSharingEnabled() && APP.store.dispatch(uW(t)) - }, - "toggle-tile-view": () => { - Ma(Jt("tile-view.toggled")), APP.store.dispatch(zk()) - }, - "set-tile-view": e => { - APP.store.dispatch(Nk(e)) - }, - "video-hangup": (e = !0) => { - Ma(Jt("video.hangup")), APP.conference.hangup(e) - }, - email: e => { - Ma(Jt("email.changed")), APP.conference.changeLocalEmail(e) - }, - "avatar-url": e => { - Ma(Jt("avatar.url.changed")), APP.conference.changeLocalAvatarUrl(e) - }, - "send-chat-message": (e, t, n = !1) => { - if (iee.debug("Send chat message command received"), t) { - const e = Fh(APP.store.getState(), t); - if (!e) return void iee.error(`Participant with id ${t} not found!`); - APP.store.dispatch(V3(e)) - } else APP.store.dispatch(V3()); - APP.store.dispatch(H3(e, n)) - }, - "send-endpoint-text-message": (e, t) => { - iee.debug("Send endpoint message command received"); - try { - APP.conference.sendEndpointMessage(e, { - name: Ut, - text: t - }) - } catch (e) { - iee.error("Failed sending endpoint text message", e) - } - }, - "toggle-e2ee": e => { - iee.debug("Toggle E2EE key command received"), APP.store.dispatch(x4(e)) - }, - "set-video-quality": e => { - iee.debug("Set video quality command received"), Ma(Jt("set.video.quality")), APP.store.dispatch(function(e) { - return t => { - e < w8.LOW ? z8.error(`Invalid frame height for video quality - ${e}`) : t(R8(Math.min(e, w8.HIGH))) - } - }(e)) - }, - "start-share-video": e => { - iee.debug("Share video command received"), Ma(Jt("share.video.start")), APP.store.dispatch(R2(e)) - }, - "stop-share-video": () => { - iee.debug("Share video command received"), Ma(Jt("share.video.stop")), APP.store.dispatch(z2()) - }, - "start-recording": ({ - mode: e, - dropboxToken: t, - shouldShare: n, - rtmpStreamKey: a, - rtmpBroadcastID: r, - youtubeStreamKey: i, - youtubeBroadcastID: o - }) => { - const s = APP.store.getState(), - l = yI(s); - if (!l) return void iee.error("Conference is not defined"); - if (t && !Zz(s)) return void iee.error("Failed starting recording: dropbox is not enabled on this deployment"); - if (e === Et.mode.STREAM && !i && !a) return void iee.error("Failed starting recording: missing youtube or RTMP stream key"); - let c; - if (e === Et.mode.FILE) c = t ? { - mode: Et.mode.FILE, - appData: JSON.stringify({ - file_recording_metadata: { - upload_credentials: { - service_name: iR, - token: t - } - } - }) - } : { - mode: Et.mode.FILE, - appData: JSON.stringify({ - file_recording_metadata: { - share: n - } - }) - }; - else { - if (e !== Et.mode.STREAM) return void iee.error("Invalid recording mode provided"); - c = { - broadcastId: o || r, - mode: Et.mode.STREAM, - streamId: i || a - } - } - l.startRecording(c) - }, - "stop-recording": e => { - const t = APP.store.getState(), - n = yI(t); - if (!n) return void iee.error("Conference is not defined"); - if (![Et.mode.FILE, Et.mode.STREAM].includes(e)) return void iee.error("Invalid recording mode provided!"); - const a = sR(t, e); - a && a.id ? n.stopRecording(a.id) : iee.error("No recording or streaming session found") - }, - "initiate-private-chat": e => { - const t = APP.store.getState(), - n = Fh(t, e); - if (n) { - const { - isOpen: e - } = t["features/chat"]; - e || APP.store.dispatch(G3()), APP.store.dispatch(Y3(n)) - } else iee.error("No participant found for the given participantId") - }, - "cancel-private-chat": () => { - APP.store.dispatch(V3()) - }, - "kick-participant": e => { - APP.store.dispatch(Xv(e)) - }, - "overwrite-config": e => { - const t = Yn("config", e); - APP.store.dispatch(na(t)) - }, - "toggle-virtual-background": () => { - APP.store.dispatch(lP(i7)) - } - }, see.on("event", (({ - data: e, - name: t - }) => !(!t || !oee[t] || (oee[t](...e), 0)))), see.on("request", ((e, t) => { - const { - dispatch: n, - getState: a - } = APP.store; - if (H$(n, a, e, t)) return !0; - const { - name: r - } = e; - switch (r) { - case "capture-largevideo-screenshot": - APP.store.dispatch(((e, t) => { - var n; - const a = t(), - r = a["features/large-video"], - i = Promise.resolve(); - if (!r) return i; - const o = Qo(a["features/base/tracks"], to, r.participantId); - if (!o || !o.jitsiTrack) return i; - const s = o.jitsiTrack.getOriginalStream(); - if (!s) return i; - const l = document.getElementById("largeVideo"); - if (!l) return i; - const [c] = s.getVideoTracks(), { - height: u, - width: d - } = null !== (n = c.getSettings()) && void 0 !== n ? n : c.getConstraints(), p = document.createElement("canvas"), h = p.getContext("2d"); - p.style.display = "none", p.height = parseInt(u, 10), p.width = parseInt(d, 10), h.drawImage(l, 0, 0); - const m = p.toDataURL("image/png", 1); - return h.clearRect(0, 0, p.width, p.height), p.remove(), Promise.resolve(m) - })).then((e => { - let n; - e || (n = new Error("No large video found!")), t({ - error: n, - dataURL: e - }) - })); - break; - case "deployment-info": - t(APP.store.getState()["features/base/config"].deploymentInfo); - break; - case "invite": { - const { - invitees: n - } = e; - if (!Array.isArray(n) || 0 === n.length) { - t({ - error: new Error("Unexpected format of invitees") - }); - break - } - APP.store.dispatch(jW(n, !0)).then((e => { - let n, a; - e.length ? n = new Error("One or more invites failed!") : a = !0, t({ - error: n, - result: a - }) - })); - break - } - case "is-audio-muted": - t(APP.conference.isLocalAudioMuted()); - break; - case "is-moderation-on": { - const { - mediaType: n - } = e; - t(om(n || Xi, APP.store.getState())); - break - } - case "is-participant-force-muted": { - const n = APP.store.getState(), - { - participantId: a, - mediaType: r - } = e, - i = r || Xi, - o = Fh(n, a); - t(Cm(o, i, n)); - break - } - case "is-video-muted": - t(APP.conference.isLocalVideoMuted()); - break; - case "is-audio-available": - t(lee); - break; - case "is-video-available": - t(cee); - break; - case "is-sharing-screen": - t(Boolean(APP.conference.isSharingScreen)); - break; - case "get-content-sharing-participants": { - const e = a()["features/base/tracks"].filter((e => "desktop" === e.videoType)).map((e => e.participantId)); - t({ - sharingParticipantIds: e - }); - break - } - case "get-livestream-url": { - const e = APP.store.getState(); - let n; - if (yI(e)) { - const t = sR(e, Et.mode.STREAM); - n = null == t ? void 0 : t.liveStreamViewURL - } else iee.error("Conference is not defined"); - t({ - livestreamUrl: n - }); - break - } - case "get-custom-avatar-backgrounds": - t({ - avatarBackgrounds: APP.store.getState()["features/dynamic-branding"].avatarBackgrounds - }); - break; - default: - return !1 - } - return !0 - })), this.notifyBrowserSupport(JV())) - } - notifyLargeVideoVisibilityChanged(e) { - this._sendEvent({ - name: "large-video-visibility-changed", - isVisible: !e - }) - } - sendProxyConnectionEvent(e) { - this._sendEvent(aee({ - name: "proxy-connection-event" - }, e)) - } - _sendEvent(e = {}) { - this._enabled && see.sendEvent(e) - } - notifyChatUpdated(e, t) { - this._sendEvent({ - name: "chat-updated", - unreadCount: e, - isOpen: t - }) - } - notifySendingChatMessage(e, t) { - this._sendEvent({ - name: "outgoing-message", - message: e, - privateMessage: t - }) - } - notifyMouseEnter(e) { - this._sendEvent({ - name: "mouse-enter", - event: uee(e) - }) - } - notifyMouseLeave(e) { - this._sendEvent({ - name: "mouse-leave", - event: uee(e) - }) - } - notifyMouseMove(e) { - this._sendEvent({ - name: "mouse-move", - event: uee(e) - }) - } - notifyModerationChanged(e, t) { - this._sendEvent({ - name: "moderation-status-changed", - mediaType: e, - enabled: t - }) - } - notifyParticipantApproved(e, t) { - this._sendEvent({ - name: "moderation-participant-approved", - id: e, - mediaType: t - }) - } - notifyParticipantRejected(e, t) { - this._sendEvent({ - name: "moderation-participant-rejected", - id: e, - mediaType: t - }) - } - notifyVideoQualityChanged(e) { - this._sendEvent({ - name: "video-quality-changed", - videoQuality: e - }) - } - notifyReceivedChatMessage({ - body: e, - id: t, - nick: n, - privateMessage: a, - ts: r - } = {}) { - APP.conference.isLocalId(t) || this._sendEvent({ - name: "incoming-message", - from: t, - message: e, - nick: n, - privateMessage: a, - stamp: r - }) - } - notifyUserJoined(e, t) { - this._sendEvent(aee({ - name: "participant-joined", - id: e - }, t)) - } - notifyUserLeft(e) { - this._sendEvent({ - name: "participant-left", - id: e - }) - } - notifyUserRoleChanged(e, t) { - this._sendEvent({ - name: "participant-role-changed", - id: e, - role: t - }) - } - notifyAvatarChanged(e, t) { - this._sendEvent({ - name: "avatar-changed", - avatarURL: t, - id: e - }) - } - notifyEndpointTextMessageReceived(e) { - this._sendEvent({ - name: "endpoint-text-message-received", - data: e - }) - } - notifySharingParticipantsChanged(e) { - this._sendEvent({ - name: "content-sharing-participants-changed", - data: e - }) - } - notifyDeviceListChanged(e) { - this._sendEvent({ - name: "device-list-changed", - devices: e - }) - } - notifyDisplayNameChanged(e, { - displayName: t, - formattedDisplayName: n - }) { - this._sendEvent({ - name: "display-name-change", - displayname: t, - formattedDisplayName: n, - id: e - }) - } - notifyEmailChanged(e, { - email: t - }) { - this._sendEvent({ - name: "email-change", - email: t, - id: e - }) - } - notifyLog(e, t) { - this._sendEvent({ - name: "log", - logLevel: e, - args: t - }) - } - notifyConferenceJoined(e, t, n) { - this._sendEvent(aee({ - name: "video-conference-joined", - roomName: e, - id: t - }, n)) - } - notifyConferenceLeft(e) { - this._sendEvent({ - name: "video-conference-left", - roomName: e - }) - } - notifyDataChannelOpened() { - this._sendEvent({ - name: "data-channel-opened" - }) - } - notifyReadyToClose() { - this._sendEvent({ - name: "video-ready-to-close" - }) - } - notifySuspendDetected() { - this._sendEvent({ - name: "suspend-detected" - }) - } - notifyAudioMutedStatusChanged(e) { - this._sendEvent({ - name: "audio-mute-status-changed", - muted: e - }) - } - notifyVideoMutedStatusChanged(e) { - this._sendEvent({ - name: "video-mute-status-changed", - muted: e - }) - } - notifyAudioAvailabilityChanged(e) { - lee = e, this._sendEvent({ - name: "audio-availability-changed", - available: e - }) - } - notifyVideoAvailabilityChanged(e) { - cee = e, this._sendEvent({ - name: "video-availability-changed", - available: e - }) - } - notifyOnStageParticipantChanged(e) { - this._sendEvent({ - name: "on-stage-participant-changed", - id: e - }) - } - notifyOnCameraError(e, t) { - this._sendEvent({ - name: "camera-error", - type: e, - message: t - }) - } - notifyOnMicError(e, t) { - this._sendEvent({ - name: "mic-error", - type: e, - message: t - }) - } - notifyFeedbackSubmitted(e) { - this._sendEvent({ - name: "feedback-submitted", - error: e - }) - } - notifyFeedbackPromptDisplayed() { - this._sendEvent({ - name: "feedback-prompt-displayed" - }) - } - notifyFilmstripDisplayChanged(e) { - this._sendEvent({ - name: "filmstrip-display-changed", - visible: e - }) - } - notifyKickedOut(e, t) { - this._sendEvent({ - name: "participant-kicked-out", - kicked: e, - kicker: t - }) - } - notifyOnPasswordRequired() { - this._sendEvent({ - name: "password-required" - }) - } - notifyScreenSharingStatusChanged(e, t) { - this._sendEvent({ - name: "screen-sharing-status-changed", - on: e, - details: t - }) - } - notifyDominantSpeakerChanged(e) { - this._sendEvent({ - name: "dominant-speaker-changed", - id: e - }) - } - notifySubjectChanged(e) { - this._sendEvent({ - name: "subject-change", - subject: e - }) - } - notifyTileViewChanged(e) { - this._sendEvent({ - name: "tile-view-changed", - enabled: e - }) - } - notifyLocalStorageChanged(e) { - this._sendEvent({ - name: "local-storage-changed", - localStorageContent: e - }) - } - notifyRaiseHandUpdated(e, t) { - this._sendEvent({ - name: "raise-hand-updated", - handRaised: t, - id: e - }) - } - notifyRecordingStatusChanged(e, t, n) { - this._sendEvent({ - name: "recording-status-changed", - on: e, - mode: t, - error: n - }) - } - notifyError(e) { - this._sendEvent({ - name: "error-occurred", - error: e - }) - } - notifyToolbarButtonClicked(e) { - this._sendEvent({ - name: "toolbar-button-clicked", - key: e - }) - } - notifyBrowserSupport(e) { - this._sendEvent({ - name: "browser-support", - supported: e - }) - } - dispose() { - this._enabled && (this._enabled = !1) - } - }; - - function pee(e) { - const t = e.contentWindow.onmousemove; - e.contentWindow.onmousemove = function(n) { - t && t(n); - const a = document.createEvent("MouseEvents"), - r = e.getBoundingClientRect(); - a.initMouseEvent("mousemove", !0, !1, window, n.detail, n.screenX, n.screenY, n.clientX + r.left, n.clientY + r.top, n.ctrlKey, n.altKey, n.shiftKey, n.metaKey, n.button, null), e.dispatchEvent(a) - } - } - const hee = "etherpad"; - class mee extends k3 { - constructor(e) { - super(); - const t = document.createElement("iframe"); - t.id = "etherpadIFrame", t.src = e, t.frameBorder = 0, t.scrolling = "no", t.width = 640, t.height = 480, t.setAttribute("style", "visibility: hidden;"), this.container.appendChild(t), t.onload = function() { - document.domain = document.domain, pee(t), setTimeout((() => { - const e = t.contentDocument; - pee(e.getElementsByName("ace_outer")[0]), pee(e.getElementsByName("ace_inner")[0]) - }), 2e3) - }, this.iframe = t - } - get isOpen() { - return Boolean(this.iframe) - } - get container() { - return document.getElementById("etherpad") - } - resize(e, t) { - let n, a; - interfaceConfig.VERTICAL_FILMSTRIP ? (n = t - yH(), a = e - D2()) : (n = t - P2(), a = e), $(this.iframe).width(a).height(n) - } - show() { - const e = $(this.iframe), - t = $(this.container), - n = this; - return new Promise((a => { - e.fadeIn(300, (() => { - n.bodyBackground = document.body.style.background, document.body.style.background = "#eeeeee", e.css({ - visibility: "visible" - }), t.css({ - zIndex: 2 - }), APP.store.dispatch(c6(!0)), a() - })) - })) - } - hide() { - const e = $(this.iframe), - t = $(this.container); - return document.body.style.background = this.bodyBackground, new Promise((n => { - e.fadeOut(300, (() => { - e.css({ - visibility: "hidden" - }), t.css({ - zIndex: 0 - }), APP.store.dispatch(c6(!1)), n() - })) - })) - } - stayOnStage() { - return !0 - } - } - class fee { - constructor(e) { - this.eventEmitter = e, this.etherpad = null - } - get isOpen() { - return Boolean(this.etherpad) - } - isVisible() { - return O3.isLargeContainerTypeVisible(hee) - } - openEtherpad() { - this.etherpad = new mee(function(e) { - const t = qe(APP.store.getState), - { - documentUrl: n - } = t["features/etherpad"], - { - displayName: a - } = t["features/base/settings"]; - if (!n) return; - const r = new URLSearchParams(h6); - return a && r.append("userName", a), `${n}?${r.toString()}` - }()), O3.addLargeVideoContainer(hee, this.etherpad) - } - toggleEtherpad() { - this.isOpen || this.openEtherpad(); - const e = this.isVisible(); - O3.showLargeVideoContainer(hee, !e), APP.store.dispatch(c6(!e)) - } - } - const gee = { - OK: "dialog.OK", - CANCEL: "dialog.Cancel", - _getFormattedTitleString(e) { - const t = $("

"); - return t.addClass("aui-dialog2-header-main"), t.attr("data-i18n", e), $("
").append(t).html() - }, - _getDialogClasses: (e = "small") => ({ - box: "", - form: "", - prompt: `dialog aui-layer aui-dialog2 aui-dialog2-${e}`, - close: "aui-hide", - fade: "aui-blanket", - button: "button-control", - message: "aui-dialog2-content", - buttons: "aui-dialog2-footer", - defaultButton: "button-control_primary", - title: "aui-dialog2-header" - }), - openCenteredPopup(e, t, n, a) { - const r = window.screenX + window.innerWidth / 2 - t / 2, - i = window.screenY + window.innerHeight / 2 - n / 2, - o = window.open(e, "_blank", String(`top=${i}, left=${r}, width=${t}, height=${n}`)); - if (o && a) { - const e = window.setInterval((() => { - !1 !== o.closed && (window.clearInterval(e), a()) - }), 200) - } - return o - }, - showError(e) { - APP.store.dispatch(Wf(e)) - }, - showWarning(e) { - APP.store.dispatch(Gf(e)) - }, - participantNotification(e, t, n, a, r, i = 2500) { - APP.store.dispatch(Yf({ - descriptionArguments: r, - descriptionKey: a, - titleKey: t, - title: e - }, i)) - } - }, - bee = gee, - yee = {}, - vee = We().getLogger("modules/UI/UI.js"); - yee.messageHandler = bee; - const kee = new(o()); - let _ee; - yee.eventEmitter = kee; - const wee = new Map([ - [sQ.ETHERPAD_CLICKED, () => _ee && _ee.toggleEtherpad()], - [sQ.TOGGLE_FILMSTRIP, () => yee.toggleFilmstrip()] - ]); - yee.isFullScreen = function() { - return zz.isFullScreen() - }, yee.notifyGracefulShutdown = function() { - bee.showError({ - descriptionKey: "dialog.gracefulShutdown", - titleKey: "dialog.serviceUnavailable" - }) - }, yee.notifyReservationError = function(e, t) { - bee.showError({ - descriptionArguments: { - code: e, - msg: t - }, - descriptionKey: "dialog.reservationErrorMsg", - titleKey: "dialog.reservationError" - }) - }, yee.initConference = function() { - yee.showToolbar() - }, yee.start = function() { - if (O3.initLargeVideo(), O3.resizeVideoArea(), Sa()) $("body").addClass("mobile-browser"); - else if ($("body").addClass("desktop-browser"), void 0 !== config.backgroundAlpha) { - const e = zt($("body").css("background-color"), config.backgroundAlpha); - $("body").css("background-color", e) - } - config.iAmRecorder && (config.iAmSipGateway || APP.store.dispatch({ - type: If, - enabled: !1 - }), APP.store.dispatch(NV(!1))) - }, yee.registerListeners = () => wee.forEach(((e, t) => yee.addListener(t, e))), yee.bindEvents = () => { - function e() { - O3.onResize() - } - $(document).on("webkitfullscreenchange mozfullscreenchange fullscreenchange", e), $(window).resize(e) - }, yee.unbindEvents = () => { - $(document).off("webkitfullscreenchange mozfullscreenchange fullscreenchange"), $(window).off("resize") - }, yee.initEtherpad = e => { - if (_ee || !config.etherpad_base || !e) return; - vee.log("Etherpad is enabled"), _ee = new fee(kee); - const t = new URL(e, config.etherpad_base); - APP.store.dispatch(u6(t.toString())), config.openSharedDocumentOnJoin && _ee.toggleEtherpad() - }, yee.getSharedDocumentManager = () => _ee, yee.addUser = function(e) { - const t = e.getStatus(); - t && yee.updateUserStatus(e, t) - }, yee.updateUserStatus = (e, t) => { - const n = APP.store.getState() || {}, - { - calleeInfoVisible: a - } = n["features/invite"] || {}; - if (!t || a || Pv()) return; - const r = e.getDisplayName(); - bee.participantNotification(r, "", "connected", "dialOut.statusMessage", { - status: zz.escapeHtml(t) - }) - }, yee.toggleFilmstrip = function() { - const { - visible: e - } = APP.store.getState()["features/filmstrip"]; - APP.store.dispatch(UJ(!e)) - }, yee.setAudioMuted = function(e) { - APP.conference.isLocalId(e) && APP.conference.updateAudioIconEnabled() - }, yee.setVideoMuted = function(e) { - O3._updateLargeVideoIfDisplayed(e, !0), APP.conference.isLocalId(e) && APP.conference.updateVideoIconEnabled() - }, yee.updateLargeVideo = (e, t) => O3.updateLargeVideo(e, t), yee.addListener = function(e, t) { - kee.on(e, t) - }, yee.removeAllListeners = function() { - kee.removeAllListeners() - }, yee.emitEvent = (e, ...t) => kee.emit(e, ...t), yee.showToolbar = e => APP.store.dispatch(BV(e)), yee.dockToolbar = e => APP.store.dispatch(FV(e)), yee.refreshAvatarDisplay = function(e) { - O3.changeUserAvatar(e) - }, yee.notifyConnectionFailed = function(e) { - let t, n; - e ? (t = "dialog.connectErrorWithMsg", n = { - msg: e - }) : t = "dialog.connectError", bee.showError({ - descriptionArguments: n, - descriptionKey: t, - titleKey: "connection.CONNFAIL" - }) - }, yee.notifyMaxUsersLimitReached = function() { - bee.showError({ - hideErrorSupportLink: !0, - descriptionKey: "dialog.maxUsersLimitReached", - titleKey: "dialog.maxUsersLimitReachedTitle" - }) - }, yee.notifyInitiallyMuted = function() { - bee.participantNotification(null, "notify.mutedTitle", "connected", "notify.muted", null) - }, yee.handleLastNEndpoints = function(e, t) { - O3.onLastNEndpointsChanged(e, t) - }, yee.setAudioLevel = (e, t) => O3.setAudioLevel(e, t), yee.notifyTokenAuthFailed = function() { - bee.showError({ - descriptionKey: "dialog.tokenAuthFailed", - titleKey: "dialog.tokenAuthFailedTitle" - }) - }, yee.notifyFocusDisconnected = function(e, t) { - bee.participantNotification(null, "notify.focus", "disconnected", "notify.focusFail", { - component: e, - ms: t - }) - }, yee.onAvailableDevicesChanged = function() { - APP.conference.updateAudioIconEnabled(), APP.conference.updateVideoIconEnabled() - }, yee.getLargeVideoID = function() { - return O3.getLargeVideoID() - }, yee.getLargeVideo = function() { - return O3.getLargeVideo() - }; - const See = yee; - var Eee = n(7795), - xee = n.n(Eee); - - function Cee() { - const e = document.documentElement || {}; - $("[data-i18n]").localize(), e.lang = Ni.language - } - const Aee = new class { - constructor() { - xee().init(Ni, $, { - useOptionsAttr: !0 - }), Ni.isInitialized ? Cee() : Ni.on("initialized", Cee), Ni.on("languageChanged", Cee) - } - generateTranslationHTML(e, t) { - return `${Ni.t(e,t||void 0)}` - } - translateElement(e, t) { - e.localize(t || void 0) - } - }; - - function jee() { - var e = Jf(["\n background-color: ", ";\n color: ", ";\n\n a {\n color: ", ";\n }\n a:hover {\n color: ", ";\n }\n a:active {\n color: ", ";\n }\n a:focus {\n outline-color: ", ";\n }\n h1 {\n color: ", ";\n }\n h2 {\n color: ", ";\n }\n h3 {\n color: ", ";\n }\n h4 {\n color: ", ";\n }\n h5 {\n color: ", ";\n }\n h6 {\n color: ", ";\n }\n small {\n color: ", ";\n }\n"]); - return jee = function() { - return e - }, e - } - - function Pee(e) { - return "\n body { background: ".concat(e, "; }\n ") - } - - function Dee(e) { - return { - theme: Zf({}, Hg, { - mode: e - }) - } - } - var Tee = Ug.default.div(jee(), (function(e) { - return e.background - }), mb.text, mb.link, mb.linkHover, mb.linkActive, mb.linkOutline, mb.heading, mb.heading, mb.heading, mb.heading, mb.heading, mb.subtleHeading, mb.subtleText), - Oee = function(e) { - tb(r, e); - var t, n, a = (t = r, n = function() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; - try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 - } catch (e) { - return !1 - } - }(), function() { - var e, a = Xg(t); - if (n) { - var r = Xg(this).constructor; - e = Reflect.construct(a, arguments, r) - } else e = a.apply(this, arguments); - return ab(this, e) - }); - - function r(e) { - var t; - return Jg(this, r), Zf(_(t = a.call(this, e)), "getThemeMode", (function() { - return { - mode: t.state.theme[Hg].mode - } - })), t.state = Dee(e.mode), t - } - return Qg(r, [{ - key: "getChildContext", - value: function() { - return { - hasAtlaskitThemeProvider: !0 - } - } - }, { - key: "UNSAFE_componentWillMount", - value: function() { - if (!this.context.hasAtlaskitThemeProvider && Zy().canUseDOM) { - var e = Pee(this.props.background(this.state)); - this.stylesheet = document.createElement("style"), this.stylesheet.type = "text/css", this.stylesheet.innerHTML = e, document && document.head && document.head.appendChild(this.stylesheet) - } - } - }, { - key: "UNSAFE_componentWillReceiveProps", - value: function(e) { - if (e.mode !== this.props.mode) { - var t = Dee(e.mode); - if (this.stylesheet) { - var n = Pee(e.background(t)); - this.stylesheet.innerHTML = n - } - this.setState(t) - } - } - }, { - key: "componentWillUnmount", - value: function() { - this.stylesheet && document && document.head && (document.head.removeChild(this.stylesheet), delete this.stylesheet) - } - }, { - key: "render", - value: function() { - var e = this.props.children, - t = this.state.theme; - return x().createElement(Bg.Provider, { - value: this.getThemeMode - }, x().createElement(Ug.ThemeProvider, { - theme: t - }, x().createElement(Tee, { - background: this.props.background - }, e))) - } - }]), r - }(E.Component); - Zf(Oee, "defaultProps", { - mode: "light", - background: mb.background - }), Zf(Oee, "childContextTypes", { - hasAtlaskitThemeProvider: AS().bool - }), Zf(Oee, "contextTypes", { - hasAtlaskitThemeProvider: AS().bool - }); - var Mee = Oee; - const Iee = function(e) { - var t = e.children, - n = e.theme, - a = xq(), - r = x().useMemo((function() { - var e = null === a ? n : function(e, t) { - return "function" == typeof t ? t(e) : z({}, e, t) - }(a, n); - return null != e && (e[Cq] = null !== a), e - }), [n, a]); - return x().createElement(Eq.Provider, { - value: r - }, t) - }, - Nee = { - weightRegular: "400", - weightSemiBold: "600" - }; - - function zee(e, t) { - return Object.entries(e).reduce(((e, [n, a]) => Object.assign(e, { - [n]: t[a] || a - })), {}) - } - - function Ree(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Lee(e, t, n[t]) - })) - } - return e - } - - function Lee(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - const Fee = function({ - font: e, - colors: t, - colorMap: n, - shape: a, - spacing: r, - typography: i - }) { - return mH({ - props: { - MuiButtonBase: { - disableRipple: !0 - } - }, - spacing: r - }, { - palette: zee(n, t), - shape: a, - typography: Ree({ - font: e - }, i) - }) - }({ - font: Nee, - colors: { - error03: "#7A141F", - error04: "#A21B29", - error05: "#CB2233", - error06: "#E04757", - error08: "#EAA7AD", - primary01: "#00112D", - primary02: "#00225A", - primary03: "#003486", - primary04: "#0045B3", - primary05: "#0056E0", - primary06: "#246FE5", - primary07: "#669AEC", - primary08: "#99BBF3", - primary09: "#CCDDF9", - surface00: "#111111", - surface01: "#040404", - surface02: "#141414", - surface03: "#292929", - surface04: "#3D3D3D", - surface05: "#525252", - surface06: "#666", - surface07: "#858585", - surface08: "#A3A3A3", - surface09: "#C2C2C2", - surface10: "#E0E0E0", - surface11: "#FFF", - surface12: "#AAAAAA", - success04: "#189B55", - success05: "#1EC26A", - warning05: "#F8AE1A", - warning06: "#ED9E1B" - }, - colorMap: { - uiBackground: "surface01", - ui01: "surface02", - ui02: "surface03", - ui03: "surface04", - ui04: "surface05", - ui05: "surface06", - action01: "primary05", - action01Hover: "primary06", - action01Active: "primary04", - action01Focus: "primary08", - action01Disabled: "primary02", - action02: "surface04", - action02Hover: "surface05", - action02Active: "surface03", - action02Focus: "surface07", - action02Disabled: "surface02", - action03: "transparent", - action03Hover: "surface05", - action03Active: "surface03", - action03Focus: "surface07", - action03Disabled: "transparent", - actionDanger: "error05", - actionDangerHover: "error06", - actionDangerActive: "error04", - actionDangerFocus: "error08", - actionDangerDisabled: "error03", - bottomSheet: "surface00", - text01: "surface11", - text02: "surface09", - text03: "surface07", - text04: "surface12", - textError: "error06", - icon01: "surface11", - icon02: "surface09", - icon03: "surface07", - iconError: "error06", - field01: "surface01", - field01Hover: "surface03", - field01Focus: "primary05", - field01Disabled: "surface05", - field02: "surface11", - dividerColor: "surface12", - field02Hover: "primary09", - field02Focus: "primary05", - field02Disabled: "surface06", - section01: "surface10", - section01Active: "primary04", - section01Inactive: "surface01", - border01: "surface08", - border02: "surface06", - border03: "surface04", - borderError: "error06", - link01: "primary07", - link01Hover: "primary08", - link01Active: "primary06", - success01: "success05", - success02: "success05", - warning01: "warning05", - warning02: "warning06" - }, - spacing: [0, 4, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80], - shape: { - borderRadius: 6, - boxShadow: "inset 0px -1px 0px rgba(255, 255, 255, 0.15)" - }, - typography: { - labelRegular: { - fontSize: 12, - lineHeight: 16, - fontWeight: Nee.weightRegular, - letterSpacing: .16 - }, - labelBold: { - fontSize: 12, - lineHeight: 16, - fontWeight: Nee.weightSemiBold, - letterSpacing: .16 - }, - labelButton: { - fontSize: 14, - lineHeight: 24, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - labelButtonLarge: { - fontSize: 16, - lineHeight: 24, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - bodyShortRegular: { - fontSize: 14, - lineHeight: 18, - fontWeight: Nee.weightRegular, - letterSpacing: 0 - }, - bodyShortBold: { - fontSize: 14, - lineHeight: 18, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - bodyShortRegularLarge: { - fontSize: 16, - lineHeight: 24, - fontWeight: Nee.weightRegular, - letterSpacing: 0 - }, - bodyShortBoldLarge: { - fontSize: 16, - lineHeight: 24, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - bodyLongRegular: { - fontSize: 14, - lineHeight: 24, - fontWeight: Nee.weightRegular, - letterSpacing: 0 - }, - bodyLongBold: { - fontSize: 14, - lineHeight: 24, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - heading1: { - fontSize: 54, - lineHeight: 64, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - heading2: { - fontSize: 42, - lineHeight: 50, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - heading3: { - fontSize: 32, - lineHeight: 40, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - heading4: { - fontSize: 28, - lineHeight: 36, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - heading5: { - fontSize: 20, - lineHeight: 28, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - heading6: { - fontSize: 16, - lineHeight: 26, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - }, - heading7: { - fontSize: 14, - lineHeight: 24, - fontWeight: Nee.weightSemiBold, - letterSpacing: 0 - } - } - }); - - function qee(e) { - return E.createElement(Iee, { - theme: Fee - }, e.children) - } - const Bee = Je("features/chrome-banner"), - Uee = {}, - Hee = "hide_chrome_extension_banner"; - class Vee extends E.PureComponent { - constructor(e) { - super(e), this.state = { - dontShowAgainChecked: !1, - closePressed: !1, - shouldShow: !1 - }, this._onClosePressed = this._onClosePressed.bind(this), this._onInstallExtensionClick = this._onInstallExtensionClick.bind(this), this._shouldNotRender = this._shouldNotRender.bind(this), this._onDontShowAgainChange = this._onDontShowAgainChange.bind(this), this._onCloseKeyPress = this._onCloseKeyPress.bind(this), this._onInstallExtensionKeyPress = this._onInstallExtensionKeyPress.bind(this) - } - async componentDidUpdate(e) { - if (!this._isSupportedEnvironment()) return; - const { - bannerCfg: t - } = this.props, n = e.bannerCfg; - t.url && !n.url && Bee.info("Chrome extension URL found."), (t.chromeExtensionsInfo || []).length && !(n.chromeExtensionsInfo || []).length && Bee.info("Chrome extension(s) info found."); - const a = await xa(this.props.bannerCfg); - a && a.length && a.every((e => !e)) && !this.state.shouldShow && this.setState({ - shouldShow: !0 - }) - } - _isSupportedEnvironment() { - return interfaceConfig.SHOW_CHROME_EXTENSION_BANNER && ft.isChrome() && !ft.isTwa() && !Sa() && !this.props.isVpaas - } - _onClosePressed() { - Ma(Qt(!1)), this.setState({ - closePressed: !0 - }) - } - _onCloseKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClosePressed()) - } - _onInstallExtensionClick() { - Ma(Qt(!0)), window.open(this.props.bannerCfg.url), this.setState({ - closePressed: !0 - }) - } - _onInstallExtensionKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClosePressed()) - } - _shouldNotRender() { - if (!this._isSupportedEnvironment()) return !0; - const e = "true" === l.getItem(Hee); - return !this.props.bannerCfg.url || e || this.state.closePressed || !this.state.shouldShow || this.props.iAmRecorder - } - _onDontShowAgainChange(e) { - this.setState({ - dontShowAgainChecked: e.target.checked - }) - } - render() { - if (this._shouldNotRender()) return this.state.dontShowAgainChecked && l.setItem(Hee, "true"), null; - const { - t: e - } = this.props, t = this.props.conference ? "chrome-extension-banner chrome-extension-banner__pos_in_meeting" : "chrome-extension-banner"; - return x().createElement("div", { - className: t - }, x().createElement("div", { - "aria-aria-describedby": "chrome-extension-banner__text-container", - className: "chrome-extension-banner__container", - role: "banner" - }, x().createElement("div", { - className: "chrome-extension-banner__icon-container" - }), x().createElement("div", { - className: "chrome-extension-banner__text-container", - id: "chrome-extension-banner__text-container" - }, e("chromeExtensionBanner.installExtensionText")), x().createElement("div", { - "aria-label": e("chromeExtensionBanner.close"), - className: "chrome-extension-banner__close-container", - onClick: this._onClosePressed, - onKeyPress: this._onCloseKeyPress, - role: "button", - tabIndex: 0 - }, x().createElement(qs, { - className: "gray", - size: 12, - src: Ul - }))), x().createElement("div", { - className: "chrome-extension-banner__button-container" - }, x().createElement("div", { - "aria-labelledby": "chrome-extension-banner__button-text", - className: "chrome-extension-banner__button-open-url", - onClick: this._onInstallExtensionClick, - onKeyPress: this._onInstallExtensionKeyPress, - role: "button", - tabIndex: 0 - }, x().createElement("div", { - className: "chrome-extension-banner__button-text", - id: "chrome-extension-banner__button-text" - }, e("chromeExtensionBanner.buttonText")))), x().createElement("div", { - className: "chrome-extension-banner__checkbox-container" - }, x().createElement("label", { - className: "chrome-extension-banner__checkbox-label", - htmlFor: "chrome-extension-banner__checkbox", - id: "chrome-extension-banner__checkbox-label" - }, x().createElement("input", { - "aria-labelledby": "chrome-extension-banner__checkbox-label", - checked: this.state.dontShowAgainChecked, - id: "chrome-extension-banner__checkbox", - onChange: this._onDontShowAgainChange, - type: "checkbox" - }), " ", e("chromeExtensionBanner.dontShowAgain")))) - } - } - const Wee = Li(ze((e => ({ - bannerCfg: e["features/base/config"].chromeExtensionBanner || Uee, - conference: yI(e), - iAmRecorder: e["features/base/config"].iAmRecorder, - isVpaas: Rj(e) - })))(Vee)); - class Yee extends Pf { - componentDidMount() { - super.componentDidMount(), this._init.then((() => { - this._openURL(In(this.props.url) || this._getDefaultURL()) - })) - } - componentDidUpdate(e) { - const t = In(e.url), - n = In(this.props.url), - a = e.timestamp, - r = this.props.timestamp; - this._init.then((() => { - t === n && a === r || this._openURL(n || this._getDefaultURL()) - })) - } - _createExtraElement() { - return x().createElement(E.Fragment, null, x().createElement(YN, null)) - } - _getDefaultURL() { - return ga(this.state.store) - } - _openURL(e) { - this.state.store.dispatch(KN(In(e))) - } - } - - function Gee({ - getState: e - }) { - const { - waitForOwnerTimeoutID: t - } = e()["features/authentication"]; - t && clearTimeout(t) - } - - function Kee({ - getState: e - }) { - return e()["features/authentication"].waitForOwnerTimeoutID - } - Be.register((e => t => n => { - switch (n.type) { - case ez: - if (!iP(e, oz)) { - if (Kee(e)) return e.dispatch(Sz()), t(n); - e.dispatch(xz()), e.dispatch(XN()) - } - break; - case BI: { - const { - error: t - } = n; - let a; - t.name === gt.AUTHENTICATION_REQUIRED && (void 0 === t.recoverable && (t.recoverable = !0), a = t.recoverable), a ? e.dispatch((e => e({ - type: rz, - handler: () => e(((e, t) => { - const { - authRequired: n, - password: a - } = t()["features/base/conference"], r = Zn(APP.store.getState()); - n && e(dN(n)), n && n.join(a, r) - })), - timeoutMs: 5e3 - }))) : e.dispatch(Ez()); - break - } - case UI: - Kee(e) && e.dispatch(Ez()), e.dispatch(xz()); - break; - case HI: - e.dispatch(Ez()); - break; - case AI: - e.dispatch(xz()); - break; - case tz: - Gee(e), e.dispatch(oP(oz)); - break; - case rz: { - Gee(e); - const { - handler: t, - timeoutMs: a - } = n; - n.waitForOwnerTimeoutID = setTimeout(t, a), iP(e, vz) || e.dispatch(Sz()); - break - } - } - return t(n) - })); - const $ee = { - microphone: { - [Ct.CONSTRAINT_FAILED]: "dialog.micConstraintFailedError", - [Ct.GENERAL]: "dialog.micUnknownError", - [Ct.NOT_FOUND]: "dialog.micNotFoundError", - [Ct.PERMISSION_DENIED]: "dialog.micPermissionDeniedError", - [Ct.TIMEOUT]: "dialog.micTimeoutError" - }, - camera: { - [Ct.CONSTRAINT_FAILED]: "dialog.cameraConstraintFailedError", - [Ct.GENERAL]: "dialog.cameraUnknownError", - [Ct.NOT_FOUND]: "dialog.cameraNotFoundError", - [Ct.PERMISSION_DENIED]: "dialog.cameraPermissionDeniedError", - [Ct.UNSUPPORTED_RESOLUTION]: "dialog.cameraUnsupportedResolutionError", - [Ct.TIMEOUT]: "dialog.cameraTimeoutError" - } - }; - let Jee; - - function Zee({ - dispatch: e - }, t) { - return t.forEach((t => { - switch (t.kind) { - case "videoinput": - e(bn({ - userSelectedCameraDeviceId: t.deviceId, - userSelectedCameraDeviceLabel: t.label - })), e(QM(t.deviceId)); - break; - case "audioinput": - e(bn({ - userSelectedMicDeviceId: t.deviceId, - userSelectedMicDeviceLabel: t.label - })), e($M(t.deviceId)); - break; - case "audiooutput": - HM(t.deviceId, e, !0, t.label).then((() => DM.log("changed audio output device"))).catch((e => { - DM.warn("Failed to change audio output device.", "Default or previously set audio output device will", " be used instead.", e) - })) - } - })), !0 - } - Be.register((e => t => n => { - switch (n.type) { - case Ya: { - const t = t => { - e.dispatch(function(e) { - return { - type: PM, - permissions: e - } - }(t)) - }, - { - mediaDevices: n - } = c.default; - Jee = t, n.addEventListener(wt.PERMISSIONS_CHANGED, Jee), Promise.all([n.isDevicePermissionGranted("audio"), n.isDevicePermissionGranted("video")]).then((e => { - t({ - audio: e[0], - video: e[1] - }) - })).catch((() => {})); - break - } - case Ga: - "function" == typeof Jee && (c.default.mediaDevices.removeEventListener(wt.PERMISSIONS_CHANGED, Jee), Jee = void 0); - break; - case _M: { - if ("object" != typeof APP || !n.error) break; - const { - message: t, - name: a - } = n.error, r = $ee.camera[a], i = r || $ee.camera[Ct.GENERAL], o = r ? null : t, s = a === Ct.PERMISSION_DENIED ? "deviceError.cameraPermission" : "deviceError.cameraError"; - e.dispatch(Gf({ - description: o, - descriptionKey: i, - titleKey: s - }, 4e3)), iL(e.getState()) && e.dispatch(fL(s)); - break - } - case wM: { - if ("object" != typeof APP || !n.error) break; - const { - message: t, - name: a - } = n.error, r = $ee.microphone[a], i = r || $ee.microphone[Ct.GENERAL], o = r ? null : t, s = a === Ct.PERMISSION_DENIED ? "deviceError.microphonePermission" : "deviceError.microphoneError"; - e.dispatch(Gf({ - description: o, - descriptionKey: i, - titleKey: s - }, 4e3)), iL(e.getState()) && e.dispatch(fL(s)); - break - } - case SM: - iL(e.getState()) ? e.dispatch((a = n.deviceId, async (e, t) => { - try { - var n; - const r = t()["features/base/tracks"], - i = await st("audio", a); - e(ds(null === (n = Wo(r)) || void 0 === n ? void 0 : n.jitsiTrack, i)) - } catch (t) { - e(fL("prejoin.audioTrackError")), sL.log("Error replacing audio track", t) - } - })) : APP.UI.emitEvent(sQ.AUDIO_DEVICE_CHANGED, n.deviceId); - break; - case EM: - iL(e.getState()) ? e.dispatch(function(e) { - return async (t, n) => { - try { - var a; - const r = n()["features/base/tracks"], - i = _f(n()), - [o] = await Vo({ - cameraDeviceId: e, - devices: ["video"] - }, { - dispatch: t, - getState: n - }); - t(ds(null === (a = Ko(r)) || void 0 === a ? void 0 : a.jitsiTrack, o)), i && o.mute() - } catch (e) { - t(fL("prejoin.videoTrackError")), sL.log("Error replacing video track", e) - } - } - }(n.deviceId)) : APP.UI.emitEvent(sQ.VIDEO_DEVICE_CHANGED, n.deviceId); - break; - case xM: - if (function(e) { - const t = e => e.map((e => `\t\t${e.label}[${e.deviceId}]`)).join("\n"), - n = t(e.audioInput), - a = t(e.audioOutput), - r = t(e.videoInput); - DM.debug(`Device list updated:\naudioInput:\n${n}\naudioOutput:\n${a}\nvideoInput:\n${r}`) - }(RM(n.devices)), OM(e.getState())) return function({ - dispatch: e, - getState: t - }, n, a) { - const r = n(a), - i = t(), - { - pendingRequests: o - } = i["features/base/devices"]; - return o && 0 !== o.length ? (o.forEach((n => { - H$(e, t, n, n.responseCallback) - })), e({ - type: AM - }), r) : r - }(e, t, n); - break; - case jM: - ! function(e, t, n) { - const { - dispatch: a - } = e, r = t.filter((e => !n.find((t => t.deviceId === e.deviceId)))).reduce(((e, t) => (e[t.groupId] = e[t.groupId] || [], e[t.groupId].push(t), e)), {}); - Object.values(r).forEach((t => { - if (t.length < 1) return; - const n = t[0], - r = LM(n.label); - let i; - switch (n.kind) { - case "videoinput": - i = "notify.newDeviceCameraTitle"; - break; - case "audioinput": - case "audiooutput": - i = "notify.newDeviceAudioTitle" - } - a(Yf({ - description: r, - titleKey: i, - customActionNameKey: "notify.newDeviceAction", - customActionHandler: Zee.bind(void 0, e, t) - })) - })) - }(e, n.newDevices, n.oldDevices) - } - var a; - return t(n) - })); - const Qee = "SET_DYNAMIC_BRANDING_DATA", - Xee = "SET_DYNAMIC_BRANDING_FAILED", - ete = "SET_DYNAMIC_BRANDING_READY", - tte = (0, Ve.getLogger)("react/features/dynamic-branding/actions.js"); - Be.register((e => t => n => (n.type === Ya && e.dispatch((async function(e, t) { - const n = t(), - { - customizationReady: a - } = n["features/dynamic-branding"]; - if (!a) { - const t = await async function() { - const e = await dt(window.location.href), - { - dynamicBrandingUrl: t - } = e; - if (t) return t; - const { - brandingDataUrl: n - } = e, a = MH(); - return n && a ? `${n}?conferenceFqn=${encodeURIComponent(a)}` : void 0 - }(); - if (t) try { - const n = await _n(t); - return e({ - type: Qee, - value: n - }) - } catch (t) { - return tte.error("Error fetching branding data", t), e({ - type: Xee - }) - } - e({ - type: ete - }) - } - })), t(n)))); - const nte = Je("features/e2ee"); - - function ate(e, t) { - const n = t(); - Bh(qe(n)) >= 25 ? (e(j4(O4)), e(x4(!1))) : Bh(qe(n)) >= 20 ? e(j4(T4)) : e(j4(M4)) - } - Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - switch (a.type) { - case Ya: - e(Ki(P4, "e2eeOff.mp3")), e(Ki(D4, "e2eeOn.mp3")); - break; - case Ga: - e(Ji(P4)), e(Ji(D4)); - break; - case UI: - ate(e, t); - break; - case Hv: { - const { - id: i, - e2eeEnabled: o, - e2eeSupported: s - } = a.participant, l = Fh(t(), i), c = n(a); - if (o !== (null == l ? void 0 : l.e2eeEnabled) || s !== (null == l ? void 0 : l.e2eeSupported)) { - var r; - const n = t(); - let a = !0, - i = !0; - for (const [e, t] of Wh(n)) - if (t.e2eeEnabled || (i = !1), t.e2eeSupported || (a = !1), !i && !a) break; - (null === (r = Rh(n)) || void 0 === r ? void 0 : r.e2eeEnabled) || (i = !1), (0, Te.unstable_batchedUpdates)((() => { - e(C4(i)), e(A4(a)) - })) - } - return c - } - case qv: { - const r = n(a), - { - e2eeEnabled: i, - e2eeSupported: o, - local: s - } = a.participant, - { - everyoneEnabledE2EE: l - } = t()["features/e2ee"]; - if (1 === Bh(t) && (0, Te.unstable_batchedUpdates)((() => { - e(C4(i)), e(A4(o)) - })), l && !i && e(C4(!1)), s) return r; - const { - everyoneSupportE2EE: c - } = t()["features/e2ee"]; - return c && !o && e(A4(!1)), ate(e, t), r - } - case Uv: { - var i; - const r = Fh(t(), null === (i = a.participant) || void 0 === i ? void 0 : i.id) || {}, - s = n(a), - l = t(), - { - e2eeEnabled: c = !1, - e2eeSupported: u = !1 - } = r, - { - everyoneEnabledE2EE: d, - everyoneSupportE2EE: p - } = l["features/e2ee"]; - if (!d && !c || !p && !u) { - var o; - let t = !0, - n = !0; - for (const [e, a] of Wh(l)) - if (a.e2eeEnabled || (t = !1), a.e2eeSupported || (n = !1), !t && !n) break; - (null === (o = Rh(l)) || void 0 === o ? void 0 : o.e2eeEnabled) || (t = !1), (0, Te.unstable_batchedUpdates)((() => { - !d && t && e(C4(!0)), !p && n && e(A4(!0)) - })) - } - return ate(e, t), s - } - case _4: { - const n = yI(t); - if (n && n.isE2EEEnabled() !== a.enabled) { - nte.debug("E2EE will be " + (a.enabled ? "enabled" : "disabled")), n.toggleE2EE(a.enabled); - const r = Rh(t); - e(lk({ - e2eeEnabled: a.enabled, - id: r.id, - local: !0 - })); - const i = a.enabled ? D4 : P4; - e(Gi(i)) - } - break - } - } - return n(a) - })), at.register((e => yI(e)), ((e, { - dispatch: t - }, n) => { - n && t(x4(!1)) - })), at.register((e => Ok(e)), (e => { - APP.API.notifyTileViewChanged(e) - })), at.register((e => e["features/base/settings"].displayName), ((e, t) => { - const n = Rh(t.getState()); - if (n) { - const { - id: t - } = n; - APP.API.notifyDisplayNameChanged(t, { - displayName: e, - formattedDisplayName: iF(e, interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME) - }) - } - })), at.register((e => e["features/large-video"].participantId), (e => { - APP.API.notifyOnStageParticipantChanged(e) - })), Be.register((e => t => n => { - if (n.type === Gv) { - const { - id: a, - loadableAvatarUrl: r - } = n.participant, i = Fh(e.getState(), a), o = t(n); - return i && (r ? i.loadableAvatarUrl !== r && APP.API.notifyAvatarChanged(a, r) : APP.API.notifyAvatarChanged(a, i.name ? void 0 : new URL("images/avatar.png", function(e = window) { - const t = e.document.querySelector("base"); - if (t && t.href) return t.href; - const { - protocol: n, - host: a - } = e.location; - return `${n}//${a}` - }()).href)), o - } - const a = t(n); - switch (n.type) { - case BI: - n.conference && n.error.name === gt.PASSWORD_REQUIRED && APP.API.notifyOnPasswordRequired(); - break; - case UI: { - const t = e.getState(), - { - room: n - } = t["features/base/conference"], - { - loadableAvatarUrl: a, - name: r, - id: i - } = Rh(t); - APP.API.notifyConferenceJoined(n, i, { - displayName: r, - formattedDisplayName: iF(r, interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME), - avatarURL: a - }); - break - } - case $I: - APP.API.notifyDataChannelOpened(); - break; - case Nv: - APP.API.notifyDominantSpeakerChanged(n.participant.id); - break; - case JI: - APP.API.notifyKickedOut({ - id: Rh(e.getState()).id, - local: !0 - }, { - id: n.participant ? n.participant.getId() : void 0 - }); - break; - case _M: - n.error && APP.API.notifyOnCameraError(n.error.name, n.error.message); - break; - case wM: - n.error && APP.API.notifyOnMicError(n.error.name, n.error.message); - break; - case Bv: - APP.API.notifyKickedOut({ - id: n.kicked, - local: !1 - }, { - id: n.kicker - }); - break; - case Uv: - APP.API.notifyUserLeft(n.participant.id); - break; - case qv: { - const { - participant: e - } = n, { - id: t, - local: a, - name: r - } = e; - a || APP.API.notifyUserJoined(t, { - displayName: r, - formattedDisplayName: iF(r || interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME) - }); - break - } - case "PARTICIPANT_ROLE_CHANGED": - APP.API.notifyUserRoleChanged(n.participant.id, n.participant.role); - break; - case TJ: - APP.API.notifyFilmstripDisplayChanged(n.visible); - break; - case zH: - APP.API.notifyFeedbackSubmitted(n.error || "Unknown error"); - break; - case RH: - APP.API.notifyFeedbackSubmitted() - } - return a - })), Be.register((e => e => t => (t.type === ZJ && "object" == typeof APP && APP.keyboardshortcut.openDialog(), e(t)))), Be.register((({ - getState: e, - dispatch: t - }) => n => a => { - const r = n(a); - switch (a.type) { - case UI: { - const { - localRecording: n - } = e()["features/base/config"]; - if (!Boolean(n && n.enabled && "object" == typeof APP)) break; - F6.onStateChanged = e => { - if (e) { - const e = new Date; - t({ - type: m6, - recordingEngagedAt: e - }) - } else t({ - type: f6 - }) - }, F6.onWarning = (e, n) => { - t(Yf({ - titleKey: "localRecording.localRecording", - description: Ni.t(e, n) - }, 1e4)) - }, F6.onNotify = (e, n) => { - t(Yf({ - titleKey: "localRecording.localRecording", - description: Ni.t(e, n) - }, 1e4)) - }, "object" == typeof APP && "object" == typeof APP.keyboardshortcut && APP.keyboardshortcut.registerShortcut("L", null, (() => { - Ma(dn("local.recording")), t(lP(B6)) - }), "keyboardShortcuts.localRecording"), n.format && F6.switchFormat(n.format); - const { - conference: a - } = e()["features/base/conference"]; - F6.registerEvents(a); - break - } - case Ga: - F6.onStateChanged = null, F6.onNotify = null, F6.onWarning = null; - break; - case tf: - F6.setMuted(a.muted); - break; - case gn: { - const { - micDeviceId: t - } = e()["features/base/settings"]; - t && F6.setMicDevice(t); - break - } - } - return r - })); - const rte = "SET_NO_AUDIO_SIGNAL_NOTIFICATION_UID"; - - function ite(e) { - return { - type: rte, - uid: e - } - } - class ote extends E.Component { - render() { - const { - _dialIn: e, - _dialInfoPageUrl: t, - t: n - } = this.props; - return PR(e) ? x().createElement("div", null, n("toolbar.noAudioSignalDialInDesc"), " ", x().createElement("a", { - href: t, - rel: "noopener noreferrer", - target: "_blank" - }, n("toolbar.noAudioSignalDialInLinkDesc"))) : null - } - } - const ste = Li(ze((function(e) { - return { - _dialIn: e["features/invite"], - _dialInfoPageUrl: jR(e) - } - }))(ote)), - lte = "NO_AUDIO_SIGNAL_SOUND"; - Be.register((e => t => async n => { - const a = t(n), - { - dispatch: r - } = e; - switch (n.type) { - case Ya: - r(Ki(lte, "noAudioSignal.mp3")); - break; - case Ga: - r(Ji(lte)); - break; - case UI: - !async function({ - dispatch: e, - getState: t - }, n) { - const { - conference: a - } = n; - a.on(bt.AUDIO_INPUT_STATE_CHANGE, (n => { - const { - noAudioSignalNotificationUid: a - } = t()["features/no-audio-signal"]; - a && n && (e(Vf(a)), e(ite())) - })), a.on(bt.NO_AUDIO_INPUT, (async () => { - const { - noSrcDataNotificationUid: n - } = t()["features/base/no-src-data"]; - if (n) return; - const a = await c.default.getActiveAudioDevice(), - { - noAudioSignalNotificationUid: r - } = t()["features/no-audio-signal"]; - r && (e(Vf(r)), e(ite())); - let i, o, s = "toolbar.noAudioSignalDesc"; - "" !== a.deviceLabel && (s = "toolbar.noAudioSignalDescSuggestion", i = `Switch to ${LM(a.deviceLabel)}`, o = () => { - e(bn({ - userSelectedMicDeviceId: a.deviceId, - userSelectedMicDeviceLabel: a.deviceLabel - })), e($M(a.deviceId)) - }); - const l = await e(Yf({ - titleKey: "toolbar.noAudioSignalTitle", - description: x().createElement(ste, null), - descriptionKey: s, - customActionNameKey: i, - customActionHandler: o - })); - e(Gi(lte)), l && e(ite(l.uid)) - })) - }(e, n) - } - return a - })); - const cte = "SET_NOISY_AUDIO_INPUT_NOTIFICATION_UID"; - - function ute(e) { - return { - type: cte, - uid: e - } - } - const dte = "NOISY_AUDIO_INPUT_SOUND"; - Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case Ya: - e.dispatch(Ki(dte, "noisyAudioInput.mp3")); - break; - case Ga: - e.dispatch(Ji(dte)); - break; - case UI: { - const { - dispatch: t, - getState: a - } = e, { - conference: r - } = n; - r.on(bt.TRACK_MUTE_CHANGED, (e => { - const { - noisyAudioInputNotificationUid: n - } = a()["features/noise-detection"]; - n && e.isAudioTrack() && e.isLocal() && e.isMuted() && (t(Vf(n)), t(ute())) - })), r.on(bt.NOISY_MIC, (async () => { - const e = await t(Yf({ - titleKey: "toolbar.noisyAudioInputTitle", - descriptionKey: "toolbar.noisyAudioInputDesc" - })); - t(Gi(dte)), e && t(ute(e.uid)) - })); - break - } - } - return a - })); - class pte extends E.Component { - render() { - const { - t: e - } = this.props; - return x().createElement("div", null, e("notify.oldElectronClientDescription1"), x().createElement("a", { - href: "https://github.com/jitsi/jitsi-meet-electron/releases/latest", - rel: "noopener noreferrer", - target: "_blank" - }, e("notify.oldElectronClientDescription2")), e("notify.oldElectronClientDescription3")) - } - } - const hte = Li(pte); - Be.register((e => t => n => n.type === Ya ? function(e, t, n) { - if (function() { - if (!ft.isElectron()) return !1; - const e = navigator.userAgent.match(/(JitsiMeet)\s*\/\s*((\d+)\.[^\s]*)/); - if (!Array.isArray(e) || e.length < 3) return !1; - const t = Number(e[3]); - return !(isNaN(t) || t >= 2) - }()) { - const { - dispatch: t - } = e; - t(Wf({ - titleKey: "notify.OldElectronAPPTitle", - description: x().createElement(hte, null) - })) - } - return t(n) - }(e, t, n) : t(n))), Be.register((e => t => n => { - const a = t(n), - { - dispatch: r, - getState: i - } = e; - switch (n.type) { - case UI: { - const e = new dV({ - backend: new lV({ - postisOptions: { - scope: "jitsi-power-monitor" - } - }) - }); - e.on("event", (e => !(!e || "power-monitor" !== e.name || "suspend" !== e.event || (r(bV()), 0)))), r(yV(e)); - break - } - case HI: { - const { - transport: e - } = i()["features/power-monitor"]; - e && e.dispose(), r(yV()); - break - } - case fV: - r(ls()), APP.conference.onSuspendDetected(), APP.API.notifySuspendDetected() - } - return a - })), Be.register((e => t => async n => { - switch (n.type) { - case tf: - iL(e.getState()) && e.dispatch(bn({ - startWithAudioMuted: Boolean(n.muted) - })); - break; - case of: - iL(e.getState()) && e.dispatch(bn({ - startWithVideoMuted: Boolean(n.muted) - })); - break; - case oo: - case co: { - const t = e.getState(); - if (iL(t)) { - const { - track: { - jitsiTrack: a - } - } = n, { - deviceStatusType: r, - deviceStatusText: i - } = t["features/prejoin"]; - if (!a.isAudioTrack()) break; - a.isReceivingData() ? "warning" === r && "prejoin.audioDeviceProblem" === i && e.dispatch({ - type: RR, - value: { - deviceStatusText: "prejoin.lookGood", - deviceStatusType: "ok" - } - }) : "ok" === r && e.dispatch(fL("prejoin.audioDeviceProblem")) - } - break - } - case BI: - e.dispatch(pL(!1)); - break; - case UI: - return function({ - dispatch: e - }, t, n) { - return e(bL(GR)), e(pL(!1)), t(n) - }(e, t, n) - } - return t(n) - })), at.register((e => { - const { - participantId: t - } = e["features/large-video"], { - controller: n - } = e["features/remote-control"], { - controlled: a - } = n; - if (a) return a === t - }), ((e, { - dispatch: t - }) => { - !0 === e ? t(Q0()) : !1 === e && t(X0()) - })), Be.register((e => t => async n => { - switch (n.type) { - case Ya: { - const { - dispatch: t - } = e; - t(G0(new dV({ - backend: new lV({ - postisOptions: { - scope: "jitsi-remote-control" - } - }) - }))); - break - } - case Ga: { - const { - getState: t, - dispatch: n - } = e, { - transport: a - } = t()["features/remote-control"].receiver; - a && (a.dispose(), n(G0())); - break - } - case UI: { - const a = t(n), - { - getState: r - } = e, - { - transport: i - } = r()["features/remote-control"].receiver; - return i && i.on("event", (t => t.name === S0 && (function(e, { - getState: t, - dispatch: n - }) { - switch (e.type) { - case "supported": - I0.log("Remote Control supported."), z0(t()) ? n(((e, t) => { - const n = t(), - { - enabled: a - } = n["features/remote-control"].receiver; - if (a) return; - const { - connection: r - } = n["features/base/connection"], { - conference: i - } = n["features/base/conference"]; - r && i ? (e({ - type: b0, - enabled: !0 - }), r.addFeature(E0, !0), U0 = (t, n) => { - e(function(e, t) { - return (n, a) => { - const { - action: r, - name: i, - type: o - } = t; - if (i !== S0) return; - const s = a(), - { - receiver: l - } = s["features/remote-control"], - { - enabled: c, - transport: u - } = l; - if (c) { - const { - controller: a - } = l; - a || o !== x0 || r !== A0 ? a === e && (o === C0 ? n(K0(!1, !0)) : u.sendEvent(t)) : (n(V0(!0)), n(function(e) { - return sP(w0, { - participantId: e - }) - }(e))) - } else I0.log("Remote control message is ignored because remote control is disabled", t) - } - }(t.getId(), n)) - }, i.on(bt.ENDPOINT_MESSAGE_RECEIVED, U0)) : I0.error("Couldn't enable the remote receiver! The connection or conference instance is undefined!") - })) : I0.log("Remote Control disabled."); - break; - case C0: - n(K0()) - } - }(t, e), !0))), a - } - case Uv: { - const { - getState: t, - dispatch: a - } = e, r = t(), { - id: i - } = n.participant, { - receiver: o, - controller: s - } = r["features/remote-control"], { - requestedParticipant: l, - controlled: c - } = s; - i === c && a(W0()), i === l && (a(Y0()), a(V0(!1))), (null == o ? void 0 : o.controller) === i && a(K0(!1, !0)); - break - } - } - return t(n) - })); - const mte = Je("features/screen-share"); - - function fte(e, t) { - var n; - const a = e.getState(), - { - conference: r - } = a["features/base/conference"], - { - captureFrameRate: i - } = a["features/screen-share"], - o = null !== (n = t) && void 0 !== n ? n : i; - r && o && (mte.debug(`Setting screenshare capture frame rate as ${o}`), r.setDesktopSharingFrameRate(o)) - } - - function gte(e) { - return { - type: M2, - disabled: e - } - } - - function bte({ - id: e, - status: t, - conference: n, - localParticipantId: a, - time: r, - muted: i, - volume: o - }) { - n.sendCommandOnce(Sk, { - value: e, - attributes: { - from: a, - muted: i, - state: t, - time: r, - volume: o - } - }) - } - Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case UI: - fte(e); - break; - case xV: { - const { - captureFrameRate: t - } = n; - fte(e, t); - break - } - } - return a - })), Be.register((e => t => n => { - var a; - const { - dispatch: r, - getState: i - } = e, o = i(), s = yI(o), l = null === (a = Rh(o)) || void 0 === a ? void 0 : a.id, { - videoUrl: c, - status: u, - ownerId: d, - time: p, - muted: h, - volume: m - } = n, { - ownerId: f, - videoUrl: g - } = o["features/shared-video"]; - switch (n.type) { - case HI: - r(I2()); - break; - case Uv: - n.participant.id === f && (0, Te.unstable_batchedUpdates)((() => { - r(I2()), r(ik(g, s)) - })); - break; - case T2: - l === d && bte({ - conference: s, - localParticipantId: l, - muted: h, - status: u, - time: p, - id: c, - volume: m - }); - break; - case O2: - l === f && bte({ - conference: s, - id: g, - localParticipantId: l, - muted: !0, - status: "stop", - time: 0, - volume: 0 - }) - } - return t(n) - })), at.register((e => yI(e)), ((e, t, n) => { - e && e !== n && e.addCommandListener(Sk, (({ - value: n, - attributes: a - }) => { - const { - dispatch: r, - getState: i - } = t, { - from: o - } = a, s = Rh(i()).id, l = a.state; - xk(l) ? function(e, t, { - state: n, - time: a, - from: r, - muted: i - }, o) { - var s; - const { - dispatch: l, - getState: c - } = e, u = Rh(c()).id, d = null === (s = c()["features/shared-video"]) || void 0 === s ? void 0 : s.status; - if ("start" === n || !["playing", "pause", "start"].includes(d)) { - const e = !t.match(/http/) && t; - l(ak({ - conference: o, - id: t, - isFakeParticipant: !0, - avatarURL: e ? `https://img.youtube.com/vi/${e}/0.jpg` : "", - name: wk - })), l(dk(t)) - } - u !== r && l(N2({ - muted: "true" === i, - ownerId: r, - status: n, - time: Number(a), - videoUrl: t - })) - }(t, n, a, e) : "stop" === l && (r(ik(n, e)), s !== o && r(I2())) - })) - })), at.register((e => yI(e)), ((e, t, n) => { - e && e !== n && e.addCommandListener(Sk, (({ - attributes: e - }) => { - const { - dispatch: n, - getState: a - } = t, { - from: r - } = e, i = Rh(a()).id, o = e.state; - "playing" === o ? i !== r && n(gte(!0)) : "stop" === o && n(gte(!1)) - })) - })); - const yte = "SET_CURRENT_NOTIFICATION_UID"; - - function vte(e) { - return { - type: yte, - uid: e - } - } - const kte = "TALK_WHILE_MUTED_SOUND"; - Be.register((e => t => n => { - const a = t(n), - { - dispatch: r, - getState: i - } = e, - { - conference: o - } = n; - switch (n.type) { - case Ya: - r(Ki(kte, "talkWhileMuted.mp3")); - break; - case Ga: - r(Ji(kte)); - break; - case UI: - o.on(bt.TRACK_MUTE_CHANGED, (e => { - const { - currentNotificationUid: t - } = i()["features/talk-while-muted"]; - t && e.isAudioTrack() && e.isLocal() && !e.isMuted() && (r(Vf(t)), r(vte())) - })), o.on(bt.TALK_WHILE_MUTED, (async () => { - const e = i(), - t = Cm(Rh(e), Xi, e), - n = await r(Yf({ - titleKey: "toolbar.talkWhileMutedPopup", - customActionNameKey: t ? "notify.raiseHandAction" : "notify.unmute", - customActionHandler: () => r(t ? pk(!0) : lf(!1)) - })), - { - soundsTalkWhileMuted: a - } = i()["features/base/settings"]; - a && r(Gi(kte)), n && r(vte(n.uid)) - })) - } - return a - })), Be.register((e => t => n => { - const { - dispatch: a, - getState: r - } = e, i = r()["features/virtual-background"].virtualSource, o = Ko(r()["features/base/tracks"]); - return (null == i ? void 0 : i.videoType) === ao && n.type === bo && So(a, i, null == o ? void 0 : o.jitsiTrack), t(n) - })); - const _te = "SET_NETWORK_INFO", - wte = "STORE_NETWORK_INFO_CLEANUP", - Ste = "UPDATE_LOCAL_TRACKS_DURATION"; - - function Ete(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - xte(e, t, n[t]) - })) - } - return e - } - - function xte(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - - function Cte(e) { - const t = Date.now(), - { - localTracksDuration: n - } = e["features/analytics"], - { - conference: a - } = e["features/base/conference"], - { - audio: r, - video: i - } = n, - { - camera: o, - desktop: s - } = i, - l = e["features/base/tracks"], - c = Wo(l), - u = Ko(l), - d = Ete({}, n); - if (c && !c.muted && a ? -1 === r.startedTime && (d.audio.startedTime = t) : d.audio = { - startedTime: -1, - value: r.value + (-1 === r.startedTime ? 0 : t - r.startedTime) - }, u && !u.muted && a) { - const { - videoType: e - } = u; - 1 === i[e].startedTime && (d.video[e].startedTime = t) - } else d.video = { - camera: { - startedTime: -1, - value: o.value + (-1 === o.startedTime ? 0 : t - o.startedTime) - }, - desktop: { - startedTime: -1, - value: s.value + (-1 === s.startedTime ? 0 : t - s.startedTime) - } - }; - return Ete({}, n, d) - } - let Ate; - Be.register((e => t => n => { - switch (n.type) { - case Rn: - "ReactNative" === navigator.product && mt.reset(); - break; - case rN: { - const a = async function({ - getState: e - }) { - if (It().analyticsHandlers = [], window.analyticsHandlers = [], !lt(e)) return mt.dispose(), []; - const t = e(), - n = t["features/base/config"], - { - locationURL: a - } = t["features/base/connection"], - r = a ? a.host : "", - { - analytics: i = {}, - deploymentInfo: o - } = n, - { - amplitudeAPPKey: s, - blackListedEvents: l, - scriptURLs: u, - googleAnalyticsTrackingId: d, - matomoEndpoint: p, - matomoSiteID: h, - whiteListedEvents: m - } = i, - { - group: f, - user: g - } = t["features/base/jwt"], - b = { - amplitudeAPPKey: s, - blackListedEvents: l, - envType: o && o.envType || "dev", - googleAnalyticsTrackingId: d, - matomoEndpoint: p, - matomoSiteID: h, - group: f, - host: r, - product: o && o.product, - subproduct: o && o.environment, - user: g && g.id, - version: c.default.version, - whiteListedEvents: m - }, - y = []; - if (s) try { - const e = new Da(b); - mt.amplitudeIdentityProps = e.getIdentityProps(), y.push(e) - } catch (e) { - Ca.error("Failed to initialize Amplitude handler", e) - } - if (p && h) try { - const e = new Ta(b); - y.push(e) - } catch (e) { - Ca.error("Failed to initialize Matomo handler", e) - } - if (Array.isArray(u) && u.length > 0) { - let e; - try { - e = await - function(e = [], t) { - const n = []; - for (const t of e) n.push(wn(t).then((() => ({ - type: "success" - })), (e => ({ - type: "error", - error: e, - url: t - })))); - return Promise.all(n).then((e => { - for (const t of e) "error" === t.type && Ca.warn(`Failed to load ${t.url}: ${t.error}`); - const n = [...It().analyticsHandlers, ...window.analyticsHandlers], - a = []; - for (const e of n) try { - a.push(new e(t)) - } catch (e) { - Ca.warn(`Error creating analytics handler: ${e}`) - } - return Ca.debug(`Loaded ${a.length} external analytics handlers`), a - })) - }(u, b), y.push(...e) - } catch (e) { - Ca.error("Failed to initialize external analytics handlers", e) - } - } - return 0 === y.length && mt.dispose(), Ca.info(`Initialized ${y.length} analytics handlers`), y - }(e), r = t(n); - return a.then((t => { - ! function({ - getState: e - }, t) { - if (!lt(e) || 0 === t.length) return; - const n = e(), - a = n["features/base/config"], - { - deploymentInfo: r - } = a, - { - group: i, - server: o - } = n["features/base/jwt"], - s = n["features/base/conference"].room, - { - locationURL: l = {} - } = n["features/base/connection"], - { - tenant: c - } = Tn(l.href) || {}, - u = {}; - if (o && (u.server = o), i && (u.group = i), u.appName = ba(), u.websocket = "string" == typeof a.websocket, u.externalApi = "number" == typeof Bt, u.inIframe = function() { - if ("ReactNative" === navigator.product) return !1; - try { - return window.self !== window.top - } catch (e) { - return !0 - } - }(), u.tenant = c || "/", r) - for (const e in r) r.hasOwnProperty(e) && (u[e] = r[e]); - mt.addPermanentProperties(u), mt.setConferenceName(s), mt.setAnalyticsHandlers(t), !Sa() && ft.isChrome() && xa(n["features/base/config"].chromeExtensionBanner).then((e => { - (null == e ? void 0 : e.length) && mt.addPermanentProperties({ - hasChromeExtension: e.some((e => e)) - }) - })) - }(e, t) - })), r - } - } - const a = t(n); - switch (n.type) { - case UI: { - const { - dispatch: t, - getState: n - } = e, a = n(); - t({ - type: Ste, - localTracksDuration: Ete({}, Cte(a), { - conference: { - startedTime: Date.now(), - value: 0 - } - }) - }); - break - } - case KI: { - const { - dispatch: t, - getState: n - } = e, a = n(), { - localTracksDuration: r - } = a["features/analytics"], i = Ete({}, Cte(a), { - conference: { - startedTime: -1, - value: Date.now() - r.conference.startedTime - } - }); - Ma(function(e) { - const { - audio: t, - video: n, - conference: a - } = e, { - camera: r, - desktop: i - } = n; - return { - action: "local.tracks.durations", - attributes: { - audio: t.value, - camera: r.value, - conference: a.value, - desktop: i.value - } - } - }(i)), t({ - type: Ste, - localTracksDuration: i - }); - break - } - case _te: - Ma(function({ - isOnline: e, - networkType: t, - details: n - }) { - const a = { - isOnline: e - }; - return t && (a.networkType = t), n && (a.details = n), { - action: "network.info", - attributes: a - } - }({ - isOnline: n.isOnline, - details: n.details, - networkType: n.networkType - })); - break; - case oo: - case uo: - case ho: { - const { - dispatch: t, - getState: a - } = e, r = a(), { - localTracksDuration: i - } = r["features/analytics"]; - if (-1 === i.conference.startedTime || "presenter" === n.mediaType) break; - t({ - type: Ste, - localTracksDuration: Ete({}, i, Cte(r)) - }); - break - } - } - return a - })), Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - const { - type: r - } = a, { - conference: i - } = uI(t()); - switch (r) { - case Ya: - e(Ki(em, "asked-unmute.mp3")); - break; - case Ga: - e(Ji(em)); - break; - case Fm: { - let t, n, r; - switch (a.mediaType) { - case Xi: - n = "notify.moderationInEffectTitle", r = tm; - break; - case to: - n = "notify.moderationInEffectVideoTitle", r = nm; - break; - case eo: - n = "notify.moderationInEffectCSTitle", r = am - } - e(Yf({ - customActionNameKey: "notify.raiseHandAction", - customActionHandler: () => (0, Te.unstable_batchedUpdates)((() => { - e(pk(!0)), e(Vf(r)) - })), - descriptionKey: t, - sticky: !0, - titleKey: n, - uid: r - })); - break - } - case Mm: - i.disableAVModeration(Xi); - break; - case Im: - i.disableAVModeration(to); - break; - case Nm: - i.enableAVModeration(Xi); - break; - case zm: - i.enableAVModeration(to); - break; - case Hv: { - const n = t(), - r = om(Xi, n), - i = a.participant; - i && r && (Jh(n) ? i.raisedHand ? !cm(i.id, Xi)(n) && e(ef(i)) : um(i, Xi)(n) && e(function(e) { - return Km(e.id, Xi) - }(i)) : i.id === Rh(n).id && Gh(i) && Wh(n).forEach((t => { - t.raisedHand && !cm(t.id, Xi)(n) && e(ef(t)) - }))); - break - } - case Om: - "undefined" != typeof APP && APP.API.notifyModerationChanged(a.mediaType, !0); - break; - case Dm: - "undefined" != typeof APP && APP.API.notifyModerationChanged(a.mediaType, !1); - break; - case Rm: - if ("undefined" != typeof APP) { - const e = Rh(t()); - APP.API.notifyParticipantApproved(e.id, a.mediaType) - } - break; - case qm: - "undefined" != typeof APP && APP.API.notifyParticipantApproved(a.id, a.mediaType); - break; - case Lm: - if ("undefined" != typeof APP) { - const e = Rh(t()); - APP.API.notifyParticipantRejected(e.id, a.mediaType) - } - break; - case Bm: - "undefined" != typeof APP && APP.API.notifyParticipantRejected(a.id, a.mediaType) - } - return n(a) - })), at.register((e => e["features/base/conference"].conference), ((e, { - dispatch: t - }, n) => { - e && !n && (e.on(bt.AV_MODERATION_APPROVED, (({ - mediaType: e - }) => { - t((e => ({ - type: Rm, - mediaType: e - }))(e)), e === Xi && (t(Yf({ - titleKey: "notify.hostAskedUnmute", - sticky: !0, - customActionNameKey: "notify.unmute", - customActionHandler: () => t(BQ(!1, Xi)) - })), t(Gi(em))) - })), e.on(bt.AV_MODERATION_REJECTED, (({ - mediaType: e - }) => { - t((e => ({ - type: Lm, - mediaType: e - }))(e)) - })), e.on(bt.AV_MODERATION_CHANGED, (({ - enabled: e, - mediaType: n, - actor: a - }) => { - t(e ? ((e, t) => ({ - type: Om, - mediaType: e, - actor: t - }))(n, a) : ((e, t) => ({ - type: Dm, - mediaType: e, - actor: t - }))(n, a)) - })), e.on(bt.AV_MODERATION_PARTICIPANT_APPROVED, (({ - participant: e, - mediaType: n - }) => { - const { - _id: a - } = e; - (0, Te.unstable_batchedUpdates)((() => { - t(function(e, t) { - return { - type: qm, - id: e, - mediaType: t - } - }(a, n)), t(Km(a, n)) - })) - })), e.on(bt.AV_MODERATION_PARTICIPANT_REJECTED, (({ - participant: e, - mediaType: n - }) => { - const { - _id: a - } = e; - t(function(e, t) { - return { - type: Bm, - id: e, - mediaType: t - } - }(a, n)) - }))) - })), Be.register((e => t => n => { - switch (n.type) { - case BI: - return function({ - dispatch: e, - getState: t - }, n, a) { - const r = n(a), - { - conference: i, - error: o - } = a, - { - enableForcedReload: s - } = t()["features/base/config"]; - switch (o.name) { - case gt.CONFERENCE_DESTROYED: { - const [t] = o.params; - e(Wf({ - description: t, - titleKey: "dialog.sessTerminated" - })); - break - } - case gt.CONFERENCE_RESTARTED: - s && e(Wf({ - description: "Restart initiated because of a bridge failure", - titleKey: "dialog.sessionRestarted" - })); - break; - case gt.CONNECTION_ERROR: { - const [n] = o.params; - e(function(e) { - return { - type: CI, - connection: e - } - }(t()["features/base/connection"].connection)), e(Wf({ - descriptionArguments: { - msg: n - }, - descriptionKey: n ? "dialog.connectErrorWithMsg" : "dialog.connectError", - titleKey: "connection.CONNFAIL" - })); - break - } - case gt.OFFER_ANSWER_FAILED: - Ma({ - action: "offer.answer.failure" - }) - } - return "undefined" == typeof APP ? !o.recoverable && i && i.leave().catch((e => { - lI.info("JitsiConference.leave() rejected with:", e) - })) : void 0 !== Ate && (window.removeEventListener("beforeunload", Ate), Ate = void 0), s && (null == o ? void 0 : o.name) === gt.CONFERENCE_RESTARTED && (e(hN(i)), e(JN())), r - }(e, t, n); - case UI: - return function({ - dispatch: e, - getState: t - }, n, a) { - var r; - const i = n(a), - { - conference: o - } = a, - { - pendingSubjectChange: s - } = t()["features/base/conference"], - { - requireDisplayName: l - } = t()["features/base/config"]; - return s && e(vN(s)), Ate = () => { - e(hN(o)) - }, window.addEventListener("beforeunload", Ate), !l || (null === (r = Rh(t)) || void 0 === r ? void 0 : r.name) || o.isHidden() || e(OH(void 0)), i - }(e, t, n); - case AI: - return function({ - dispatch: e - }, t, n) { - const a = t(n); - return "undefined" == typeof APP && e(((e, t) => { - const n = t(), - { - connection: a, - locationURL: r - } = n["features/base/connection"]; - if (!a) throw new Error("Cannot create a conference without a connection!"); - const { - password: i, - room: o - } = n["features/base/conference"]; - if (!o) throw new Error("Cannot join a conference without a room name!"); - const s = a.initJitsiConference(An(o), gI(n)); - a[OI] = s, s[sI] = r, e(dN(s)), - function(e, t, n) { - e.on(bt.CONFERENCE_ERROR, (e => lI.error("Conference error.", e))), e.on(bt.CONFERENCE_FAILED, ((...n) => t(oN(e, ...n)))), e.on(bt.CONFERENCE_JOINED, ((...n) => t(sN(e, ...n)))), e.on(bt.CONFERENCE_LEFT, ((...n) => { - t(uN(0)), t(lN(e, ...n)) - })), e.on(bt.SUBJECT_CHANGED, ((...e) => t(cN(...e)))), e.on(bt.CONFERENCE_CREATED_TIMESTAMP, ((...e) => t(uN(...e)))), e.on(bt.KICKED, ((...n) => t(mN(e, ...n)))), e.on(bt.PARTICIPANT_KICKED, ((e, n) => t(uk(e, n)))), e.on(bt.LOCK_STATE_CHANGED, ((...n) => t(fN(e, ...n)))), e.on(bt.STARTED_MUTED, (() => { - const a = Boolean(e.isStartAudioMuted()), - r = Boolean(e.isStartVideoMuted()), - i = Go(n["features/base/tracks"]); - Ma(pn("remote", a, r)), lI.log(`Start muted: ${a?"audio, ":""}${r?"video":""}`), t(lf(a)), t(cf(r)); - for (const n of i) { - const i = n.jitsiTrack.getType(); - (a && i === Xi && "ReactNative" !== navigator.product || r && i === to) && t(ds(n.jitsiTrack, null, e)) - } - })), e.on(bt.TRACK_ADDED, (e => e && !e.isLocal() && t(ps(e)))), e.on(bt.TRACK_REMOVED, (e => e && !e.isLocal() && t(ms(e)))), e.on(bt.TRACK_MUTE_CHANGED, ((e, n) => { - n && t(ck(n, e)) - })), e.on(bt.DISPLAY_NAME_CHANGED, ((n, a) => t(lk({ - conference: e, - id: n, - name: Lh(a) - })))), e.on(bt.DOMINANT_SPEAKER_CHANGED, ((n, a) => t(Qv(n, a, e)))), e.on(bt.ENDPOINT_MESSAGE_RECEIVED, ((...e) => t(Fa(...e)))), e.on(bt.PARTICIPANT_CONN_STATUS_CHANGED, ((...e) => t(nk(...e)))), e.on(bt.USER_JOINED, ((n, a) => pI({ - dispatch: t - }, e, a))), e.on(bt.USER_LEFT, ((n, a) => hI({ - dispatch: t - }, e, a))), e.on(bt.USER_ROLE_CHANGED, ((...e) => t(sk(...e)))), e.on(bt.USER_STATUS_CHANGED, ((...e) => t(ok(...e)))), e.on(bt.BOT_TYPE_CHANGED, ((n, a) => t(lk({ - conference: e, - id: n, - botType: a - })))), e.addCommandListener(iI, ((n, a) => t(lk({ - conference: e, - id: a, - avatarURL: n.value - })))), e.addCommandListener(oI, ((n, a) => t(lk({ - conference: e, - id: a, - email: n.value - })))) - }(s, e, n), EI(n, s); - const l = Zn(n); - s.join(i, l) - })), a - }(e, t, n); - case jI: - return function({ - dispatch: e, - getState: t - }, n, a) { - ! function(e, t) { - const { - jwt: n - } = t["features/base/jwt"]; - if (!n) return; - const a = function(e) { - const t = []; - if (!e) return t; - const n = (new Date).getTime(); - try { - const a = Tz()(e, { - header: !0 - }), - r = Tz()(e); - if (!a || !r) return t.push("- Missing header or payload"), t; - const { - aud: i, - context: o, - exp: s, - iss: l, - nbf: c, - sub: u - } = r; - if (u && u.startsWith("vpaas-magic-cookie")) { - const { - kid: e - } = a; - if (!e) return t.push("- Key ID(kid) missing"), t; - e.substring(0, e.indexOf("/")) !== u && t.push("- Key ID(kid) does not match sub"), "jitsi" !== i && t.push("- invalid `aud` value. It should be `jitsi`"), "chat" !== l && t.push("- invalid `iss` value. It should be `chat`"), (null == o ? void 0 : o.features) || t.push("- `features` object is missing from the payload") - } - if (Iz(c) ? n < 1e3 * c && t.push("- `nbf` value is in the future") : t.push("- invalid `nbf` value"), Iz(s) ? n > 1e3 * s && t.push("- token is expired") : t.push("- invalid `exp` value"), o) { - if (o.features) { - const { - features: e - } = o; - Object.keys(e).forEach((n => { - if (Oz.includes(n)) { - const a = e[n]; - !0 !== a && !1 !== a && "true" !== a && "false" !== a && t.push(`- Invalid value for feature: ${n}`) - } else t.push(`- Invalid feature: ${n}`) - })) - } - } else t.push("- `context` object is missing from the payload") - } catch (e) { - t.push(e ? e.message : "- unspecified jwt error") - } - return t - }(n); - e && lI.error(`JWT error: ${e}`), a.length && lI.error("JWT parsing error:", a) - }(a.error.message, t()); - const r = n(a); - if (void 0 !== Ate && (window.removeEventListener("beforeunload", Ate), Ate = void 0), "undefined" == typeof APP) { - const { - connection: n - } = a, { - error: r - } = a; - mI(t, (t => { - if (t.getConnection() === n) { - const n = oN(t, r.name); - void 0 !== r.recoverable && (n.error.recoverable = r.recoverable), e(n) - } - return !0 - })) - } - return r - }(e, t, n); - case VI: - return function({ - dispatch: e, - getState: t - }, n, a) { - const r = n(a), - { - subject: i - } = t()["features/base/conference"]; - return i && e({ - type: aN, - subject: void 0 - }), "object" == typeof APP && APP.API.notifySubjectChanged(i), r - }(e, t, n); - case KI: - void 0 !== Ate && (window.removeEventListener("beforeunload", Ate), Ate = void 0); - break; - case Hv: - return function({ - dispatch: e, - getState: t - }, n, a) { - const { - conference: r - } = t()["features/base/conference"], { - participant: i - } = a, o = n(a), s = Rh(t); - if (r && i.id === (null == s ? void 0 : s.id) && ("name" in i && r.setDisplayName(i.name), "role" in i && i.role === Th)) { - const { - pendingSubjectChange: n, - subject: a - } = t()["features/base/conference"]; - void 0 !== n && n !== a && e(vN(n)) - } - return o - }(e, t, n); - case Vv: - return function({ - getState: e - }, t, n) { - const a = e(), - { - conference: r - } = a["features/base/conference"]; - if (!r) return t(n); - const i = n.participant.id, - o = Fh(a, i), - s = Yh(a), - l = i ? Yt : "unpinned", - c = o && o.local || !i && s && s.local; - let u; - return u = c || (l === Yt ? i : s && s.id), Ma(function(e, t, n) { - return { - type: "track", - action: e, - actionSubject: "participant", - objectType: "participant", - objectId: t, - attributes: n - } - }(l, u, { - local: c, - participant_count: r.getParticipantCount() - })), t(n) - }(e, t, n); - case XI: - return function({ - getState: e - }, t, n) { - const a = e(), - { - conference: r - } = a["features/base/conference"]; - if (r) { - const { - duration: e, - tones: t, - pause: a - } = n; - r.sendTones(t, e, a) - } - return t(n) - }(e, t, n); - case rN: - return function({ - dispatch: e, - getState: t - }, n, a) { - const r = t(), - { - subject: i - } = r["features/base/config"], - { - room: o - } = a; - return o && e(vN(i)), n(a) - }(e, t, n); - case oo: - case uo: - return function(e, t, n) { - const a = n.track; - return a && a.local && a.mediaType !== eo ? function({ - getState: e - }, t) { - const n = yI(e); - let a; - if (n) { - const e = t.track.jitsiTrack; - a = t.type === oo ? dI(n, [e]) : function(e, t) { - return Promise.all(t.map((t => e.removeTrack(t).catch((e => { - e.name !== Ct.TRACK_IS_DISPOSED && SI("Failed to remove local track from conference", e) - }))))) - }(n, [e]) - } - return a || Promise.resolve() - }(e, n).then((() => t(n))) : t(n) - }(e, t, n) - } - return t(n) - })), Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - const { - enableForcedReload: r - } = t()["features/base/config"]; - switch (a.type) { - case UI: - r && (e(bL(GR)), e(gL(!1))); - break; - case BI: - var i; - r && (null === (i = a.error) || void 0 === i ? void 0 : i.name) === gt.CONFERENCE_RESTARTED && e(gL(!0)) - } - return n(a) - })), Be.register((e => t => n => { - switch (n.type) { - case Ya: - return function(e, t, n) { - const a = t(n), - r = "config.js/", - i = []; - for (let e = 0;; ++e) { - const t = l.key(e); - if (!t) break; { - let e; - if (t.startsWith(r) && (e = t.substring(r.length))) { - const t = Tn(e); - let n; - t && (n = t.host) && i.push(n) - } - } - } - return i.length && e.dispatch(vn(i)), a - }(e, t, n); - case Rn: - return function({ - dispatch: e, - getState: t - }, n, a) { - const r = n(a), - i = t(), - o = i["features/base/settings"], - s = {}; - void 0 !== o.disableP2P && (s.p2p = { - enabled: !o.disableP2P - }); - const l = Df(i, "resolution"); - return void 0 !== l && (s.resolution = l), !0 === a.config.doNotFlipLocalVideo && e(bn({ - localFlipX: !1 - })), e(ea(s)), void 0 !== window.config && (window.config = i["features/base/config"]), r - }(e, t, n); - case Fn: - return function({ - dispatch: e - }, t, n) { - const { - config: { - doNotFlipLocalVideo: a - } - } = n; - return !0 === a && e(bn({ - localFlipX: !1 - })), t(n) - }(e, t, n) - } - return t(n) - })); - const jte = Je("features/base/jwt"); - - function Pte(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - Be.register((e => t => n => { - switch (n.type) { - case Rn: - case DI: - return function({ - dispatch: e, - getState: t - }, n, a) { - const r = n(a), - { - locationURL: i - } = t()["features/base/connection"]; - return e(Pz(i ? Mz(i) : void 0)), r - }(e, t, n); - case jz: - return function(e, t, n) { - const { - jwt: a, - type: r - } = n, i = function(e, t) { - if (null == e) return {}; - var n, a, r = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, t); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) - } - return r - }(n, ["jwt", "type"]); - if (!Object.keys(i).length) - if (a) { - let t; - try { - t = Tz()(a) - } catch (e) { - jte.error(e) - } - if (t) { - const { - context: r, - iss: i, - sub: o - } = t; - if (n.jwt = a, n.issuer = i, r) { - const t = function({ - avatar: e, - avatarUrl: t, - email: n, - id: a, - name: r - }) { - const i = {}; - return "string" == typeof t ? i.avatarURL = t.trim() : "string" == typeof e && (i.avatarURL = e.trim()), "string" == typeof n && (i.email = n.trim()), "string" == typeof a && (i.id = a.trim()), "string" == typeof r && (i.name = r.trim()), Object.keys(i).length ? i : void 0 - }(r.user || {}); - n.callee = r.callee, n.group = r.group, n.server = r.server, n.tenant = r.tenant || o || void 0, n.user = t, t && function({ - dispatch: e, - getState: t - }, { - avatarURL: n, - email: a, - name: r, - features: i - }) { - let o; - if ((n || a || r) && (o = Rh(t))) { - const t = { - id: o.id, - local: !0 - }; - n && (t.avatarURL = n), a && (t.email = a), r && (t.name = r), i && (t.features = i), e(lk(t)) - } - }(e, function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Pte(e, t, n[t]) - })) - } - return e - }({}, t, { - features: r.features - })) - } - } - } else if ("undefined" == typeof APP) { - const { - user: t - } = e.getState()["features/base/jwt"]; - t && function({ - dispatch: e, - getState: t - }, { - avatarURL: n, - name: a, - email: r - }) { - let i; - if ((n || a || r) && (i = Rh(t))) { - const t = { - id: i.id, - local: !0 - }; - n === i.avatarURL && (t.avatarURL = void 0), r === i.email && (t.email = void 0), a === i.name && (t.name = void 0), t.features = void 0, e(lk(t)) - } - }(e, t) - } - return t(n) - }(e, t, n) - } - return t(n) - })), Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case Ya: - ! function({ - dispatch: e, - getState: t - }) { - e(vn(Tn(ga(t)).host)) - }(e); - break; - case rN: - ! function({ - dispatch: e, - getState: t - }) { - const { - locationURL: n - } = t()["features/base/connection"]; - let a; - n && (a = n.host) && e(vn(a)) - }(e) - } - return a - })); - const Dte = "APP_STATE_CHANGED", - Tte = Je("features/base/lastn"), - Ote = cj()((({ - dispatch: e, - getState: t - }) => { - var n, a; - const r = t(), - { - conference: i - } = r["features/base/conference"]; - if (!i) return void Tte.debug("There is no active conference, not updating last N"); - const { - enabled: o - } = r["features/base/audio-only"], { - appState: s - } = r["features/background"] || {}, { - enabled: l - } = r["features/filmstrip"], c = r["features/base/config"], { - lastNLimits: u, - lastN: d - } = r["features/base/lastn"], p = Bh(r); - let h = d || (null !== (n = c.startLastN) && void 0 !== n ? n : null !== (a = c.channelLastN) && void 0 !== a ? a : -1); - const m = function(e, t) { - if (!t || !t.keys) return; - let n; - for (const a of t.keys()) e >= a && (n = a); - return n ? t.get(n) : void 0 - }(p, u); - if (void 0 !== m && (h = -1 === h ? m : Math.min(m, h)), void 0 !== s && "active" !== s) h = ns(r) ? 1 : 0; - else if (o) { - const { - remoteScreenShares: e, - tileViewEnabled: t - } = r["features/video-layout"], n = r["features/large-video"].participantId, a = n ? Fh(r, n) : void 0; - h = t || !a || a.local ? 0 : (e || []).includes(n) ? 1 : 0 - } else l || (h = 1); - e(M8(h)) - }), 1e3); - Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case Dte: - case UI: - case qv: - case Bv: - case Uv: - case fk: - case iX: - case $Q: - case DJ: - case gk: - Ote(e) - } - return a - })); - const Mte = "SET_LOG_COLLECTOR", - Ite = "SET_LOGGING_CONFIG"; - - function Nte(e) { - return { - type: Mte, - logCollector: e - } - } - Be.register((e => t => n => { - switch (n.type) { - case y: - "undefined" != typeof APP && function() { - if (c.default.getGlobalOnErrorHandler) { - const e = window.onerror; - window.onerror = (t, n, a, r, i) => { - const o = t || i && i.message, - s = i && i.stack; - c.default.getGlobalOnErrorHandler(o, n, a, r, s), e && e(t, n, a, r, i) - }; - const t = window.onunhandledrejection; - window.onunhandledrejection = function(e) { - let n = e.reason, - a = "n/a"; - e.reason instanceof Error && ({ - message: n, - stack: a - } = e.reason), c.default.getGlobalOnErrorHandler(n, null, null, null, a), t && t(e) - } - } - }(); - break; - case _te: - c.default.setNetworkInfo({ - isOnline: n.isOnline - }); - break; - case Uv: - n.participant.local && e.dispatch(ht()); - break; - case Rn: - return function({ - dispatch: e, - getState: t - }, n, a) { - const { - initialized: r - } = t()["features/base/lib-jitsi-meet"]; - r && e(ht()); - const i = n(a); - return e(function(e) { - return { - type: Ite, - config: e - } - }(window.loggingConfig)), e(((e, t) => { - const n = t(), - a = n["features/base/config"]; - if (!a) throw new Error("Cannot init lib-jitsi-meet without config"); - e({ - type: y - }); - try { - c.default.init(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - pt(e, t, n[t]) - })) - } - return e - }({ - enableAnalyticsLogging: lt(t) - }, a, { - externalStorage: l.isLocalStorageDisabled() ? l : void 0 - })), c.default.setNetworkInfo({ - isOnline: m(n) - }), e({ - type: g - }) - } catch (t) { - e(function(e) { - return { - type: b, - error: e - } - }(t)) - } - })), i - }(e, t, n) - } - return t(n) - })); - class zte { - constructor() { - this.logs = [] - } - isReady() { - return !0 - } - storeLogs(e) { - for (let t = 0, n = e.length; t < n; t++) { - const n = e[t]; - "object" == typeof n ? this.logs.push(n.text) : this.logs.push(n) - } - } - getLogs() { - return this.logs - } - } - class Rte { - constructor(e) { - this.counter = 1, this.getState = e - } - isReady() { - const { - conference: e - } = this.getState()["features/base/conference"]; - return Boolean(e) - } - storeLogs(e) { - const t = yI(this.getState()); - if (!t || !t.isCallstatsEnabled()) return; - let n = `{"log${this.counter}":"\n`; - for (let t = 0, a = e.length; t < a; t++) { - const a = e[t]; - a.timestamp && (n += `${a.timestamp} `), a.count > 1 && (n += `(${a.count}) `), n += `${a.text}\n` - } - n += '"}', this.counter += 1; - try { - t.sendApplicationLog(n) - } catch (e) { - console.error(`Failed to store the logs, msg length: ${n.length}error: ${JSON.stringify(e)}`) - } - } - } - - function Lte(e, t) { - e.setLogLevel(t.defaultLogLevel), Object.keys(t).forEach((n => "defaultLogLevel" === n || e.setLogLevelById(t[n], n))) - } - - function Fte(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - qte(e, t, n[t]) - })) - } - return e - } - - function qte(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - Be.register((e => t => n => { - switch (n.type) { - case Ya: - return function({ - getState: e - }, t, n) { - const { - config: a - } = e()["features/base/logging"]; - return Lte(We(), a), "undefined" == typeof APP || Lte(c.default, a), t(n) - }(e, t, n); - case UI: - return function({ - getState: e - }, t, n) { - const a = t(n), - { - conference: r - } = n, - { - logCollector: i - } = e()["features/base/logging"]; - return i && r === yI(e()) && (i.start(), i.flush(), r.on(bt.BEFORE_STATISTICS_DISPOSED, (() => i.flush()))), a - }(e, t, n); - case y: - return function({ - getState: e - }, t, n) { - return "undefined" == typeof APP && Lte(c.default, e()["features/base/logging"].config), t(n) - }(e, t, n); - case Ite: - return function({ - dispatch: e, - getState: t - }, n, a) { - const r = n(a), - i = t()["features/base/logging"].config, - o = RX(t()); - return Lte(We(), i), Lte(c.default, i), - function({ - dispatch: e, - getState: t - }, n, a) { - const { - logCollector: r - } = t()["features/base/logging"]; - if (r || n.disableLogCollector) r && n.disableLogCollector && (We().removeGlobalTransport(r), c.default.removeGlobalLogTransport(r), r.stop(), e(Nte(void 0))); - else { - const n = new(We().LogCollector)(new Rte(t)), - { - apiLogLevels: r - } = t()["features/base/config"]; - if (r && Array.isArray(r) && "object" == typeof APP) { - const e = r.reduce(((e, t) => (e[t] = (...e) => { - APP.API.notifyLog(t, e) - }, e)), {}); - We().addGlobalTransport(e), c.default.addGlobalLogTransport(e) - } - if (We().addGlobalTransport(n), c.default.addGlobalLogTransport(n), e(Nte(n)), a && "object" == typeof APP) { - APP.debugLogs = new zte; - const e = new(We().LogCollector)(APP.debugLogs, { - storeInterval: 1e3 - }); - We().addGlobalTransport(e), c.default.addGlobalLogTransport(e), e.start() - } - } - }({ - dispatch: e, - getState: t - }, i, o), r - }(e, t, n) - } - return t(n) - })); - const Bte = { - available: !0, - muted: !1 - }, - Ute = { - available: !0, - facingMode: Qi, - muted: 0, - transforms: {} - }; - nt.register("features/base/media", ie({ - audio: function(e = Bte, t) { - switch (t.type) { - case nf: - return Fte({}, e, { - available: t.available - }); - case tf: - return Fte({}, e, { - muted: t.muted - }); - default: - return e - } - }, - video: function(e = Ute, t) { - switch (t.type) { - case BI: - case HI: - return function(e) { - return Fte({}, e, { - transforms: Ute.transforms - }) - }(e); - case af: - return Fte({}, e, { - facingMode: t.cameraFacingMode - }); - case rf: - return Fte({}, e, { - available: t.available - }); - case of: - return Fte({}, e, { - muted: t.muted - }); - case "STORE_VIDEO_TRANSFORM": - return function(e, { - streamId: t, - transform: n - }) { - return Fte({}, e, { - transforms: Fte({}, e.transforms, { - [t]: n - }) - }) - }(e, t); - case sf: { - let t = e.facingMode; - return t = t === Qi ? Zi : Qi, Fte({}, e, { - facingMode: t - }) - } - case uo: - return function(e, { - track: { - jitsiTrack: t - } - }) { - if (t) { - const n = t.getStreamId(); - if (n && n in e.transforms) { - const t = Fte({}, e.transforms); - return delete t[n], Fte({}, e, { - transforms: t - }) - } - } - return e - }(e, t); - default: - return e - } - } - })), Be.register((e => t => n => { - switch (n.type) { - case Dte: - return function({ - dispatch: e, - getState: t - }, n, a) { - if ("ReactNative" === navigator.product) { - const { - appState: n - } = a, r = "active" !== n && !ns(t()); - Ma(mn("video", "background mode", r)), e(cf(r, to, 2)) - } - return n(a) - }(e, t, n); - case $Q: - return function({ - dispatch: e - }, t, n) { - const { - audioOnly: a, - ensureVideoTrack: r - } = n; - return Ma(mn("video", "audio-only mode", a)), e(cf(a, to, 1, r)), "ReactNative" !== navigator.product && e(cf(a, eo, 1, r)), t(n) - }(e, t, n); - case rN: - return function({ - dispatch: e, - getState: t - }, n, a) { - const r = t(), - { - room: i - } = a, - o = wI(i), - s = o ? vf(r) : Bte.muted, - l = o ? kf(r) : Ute.muted; - Ma(pn("local", s, l)), uf.log(`Start muted: ${s?"audio, ":""}${l?"video":""}`), e(lf(s)), e((Qi, { - type: af, - cameraFacingMode: "user" - })), e(cf(l)); - const c = Boolean(ia(r, "startAudioOnly", { - config: o, - urlParams: !0, - jwt: !1, - settings: !0 - })); - return Ma(function(e) { - return { - action: "start.audio.only", - attributes: { - enabled: e - } - } - }(c)), uf.log(`Start audio only set to ${c.toString()}`), e(ZQ(c, !1)), n(a) - }(e, t, n); - case oo: { - const a = t(n), - { - track: r - } = n; - return r.local && "desktop" !== r.videoType && function({ - getState: e - }, t) { - const n = e()["features/base/media"], - a = t.mediaType === eo ? to : t.mediaType, - r = Boolean(n[a].muted); - t.muted !== r && (Ma(function(e, t) { - return { - action: "sync.track.state", - attributes: { - media_type: e, - muted: t - } - } - }(t.mediaType, r)), uf.log(`Sync ${t.mediaType} track muted state to ${r?"muted":"unmuted"}`), t.muted = r, is(t.jitsiTrack, r)) - }(e, r), a - } - case tf: { - const t = e.getState(), - a = Rh(t); - if (!n.muted && Cm(a, Xi, t)) return; - break - } - case of: { - const t = e.getState(), - a = Rh(t); - if (!n.muted && Cm(a, to, t)) return; - break - } - } - return t(n) - })); - const Hte = "network-info-online-status-change"; - class Vte extends(o()) { - constructor() { - super(), this._onlineStateListener = this._handleOnlineStatusChange.bind(this, !0), this._offlineStateListener = this._handleOnlineStatusChange.bind(this, !1) - } - _handleOnlineStatusChange(e) { - this.emit(Hte, { - isOnline: e - }) - } - static isSupported() { - return window.addEventListener && void 0 !== navigator.onLine - } - start() { - window.addEventListener("online", this._onlineStateListener), window.addEventListener("offline", this._offlineStateListener) - } - stop() { - window.removeEventListener("online", this._onlineStateListener), window.removeEventListener("offline", this._offlineStateListener) - } - } - - function Wte(e) { - return { - type: wte, - cleanup: e - } - } - const Yte = Je("features/base/net-info"); - Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - const r = n(a); - switch (a.type) { - case Ya: - if (Vte.isSupported()) { - const t = new Vte, - n = () => { - t.stop(), t.removeAllListeners() - }; - t.addListener(Hte, (({ - isOnline: t, - networkType: n, - details: a - }) => { - Yte.info("Network changed", JSON.stringify({ - isOnline: t, - details: a, - networkType: n - })), e(function({ - isOnline: e, - networkType: t, - details: n - }) { - return { - type: _te, - isOnline: e, - networkType: t, - details: n - } - }({ - isOnline: t, - networkType: n, - details: a - })) - })), e(Wte(n)), t.start() - } - break; - case Ga: { - const { - _cleanup: n - } = t()[h]; - n && (n(), e(Wte(void 0))) - } - } - return r - })); - - function Gte(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - - function Kte({ - getState: e, - dispatch: t - }, n, a, r) { - const i = "true" === r, - { - maxMode: o - } = e()["features/e2ee"] || {}; - o === O4 && i || t(x4(i)), t(lk({ - conference: n, - id: a, - e2eeEnabled: i - })) - } - - function $te({ - getState: e, - dispatch: t - }, n) { - const a = e(), - { - startAudioMuted: r - } = a["features/base/config"], - { - soundsParticipantJoined: i, - soundsParticipantLeft: o - } = a["features/base/settings"]; - if (!n.participant.local && (!r || Bh(a) < r)) { - const { - isReplacing: e, - isReplaced: a - } = n.participant; - if (n.type === qv) { - if (!i) return; - const { - presence: a - } = n.participant; - a === mK || a === fK || e || t(Gi(Ph)) - } else n.type === Uv && !a && o && t(Gi(Dh)) - } - } - - function Jte(e, t, n) { - const { - dispatch: a, - getState: r - } = e, { - participant: { - avatarURL: i, - email: o, - id: s, - local: l, - name: c, - raisedHand: u - } - } = n; - if (void 0 !== u && l) { - const { - conference: e - } = r()["features/base/conference"]; - e && u !== Rh(r()).raisedHand && e.setLocalParticipantProperty("raisedHand", u) - } - const d = t(n); - if (Object.keys(r()["features/base/config"]).length) { - const { - disableThirdPartyRequests: t - } = r()["features/base/config"]; - if (!t && (i || o || s || c)) { - const t = !s && l ? Rh(r()).id : s; - zh(Fh(r(), t), e).then((e => { - a(function(e, t) { - return { - type: Gv, - participant: { - id: e, - loadableAvatarUrl: t - } - } - }(t, e)) - })) - } - } - if ("object" == typeof APP) { - const e = l ? APP.conference.getMyUserId() : s; - APP.UI.refreshAvatarDisplay(e) - } - return d - } - - function Zte({ - dispatch: e, - getState: t - }, n, a, r) { - const i = "true" === r, - o = t(); - e(lk({ - conference: n, - id: a, - raisedHand: i - })), e(hk({ - id: a, - raisedHand: i - })), "undefined" != typeof APP && APP.API.notifyRaiseHandUpdated(a, i); - const s = Jh(o), - l = Fh(o, a); - let c = !1; - s && (c = Cm(l, Xi, o) || Cm(l, to, o)); - const u = c ? { - customActionNameKey: "notify.allowAction", - customActionHandler: () => e(Wm(a)) - } : {}; - i && (e(Yf(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Gte(e, t, n[t]) - })) - } - return e - }({ - titleKey: "notify.somebody", - title: Hh(o, a), - descriptionKey: "notify.raisedHand", - raiseHandNotification: !0, - concatText: !0 - }, u), zf * (c ? 2 : 1))), e(Gi(hJ))) - } - Be.register((e => t => n => { - switch (n.type) { - case Ya: - return function({ - dispatch: e - }) { - e(Ki(Ph, "joined.wav")), e(Ki(Dh, "left.wav")) - }(e), - function({ - getState: e, - dispatch: t - }, n, a) { - const r = n(a), - i = e()["features/base/settings"]; - return t(function(e = {}) { - return ak(Le(e, "local", !0)) - }({ - avatarURL: i.avatarURL, - email: i.email, - name: i.displayName - })), r - }(e, t, n); - case Ga: - return function({ - dispatch: e - }) { - e(Ji(Ph)), e(Ji(Dh)) - }(e), - function({ - dispatch: e - }, t, n) { - const a = t(n); - return e(((e, t) => { - const n = Rh(t); - if (n) return e(ik(n.id, void 0)) - })), a - }(e, t, n); - case GI: - e.dispatch(tk(n.conference.myUserId())); - break; - case Nv: { - const { - conference: t, - id: a - } = n.participant, r = e.getState(), i = Rh(r), o = i && i.id === a; - if (o && void 0 === i.raisedHand) break; - (function(e) { - var t; - return (null === (t = e["features/base/config"]) || void 0 === t ? void 0 : t.disableRemoveRaisedHandOnFocus) || !1 - })(r) || i && e.dispatch(lk({ - conference: t, - id: a, - local: o, - raisedHand: !1 - })); - break - } - case zv: { - const { - conference: t - } = e.getState()["features/base/conference"]; - t.grantOwner(n.id); - break - } - case Rv: { - const { - conference: t - } = e.getState()["features/base/conference"]; - t.kickParticipant(n.id); - break - } - case Kv: { - var a; - const { - enabled: t - } = n, r = null === (a = Rh(e.getState())) || void 0 === a ? void 0 : a.id; - e.dispatch(hk({ - id: r, - raisedHand: t - })), e.dispatch(lk({ - id: r, - local: !0, - raisedHand: t - })), "undefined" != typeof APP && APP.API.notifyRaiseHandUpdated(r, t); - break - } - case Lv: { - const { - conference: t - } = e.getState()["features/base/conference"]; - t.muteParticipant(n.id, n.mediaType); - break - } - case "PARTICIPANT_DISPLAY_NAME_CHANGED": - if ("undefined" != typeof APP) { - const t = Rh(e.getState()); - t && t.id === n.id && APP.UI.emitEvent(sQ.NICKNAME_CHANGED, n.name) - } - break; - case $v: { - const { - participant: t - } = n, a = Zh(e.getState()); - if (t.raisedHand) a.push(t.id), n.queue = a; - else { - const e = a.filter((e => e !== t.id)); - n.queue = e - } - break - } - case qv: - return $te(e, n), Jte(e, t, n); - case Uv: - $te(e, n); - break; - case Hv: - return Jte(e, t, n) - } - return t(n) - })), at.register((e => yI(e)), ((e, { - dispatch: t, - getState: n - }) => { - (0, Te.unstable_batchedUpdates)((() => { - for (const [a, r] of Wh(n()))(!e || r.conference !== e) && t(ik(a, r.conference, r.isReplaced)) - })) - })), at.register((e => e["features/base/conference"]), (({ - leaving: e - }, { - dispatch: t, - getState: n - }) => { - const a = n(), - r = Rh(a); - let i; - if (!r || (i = r.id) === jh) return; - const o = mI(a, (t => t === e || t.myUserId() !== i)); - o && t(tk(jh)) - })), at.register((e => e["features/base/conference"].conference), ((e, t) => { - if (e) { - const n = { - "e2ee.enabled": (n, a) => Kte(t, e, n.getId(), a), - features_e2ee: (n, a) => t.dispatch(lk({ - conference: e, - id: n.getId(), - e2eeSupported: a - })), - features_jigasi: (n, a) => t.dispatch(lk({ - conference: e, - id: n.getId(), - isJigasi: a - })), - "features_screen-sharing": (n, a) => t.dispatch(lk({ - conference: e, - id: n.getId(), - features: { - "screen-sharing": !0 - } - })), - raisedHand: (n, a) => Zte(t, e, n.getId(), a), - remoteControlSessionStatus: (n, a) => t.dispatch(lk({ - conference: e, - id: n.getId(), - remoteControlSessionStatus: a - })) - }; - e.getParticipants().forEach((e => { - Object.keys(n).forEach((t => { - const a = e.getProperty(t); - void 0 !== a && n[t](e, a) - })) - })), e.on(bt.PARTICIPANT_PROPERTY_CHANGED, ((e, t, a, r) => { - n.hasOwnProperty(t) && n[t](e, r) - })) - } else { - const n = Rh(t.getState).id; - Kte(t, e, n, !1), Zte(t, e, n, !1) - } - })); - const Qte = k().throttle((e => et.persistState(e)), 2e3); - let Xte; - - function ene(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - tne(e, t, n[t]) - })) - } - return e - } - - function tne(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - "function" == typeof window.addEventListener && window.addEventListener("unload", (() => { - Qte.flush() - })), Be.register((e => t => n => { - const a = qe(e), - r = t(n), - i = qe(e); - return a === i || Qte(i), r - })), Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case Ga: - window.removeEventListener("resize", Xte), Xte = void 0; - break; - case Ya: - ! function(e) { - Xte = () => { - const { - innerHeight: t, - innerWidth: n - } = window; - e.dispatch(p0(n, t)) - }, window.addEventListener("resize", Xte) - }(e) - } - return a - })), Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case Ya: - ! function({ - getState: e - }) { - const { - disableCallIntegration: t - } = e()["features/base/settings"] - }(e); - break; - case zR: - ! function({ - dispatch: e, - getState: t - }) { - const n = t(); - if (Boolean(n["features/base/jwt"].jwt)) { - const t = function(e) { - const { - user: t - } = e["features/base/jwt"]; - return null == t ? void 0 : t.name - }(n); - t && e(bn({ - displayName: t - })) - } - }(e); - break; - case gn: - ! function({ - dispatch: e - }, { - settings: { - startAudioOnly: t - } - }) { - "boolean" == typeof t && e(ZQ(t, !0)) - }(e, n), - function({ - dispatch: e, - getState: t - }, n) { - const { - settings: a - } = n, r = ene({}, Rh(t())); - for (const e in a) a.hasOwnProperty(e) && (r[(i = e, "displayName" === i ? "name" : i)] = a[e]); - var i; - e(lk(r)) - }(e, n); - break; - case DI: - ! function({ - dispatch: e, - getState: t - }) { - const n = Lt(t()["features/base/connection"].locationURL), - a = n["userInfo.email"], - r = n["userInfo.displayName"]; - if (!a && !r) return; - const i = Rh(t()); - if (i) { - const t = k().escape(r), - n = k().escape(a); - e(lk(ene({}, i, { - email: n, - name: t - }))), e(bn({ - displayName: t, - email: n - })) - } - }(e) - } - return a - })); - const nne = Je("features/base/sounds"); - Be.register((e => t => n => { - switch (n.type) { - case Ui: - ! function({ - getState: e - }, t) { - const n = e()["features/base/sounds"].get(t); - n ? n.audioElement ? n.audioElement.play() : nne.warn(`PLAY_SOUND: sound not loaded yet for id: ${t}`) : nne.warn(`PLAY_SOUND: no sound found for id: ${t}`) - }(e, n.soundId); - break; - case Vi: - ! function({ - getState: e - }, t) { - const n = e()["features/base/sounds"].get(t); - if (n) { - const { - audioElement: e - } = n; - e ? e.stop() : nne.warn(`STOP_SOUND: sound not loaded yet for id: ${t}`) - } else nne.warn(`STOP_SOUND: no sound found for id: ${t}`) - }(e, n.soundId) - } - return t(n) - })); - const ane = "SET_CONNECTION_STATE", - rne = Je("features/base/testing"); - - function ine(e, t) { - switch (e) { - case bt.CONNECTION_ESTABLISHED: - case bt.CONNECTION_INTERRUPTED: - case bt.CONNECTION_RESTORED: - t({ - type: ane, - connectionState: e - }); - break; - default: - rne.error(`onConnectionEvent - unsupported event type: ${e}`) - } - } - - function one({ - getState: e - }, t, n = !1) { - return Yo(e()["features/base/tracks"], t, n) - } - - function sne({ - getState: e, - dispatch: t - }, n) { - const a = Xo(e()["features/base/tracks"], n.jitsiTrack), - { - jitsiTrack: r, - noDataFromSourceNotificationInfo: i = {} - } = a || {}; - i && i.uid && (t(Vf(i.uid)), t(hs(r, void 0))) - } - - function lne(e, { - ensureTrack: t, - authority: n, - muted: a - }, r) { - const i = one(e, r, !0); - if (i) { - const { - jitsiTrack: e - } = i, t = 1 === n; - e && ("desktop" !== e.videoType || t) && is(e, a) - } else a || !t || "undefined" != typeof APP && !iL(e.getState()) || e.dispatch(ss({ - devices: [r] - })) - } - Be.register((e => t => n => { - switch (n.type) { - case GI: - ! function(e, { - dispatch: t - }) { - e.on(bt.CONNECTION_ESTABLISHED, ine.bind(null, bt.CONNECTION_ESTABLISHED, t)), e.on(bt.CONNECTION_RESTORED, ine.bind(null, bt.CONNECTION_RESTORED, t)), e.on(bt.CONNECTION_INTERRUPTED, ine.bind(null, bt.CONNECTION_INTERRUPTED, t)) - }(n.conference, e); - break; - case Rn: { - const a = t(n); - return function(e) { - const { - getState: t - } = e; - RX(t()) && (It().testing = { - getRemoteVideoType: LX.bind(null, e), - isLargeVideoReceived: FX.bind(null, e), - isRemoteVideoReceived: qX.bind(null, e) - }) - }(e), a - } - } - return t(n) - })), at.register((e => e["features/base/tracks"].filter((e => "desktop" === e.videoType)).map((e => e.participantId))), ((e, t, n) => { - "object" == typeof APP && (k().isEqual(k().sortBy(e), k().sortBy(n)) || APP.API.notifySharingParticipantsChanged(e)) - })), at.register((e => es(e["features/base/tracks"])), ((e, t, n) => { - "object" == typeof APP && e !== n && APP.API.notifyVideoMutedStatusChanged(e) - })), Be.register((e => t => n => { - switch (n.type) { - case oo: - n.track.local && e.dispatch(YM()); - break; - case co: { - const a = t(n); - return function(e, t) { - const { - getState: n, - dispatch: a - } = e, r = Xo(n()["features/base/tracks"], t.track.jitsiTrack); - if (!r || !r.local) return; - const { - jitsiTrack: i - } = r; - if (r.mediaType === Xi && r.isReceivingData && sne(e, t.track), r.mediaType === to) { - const { - noDataFromSourceNotificationInfo: n = {} - } = r; - if (r.isReceivingData) n.timeout && (clearTimeout(n.timeout), a(hs(i, void 0))), sne(e, t.track); - else { - if (n.timeout) return; - const e = setTimeout((() => a(cs(i))), 5e3); - a(hs(i, { - timeout: e - })) - } - } - }(e, n), a - } - case uo: - sne(e, n.track); - break; - case tf: - if (!n.muted && rs(e.getState())) return; - lne(e, n, Xi); - break; - case af: { - const t = one(e, to); - let a; - t && (a = t.jitsiTrack) && a.getCameraFacingMode() !== n.cameraFacingMode && e.dispatch({ - type: sf - }); - break - } - case of: - if (!n.muted && rs(e.getState())) return; - lne(e, n, n.mediaType); - break; - case sf: { - const t = one(e, to); - let n; - if (t && (n = t.jitsiTrack)) { - n._switchCamera(); - const t = n.getCameraFacingMode() === Qi; - e.dispatch({ - type: ho, - track: { - jitsiTrack: n, - mirror: t - } - }) - } - break - } - case io: - if ("object" == typeof APP) { - if ((n.enabled || void 0 === n.enabled) && dm(to, e.getState())) return void(Dv(eo, e.getState()) || e.dispatch(Xm(eo))); - const { - enabled: t, - audioOnly: a, - ignoreDidHaveVideo: r - } = n; - APP.UI.emitEvent(sQ.TOGGLE_SCREENSHARING, { - enabled: t, - audioOnly: a, - ignoreDidHaveVideo: r - }) - } - break; - case ho: - if ("undefined" != typeof APP) { - const a = t(n); - if (iL(e.getState())) return a; - const { - jitsiTrack: r - } = n.track, i = r.isMuted(), o = r.getParticipantId(); - return r.type !== Xi ? r.type === eo ? APP.conference.mutePresenter(i) : r.isLocal() && r.videoType !== ao ? APP.conference.setVideoMuteStatus() : r.isLocal() && i && r.videoType === ao ? e.dispatch(us(!1, !1, !0)) : APP.UI.setVideoMuted(o) : r.isLocal() ? APP.conference.setAudioMuteStatus(i) : APP.UI.setAudioMuted(o, i), a - } - } - return t(n) - })); - const cne = "USER_INTERACTION_RECEIVED"; - let une = null; - - function dne(e, t) { - t.isTrusted && (e({ - type: cne - }), pne()) + return !0 + })), this.notifyBrowserSupport(pY())) } - - function pne() { - window.removeEventListener("mousedown", une), window.removeEventListener("keydown", une), une = null + notifyLargeVideoVisibilityChanged(e) { + this._sendEvent({ + name: "large-video-visibility-changed", + isVisible: !e + }) } - Be.register((e => t => n => { - switch (n.type) { - case Ya: - ! function({ - dispatch: e - }) { - pne(), une = dne.bind(null, e), window.addEventListener("mousedown", une), window.addEventListener("keydown", une) - }(e); - break; - case Ga: - pne() - } - return t(n) - })), Be.register((e => t => n => { - const { - getState: a - } = e; - if (!w$(a)) return t(n); - switch (n.type) { - case yn: { - const r = a()["features/base/known-domains"], - i = t(n); - return Re(r, a()["features/base/known-domains"]) || S$(e), i - } - case Dte: { - const a = t(n); - return function(e, { - appState: t - }) { - "background" === t && e.dispatch((void 0, { - type: $K, - authorization: undefined - })) - }(e, n), a - } - case Rn: { - const a = t(n); - return S$(e), a - } - case KK: { - const a = t(n); - return S$(e, n.isInteractive, n.forcePermission), a - } - } - return t(n) - })); - const hne = "SET_ACTIVE_MODAL_ID"; - - function mne(e, t = {}) { - return { - activeModalId: e, - modalProps: t, - type: hne - } + sendProxyConnectionEvent(e) { + this._sendEvent({ + name: "proxy-connection-event", + ...e + }) } - - function fne({ - dispatch: e, - getState: t - }, { - id: n, - message: a, - privateMessage: r, - timestamp: i - }, o = !0, s = !1) { - const l = t(), - { - isOpen: c - } = l["features/chat"], - { - iAmRecorder: u - } = l["features/base/config"], - { - soundsIncomingMessage: d - } = l["features/base/settings"]; - d && o && !c && e(Gi(r0)); - const p = Fh(l, n) || {}, - h = Rh(t), - m = Hh(l, n), - f = p.local || c, - g = (i ? new Date(i) : new Date).getTime(); - e(B3({ - displayName: m, - hasRead: f, - id: n, - messageType: p.local ? o0 : s0, - message: a, - privateMessage: r, - recipient: Hh(l, h.id), - timestamp: g, - isReaction: s - })), "undefined" != typeof APP && (APP.API.notifyReceivedChatMessage({ - body: a, - id: n, - nick: m, - privateMessage: r, - ts: i - }), u || e(BV(4e3))) + _sendEvent() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + this._enabled && Ite.sendEvent(e) } - Be.register((e => t => n => { - const { - dispatch: a, - getState: r - } = e, i = Rh(r()); - let o, s; - switch (n.type) { - case M3: - s = T5(r()), n.isReaction ? n.hasRead = !1 : s = n.hasRead ? 0 : s + 1, o = r()["features/chat"].isOpen, "undefined" != typeof APP && APP.API.notifyChatUpdated(s, o); - break; - case Ya: - a(Ki(r0, "incomingMessage.wav")); - break; - case Ga: - a(Ji(r0)); - break; - case UI: - ! function(e, t) { - t.getState()["features/base/config"].iAmRecorder || (e.on(bt.MESSAGE_RECEIVED, ((e, n, a) => { - fne(t, { - id: e, - message: n, - privateMessage: !1, - timestamp: a - }) - })), e.on(bt.PRIVATE_MESSAGE_RECEIVED, ((e, n, a) => { - fne(t, { - id: e, - message: n, - privateMessage: !0, - timestamp: a - }) - })), e.on(bt.ENDPOINT_MESSAGE_RECEIVED, ((...e) => { - if (_J(t.getState()) && (t.dispatch(Fa(...e)), e && e.length >= 2)) { - const [{ - _id: n - }, a] = e; - a.name === pJ && (t.dispatch(s4(a.reactions)), fne(t, { - id: n, - message: yJ(a.reactions), - privateMessage: !1, - timestamp: a.timestamp - }, !1, !0)) - } - })), e.on(bt.CONFERENCE_ERROR, ((e, n) => { - e === gt.CHAT_ERROR && function({ - dispatch: e - }, t) { - e(B3({ - hasRead: !0, - messageType: i0, - message: t, - privateMessage: !1, - timestamp: Date.now() - })) - }(t, n) - }))) - }(n.conference, e); - break; - case z3: - "ReactNative" === navigator.product ? i.name ? a(mne(a0)) : a(OH((() => { - a(mne(a0)) - }))) : a(mne(a0)), s = 0, "undefined" != typeof APP && APP.API.notifyChatUpdated(s, !0); - break; - case N3: { - const e = r()["features/chat"].isPollsTabFocused; - s = 0, "undefined" != typeof APP && APP.API.notifyChatUpdated(s, !1), e && a(t5()), a(mne()); - break - } - case F3: - a(t5()); - break; - case R3: { - const t = e.getState(), - { - conference: r - } = t["features/base/conference"]; - if (r) { - const i = function(e, t) { - if (t.ignorePrivacy) return; - const { - messages: n, - privateMessageRecipient: a - } = e["features/chat"]; - if (a) return; - if (!n.length) return; - const r = "ReactNative" === navigator.product ? n[0] : n[n.length - 1]; - if (r.messageType === o0) return; - if (r.privateMessage) return r.id; - const i = Date.now(), - o = n.filter((e => e.messageType !== o0 && e.privateMessage && e.timestamp + 2e4 > i)), - s = "ReactNative" === navigator.product ? o[0] : o[o.length - 1]; - return s ? s.id : void 0 - }(t, n); - if (i) a(sP(a6, { - message: n.message, - participantID: i - })); - else { - const { - privateMessageRecipient: a - } = t["features/chat"]; - "undefined" != typeof APP && APP.API.notifySendingChatMessage(n.message, Boolean(a)), a ? (r.sendPrivateTextMessage(a.id, n.message), function({ - dispatch: e, - getState: t - }, n, a) { - const r = Rh(t); - e(B3({ - displayName: Hh(t, r.id), - hasRead: !0, - id: r.id, - messageType: o0, - message: a, - privateMessage: !0, - recipient: Hh(t, n), - timestamp: Date.now() - })) - }(e, a.id, n.message)) : r.sendTextMessage(n.message) - } - } - break - } - case e4: - fne(e, { - id: i.id, - message: n.message, - privateMessage: !1, - timestamp: Date.now() - }, !1, !0) - } - return t(n) - })), at.register((e => yI(e)), ((e, { - dispatch: t, - getState: n - }, a) => { - e !== a && (n()["features/chat"].isOpen && t(U3()), t({ - type: I3 - })) - })), at.register((e => e["features/chat"].isOpen), ((e, { - dispatch: t - }) => { - "undefined" != typeof APP && e && t(BV()) - })), Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case UI: - case u0: { - const { - dispatch: t, - getState: n - } = e, a = n(), { - reducedUI: r - } = a["features/base/responsive-ui"]; - t(NV(!r)), t({ - type: DJ, - enabled: !r - }); - break - } - case JI: { - const { - dispatch: t - } = e; - t((r = n.participant, (e, t) => { - if (!r || r.isReplaced && r.isReplaced()) return; - const n = { - participantDisplayName: Hh(t, r.getId()) - }; - e(Yf({ - appearance: Rf, - hideErrorSupportLink: !0, - descriptionKey: "dialog.kickMessage", - descriptionArguments: n, - titleKey: "dialog.kickTitle", - titleArguments: n - })) - })); - break - } - } - var r; - return a - })), at.register((e => yI(e)), ((e, { - dispatch: t, - getState: n - }, a) => { - const { - authRequired: r, - membersOnly: i, - passwordRequired: o - } = n()["features/base/conference"]; - e !== a && (t(dk(null)), void 0 !== r || void 0 !== o || void 0 !== i || iP(n(), eV) || t(oP()), t(mne())) - })), Be.register((e => e => t => (t.type === UI && EX.startListeningForStats(t.conference), e(t)))); - const gne = "OPEN_DESKTOP_APP", - bne = "OPEN_WEB_APP"; - - function yne() { - return e => { - e({ - type: bne - }), e(KN()) - } + notifyChatUpdated(e, t) { + this._sendEvent({ + name: "chat-updated", + unreadCount: e, + isOpen: t + }) } - const vne = "deepLinking"; - class kne extends E.Component { - constructor(e) { - super(e), this._onLaunchWeb = this._onLaunchWeb.bind(this), this._onTryAgain = this._onTryAgain.bind(this) - } - componentDidMount() { - Ma(Xt("displayed", "DeepLinkingDesktop", { - isMobileBrowser: !1 - })) - } - render() { - const { - t: e - } = this.props, { - HIDE_DEEP_LINKING_LOGO: t, - NATIVE_APP_NAME: n, - SHOW_DEEP_LINKING_IMAGE: a - } = interfaceConfig, r = a ? null : { - width: "100%" - }; - return x().createElement(Mee, { - mode: "light" - }, x().createElement("div", { - className: "deep-linking-desktop" - }, x().createElement("div", { - className: "header" - }, t ? null : x().createElement("img", { - alt: e("welcomepage.logo.logoDeepLinking"), - className: "logo", - src: "images/logo-deep-linking.png" - })), x().createElement("div", { - className: "content" - }, a ? x().createElement("div", { - className: "leftColumn" - }, x().createElement("div", { - className: "leftColumnContent" - }, x().createElement("div", { - className: "image" - }))) : null, x().createElement("div", { - className: "rightColumn", - style: r - }, x().createElement("div", { - className: "rightColumnContent" - }, x().createElement("h1", { - className: "title" - }, e(`${vne}.title`, { - app: n - })), x().createElement("p", { - className: "description" - }, e(`${vne}.${JV()?"description":"descriptionWithoutWeb"}`, { - app: n - })), x().createElement("div", { - className: "buttons" - }, x().createElement(mP, null, x().createElement(nS, { - appearance: "default", - onClick: this._onTryAgain - }, e(`${vne}.tryAgainButton`)), JV() && x().createElement(nS, { - onClick: this._onLaunchWeb - }, e(`${vne}.launchWebButton`))))))))) - } - _onTryAgain() { - Ma(Xt("clicked", "tryAgainButton", { - isMobileBrowser: !1 - })), this.props.dispatch({ - type: gne - }) - } - _onLaunchWeb() { - Ma(Xt("clicked", "launchWebButton", { - isMobileBrowser: !1 - })), this.props.dispatch(yne()) - } + notifySendingChatMessage(e, t) { + this._sendEvent({ + name: "outgoing-message", + message: e, + privateMessage: t + }) } - const _ne = Li(ze()(kne)); - - function wne() { - return wne = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, wne.apply(this, arguments) + notifyMouseEnter(e) { + this._sendEvent({ + name: "mouse-enter", + event: zte(e) + }) } - const Sne = "deep-linking-mobile"; - class Ene extends E.Component { - constructor(e) { - super(e), this._onDownloadApp = this._onDownloadApp.bind(this), this._onLaunchWeb = this._onLaunchWeb.bind(this), this._onOpenApp = this._onOpenApp.bind(this) - } - componentDidMount() { - Ma(Xt("displayed", "DeepLinkingMobile", { - isMobileBrowser: !0 - })) - } - render() { - const { - _downloadUrl: e, - _room: t, - t: n - } = this.props, { - HIDE_DEEP_LINKING_LOGO: a, - NATIVE_APP_NAME: r, - SHOW_DEEP_LINKING_IMAGE: i - } = interfaceConfig, o = `${Sne}__button ${Sne}__button_primary`, s = e ? {} : { - target: "_blank", - rel: "noopener noreferrer" - }; - return x().createElement("div", { - className: Sne - }, x().createElement("div", { - className: "header" - }, a ? null : x().createElement("img", { - alt: n("welcomepage.logo.logoDeepLinking"), - className: "logo", - src: "images/logo-deep-linking.png" - })), x().createElement("div", { - className: `${Sne}__body` - }, i ? x().createElement("img", { - alt: n("welcomepage.logo.logoDeepLinking"), - className: "image", - src: "images/deep-linking-image.png" - }) : null, x().createElement("p", { - className: `${Sne}__text` - }, n(`${vne}.appNotInstalled`, { - app: r - })), x().createElement("p", { - className: `${Sne}__text` - }, n(`${vne}.ifHaveApp`)), x().createElement("a", wne({}, s, { - className: `${Sne}__href`, - href: jne(), - onClick: this._onOpenApp, - target: "_top" - }), x().createElement("button", { - className: `${Sne}__button ${Sne}__button_primary` - }, n(`${vne}.joinInApp`))), x().createElement("p", { - className: `${Sne}__text` - }, n(`${vne}.ifDoNotHaveApp`)), x().createElement("a", wne({}, s, { - href: this._generateDownloadURL(), - onClick: this._onDownloadApp, - target: "_top" - }), x().createElement("button", { - className: o - }, n(`${vne}.downloadApp`))), ("android" === wa.OS && YV.isChromiumBased() || "android" === wa.OS && YV.isFirefox() || "ios" === wa.OS && YV.isWebKitBased()) && x().createElement("a", { - onClick: this._onLaunchWeb, - target: "_top" - }, x().createElement("button", { - className: o - }, n(`${vne}.launchWebButton`))), null, x().createElement(hK, { - className: "deep-linking-dial-in", - clickableNumbers: !0, - room: t - }))) - } - _generateDownloadURL() { - var e; - const { - _downloadUrl: t - } = this.props; - if (t && void 0 === interfaceConfig.MOBILE_DYNAMIC_LINK) return t; - const { - APN: n = "org.jitsi.meet", - APP_CODE: a = "w2atb", - CUSTOM_DOMAIN: r, - IBI: i = "com.atlassian.JitsiMeet.ios", - ISI: o = "1165103905" - } = interfaceConfig.MOBILE_DYNAMIC_LINK || {}, s = null !== (e = r) && void 0 !== e ? e : `https://${a}.app.goo.gl`, l = interfaceConfig.APP_SCHEME || "org.jitsi.meet"; - return `${s}/?link=${encodeURIComponent(window.location.href)}&apn=${n}&ibi=${i}&isi=${o}&ius=${l}&efr=1` - } - _onDownloadApp() { - Ma(Xt("clicked", "downloadAppButton", { - isMobileBrowser: !0 - })) - } - _onLaunchWeb() { - Ma(Xt("clicked", "launchWebButton", { - isMobileBrowser: !0 - })), this.props.dispatch(yne()) - } - _onOpenApp() { - Ma(Xt("clicked", "openAppButton", { - isMobileBrowser: !0 - })) - } + notifyMouseLeave(e) { + this._sendEvent({ + name: "mouse-leave", + event: zte(e) + }) } - const xne = Li(ze((function(e) { - return { - _downloadUrl: interfaceConfig[`MOBILE_DOWNLOAD_LINK_${wa.OS.toUpperCase()}`], - _room: decodeURIComponent(e["features/base/conference"].room) - } - }))(Ene)); - class Cne extends E.Component { - componentDidMount() { - Ma(Xt("displayed", "noMobileApp", { - isMobileBrowser: !0 - })) - } - render() { - const e = "no-mobile-app"; - return x().createElement("div", { - className: e - }, x().createElement("h2", { - className: `${e}__title` - }, "Video chat isn't available on mobile."), x().createElement("p", { - className: `${e}__description` - }, "Please use ", interfaceConfig.NATIVE_APP_NAME, " on desktop to join calls.")) - } + notifyMouseMove(e) { + this._sendEvent({ + name: "mouse-move", + event: zte(e) + }) } - - function Ane(e) { - return Promise.resolve(!1) + notifyModerationChanged(e, t) { + this._sendEvent({ + name: "moderation-status-changed", + mediaType: e, + enabled: t + }) } - - function jne() { - const e = interfaceConfig.APP_SCHEME || "org.jitsi.meet", - { - href: t - } = window.location, - n = new RegExp(xn, "gi"); - return "android" === wa.OS ? `intent://${t.replace(n,"").substr(2)}#Intent;scheme=${e};package=${interfaceConfig.ANDROID_APP_PACKAGE||"org.jitsi.meet"};end` : t.replace(n, `${e}:`) - } - Be.register((e => t => n => (n.type === gne && (e.getState(), Ane()), t(n)))), Be.register((e => t => n => { - const a = t(n); - if (n.type === xM) { - const t = e.getState(), - { - availableDevices: n - } = t["features/base/devices"] || {}; - "undefined" != typeof APP && APP.API.notifyDeviceListChanged(n) - } - return a - })), Be.register((({ - dispatch: e, - getState: t - }) => n => a => (a.type === gn && a.settings.displayName && iP(t, cF) && e(oP(cF)), n(a)))); - const Pne = "SHARE_DOCUMENT_VIEW_ID"; - Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - if (a.type === l6) - if ("undefined" == typeof APP) { - const n = !t()["features/etherpad"].editing; - e(c6(n)), n ? e(mne(Pne)) : t()["features/base/modal"].activeModalId === Pne && e(mne(void 0)) - } else APP.UI.emitEvent(sQ.ETHERPAD_CLICKED); - return n(a) - })), at.register((e => yI(e)), ((e, { - dispatch: t, - getState: n - }, a) => { - e && e.addCommandListener("etherpad", (({ - value: e - }) => { - let a; - const { - etherpad_base: r - } = n()["features/base/config"]; - r && (a = new URL(e, r).toString()), t(u6(a)) - })), a && t(u6(void 0)) - })), at.register((e => e["features/video-layout"].remoteScreenShares), ((e, t) => LJ(t))), at.register((e => e["features/base/participants"].dominantSpeaker), ((e, t) => LJ(t))), at.register(Uh, ((e, t) => { - const n = t.getState(); - if (Ok(n)) { - const e = Tk(n); - Re(e, n["features/filmstrip"].tileViewDimensions.gridDimensions) || t.dispatch(GJ(e)) - } - })), at.register((e => Dk(e)), ((e, t) => { - const n = t.getState(); - switch (e) { - case Ak: - t.dispatch(GJ(Tk(n))); - break; - case Ck: - t.dispatch($J()); - break; - case jk: - t.dispatch(KJ()) - } - })), at.register((e => e["features/chat"].isOpen), ((e, t) => { - const { - innerWidth: n, - innerHeight: a - } = window; - e ? document.body.classList.add("shift-right") : document.body.classList.remove("shift-right"), t.dispatch(p0(n, a)) - })), at.register(jm, ((e, t) => { - const { - innerWidth: n, - innerHeight: a - } = window; - t.dispatch(p0(n, a)) - })), at.register((e => e["features/base/responsive-ui"].clientWidth < 512), ((e, t) => { - t.dispatch({ - type: PV, - displayAsDrawer: e + notifyParticipantApproved(e, t) { + this._sendEvent({ + name: "moderation-participant-approved", + id: e, + mediaType: t }) - })), at.register((e => e["features/base/responsive-ui"].clientWidth < bk), ((e, t) => { - const n = t.getState(), - { - disableFilmstripAutohiding: a - } = n["features/base/config"]; - a || t.dispatch(UJ(!e)) - })); - const Dne = { - multipleColumns: Symbol("multipleColumns"), - singleColumn: Symbol("singleColumn"), - twoColumns: Symbol("twoColumns"), - twoParticipantsSingleColumn: Symbol("twoParticipantsSingleColumn") - }; - at.register((e => { - const { - clientWidth: t - } = e["features/base/responsive-ui"]; - return t < 1e3 && t >= bk ? Dne.twoColumns : t < bk && t >= 300 ? Dne.twoParticipantsSingleColumn : t < 300 ? Dne.singleColumn : Dne.multipleColumns - }), ((e, t) => { - const n = t.getState(); - if (Ok(n)) { - const e = Tk(n); - t.dispatch(GJ(e)) - } - })), Be.register((e => t => n => { - var a; - n.type === Uv && function(e, t = null) { - if (!t) return; - const n = e.getState(), - { - remoteParticipants: a - } = n["features/filmstrip"], - r = new Set(a); - r.delete(t) && e.dispatch(HJ(Array.from(r))) - }(e, null === (a = n.participant) || void 0 === a ? void 0 : a.id); - const r = t(n); - switch (n.type) { - case l0: { - const t = e.getState(); - switch (Dk(t)) { - case Ak: { - const { - gridDimensions: n - } = t["features/filmstrip"].tileViewDimensions; - e.dispatch(GJ(n)); - break - } - case Ck: - e.dispatch($J()); - break; - case jk: - e.dispatch(KJ()) - } - break - } - case qv: - var i; - LJ(e, null === (i = n.participant) || void 0 === i ? void 0 : i.id); - break; - case gn: - var o; - "boolean" == typeof(null === (o = n.settings) || void 0 === o ? void 0 : o.localFlipX) && O3.onLocalFlipXChanged() - } - return r - })); - const Tne = "SET_FOLLOW_ME_MODERATOR", - One = "SET_FOLLOW_ME_STATE"; - - function Mne(e) { - return { - type: Tne, + } + notifyParticipantRejected(e, t) { + this._sendEvent({ + name: "moderation-participant-rejected", + id: e, + mediaType: t + }) + } + notifyVideoQualityChanged(e) { + this._sendEvent({ + name: "video-quality-changed", + videoQuality: e + }) + } + notifyReceivedChatMessage() { + let { + body: e, + id: t, + nick: n, + privateMessage: a, + ts: r + } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; + APP.conference.isLocalId(t) || this._sendEvent({ + name: "incoming-message", + from: t, + message: e, + nick: n, + privateMessage: a, + stamp: r + }) + } + notifyUserJoined(e, t) { + this._sendEvent({ + name: "participant-joined", + id: e, + ...t + }) + } + notifyUserLeft(e) { + this._sendEvent({ + name: "participant-left", id: e - } + }) } - const Ine = "follow-me", - Nne = Je("features/follow-me"); - - function zne(e) { - const t = Yh(e); - return { - filmstripVisible: e["features/filmstrip"].visible, - nextOnStage: t && t.id, - sharedDocumentVisible: e["features/etherpad"].editing, - tileViewEnabled: Ok(e) - } + notifyUserRoleChanged(e, t) { + this._sendEvent({ + name: "participant-role-changed", + id: e, + role: t + }) } - - function Rne(e, t) { - const n = t.getState(), - a = yI(n); - a && Jh(n) && ("off" !== e ? n["features/base/conference"].followMeEnabled && a.sendCommand(Ine, { - attributes: zne(n) - }) : a.sendCommandOnce(Ine, { - attributes: { - off: !0 - } - })) + notifyAvatarChanged(e, t) { + this._sendEvent({ + name: "avatar-changed", + avatarURL: t, + id: e + }) } - at.register((e => e["features/base/conference"].followMeEnabled), ((e, t) => Rne(e || "off", t))), at.register((e => { - const t = Yh(e); - return t ? t.id : null - }), Rne), at.register((e => e["features/etherpad"].editing), Rne), at.register((e => e["features/filmstrip"].visible), Rne), at.register((e => e["features/video-layout"].tileViewEnabled), Rne); - let Lne, Fne = 0; - - function qne(e, t) { - Fh(e.getState(), t) ? (clearTimeout(Lne), Fne = 0, e.dispatch(dk(t))) : Lne = setTimeout((() => { - Fne > 30 ? Fne = 0 : (Fne++, qne(e, t)) - }), 1e3) + notifyEndpointTextMessageReceived(e) { + this._sendEvent({ + name: "endpoint-text-message-received", + data: e + }) } - Be.register((e => t => n => { - switch (n.type) { - case GI: { - const { - conference: t - } = n; - t.addCommandListener(Ine, (({ - attributes: t - }, n) => { - ! function(e = {}, t, n) { - const a = n.getState(); - if (void 0 === t) return; - const r = Fh(a, t); - if (r.local) return; - if ("moderator" !== r.role) return void Nne.warn("Received follow-me command not from moderator"); - if (iJ(a) || n.dispatch(Mne(t)), e.off) return void n.dispatch(Mne()); - const i = a["features/follow-me"].state || {}; - if (n.dispatch(function(e) { - return { - type: One, - state: e - } - }(e)), i.filmstripVisible !== e.filmstripVisible && n.dispatch(UJ("true" === e.filmstripVisible)), i.tileViewEnabled !== e.tileViewEnabled && n.dispatch(Nk("true" === e.tileViewEnabled)), "undefined" != typeof APP && i.sharedDocumentVisible !== e.sharedDocumentVisible) { - const t = "true" === e.sharedDocumentVisible, - n = APP.UI.getSharedDocumentManager(); - n && t !== a["features/etherpad"].editing && n.toggleEtherpad() - } - const o = Yh(a), - s = e.nextOnStage; - void 0 === s || o && s === o.id || i.nextOnStage === e.nextOnStage ? void 0 === s && o && n.dispatch(dk(null)) : qne(n, s) - }(t, n, e) - })); - break - } - case Uv: - e.getState()["features/follow-me"].moderator === n.participant.id && e.dispatch(Mne()) - } - return t(n) - })); - const Bne = new Map([ - [dR, { - file: "rejected.wav" - }], - [pR, { - file: "rejected.wav" - }], - [hR, { - file: "outgoingRinging.wav", - options: { - loop: !0 - } - }], - [mR, { - file: "outgoingStart.wav" - }] - ]), - Une = { - [fK]: mR, - [bK]: Ph, - [vK]: dR, - [mK]: mR, - [yK]: pR, - [gK]: hR - }; - Be.register((e => t => n => { - let a; - const { - dispatch: r, - getState: i - } = e, o = i(); - n.type !== Hv && n.type !== Uv || (a = Vh(o, n.participant.id)), n.type === SW && (n.calleeInfoVisible ? r(dk(Rh(o).id)) : r(dk())); - const s = t(n); - switch (n.type) { - case Ya: - for (const [e, t] of Bne.entries()) r(Ki(e, t.file, t.options)); - break; - case Ga: - for (const e of Bne.keys()) r(Ji(e)); - break; - case UI: - ! function(e) { - const { - dispatch: t, - getState: n - } = e; - (n()["features/invite"].pendingInviteRequests || []).forEach((({ - invitees: e, - callback: n - }) => { - t(jW(e)).then((e => { - n(e) - })) - })), t({ - type: wW - }) - }(e); - break; - case qv: - case Uv: - case Hv: { - ! function(e, t) { - const n = t.getState(); - if (!n["features/invite"].calleeInfoVisible) return; - const a = Wh(n), - r = Bh(n); - let i = 0; - a.forEach((e => { - "poltergeist" === e.botType && i++ - })); - (i > 1 || r - i > 1 || e.type === Uv && 1 === r) && t.dispatch(DW(!1)) - }(n, e); - const t = Vh(o, n.participant.id); - if (a === t) break; - const i = a && Une[a], - s = t && Une[t]; - if (i === s) break; - i && r($i(i)), s && r(Gi(s)); - break - } - case xW: - bR.error("Error encountered while fetching dial-in numbers:", n.error) - } - return s - })), Be.register((e => t => n => { - switch (n.type) { - case _W: - return function({ - dispatch: e - }, t, n) { - const a = t(n); - return e(sP(iK)), a - }(e, t, n); - case EW: - return function({ - dispatch: e - }, t, n) { - return e(oP(iK)), t(n) - }(e, t, n) - } - return t(n) - })), Be.register((e => t => async n => { - if (n.type === Hz) { - const { - status: t - } = n.payload; - "BLOCKED" === t && e.dispatch($N("/static/planLimit.html")) - } - return t(n) - })); - const Hne = Je("features/large-video"); - - function Vne(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + notifySharingParticipantsChanged(e) { + this._sendEvent({ + name: "content-sharing-participants-changed", + data: e + }) } - - function Wne(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + notifyDeviceListChanged(e) { + this._sendEvent({ + name: "device-list-changed", + devices: e + }) } - at.register((e => e["features/large-video"].participantId), (e => { - O3.updateLargeVideo(e, !0) - })), Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case Nv: { - const t = e.getState(), - a = Rh(t); - RX(t) && Hne.info(`Dominant speaker changed event for: ${n.participant.id}`), a && a.id !== n.participant.id && e.dispatch(lX()); - break - } - case qv: - case Uv: - case Vv: - case oo: - case uo: - e.dispatch(lX()) - } - return a - })), Be.register((e => t => n => { - switch (n.type) { - case Ya: - e.dispatch(Ki(q4, "knock.mp3")); - break; - case Ga: - e.dispatch(Ji(q4)); - break; - case BI: - return function({ - dispatch: e, - getState: t - }, n, a) { - const { - error: r - } = a, i = t(), o = Boolean(i["features/base/conference"].membersOnly); - if (r.name === gt.MEMBERS_ONLY_ERROR) { - void 0 === r.recoverable && (r.recoverable = !0); - const t = n(a); - return e({ - type: G4, - visible: !0 - }), - function(e) { - const { - iAmRecorder: t, - iAmSipGateway: n - } = e["features/base/config"]; - return (rL(e) || t && n) && !e["features/lobby"].knocking - }(i) && e(X4()), e(Q4(o)), t - } - return e(t8()), r.name === gt.CONFERENCE_ACCESS_DENIED && e(Yf({ - appearance: Rf, - hideErrorSupportLink: !0, - titleKey: "lobby.joinRejectedMessage" - })), n(a) - }(e, t, n); - case UI: - return function({ - dispatch: e - }, t, n) { - return e(t8()), t(n) - }(e, t, n); - case H4: { - const a = t(n); - return function(e, { - id: t - }) { - const { - dispatch: n, - getState: a - } = e, r = a()["features/lobby"].knockingParticipants.find((e => e.id === t)), { - disableThirdPartyRequests: i - } = a()["features/base/config"]; - i || !r || r.loadableAvatarUrl || zh(r, e).then((e => { - e && n($4({ - loadableAvatarUrl: e, - id: t - })) - })) - }(e, n.participant), a - } - } - return t(n) - })), at.register((e => e["features/base/conference"].conference), ((e, { - dispatch: t, - getState: n - }, a) => { - e && !a && (e.on(bt.MEMBERS_ONLY_CHANGED, (e => { - t(function(e) { - return { - enabled: e, - type: W4 - } - }(e)) - })), e.on(bt.LOBBY_USER_JOINED, ((e, n) => { - (0, Te.unstable_batchedUpdates)((() => { - t($4({ - id: e, - name: n - })), t(Gi(q4)) - })) - })), e.on(bt.LOBBY_USER_UPDATED, ((e, n) => { - t($4(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Vne(e, t, n[t]) - })) - } - return e - }({}, n, { - id: e - }))) - })), e.on(bt.LOBBY_USER_LEFT, (e => { - t(function(e) { - return { - id: e, - type: V4 - } - }(e)) - })), e.on(bt.ENDPOINT_MESSAGE_RECEIVED, ((e, a) => function(e, t, { - dispatch: n, - getState: a - }) { - if (!(null == e ? void 0 : e._id) || "lobby-notify" !== (null == t ? void 0 : t.type)) return; - const r = { - descriptionArguments: { - originParticipantName: Hh(a, e._id), - targetParticipantName: t.name - }, - titleKey: "lobby.notificationTitle" - }; - switch (t.event) { - case "LOBBY-ENABLED": - r.descriptionKey = `lobby.notificationLobby${t.value?"En":"Dis"}abled`; - break; - case "LOBBY-ACCESS-GRANTED": - r.descriptionKey = "lobby.notificationLobbyAccessGranted"; - break; - case "LOBBY-ACCESS-DENIED": - r.descriptionKey = "lobby.notificationLobbyAccessDenied" - } - n(Yf(r, RX(a()) ? void 0 : 5e3)) - }(e, a, { - dispatch: t, - getState: n - })))) - })), Be.register((e => t => n => { - switch (n.type) { - case qv: { - const r = t(n), - { - participant: i - } = n, - { - dispatch: o, - getState: s - } = e, - l = s(), - { - conference: c - } = l["features/base/conference"]; - return !c || i.local || Pv() || i.isReplacing || o((a = Hh(l, i.id), Kf.push(a), (e, t) => $f(e, t))), r - } - case Uv: - if (!Pv()) { - const t = Fh(e.getState(), n.participant.id); - "object" != typeof interfaceConfig || !t || t.local || n.participant.isReplaced || e.dispatch(Yf({ - descriptionKey: "notify.disconnected", - titleKey: "notify.somebody", - title: t.name - }, zf)) - } - return t(n); - case Hv: { - const a = e.getState(), - { - disableModeratorIndicator: r - } = a["features/base/config"]; - if (r) return t(n); - const { - id: i, - role: o - } = n.participant; - if (Rh(a).id !== i) return t(n); - const s = Fh(a, i), - l = null == s ? void 0 : s.role; - return l && l !== o && o === Th && e.dispatch(Yf({ - titleKey: "notify.moderator" - }, zf)), t(n) - } - case G6: - e.dispatch({ - type: Nf - }) - } - var a; - return t(n) - })), at.register((e => yI(e)), ((e, { - dispatch: t - }) => { - e || t(Hf()) - })); - const Yne = [gt.CONFERENCE_ACCESS_DENIED, gt.CONFERENCE_DESTROYED, gt.CONNECTION_ERROR]; - at.register((e => { - const { - error: t - } = e["features/base/conference"], { - error: n - } = e["features/base/config"], { - error: a - } = e["features/base/connection"]; - return n || a || t - }), ((e, { - dispatch: t, - getState: n - }) => { - if (e) { - if ("undefined" != typeof APP) { - const t = "string" == typeof e ? { - name: e - } : e; - APP.API.notifyError(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Wne(e, t, n[t]) - })) - } - return e - }({}, t, ((e, t) => { - const n = e(), - { - error: a - } = n["features/base/conference"], - { - error: r - } = n["features/base/config"], - { - error: i - } = n["features/base/connection"]; - return t === a ? { - type: "CONFERENCE", - isFatal: ct(t.name || t) - } : t === r ? { - type: "CONFIG", - isFatal: !0 - } : t === i ? { - type: "CONNECTION", - isFatal: ut(t.name || t) - } : void 0 - })(n, e))) - } - 1 === Yne.indexOf(e.name) && void 0 === e.recoverable && t(xN(e)) - } - })), Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - const r = n(a); - switch (a.type) { - case K3: { - const n = t(), - r = n["features/chat"].isOpen, - i = n["features/chat"].isPollsTabFocused; - !a.notify || r && i || e(Gi(r0)); - break - } - } - return r - })); - const Gne = e => { - if ("object" != typeof e || null === e) return null; - const { + notifyDisplayNameChanged(e, t) { + let { + displayName: n, + formattedDisplayName: a + } = t; + this._sendEvent({ + name: "display-name-change", + displayname: n, + formattedDisplayName: a, + id: e + }) + } + notifyEmailChanged(e, t) { + let { + email: n + } = t; + this._sendEvent({ + name: "email-change", + email: n, + id: e + }) + } + notifyLog(e, t) { + this._sendEvent({ + name: "log", + logLevel: e, + args: t + }) + } + notifyConferenceJoined(e, t, n) { + this._sendEvent({ + name: "video-conference-joined", + roomName: e, id: t, - senderId: n, - senderName: a, - question: r, - answers: i - } = e; - if ("string" != typeof t || "string" != typeof n || "string" != typeof a || "string" != typeof r || !(i instanceof Array)) return null; - const o = []; - for (const e of i) { - const t = new Map; - for (const [n, a] of Object.entries(e.voters)) { - if ("string" != typeof a) return null; - t.set(n, a) - } - o.push({ - name: e.name, - voters: t - }) - } - return { - senderId: n, - senderName: a, - question: r, - showResults: !0, - lastVote: null, - answers: o - } - }; - at.register((e => yI(e)), ((e, t, n) => { - if (e && e !== n) { - const n = (e, n) => { - switch (n.type) { - case n5: { - const { - question: e, - answers: a, - pollId: r, - senderId: i, - senderName: o - } = n, s = { - senderId: i, - senderName: o, - showResults: !1, - lastVote: null, - question: e, - answers: a.map((e => ({ - name: e, - voters: new Map - }))) - }; - t.dispatch(X3(r, s, !0)), t.dispatch(Yf({ - appearance: Lf, - titleKey: "polls.notification.title", - descriptionKey: "polls.notification.description" - }, zf)); - break - } - case a5: { - const { - pollId: e, - answers: a, - voterId: r, - voterName: i - } = n, o = { - voterId: r, - voterName: i, - pollId: e, - answers: a - }; - t.dispatch(((e, t) => ({ - type: $3, - answer: t, - pollId: e - }))(e, o)); - break - } - case "old-polls": { - const { - polls: e - } = n; - for (const n of e) { - const e = Gne(n); - null === e ? console.warn("[features/polls] Invalid old poll data") : t.dispatch(X3(n.id, e, !1)) - } - break - } - } - }; - e.on(bt.ENDPOINT_MESSAGE_RECEIVED, n), e.on(bt.NON_PARTICIPANT_MESSAGE_RECEIVED, n) - } - })), Be.register((e => t => n => { - const { - dispatch: a, - getState: r - } = e; - switch (n.type) { - case Ya: - (0, Te.unstable_batchedUpdates)((() => { - Object.keys(fJ).forEach((e => { - for (let t = 0; t < mJ.length; t++) a(Ki(`${fJ[e].soundId}${mJ[t]}`, fJ[e].soundFiles[t])) - })), a(Ki(hJ, "reactions-raised-hand.mp3")) - })); - break; - case Ga: - (0, Te.unstable_batchedUpdates)((() => { - Object.keys(fJ).forEach((e => { - for (let t = 0; t < mJ.length; t++) a(Ji(`${fJ[e].soundId}${mJ[t]}`)) - })), a(Ji(hJ)) - })); - break; - case Q6: { - const { - timeoutID: e, - buffer: t - } = r()["features/reactions"], { - reaction: i - } = n; - clearTimeout(e), t.push(i), n.buffer = t, n.timeoutID = setTimeout((() => { - a({ - type: X6 - }) - }), 500); - break - } - case X6: { - const e = r(), - { - buffer: t - } = e["features/reactions"], - n = Bh(e); - (0, Te.unstable_batchedUpdates)((() => { - n > 1 && a({ - type: n4 - }), a(function(e) { - return { - type: e4, - message: e - } - }(yJ(t))), a(s4(t)) - })), async function(e, t) { - const { - webhookProxyUrl: n - } = e["features/base/config"], { - conference: a - } = e["features/base/conference"], { - jwt: r - } = e["features/base/jwt"], i = Rh(e), o = { - Authorization: `Bearer ${r}`, - "Content-Type": "application/json" - }, s = { - meetingFqn: MH(), - sessionId: a.sessionId, - submitted: Date.now(), - reactions: t, - participantId: i.id, - participantName: i.name - }; - if (n) try { - const e = await fetch(`${n}/reactions`, { - method: "POST", - headers: o, - body: JSON.stringify(s) - }); - e.ok || gJ.error("Status error:", e.status) - } catch (e) { - gJ.error("Could not send request", e) - } - }(e, t); - break - } - case n4: { - const e = r(), - { - buffer: t - } = e["features/reactions"], - { - conference: n - } = e["features/base/conference"]; - n && n.sendEndpointMessage("", { - name: pJ, - reactions: t, - timestamp: Date.now() - }); - break - } - case a4: { - const e = r(), - { - queue: t, - notificationDisplayed: i - } = e["features/reactions"], - { - soundsReactions: o - } = e["features/base/settings"], - s = Yi(e), - l = n.reactions; - (0, Te.unstable_batchedUpdates)((() => { - var e; - !i && o && !s.includes("REACTION_SOUND") && m4 && a(m4()), o && function(e) { - const t = function(e) { - return [...new Set(e)] - }(e); - return t.map((t => ({ - reaction: t, - threshold: kJ(vJ(e, t)) - }))) - }(l).forEach((e => a(Gi(`${fJ[e.reaction].soundId}${e.threshold}`)))), a(i4([...t, ...(e = l, e.map((e => ({ - reaction: e, - uid: Wz().v4() - }))))])) - })); - break - } - case r4: - a(Yf({ - titleKey: "toolbar.disableReactionSounds", - customActionNameKey: "notify.reactionSounds", - customActionHandler: () => a(bn({ - soundsReactions: !1 - })) - }, zf)) - } - return t(n) - })); - const Kne = "DELETE_RECENT_LIST_ENTRY", - $ne = "_STORE_CURRENT_CONFERENCE", - Jne = "_UPDATE_CONFERENCE_DURATION"; - - function Zne() { - return interfaceConfig.RECENT_LIST_ENABLED - } - Be.register((e => t => n => { - if (Zne()) switch (n.type) { - case Ya: - return function({ - dispatch: e, - getState: t - }, n, a) { - const r = n(a), - i = []; - for (const e of t()["features/recent-list"]) { - const { - conference: t - } = e, n = Tn(t); - let a; - n && (a = n.host) && i.push(a) - } - return i.length && e(vn(i)), r - }(e, t, n); - case KI: - return function({ - dispatch: e, - getState: t - }, n, a) { - const { - doNotStoreRoom: r - } = t()["features/base/config"]; - if (!r) { - let n; - n = "undefined" == typeof APP ? a.conference[sI] : t()["features/base/connection"].locationURL, e(function(e) { - return { - type: Jne, - locationURL: e - } - }(n)) - } - return n(a) - }(e, t, n); - case rN: - return function({ - dispatch: e, - getState: t - }, n, a) { - const { - doNotStoreRoom: r - } = t()["features/base/config"]; - if (!r && a.room) { - const { - locationURL: n - } = t()["features/base/connection"]; - n && (e(function(e) { - return { - type: $ne, - locationURL: e - } - }(n)), e(vn(n.host))) - } - return n(a) - }(e, t, n) - } - return t(n) - })), at.register((e => yI(e)), ((e, { - dispatch: t - }) => { - e || t({ - type: pG + ...n + }) + } + notifyConferenceLeft(e) { + this._sendEvent({ + name: "video-conference-left", + roomName: e }) - })), Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - let r; - a.type === hG && (r = lR(t(), a.sessionData.id)); - const i = n(a); - switch (a.type) { - case Ya: - e(Ki(eR, "liveStreamingOff.mp3")), e(Ki(tR, "liveStreamingOn.mp3")), e(Ki(nR, "recordingOff.mp3")), e(Ki(aR, "recordingOn.mp3")); - break; - case Ga: - e(Ji(eR)), e(Ji(tR)), e(Ji(nR)), e(Ji(aR)); - break; - case GI: { - const { - conference: t - } = a; - t.on(bt.RECORDER_STATE_CHANGED, (t => { - t && (t.getID() && e(function(e) { - const t = e.getStatus(), - n = t === Et.status.ON ? Date.now() / 1e3 : void 0; - return { - type: hG, - sessionData: { - error: e.getError(), - id: e.getID(), - initiator: e.getInitiator(), - liveStreamViewURL: e.getLiveStreamViewURL(), - mode: e.getMode(), - status: t, - terminator: e.getTerminator(), - timestamp: n - } - } - }(t)), t.getError() && function(e, t) { - const n = e.getMode(), - a = e.getError(), - r = n === c.default.constants.recording.mode.STREAM; - switch (a) { - case c.default.constants.recording.error.SERVICE_UNAVAILABLE: - t(yG({ - descriptionKey: "recording.unavailable", - descriptionArguments: { - serviceName: r ? "$t(liveStreaming.serviceName)" : "$t(recording.serviceName)" - }, - titleKey: r ? "liveStreaming.unavailableTitle" : "recording.unavailableTitle" - })); - break; - case c.default.constants.recording.error.RESOURCE_CONSTRAINT: - t(yG({ - descriptionKey: r ? "liveStreaming.busy" : "recording.busy", - titleKey: r ? "liveStreaming.busyTitle" : "recording.busyTitle" - })); - break; - default: - t(yG({ - descriptionKey: r ? "liveStreaming.error" : "recording.error", - titleKey: r ? "liveStreaming.failedToStart" : "recording.failedToStart" - })) - } - "undefined" != typeof APP && APP.API.notifyRecordingStatusChanged(!1, n, a) - }(t, e)) - })); - break - } - case hG: { - const { - iAmRecorder: n, - iAmSipGateway: i, - recordingLimit: s - } = t()["features/base/config"]; - if (n && !i) break; - const l = lR(t(), a.sessionData.id), - { - initiator: u, - mode: d, - terminator: p - } = l, - { - PENDING: h, - OFF: m, - ON: f - } = Et.status; - if (l.status !== h || r && r.status === h) { - if (l.status !== h) - if (e((o = d, (e, t) => { - const { - pendingNotificationUids: n - } = t()["features/recording"], a = n[o]; - a && (e(Vf(a)), e(vG(void 0, o))) - })), l.status !== f || r && r.status === f) { - if (l.status === m && (!r || r.status !== m)) { - p && e(function(e, t) { - const n = { - name: t - }; - return Yf(e === c.default.constants.recording.mode.STREAM ? { - descriptionKey: t ? "liveStreaming.offBy" : "liveStreaming.off", - descriptionArguments: n, - titleKey: "dialog.liveStreaming" - } : { - descriptionKey: t ? "recording.offBy" : "recording.off", - descriptionArguments: n, - titleKey: "dialog.recording" - }, zf) - }(d, Hh(t, uR(p)))); - let n, a, i = 0; - r && r.timestamp && (i = Date.now() / 1e3 - r.timestamp), Ma(on("stop", d, i)), d === Et.mode.FILE ? (n = nR, a = aR) : d === Et.mode.STREAM && (n = eR, a = tR), n && a && (e($i(a)), e(Gi(n))), "undefined" != typeof APP && APP.API.notifyRecordingStatusChanged(!1, d) - } - } else { - let t; - e("object" == typeof s ? function(e) { - const t = e === c.default.constants.recording.mode.STREAM; - return Yf({ - description: x().createElement(HW, { - isLiveStreaming: t - }), - titleKey: t ? "dialog.liveStreaming" : "dialog.recording" - }, 1e4) - }(d) : function(e, t, n) { - return async (a, r) => { - const i = r(), - o = uR(t), - s = Hh(i, o); - let l = { - customActionNameKey: void 0, - descriptionKey: s ? "liveStreaming.onBy" : "liveStreaming.on", - descriptionArguments: { - name: s - }, - isDismissAllowed: !0, - titleKey: "dialog.liveStreaming" - }; - if (e !== c.default.constants.recording.mode.STREAM) { - const e = function(e) { - return e["features/base/config"].recordingSharingUrl - }(i), - t = Rh(i).id === o; - if (l = { - customActionHandler: void 0, - customActionNameKey: void 0, - descriptionKey: s ? "recording.onBy" : "recording.on", - descriptionArguments: { - name: s - }, - isDismissAllowed: !0, - titleKey: "dialog.recording" - }, e && Rj(i) && t && ! function(e) { - return Zz(e) && e["features/recording"].selectedRecordingService === iR - }(i)) { - const t = function(e) { - var t, n; - return (null === (t = e["features/base/config"]) || void 0 === t || null === (n = t.deploymentInfo) || void 0 === n ? void 0 : n.region) || "" - }(i), - r = zj(i); - try { - const a = await async function(e, t, n, a) { - const r = `${e}?recordingSessionId=${t}®ion=${n}&tenant=${a}`, - i = await fetch(r, { - headers: { - "Content-Type": "application/json" - } - }), - o = await i.json(); - return i.ok ? o.url : Promise.reject(o) - }(e, n, t, r); - l.customActionNameKey = "recording.copyLink", l.customActionHandler = () => Tt(a), l.titleKey = "recording.on", l.descriptionKey = "recording.linkGenerated", l.isDismissAllowed = !1 - } catch (e) { - return a(Wf({ - titleKey: "recording.errorFetchingLink" - })), gG.error("Could not fetch recording link", e) - } - } - } - a(Yf(l, zf)) - } - }(d, u, a.sessionData.id)), Ma(on("start", d)), d === Et.mode.FILE ? t = aR : d === Et.mode.STREAM && (t = tR), t && e(Gi(t)), "undefined" != typeof APP && APP.API.notifyRecordingStatusChanged(!0, d) - } - } else e(function(e) { - return async t => { - const n = e === c.default.constants.recording.mode.STREAM ? { - descriptionKey: "liveStreaming.pending", - titleKey: "dialog.liveStreaming" - } : { - descriptionKey: "recording.pending", - titleKey: "dialog.recording" - }, - a = await t(Yf(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - bG(e, t, n[t]) - })) - } - return e - }({ - isDismissAllowed: !1 - }, n))); - a && t(vG(a.uid, e)) - } - }(d)); - break - } - } - var o; - return i - })), at.register((e => { - const t = e["features/recent-list"]; - return t && t.length && t[t.length - 1] - }), ((e, {}, t) => { - t && e && t.conference === e.conference && 0 === e.duration && Ma(function({ - url: e, - lastConferenceDuration: t, - timeSinceLeft: n - }) { - return { - action: "rejoined", - attributes: { - lastConferenceDuration: t, - timeSinceLeft: n, - url: e - } - } - }({ - lastConferenceDuration: t.duration / 1e3, - timeSinceLeft: (Date.now() - (t.date + t.duration)) / 1e3, - url: t.conference - })) - })); - const Qne = Je("features/room-lock"); - Be.register((e => t => n => { - switch (n.type) { - case BI: - return function({ - dispatch: e - }, t, n) { - const { - conference: a, - error: r - } = n; - return a && r.name === gt.PASSWORD_REQUIRED ? (void 0 === r.recoverable && (r.recoverable = !0), r.recoverable && e(function(e) { - return sP(p8, { - conference: e - }) - }(a))) : e(oP(p8)), t(n) - }(e, t, n); - case UI: - return function({ - dispatch: e - }, t, n) { - return e(oP(p8)), t(n) - }(e, t, n); - case ZI: { - "undefined" != typeof APP && APP.UI.emitEvent(sQ.TOGGLE_ROOM_LOCK, n.locked); - const a = e.getState()["features/base/conference"].locked, - r = t(n), - i = e.getState()["features/base/conference"].locked; - return i === m8 ? e.dispatch(Yf({ - titleKey: "notify.passwordSetRemotely" - }, zf)) : a !== m8 || i || e.dispatch(Yf({ - titleKey: "notify.passwordRemovedRemotely" - }, zf)), r - } - case nN: - return function(e, t, n) { - if ("undefined" != typeof APP) { - const { - error: e - } = n; - let t, a; - e === gt.PASSWORD_NOT_SUPPORTED ? (Qne.warn("room passwords not supported"), t = "dialog.passwordNotSupported", a = "dialog.passwordNotSupportedTitle") : (Qne.warn("setting password failed", e), t = "dialog.lockMessage", a = "dialog.lockTitle"), APP.UI.messageHandler.showError({ - descriptionKey: t, - titleKey: a - }) - } - return t(n) - }(0, t, n) - } - return t(n) - })), n(362); - const Xne = "chrome", - eae = "opera", - tae = "firefox", - nae = "iexplorer", - aae = "safari", - rae = "nwjs", - iae = "electron", - oae = "react-native", - sae = "unknown", - lae = { - Chrome: Xne, - Chromium: Xne, - Opera: eae, - Firefox: tae, - "Internet Explorer": nae, - Safari: aae - }; - - function cae() { - const e = navigator.userAgent; - if (e.match(/Electron/)) { - const t = e.match(/Electron\/([\d.]+)/)[1]; - return { - name: iae, - version: t - } - } } - - function uae() { - const e = navigator.userAgent; - if (e.match(/JitsiMeetNW/)) { - const t = e.match(/JitsiMeetNW\/([\d.]+)/)[1]; - return { - name: rae, - version: t - } - } + notifyDataChannelOpened() { + this._sendEvent({ + name: "data-channel-opened" + }) } - - function dae() { - const e = navigator.userAgent.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i); - let t; - if (e || "ReactNative" === navigator.product) { - let n; - return e && e.length > 2 && (n = e[1], t = e[2]), n || (n = "react-native"), t || (t = "unknown"), { - name: oae, - version: t - } - } + notifyReadyToClose() { + this._sendEvent({ + name: "video-ready-to-close" + }) } - class pae { - constructor(e) { - let t, n; - if (this._bowser = p().getParser(navigator.userAgent), void 0 === e) { - const e = function(e) { - let t; - const n = [dae, cae, uae]; - for (let e = 0; e < n.length; e++) - if (t = n[e](), t) return t; - const a = e.getBrowserName(); - return a in lae ? { - name: lae[a], - version: e.getBrowserVersion() - } : (t = function() { - const e = navigator.userAgent, - t = { - name: sae, - version: void 0 - }; - if (e.match(/Chrome/) && !e.match(/Edge/)) - if (e.match(/Edg(A?)/)) { - const n = e.match(/Chrome\/([\d.]+)/)[1]; - Number.parseInt(n, 10) > 72 && (t.name = Xne, t.version = n) - } else t.name = Xne, t.version = e.match(/Chrome\/([\d.]+)/)[1]; - return t - }(), t || { - name: sae, - version: void 0 - }) - }(this._bowser); - t = e.name, n = e.version - } else e.name in lae ? (t = lae[e.name], n = e.version) : (t = sae, n = void 0); - this._name = t, this._version = n - } - getName() { - return this._name - } - isChrome() { - return this._name === Xne - } - isOpera() { - return this._name === eae - } - isFirefox() { - return this._name === tae - } - isIExplorer() { - return this._name === nae - } - isSafari() { - return this._name === aae - } - isNWJS() { - return this._name === rae - } - isElectron() { - return this._name === iae - } - isReactNative() { - return this._name === oae - } - getVersion() { - return this._version - } - _checkCondition(e) { - if (this._version) return this._bowser.satisfies(e) - } - isVersionGreaterThan(e) { - return this._checkCondition({ - [this._name]: `>${e}` - }) - } - isVersionLessThan(e) { - return this._checkCondition({ - [this._name]: `<${e}` - }) - } - isVersionEqualTo(e) { - return this._checkCondition({ - [this._name]: `~${e}` - }) - } + notifySuspendDetected() { + this._sendEvent({ + name: "suspend-detected" + }) } - class hae { - getItem() {} - setItem() {} - removeItem() {} - key() {} + notifyAudioMutedStatusChanged(e) { + this._sendEvent({ + name: "audio-mute-status-changed", + muted: e + }) } - - function mae(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - fae(e, t, n[t]) - })) - } - return e + notifyVideoMutedStatusChanged(e) { + this._sendEvent({ + name: "video-mute-status-changed", + muted: e + }) } - - function fae(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + notifyAudioAvailabilityChanged(e) { + Ote = e, this._sendEvent({ + name: "audio-availability-changed", + available: e + }) + } + notifyVideoAvailabilityChanged(e) { + Nte = e, this._sendEvent({ + name: "video-availability-changed", + available: e + }) + } + notifyOnStageParticipantChanged(e) { + this._sendEvent({ + name: "on-stage-participant-changed", + id: e + }) + } + notifyOnCameraError(e, t) { + this._sendEvent({ + name: "camera-error", + type: e, + message: t + }) + } + notifyOnMicError(e, t) { + this._sendEvent({ + name: "mic-error", + type: e, + message: t + }) + } + notifyFeedbackSubmitted(e) { + this._sendEvent({ + name: "feedback-submitted", + error: e + }) + } + notifyFeedbackPromptDisplayed() { + this._sendEvent({ + name: "feedback-prompt-displayed" + }) + } + notifyFilmstripDisplayChanged(e) { + this._sendEvent({ + name: "filmstrip-display-changed", + visible: e + }) + } + notifyKickedOut(e, t) { + this._sendEvent({ + name: "participant-kicked-out", + kicked: e, + kicker: t + }) + } + notifyOnPasswordRequired() { + this._sendEvent({ + name: "password-required" + }) + } + notifyScreenSharingStatusChanged(e, t) { + this._sendEvent({ + name: "screen-sharing-status-changed", + on: e, + details: t + }) + } + notifyDominantSpeakerChanged(e) { + this._sendEvent({ + name: "dominant-speaker-changed", + id: e + }) + } + notifySubjectChanged(e) { + this._sendEvent({ + name: "subject-change", + subject: e + }) + } + notifyTileViewChanged(e) { + this._sendEvent({ + name: "tile-view-changed", + enabled: e + }) + } + notifyLocalStorageChanged(e) { + this._sendEvent({ + name: "local-storage-changed", + localStorageContent: e + }) + } + notifyRaiseHandUpdated(e, t) { + this._sendEvent({ + name: "raise-hand-updated", + handRaised: t, + id: e + }) + } + notifyRecordingStatusChanged(e, t, n) { + this._sendEvent({ + name: "recording-status-changed", + on: e, + mode: t, + error: n + }) + } + notifyRecordingLinkAvailable(e, t) { + this._sendEvent({ + name: "recording-link-available", + link: e, + ttl: t + }) + } + notifyKnockingParticipant(e) { + this._sendEvent({ + name: "knocking-participant", + participant: e + }) + } + notifyError(e) { + this._sendEvent({ + name: "error-occurred", + error: e + }) + } + notifyToolbarButtonClicked(e) { + this._sendEvent({ + name: "toolbar-button-clicked", + key: e + }) + } + notifyBrowserSupport(e) { + this._sendEvent({ + name: "browser-support", + supported: e + }) } + dispose() { + this._enabled && (this._enabled = !1) + } + }; - function gae(e, t) { - const n = JSON.parse(JSON.stringify(t)); - Object.keys(n).forEach((t => { - const a = n[t]; - delete a.id, e[t] && Object.keys(a).forEach((r => { - a[r] === e[t][r] && delete n[t][r] + function Fte(e) { + const t = e.contentWindow.onmousemove; + e.contentWindow.onmousemove = function(n) { + t && t(n); + const a = document.createEvent("MouseEvents"), + r = e.getBoundingClientRect(); + a.initMouseEvent("mousemove", !0, !1, window, n.detail, n.screenX, n.screenY, n.clientX + r.left, n.clientY + r.top, n.ctrlKey, n.altKey, n.shiftKey, n.metaKey, n.button, null), e.dispatchEvent(a) + } + } + const qte = "etherpad"; class Bte extends B9 { + constructor(e) { + super(); + const t = document.createElement("iframe"); + t.id = "etherpadIFrame", t.src = e, t.frameBorder = 0, t.scrolling = "no", t.width = 640, t.height = 480, t.setAttribute("style", "visibility: hidden;"), this.container.appendChild(t), t.onload = function() { + document.domain = document.domain, Fte(t), setTimeout((() => { + const e = t.contentDocument; + Fte(e.getElementsByName("ace_outer")[0]), Fte(e.getElementsByName("ace_inner")[0]) + }), 2e3) + }, this.iframe = t + } + get isOpen() { + return Boolean(this.iframe) + } + get container() { + return document.getElementById("etherpad") + } + resize(e, t) { + let n, a; + interfaceConfig.VERTICAL_FILMSTRIP ? (n = t - hI(), a = e - O4()) : (n = t - I4(), a = e), $(this.iframe).width(a).height(n) + } + show() { + const e = $(this.iframe), + t = $(this.container), + n = this; + return new Promise((a => { + e.fadeIn(300, (() => { + n.bodyBackground = document.body.style.background, document.body.style.background = "#eeeeee", e.css({ + visibility: "visible" + }), t.css({ + zIndex: 2 + }), APP.store.dispatch(f1(!0)), a() })) - })); - let a = -1 / 0; - return Object.keys(n).forEach((e => { - const t = n[e]; - t.timestamp > a && (a = t.timestamp) - })), Object.keys(n).forEach((e => { - const t = n[e]; - t.timestamp === a && (t.timestamp = 0) - })), n.timestamp = a, n + })) } - - function bae(e) { - return { - id: e.id, - tracks: e.getTracks().map((e => ({ - id: e.id, - kind: e.kind, - label: e.label, - enabled: e.enabled, - muted: e.muted, - readyState: e.readyState - }))) - } + hide() { + const e = $(this.iframe), + t = $(this.container); + return document.body.style.background = this.bodyBackground, new Promise((n => { + e.fadeOut(300, (() => { + e.css({ + visibility: "hidden" + }), t.css({ + zIndex: 0 + }), APP.store.dispatch(f1(!1)), n() + })) + })) } - new class extends hae { - constructor() { - let e; - super(); - try { - e = window.localStorage - } catch (e) {} - this.storage = e || new hae - } - getItem(e) { - return this.storage.getItem(e) - } - setItem(e, t) { - return this.storage.setItem(e, t) - } - removeItem(e) { - return this.storage.removeItem(e) - } - key(e) { - return this.storage.key(e) - } - }; - const yae = Je("features/rtcstats"); - - function vae(e) { - if (e && e.iceServers[0] && e.iceServers[0].urls) - for (const t of e.iceServers[0].urls) - if (t.indexOf("taas.callstats.io") >= 0) return !0 + stayOnStage() { + return !0 } - const kae = new class { - init(e) { - const { - endpoint: t, - useLegacy: n, - pollInterval: a - } = e, r = { - endpoint: t, - onCloseCallback: this.handleTraceWSClose.bind(this), - useLegacy: n - }, i = { - connectionFilter: vae, - pollInterval: a, - useLegacy: n - }; - this.trace = function({ - endpoint: e, - onCloseCallback: t, - useLegacy: n, - pingInterval: a = 3e4 - }) { - const r = [], - i = Wz().v4(); - let o, s; - const l = n ? "3.1_LEGACY" : "3.1_STANDARD", - c = function(e) { - const t = JSON.stringify(e); - o && o.readyState === WebSocket.OPEN ? o.send(t) : o && o.readyState >= WebSocket.CLOSING || r.length < 300 && r.push(t) - }; - return c.identity = function(...e) { - e.push((new Date).getTime()), c({ - statsSessionId: i, - type: "identity", - data: e - }) - }, c.statsEntry = function(...e) { - e.push((new Date).getTime()); - const t = { - statsSessionId: i, - type: "stats-entry", - data: JSON.stringify(e) - }; - c(t) - }, c.keepAlive = function() { - c({ - statsSessionId: i, - type: "keepalive" - }) - }, c.close = function() { - o && o.close() - }, c.connect = function() { - o && o.close(), o = new WebSocket(e + window.location.pathname, l), o.onclose = function(e) { - s && clearInterval(s), t({ - code: e.code, - reason: e.reason - }) - }, o.onopen = function() { - for (s = setInterval(c.keepAlive, a); r.length;) o.send(r.shift()) - } - }, c - }(r), - function({ - statsEntry: e - }, { - connectionFilter: t, - pollInterval: n, - useLegacy: a, - sendSdp: r = !1, - prefixesToWrap: i = [""] - }) { - let o = 0; - const s = new pae, - l = s.isFirefox(), - c = s.isSafari(), - u = s.isChrome(), - d = s.isElectron(); - if (!(l || c || u || d)) throw new Error("RTCStats unsupported browser."); - if (i.forEach((i => { - if (!window[`${i}RTCPeerConnection`]) return; - const s = window[`${i}RTCPeerConnection`], - p = function(r, i) { - const p = mae({}, r), - h = mae({}, i); - try { - const p = new s(r, i); - if (t && t(r)) return p; - const h = "PC_" + o++; - p.__rtcStatsId = h, r || (r = { - nullConfig: !0 - }), ((r = JSON.parse(JSON.stringify(r))) && r.iceServers || []).forEach((e => { - delete e.credential - })), r.browserType = l ? "moz" : "webkit", e("create", h, r), i && e("constraints", h, i), p.addEventListener("icecandidate", (t => { - e("onicecandidate", h, t.candidate) - })), p.addEventListener("addstream", (t => { - e("onaddstream", h, `${t.stream.id} ${t.stream.getTracks().map((e=>`${e.kind}:${e.id}`))}`) - })), p.addEventListener("track", (t => { - e("ontrack", h, `${t.track.kind}:${t.track.id} ${t.streams.map((e=>`stream:${e.id}`))}`) - })), p.addEventListener("removestream", (t => { - e("onremovestream", h, `${t.stream.id} ${t.stream.getTracks().map((e=>`${e.kind}:${e.id}`))}`) - })), p.addEventListener("signalingstatechange", (() => { - e("onsignalingstatechange", h, p.signalingState) - })), p.addEventListener("iceconnectionstatechange", (() => { - e("oniceconnectionstatechange", h, p.iceConnectionState) - })), p.addEventListener("icegatheringstatechange", (() => { - e("onicegatheringstatechange", h, p.iceGatheringState) - })), p.addEventListener("connectionstatechange", (() => { - e("onconnectionstatechange", h, p.connectionState) - })), p.addEventListener("negotiationneeded", (() => { - e("onnegotiationneeded", h, void 0) - })), p.addEventListener("datachannel", (t => { - e("ondatachannel", h, [t.channel.id, t.channel.label]) - })); - let m = {}; - const f = function() { - l || c || (u || d) && !a ? p.getStats(null).then((t => { - const n = function(e) { - if (!e.entries) return e; - const t = {}; - return e.forEach(((e, n) => { - t[n] = e - })), t - }(t), - a = JSON.parse(JSON.stringify(n)); - e("getstats", h, gae(m, n)), m = a - })) : (u || d) && p.getStats((t => { - const n = function(e, t) { - const n = {}; - return t.result().forEach((e => { - const t = { - id: e.id, - timestamp: e.timestamp.getTime(), - type: e.type - }; - e.names().forEach((n => { - t[n] = e.stat(n) - })), n[t.id] = t - })), n - }(0, t), - a = JSON.parse(JSON.stringify(n)); - e("getstats", h, gae(m, n)), m = a - })) - }; - if (n) { - const e = window.setInterval((() => { - "closed" !== p.signalingState ? f() : window.clearInterval(e) - }), n) - } - return p.addEventListener("iceconnectionstatechange", (() => { - "connected" === p.iceConnectionState && f() - })), p - } catch (e) { - return console.error("RTCStats PeerConnection bind failed: ", e), new s(p, h) - } - }; - ["createDataChannel", "close"].forEach((t => { - const n = s.prototype[t]; - n && (s.prototype[t] = function() { - try { - e(t, this.__rtcStatsId, arguments) - } catch (e) { - console.error(`RTCStats ${t} bind failed: `, e) - } - return n.apply(this, arguments) - }) - })), ["addStream", "removeStream"].forEach((t => { - const n = s.prototype[t]; - n && (s.prototype[t] = function() { - try { - const n = arguments[0], - a = n.getTracks().map((e => `${e.kind}:${e.id}`)).join(","); - e(t, this.__rtcStatsId, `${n.id} ${a}`) - } catch (e) { - console.error(`RTCStats ${t} bind failed: `, e) - } - return n.apply(this, arguments) - }) - })), ["addTrack"].forEach((t => { - const n = s.prototype[t]; - n && (s.prototype[t] = function() { - try { - const n = arguments[0], - a = [].slice.call(arguments, 1); - e(t, this.__rtcStatsId, `${n.kind}:${n.id} ${a.map((e=>`stream:${e.id}`)).join(";")||"-"}`) - } catch (e) { - console.error(`RTCStats ${t} bind failed: `, e) - } - return n.apply(this, arguments) - }) - })), ["removeTrack"].forEach((t => { - const n = s.prototype[t]; - n && (s.prototype[t] = function() { - try { - const n = arguments[0].track; - e(t, this.__rtcStatsId, n ? `${n.kind}:${n.id}` : "null") - } catch (e) { - console.error(`RTCStats ${t} bind failed: `, e) - } - return n.apply(this, arguments) - }) - })), ["createOffer", "createAnswer"].forEach((t => { - const n = s.prototype[t]; - n && (s.prototype[t] = function() { - const a = this.__rtcStatsId, - i = arguments; - let o; - 1 === arguments.length && "object" == typeof arguments[0] ? o = arguments[0] : 3 === arguments.length && "object" == typeof arguments[2] && (o = arguments[2]); - try { - e(t, this.__rtcStatsId, o) - } catch (e) { - console.error(`RTCStats ${t} bind failed: `, e) - } - return n.apply(this, o ? [o] : void 0).then((n => { - try { - e(`${t}OnSuccess`, a, r ? n : "") - } catch (e) { - console.error(`RTCStats ${t} promise success bind failed: `, e) - } - if (!(i.length > 0 && "function" == typeof i[0])) return n; - i[0].apply(null, [n]) - }), (n => { - try { - e(`${t}OnFailure`, a, n.toString()) - } catch (e) { - console.error(`RTCStats ${t} promise failure bind failed: `, e) - } - if (!(i.length > 1 && "function" == typeof i[1])) throw n; - i[1].apply(null, [n]) - })) - }) - })), ["setLocalDescription", "setRemoteDescription", "addIceCandidate"].forEach((t => { - const n = s.prototype[t]; - n && (s.prototype[t] = function() { - const a = this.__rtcStatsId, - i = arguments; - try { - const n = r ? i[0] : ""; - e(t, this.__rtcStatsId, n) - } catch (e) { - console.error(`RTCStats ${t} bind failed: `, e) - } - return n.apply(this, [i[0]]).then((() => { - try { - e(`${t}OnSuccess`, a, void 0) - } catch (e) { - console.error(`RTCStats ${t} promise success bind failed: `, e) - } - i.length >= 2 && "function" == typeof i[1] && i[1].apply(null, []) - }), (n => { - try { - e(`${t}OnFailure`, a, n.toString()) - } catch (e) { - console.error(`RTCStats ${t} promise failure bind failed: `, e) - } - if (!(i.length >= 3 && "function" == typeof i[2])) throw n; - i[2].apply(null, [n]) - })) - }) - })), s.generateCertificate && Object.defineProperty(p, "generateCertificate", { - get() { - return arguments.length ? s.generateCertificate.apply(null, arguments) : s.generateCertificate - } - }), window[`${i}RTCPeerConnection`] = p, window[`${i}RTCPeerConnection`].prototype = s.prototype - })), i.forEach((t => { - const n = t + (t.length ? "GetUserMedia" : "getUserMedia"); - if (!navigator[n]) return; - const a = navigator[n].bind(navigator); - navigator[n] = function() { - try { - e("getUserMedia", null, arguments[0]) - } catch (e) { - console.error("RTCStats getUserMedia bind failed: ", e) - } - const t = arguments[1], - n = arguments[2]; - a(arguments[0], (n => { - try { - e("getUserMediaOnSuccess", null, bae(n)) - } catch (e) { - console.error("RTCStats getUserMediaOnSuccess bind failed: ", e) - } - t && t(n) - }), (t => { - try { - e("getUserMediaOnFailure", null, t.name) - } catch (e) { - console.error("RTCStats getUserMediaOnFailure bind failed: ", e) - } - n && n(t) - })) - }.bind(navigator) - })), navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { - const t = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices), - n = function() { - try { - e("navigator.mediaDevices.getUserMedia", null, arguments[0]) - } catch (e) { - console.error("RTCStats navigator.mediaDevices.getUserMedia bind failed: ", e) - } - return t.apply(navigator.mediaDevices, arguments).then((t => { - try { - e("navigator.mediaDevices.getUserMediaOnSuccess", null, bae(t)) - } catch (e) { - console.error("RTCStats navigator.mediaDevices.getUserMediaOnSuccess bind failed: ", e) - } - return t - }), (t => { - try { - e("navigator.mediaDevices.getUserMediaOnFailure", null, t.name) - } catch (e) { - console.error("RTCStats navigator.mediaDevices.getUserMediaOnFailure bind failed: ", e) - } - return Promise.reject(t) - })) - }; - navigator.mediaDevices.getUserMedia = n.bind(navigator.mediaDevices) - } - if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) { - const t = navigator.mediaDevices.getDisplayMedia.bind(navigator.mediaDevices), - n = function() { - try { - e("navigator.mediaDevices.getDisplayMedia", null, arguments[0]) - } catch (e) { - console.error("RTCStats navigator.mediaDevices.getDisplayMedia bind failed: ", e) - } - return t.apply(navigator.mediaDevices, arguments).then((t => { - try { - e("navigator.mediaDevices.getDisplayMediaOnSuccess", null, bae(t)) - } catch (e) { - console.error("RTCStats navigator.mediaDevices.getDisplayMediaOnSuccess bind failed: ", e) - } - return t - }), (t => { - try { - e("navigator.mediaDevices.getDisplayMediaOnFailure", null, t.name) - } catch (e) { - console.error("RTCStats navigator.mediaDevices.getDisplayMediaOnFailure bind failed: ", e) - } - return Promise.reject(t) - })) - }; - navigator.mediaDevices.getDisplayMedia = n.bind(navigator.mediaDevices) - } - }(this.trace, i), this.initialized = !0 - } - isInitialized() { - return this.initialized - } - sendIdentityData(e) { - this.trace && this.trace.identity("identity", null, e) - } - sendDominantSpeakerData(e) { - this.trace && this.trace.statsEntry("dominantSpeaker", null, e) - } - connect() { - this.trace && this.trace.connect() - } - close() { - this.trace && this.trace.close() - } - handleTraceWSClose(e) { - yae.info("RTCStats trace ws closed", e), Ma(function(e) { - const t = { - action: "trace.onclose", - source: "rtcstats" - }; - return t.code = e.code, t.reason = e.reason, t - }(e)) - } - }; - - function _ae(e) { - var t, n; - if ("ReactNative" === navigator.product) return !1; - const a = qe(e)["features/base/config"]; - return null !== (t = null == a || null === (n = a.analytics) || void 0 === n ? void 0 : n.rtcstatsEnabled) && void 0 !== t && t + } + class Ute { + constructor(e) { + this.eventEmitter = e, this.etherpad = null } - - function wae(e) { - return _ae(e) && kae.isInitialized() + get isOpen() { + return Boolean(this.etherpad) } - - function Sae(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + isVisible() { + return X9.isLargeContainerTypeVisible(qte) } - - function Eae(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + openEtherpad() { + this.etherpad = new Bte(function(e) { + const t = Fe(APP.store.getState), + { + documentUrl: n + } = t["features/etherpad"], + { + displayName: a + } = t["features/base/settings"]; + if (!n) return; + const r = new URLSearchParams(v1); + return a && r.append("userName", a), `${n}?${r.toString()}` + }()), X9.addLargeVideoContainer(qte, this.etherpad) + } + toggleEtherpad() { + this.isOpen || this.openEtherpad(); + const e = this.isVisible(); + X9.showLargeVideoContainer(qte, !e), APP.store.dispatch(f1(!e)) } - Be.register((e => t => n => { - const a = e.getState(), - r = a["features/base/config"], - { - analytics: i - } = r; - switch (n.type) { - case y: - if (_ae(a)) try { - const e = i.rtcstatsPollInterval || 1e3, - t = i.rtcstatsUseLegacy || !1; - kae.init({ - endpoint: i.rtcstatsEndpoint, - useLegacy: t, - pollInterval: e - }) - } catch (e) { - yae.error("Failed to initialize RTCStats: ", e) - } - break; - case YI: - if (wae(a)) try { - kae.connect(); - const e = Rh(a), - t = gI(a), - { - conference: r - } = n, - i = r && r.getMeetingUniqueId(); - kae.sendIdentityData(function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Sae(e, t, n[t]) - })) - } - return e - }({}, Ia(), t, { - endpointId: null == e ? void 0 : e.id, - confName: vI(a), - displayName: null == e ? void 0 : e.name, - meetingUniqueId: i - })) - } catch (e) { - yae.error("RTCStats connect failed with: ", e) - } - break; - case Nv: - if (wae(a)) { - const { - id: e, - previousSpeakers: t - } = n.participant; - kae.sendDominantSpeakerData({ - dominantSpeakerEndpoint: e, - previousSpeakers: t - }) - } - } - return t(n) - })), Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - const r = n(a); - switch (a.type) { - case PZ: { - const n = LZ(t()); - e(MZ(n)); - break - } - case DZ: - if (a.getSpeakerStats) { - const n = t(), - r = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Eae(e, t, n[t]) - })) - } - return e - }({}, a.getSpeakerStats()), - i = LZ(n, r), - o = function(e) { - var t, n; - return null !== (t = null === (n = e["features/speaker-stats"]) || void 0 === n ? void 0 : n.pendingReorder) && void 0 !== t && t - }(n); - e(MZ(o ? RZ(n, i) : i)) - } - break; - case qv: - case Uv: - case Bv: - case Hv: - e({ - type: OZ - }) + } + const Hte = { + openCenteredPopup(e, t, n, a) { + const r = window.screenX + window.innerWidth / 2 - t / 2, + i = window.screenY + window.innerHeight / 2 - n / 2, + o = window.open(e, "_blank", String(`top=${i}, left=${r}, width=${t}, height=${n}`)); + if (o && a) { + const e = window.setInterval((() => { + !1 !== o.closed && (window.clearInterval(e), a()) + }), 200) } - return r - })); - const xae = Je("features/subtitles"); + return o + }, + showError(e) { + APP.store.dispatch(eg(e, Yf.LONG)) + }, + showWarning(e) { + APP.store.dispatch(ng(e, Yf.LONG)) + } + }, Vte = {}, Wte = Ve().getLogger("modules/UI/UI.js"); Vte.messageHandler = Hte; + const Yte = new(o()); + let Gte; Vte.eventEmitter = Yte; + const Kte = new Map([ + [rX.ETHERPAD_CLICKED, () => Gte && Gte.toggleEtherpad()], + [rX.TOGGLE_FILMSTRIP, () => Vte.toggleFilmstrip()] + ]); Vte.isFullScreen = function() { + return HB.isFullScreen() + }, Vte.notifyGracefulShutdown = function() { + Hte.showError({ + descriptionKey: "dialog.gracefulShutdown", + titleKey: "dialog.serviceUnavailable" + }) + }, Vte.notifyReservationError = function(e, t) { + Hte.showError({ + descriptionArguments: { + code: e, + msg: t + }, + descriptionKey: "dialog.reservationErrorMsg", + titleKey: "dialog.reservationError" + }) + }, Vte.initConference = function() { + Vte.showToolbar() + }, Vte.start = function() { + if (X9.initLargeVideo(), X9.resizeVideoArea(), va()) $("body").addClass("mobile-browser"); + else if ($("body").addClass("desktop-browser"), void 0 !== config.backgroundAlpha) { + const e = jt($("body").css("background-color"), config.backgroundAlpha); + $("body").css("background-color", e) + } + config.iAmRecorder && (config.iAmSipGateway || APP.store.dispatch({ + type: Vf, + enabled: !1 + }), APP.store.dispatch(_I(!1))) + }, Vte.registerListeners = () => Kte.forEach(((e, t) => Vte.addListener(t, e))), Vte.bindEvents = () => { + function e() { + X9.onResize() + } + $(document).on("webkitfullscreenchange mozfullscreenchange fullscreenchange", e), $(window).resize(e) + }, Vte.unbindEvents = () => { + $(document).off("webkitfullscreenchange mozfullscreenchange fullscreenchange"), $(window).off("resize") + }, Vte.initEtherpad = e => { + if (Gte || !config.etherpad_base || !e) return; + Wte.log("Etherpad is enabled"), Gte = new Ute(Yte); + const t = new URL(e, config.etherpad_base); + APP.store.dispatch(g1(t.toString())), config.openSharedDocumentOnJoin && Gte.toggleEtherpad() + }, Vte.getSharedDocumentManager = () => Gte, Vte.addUser = function(e) { + const t = e.getStatus(); + t && Vte.updateUserStatus(e, t) + }, Vte.updateUserStatus = (e, t) => { + const n = APP.store.getState() || {}, + { + calleeInfoVisible: a + } = n["features/invite"] || {}; + if (!t || a || Pw()) return; + const r = e.getDisplayName(); + APP.store.dispatch(tg({ + titleKey: `${r} connected`, + descriptionKey: "dialOut.statusMessage" + }, Yf.SHORT)) + }, Vte.toggleFilmstrip = function() { + const { + visible: e + } = APP.store.getState()["features/filmstrip"]; + APP.store.dispatch(MS(!e)) + }, Vte.setAudioMuted = function(e) { + APP.conference.isLocalId(e) && APP.conference.updateAudioIconEnabled() + }, Vte.setVideoMuted = function(e) { + X9._updateLargeVideoIfDisplayed(e, !0), APP.conference.isLocalId(e) && APP.conference.updateVideoIconEnabled() + }, Vte.updateLargeVideo = (e, t) => X9.updateLargeVideo(e, t), Vte.addListener = function(e, t) { + Yte.on(e, t) + }, Vte.removeAllListeners = function() { + Yte.removeAllListeners() + }, Vte.emitEvent = function(e) { + for (var t = arguments.length, n = new Array(t > 1 ? t - 1 : 0), a = 1; a < t; a++) n[a - 1] = arguments[a]; + return Yte.emit(e, ...n) + }, Vte.showToolbar = e => APP.store.dispatch(xI(e)), Vte.dockToolbar = e => APP.store.dispatch(SI(e)), Vte.refreshAvatarDisplay = function(e) { + X9.changeUserAvatar(e) + }, Vte.notifyConnectionFailed = function(e) { + let t, n; + e ? (t = "dialog.connectErrorWithMsg", n = { + msg: e + }) : t = "dialog.connectError", Hte.showError({ + descriptionArguments: n, + descriptionKey: t, + titleKey: "connection.CONNFAIL" + }) + }, Vte.notifyMaxUsersLimitReached = function() { + Hte.showError({ + hideErrorSupportLink: !0, + descriptionKey: "dialog.maxUsersLimitReached", + titleKey: "dialog.maxUsersLimitReachedTitle" + }) + }, Vte.handleLastNEndpoints = function(e, t) { + X9.onLastNEndpointsChanged(e, t) + }, Vte.setAudioLevel = (e, t) => X9.setAudioLevel(e, t), Vte.notifyTokenAuthFailed = function() { + Hte.showError({ + descriptionKey: "dialog.tokenAuthFailed", + titleKey: "dialog.tokenAuthFailedTitle" + }) + }, Vte.onAvailableDevicesChanged = function() { + APP.conference.updateAudioIconEnabled(), APP.conference.updateVideoIconEnabled() + }, Vte.getLargeVideoID = function() { + return X9.getLargeVideoID() + }, Vte.getLargeVideo = function() { + return X9.getLargeVideo() + }; + const $te = Vte; + var Jte = n(7795), Zte = n.n(Jte); - function Cae(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Qte() { + const e = document.documentElement || {}; + $("[data-i18n]").localize(), e.lang = _i.language + } + const Xte = new class { + constructor() { + Zte().init(_i, $, { + useOptionsAttr: !0 + }), _i.isInitialized ? Qte() : _i.on("initialized", Qte), _i.on("languageChanged", Qte) } - const Aae = "transcription-result", - jae = "translation-result"; - - function Pae(e, t, n) { - n.clearTimeOut && clearTimeout(n.clearTimeOut), n.clearTimeOut = setTimeout((() => e(function(e) { - return { - type: za, - transcriptMessageID: e - } - }(t))), 3e3) + generateTranslationHTML(e, t) { + return `${_i.t(e,t||void 0)}` } - Be.register((e => t => n => { - switch (n.type) { - case Na: - return function({ - dispatch: e, - getState: t - }, n, a) { - const { - json: r - } = a; - if (!r || r.type !== Aae && r.type !== jae) return n(a); - const i = t(), - o = i["features/base/conference"].conference.getLocalParticipantProperty("translation_language"); - try { - const t = r.message_id, - n = r.participant.name; - if (r.type === jae && r.language === o) { - const a = { - clearTimeOut: void 0, - final: r.text, - participantName: n - }; - Pae(e, t, a), e(qa(t, a)) - } else if (r.type === Aae && !o) { - const { - text: a - } = r.transcript[0], o = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Cae(e, t, n[t]) - })) - } - return e - }({}, i["features/subtitles"]._transcriptMessages.get(t) || { - participantName: n - }); - Pae(e, t, o), r.is_interim ? r.stability > .85 ? (o.stable = a, o.unstable = void 0) : o.unstable = a : o.final = a, e(qa(t, o)) - } - } catch (e) { - xae.error("Error occurred while updating transcriptions\n", e) - } - return n(a) - }(e, t, n); - case La: - ! function({ - getState: e - }) { - const t = e(), - { - _requestingSubtitles: n - } = t["features/subtitles"], - { - conference: a - } = t["features/base/conference"]; - a.setLocalParticipantProperty("requestingTranscription", !n) - }(e) - } - return t(n) - })), Be.register((e => t => n => { - switch (n.type) { - case CV: { - const { - timeoutID: t - } = e.getState()["features/toolbox"]; - clearTimeout(t); - break - } - case jV: - return function(e, t) { - if ("object" == typeof APP) { - const { - fullScreen: e - } = t; - if (e) { - const e = document.documentElement || {}; - "function" == typeof e.requestFullscreen ? e.requestFullscreen() : "function" == typeof e.mozRequestFullScreen ? e.mozRequestFullScreen() : "function" == typeof e.webkitRequestFullscreen && e.webkitRequestFullscreen() - } else "function" == typeof document.exitFullscreen ? document.exitFullscreen() : "function" == typeof document.mozCancelFullScreen ? document.mozCancelFullScreen() : "function" == typeof document.webkitExitFullscreen && document.webkitExitFullscreen() - } - return e(t) - }(t, n); - case MV: { - const { - timeoutID: t - } = e.getState()["features/toolbox"], { - handler: a, - timeoutMS: r - } = n; - clearTimeout(t), n.timeoutID = setTimeout(a, r); - break - } - } - return t(n) - })); - const Dae = "TRANSCRIBER_JOINED", - Tae = "TRANSCRIBER_LEFT", - Oae = "POTENTIAL_TRANSCRIBER_JOINED", - Mae = "SET_PENDING_TRANSCRIBING_NOTIFICATION_UID"; + translateElement(e, t) { + e.localize(t || void 0) + } + }; - function Iae(e) { - return { - type: Dae, - transcriberJID: e - } + function ene(e, t) { + return Object.entries(e).reduce(((e, n) => { + let [a, r] = n; + return Object.assign(e, { + [a]: t[r] || r + }) + }), {}) + } + + function tne(e) { + const t = {}; + for (const [n, a] of Object.entries(e)) t[`.${n}`] = a; + return t + } + const nne = BQ((e => ({ + "@global": { + ...tne(y7(e)), + ...v7(e) + } + }))), ane = function() { + return nne(), null + }, rne = function(e) { + var t = e.children, + n = e.theme, + a = Fk(), + r = C().useMemo((function() { + var e = null === a ? n : function(e, t) { + return "function" == typeof t ? t(e) : z({}, e, t) + }(a, n); + return null != e && (e[qk] = null !== a), e + }), [n, a]); + return C().createElement(Lk.Provider, { + value: r + }, t) + }, ine = function(e) { + let { + font: t, + colors: n, + colorMap: a, + shape: r, + spacing: i, + typography: o, + breakpoints: s + } = e; + return nL({ + props: { + MuiButtonBase: { + disableRipple: !0 + } + }, + spacing: i + }, { + palette: ene(a, n), + shape: r, + typography: { + font: t, + ...o + }, + breakpoints: s + }) + }({ + font: ov, + colors: rv, + colorMap: iv, + spacing: lv, + shape: sv, + typography: cv, + breakpoints: uv + }), one = Ne((function(e) { + const { + muiBrandedTheme: t + } = e["features/dynamic-branding"]; + return { + _theme: t || ine + } + }))((function(e) { + return x.createElement(rne, { + theme: e._theme + }, e.children) + })), sne = $e("features/chrome-banner"), lne = {}, cne = "hide_chrome_extension_banner"; class une extends x.PureComponent { + constructor(e) { + super(e), this.state = { + dontShowAgainChecked: !1, + closePressed: !1, + shouldShow: !1 + }, this._onClosePressed = this._onClosePressed.bind(this), this._onInstallExtensionClick = this._onInstallExtensionClick.bind(this), this._shouldNotRender = this._shouldNotRender.bind(this), this._onDontShowAgainChange = this._onDontShowAgainChange.bind(this), this._onCloseKeyPress = this._onCloseKeyPress.bind(this), this._onInstallExtensionKeyPress = this._onInstallExtensionKeyPress.bind(this) + } + async componentDidUpdate(e) { + if (!this._isSupportedEnvironment()) return; + const { + bannerCfg: t + } = this.props, n = e.bannerCfg; + t.url && !n.url && sne.info("Chrome extension URL found."), (t.chromeExtensionsInfo || []).length && !(n.chromeExtensionsInfo || []).length && sne.info("Chrome extension(s) info found."); + const a = await _a(this.props.bannerCfg); + a && a.length && a.every((e => !e)) && !this.state.shouldShow && this.setState({ + shouldShow: !0 + }) } - const Nae = "Transcriber"; - let zae; - - function Rae({ - dispatch: e, - getState: t - }) { + _isSupportedEnvironment() { + return interfaceConfig.SHOW_CHROME_EXTENSION_BANNER && dt.isChrome() && !dt.isTwa() && !va() && !this.props.isVpaas + } + _onClosePressed() { + Da(Yt(!1)), this.setState({ + closePressed: !0 + }) + } + _onCloseKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClosePressed()) + } + _onInstallExtensionClick() { + Da(Yt(!0)), window.open(this.props.bannerCfg.url), this.setState({ + closePressed: !0 + }) + } + _onInstallExtensionKeyPress(e) { + " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClosePressed()) + } + _shouldNotRender() { + if (!this._isSupportedEnvironment()) return !0; + const e = "true" === l.getItem(cne); + return !this.props.bannerCfg.url || e || this.state.closePressed || !this.state.shouldShow || this.props.iAmRecorder + } + _onDontShowAgainChange(e) { + this.setState({ + dontShowAgainChecked: e.target.checked + }) + } + render() { + if (this._shouldNotRender()) return this.state.dontShowAgainChecked && l.setItem(cne, "true"), null; const { - tileViewEnabled: n - } = t()["features/video-layout"]; - void 0 === n && void 0 !== zae && e(Nk(zae)), zae = void 0 + t: e + } = this.props, t = this.props.conference ? "chrome-extension-banner chrome-extension-banner__pos_in_meeting" : "chrome-extension-banner"; + return C().createElement("div", { + className: t + }, C().createElement("div", { + "aria-aria-describedby": "chrome-extension-banner__text-container", + className: "chrome-extension-banner__container", + role: "banner" + }, C().createElement("div", { + className: "chrome-extension-banner__icon-container" + }), C().createElement("div", { + className: "chrome-extension-banner__text-container", + id: "chrome-extension-banner__text-container" + }, e("chromeExtensionBanner.installExtensionText")), C().createElement("div", { + "aria-label": e("chromeExtensionBanner.close"), + className: "chrome-extension-banner__close-container", + onClick: this._onClosePressed, + onKeyPress: this._onCloseKeyPress, + role: "button", + tabIndex: 0 + }, C().createElement(lo, { + className: "gray", + size: 12, + src: ds + }))), C().createElement("div", { + className: "chrome-extension-banner__button-container" + }, C().createElement("div", { + "aria-labelledby": "chrome-extension-banner__button-text", + className: "chrome-extension-banner__button-open-url", + onClick: this._onInstallExtensionClick, + onKeyPress: this._onInstallExtensionKeyPress, + role: "button", + tabIndex: 0 + }, C().createElement("div", { + className: "chrome-extension-banner__button-text", + id: "chrome-extension-banner__button-text" + }, e("chromeExtensionBanner.buttonText")))), C().createElement("div", { + className: "chrome-extension-banner__checkbox-container" + }, C().createElement("label", { + className: "chrome-extension-banner__checkbox-label", + htmlFor: "chrome-extension-banner__checkbox", + id: "chrome-extension-banner__checkbox-label" + }, C().createElement("input", { + "aria-labelledby": "chrome-extension-banner__checkbox-label", + checked: this.state.dontShowAgainChecked, + id: "chrome-extension-banner__checkbox", + onChange: this._onDontShowAgainChange, + type: "checkbox" + }), " ", e("chromeExtensionBanner.dontShowAgain")))) + } + } + const dne = Ei(Ne((e => ({ + bannerCfg: e["features/base/config"].chromeExtensionBanner || lne, + conference: vF(e), + iAmRecorder: e["features/base/config"].iAmRecorder, + isVpaas: cM(e) + })))(une)); class pne extends Ff { + componentDidMount() { + super.componentDidMount(), this._init.then((() => { + this._openURL(Pn(this.props.url) || this._getDefaultURL()) + })) + } + componentDidUpdate(e) { + const t = Pn(e.url), + n = Pn(this.props.url), + a = e.timestamp, + r = this.props.timestamp; + this._init.then((() => { + t === n && a === r || this._openURL(n || this._getDefaultURL()) + })) + } + _createExtraElement() { + return C().createElement(x.Fragment, null, C().createElement(Xq, null)) } + _getDefaultURL() { + return pa(this.state.store) + } + _openURL(e) { + this.state.store.dispatch(tB(Pn(e))) + } + } - function Lae({ - dispatch: e, + function hne(e) { + let { getState: t - }) { - const { - tileViewEnabled: n - } = t()["features/video-layout"]; - void 0 !== n && (zae = n, e(Nk(void 0))) - } + } = e; + const { + waitForOwnerTimeoutID: n + } = t()["features/authentication"]; + n && clearTimeout(n) + } - function Fae({ - getState: e - }) { - const t = e(), - { - conference: n - } = t["features/base/conference"]; - if (!n) return; - const { - lastN: a - } = t["features/base/lastn"], { - maxReceiverVideoQuality: r, - preferredVideoQuality: i - } = t["features/video-quality"], { - participantId: o - } = t["features/large-video"], s = Math.min(r, i), { - visibleRemoteParticipants: l - } = t["features/filmstrip"], c = { - constraints: {}, - defaultConstraints: { - maxHeight: w8.NONE - }, - lastN: a, - onStageEndpoints: [], - selectedEndpoints: [] - }; - if (Ok(t)) { - if (!(null == l ? void 0 : l.size)) return; - l.forEach((e => { - c.constraints[e] = { - maxHeight: s - } - })) - } else { - if (!(null == l ? void 0 : l.size) && !o) return; - (null == l ? void 0 : l.size) > 0 && l.forEach((e => { - c.constraints[e] = { - maxHeight: w8.LOW - } - })), o && (c.constraints[o] = { - maxHeight: s - }, c.onStageEndpoints = [o]) + function mne(e) { + let { + getState: t + } = e; + return t()["features/authentication"].waitForOwnerTimeoutID + } + qe.register((e => t => n => { + switch (n.type) { + case lB: + if (!BI(e, mB)) { + if (mne(e)) return e.dispatch(PB()), t(n); + e.dispatch(MB()), e.dispatch(sB()) + } + break; + case UF: { + const { + error: t + } = n; + let a; + t.name === pt.AUTHENTICATION_REQUIRED && (void 0 === t.recoverable && (t.recoverable = !0), a = t.recoverable), a ? e.dispatch((e => e({ + type: pB, + handler: () => e(((e, t) => { + const { + authRequired: n, + password: a + } = t()["features/base/conference"], r = Kn(t()); + n && e(mq(n)), n && n.join(a, r) + })), + timeoutMs: 5e3 + }))) : e.dispatch(jB()); + break } - try { - n.setReceiverConstraints(c) - } catch (e) { - _I(e), Nt(e, `Failed to set receiver video constraints ${JSON.stringify(c)}`) + case HF: + mne(e) && e.dispatch(jB()), e.dispatch(MB()); + break; + case VF: + e.dispatch(jB()); + break; + case TF: + e.dispatch(MB()); + break; + case cB: + hne(e), e.dispatch(HI(mB)); + break; + case pB: { + hne(e); + const { + handler: t, + timeoutMs: a + } = n; + n.waitForOwnerTimeoutID = setTimeout(t, a), BI(e, AB) || e.dispatch(PB()); + break } } - Be.register((e => t => n => { - const { - transcriberJID: a, - potentialTranscriberJIDs: r - } = e.getState()["features/transcribing"]; - switch (n.type) { - case Tae: - e.dispatch(Yf({ - descriptionKey: "transcribing.off", - titleKey: "dialog.transcribing" - }, zf)); - break; - case Wv: - n.displayName && n.displayName === Nae ? e.dispatch(Iae(n.id)) : e.dispatch((i = n.id, { - type: Oae, - transcriberJID: i - })); + return t(n) + })); + const fne = { + microphone: { + [wt.CONSTRAINT_FAILED]: "dialog.micConstraintFailedError", + [wt.GENERAL]: "dialog.micUnknownError", + [wt.NOT_FOUND]: "dialog.micNotFoundError", + [wt.PERMISSION_DENIED]: "dialog.micPermissionDeniedError", + [wt.TIMEOUT]: "dialog.micTimeoutError" + }, + camera: { + [wt.CONSTRAINT_FAILED]: "dialog.cameraConstraintFailedError", + [wt.GENERAL]: "dialog.cameraUnknownError", + [wt.NOT_FOUND]: "dialog.cameraNotFoundError", + [wt.PERMISSION_DENIED]: "dialog.cameraPermissionDeniedError", + [wt.UNSUPPORTED_RESOLUTION]: "dialog.cameraUnsupportedResolutionError", + [wt.TIMEOUT]: "dialog.cameraTimeoutError" + } + }; + let gne; + + function bne(e, t) { + let { + dispatch: n + } = e; + return t.forEach((e => { + switch (e.kind) { + case "videoinput": + n(hn({ + userSelectedCameraDeviceId: e.deviceId, + userSelectedCameraDeviceLabel: e.label + })), n(oI(e.deviceId)); break; - case Yv: - n.id === a && e.dispatch(function(e) { - return { - type: Tae, - transcriberJID: e - } - }(n.id)); + case "audioinput": + n(hn({ + userSelectedMicDeviceId: e.deviceId, + userSelectedMicDeviceLabel: e.label + })), n(aI(e.deviceId)); break; - case Hv: { - const { - participant: t - } = n; - r.includes(t.id) && t.name === Nae && (e.dispatch(Iae(t.id)), e.dispatch(((e, t) => { - const { - pendingNotificationUid: n - } = t()["features/transcribing"]; - n && (e(Vf(n)), e(function(e) { + case "audiooutput": + ZM(e.deviceId, n, !0, e.label).then((() => LM.log("changed audio output device"))).catch((e => { + LM.warn("Failed to change audio output device.", "Default or previously set audio output device will", " be used instead.", e) + })) + } + })), !0 + } + + function yne(e, t) { + Object.keys(t).forEach((n => { + e.hasOwnProperty(n) && ("object" == typeof e[n] ? yne(e[n], t[n]) : e[n] = t[n]) + })) + } + qe.register((e => t => n => { + switch (n.type) { + case Va: { + const t = t => { + e.dispatch(function(e) { return { - type: Mae, - uid: e + type: zM, + permissions: e } - }())) - }))); - break - } - } - var i; - return t(n) - })), at.register((e => e["features/base/tracks"]), cj()(((e, t) => { - if (!Pk() || iJ(t)) return; - const n = t.getState()["features/video-layout"].remoteScreenShares || [], - a = e.reduce(((e, t) => ("video" === t.mediaType && "desktop" === t.videoType && ("remote-only" === Pk() && t.local || e.push(t.participantId)), e)), []), - r = n.filter((e => a.includes(e))); - a.forEach((e => { - r.includes(e) || r.push(e) - })), Re(n, r) || (t.dispatch({ - type: fk, - participantIds: r - }), Mk(n, t)) - }), 100)), Be.register((e => t => n => { - let a = !1; - switch (n.type) { - case Uv: - var r; - if (!Pk() || iJ(e)) break; - a = null === (r = Fh(e.getState(), n.participant.id)) || void 0 === r ? void 0 : r.isFakeParticipant - } - const i = t(n); - switch (n.type) { - case Vv: - Yh(e.getState()) ? Lae(e) : Rae(e); - break; - case o6: - n.editing ? Lae(e) : Rae(e); - break; - case gk: - n.enabled && Yh(e) && e.dispatch(dk(null)) - } - return a && Mk(e.getState()["features/video-layout"].remoteScreenShares || [], e), i - })), at.register((e => yI(e)), ((e, { - dispatch: t - }, n) => { - e !== n && t(Nk()) - })), Be.register((e => t => n => { - const a = t(n); - switch (n.type) { - case KI: - O3.reset(); - break; - case qv: - n.participant.local || O3.updateVideoMutedForNoTracks(n.participant.id); - break; - case Hv: - void 0 !== n.participant.connectionStatus && O3.onParticipantConnectionStatusChanged(n.participant.id, n.participant.connectionStatus); - break; - case Y6: - case G6: - case TJ: - O3.resizeVideoArea(); - break; - case oo: - n.track.mediaType !== Xi && O3._updateLargeVideoIfDisplayed(n.track.participantId, !0); - break; - case po: - if (n.track.jitsiTrack.isLocal()) { - const t = Rh(e.getState); - O3._updateLargeVideoIfDisplayed(null == t ? void 0 : t.id) - } - break; - case uo: - n.track.local || n.track.mediaType === Xi || O3.updateVideoMutedForNoTracks(n.track.jitsiTrack.getParticipantId()) + }(t)) + }, + { + mediaDevices: n + } = c.default; + gne = t, n.addEventListener(yt.PERMISSIONS_CHANGED, gne), Promise.all([n.isDevicePermissionGranted("audio"), n.isDevicePermissionGranted("video")]).then((e => { + t({ + audio: e[0], + video: e[1] + }) + })).catch((() => {})); + break } - return a - })), at.register((e => e["features/filmstrip"].visibleRemoteParticipants), cj()(((e, t) => { - Fae(t) - }), 100)), at.register((e => e["features/large-video"].participantId), ((e, t) => { - Fae(t) - })), at.register((e => e["features/base/conference"].conference), ((e, t) => { - Fae(t) - })), at.register((e => e["features/video-layout"].tileViewEnabled), ((e, t) => { - Fae(t) - })), at.register((e => e["features/base/lastn"].lastN), ((e, t) => { - Fae(t) - })), at.register((e => { - const { - maxReceiverVideoQuality: t, - preferredVideoQuality: n - } = e["features/video-quality"]; - return { - maxReceiverVideoQuality: t, - preferredVideoQuality: n + case Wa: + "function" == typeof gne && (c.default.mediaDevices.removeEventListener(yt.PERMISSIONS_CHANGED, gne), gne = void 0); + break; + case DM: { + if ("object" != typeof APP || !n.error) break; + const { + message: t, + name: a + } = n.error, r = fne.camera[a], i = r || fne.camera[wt.GENERAL], o = r ? null : t, s = a === wt.PERMISSION_DENIED ? "deviceError.cameraPermission" : "deviceError.cameraError"; + e.dispatch(ng({ + description: o, + descriptionKey: i, + titleKey: s + }, Yf.MEDIUM)), kH(e.getState()) && e.dispatch(OH(s)); + break } - }), ((e, t, n = {}) => { - const { - maxReceiverVideoQuality: a, - preferredVideoQuality: r - } = e, i = r !== n.preferredVideoQuality, o = a !== n.maxReceiverVideoQuality; - i && (function(e, { - getState: t - }) { - const n = t(), - { - conference: a - } = n["features/base/conference"]; - a && (z8.info(`Setting sender resolution to ${e}`), a.setSenderVideoConstraint(e).catch((t => { - _I(t), Nt(t, `Changing sender resolution to ${e} failed.`) - }))) - }(r, t), "undefined" != typeof APP && APP.API.notifyVideoQualityChanged(r)), o && Fae(t) - }), { - deepEquals: !0 - }), at.register((e => { - var t, n; - const { - reducedUI: a - } = e["features/base/responsive-ui"], r = Ok(e), i = null === (t = e["features/filmstrip"]) || void 0 === t || null === (n = t.tileViewDimensions) || void 0 === n ? void 0 : n.thumbnailSize; - return { - displayTileView: r, - participantCount: Bh(e), - reducedUI: a, - thumbnailHeight: null == i ? void 0 : i.height - } - }), (({ - displayTileView: e, - participantCount: t, - reducedUI: n, - thumbnailHeight: a - }, { - dispatch: r, - getState: i - }) => { - const o = i(), - { - maxReceiverVideoQuality: s - } = o["features/video-quality"], - { - maxFullResolutionParticipants: l = 2 - } = o["features/base/config"]; - let c = w8.ULTRA; - if (n) c = w8.LOW; - else if (e && !Number.isNaN(a) && (c = function(e, t) { - let n = w8.LOW; - for (const [a, r] of t.entries()) e >= a && (n = r); - return n - }(a, function(e) { - return e["features/video-quality"].minHeightForQualityLvl - }(o)), s !== c && -1 !== l)) { - const e = t > l && c > w8.STANDARD; - z8.info(`Video quality level for thumbnail height: ${a}, is: ${c}, override: ${String(e)}, max full res N: ${l}`), e && (c = w8.STANDARD) + case PM: { + if ("object" != typeof APP || !n.error) break; + const { + message: t, + name: a + } = n.error, r = fne.microphone[a], i = r || fne.microphone[wt.GENERAL], o = r ? null : t, s = a === wt.PERMISSION_DENIED ? "deviceError.microphonePermission" : "deviceError.microphoneError"; + e.dispatch(ng({ + description: o, + descriptionKey: i, + titleKey: s + }, Yf.MEDIUM)), kH(e.getState()) && e.dispatch(OH(s)); + break } - s !== c && r(function(e) { - return { - type: N8, - maxReceiverVideoQuality: e - } - }(c)) - }), { - deepEquals: !0 - }), Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - const r = n(a); - switch (a.type) { - case UI: - if ("ReactNative" === navigator.product) { - const { - resolution: n - } = t()["features/base/config"]; - void 0 !== n && (e(R8(Number.parseInt(n, 10))), z8.info(`Configured preferred receiver video frame height to: ${n}`)) + case jM: + kH(e.getState()) ? e.dispatch((a = n.deviceId, async (e, t) => { + try { + var n; + const r = t()["features/base/tracks"], + i = await rt("audio", a); + e(vh(null === (n = Xp(r)) || void 0 === n ? void 0 : n.jitsiTrack, i)) + } catch (t) { + e(OH("prejoin.audioTrackError")), _H.log("Error replacing audio track", t) } - break; - case Rn: { - const n = t(), + })) : APP.UI.emitEvent(rX.AUDIO_DEVICE_CHANGED, n.deviceId); + break; + case MM: + kH(e.getState()) ? e.dispatch(function(e) { + return async (t, n) => { + try { + var a; + const r = n()["features/base/tracks"], + i = jf(n()), + [o] = await Qp({ + cameraDeviceId: e, + devices: ["video"] + }, { + dispatch: t, + getState: n + }); + t(vh(null === (a = nh(r)) || void 0 === a ? void 0 : a.jitsiTrack, o)), i && o.mute() + } catch (e) { + t(OH("prejoin.videoTrackError")), _H.log("Error replacing video track", e) + } + } + }(n.deviceId)) : APP.UI.emitEvent(rX.VIDEO_DEVICE_CHANGED, n.deviceId); + break; + case IM: + if (function(e) { + const t = e => e.map((e => `\t\t${e.label}[${e.deviceId}]`)).join("\n"), + n = t(e.audioInput), + a = t(e.audioOutput), + r = t(e.videoInput); + LM.debug(`Device list updated:\naudioInput:\n${n}\naudioOutput:\n${a}\nvideoInput:\n${r}`) + }(WM(n.devices)), qM(e.getState())) return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = t(n), + o = r(), { - videoQuality: a = {} - } = n["features/base/config"], + pendingRequests: s + } = o["features/base/devices"]; + return s && 0 !== s.length ? (s.forEach((e => { + tZ(a, r, e, e.responseCallback) + })), a({ + type: NM + }), i) : i + }(e, t, n); + break; + case RM: + ! function(e, t, n) { + const { + dispatch: a + } = e, r = t.filter((e => !n.find((t => t.deviceId === e.deviceId)))).reduce(((e, t) => (e[t.groupId] = e[t.groupId] || [], e[t.groupId].push(t), e)), {}); + Object.values(r).forEach((t => { + if (t.length < 1) return; + const n = t[0], + r = YM(n.label); + let i; + switch (n.kind) { + case "videoinput": + i = "notify.newDeviceCameraTitle"; + break; + case "audioinput": + case "audiooutput": + i = "notify.newDeviceAudioTitle" + } + kH(e.getState()) || a(tg({ + description: r, + titleKey: i, + customActionNameKey: ["notify.newDeviceAction"], + customActionHandler: [bne.bind(void 0, e, t)] + }, Yf.MEDIUM)) + })) + }(e, n.newDevices, n.oldDevices) + } + var a; + return t(n) + })), qe.register((e => t => n => { + switch (n.type) { + case Va: + e.dispatch((async function(e, t) { + const n = t(), { - persistedPrefferedVideoQuality: r - } = n["features/video-quality-persistent-storage"]; - a.persist && void 0 !== r && e(R8(r)); - break - } - } - return r - })); - const qae = Je("features/videosipgw"); - Be.register((({ - dispatch: e, - getState: t - }) => n => a => { - const r = n(a); - switch (a.type) { - case GI: { - const n = t()["features/base/conference"].joining; - n.on(bt.VIDEO_SIP_GW_AVAILABILITY_CHANGED, ((...t) => e(function(e) { - return { - type: yW, - status: e - } - }(...t)))), n.on(bt.VIDEO_SIP_GW_SESSION_STATE_CHANGED, (t => { - const n = function(e) { - switch (e.newState) { - case xt.STATE_PENDING: - return Yf({ - titleKey: "videoSIPGW.pending", - titleArguments: { - displayName: e.displayName - } - }, 2e3); - case xt.STATE_FAILED: - return Wf({ - titleKey: "videoSIPGW.errorInviteFailedTitle", - titleArguments: { - displayName: e.displayName - }, - descriptionKey: "videoSIPGW.errorInviteFailed" - }); - case xt.STATE_OFF: - if (e.failureReason === xt.STATUS_BUSY) return Wf({ - descriptionKey: "videoSIPGW.busy", - titleKey: "videoSIPGW.busyTitle" - }); - e.failureReason && qae.error(`Unknown sip videogw error ${e.newState} ${e.failureReason}`) - } - return null - }(t); - n && e(n) - })); - break - } - case vW: - ! function(e, t, n) { - for (const a of e) { + customizationReady: a + } = n["features/dynamic-branding"]; + if (!a) { + const t = await async function() { + const e = await lt(window.location.href), + { + dynamicBrandingUrl: t + } = e; + if (t) return t; const { - id: e, - name: r - } = a; - if (e && r) { - const a = t.createVideoSIPGWSession(e, r); - if (a instanceof Error) { - const e = a; - switch (e.message) { - case xt.ERROR_NO_CONNECTION: - return void n(Wf({ - descriptionKey: "videoSIPGW.errorInvite", - titleKey: "videoSIPGW.errorInviteTitle" - })); - case xt.ERROR_SESSION_EXISTS: - return void n(Gf({ - titleKey: "videoSIPGW.errorAlreadyInvited", - titleArguments: { - displayName: r - } - })) - } - return void qae.error("Unknown error trying to create sip videogw session", e) - } - a.start() - } else qae.error(`No display name or sip number for ${JSON.stringify(a)}`) + brandingDataUrl: n + } = e, a = XY(); + return n && a ? `${n}?conferenceFqn=${encodeURIComponent(a)}` : void 0 + }(); + if (t) try { + const n = await bn(t); + return e({ + type: JY, + value: n + }) + } catch (t) { + return tG.error("Error fetching branding data", t), e({ + type: ZY + }) } - }(a.rooms, a.conference, e) - } - return r - })); - const Bae = "580px", - Uae = "ignore-child", - Hae = Ug.default.br` - font-size: 0; -`, - Vae = Ug.default.button` - align-items: center; - background-color: ${e=>e.primary?"#0056E0":"#3D3D3D"}; - border: 0; - border-radius: 6px; - display: flex; - font-weight: unset; - justify-content: center; - min-height: 32px; - - &:hover { - background-color: ${e=>e.primary?"#246FE5":"#525252"}; - } -`, - Wae = (0, Ug.default)(Vae)` - padding: 0 12px; -`, - Yae = Ug.default.div` - box-sizing: border-box; - flex: 1; - overflow-y: auto; - position: relative; - padding: 0 ${e=>e.theme.panePadding}px; - - & > * + *:not(.${Uae}) { - margin-top: 16px; - } - - &::-webkit-scrollbar { - display: none; - } -`, - Gae = Ug.default.div.attrs((e => ({ - className: e.className - })))` - background-color: #292929; - border-radius: 3px; - box-shadow: 0px 3px 16px rgba(0, 0, 0, 0.6), 0px 0px 4px 1px rgba(0, 0, 0, 0.25); - color: white; - font-size: ${e=>e.theme.contextFontSize}px; - font-weight: ${e=>e.theme.contextFontWeight}; - margin-top: ${e=>{const{participantActionButtonHeight:t,participantItemHeight:n}=e.theme;return(3*n+t)/4}}px; - position: absolute; - right: ${e=>e.theme.panePadding}px; - top: 0; - z-index: 2; - - & > li { - list-style: none; - } - - ${e=>e.isHidden&&"\n pointer-events: none;\n visibility: hidden;\n "} -`, - Kae = (0, Ug.default)(qs).attrs({ - size: 20 - })` - & > svg { - fill: #ffffff; - } -`, - $ae = Ug.default.div` - align-items: center; - box-sizing: border-box; - cursor: pointer; - display: flex; - min-height: 40px; - padding: 10px 16px; - - & > *:not(:last-child) { - margin-right: 16px; - } - - &:hover { - background-color: #525252; - } -`, - Jae = Ug.default.div` - &:not(:empty) { - padding: 8px 0; - } - - & + &:not(:empty) { - border-top: 1px solid #4C4D50; - } -`, - Zae = Ug.default.div` - align-items: center; - cursor: pointer; - display: flex; - height: 20px; - justify-content: center; - width: 20px; - - &:before, &:after { - content: ''; - background-color: #a4b8d1; - border-radius: 2px; - height: 2px; - position: absolute; - transform-origin: center center; - width: 21px; - } - - &:before { - transform: rotate(45deg); - } - - &:after { - transform: rotate(-45deg); - } -`, - Qae = Ug.default.div` - background-color: #141414; - display: flex; - justify-content: flex-end; - padding: 24px ${e=>e.theme.panePadding}px; - - & > *:not(:last-child) { - margin-right: 16px; - } -`, - Xae = (0, Ug.default)(Vae)` - height: 40px; - font-size: 15px; - padding: 0 16px; - - @media (max-width: ${Bae}) { - font-size: 16px; - height: 48px; - min-width: 48px; - } -`, - ere = (0, Ug.default)(Xae).attrs({ - children: x().createElement(qs, { - src: Xc - }) - })` - padding: 8px; -`, - tre = Ug.default.div` - position: relative; -`, - nre = Ug.default.div` - align-items: center; - box-sizing: border-box; - display: flex; - height: ${e=>e.theme.headerSize}px; - padding: 0 20px; -`, - are = Ug.default.div` - color: #d1dbe8; - font-style: normal; - font-size: 15px; - line-height: 24px; - margin: 8px 0 ${e=>e.theme.panePadding}px; - - @media (max-width: ${Bae}) { - font-size: 16px; - } -`, - rre = (0, Ug.default)(Vae)` - height: ${e=>e.theme.participantActionButtonHeight}px; - padding: 6px 10px; -`, - ire = (0, Ug.default)(rre).attrs({ - children: x().createElement(qs, { - src: Xc - }), - primary: !0 - })` - padding: 6px; -`, - ore = Ug.default.div` - align-items: center; - z-index: 1; - - & > *:not(:last-child) { - margin-right: 8px; - } -`, - sre = (0, Ug.default)(ore)` - background-color: #292929; - bottom: 1px; - display: none; - position: absolute; - right: ${e=>e.theme.panePadding}; - top: 0; - - &:after { - content: ''; - background: linear-gradient(90deg, rgba(0, 0, 0, 0) 0%, #292929 100%); - bottom: 0; - display: block; - left: 0; - pointer-events: none; - position: absolute; - top: 0; - transform: translateX(-100%); - } -`, - lre = (0, Ug.default)(ore)` - display: flex; -`, - cre = Ug.default.div` - align-items: center; - box-shadow: inset 0px -1px 0px rgba(255, 255, 255, 0.15); - display: flex; - flex: 1; - height: 100%; - overflow: hidden; - padding-right: ${e=>e.theme.panePadding}px; -`, - ure = Ug.default.div` - display: flex; - justify-content: flex-end; - - & > * { - align-items: center; - display: flex; - justify-content: center; - } - - & > *:not(:last-child) { - margin-right: 8px; - } - - .jitsi-icon { - padding: 3px; - } -`, - dre = Ug.default.div` - align-items: center; - color: white; - display: flex; - font-size: 13px; - font-weight: normal; - height: ${e=>e.theme.participantItemHeight}px; - margin: 0 -${e=>e.theme.panePadding}px; - padding-left: ${e=>e.theme.panePadding}px; - position: relative; - - @media (max-width: ${Bae}) { - font-size: 16px; - height: 64px; - } - - &:hover { - ${ure} { - ${e=>!e.local&&"display: none"}; - } - } - - ${e=>!e.isHighlighted&&"&:hover {"} - background-color: #292929; - - & ${ore} { - ${e=>e.trigger===hm&&"\n display: flex;\n "} - } - - & ${cre} { - box-shadow: none; - } - - & ${ure} { - display: none; - } - ${e=>!e.isHighlighted&&"}"} -`, - pre = (0, Ug.default)(Vae).attrs({ - primary: !0 - })` - font-size: 15px; - height: 40px; - width: 100%; - - & > *:not(:last-child) { - margin-right: 8px; - } - - @media (max-width: ${Bae}) { - font-size: 16px; - height: 48px; - } -`, - hre = Ug.default.div` - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -`, - mre = Ug.default.div` - display: flex; - flex: 1; - overflow: hidden; -`, - fre = Ug.default.div` - font-size: 12px; - line-height: 16px; - color: #858585; -`, - gre = Ug.default.div` - display: flex; - flex: 1; - margin-right: 8px; - overflow: hidden; - flex-direction: column; - justify-content: flex-start; -`, - bre = Ug.default.div` - background-color: #ed9e1b; - border-radius: 3px; - height: 24px; - width: 24px; -`, - yre = (Ug.default.div` - position: relative; - width: 100%; -`, Ug.default.div` - background-color: #0376da; - border-radius: 1px 0 0 1px; - height: 100%; - left: 0; - pointer-events: none; - position: absolute; -`, () => { - const e = Ce(), - { - t - } = mr(), - n = (0, E.useCallback)((() => { - Ma(hn("invite")), e(AW()) - }), [e]); - return x().createElement(pre, { - "aria-label": t("participantsPane.actions.invite"), - onClick: n - }, x().createElement(qs, { - size: 20, - src: iu - }), x().createElement("span", null, t("participantsPane.actions.invite"))) - }); - - function vre(e, t) { - const n = Ce(); - return [(0, E.useCallback)((a => { - a.stopPropagation(), n(J4(e && e.participantID)), t && t() - }), [n, t]), (0, E.useCallback)((() => { - n(Z4(e && e.participantID)), t && t() - }), [n, t])] - } - - function kre() { - const [e, t] = (0, E.useState)(null); - return [e, (0, E.useCallback)((() => { - t(null) - })), t] - } - const _re = () => x().createElement(bre, null, x().createElement(qs, { - size: 15, - src: Id - })), - wre = { - [hm]: sre, - [mm]: lre - }, - Sre = Li((function({ - actionsTrigger: e = "Hover", - audioMediaState: t = "None", - children: n, - disableModeratorIndicator: a, - displayName: r, - isHighlighted: i, - isModerator: o, - local: s, - onLeave: l, - openDrawerForParticipant: c, - overflowDrawer: u, - participantID: d, - raisedHand: p, - t: h, - videoMediaState: m = "None", - youText: f - }) { - const g = wre[e], - b = (0, E.useCallback)((() => c({ - participantID: d, - displayName: r - }))); - return x().createElement(dre, { - id: `participant-item-${d}`, - isHighlighted: i, - local: s, - onClick: !s && u ? b : void 0, - onMouseLeave: l, - trigger: e - }, x().createElement(ZG, { - className: "participant-avatar", - participantId: d, - size: 32 - }), x().createElement(cre, null, x().createElement(gre, null, x().createElement(mre, null, x().createElement(hre, null, r), s ? x().createElement("span", null, " (", f, ")") : null), o && !a && x().createElement(fre, null, h("videothumbnail.moderator"))), !s && x().createElement(g, { - children: n - }), x().createElement(ure, null, p && x().createElement(_re, null), Sm[m], wm[t]))) - })), - Ere = ({ - overflowDrawer: e, - participant: t, - openDrawerForParticipant: n - }) => { + e({ + type: QY + }) + } + })); + break; + case JY: { const { - id: a - } = t, [r, i] = vre({ - participantID: a - }), { - t: o - } = mr(); - return x().createElement(Sre, { - actionsTrigger: mm, - audioMediaState: vm, - displayName: t.name, - local: t.local, - openDrawerForParticipant: n, - overflowDrawer: e, - participantID: a, - raisedHand: t.raisedHand, - videoMediaState: vm, - youText: o("chat.you") - }, x().createElement(rre, { - onClick: i, - primary: !1 - }, o("lobby.reject")), x().createElement(rre, { - onClick: r, - primary: !0 - }, o("lobby.admit"))) - }; - - function xre(e) { - var t, n, a = ""; - if ("string" == typeof e || "number" == typeof e) a += e; - else if ("object" == typeof e) - if (Array.isArray(e)) - for (t = 0; t < e.length; t++) e[t] && (n = xre(e[t])) && (a && (a += " "), a += n); - else - for (t in e) e[t] && (a && (a += " "), a += t); - return a + customTheme: e + } = n.value; + e && (n.value.muiBrandedTheme = function(e) { + const { + palette: t, + shape: n, + typography: a, + breakpoints: r, + spacing: i + } = e, o = ene(iv, rv); + t && yne(o, t); + const s = { + ...sv + }; + n && yne(s, n); + const l = { + font: { + ...ov + }, + ...cv + }; + a && yne(l, a); + const c = { + ...uv + }; + r && yne(c, r); + let u = [...lv]; + return i && i.length && (u = i), nL({ + props: { + MuiButtonBase: { + disableRipple: !0 + } + }, + spacing: u + }, { + palette: o, + shape: s, + typography: l, + breakpoints: c + }) + }(e)) + } } + return t(n) + })); + const vne = $e("features/e2ee"); - function Cre() { - for (var e, t, n = 0, a = ""; n < arguments.length;)(e = arguments[n++]) && (t = xre(e)) && (a && (a += " "), a += t); - return a - } - const Are = gH((() => ({ - contextMenu: { - bottom: "auto", - margin: "0", - padding: "8px 0", - right: 0, - top: "-8px", - transform: "translateY(-100%)", - width: "283px" - }, - drawer: { - width: "100%", - top: "auto", - bottom: 0, - transform: "none", - position: "relative", - "& > div": { - lineHeight: "32px" + function kne(e, t) { + const n = t(), + { + e2ee: a = {} + } = n["features/base/config"]; + a.externallyManagedKey || (Yh(Fe(n)) >= 25 ? (e(d8(f8)), e(l8(!1))) : Yh(Fe(n)) >= 20 ? e(d8(m8)) : e(d8(g8))) + } + qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const r = vF(n); + switch (a.type) { + case Va: + t(Oi(p8, "e2eeOff.mp3")), t(Oi(h8, "e2eeOn.mp3")); + break; + case Wa: + t(Ri(p8)), t(Ri(h8)); + break; + case HF: + kne(t, n); + break; + case Hw: { + const { + id: r, + e2eeEnabled: o, + e2eeSupported: s + } = a.participant, l = Vh(n(), r), c = e(a); + if (o !== (null == l ? void 0 : l.e2eeEnabled) || s !== (null == l ? void 0 : l.e2eeSupported)) { + var i; + const e = n(); + let a = !0, + r = !0; + for (const [t, n] of Jh(e)) + if (n.e2eeEnabled || (r = !1), n.e2eeSupported || (a = !1), !r && !a) break; + null !== (i = Uh(e)) && void 0 !== i && i.e2eeEnabled || (r = !1), (0, Me.unstable_batchedUpdates)((() => { + t(c8(r)), t(u8(a)) + })) } - }, - text: { - color: "#C2C2C2", - padding: "10px 16px" - }, - paddedAction: { - marginLeft: "36px" + return c } - }))), - jre = ({ - inDrawer: e, - onMouseLeave: t - }) => { - const n = Ce(), - a = Pe((e => { + case qw: { + const r = e(a), + { + e2eeEnabled: i, + e2eeSupported: o, + local: s + } = a.participant, + { + everyoneEnabledE2EE: l + } = n()["features/e2ee"]; + if (1 === Yh(n) && (0, Me.unstable_batchedUpdates)((() => { + t(c8(i)), t(u8(o)) + })), l && !i && t(c8(!1)), s) return r; + const { + everyoneSupportE2EE: c + } = n()["features/e2ee"]; + return c && !o && t(u8(!1)), kne(t, n), r + } + case Uw: { + var o; + const r = Vh(n(), null === (o = a.participant) || void 0 === o ? void 0 : o.id) || {}, + i = e(a), + l = n(), + { + e2eeEnabled: c = !1, + e2eeSupported: u = !1 + } = r, + { + everyoneEnabledE2EE: d, + everyoneSupportE2EE: p + } = l["features/e2ee"]; + if (!d && !c || !p && !u) { + var s; + let e = !0, + n = !0; + for (const [t, a] of Jh(l)) + if (a.e2eeEnabled || (e = !1), a.e2eeSupported || (n = !1), !e && !n) break; + null !== (s = Uh(l)) && void 0 !== s && s.e2eeEnabled || (e = !1), (0, Me.unstable_batchedUpdates)((() => { + !d && e && t(c8(!0)), !p && n && t(u8(!0)) + })) + } + return kne(t, n), i + } + case a8: + if (r && r.isE2EEEnabled() !== a.enabled) { + vne.debug("E2EE will be " + (a.enabled ? "enabled" : "disabled")), r.toggleE2EE(a.enabled); + const e = Uh(n); + t(sS({ + e2eeEnabled: a.enabled, + id: e.id, + local: !0 + })); + const i = a.enabled ? h8 : p8; + t(Ii(i)) + } + break; + case s8: + if (r && r.isE2EESupported()) { const { - conference: t - } = e["features/base/conference"]; - return !!t && t.isAVModerationSupported() - })), - r = Pe($h), - i = Pe(Bh), - o = Pe(sm(Xi)), - s = Pe(sm(to)), - { - t: l - } = mr(), - c = (0, E.useCallback)((() => n($m())), [n]), - u = (0, E.useCallback)((() => n(Jm())), [n]), - d = (0, E.useCallback)((() => n(Zm())), [n]), - p = (0, E.useCallback)((() => n(Qm())), [n]), - h = Are(), - m = (0, E.useCallback)((() => n(sP(F1))), [n]); - return x().createElement(Gae, { - className: Cre(h.contextMenu, e && Cre(h.drawer)), - onMouseLeave: t - }, x().createElement(Jae, null, x().createElement($ae, { - id: "participants-pane-context-menu-stop-video", - onClick: m - }, x().createElement(qs, { - size: 20, - src: Rp - }), x().createElement("span", null, l("participantsPane.actions.stopEveryonesVideo")))), !a || 1 !== i && r ? void 0 : x().createElement(Jae, null, x().createElement("div", { - className: h.text - }, l("participantsPane.actions.allow")), o ? x().createElement($ae, { - id: "participants-pane-context-menu-stop-audio-moderation", - onClick: c - }, x().createElement("span", { - className: h.paddedAction - }, l("participantsPane.actions.audioModeration"))) : x().createElement($ae, { - id: "participants-pane-context-menu-start-audio-moderation", - onClick: d - }, x().createElement(qs, { - size: 20, - src: Rl - }), x().createElement("span", null, l("participantsPane.actions.audioModeration"))), s ? x().createElement($ae, { - id: "participants-pane-context-menu-stop-video-moderation", - onClick: u - }, x().createElement("span", { - className: h.paddedAction - }, l("participantsPane.actions.videoModeration"))) : x().createElement($ae, { - id: "participants-pane-context-menu-start-video-moderation", - onClick: p - }, x().createElement(qs, { - size: 20, - src: Rl - }), x().createElement("span", null, l("participantsPane.actions.videoModeration"))))) - }, - Pre = x().memo((function({ - openDrawerForParticipant: e, - overflowDrawer: t, - participants: n - }) { - return x().createElement("div", null, n.map((n => x().createElement(Ere, { - key: n.id, - openDrawerForParticipant: e, - overflowDrawer: t, - participant: n - })))) - })); - - function Dre(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Tre(e, t, n[t]) - })) + exportedKey: e, + index: t + } = a.keyInfo; + e ? window.crypto.subtle.importKey("raw", new Uint8Array(e), "AES-GCM", !1, ["encrypt", "decrypt"]).then((e => { + r.setMediaEncryptionKey({ + encryptionKey: e, + index: t + }) + })).catch((e => vne.error("SET_MEDIA_ENCRYPTION_KEY error", e))) : r.setMediaEncryptionKey({ + encryptionKey: !1, + index: t + }) + } } - return e + return e(a) } - - function Tre(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + })), tt.register((e => vF(e)), ((e, t, n) => { + let { + dispatch: a + } = t; + n && a(l8(!1)) + })), tt.register((e => QS(e)), (e => { + APP.API.notifyTileViewChanged(e) + })), tt.register((e => e["features/base/settings"].displayName), ((e, t) => { + const n = Uh(t.getState()), + { + defaultLocalDisplayName: a + } = t.getState()["features/base/config"]; + if (n) { + const { + id: t + } = n; + APP.API.notifyDisplayNameChanged(t, { + displayName: e, + formattedDisplayName: t1(e, a) + }) } - const Ore = gH((e => ({ - drawerActions: { - listStyleType: "none", - margin: 0, - padding: 0 - }, - drawerItem: Dre({ - alignItems: "center", - color: e.palette.text01, - display: "flex", - padding: "12px 16px" - }, Os(e.typography.bodyShortRegularLarge), { - "&:first-child": { - marginTop: "15px" - }, - "&:hover": { - cursor: "pointer", - background: e.palette.action02 + })), tt.register((e => e["features/large-video"].participantId), (e => { + APP.API.notifyOnStageParticipantChanged(e) + })), qe.register((e => t => n => { + if (n.type === Gw) { + const { + id: a, + loadableAvatarUrl: r + } = n.participant, i = Vh(e.getState(), a), o = t(n); + return i && (r ? i.loadableAvatarUrl !== r && APP.API.notifyAvatarChanged(a, r) : APP.API.notifyAvatarChanged(a, i.name ? void 0 : new URL("images/avatar.png", function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : window; + const t = e.document.querySelector("base"); + if (t && t.href) return t.href; + const { + protocol: n, + host: a + } = e.location; + return `${n}//${a}` + }()).href)), o + } + const a = t(n); + switch (n.type) { + case UF: + n.conference && n.error.name === pt.PASSWORD_REQUIRED && APP.API.notifyOnPasswordRequired(); + break; + case HF: { + const t = e.getState(), + { + defaultLocalDisplayName: n + } = t["features/base/config"], + { + room: a + } = t["features/base/conference"], + { + loadableAvatarUrl: r, + name: i, + id: o + } = Uh(t); + APP.API.notifyConferenceJoined(a, o, { + displayName: i, + formattedDisplayName: t1(i, n), + avatarURL: r + }); + break + } + case JF: + APP.API.notifyDataChannelOpened(); + break; + case Nw: + APP.API.notifyDominantSpeakerChanged(n.participant.id); + break; + case ZF: + APP.API.notifyKickedOut({ + id: Uh(e.getState()).id, + local: !0 + }, { + id: n.participant ? n.participant.getId() : void 0 + }); + break; + case DM: + n.error && APP.API.notifyOnCameraError(n.error.name, n.error.message); + break; + case PM: + n.error && APP.API.notifyOnMicError(n.error.name, n.error.message); + break; + case Bw: + APP.API.notifyKickedOut({ + id: n.kicked, + local: !1 + }, { + id: n.kicker + }); + break; + case Uw: + APP.API.notifyUserLeft(n.participant.id); + break; + case qw: { + const t = e.getState(), + { + defaultRemoteDisplayName: a + } = t["features/base/config"], + { + participant: r + } = n, + { + id: i, + local: o, + name: s + } = r; + o || APP.API.notifyUserJoined(i, { + displayName: s, + formattedDisplayName: t1(s || a) + }); + break + } + case "PARTICIPANT_ROLE_CHANGED": + APP.API.notifyUserRoleChanged(n.participant.id, n.participant.role); + break; + case In: { + const t = e.getState(), + { + disableBeforeUnloadHandlers: n = !1 + } = t["features/base/config"]; + window.addEventListener(n ? "unload" : "beforeunload", (() => { + APP.API.notifyConferenceLeft(APP.conference.roomName), APP.API.dispose(), xee().dispose() + })); + break + } + case wS: + APP.API.notifyFilmstripDisplayChanged(n.visible); + break; + case _1: + APP.API.notifyFeedbackSubmitted(n.error || "Unknown error"); + break; + case w1: + APP.API.notifyFeedbackSubmitted() + } + return a + })), qe.register((e => e => t => (t.type === WZ && "object" == typeof APP && APP.keyboardshortcut.openDialog(), e(t)))), qe.register((e => { + let { + getState: t, + dispatch: n + } = e; + return e => a => { + const r = e(a); + switch (a.type) { + case HF: { + const { + localRecording: e + } = t()["features/base/config"]; + if (!Boolean(e && e.enabled && "object" == typeof APP)) break; + m0.onStateChanged = e => { + if (e) { + const e = new Date; + n({ + type: H1, + recordingEngagedAt: e + }) + } else n({ + type: V1 + }) + }, m0.onWarning = (e, t) => { + n(tg({ + titleKey: "localRecording.localRecording", + description: _i.t(e, t) + }, Yf.LONG)) + }, m0.onNotify = (e, t) => { + n(tg({ + titleKey: "localRecording.localRecording", + description: _i.t(e, t) + }, Yf.LONG)) + }, "object" == typeof APP && "object" == typeof APP.keyboardshortcut && APP.keyboardshortcut.registerShortcut("L", null, (() => { + Da(on("local.recording")), n(WI(g0)) + }), "keyboardShortcuts.localRecording"), e.format && m0.switchFormat(e.format); + const { + conference: a + } = t()["features/base/conference"]; + m0.registerEvents(a); + break + } + case Wa: + m0.onStateChanged = null, m0.onNotify = null, m0.onWarning = null; + break; + case lf: + m0.setMuted(a.muted); + break; + case pn: { + const { + micDeviceId: e + } = t()["features/base/settings"]; + e && m0.setMicDevice(e); + break } - }), - icon: { - marginRight: 16 - }, - headingContainer: { - alignItems: "center", - display: "flex", - justifyContent: "space-between" - }, - heading: Dre({}, Os(e.typography.heading7), { - color: e.palette.text02 - }), - link: Dre({}, Os(e.typography.labelBold), { - color: e.palette.link01, - cursor: "pointer" - }) - }))); - - function Mre() { - const e = Pe(n8), - t = Pe(a8), - { - t: n - } = mr(), - a = Ore(), - r = Ce(), - i = (0, E.useCallback)((() => { - r(function(e) { - return (t, n) => { - const a = yI(n); - e.forEach((e => { - a.lobbyApproveAccess(e.id) - })) - } - }(t)) - }), [r, t]), - o = Pe(EH), - [s, l, c] = kre(), - [u, d] = vre(s, l); - return e && t.length ? x().createElement(x().Fragment, null, x().createElement("div", { - className: a.headingContainer - }, x().createElement("div", { - className: a.heading - }, n("participantsPane.headings.lobby", { - count: t.length - })), x().createElement("div", { - className: a.link, - onClick: i - }, n("lobby.admitAll"))), x().createElement(Pre, { - openDrawerForParticipant: c, - overflowDrawer: o, - participants: t - }), x().createElement(k7, null, x().createElement(y7, { - isOpen: Boolean(s && o), - onClose: l - }, x().createElement("ul", { - className: a.drawerActions - }, x().createElement("li", { - className: a.drawerItem - }, x().createElement(ZG, { - className: a.icon, - participantId: s && s.participantID, - size: 20 - }), x().createElement("span", null, s && s.displayName)), x().createElement("li", { - className: a.drawerItem, - onClick: u - }, x().createElement(qs, { - className: a.icon, - size: 20, - src: Rl - }), x().createElement("span", null, n("lobby.admit"))), x().createElement("li", { - className: a.drawerItem, - onClick: d - }, x().createElement(qs, { - className: a.icon, - size: 20, - src: Ul - }), x().createElement("span", null, n("lobby.reject"))))))) : null - } - - function Ire(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Nre(e, t, n[t]) - })) } - return e + return r } + })); + const _ne = "SET_NO_AUDIO_SIGNAL_NOTIFICATION_UID"; - function Nre(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function wne(e) { + return { + type: _ne, + uid: e } - class zre extends E.Component { - constructor(e) { - super(e), this.state = { - isHidden: !0 - }, this._containerRef = x().createRef(), this._getCurrentParticipantId = this._getCurrentParticipantId.bind(this), this._onGrantModerator = this._onGrantModerator.bind(this), this._onKick = this._onKick.bind(this), this._onMuteEveryoneElse = this._onMuteEveryoneElse.bind(this), this._onMuteVideo = this._onMuteVideo.bind(this), this._onSendPrivateMessage = this._onSendPrivateMessage.bind(this), this._position = this._position.bind(this), this._onVolumeChange = this._onVolumeChange.bind(this), this._onAskToUnmute = this._onAskToUnmute.bind(this) - } - _getCurrentParticipantId() { - const { - _participant: e, - drawerParticipant: t, - overflowDrawer: n - } = this.props; - return n ? null == t ? void 0 : t.participantID : null == e ? void 0 : e.id - } - _onGrantModerator() { - this.props.dispatch(sP(w1, { - participantID: this._getCurrentParticipantId() - })) - } - _onKick() { - this.props.dispatch(sP(A1, { - participantID: this._getCurrentParticipantId() - })) + } + class Sne extends x.Component { + render() { + const { + _dialIn: e, + _dialInfoPageUrl: t, + t: n + } = this.props; + return HU(e) ? C().createElement("div", null, n("toolbar.noAudioSignalDialInDesc"), " ", C().createElement("a", { + href: t, + rel: "noopener noreferrer", + target: "_blank" + }, n("toolbar.noAudioSignalDialInLinkDesc"))) : null + } + } + const Ene = Ei(Ne((function(e) { + return { + _dialIn: e["features/invite"], + _dialInfoPageUrl: UU(e) + } + }))(Sne)), xne = "NO_AUDIO_SIGNAL_SOUND"; qe.register((e => t => async n => { + const a = t(n), + { + dispatch: r + } = e; + switch (n.type) { + case Va: + r(Oi(xne, "noAudioSignal.mp3")); + break; + case Wa: + r(Ri(xne)); + break; + case HF: + !async function(e, t) { + let { + dispatch: n, + getState: a + } = e; + const { + conference: r + } = t; + r.on(ht.AUDIO_INPUT_STATE_CHANGE, (e => { + const { + noAudioSignalNotificationUid: t + } = a()["features/no-audio-signal"]; + t && e && (n(Xf(t)), n(wne())) + })), r.on(ht.NO_AUDIO_INPUT, (async () => { + const { + noSrcDataNotificationUid: e + } = a()["features/base/no-src-data"]; + if (e) return; + const t = await c.default.getActiveAudioDevice(), + { + noAudioSignalNotificationUid: r + } = a()["features/no-audio-signal"]; + r && (n(Xf(r)), n(wne())); + let i, o, s = "toolbar.noAudioSignalDesc"; + "" !== t.deviceLabel && (s = "toolbar.noAudioSignalDescSuggestion", i = [`Switch to ${YM(t.deviceLabel)}`], o = [() => { + n(hn({ + userSelectedMicDeviceId: t.deviceId, + userSelectedMicDeviceLabel: t.deviceLabel + })), n(aI(t.deviceId)) + }]); + const l = await n(tg({ + titleKey: "toolbar.noAudioSignalTitle", + description: C().createElement(Ene, null), + descriptionKey: s, + customActionNameKey: i, + customActionHandler: o + }, Yf.LONG)); + n(Ii(xne)), l && n(wne(l.uid)) + })) + }(e, n) + } + return a + })), qe.register((e => t => n => { + switch (n.type) { + case qw: { + const r = t(n), + { + participant: i + } = n, + { + dispatch: o, + getState: s + } = e, + l = s(), + { + conference: c + } = l["features/base/conference"]; + return !c || i.local || Pw() || i.isReplacing || o((a = Kh(l, i.id), ig.push(a), (e, t) => rg(e, t))), r } - _onStopSharedVideo() { + case Uw: + if (!Pw()) { + const { + dispatch: t, + getState: a + } = e, r = a(), i = Vh(e.getState(), n.participant.id); + !i || i.local || n.participant.isReplaced || t(function(e) { + return ag.push(e), (e, t) => og(e, t) + }(Kh(r, i.id))) + } + return t(n); + case Hw: { + const a = e.getState(), + { + disableModeratorIndicator: r + } = a["features/base/config"]; + if (r) return t(n); const { - dispatch: e - } = this.props; - e(this._onStopSharedVideo()) - } - _onMuteEveryoneElse() { - this.props.dispatch(sP(z1, { - exclude: [this._getCurrentParticipantId()] - })) - } - _onMuteVideo() { - this.props.dispatch(sP(Y1, { - participantID: this._getCurrentParticipantId() - })) - } - _onSendPrivateMessage() { + id: i, + role: o + } = n.participant, s = Uh(a); + if ((null == s ? void 0 : s.id) !== i) return t(n); + const l = Vh(a, i), + c = null == l ? void 0 : l.role; + return c && c !== o && o === Rh && e.dispatch(tg({ + titleKey: "notify.moderator" + }, Yf.SHORT)), t(n) + } + case w0: + e.dispatch({ + type: Wf + }) + } + var a; + return t(n) + })), tt.register((e => vF(e)), ((e, t) => { + let { + dispatch: n + } = t; + e || n(Qf()) + })), qe.register((e => t => n => { + switch (n.type) { + case HF: { const { - closeDrawer: e, dispatch: t, - overflowDrawer: n - } = this.props; - var a; - t((a = this._getCurrentParticipantId(), function(e, t) { - return e({ - participant: Fh(t(), a), - type: z3 - }) - })), n && e() + getState: n + } = e, { + disableSelfView: a + } = n()["features/base/settings"]; + a && t(tg({ + titleKey: "notify.selfViewTitle", + customActionNameKey: ["settings.title"], + customActionHandler: [() => t(DX(jY.PROFILE))] + }, Yf.MEDIUM)); + break } - _position() { + } + return t(n) + })); + const Cne = "SET_NOISY_AUDIO_INPUT_NOTIFICATION_UID"; + + function Ane(e) { + return { + type: Cne, + uid: e + } + } + const Tne = "NOISY_AUDIO_INPUT_SOUND"; qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case Va: + e.dispatch(Oi(Tne, "noisyAudioInput.mp3")); + break; + case Wa: + e.dispatch(Ri(Tne)); + break; + case HF: { const { - _participant: e, - offsetTarget: t - } = this.props; - if (e && this._containerRef.current && (null == t ? void 0 : t.offsetParent) && t.offsetParent instanceof HTMLElement) { + dispatch: t, + getState: a + } = e, { + conference: r + } = n; + r.on(ht.TRACK_MUTE_CHANGED, (e => { const { - current: e - } = this._containerRef, { - offsetTop: n, - offsetParent: { - offsetHeight: a, - scrollTop: r + noisyAudioInputNotificationUid: n + } = a()["features/noise-detection"]; + n && e.isAudioTrack() && e.isLocal() && e.isMuted() && (t(Xf(n)), t(Ane())) + })), r.on(ht.NOISY_MIC, (async () => { + const e = await t(tg({ + titleKey: "toolbar.noisyAudioInputTitle", + descriptionKey: "toolbar.noisyAudioInputDesc" + }, Yf.MEDIUM)); + t(Ii(Tne)), e && t(Ane(e.uid)) + })); + break + } + } + return a + })); class Dne extends x.Component { + render() { + const { + t: e + } = this.props; + return C().createElement("div", null, e("notify.oldElectronClientDescription1"), C().createElement("a", { + href: "https://github.com/jitsi/jitsi-meet-electron/releases/latest", + rel: "noopener noreferrer", + target: "_blank" + }, e("notify.oldElectronClientDescription2")), e("notify.oldElectronClientDescription3")) + } + } + const Pne = Ei(Dne); qe.register((e => t => n => n.type === Va ? function(e, t, n) { + if (function() { + if (!dt.isElectron()) return !1; + const e = navigator.userAgent.match(/(JitsiMeet)\s*\/\s*((\d+)\.[^\s]*)/); + if (!Array.isArray(e) || e.length < 3) return !1; + const t = Number(e[3]); + return !(isNaN(t) || t >= 2) + }()) { + const { + dispatch: t + } = e; + t(eg({ + titleKey: "notify.OldElectronAPPTitle", + description: C().createElement(Pne, null) + }, Yf.LONG)) + } + return t(n) + }(e, t, n) : t(n))), qe.register((e => t => n => { + const a = t(n), + { + dispatch: r, + getState: i + } = e; + switch (n.type) { + case HF: { + const e = new wee({ + backend: new vee({ + postisOptions: { + scope: "jitsi-power-monitor" } - } = t, i = (e => { - const t = getComputedStyle(e); - return e.offsetHeight + Am(t, "margin-top") + Am(t, "margin-bottom") - })(e); - e.style.top = n + i > a + r ? n - i : n, this.setState({ - isHidden: !1 }) - } else this.setState({ - isHidden: !0 - }) + }); + e.on("event", (e => !(!e || "power-monitor" !== e.name || "suspend" !== e.event || (r(Tee()), 0)))), r(Dee(e)); + break } - _onVolumeChange(e) { + case VF: { const { - _participant: t, - dispatch: n - } = this.props, { - id: a - } = t; - n(JJ(a, e)) + transport: e + } = i()["features/power-monitor"]; + e && e.dispose(), r(Dee()); + break + } + case Cee: + r(gh()), APP.conference.onSuspendDetected(), APP.API.notifySuspendDetected() + } + return a + })), qe.register((e => t => async n => { + switch (n.type) { + case lf: + kH(e.getState()) && e.dispatch(hn({ + startWithAudioMuted: Boolean(n.muted) + })); + break; + case pf: + kH(e.getState()) && e.dispatch(hn({ + startWithVideoMuted: Boolean(n.muted) + })); + break; + case up: + case hp: { + const t = e.getState(); + if (kH(t)) { + const { + track: { + jitsiTrack: a + } + } = n, { + deviceStatusType: r, + deviceStatusText: i + } = t["features/prejoin"]; + if (!a.isAudioTrack()) break; + a.isReceivingData() ? "warning" === r && "prejoin.audioDeviceProblem" === i && e.dispatch({ + type: XU, + value: { + deviceStatusText: "prejoin.lookGood", + deviceStatusType: "ok" + } + }) : "ok" === r && e.dispatch(OH("prejoin.audioDeviceProblem")) + } + break } - _onAskToUnmute() { + case UF: + e.dispatch(jH(!1)); + break; + case HF: + return function(e, t, n) { + let { + dispatch: a + } = e; + return a(jH(!1)), t(n) + }(e, t, n) + } + return t(n) + })), tt.register((e => { + const { + participantId: t + } = e["features/large-video"], { + controller: n + } = e["features/remote-control"], { + controlled: a + } = n; + if (a) return a === t + }), ((e, t) => { + let { + dispatch: n + } = t; + !0 === e ? n(g5()) : !1 === e && n(b5()) + })), qe.register((e => t => async n => { + switch (n.type) { + case Va: { const { - _participant: e, dispatch: t - } = this.props, { - id: n } = e; - t(Wm(n)) - } - componentDidMount() { - this._position() - } - componentDidUpdate(e) { - e.offsetTarget === this.props.offsetTarget && e._participant === this.props._participant || this._position() + t(d5(new wee({ + backend: new vee({ + postisOptions: { + scope: "jitsi-remote-control" + } + }) + }))); + break } - render() { + case Wa: { const { - _isAudioForceMuted: e, - _isLocalModerator: t, - _isChatButtonEnabled: n, - _isParticipantModerator: a, - _isParticipantVideoMuted: r, - _isParticipantAudioMuted: i, - _isVideoForceMuted: o, - _localVideoOwner: s, - _participant: l, - _volume: c = 1, - classes: u, - closeDrawer: d, - drawerParticipant: p, - onEnter: h, - onLeave: m, - onSelect: f, - overflowDrawer: g, - muteAudio: b, - t: y - } = this.props; - if (!l) return null; - const v = !Ea() && g && "number" == typeof c && !isNaN(c), - k = (null == l ? void 0 : l.isFakeParticipant) ? x().createElement(x().Fragment, null, s && x().createElement($ae, { - onClick: this._onStopSharedVideo - }, x().createElement(Kae, { - src: vp - }), x().createElement("span", null, y("toolbar.stopSharedVideo")))) : x().createElement(x().Fragment, null, t && x().createElement(Jae, null, x().createElement(x().Fragment, null, g && (e || o) && x().createElement($ae, { - onClick: this._onAskToUnmute - }, x().createElement(Kae, { - src: Uu - }), x().createElement("span", null, y(e ? "participantsPane.actions.askUnmute" : "participantsPane.actions.allowVideo"))), !i && g && x().createElement($ae, { - onClick: b(l) - }, x().createElement(Kae, { - src: Fu - }), x().createElement("span", null, y("dialog.muteParticipantButton"))), x().createElement($ae, { - onClick: this._onMuteEveryoneElse - }, x().createElement(Kae, { - src: sd - }), x().createElement("span", null, y("toolbar.accessibilityLabel.muteEveryoneElse")))), r || x().createElement($ae, { - onClick: this._onMuteVideo - }, x().createElement(Kae, { - src: Rp - }), x().createElement("span", null, y("participantsPane.actions.stopVideo")))), x().createElement(Jae, null, t && x().createElement(x().Fragment, null, !a && x().createElement($ae, { - onClick: this._onGrantModerator - }, x().createElement(Kae, { - src: pc - }), x().createElement("span", null, y("toolbar.accessibilityLabel.grantModerator"))), x().createElement($ae, { - onClick: this._onKick - }, x().createElement(Kae, { - src: Wl - }), x().createElement("span", null, y("videothumbnail.kick")))), n && x().createElement($ae, { - onClick: this._onSendPrivateMessage - }, x().createElement(Kae, { - src: Cu - }), x().createElement("span", null, y("toolbar.accessibilityLabel.privateMessage")))), v && x().createElement(Jae, null, x().createElement(l2, { - initialValue: c, - key: "volume-slider", - onChange: this._onVolumeChange - }))); - return x().createElement(x().Fragment, null, !g && x().createElement(Gae, { - className: Uae, - innerRef: this._containerRef, - isHidden: this.state.isHidden, - onClick: f, - onMouseEnter: h, - onMouseLeave: m - }, k), x().createElement(k7, null, x().createElement(y7, { - isOpen: p && g, - onClose: d - }, x().createElement("div", { - className: u && u.drawer - }, x().createElement(Jae, null, x().createElement($ae, null, x().createElement(ZG, { - participantId: p && p.participantID, - size: 20 - }), x().createElement("span", null, p && p.displayName))), k)))) - } - } - const Rre = LW((e => ({ - drawer: { - "& > div": Ire({}, Os(e.typography.bodyShortRegularLarge), { - lineHeight: "32px", - "& svg": { - fill: e.palette.icon01 - } - }), - "&:first-child": { - marginTop: 15 - } - } - })))(Li(ze((function(e, t) { - var n; - const { - participantID: a, - overflowDrawer: r, - drawerParticipant: i - } = t, { - ownerId: o - } = e["features/shared-video"], s = Rh(e).id, l = qh(e, r ? null == i ? void 0 : i.participantID : a), c = Jh(e), u = Xn("chat", e), d = Ho(l, e), p = Uo(l, e), h = Gh(l), { - participantsVolume: m - } = e["features/filmstrip"], f = null == l ? void 0 : l.id, g = null === (n = null == l ? void 0 : l.local) || void 0 === n || n; - return { - _isAudioForceMuted: Cm(l, Xi, e), - _isLocalModerator: c, - _isChatButtonEnabled: u, - _isParticipantModerator: h, - _isParticipantVideoMuted: d, - _isParticipantAudioMuted: p, - _isVideoForceMuted: Cm(l, to, e), - _localVideoOwner: Boolean(o === s), - _participant: l, - _volume: g ? void 0 : f ? m[f] : void 0 - } - }))(zre))); - - function Lre({ - askUnmuteText: e, - participantID: t - }) { - const n = Ce(), - a = (0, E.useCallback)((() => { - n(Wm(t)) - }), [n, t]); - return x().createElement(Wae, { - "aria-label": `unmute-${t}`, - onClick: a, - primary: !0, - theme: { - panePadding: 16 - } - }, e) - } - - function Fre({ - askUnmuteText: e, - buttonType: t, - muteAudio: n, - muteParticipantButtonText: a, - participantID: r - }) { - switch (t) { - case km: - return x().createElement(Wae, { - "aria-label": `mute-${r}`, - onClick: n(r), - primary: !0 - }, a); - case _m: - return x().createElement(Lre, { - askUnmuteText: e, - participantID: r - }); - default: - return null + getState: t, + dispatch: n + } = e, { + transport: a + } = t()["features/remote-control"].receiver; + a && (a.dispose(), n(d5())); + break } - } - const qre = Li(ze((function(e, t) { - const { - participantID: n - } = t, { - ownerId: a - } = e["features/shared-video"], r = Rh(e).id, i = qh(e, n), o = Uo(i, e), s = Ho(i, e), l = function(e, t, n) { - const a = Kh(n); - return t ? Cm(e, Xi, n) ? bm : gm : e === a ? fm : ym - }(i, o, e), c = function(e, t, n) { - return t ? Cm(e, to, n) ? bm : gm : ym - }(i, s, e), u = function(e, t, n) { - if (Jh(n)) { - if (!t) return km; - if ((e => { + case HF: { + const a = t(n), + { + getState: r + } = e, + { + transport: i + } = r()["features/remote-control"].receiver; + return i && i.on("event", (t => t.name === U3 && (function(e, t) { + let { + getState: n, + dispatch: a + } = t; + switch (e.type) { + case "supported": + X3.log("Remote Control supported."), e5(n()) ? a(((e, t) => { + const n = t(), + { + enabled: a + } = n["features/remote-control"].receiver; + if (a) return; const { - conference: t - } = e["features/base/conference"]; - return !!t && t.isAVModerationSupported() - })(n)) return _m - } - return "None" - }(0, o, e), d = e["features/base/tracks"], p = n === r ? Wo(d) : Qo(d, Xi, n), { - disableModeratorIndicator: h - } = e["features/base/config"]; - return { - _audioMediaState: l, - _audioTrack: p, - _disableModeratorIndicator: h, - _displayName: Hh(e, null == i ? void 0 : i.id), - _local: Boolean(null == i ? void 0 : i.local), - _localVideoOwner: Boolean(a === r), - _participant: i, - _participantID: null == i ? void 0 : i.id, - _quickActionButtonType: u, - _raisedHand: Boolean(null == i ? void 0 : i.raisedHand), - _videoMediaState: c - } - }))((function({ - _audioMediaState: e, - _audioTrack: t, - _disableModeratorIndicator: n, - _displayName: a, - _local: r, - _localVideoOwner: i, - _participant: o, - _participantID: s, - _quickActionButtonType: l, - _raisedHand: c, - _videoMediaState: u, - askUnmuteText: d, - isHighlighted: p, - muteAudio: h, - muteParticipantButtonText: m, - onContextMenu: f, - onLeave: g, - openDrawerForParticipant: b, - overflowDrawer: y, - participantActionEllipsisLabel: v, - t: k, - youText: _ - }) { - const [w, S] = (0, E.useState)(!1), [C, A] = (0, E.useState)(!1), j = (0, E.useCallback)((e => { - const t = "number" != typeof e || isNaN(e) ? 0 : e; - S(t > .009) - }), []); - (0, E.useEffect)((() => { - if (t && !C) { - const { - jitsiTrack: e - } = t; - e && (e.on(At.TRACK_AUDIO_LEVEL_CHANGED, j), A(!0)) + connection: r + } = n["features/base/connection"], { + conference: i + } = n["features/base/conference"]; + r && i ? (e({ + type: R3, + enabled: !0 + }), r.addFeature(H3, !0), o5 = (t, n) => { + e(function(e, t) { + return (n, a) => { + const { + action: r, + name: i, + type: o + } = t; + if (i !== U3) return; + const s = a(), + { + receiver: l + } = s["features/remote-control"], + { + enabled: c, + transport: u + } = l; + if (c) { + const { + controller: a + } = l; + a || o !== V3 || r !== Y3 ? a === e && (o === W3 ? n(p5(!1, !0)) : u.sendEvent(t)) : (n(l5(!0)), n(function(e) { + return VI(B3, { + participantId: e + }) + }(e))) + } else X3.log("Remote control message is ignored because remote control is disabled", t) + } + }(t.getId(), n)) + }, i.on(ht.ENDPOINT_MESSAGE_RECEIVED, o5)) : X3.error("Couldn't enable the remote receiver! The connection or conference instance is undefined!") + })) : X3.log("Remote Control disabled."); + break; + case W3: + a(p5()) } - return () => { - if (t && C) { - const { - jitsiTrack: e - } = t; - e && e.off(At.TRACK_AUDIO_LEVEL_CHANGED, j) - } - } - }), [t]); - const P = e === ym && w ? fm : e; - let D = d; - return e !== bm && u === bm && (D = k("participantsPane.actions.allowVideo")), x().createElement(Sre, { - actionsTrigger: hm, - audioMediaState: P, - disableModeratorIndicator: n, - displayName: a, - isHighlighted: p, - isModerator: Gh(o), - local: r, - onLeave: g, - openDrawerForParticipant: b, - overflowDrawer: y, - participantID: s, - raisedHand: c, - videoMediaState: u, - youText: _ - }, !y && !(null == o ? void 0 : o.isFakeParticipant) && x().createElement(x().Fragment, null, x().createElement(Fre, { - askUnmuteText: D, - buttonType: l, - muteAudio: h, - muteParticipantButtonText: m, - participantID: s - }), x().createElement(ire, { - "aria-label": v, - onClick: f - })), !y && i && (null == o ? void 0 : o.isFakeParticipant) && x().createElement(ire, { - "aria-label": v, - onClick: f - })) - }))), - Bre = x().memo((function({ - askUnmuteText: e, - lowerMenu: t, - toggleMenu: n, - muteAudio: a, - muteParticipantButtonText: r, - participantIds: i, - openDrawerForParticipant: o, - overflowDrawer: s, - raiseContextId: l, - participantActionEllipsisLabel: c, - youText: u - }) { - return i.map((i => x().createElement(qre, { - askUnmuteText: e, - isHighlighted: l === i, - key: i, - muteAudio: a, - muteParticipantButtonText: r, - onContextMenu: n(i), - onLeave: t, - openDrawerForParticipant: o, - overflowDrawer: s, - participantActionEllipsisLabel: c, - participantID: i, - youText: u - }))) - })); - - function Ure() { - return Ure = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, Ure.apply(this, arguments) - } - const Hre = Object.freeze(Object.create(null)), - Vre = ze((function(e) { - return { - sortedParticipantIds: Pm(e), - participantsCount: Uh(e), - showInviteButton: (e => { - const { - disableInviteFunctions: t - } = qe(e)["features/base/config"]; - return Df(e, Va, !0) && !t - })(e) && Xn("invite", e), - overflowDrawer: EH(e) - } - }))((function({ - participantsCount: e, - showInviteButton: t, - overflowDrawer: n, - sortedParticipantIds: a = [] - }) { - const r = Ce(), - i = (0, E.useRef)(!1), - [o, s] = (0, E.useState)(Hre), - { - t: l - } = mr(), - c = (0, E.useCallback)((() => { - window.queueMicrotask((() => { - i.current || o !== Hre && s(Hre) - })) - }), [o]), - u = (0, E.useCallback)(((e, t) => { - s({ - participantID: e, - offsetTarget: xm(t, dre) - }) - }), [o]), - d = (0, E.useCallback)((e => t => { - const { - participantID: n - } = o; - n && n === e ? c() : u(e, t.target) - }), [o]), - p = (0, E.useCallback)((() => { - i.current = !0 - }), []), - h = (0, E.useCallback)((() => { - i.current = !1, c() - }), [c]), - m = (0, E.useCallback)((e => () => { - r(UQ(e, Xi)), r(Ym(e)) - }), [r]), - [f, g, b] = kre(), - y = l("MeetingParticipantItem.ParticipantActionEllipsis.options"), - v = l("chat.you"), - k = l("participantsPane.actions.askUnmute"), - _ = l("dialog.muteParticipantButton"); - return x().createElement(x().Fragment, null, x().createElement(are, null, l("participantsPane.headings.participantsList", { - count: e - })), t && x().createElement(yre, null), x().createElement("div", null, x().createElement(Bre, { - askUnmuteText: k, - lowerMenu: c, - muteAudio: m, - muteParticipantButtonText: _, - openDrawerForParticipant: b, - overflowDrawer: n, - participantActionEllipsisLabel: y, - participantIds: a, - participantsCount: e, - raiseContextId: o.participantID, - toggleMenu: d, - youText: v - })), x().createElement(Rre, Ure({ - closeDrawer: g, - drawerParticipant: f, - muteAudio: m, - onEnter: p, - onLeave: h, - onSelect: c, - overflowDrawer: n - }, o))) - })); - class Wre extends E.Component { - constructor(e) { - super(e), this.state = { - contextOpen: !1 - }, this._onClosePane = this._onClosePane.bind(this), this._onDrawerClose = this._onDrawerClose.bind(this), this._onKeyPress = this._onKeyPress.bind(this), this._onMuteAll = this._onMuteAll.bind(this), this._onToggleContext = this._onToggleContext.bind(this), this._onWindowClickListener = this._onWindowClickListener.bind(this) - } - componentDidMount() { - window.addEventListener("click", this._onWindowClickListener) - } - componentWillUnmount() { - window.removeEventListener("click", this._onWindowClickListener) + }(t, e), !0))), a } - render() { + case Uw: { const { - _overflowDrawer: e, - _paneOpen: t, - _showFooter: n, - t: a - } = this.props, { - contextOpen: r - } = this.state; - return t ? x().createElement(Ug.ThemeProvider, { - theme: cX - }, x().createElement("div", { - className: Em("participants_pane", !t && "participants_pane--closed") - }, x().createElement("div", { - className: "participants_pane-content" - }, x().createElement(nre, null, x().createElement(Zae, { - "aria-label": a("participantsPane.close", "Close"), - onClick: this._onClosePane, - onKeyPress: this._onKeyPress, - role: "button", - tabIndex: 0 - })), x().createElement(Yae, null, x().createElement(Mre, null), x().createElement(Hae, null), x().createElement(Vre, null)), n && x().createElement(Qae, null, x().createElement(Xae, { - onClick: this._onMuteAll - }, a("participantsPane.actions.muteAll")), x().createElement(tre, null, x().createElement(ere, { - id: "participants-pane-context-menu", - onClick: this._onToggleContext - }), this.state.contextOpen && !e && x().createElement(jre, { - onMouseLeave: this._onToggleContext - })))), x().createElement(k7, null, x().createElement(y7, { - isOpen: r && e, - onClose: this._onDrawerClose - }, x().createElement(jre, { - inDrawer: !0 - }))))) : null - } - _onClosePane() { - this.props.dispatch(K6()) - } - _onDrawerClose() { - this.setState({ - contextOpen: !1 - }) - } - _onKeyPress(e) { - " " !== e.key && "Enter" !== e.key || (e.preventDefault(), this._onClosePane()) - } - _onMuteAll() { - this.props.dispatch(sP(z1)) - } - _onToggleContext() { - this.setState({ - contextOpen: !this.state.contextOpen - }) - } - _onWindowClickListener(e) { - this.state.contextOpen && !xm(e.target, tre) && this.setState({ - contextOpen: !1 - }) + getState: t, + dispatch: a + } = e, r = t(), { + id: i + } = n.participant, { + receiver: o, + controller: s + } = r["features/remote-control"], { + requestedParticipant: l, + controlled: c + } = s; + i === c && a(c5()), i === l && (a(u5()), a(l5(!1))), (null == o ? void 0 : o.controller) === i && a(p5(!1, !0)); + break } } - const Yre = Li(ze((function(e) { - const t = jm(e); - return { - _overflowDrawer: EH(e), - _paneOpen: t, - _showFooter: t && Jh(e) - } - }))(Wre)); + return t(n) + })); + const jne = $e("features/screen-share"); - function Gre(e) { - const t = qe(e), - n = Boolean(VN(t)), - { - calleeInfoVisible: a - } = t["features/invite"]; - return jv(t) && !n && !a - } - class Kre extends E.Component { - renderNotificationsContainer(e) { - return this.props._notificationsVisible ? x().createElement(Iv, e) : null - } - } - class $re extends E.Component { - render() { - return this.props._showLabel ? x().createElement(Fw, { - content: this.props.t("transcribing.labelToolTip"), - position: "left" - }, x().createElement(qW, { - className: "recording-label", - text: this.props.t("transcribing.tr") - })) : null - } + function Mne(e, t) { + const n = e.getState(), + { + conference: a + } = n["features/base/conference"], + { + captureFrameRate: r + } = n["features/screen-share"], + i = null != t ? t : r; + a && i && (jne.debug(`Setting screenshare capture frame rate as ${i}`), a.setDesktopSharingFrameRate(i)) + } + + function Ine(e) { + return { + type: m6, + disabled: e } - const Jre = Li(ze((function(e) { - return { - _showLabel: e["features/transcribing"].isTranscribing - } - }))($re)); - class Zre extends E.Component { - constructor(e) { - super(e), this.state = { - timerValue: Ri(0) - } - } - componentDidMount() { - this._startTimer() - } - componentWillUnmount() { - this._stopTimer() + } + + function One(e) { + let { + id: t, + status: n, + conference: a, + localParticipantId: r, + time: i, + muted: o, + volume: s + } = e; + a.sendCommandOnce(US, { + value: t, + attributes: { + from: r, + muted: o, + state: n, + time: i, + volume: s } - render() { + }) + } + qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case HF: + Mne(e); + break; + case sY: { const { - timerValue: e - } = this.state, { - _startTimestamp: t, - textStyle: n - } = this.props; - return t ? function(e, t) { - return x().createElement("span", { - className: "subject-timer" - }, e) - }(e) : null - } - _setStateFromUTC(e, t) { - if (!e || !t) return; - if (t < e) return; - const n = Ri(t - e); - this.setState({ - timerValue: n - }) - } - _startTimer() { - this._interval || (this._setStateFromUTC(this.props._startTimestamp, (new Date).getTime()), this._interval = setInterval((() => { - this._setStateFromUTC(this.props._startTimestamp, (new Date).getTime()) - }), 1e3)) + captureFrameRate: t + } = n; + Mne(e, t); + break } - _stopTimer() { - this._interval && clearInterval(this._interval), this.setState({ - timerValue: Ri(0) + } + return a + })), qe.register((e => t => n => { + var a; + const { + dispatch: r, + getState: i + } = e, o = i(), s = vF(o), l = null === (a = Uh(o)) || void 0 === a ? void 0 : a.id, { + videoUrl: c, + status: u, + ownerId: d, + time: p, + muted: h, + volume: m + } = n, { + ownerId: f, + videoUrl: g + } = o["features/shared-video"]; + switch (n.type) { + case VF: + r(f6()); + break; + case Uw: + n.participant.id === f && (0, Me.unstable_batchedUpdates)((() => { + r(f6()), r(rS(g, s)) + })); + break; + case p6: + l === d && One({ + conference: s, + localParticipantId: l, + muted: h, + status: u, + time: p, + id: c, + volume: m + }); + break; + case h6: + l === f && One({ + conference: s, + id: g, + localParticipantId: l, + muted: !0, + status: "stop", + time: 0, + volume: 0 }) - } } - const Qre = ze((function(e) { - return { - _startTimestamp: bI(e) - } - }))(Zre), - Xre = { - alwaysVisible: ["recording", "local-recording"], - autoHide: ["subject", "conference-timer", "participants-count", "e2ee", "transcribing", "video-quality", "insecure-room"] - }, - eie = e => { - const { - conferenceInfo: t - } = e["features/base/config"]; - var n, a; - return t ? { - alwaysVisible: null !== (n = t.alwaysVisible) && void 0 !== n ? n : Xre.alwaysVisible, - autoHide: null !== (a = t.autoHide) && void 0 !== a ? a : Xre.autoHide - } : Xre - }, - tie = ({ - visible: e, - children: t - }) => x().createElement("div", { - className: "subject" + (e ? " visible" : "") - }, x().createElement("div", { - className: "subject-info-container" - }, t)); - var nie = n(7541), - aie = n.n(nie); - - function rie(e = "") { - return aie()(e).score < 3 - } - class iie extends E.PureComponent { - render() { - return this.props._visible ? this._render() : null - } - } - const oie = Li(ze((function(e) { + return t(n) + })), tt.register((e => vF(e)), ((e, t, n) => { + e && e !== n && e.addCommandListener(US, (n => { + let { + value: a, + attributes: r + } = n; const { - locked: t, - room: n - } = e["features/base/conference"], { - lobbyEnabled: a - } = e["features/lobby"], { - enableInsecureRoomNameWarning: r = !1 - } = e["features/base/config"]; - return { - _visible: r && n && rie(n) && !(a || Boolean(t)) - } - }))(class extends iie { - _render() { - return x().createElement(Lw, { - content: this.props.t("security.insecureRoomNameWarning"), - position: "bottom" - }, x().createElement(qW, { - className: "label--red", - icon: ch - })) - } - })); - class sie extends E.PureComponent { - constructor(e) { - super(e), this._onClick = this._onClick.bind(this) - } - _onClick() { + dispatch: i, + getState: o + } = t, { + from: s + } = r, l = Uh(o()).id, c = r.state; + VS(c) ? function(e, t, n, a) { + var r; + let { + state: i, + time: o, + from: s, + muted: l + } = n; const { - dispatch: e, - conference: t - } = this.props; - e(sP($Z, { - conference: t + dispatch: c, + getState: u + } = e, d = Uh(u()).id, p = null === (r = u()["features/shared-video"]) || void 0 === r ? void 0 : r.status; + if ("start" === i || !["playing", "pause", "start"].includes(p)) { + const e = !t.match(/http/) && t; + c(nS({ + conference: a, + id: t, + isFakeParticipant: !0, + avatarURL: e ? `https://img.youtube.com/vi/${e}/0.jpg` : "", + name: BS + })), c(uS(t)) + } + d !== s && c(g6({ + muted: "true" === l, + ownerId: s, + status: i, + time: Number(o), + videoUrl: t })) - } - render() { - const { - count: e - } = this.props; - return e <= 2 ? null : x().createElement("div", { - className: "participants-count", - onClick: this._onClick - }, x().createElement(qW, { - className: "label--white", - icon: Jp, - text: e + }(t, a, r, e) : "stop" === c && (i(rS(a, e)), l !== s && i(f6())) + })) + })), tt.register((e => vF(e)), ((e, t, n) => { + e && e !== n && e.addCommandListener(US, (e => { + let { + attributes: n + } = e; + const { + dispatch: a, + getState: r + } = t, { + from: i + } = n, o = Uh(r()).id, s = n.state; + "playing" === s ? o !== i && a(Ine(!0)) : "stop" === s && a(Ine(!1)) + })) + })); + const Nne = "SET_CURRENT_NOTIFICATION_UID"; + + function Rne(e) { + return { + type: Nne, + uid: e + } + } + const zne = "TALK_WHILE_MUTED_SOUND"; qe.register((e => t => n => { + const a = t(n), + { + dispatch: r, + getState: i + } = e, + { + conference: o + } = n; + switch (n.type) { + case Va: + r(Oi(zne, "talkWhileMuted.mp3")); + break; + case Wa: + r(Ri(zne)); + break; + case HF: + o.on(ht.TRACK_MUTE_CHANGED, (e => { + const { + currentNotificationUid: t + } = i()["features/talk-while-muted"]; + t && e.isAudioTrack() && e.isLocal() && !e.isMuted() && (r(Xf(t)), r(Rne())) + })), o.on(ht.TALK_WHILE_MUTED, (async () => { + const e = i(), + t = Uh(e); + if (!pI(e)) { + const n = Mm(t, Fi, e), + a = await r(tg({ + titleKey: "toolbar.talkWhileMutedPopup", + customActionNameKey: [n ? "notify.raiseHandAction" : "notify.unmute"], + customActionHandler: [() => r(n ? dS(!0) : gf(!1))] + }, Yf.LONG)), + { + soundsTalkWhileMuted: o + } = i()["features/base/settings"]; + o && r(Ii(zne)), a && r(Rne(a.uid)) + } })) - } } - const lie = ze((function(e) { - return { - conference: e["features/base/conference"].conference, - count: Bh(e) - } - }))(sie), - cie = [{ - Component: ze((function(e) { - return { - _subject: fI(e) - } - }))((({ - _subject: e - }) => x().createElement("div", { - className: "subject-text" - }, x().createElement(Fw, { - content: e, - position: "bottom" - }, x().createElement("div", { - className: "subject-text--content" - }, e))))), - id: "subject" - }, { - Component: Qre, - id: "conference-timer" - }, { - Component: lie, - id: "participants-count" - }, { - Component: L4, - id: "e2ee" - }, { - Component: () => x().createElement(x().Fragment, null, x().createElement(UW, { - mode: Et.mode.FILE - }), x().createElement(UW, { - mode: Et.mode.STREAM - })), - id: "recording" - }, { - Component: W6, - id: "local-recording" - }, { - Component: Jre, - id: "transcribing" - }, { - Component: J8, - id: "video-quality" - }, { - Component: oie, - id: "insecure-room" - }]; - class uie extends E.Component { - constructor(e) { - super(e), this._renderAutoHide = this._renderAutoHide.bind(this), this._renderAlwaysVisible = this._renderAlwaysVisible.bind(this) - } - _renderAutoHide() { - const { - autoHide: e - } = this.props._conferenceInfo; - return e && e.length ? x().createElement(tie, { - visible: this.props._visible - }, cie.filter((t => e.includes(t.id))).map((e => x().createElement(e.Component, { - key: e.id - })))) : null - } - _renderAlwaysVisible() { - const { - alwaysVisible: e - } = this.props._conferenceInfo; - return e && e.length ? x().createElement(tie, { - visible: !0 - }, cie.filter((t => e.includes(t.id))).map((e => x().createElement(e.Component, { - key: e.id - })))) : null - } - render() { - return x().createElement("div", { - className: "details-container" - }, this._renderAlwaysVisible(), this._renderAutoHide()) - } + return a + })), qe.register((e => t => n => { + const { + dispatch: a, + getState: r + } = e, i = r()["features/virtual-background"].virtualSource, o = nh(r()["features/base/tracks"]); + return (null == i ? void 0 : i.videoType) === Yi && n.type === kp && Ap(a, i, null == o ? void 0 : o.jitsiTrack), t(n) + })); + const Lne = "ADD_FACIAL_EXPRESSION", Fne = "SET_DETECTION_TIME_INTERVAL", qne = "START_FACIAL_RECOGNITION", Bne = "STOP_FACIAL_RECOGNITION"; n(8291); + const Une = $e("features/facial-recognition"); async function Hne(e, t) { + if (null == t) return; + let n; + try { + n = await t.grabFrame() + } catch (e) { + return void Une.warn(e) + } + const a = document.createElement("canvas"), + r = a.getContext("2d"); + a.width = n.width, a.height = n.height, r.drawImage(n, 0, 0); + const i = r.getImageData(0, 0, n.width, n.height); + e.postMessage({ + id: "SET_TIMEOUT", + imageData: i + }) + } + let Vne, Wne, Yne, Gne = 0; + + function Kne() { + return async function(e, t) { + if (null == Wne) return; + const n = t(), + { + recognitionActive: a + } = n["features/facial-recognition"]; + if (a) return; + const r = nh(n["features/base/tracks"]); + if (void 0 === r) return; + const i = r.jitsiTrack.getOriginalStream(); + if (null === i) return; + e({ + type: qne + }), Une.log("Start face recognition"); + const o = i.getVideoTracks()[0]; + Vne = new ImageCapture(o), Hne(Wne, Vne) } - const die = ze((function(e) { - return { - _visible: kH(e), - _conferenceInfo: eie(e) - } - }))(uie); - class pie extends E.Component { - render() { - return this.props._message ? x().createElement("div", { - className: "notice" - }, x().createElement("span", { - className: "notice__message" - }, this.props._message)) : null - } + } + + function $ne() { + return function(e, t) { + const n = t(), + { + recognitionActive: a + } = n["features/facial-recognition"]; + a ? (Vne = null, Wne.postMessage({ + id: "CLEAR_TIMEOUT" + }), Yne && e(Zne(Yne, Gne + 1)), Gne = 0, e({ + type: Bne + }), Une.log("Stop face recognition")) : Vne = null } - const hie = Li(ze((function(e) { - const { - noticeMessage: t - } = e["features/base/config"]; - return { - _message: t - } - }))(pie)); + } - function mie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Jne(e) { + const { + jitsiTrack: t + } = e, n = t.getOriginalStream().getVideoTracks()[0]; + Vne = new ImageCapture(n) + } + + function Zne(e, t) { + return function(n, a) { + const { + detectionTimeInterval: r + } = a()["features/facial-recognition"]; + let i = t; - 1 !== r && (i *= r / 1e3), n({ + type: Lne, + facialExpression: e, + duration: i + }) } - const fie = ["webkitfullscreenchange", "mozfullscreenchange", "fullscreenchange"], - gie = { - [Ck]: "horizontal-filmstrip", - [Ak]: "tile-view", - [jk]: "vertical-filmstrip" - }, - bie = ze((function(e) { - const { - backgroundAlpha: t, - mouseMoveCallbackInterval: n - } = e["features/base/config"]; - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - mie(e, t, n[t]) - })) - } - return e - }({}, function(e) { - return { - _notificationsVisible: Gre(e), - _room: e["features/base/conference"].room, - _shouldDisplayTileView: Ok(e) - } - }(e), { - _backgroundAlpha: t, - _isParticipantsPaneVisible: jm(e), - _layoutClassName: gie[Dk(e)], - _mouseMoveCallbackInterval: n, - _roomName: (a = e, xI(Mn(uI(qe(a)).room))), - _showLobby: r8(e), - _showPrejoin: iL(e) || oL(e) + } + qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const { + enableFacialRecognition: r + } = n()["features/base/config"]; + if (!r) return e(a); + if (a.type === HF) return t((function(e) { + if (!window.Worker) return void Une.warn("Browser does not support web workers"); + let t = ""; + const n = document.querySelector('script[src*="app.bundle.min.js"]'); + if (n) { + const e = n.src.lastIndexOf("/"); + t = `${n.src.substring(0,e)}/` + } + let a = `${t}facial-expressions-worker.min.js`; + const r = new Blob([`importScripts("${a}");`], { + type: "application/javascript" }); - var a - }))(Li(class extends Kre { - constructor(e) { - super(e); + a = window.URL.createObjectURL(r), Wne = new Worker(a, { + name: "Facial Expression Worker" + }), Wne.onmessage = function(t) { const { - _mouseMoveCallbackInterval: t - } = e; - this._originalOnShowToolbar = this._onShowToolbar, this._originalOnMouseMove = this._onMouseMove, this._onShowToolbar = k().throttle((() => this._originalOnShowToolbar()), 100, { - leading: !0, - trailing: !1 - }), this._onMouseMove = k().throttle((e => this._originalOnMouseMove(e)), t, { - leading: !0, - trailing: !1 - }), this._onFullScreenChange = this._onFullScreenChange.bind(this), this._setBackground = this._setBackground.bind(this) - } - componentDidMount() { - document.title = `${this.props._roomName} | ${interfaceConfig.APP_NAME}`, this._start() - } - componentDidUpdate(e) { - this.props._shouldDisplayTileView !== e._shouldDisplayTileView && O3.refreshLayout() - } - componentWillUnmount() { - APP.UI.unbindEvents(), fie.forEach((e => document.removeEventListener(e, this._onFullScreenChange))), APP.conference.isJoined() && this.props.dispatch(NI()) - } - render() { + type: n, + value: a + } = t.data; + if ("tf-backend" === n && a) { + let t = -1; + "webgl" === a ? t = 1e3 : "cpu" === a && (t = 6e3), e({ + type: Fne, + time: t + }) + } + if ("facial-expression" === n) { + if (Hne(Wne, Vne), !a) return; + a === Yne ? Gne++ : (Yne && e(Zne(Yne, Gne + 1)), Yne = a, Gne = 0) + } + }, Wne.postMessage({ + id: "SET_MODELS_URL", + url: t + }), e(Kne()) + })), e(a); + if (!vF(n())) return e(a); + switch (a.type) { + case $F: + return t($ne()), e(a); + case gp: { const { - _isParticipantsPaneVisible: e, - _layoutClassName: t, - _showLobby: n, - _showPrejoin: a - } = this.props; - return x().createElement("div", { - id: "layout_wrapper", - onMouseEnter: this._onMouseEnter, - onMouseLeave: this._onMouseLeave, - onMouseMove: this._onMouseMove - }, x().createElement("div", { - className: t, - id: "videoconference_page", - onMouseMove: this._onShowToolbar, - ref: this._setBackground - }, x().createElement(die, null), x().createElement(hie, null), x().createElement("div", { - id: "videospace" - }, x().createElement(b3, null), !e && x().createElement("div", { - id: "notification-participant-list" - }, x().createElement(o8, null)), x().createElement(v2, null)), a || n || x().createElement(N7, { - showDominantSpeakerName: !0 - }), x().createElement(Z5, null), this.renderNotificationsContainer(), x().createElement(OK, null), a && x().createElement(m9, null), n && x().createElement(u8, null)), x().createElement(Yre, null)) - } - _setBackground(e) { - if (e && void 0 !== this.props._backgroundAlpha) { - const t = zt(e.style.background, this.props._backgroundAlpha); - if (e.style.background = t, e.parentElement) { - const t = zt(e.parentElement.style.background, this.props._backgroundAlpha); - e.parentElement.style.background = t - } - } - } - _onFullScreenChange() { - var e; - this.props.dispatch((e = APP.UI.isFullScreen(), { - type: AV, - fullScreen: e - })) - } - _onMouseEnter(e) { - APP.API.notifyMouseEnter(e) - } - _onMouseLeave(e) { - APP.API.notifyMouseLeave(e) - } - _onMouseMove(e) { - APP.API.notifyMouseMove(e) - } - _onShowToolbar() { - this.props.dispatch(BV()) + videoType: n, + type: r + } = a.track.jitsiTrack; + if ("camera" === n) { + const { + muted: e, + videoStarted: n + } = a.track; + !0 === n && t(Kne()), void 0 !== e && (e ? t($ne()) : (t(Kne()), "presenter" === r && Jne(a.track))) + } + return e(a) } - _start() { - APP.UI.start(), APP.UI.registerListeners(), APP.UI.bindEvents(), fie.forEach((e => document.addEventListener(e, this._onFullScreenChange))); + case up: { const { - dispatch: e, - t - } = this.props; - e(II()), - function(e, t) { - !ZV(interfaceConfig.OPTIMAL_BROWSERS || GV) && JV() && e(Gf({ - titleKey: "notify.suboptimalExperienceTitle", - description: Fi(t, "notify.suboptimalBrowserWarning", { - recommendedBrowserPageLink: `${window.location.origin}/static/recommendedBrowsers.html` - }) - })) - }(e, t) + mediaType: n, + videoType: r + } = a.track; + return "presenter" === n && "camera" === r && (t(Kne()), Jne(a.track)), e(a) } - })); - Li(ze((function(e) { - const t = 1 === Bh(e), - n = interfaceConfig.HIDE_INVITE_MORE_HEADER; - return { - _shouldShow: vH("invite", e) && t && !n, - _toolboxVisible: kH(e) - } - }), { - onClick: () => AW() - })((function({ - _shouldShow: e, - _toolboxVisible: t, - onClick: n, - t: a - }) { - const r = (0, E.useCallback)((e => { - !n || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), n()) - }), [n]); - return e ? x().createElement("div", { - className: "invite-more-container" + (t ? "" : " elevated") - }, x().createElement("div", { - className: "invite-more-content" - }, x().createElement("div", { - className: "invite-more-header", - role: "heading" - }, a("addPeople.inviteMoreHeader")), x().createElement("div", { - className: "invite-more-button", - onClick: n, - onKeyPress: r, - role: "button", - tabIndex: 0 - }, x().createElement(qs, { - src: iu - }), x().createElement("div", { - className: "invite-more-button-text" - }, a("addPeople.inviteMorePrompt"))))) : null - }))); - class yie extends E.Component { - render() { - return x().createElement("div", { - className: "unsupported-desktop-browser" - }, x().createElement("h2", { - className: "unsupported-desktop-browser__title" - }, "It looks like you're using a browser we don't support."), x().createElement("p", { - className: "unsupported-desktop-browser__description" - }, "Please try again with the latest version of ", x().createElement("a", { - className: "unsupported-desktop-browser__link", - href: "https://www.google.com/chrome/" - }, "Chrome"), " ", this._showFirefox() && x().createElement(x().Fragment, null, "or ", x().createElement("a", { - className: "unsupported-desktop-browser__link", - href: "https://www.getfirefox.com/" - }, "Firefox")))) - } - _showFirefox() { - return "firefox", (interfaceConfig.OPTIMAL_BROWSERS || GV).includes("firefox") - } - } - const vie = Li(yie), - kie = () => (Pe(Rj), x().createElement(vie, null)), - _ie = void 0, - wie = {}; - class Sie extends Bj { - constructor(e) { - super(e), this._onPress = this._onPress.bind(this) - } - componentDidMount() { - Ma(function(e = {}) { - return { - action: "selected", - actionSubject: "recent.list.selected", - attributes: e, - source: "recent.list", - type: Wt - } - }()) - } - _getRenderListEmptyComponent() { - const { - t: e - } = this.props, t = "meetings-list-empty-description"; - return x().createElement(Ns, { - "aria-describedby": t, - "aria-label": e("welcomepage.recentList"), - className: "meetings-list-empty", - role: "region", - style: wie.emptyListContainer - }, x().createElement(_S, { - className: "description", - id: t, - style: wie.emptyListText - }, e("welcomepage.recentListEmpty"))) - } - _onPress(e) { - const { - dispatch: t - } = this.props; - Ma(function(e, t = {}) { - return { - action: "clicked", - actionSubject: "recent.meeting.tile", - attributes: t, - source: "recent.list", - type: Wt - } - }()), t(KN(e)) - } - } - const Eie = Li(ze((function(e) { - return { - _recentList: e["features/recent-list"] - } - }))(class extends Sie { - constructor(e) { - super(e), this._getRenderListEmptyComponent = this._getRenderListEmptyComponent.bind(this), this._onPress = this._onPress.bind(this), this._onItemDelete = this._onItemDelete.bind(this) - } - _onItemDelete(e) { - this.props.dispatch({ - type: Kne, - entryId: e - }) - } - render() { - if (!Zne()) return null; - const { - disabled: e, - _recentList: t - } = this.props, n = function(e) { - return [...e].reverse().map((e => ({ - date: e.date, - duration: e.duration, - time: [e.date], - title: Mn(Tn(e.conference).room), - url: e.conference - }))) - }(t); - return x().createElement(SS, { - disabled: e, - hideURL: !0, - listEmptyComponent: this._getRenderListEmptyComponent(), - meetings: n, - onItemDelete: this._onItemDelete, - onPress: this._onPress - }) - } - })); - class xie extends E.Component { - static getDerivedStateFromProps(e, t) { - return { - room: e._room || t.room + case mp: { + const { + videoType: n + } = a.track.jitsiTrack; + return ["camera", "desktop"].includes(n) && t($ne()), e(a) } - } - constructor(e) { - super(e), - function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(this, "state", { - animateTimeoutId: void 0, - generatedRoomname: "", - insecureRoomName: !1, - joining: !1, - room: "", - roomPlaceholder: "", - updateTimeoutId: void 0 - }), this._animateRoomnameChanging = this._animateRoomnameChanging.bind(this), this._onJoin = this._onJoin.bind(this), this._onRoomChange = this._onRoomChange.bind(this), this._renderInsecureRoomNameWarning = this._renderInsecureRoomNameWarning.bind(this), this._updateRoomname = this._updateRoomname.bind(this) - } - componentDidMount() { - this._mounted = !0, Ma(fn("viewed", void 0, { - value: 1 - })) - } - componentWillUnmount() { - this._clearTimeouts(), this._mounted = !1 - } - _animateRoomnameChanging(e) { - let t; - const n = this.state.roomPlaceholder + e.substr(0, 1); - e.length > 1 && (t = setTimeout((() => { - this._animateRoomnameChanging(e.substring(1, e.length)) - }), 70)), this.setState({ - animateTimeoutId: t, - roomPlaceholder: n - }) - } - _clearTimeouts() { - clearTimeout(this.state.animateTimeoutId), clearTimeout(this.state.updateTimeoutId) - } - _onJoin() { - const e = this.state.room || this.state.generatedRoomname; - if (Ma(fn("clicked", "joinButton", { - isGenerated: !this.state.room, - room: e - })), e) { - this.setState({ - joining: !0 - }); - const t = () => this._mounted && this.setState({ - joining: !1 - }); - this.props.dispatch(KN(e)).then(t, t) + case _p: + return t((function(e, t) { + const n = t(), + { + jitsiTrack: a + } = nh(n["features/base/tracks"]), + r = a.getOriginalStream().getVideoTracks()[0]; + Vne = new ImageCapture(r) + })), e(a); + case Lne: { + const t = n(), + r = vF(t); + return Yh(t) > 1 && function(e, t, n) { + try { + e.sendEndpointMessage("", { + type: "facial_expression", + facialExpression: t, + duration: n + }) + } catch (e) { + Une.warn("Could not broadcast the facial expression to the other participants", e) + } + }(r, a.facialExpression, a.duration), + function(e, t, n) { + try { + e.sendFacialExpression({ + facialExpression: t, + duration: n + }) + } catch (e) { + Une.warn("Could not send the facial expression to xmpp server", e) + } + }(r, a.facialExpression, a.duration), e(a) } } - _onRoomChange(e) { - this.setState({ - room: e, - insecureRoomName: this.props._enableInsecureRoomNameWarning && e && rie(e) - }) - } - _renderInsecureRoomNameWarning() { - return this.props._enableInsecureRoomNameWarning && this.state.insecureRoomName ? this._doRenderInsecureRoomNameWarning() : null - } - _updateRoomname() { - const e = TN(), - t = setTimeout(this._updateRoomname, 1e4); - this._clearTimeouts(), this.setState({ - generatedRoomname: e, - roomPlaceholder: "", - updateTimeoutId: t - }, (() => this._animateRoomnameChanging(e))) - } - } - class Cie extends E.Component { - constructor(e) { - super(e), this._onSelect = this._onSelect.bind(this) - } - _onSelect() { - const { - index: e, - onSelect: t - } = this.props; - t(e) - } - render() { - const { - index: e, - isSelected: t, - label: n - } = this.props, a = "tab" + (t ? " selected" : ""); - return x().createElement("div", { - className: a, - key: e, - onClick: this._onSelect - }, n) - } + return e(a) } - class Aie extends E.Component { - render() { - const { - onSelect: e, - selected: t, - tabs: n - } = this.props, { - content: a = null - } = n.length ? n[Math.min(t, n.length - 1)] : {}; - return x().createElement("div", { - className: "tab-container" - }, n.length > 1 ? x().createElement("div", { - className: "tab-buttons" - }, n.map(((n, a) => x().createElement(Cie, { - index: a, - isSelected: a === t, - key: a, - label: n.label, - onSelect: e - })))) : null, x().createElement("div", { - className: "tab-content" - }, a)) + })); + const Qne = "SET_NETWORK_INFO", Xne = "STORE_NETWORK_INFO_CLEANUP", eae = "UPDATE_LOCAL_TRACKS_DURATION"; + + function tae(e) { + const t = Date.now(), + { + localTracksDuration: n + } = e["features/analytics"], + { + conference: a + } = e["features/base/conference"], + { + audio: r, + video: i + } = n, + { + camera: o, + desktop: s + } = i, + l = e["features/base/tracks"], + c = Xp(l), + u = nh(l), + d = { + ...n + }; + if (c && !c.muted && a ? -1 === r.startedTime && (d.audio.startedTime = t) : d.audio = { + startedTime: -1, + value: r.value + (-1 === r.startedTime ? 0 : t - r.startedTime) + }, u && !u.muted && a) { + const { + videoType: e + } = u; - 1 === i[e].startedTime && (d.video[e].startedTime = t) + } else d.video = { + camera: { + startedTime: -1, + value: o.value + (-1 === o.startedTime ? 0 : t - o.startedTime) + }, + desktop: { + startedTime: -1, + value: s.value + (-1 === s.startedTime ? 0 : t - s.startedTime) } + }; + return { + ...n, + ...d } + } + let nae; - function jie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - }! function(e, t, n) { - t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n - }(Aie, "defaultProps", { - tabs: [], - selected: 0 - }); - class Pie extends xie { - constructor(e) { - super(e), this.state = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - jie(e, t, n[t]) - })) + function aae(e) { + if (void 0 !== nae) { + const { + disableBeforeUnloadHandlers: t = !1 + } = e()["features/base/config"]; + window.removeEventListener(t ? "unload" : "beforeunload", nae), nae = void 0 + } + } + qe.register((e => t => n => { + switch (n.type) { + case In: + "ReactNative" === navigator.product && ut.reset(); + break; + case oq: { + const a = async function(e) { + let { + getState: t + } = e; + if (Dt().analyticsHandlers = [], window.analyticsHandlers = [], !it(t)) return ut.dispose(), []; + const n = t(), + a = n["features/base/config"], + { + locationURL: r + } = n["features/base/connection"], + i = r ? r.host : "", + { + analytics: o = {}, + deploymentInfo: s + } = a, + { + amplitudeAPPKey: l, + blackListedEvents: u, + scriptURLs: d, + googleAnalyticsTrackingId: p, + matomoEndpoint: h, + matomoSiteID: m, + whiteListedEvents: f + } = o, + { + group: g, + user: b + } = n["features/base/jwt"], + y = { + amplitudeAPPKey: l, + blackListedEvents: u, + envType: s && s.envType || "dev", + googleAnalyticsTrackingId: p, + matomoEndpoint: h, + matomoSiteID: m, + group: g, + host: i, + product: s && s.product, + subproduct: s && s.environment, + user: b && b.id, + version: c.default.version, + whiteListedEvents: f + }, + v = []; + if (l) try { + const e = new Ca(y); + ut.amplitudeIdentityProps = e.getIdentityProps(), v.push(e) + } catch (e) { + wa.error("Failed to initialize Amplitude handler", e) } - return e - }({}, this.state, { - generateRoomnames: interfaceConfig.GENERATE_ROOMNAMES_ON_WELCOME_PAGE, - selectedTab: 0 - }), this._additionalContentRef = null, this._roomInputRef = null, this._additionalToolbarContentRef = null, this._additionalCardRef = null, this._additionalCardTemplate = document.getElementById("welcome-page-additional-card-template"), this._additionalContentTemplate = document.getElementById("welcome-page-additional-content-template"), this._additionalToolbarContentTemplate = document.getElementById("settings-toolbar-additional-content-template"), this._onFormSubmit = this._onFormSubmit.bind(this), this._onRoomChange = this._onRoomChange.bind(this), this._setAdditionalCardRef = this._setAdditionalCardRef.bind(this), this._setAdditionalContentRef = this._setAdditionalContentRef.bind(this), this._setRoomInputRef = this._setRoomInputRef.bind(this), this._setAdditionalToolbarContentRef = this._setAdditionalToolbarContentRef.bind(this), this._onTabSelected = this._onTabSelected.bind(this), this._renderFooter = this._renderFooter.bind(this) - } - componentDidMount() { - super.componentDidMount(), document.body.classList.add("welcome-page"), document.title = interfaceConfig.APP_NAME, this.state.generateRoomnames && this._updateRoomname(), this._shouldShowAdditionalContent() && this._additionalContentRef.appendChild(this._additionalContentTemplate.content.cloneNode(!0)), this._shouldShowAdditionalToolbarContent() && this._additionalToolbarContentRef.appendChild(this._additionalToolbarContentTemplate.content.cloneNode(!0)), this._shouldShowAdditionalCard() && this._additionalCardRef.appendChild(this._additionalCardTemplate.content.cloneNode(!0)) - } - componentWillUnmount() { - super.componentWillUnmount(), document.body.classList.remove("welcome-page") + if (h && m) try { + const e = new Aa(y); + v.push(e) + } catch (e) { + wa.error("Failed to initialize Matomo handler", e) + } + if (Array.isArray(d) && d.length > 0) { + let e; + try { + e = await + function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + t = arguments.length > 1 ? arguments[1] : void 0; + const n = []; + for (const t of e) n.push(yn(t).then((() => ({ + type: "success" + })), (e => ({ + type: "error", + error: e, + url: t + })))); + return Promise.all(n).then((e => { + for (const t of e) "error" === t.type && wa.warn(`Failed to load ${t.url}: ${t.error}`); + const n = [...Dt().analyticsHandlers, ...window.analyticsHandlers], + a = []; + for (const e of n) try { + a.push(new e(t)) + } catch (e) { + wa.warn(`Error creating analytics handler: ${e}`) + } + return wa.debug(`Loaded ${a.length} external analytics handlers`), a + })) + }(d, y), v.push(...e) + } catch (e) { + wa.error("Failed to initialize external analytics handlers", e) + } + } + return 0 === v.length && ut.dispose(), wa.info(`Initialized ${v.length} analytics handlers`), v + }(e), r = t(n); + return a.then((t => { + ! function(e, t) { + let { + getState: n + } = e; + if (!it(n) || 0 === t.length) return; + const a = n(), + r = a["features/base/config"], + { + deploymentInfo: i + } = r, + { + group: o, + server: s + } = a["features/base/jwt"], + l = a["features/base/conference"].room, + { + locationURL: c = {} + } = a["features/base/connection"], + { + tenant: u + } = An(c.href) || {}, + d = {}; + if (s && (d.server = s), o && (d.group = o), d.appName = ha(), d.websocket = "string" == typeof r.websocket, d.externalApi = "number" == typeof Rt, d.inIframe = ja(), d.tenant = u || "/", i) + for (const e in i) i.hasOwnProperty(e) && (d[e] = i[e]); + ut.addPermanentProperties(d), ut.setConferenceName(l), ut.setAnalyticsHandlers(t), !va() && dt.isChrome() && _a(a["features/base/config"].chromeExtensionBanner).then((e => { + null != e && e.length && ut.addPermanentProperties({ + hasChromeExtension: e.some((e => e)) + }) + })) + }(e, t) + })), r } - render() { + } + const a = t(n); + switch (n.type) { + case HF: { const { - _moderatedRoomServiceUrl: e, - t - } = this.props, { - DEFAULT_WELCOME_PAGE_LOGO_URL: n, - DISPLAY_WELCOME_FOOTER: a - } = interfaceConfig, r = this._shouldShowAdditionalCard(), i = this._shouldShowAdditionalContent(), o = this._shouldShowAdditionalToolbarContent(), s = i ? "with-content" : "without-content", l = a ? "with-footer" : "without-footer"; - return x().createElement("div", { - className: `welcome ${s} ${l}`, - id: "welcome_page" - }, x().createElement("div", { - className: "welcome-watermark" - }, x().createElement(qj, { - defaultJitsiLogoURL: n - })), x().createElement("div", { - className: "header" - }, x().createElement("div", { - className: "welcome-page-settings" - }, x().createElement(bW, { - defaultTab: mW.CALENDAR - }), o ? x().createElement("div", { - className: "settings-toolbar-content", - ref: this._setAdditionalToolbarContentRef - }) : null), x().createElement("div", { - className: "header-image" - }), x().createElement("div", { - className: "header-container" - }, x().createElement("h1", { - className: "header-text-title" - - }, interfaceConfig.OFMEET_WELCOME_PAGE_TITLE), x().createElement("span", { // BAO - className: "header-text-subtitle" - }, interfaceConfig.OFMEET_WELCOME_PAGE_DESCRIPTION), x().createElement("div", { // BAO - id: "enter_room" - - }, x().createElement("div", { - className: "enter-room-input-container" - }, x().createElement("form", { - onSubmit: this._onFormSubmit - }, x().createElement("input", { - "aria-disabled": "false", - "aria-label": "Meeting name input", - autoFocus: !0, - className: "enter-room-input", - id: "enter_room_field", - onChange: this._onRoomChange, - pattern: "^[^?&:\"'%#]+$", - placeholder: this.state.roomPlaceholder, - ref: this._setRoomInputRef, - title: t("welcomepage.roomNameAllowedChars"), - type: "text", - value: this.state.room - }), x().createElement("div", { - className: e ? "warning-with-link" : "warning-without-link" - }, this._renderInsecureRoomNameWarning()))), x().createElement("button", { - "aria-disabled": "false", - "aria-label": "Start meeting", - className: "welcome-page-button", - id: "enter_room_button", - onClick: this._onFormSubmit, - tabIndex: "0", - type: "button" - }, t("welcomepage.startMeeting"))), e && x().createElement("div", { - id: "moderated-meetings" - }, x().createElement("p", null, Fi(t, "welcomepage.moderatedMessage", { - url: e - }))))), x().createElement("div", { - className: "welcome-cards-container" - }, x().createElement("div", { - className: "welcome-card-row" - }, x().createElement("div", { - className: "welcome-tabs welcome-card welcome-card--blue" - }, this._renderTabs()), r ? x().createElement("div", { - className: "welcome-card welcome-card--dark", - ref: this._setAdditionalCardRef - }) : null), i ? x().createElement("div", { - className: "welcome-page-content", - ref: this._setAdditionalContentRef - }) : null), a && this._renderFooter()) - } - _doRenderInsecureRoomNameWarning() { - return x().createElement("div", { - className: "insecure-room-name-warning" - }, x().createElement(qs, { - src: ch - }), x().createElement("span", null, this.props.t("security.insecureRoomNameWarning"))) - } - _onFormSubmit(e) { - e.preventDefault(), this._roomInputRef && !this._roomInputRef.reportValidity() || this._onJoin() - } - _onRoomChange(e) { - super._onRoomChange(e.target.value) - } - _onTabSelected(e) { - this.setState({ - selectedTab: e - }) + dispatch: t, + getState: n + } = e, a = n(); + t({ + type: eae, + localTracksDuration: { + ...tae(a), + conference: { + startedTime: Date.now(), + value: 0 + } + } + }); + break } - _renderFooter() { + case $F: { const { - t: e - } = this.props, { - MOBILE_DOWNLOAD_LINK_ANDROID: t, - MOBILE_DOWNLOAD_LINK_F_DROID: n, - MOBILE_DOWNLOAD_LINK_IOS: a - } = interfaceConfig; - return x().createElement("footer", { - className: "welcome-footer" - }, x().createElement("div", { - className: "welcome-footer-centered" - }, x().createElement("div", { - className: "welcome-footer-padded" - }, x().createElement("div", { - className: "welcome-footer-row-block welcome-footer--row-1" - }, x().createElement("div", { - className: "welcome-footer-row-1-text" - }, e("welcomepage.jitsiOnMobile")), x().createElement("a", { - className: "welcome-badge", - href: a - }, x().createElement("img", { - alt: e("welcomepage.mobileDownLoadLinkIos"), - src: "./images/app-store-badge.png" - })), x().createElement("a", { - className: "welcome-badge", - href: t - }, x().createElement("img", { - alt: e("welcomepage.mobileDownLoadLinkAndroid"), - src: "./images/google-play-badge.png" - })), x().createElement("a", { - className: "welcome-badge", - href: n - }, x().createElement("img", { - alt: e("welcomepage.mobileDownLoadLinkFDroid"), - src: "./images/f-droid-badge.png" - })))))) - } - _renderTabs() { - if (Sa()) return null; - const { - _calendarEnabled: e, - _recentListEnabled: t, - t: n - } = this.props, a = []; - return e && a.push({ - label: n("welcomepage.calendar"), - content: x().createElement(F$, null) - }), t && a.push({ - label: n("welcomepage.recentList"), - content: x().createElement(Eie, null) - }), 0 === a.length ? null : x().createElement(Aie, { - onSelect: this._onTabSelected, - selected: this.state.selectedTab, - tabs: a - }) - } - _setAdditionalCardRef(e) { - this._additionalCardRef = e - } - _setAdditionalContentRef(e) { - this._additionalContentRef = e - } - _setAdditionalToolbarContentRef(e) { - this._additionalToolbarContentRef = e - } - _setRoomInputRef(e) { - this._roomInputRef = e - } - _shouldShowAdditionalCard() { - return interfaceConfig.DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD && this._additionalCardTemplate && this._additionalCardTemplate.content && this._additionalCardTemplate.innerHTML.trim() - } - _shouldShowAdditionalContent() { - return interfaceConfig.DISPLAY_WELCOME_PAGE_CONTENT && this._additionalContentTemplate && this._additionalContentTemplate.content && this._additionalContentTemplate.innerHTML.trim() + dispatch: t, + getState: n + } = e, a = n(), { + localTracksDuration: r + } = a["features/analytics"], i = { + ...tae(a), + conference: { + startedTime: -1, + value: Date.now() - r.conference.startedTime + } + }; + Da(function(e) { + const { + audio: t, + video: n, + conference: a + } = e, { + camera: r, + desktop: i + } = n; + return { + action: "local.tracks.durations", + attributes: { + audio: t.value, + camera: r.value, + conference: a.value, + desktop: i.value + } + } + }(i)), t({ + type: eae, + localTracksDuration: i + }); + break } - _shouldShowAdditionalToolbarContent() { - return interfaceConfig.DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT && this._additionalToolbarContentTemplate && this._additionalToolbarContentTemplate.content && this._additionalToolbarContentTemplate.innerHTML.trim() + case Qne: + Da(function(e) { + let { + isOnline: t, + networkType: n, + details: a + } = e; + const r = { + isOnline: t + }; + return n && (r.networkType = n), a && (r.details = a), { + action: "network.info", + attributes: r + } + }({ + isOnline: n.isOnline, + details: n.details, + networkType: n.networkType + })); + break; + case up: + case mp: + case gp: { + const { + dispatch: t, + getState: a + } = e, r = a(), { + localTracksDuration: i + } = r["features/analytics"]; + if (-1 === i.conference.startedTime || "presenter" === n.mediaType) break; + t({ + type: eae, + localTracksDuration: { + ...i, + ...tae(r) + } + }); + break } } - jie(Pie, "defaultProps", { - _room: "" - }); - const Die = Li(ze((function(e) { - return { - _calendarEnabled: w$(e), - _enableInsecureRoomNameWarning: e["features/base/config"].enableInsecureRoomNameWarning || !1, - _moderatedRoomServiceUrl: e["features/base/config"].moderatedRoomServiceUrl, - _recentListEnabled: Zne(), - _room: e["features/base/conference"].room, - _settings: e["features/base/settings"] - } - }))(Pie)); - - function Tie() { - return { - component: _ie, - href: void 0 + return a + })), qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const { + type: r + } = a, { + conference: i + } = dF(n()); + switch (r) { + case Va: + t(Oi(om, "asked-unmute.mp3")); + break; + case Wa: + t(Ri(om)); + break; + case Vm: { + let e, n, r; + switch (a.mediaType) { + case Fi: + n = "notify.moderationInEffectTitle", r = sm; + break; + case Bi: + n = "notify.moderationInEffectVideoTitle", r = lm; + break; + case qi: + n = "notify.moderationInEffectCSTitle", r = cm + } + t(tg({ + customActionNameKey: ["notify.raiseHandAction"], + customActionHandler: [() => (0, Me.unstable_batchedUpdates)((() => { + t(dS(!0)), t(Xf(r)) + }))], + descriptionKey: e, + sticky: !0, + titleKey: n, + uid: r + }, Yf.STICKY)); + break + } + case Lm: + i.disableAVModeration(Fi); + break; + case Fm: + i.disableAVModeration(Bi); + break; + case qm: + i.enableAVModeration(Fi); + break; + case Bm: + i.enableAVModeration(Bi); + break; + case Hw: { + const e = n(), + r = pm(Fi, e), + i = a.participant; + i && r && (tm(e) ? am(i) ? !fm(i.id, Fi)(e) && t( of (i)) : gm(i, Fi)(e) && t(function(e) { + return Xm(e.id, Fi) + }(i)) : i.id === Uh(e).id && Qh(i) && Jh(e).forEach((n => { + am(n) && !fm(n.id, Fi)(e) && t( of (n)) + }))); + break + } + case zm: + "undefined" != typeof APP && APP.API.notifyModerationChanged(a.mediaType, !0); + break; + case Nm: + "undefined" != typeof APP && APP.API.notifyModerationChanged(a.mediaType, !1); + break; + case Um: + if ("undefined" != typeof APP) { + const e = Uh(n()); + APP.API.notifyParticipantApproved(e.id, a.mediaType) + } + break; + case Wm: + "undefined" != typeof APP && APP.API.notifyParticipantApproved(a.id, a.mediaType); + break; + case Hm: + if ("undefined" != typeof APP) { + const e = Uh(n()); + APP.API.notifyParticipantRejected(e.id, a.mediaType) + } + break; + case Ym: + "undefined" != typeof APP && APP.API.notifyParticipantRejected(a.id, a.mediaType) } + return e(a) } - - function Oie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - - function Mie(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Iie(e, t, n[t]) - })) + })), tt.register((e => e["features/base/conference"].conference), ((e, t, n) => { + let { + dispatch: a + } = t; + e && !n && (e.on(ht.AV_MODERATION_APPROVED, (e => { + let { + mediaType: t + } = e; + a((e => ({ + type: Um, + mediaType: e + }))(t)), t === Fi && (a(tg({ + titleKey: "notify.hostAskedUnmute", + sticky: !0, + customActionNameKey: ["notify.unmute"], + customActionHandler: [() => a(zX(!1, Fi))] + }, Yf.STICKY)), a(Ii(om))) + })), e.on(ht.AV_MODERATION_REJECTED, (e => { + let { + mediaType: t + } = e; + a((e => ({ + type: Hm, + mediaType: e + }))(t)) + })), e.on(ht.AV_MODERATION_CHANGED, (e => { + let { + enabled: t, + mediaType: n, + actor: r + } = e; + a(t ? ((e, t) => ({ + type: zm, + mediaType: e, + actor: t + }))(n, r) : ((e, t) => ({ + type: Nm, + mediaType: e, + actor: t + }))(n, r)) + })), e.on(ht.AV_MODERATION_PARTICIPANT_APPROVED, (e => { + let { + participant: t, + mediaType: n + } = e; + const { + _id: r + } = t; + (0, Me.unstable_batchedUpdates)((() => { + a(function(e, t) { + return { + type: Wm, + id: e, + mediaType: t + } + }(r, n)), a(Xm(r, n)) + })) + })), e.on(ht.AV_MODERATION_PARTICIPANT_REJECTED, (e => { + let { + participant: t, + mediaType: n + } = e; + const { + _id: r + } = t; + a(function(e, t) { + return { + type: Ym, + id: e, + mediaType: t + } + }(r, n)) + }))) + })), qe.register((e => t => n => { + switch (n.type) { + case UF: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = t(n), + { + conference: o, + error: s + } = n, + { + enableForcedReload: l + } = r()["features/base/config"]; + switch (s.name) { + case pt.CONFERENCE_DESTROYED: { + const [e] = s.params; + a(eg({ + description: e, + titleKey: "dialog.sessTerminated" + }, Yf.LONG)), cF.includes(e) && (void 0 === typeof APP ? a({ + type: "READY_TO_CLOSE" + }) : APP.API.notifyReadyToClose()); + break + } + case pt.CONFERENCE_RESTARTED: + l && a(eg({ + description: "Restart initiated because of a bridge failure", + titleKey: "dialog.sessionRestarted" + }, Yf.LONG)); + break; + case pt.CONNECTION_ERROR: { + const [e] = s.params; + a(function(e) { + return { + type: AF, + connection: e + } + }(r()["features/base/connection"].connection)), a(eg({ + descriptionArguments: { + msg: e + }, + descriptionKey: e ? "dialog.connectErrorWithMsg" : "dialog.connectError", + titleKey: "connection.CONNFAIL" + }, Yf.LONG)); + break + } + case pt.OFFER_ANSWER_FAILED: + Da({ + action: "offer.answer.failure" + }) + } + return "undefined" == typeof APP ? !s.recoverable && o && o.leave().catch((e => { + uF.info("JitsiConference.leave() rejected with:", e) + })) : aae(r), l && (null == s ? void 0 : s.name) === pt.CONFERENCE_RESTARTED && (a(gq(o)), a(rB())), i + }(e, t, n); + case HF: + return function(e, t, n) { + var a; + let { + dispatch: r, + getState: i + } = e; + const o = t(n), + { + conference: s + } = n, + { + pendingSubjectChange: l + } = i()["features/base/conference"], + { + requireDisplayName: c, + disableBeforeUnloadHandlers: u = !1 + } = i()["features/base/config"]; + return l && r(Cq(l)), nae = () => { + r(gq(s)) + }, window.addEventListener(u ? "unload" : "beforeunload", nae), !c || null !== (a = Uh(i)) && void 0 !== a && a.name || s.isHidden() || r(VI(i1, { + onPostSubmit: void 0 + })), o + }(e, t, n); + case TF: + return function(e, t, n) { + let { + dispatch: a + } = e; + const r = t(n); + return "undefined" == typeof APP && a(bq()), r + }(e, t, n); + case DF: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + ! function(e, t) { + const { + jwt: n + } = t["features/base/jwt"]; + if (!n) return; + const a = function(e) { + const t = []; + if (!e) return t; + const n = (new Date).getTime(); + try { + const a = LB()(e, { + header: !0 + }), + r = LB()(e); + if (!a || !r) return t.push("- Missing header or payload"), t; + const { + aud: i, + context: o, + exp: s, + iss: l, + nbf: c, + sub: u + } = r; + if (u && u.startsWith("vpaas-magic-cookie")) { + const { + kid: e + } = a; + if (!e) return t.push("- Key ID(kid) missing"), t; + e.substring(0, e.indexOf("/")) !== u && t.push("- Key ID(kid) does not match sub"), "jitsi" !== i && t.push("- invalid `aud` value. It should be `jitsi`"), "chat" !== l && t.push("- invalid `iss` value. It should be `chat`"), null != o && o.features || t.push("- `features` object is missing from the payload") + } + if (BB(c) ? n < 1e3 * c && t.push("- `nbf` value is in the future") : t.push("- invalid `nbf` value"), BB(s) ? n > 1e3 * s && t.push("- token is expired") : t.push("- invalid `exp` value"), o) { + if (o.features) { + const { + features: e + } = o; + Object.keys(e).forEach((n => { + if (FB.includes(n)) { + const a = e[n]; + !0 !== a && !1 !== a && "true" !== a && "false" !== a && t.push(`- Invalid value for feature: ${n}`) + } else t.push(`- Invalid feature: ${n}`) + })) + } + } else t.push("- `context` object is missing from the payload") + } catch (e) { + t.push(e ? e.message : "- unspecified jwt error") + } + return t + }(n); + e && uF.error(`JWT error: ${e}`), a.length && uF.error("JWT parsing error:", a) + }(n.error.message, r()); + const i = t(n); + if (aae(r), "undefined" == typeof APP) { + const { + connection: e + } = n, { + error: t + } = n; + fF(r, (n => { + if (n.getConnection() === e) { + const e = lq(n, t.name); + void 0 !== t.recoverable && (e.error.recoverable = t.recoverable), a(e) + } + return !0 + })) + } + return i + }(e, t, n); + case WF: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = t(n), + { + subject: o + } = r()["features/base/conference"]; + return o && a({ + type: iq, + subject: void 0 + }), "object" == typeof APP && APP.API.notifySubjectChanged(o), i + }(e, t, n); + case $F: + ! function(e) { + let { + getState: t + } = e; + aae(t) + }(e); + break; + case Hw: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const { + conference: i + } = r()["features/base/conference"], { + participant: o + } = n, s = t(n), l = Uh(r); + if (i && o.id === (null == l ? void 0 : l.id) && ("name" in o && i.setDisplayName(o.name), "role" in o && o.role === Rh)) { + const { + pendingSubjectChange: e, + subject: t + } = r()["features/base/conference"]; + void 0 !== e && e !== t && a(Cq(e)) + } + return s + }(e, t, n); + case Vw: + return function(e, t, n) { + let { + getState: a + } = e; + const r = a(), + { + conference: i + } = r["features/base/conference"]; + if (!i) return t(n); + const o = n.participant.id, + s = Vh(r, o), + l = Zh(r), + c = o ? Ft : "unpinned", + u = s && s.local || !o && l && l.local; + let d; + return d = u || (c === Ft ? o : l && l.id), Da(function(e, t, n) { + return { + type: "track", + action: e, + actionSubject: "participant", + objectType: "participant", + objectId: t, + attributes: n + } + }(c, d, { + local: u, + participant_count: i.getParticipantCount() + })), t(n) + }(e, t, n); + case eq: + return function(e, t, n) { + let { + getState: a + } = e; + const r = a(), + { + conference: i + } = r["features/base/conference"]; + if (i) { + const { + duration: e, + tones: t, + pause: a + } = n; + i.sendTones(t, e, a) + } + return t(n) + }(e, t, n); + case oq: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = r(), + { + subject: o + } = i["features/base/config"], + { + room: s + } = n; + return s && a(Cq(o)), t(n) + }(e, t, n); + case up: + case mp: + return function(e, t, n) { + const a = n.track; + return a && a.local && a.mediaType !== qi ? function(e, t) { + let { + getState: n + } = e; + const a = vF(n); + let r; + if (a) { + const e = t.track.jitsiTrack; + r = t.type === up ? pF(a, [e]) : function(e, t) { + return Promise.all(t.map((t => e.removeTrack(t).catch((e => { + e.name !== wt.TRACK_IS_DISPOSED && EF("Failed to remove local track from conference", e) + }))))) + }(a, [e]) + } + return r || Promise.resolve() + }(e, n).then((() => t(n))) : t(n) + }(e, t, n) + } + return t(n) + })), qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const { + enableForcedReload: r + } = n()["features/base/config"]; + switch (a.type) { + case HF: + r && t(RH(!1)); + break; + case UF: + var i; + r && (null === (i = a.error) || void 0 === i ? void 0 : i.name) === pt.CONFERENCE_RESTARTED && t(RH(!0)) } - return e - } - - function Iie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + return e(a) } - Be.register((e => t => n => { - switch (n.type) { - case AI: - return function(e, t, n) { - const a = t(n), - { - history: r, - location: i - } = window; - if (r && i && r.length && "function" == typeof r.replaceState) { - const e = RI(i); - i !== e && r.replaceState(r.state, document && document.title || "", e) + })), qe.register((e => t => n => { + switch (n.type) { + case Va: + return function(e, t, n) { + const a = t(n), + r = "config.js/", + i = []; + for (let e = 0;; ++e) { + const t = l.key(e); + if (!t) break; { + let e; + if (t.startsWith(r) && (e = t.substring(r.length))) { + const t = An(e); + let n; + t && (n = t.host) && i.push(n) + } } - return a - }(0, t, n); - case jI: - return function({ - dispatch: e, - getState: t - }, n, a) { - if (! function(e, t) { + } + return i.length && e.dispatch(fn(i)), a + }(e, t, n); + case In: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = t(n), + o = r(), + s = o["features/base/settings"], + l = {}; + void 0 !== s.disableP2P && (l.p2p = { + enabled: !s.disableP2P + }); + const c = qf(o, "resolution"); + return void 0 !== c && (l.resolution = c), !0 === n.config.doNotFlipLocalVideo && a(hn({ + localFlipX: !1 + })), n.config.disableSelfView && a(hn({ + disableSelfView: !0 + })), a(Zn(l)), void 0 !== window.config && (window.config = o["features/base/config"]), i + }(e, t, n); + case Nn: + return function(e, t, n) { + let { + dispatch: a + } = e; + const { + config: { + doNotFlipLocalVideo: r + } + } = n; + return !0 === r && a(hn({ + localFlipX: !1 + })), t(n) + }(e, t, n) + } + return t(n) + })); + const rae = $e("features/base/jwt"); qe.register((e => t => n => { + switch (n.type) { + case In: + case jF: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = t(n), + { + locationURL: o + } = r()["features/base/connection"]; + return a(RB(o ? qB(o) : void 0)), i + }(e, t, n); + case NB: + return function(e, t, n) { + const { + jwt: a, + type: r, + ...i + } = n; + if (!Object.keys(i).length) + if (a) { + let t; + try { + t = LB()(a) + } catch (e) { + rae.error(e) + } + if (t) { const { - error: n + context: r, + iss: i, + sub: o } = t; - if (n && "item-not-found" === n.message && n.details && n.details.shard_changed) { - const t = e(), - { - timeEstablished: a - } = t["features/base/connection"], - { - _immediateReloadThreshold: r - } = t["features/base/config"], - i = a && Date.now() - a, - o = "number" == typeof r ? r : 1500, - s = !a || i <= o; - return Ma(function(e, t = {}) { - return { - action: e, - actionSubject: "connection", - attributes: t - } - }("failed", function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Oie(e, t, n[t]) - })) + if (n.jwt = a, n.issuer = i, r) { + const t = function(e) { + let { + avatar: t, + avatarUrl: n, + email: a, + id: r, + name: i + } = e; + const o = {}; + return "string" == typeof n ? o.avatarURL = n.trim() : "string" == typeof t && (o.avatarURL = t.trim()), "string" == typeof a && (o.email = a.trim()), "string" == typeof r && (o.id = r.trim()), "string" == typeof i && (o.name = i.trim()), Object.keys(o).length ? o : void 0 + }(r.user || {}); + n.callee = r.callee, n.group = r.group, n.server = r.server, n.tenant = r.tenant || o || void 0, n.user = t, t && function(e, t) { + let n, { + dispatch: a, + getState: r + } = e, + { + avatarURL: i, + email: o, + id: s, + name: l, + features: c + } = t; + if ((i || o || l) && (n = Uh(r))) { + const e = { + id: n.id, + local: !0 + }; + i && (e.avatarURL = i), o && (e.email = o), s && (e.jwtId = s), l && (e.name = l), c && (e.features = c), a(sS(e)) } - return e - }({}, n, { - connectionEstablished: a, - splitBrain: s, - timeSinceConnectionEstablished: i - }))), s + }(e, { + ...t, + features: r.features + }) } - return !1 - }(t, a)) return n(a); - e(JN()) - }(e, t, n); - case rN: - return function(e, t, n) { - const a = t(n); - return function({ - getState: e - }) { - const t = e(), + } + } else if ("undefined" == typeof APP) { + const { + user: t + } = e.getState()["features/base/jwt"]; + t && function(e, t) { + let n, { + dispatch: a, + getState: r + } = e, { - app: n - } = t["features/base/app"]; - (function(e) { - const t = qe(e); - return "ReactNative" === navigator.product ? function(e) { - const t = Tie(); - return wI(e["features/base/conference"].room) ? t.component = bie : function(e) { - return "ReactNative" !== navigator.product || Boolean(Df(e, "welcomepage.enabled")) - }(e) ? t.component = Die : t.component = _ie, Promise.resolve(t) - }(t) : function(e) { - if (!wI(e["features/base/conference"].room)) return; - const t = Tie(), - { - locationURL: n - } = e["features/base/connection"]; - return window.location.href !== n.href ? (t.href = n.href, Promise.resolve(t)) : function(e) { - const { - room: t - } = e["features/base/conference"], { - launchInWeb: n - } = e["features/deep-linking"], a = "undefined" != typeof interfaceConfig && interfaceConfig.APP_SCHEME; - if (n || !t || e["features/base/config"].disableDeepLinking || Rj(e) && (!a || "com.8x8.meet" === a)) return Promise.resolve(); -/* BAO - if (Sa()) { - const e = "object" == typeof interfaceConfig && interfaceConfig.MOBILE_APP_PROMO; - return Promise.resolve(void 0 === e || Boolean(e) ? xne : Cne) - } -*/ - return Ane().then((e => e ? _ne : void 0)) - }(e).then((e => (e ? t.component = e : JV() ? t.component = bie : t.component = kie, t))) - }(t) || function(e) { - const t = Tie(); - if (function(e) { - return "undefined" == typeof APP || qe(e)["features/base/config"].enableWelcomePage - }(e)) JV() ? t.component = Die : t.component = kie; - else { - let e = window.location.href; - e.endsWith("/") || (e += "/"), t.href = e + TN() - } - return Promise.resolve(t) - }(t) - })(t).then((e => n._navigate(e))) - }(e), a - }(e, t, n) - } - return t(n) - })); - const Nie = { - availableDevices: { - audioInput: [], - audioOutput: [], - videoInput: [] - }, - pendingRequests: [], - permissions: { - audio: !1, - video: !1 - } - }; - - function zie(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Rie(e, t, n[t]) - })) - } - return e - } - - function Rie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + avatarURL: i, + name: o, + email: s + } = t; + if ((i || o || s) && (n = Uh(r))) { + const e = { + id: n.id, + local: !0 + }; + i === n.avatarURL && (e.avatarURL = void 0), s === n.email && (e.email = void 0), o === n.name && (e.name = void 0), e.features = void 0, a(sS(e)) + } + }(e, t) + } + return t(n) + }(e, t, n) } - nt.register("features/base/devices", ((e = Nie, t) => { - switch (t.type) { - case xM: - return Mie({}, e, { - availableDevices: RM(t.devices) - }); - case CM: - return Mie({}, e, { - pendingRequests: [...e.pendingRequests, t.request] - }); - case AM: - return Mie({}, e, { - pendingRequests: [] - }); - case SM: - return DM.debug(`set audio input device: ${t.deviceId}`), e; - case EM: - return DM.debug(`set video input device: ${t.deviceId}`), e; - case PM: - return Mie({}, e, { - permissions: t.permissions - }); - default: - return e - } - })); - const Lie = { - enabled: !1, - maxMode: M4 - }; - - function Fie(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - qie(e, t, n[t]) - })) - } - return e + return t(n) + })), qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case Va: + ! function(e) { + let { + dispatch: t, + getState: n + } = e; + t(fn(An(pa(n)).host)) + }(e); + break; + case oq: + ! function(e) { + let { + dispatch: t, + getState: n + } = e; + const { + locationURL: a + } = n()["features/base/connection"]; + let r; + a && (r = a.host) && t(fn(r)) + }(e) } - - function qie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + return a + })); + const iae = "APP_STATE_CHANGED", oae = $e("features/base/lastn"), sae = Nj()((e => { + var t, n; + let { + dispatch: a, + getState: r + } = e; + const i = r(), + { + conference: o + } = i["features/base/conference"]; + if (!o) return void oae.debug("There is no active conference, not updating last N"); + const { + enabled: s + } = i["features/base/audio-only"], { + appState: l + } = i["features/background"] || {}, { + enabled: c + } = i["features/filmstrip"], u = i["features/base/config"], { + lastNLimits: d, + lastN: p + } = i["features/base/lastn"], h = Yh(i); + let m = p || (null !== (t = u.startLastN) && void 0 !== t ? t : null !== (n = u.channelLastN) && void 0 !== n ? n : -1); + const f = function(e, t) { + if (!t || !t.keys) return; + let n; + for (const a of t.keys()) e >= a && (n = a); + return n ? t.get(n) : void 0 + }(h, d); + if (void 0 !== f && (m = -1 === m ? f : Math.min(f, m)), void 0 !== l && "active" !== l) m = uh(i) ? 1 : 0; + else if (s) { + const { + remoteScreenShares: e, + tileViewEnabled: t + } = i["features/video-layout"], n = i["features/large-video"].participantId, a = n ? Vh(i, n) : void 0; + m = t || !a || a.local ? 0 : (e || []).includes(n) ? 1 : 0 + } else c || (m = 1); + a(c7(m)) + }), 1e3); qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case iae: + case HF: + case qw: + case Bw: + case Uw: + case mS: + case BW: + case WX: + case _S: + case fS: + sae(e) + } + return a + })); + const lae = "SET_LOG_COLLECTOR", cae = "SET_LOGGING_CONFIG"; + + function uae(e) { + return { + type: lae, + logCollector: e } - nt.register("features/e2ee", ((e = Lie, t) => { - switch (t.type) { - case _4: - return zie({}, e, { - enabled: t.enabled - }); - case w4: - return zie({}, e, { - everyoneEnabledE2EE: t.everyoneEnabledE2EE - }); - case S4: - return zie({}, e, { - everyoneSupportE2EE: t.everyoneSupportE2EE - }); - case E4: - return zie({}, e, { - maxMode: t.maxMode - }); - default: - return e + } + qe.register((e => t => n => { + switch (n.type) { + case v: + "undefined" != typeof APP && function() { + if (c.default.getGlobalOnErrorHandler) { + const e = window.onerror; + window.onerror = (t, n, a, r, i) => { + const o = t || i && i.message, + s = i && i.stack; + c.default.getGlobalOnErrorHandler(o, n, a, r, s), e && e(t, n, a, r, i) + }; + const t = window.onunhandledrejection; + window.onunhandledrejection = function(e) { + let n = e.reason, + a = "n/a"; + e.reason instanceof Error && ({ + message: n, + stack: a + } = e.reason), c.default.getGlobalOnErrorHandler(n, null, null, null, a), t && t(e) + } + } + }(); + break; + case Qne: + c.default.setNetworkInfo({ + isOnline: n.isOnline + }); + break; + case Uw: + n.participant.local && e.dispatch(ct()); + break; + case In: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const { + initialized: i + } = r()["features/base/lib-jitsi-meet"]; + i && a(ct()); + const o = t(n); + return a(function(e) { + return { + type: cae, + config: e + } + }(window.loggingConfig)), a(((e, t) => { + const n = t(), + a = n["features/base/config"]; + if (!a) throw new Error("Cannot init lib-jitsi-meet without config"); + e({ + type: v + }); + try { + c.default.init({ + enableAnalyticsLogging: it(t), + ...a, + externalStorage: l.isLocalStorageDisabled() ? l : void 0 + }), c.default.setNetworkInfo({ + isOnline: f(n) + }), e({ + type: b + }) + } catch (t) { + e(function(e) { + return { + type: y, + error: e + } + }(t)) + } + })), o + }(e, t, n) + } + return t(n) + })); class dae { + constructor() { + this.logs = [] + } + isReady() { + return !0 + } + storeLogs(e) { + for (let t = 0, n = e.length; t < n; t++) { + const n = e[t]; + "object" == typeof n ? this.logs.push(n.text) : this.logs.push(n) } - })); - const Bie = { - message: "", - score: -1, - submitted: !1 - }; - - function Uie(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Hie(e, t, n[t]) - })) + } + getLogs() { + return this.logs + } + } + class pae { + constructor(e) { + this.counter = 1, this.getState = e + } + isReady() { + const { + conference: e + } = this.getState()["features/base/conference"]; + return Boolean(e) + } + storeLogs(e) { + const t = vF(this.getState()); + if (!t || !t.isCallstatsEnabled()) return; + let n = `{"log${this.counter}":"\n`; + for (let t = 0, a = e.length; t < a; t++) { + const a = e[t]; + a.timestamp && (n += `${a.timestamp} `), a.count > 1 && (n += `(${a.count}) `), n += `${a.text}\n` + } + n += '"}', this.counter += 1; + try { + t.sendApplicationLog(n) + } catch (e) { + console.error(`Failed to store the logs, msg length: ${n.length}error: ${JSON.stringify(e)}`) } - return e } + } - function Hie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function hae(e, t) { + e.setLogLevel(t.defaultLogLevel), Object.keys(t).forEach((n => "defaultLogLevel" === n || e.setLogLevelById(t[n], n))) + } + qe.register((e => t => n => { + switch (n.type) { + case Va: + return function(e, t, n) { + let { + getState: a + } = e; + const { + config: r + } = a()["features/base/logging"]; + return hae(Ve(), r), "undefined" == typeof APP || hae(c.default, r), t(n) + }(e, t, n); + case HF: + return function(e, t, n) { + let { + getState: a + } = e; + const r = t(n), + { + conference: i + } = n, + { + logCollector: o + } = a()["features/base/logging"]; + return o && i === vF(a()) && (o.start(), o.flush(), i.on(ht.BEFORE_STATISTICS_DISPOSED, (() => o.flush()))), r + }(e, t, n); + case v: + return function(e, t, n) { + let { + getState: a + } = e; + return "undefined" == typeof APP && hae(c.default, a()["features/base/logging"].config), t(n) + }(e, t, n); + case cae: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = t(n), + o = r()["features/base/logging"].config, + s = P9(r()); + return hae(Ve(), o), hae(c.default, o), + function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const { + logCollector: i + } = r()["features/base/logging"]; + if (i || t.disableLogCollector) i && t.disableLogCollector && (Ve().removeGlobalTransport(i), c.default.removeGlobalLogTransport(i), i.stop(), a(uae(void 0))); + else { + const e = new(Ve().LogCollector)(new pae(r)), + { + apiLogLevels: t + } = r()["features/base/config"]; + if (t && Array.isArray(t) && "object" == typeof APP) { + const e = t.reduce(((e, t) => (e[t] = function() { + for (var e = arguments.length, n = new Array(e), a = 0; a < e; a++) n[a] = arguments[a]; + APP.API.notifyLog(t, n) + }, e)), {}); + Ve().addGlobalTransport(e), c.default.addGlobalLogTransport(e) + } + if (Ve().addGlobalTransport(e), c.default.addGlobalLogTransport(e), a(uae(e)), n && "object" == typeof APP) { + APP.debugLogs = new dae; + const e = new(Ve().LogCollector)(APP.debugLogs, { + storeInterval: 1e3 + }); + Ve().addGlobalTransport(e), c.default.addGlobalLogTransport(e), e.start() + } + } + }({ + dispatch: a, + getState: r + }, o, s), i + }(e, t, n) + } + return t(n) + })); + const mae = { + available: !0, + unmuteBlocked: !1, + muted: !1 + }, fae = { + available: !0, + unmuteBlocked: !1, + facingMode: Li, + muted: 0, + transforms: {} + }; + + function gae(e) { + return { + ...e, + transforms: fae.transforms } + } - function Vie(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Wie(e, t, n[t]) - })) + function bae(e, t) { + let { + streamId: n, + transform: a + } = t; + return { + ...e, + transforms: { + ...e.transforms, + [n]: a } - return e } + } - function Wie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register("features/feedback", ((e = Bie, t) => { - switch (t.type) { - case NH: - return Fie({}, e, { - message: t.message, - score: t.score - }); - case zH: - case RH: - return Fie({}, e, { - message: "", - score: -1, - submitted: !0 - }) + function yae(e, t) { + let { + track: { + jitsiTrack: n } - return e - })), nt.register("features/local-recording", ((e = {}, t) => { + } = t; + if (n) { + const t = n.getStreamId(); + if (t && t in e.transforms) { + const n = { + ...e.transforms + }; + return delete n[t], { + ...e, + transforms: n + } + } + } + return e + } + et.register("features/base/media", oe({ + audio: function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : mae, + t = arguments.length > 1 ? arguments[1] : void 0; switch (t.type) { - case m6: - return Uie({}, e, { - isEngaged: !0, - recordingEngagedAt: t.recordingEngagedAt, - encodingFormat: F6._format - }); - case f6: - return Uie({}, e, { - isEngaged: !1, - recordingEngagedAt: null - }); - case g6: - return Uie({}, e, { - stats: t.stats - }); + case sf: + return { + ...e, available: t.available + }; + case lf: + return { + ...e, muted: t.muted + }; + case cf: + return { + ...e, unmuteBlocked: t.blocked + }; default: return e } - })), nt.register("features/no-audio-signal", ((e = {}, t) => t.type === rte ? Le(e, "noAudioSignalNotificationUid", t.uid) : e)), nt.register("features/noise-detection", ((e = {}, t) => t.type === cte ? Le(e, "noisyAudioInputNotificationUid", t.uid) : e)); - const Yie = { - isOpen: !1, - participantsVolume: {} - }; - - function Gie(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Kie(e, t, n[t]) - })) - } - return e - } - - function Kie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register(pm, ((e = Yie, t) => { + }, + video: function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : fae, + t = arguments.length > 1 ? arguments[1] : void 0; switch (t.type) { - case Y6: - return Vie({}, e, { - isOpen: !1 - }); - case G6: - return Vie({}, e, { - isOpen: !0 - }); - case "SET_VOLUME": - return Vie({}, e, { - participantsVolume: Vie({}, e.participantsVolume, { - [t.participantId]: t.volume - }) - }); + case UF: + case VF: + return gae(e); + case uf: + return { + ...e, facingMode: t.cameraFacingMode + }; + case df: + return { + ...e, available: t.available + }; + case pf: + return { + ...e, muted: t.muted + }; + case mf: + return { + ...e, unmuteBlocked: t.blocked + }; + case hf: + return bae(e, t); + case ff: { + let t = e.facingMode; + return t = t === Li ? zi : Li, { + ...e, + facingMode: t + } + } + case mp: + return yae(e, t); default: return e } - })), nt.register("features/power-monitor", ((e = {}, t) => { - switch (t.type) { - case gV: - return function(e, t) { - return Le(e, "transport", t) - }(e, t.transport); - case fV: - return function(e) { - return Le(e, "suspendDetected", !0) - }(e) + } + })), qe.register((e => t => n => { + switch (n.type) { + case iae: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + if ("ReactNative" === navigator.product) { + const { + appState: e + } = n, t = "active" !== e && !uh(r()); + Da(cn("video", "background mode", t)), a(yf(t, Bi, Hi)) + } + return t(n) + }(e, t, n); + case WX: + return function(e, t, n) { + let { + dispatch: a + } = e; + const { + audioOnly: r, + ensureVideoTrack: i + } = n; + return Da(cn("video", "audio-only mode", r)), a(yf(r, Bi, Ui, i)), "ReactNative" !== navigator.product && a(yf(r, qi, Ui, i)), t(n) + }(e, t, n); + case oq: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = r(), + { + room: o + } = n, + s = SF(o), + l = s ? Df(i) : mae.muted, + c = s ? Pf(i) : fae.muted; + Da(sn("local", l, c)), kf.log(`Start muted: ${l?"audio, ":""}${c?"video":""}`), a(gf(l)), a((Li, { + type: uf, + cameraFacingMode: "user" + })), a(yf(c)); + const u = Boolean(ta(i, "startAudioOnly", { + config: s, + urlParams: !0, + jwt: !1, + settings: !0 + })); + return Da(function(e) { + return { + action: "start.audio.only", + attributes: { + enabled: e + } + } + }(u)), kf.log(`Start audio only set to ${u.toString()}`), a(GX(u, !1)), s || a(gh()), t(n) + }(e, t, n); + case up: { + const a = t(n), + { + track: r + } = n; + return r.local && "desktop" !== r.videoType && function(e, t) { + let { + getState: n + } = e; + const a = n()["features/base/media"], + r = t.mediaType === qi ? Bi : t.mediaType, + i = Boolean(a[r].muted); + t.muted !== i && (Da(function(e, t) { + return { + action: "sync.track.state", + attributes: { + media_type: e, + muted: t + } + } + }(t.mediaType, i)), kf.log(`Sync ${t.mediaType} track muted state to ${i?"muted":"unmuted"}`), t.muted = i, hh(t.jitsiTrack, i)) + }(e, r), a } - return e - })); - const $ie = { - country: "", - deviceStatusText: "prejoin.configuringDevices", - deviceStatusType: "ok", - dialOutCountry: { - name: "United States", - dialCode: "1", - code: "us" - }, - dialOutNumber: "", - dialOutStatus: "prejoin.dialing", - isDisplayNameRequired: !1, - name: "", - rawError: "", - showPrejoin: !0, - skipPrejoinOnReload: !1, - showJoinByPhoneDialog: !1, - userSelectedSkipPrejoin: !1 - }; - - function Jie(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Zie(e, t, n[t]) - })) + case lf: { + const t = e.getState(), + a = Uh(t); + if (!n.muted && Mm(a, Fi, t)) return; + break } - return e + case cf: { + const { + blocked: t + } = n, a = ch(e.getState()["features/base/tracks"], Fi); + t && a && e.dispatch(ng({ + descriptionKey: "notify.audioUnmuteBlockedDescription", + titleKey: "notify.audioUnmuteBlockedTitle" + }, Yf.MEDIUM)); + break + } + case pf: { + const t = e.getState(), + a = Uh(t); + if (!n.muted && Mm(a, Bi, t)) return; + break + } + case mf: { + const { + blocked: t + } = n, a = ch(e.getState()["features/base/tracks"], Bi); + t && a && e.dispatch(ng({ + descriptionKey: "notify.videoUnmuteBlockedDescription", + titleKey: "notify.videoUnmuteBlockedTitle" + }, Yf.MEDIUM)); + break + } + } + return t(n) + })); + const vae = "network-info-online-status-change"; class kae extends(o()) { + constructor() { + super(), this._onlineStateListener = this._handleOnlineStatusChange.bind(this, !0), this._offlineStateListener = this._handleOnlineStatusChange.bind(this, !1) + } + _handleOnlineStatusChange(e) { + this.emit(vae, { + isOnline: e + }) } + static isSupported() { + return window.addEventListener && void 0 !== navigator.onLine + } + start() { + window.addEventListener("online", this._onlineStateListener), window.addEventListener("offline", this._offlineStateListener) + } + stop() { + window.removeEventListener("online", this._onlineStateListener), window.removeEventListener("offline", this._offlineStateListener) + } + } - function Zie(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function _ae(e) { + return { + type: Xne, + cleanup: e } - et.register("features/prejoin", { - skipPrejoinOnReload: !0 - }, $ie), nt.register("features/prejoin", ((e = $ie, t) => { - switch (t.type) { - case NR: - return Gie({}, e, { - joiningInProgress: t.value - }); - case "SET_SKIP_PREJOIN": - return Gie({}, e, { - userSelectedSkipPrejoin: t.value - }); - case LR: - return Gie({}, e, { - skipPrejoinOnReload: t.value - }); - case VR: - return Gie({}, e, { - precallTestResults: t.value - }); - case YR: - return Gie({}, e, { - showPrejoin: t.value - }); - case WR: { - const n = function(e) { - const { - audioOnlyError: t, - videoOnlyError: n, - audioAndVideoError: a - } = e; - return a ? t ? n ? { - deviceStatusType: "warning", - deviceStatusText: "prejoin.audioAndVideoError", - rawError: a.message - } : { - deviceStatusType: "warning", - deviceStatusText: "prejoin.audioOnlyError", - rawError: t.message - } : { - deviceStatusType: "warning", - deviceStatusText: "prejoin.videoOnlyError", - rawError: a.message - } : { - deviceStatusType: "ok", - deviceStatusText: "prejoin.lookGood", - rawError: "" - } - }(t.value); - return Gie({}, e, n) - } - case RR: { + } + const wae = $e("features/base/net-info"); qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const r = e(a); + switch (a.type) { + case Va: + if (kae.isSupported()) { + const e = new kae, + n = () => { + e.stop(), e.removeAllListeners() + }; + e.addListener(vae, (e => { + let { + isOnline: n, + networkType: a, + details: r + } = e; + wae.info("Network changed", JSON.stringify({ + isOnline: n, + details: r, + networkType: a + })), t(function(e) { + let { + isOnline: t, + networkType: n, + details: a + } = e; + return { + type: Qne, + isOnline: t, + networkType: n, + details: a + } + }({ + isOnline: n, + networkType: a, + details: r + })) + })), t(_ae(n)), e.start() + } + break; + case Wa: { const { - deviceStatusType: n, - deviceStatusText: a - } = t.value; - return Gie({}, e, { - deviceStatusText: a, - deviceStatusType: n - }) + _cleanup: e + } = n()[m]; + e && (e(), t(_ae(void 0))) } - case BR: - return Gie({}, e, { - dialOutNumber: t.value - }); - case qR: - return Gie({}, e, { - dialOutCountry: t.value - }); - case UR: - return Gie({}, e, { - dialOutStatus: t.value - }); - case HR: - return Gie({}, e, { - showJoinByPhoneDialog: t.value - }); - case FR: - return Gie({}, e, { - isDisplayNameRequired: !0 - }); - default: - return e - } - })); - const Qie = { - active: !1, - controller: { - isCapturingEvents: !1 - }, - receiver: { - enabled: !1 } - }; - - function Xie(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - eoe(e, t, n[t]) - })) - } - return e + return r } + })); - function eoe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } + function Sae(e, t, n, a) { + let { + getState: r, + dispatch: i + } = e; + const o = "true" === a, + { + e2ee: s = {} + } = r()["features/base/config"]; + if (i(sS({ + conference: t, + id: n, + e2eeEnabled: o + })), s.externallyManagedKey) return; + const { + maxMode: l + } = r()["features/e2ee"] || {}; + l === f8 && o || i(l8(o)) + } - function toe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Eae(e, t) { + let { + getState: n, + dispatch: a + } = e; + const r = n(), + { + startAudioMuted: i + } = r["features/base/config"], + { + soundsParticipantJoined: o, + soundsParticipantLeft: s + } = r["features/base/settings"]; + if (!t.participant.local && (!i || Yh(r) < i)) { + const { + isReplacing: e, + isReplaced: n + } = t.participant; + if (t.type === qw) { + if (!o) return; + const { + presence: n + } = t.participant; + n === WW || n === YW || e || a(Ii(Oh)) + } else t.type === Uw && !n && s && a(Ii(Nh)) } + } - function noe(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - aoe(e, t, n[t]) + function xae(e, t, n) { + const { + dispatch: a, + getState: r + } = e, { + participant: { + avatarURL: i, + email: o, + id: s, + local: l, + name: c, + raisedHandTimestamp: u + } + } = n; + if (void 0 !== u && l) { + const { + conference: e + } = r()["features/base/conference"], t = parseInt(u, 10); + e && t !== Uh(r()).raisedHandTimestamp && e.setLocalParticipantProperty("raisedHand", t) + } + const d = t(n); + if (Object.keys(r()["features/base/config"]).length) { + const { + disableThirdPartyRequests: t + } = r()["features/base/config"]; + if (!t && (i || o || s || c)) { + const t = !s && l ? Uh(r()).id : s; + Bh(Vh(r(), t), e).then((e => { + a(function(e, t) { + return { + type: Gw, + participant: { + id: e, + loadableAvatarUrl: t + } + } + }(t, e)) })) } - return e } + if ("object" == typeof APP) { + const e = l ? APP.conference.getMyUserId() : s; + APP.UI.refreshAvatarDisplay(e) + } + return d + } - function aoe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Cae(e, t, n, a) { + let r, { + dispatch: i, + getState: o + } = e; + switch (a) { + case void 0: + case "false": + r = 0; + break; + case "true": + r = Date.now(); + break; + default: + r = parseInt(a, 10) + } + const s = o(); + i(sS({ + conference: t, + id: n, + raisedHandTimestamp: r + })), i(pS({ + id: n, + raisedHandTimestamp: r + })), "undefined" != typeof APP && APP.API.notifyRaiseHandUpdated(n, r); + const l = tm(s), + c = Vh(s, n); + let u = !1; + l && (u = Mm(c, Fi, s) || Mm(c, Bi, s)); + const d = u ? { + customActionNameKey: ["notify.allowAction"], + customActionHandler: [() => i(Jm(n))] + } : {}; + if (r) { + let e; + const t = Kh(s, n), + { + raisedHandsQueue: a + } = s["features/base/participants"]; + if (a.length > 1) { + const n = a.length - 1; + e = Qr.t("notify.raisedHands", { + participantName: t, + raisedHands: n + }) + } else e = t; + i(tg({ + titleKey: "notify.somebody", + title: e, + descriptionKey: "notify.raisedHand", + raiseHandNotification: !0, + concatText: !0, + uid: "RAISE_HAND_NOTIFICATION", + ...d + }, u ? Yf.MEDIUM : Yf.SHORT)), i(Ii(CZ)) } - nt.register("features/remote-control", ((e = Qie, t) => { - switch (t.type) { - case m0: - return Jie({}, e, { - controller: Le(e.controller, "isCapturingEvents", t.isCapturingEvents) - }); - case f0: - return Le(e, "active", t.active); - case g0: - return Jie({}, e, { - receiver: Le(e.receiver, "transport", t.transport) - }); - case b0: - return Jie({}, e, { - receiver: Le(e.receiver, "enabled", t.enabled) - }); - case k0: - return Jie({}, e, { - controller: Le(e.controller, "requestedParticipant", t.requestedParticipant) - }); - case v0: - return Jie({}, e, { - controller: Le(e.controller, "controlled", t.controlled) - }); - case y0: - return Jie({}, e, { - receiver: Le(e.receiver, "controller", t.controller) - }) - } - return e - })), nt.register("features/screen-share", ((e = {}, t) => { - const { - captureFrameRate: n, - isSharingAudio: a - } = t; - switch (t.type) { - case EV: - return Xie({}, e, { - isSharingAudio: a - }); - case xV: - return Xie({}, e, { - captureFrameRate: n - }); - default: - return e + } + qe.register((e => t => n => { + switch (n.type) { + case Va: + return function(e) { + let { + dispatch: t + } = e; + t(Oi(Oh, "joined.wav")), t(Oi(Nh, "left.wav")) + }(e), + function(e, t, n) { + let { + getState: a, + dispatch: r + } = e; + const i = t(n), + o = a()["features/base/settings"]; + return r(function() { + return nS(ze(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, "local", !0)) + }({ + avatarURL: o.avatarURL, + email: o.email, + name: o.displayName + })), i + }(e, t, n); + case Wa: + return function(e) { + let { + dispatch: t + } = e; + t(Ri(Oh)), t(Ri(Nh)) + }(e), + function(e, t, n) { + let { + dispatch: a + } = e; + const r = t(n); + return a(((e, t) => { + const n = Uh(t); + if (n) return e(rS(n.id, void 0)) + })), r + }(e, t, n); + case KF: + e.dispatch(eS(n.conference.myUserId())); + break; + case Nw: { + const { + id: t + } = n.participant, a = e.getState(), r = Uh(a); + r && r.id === t && am(r) && ! function(e) { + var t; + return (null === (t = e["features/base/config"]) || void 0 === t ? void 0 : t.disableRemoveRaisedHandOnFocus) || !1 + }(a) && e.dispatch(dS(!1)); + break } - })), et.register("features/screnshot-capture", !0, { - capturesEnabled: !1 - }), nt.register("features/screenshot-capture", ((e = {}, t) => t.type === f9 ? function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - toe(e, t, n[t]) - })) + case Rw: { + const { + conference: t + } = e.getState()["features/base/conference"]; + t.grantOwner(n.id); + break } - return e - }({}, e, { - capturesEnabled: t.payload - }) : e)); - const roe = {}; - - function ioe(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - ooe(e, t, n[t]) - })) + case zw: { + const { + conference: t + } = e.getState()["features/base/conference"]; + t.kickParticipant(n.id); + break } - return e - } - - function ooe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register("features/shared-video", ((e = roe, t) => { - const { - videoUrl: n, - status: a, - time: r, - ownerId: i, - disabled: o, - muted: s - } = t; - switch (t.type) { - case O2: - return roe; - case T2: - return noe({}, e, { - muted: s, - ownerId: i, - status: a, - time: r, - videoUrl: n - }); - case M2: - return noe({}, e, { - disabled: o - }); - default: - return e + case Kw: { + var a; + const { + raisedHandTimestamp: t + } = n, r = null === (a = Uh(e.getState())) || void 0 === a ? void 0 : a.id; + e.dispatch(sS({ + id: r, + local: !0, + raisedHandTimestamp: t + })), e.dispatch(pS({ + id: r, + raisedHandTimestamp: t + })), "undefined" != typeof APP && APP.API.notifyRaiseHandUpdated(r, t); + break } - })), nt.register("features/talk-while-muted", ((e = {}, t) => t.type === yte ? Le(e, "currentNotificationUid", t.uid) : e)); - const soe = "features/virtual-background"; - - function loe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register(soe, ((e = {}, t) => { - const { - virtualSource: n, - backgroundEffectEnabled: a, - blurValue: r, - backgroundType: i, - selectedThumbnail: o - } = t; - switch (et.register(soe, e.backgroundType !== Co), t.type) { - case bo: - return ioe({}, e, { - virtualSource: n, - blurValue: r, - backgroundType: i, - selectedThumbnail: o - }); - case go: - return ioe({}, e, { - backgroundEffectEnabled: a - }) + case Lw: { + const { + conference: t + } = e.getState()["features/base/conference"]; + t.muteParticipant(n.id, n.mediaType); + break } - return e - })); - const coe = { - localTracksDuration: { - audio: { - startedTime: -1, - value: 0 - }, - video: { - camera: { - startedTime: -1, - value: 0 - }, - desktop: { - startedTime: -1, - value: 0 - } - }, - conference: { - startedTime: -1, - value: 0 + case "PARTICIPANT_DISPLAY_NAME_CHANGED": + if ("undefined" != typeof APP) { + const t = Uh(e.getState()); + t && t.id === n.id && APP.UI.emitEvent(rX.NICKNAME_CHANGED, n.name) } + break; + case $w: { + const { + participant: t + } = n; + let a = nm(e.getState()); + t.raisedHandTimestamp ? (a.push({ + id: t.id, + raisedHandTimestamp: t.raisedHandTimestamp + }), a = a.sort(((e, t) => { + let { + raisedHandTimestamp: n + } = e, { + raisedHandTimestamp: a + } = t; + return n - a + }))) : a = a.filter((e => { + let { + id: n + } = e; + return n !== t.id + })), n.queue = a; + break } - }; - - function uoe(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - doe(e, t, n[t]) + case qw: + return Eae(e, n), xae(e, t, n); + case Uw: + Eae(e, n); + break; + case Hw: + return xae(e, t, n) + } + return t(n) + })), tt.register((e => vF(e)), ((e, t) => { + let { + dispatch: n, + getState: a + } = t; + (0, Me.unstable_batchedUpdates)((() => { + for (const [t, r] of Jh(a()))(!e || r.conference !== e) && n(rS(t, r.conference, r.isReplaced)) + })) + })), tt.register((e => e["features/base/conference"]), ((e, t) => { + let { + leaving: n + } = e, { + dispatch: a, + getState: r + } = t; + const i = r(), + o = Uh(i); + let s; + if (!o || (s = o.id) === Ih) return; + const l = fF(i, (e => e === n || e.myUserId() !== s)); + l && a(eS(Ih)) + })), tt.register((e => e["features/base/conference"].conference), ((e, t) => { + if (e) { + const n = { + "e2ee.enabled": (n, a) => Sae(t, e, n.getId(), a), + features_e2ee: (n, a) => t.dispatch(sS({ + conference: e, + id: n.getId(), + e2eeSupported: a + })), + features_jigasi: (n, a) => t.dispatch(sS({ + conference: e, + id: n.getId(), + isJigasi: a + })), + "features_screen-sharing": (n, a) => t.dispatch(sS({ + conference: e, + id: n.getId(), + features: { + "screen-sharing": !0 + } + })), + raisedHand: (n, a) => Cae(t, e, n.getId(), a), + remoteControlSessionStatus: (n, a) => t.dispatch(sS({ + conference: e, + id: n.getId(), + remoteControlSessionStatus: a })) - } - return e + }; + e.getParticipants().forEach((e => { + Object.keys(n).forEach((t => { + const a = e.getProperty(t); + void 0 !== a && n[t](e, a) + })) + })), e.on(ht.PARTICIPANT_PROPERTY_CHANGED, ((e, t, a, r) => { + n.hasOwnProperty(t) && n[t](e, r) + })) + } else { + const n = Uh(t.getState).id; + Sae(t, e, n, !1), Cae(t, e, n, 0) + } + })); + const Aae = _().throttle((e => Xe.persistState(e)), 2e3); + let Tae; + "function" == typeof window.addEventListener && window.addEventListener("unload", (() => { + Aae.flush() + })), qe.register((e => t => n => { + const a = Fe(e), + r = t(n), + i = Fe(e); + return a === i || Aae(i), r + })), qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case Wa: + window.removeEventListener("resize", Tae), Tae = void 0; + break; + case Va: + ! function(e) { + Tae = () => { + const { + innerHeight: t, + innerWidth: n + } = window; + e.dispatch(j3(n, t)) + }, window.addEventListener("resize", Tae) + }(e) } - - function doe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + return a + })), qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case Va: + ! function(e) { + let { + getState: t + } = e; + const { + disableCallIntegration: n + } = t()["features/base/settings"] + }(e); + break; + case QU: + ! function(e) { + let { + dispatch: t, + getState: n + } = e; + const a = n(); + if (Boolean(a["features/base/jwt"].jwt)) { + const e = function(e) { + const { + user: t + } = e["features/base/jwt"]; + return null == t ? void 0 : t.name + }(a); + e && t(hn({ + displayName: e + })) + } + }(e); + break; + case pn: + ! function(e) { + let { + settings: { + disableCallIntegration: t + } + } = e + }(n), + function(e, t) { + let { + dispatch: n + } = e, { + settings: { + startAudioOnly: a + } + } = t; + "boolean" == typeof a && n(GX(a)) + }(e, n), + function(e, t) { + let { + dispatch: n, + getState: a + } = e; + const { + settings: r + } = t, i = { + ...Uh(a()) + }; + for (const e in r) r.hasOwnProperty(e) && (i[(o = e, "displayName" === o ? "name" : o)] = r[e]); + var o; + n(sS(i)) + }(e, n), + function(e) { + let { + settings: { + disableCrashReporting: t + } + } = e + }(n); + break; + case jF: + ! function(e) { + let { + dispatch: t, + getState: n + } = e; + const a = It(n()["features/base/connection"].locationURL), + r = a["userInfo.email"], + i = a["userInfo.displayName"]; + if (!r && !i) return; + const o = Uh(n()); + if (o) { + const e = _().escape(i), + n = _().escape(r); + t(sS({ + ...o, + email: n, + name: e + })), t(hn({ + displayName: e, + email: n + })) + } + }(e) } - nt.register("features/analytics", ((e = coe, t) => t.type === Ste ? function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - loe(e, t, n[t]) - })) - } - return e - }({}, e, { - localTracksDuration: t.localTracksDuration - }) : e)), nt.register("features/authentication", ((e = {}, t) => { - switch (t.type) { - case ez: - return Ne(e, { - error: void 0, - progress: void 0, - thenableWithCancel: void 0 - }); - case tz: - return Ne(e, { - error: void 0, - waitForOwnerTimeoutID: void 0 - }); - case nz: { + return a + })); + const Dae = $e("features/base/sounds"); qe.register((e => t => n => { + switch (n.type) { + case Ti: + ! function(e, t) { let { - thenableWithCancel: n - } = t; - if (e.thenableWithCancel === n) { + getState: n + } = e; + const a = n()["features/base/sounds"].get(t); + a ? a.audioElement ? a.audioElement.play() : Dae.warn(`PLAY_SOUND: sound not loaded yet for id: ${t}`) : Dae.warn(`PLAY_SOUND: no sound found for id: ${t}`) + }(e, n.soundId); + break; + case Pi: + ! function(e, t) { + let { + getState: n + } = e; + const a = n()["features/base/sounds"].get(t); + if (a) { const { - error: a, - progress: r - } = t; - return (a || 1 === r) && (n = void 0), Ne(e, { - error: a, - progress: r || void 0, - thenableWithCancel: n - }) - } - break - } - case az: - return Ne(e, { - error: void 0, - progress: void 0, - thenableWithCancel: t.thenableWithCancel - }); - case rz: - return Ne(e, { - waitForOwnerTimeoutID: t.waitForOwnerTimeoutID - }) - } - return e - })); - const poe = { - audioModerationEnabled: !1, - videoModerationEnabled: !1, - audioWhitelist: {}, - videoWhitelist: {}, - pendingAudio: [], - pendingVideo: [] - }; - - function hoe(e, t, n = {}) { - let a = !1; - const r = Xh[e], - i = n[r].map((e => e.id === t.id ? (a = !0, uoe({}, e, t)) : e)); - return !!a && (n[r] = i, !0) + audioElement: e + } = a; + e ? e.stop() : Dae.warn(`STOP_SOUND: sound not loaded yet for id: ${t}`) + } else Dae.warn(`STOP_SOUND: no sound found for id: ${t}`) + }(e, n.soundId) + } + return t(n) + })); + const Pae = "SET_CONNECTION_STATE", jae = $e("features/base/testing"); + + function Mae(e, t) { + switch (e) { + case ht.CONNECTION_ESTABLISHED: + case ht.CONNECTION_INTERRUPTED: + case ht.CONNECTION_RESTORED: + t({ + type: Pae, + connectionState: e + }); + break; + default: + jae.error(`onConnectionEvent - unsupported event type: ${e}`) } + } - function moe(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - foe(e, t, n[t]) - })) - } - return e - } + function Iae(e, t) { + let { + getState: n + } = e, a = arguments.length > 2 && void 0 !== arguments[2] && arguments[2]; + return eh(n()["features/base/tracks"], t, a) + } - function foe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } + function Oae(e, t) { + let { + getState: n, + dispatch: a + } = e; + const r = sh(n()["features/base/tracks"], t.jitsiTrack), + { + jitsiTrack: i, + noDataFromSourceNotificationInfo: o = {} + } = r || {}; + o && o.uid && (a(Xf(o.uid)), a(_h(i, void 0))) + } - function goe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register("features/av-moderation", ((e = poe, t) => { - switch (t.type) { - case Dm: - return uoe({}, e, t.mediaType === Xi ? { - audioModerationEnabled: !1, - audioUnmuteApproved: void 0 - } : { - videoModerationEnabled: !1, - videoUnmuteApproved: void 0 - }, { - audioWhitelist: {}, - videoWhitelist: {}, - pendingAudio: [], - pendingVideo: [] - }); - case Om: - return uoe({}, e, t.mediaType === Xi ? { - audioModerationEnabled: !0 - } : { - videoModerationEnabled: !0 - }); - case Rm: - return uoe({}, e, t.mediaType === Xi ? { - audioUnmuteApproved: !0 - } : { - videoUnmuteApproved: !0 - }); - case Lm: - return uoe({}, e, t.mediaType === Xi ? { - audioUnmuteApproved: !1 - } : { - videoUnmuteApproved: !1 - }); - case Um: { - const { - participant: n + function Nae(e, t, n) { + let { + ensureTrack: a, + authority: r, + muted: i + } = t; + const o = Iae(e, n, !0); + if (o) { + const { + jitsiTrack: e + } = o, t = r === Ui; + e && ("desktop" !== e.videoType || t) && hh(e, i) + } else i || !a || "undefined" != typeof APP && !kH(e.getState()) || e.dispatch(fh({ + devices: [n] + })) + } + qe.register((e => t => n => { + switch (n.type) { + case KF: + ! function(e, t) { + let { + dispatch: n } = t; - if (!e.pendingAudio.find((e => e.id === n.id))) { - const t = [...e.pendingAudio]; - return t.push(n), uoe({}, e, { - pendingAudio: t - }) - } - return e - } - case Hv: { - const n = t.participant, - { - audioModerationEnabled: a, - videoModerationEnabled: r - } = e; - let i = !1; - return a && (i = hoe(Xi, n, e)), r && (i = i || hoe(to, n, e)), i ? uoe({}, e) : e - } - case Uv: { - const n = t.participant, - { - audioModerationEnabled: a, - videoModerationEnabled: r - } = e; - let i = !1; - if (a) { - const t = e.pendingAudio.filter((e => e.id !== n.id)); - e.pendingAudio.length !== t.length && (e.pendingAudio = t, i = !0) - } - if (r) { - const t = e.pendingVideo.filter((e => e.id !== n.id)); - e.pendingVideo.length !== t.length && (e.pendingVideo = t, i = !0) - } - return i ? uoe({}, e) : e - } - case Tm: { + e.on(ht.CONNECTION_ESTABLISHED, Mae.bind(null, ht.CONNECTION_ESTABLISHED, n)), e.on(ht.CONNECTION_RESTORED, Mae.bind(null, ht.CONNECTION_RESTORED, n)), e.on(ht.CONNECTION_INTERRUPTED, Mae.bind(null, ht.CONNECTION_INTERRUPTED, n)) + }(n.conference, e); + break; + case In: { + const a = t(n); + return function(e) { const { - id: n, - mediaType: a - } = t; - return a === Xi ? uoe({}, e, { - pendingAudio: e.pendingAudio.filter((e => e.id !== n)) - }) : a === to ? uoe({}, e, { - pendingVideo: e.pendingVideo.filter((e => e.id !== n)) - }) : e - } - case qm: { + getState: t + } = e; + P9(t()) && (Dt().testing = { + getRemoteVideoType: j9.bind(null, e), + isLargeVideoReceived: M9.bind(null, e), + isRemoteVideoReceived: I9.bind(null, e) + }) + }(e), a + } + } + return t(n) + })), tt.register((e => e["features/base/tracks"].filter((e => "desktop" === e.videoType)).map((e => e.participantId))), ((e, t, n) => { + "object" == typeof APP && (_().isEqual(_().sortBy(e), _().sortBy(n)) || APP.API.notifySharingParticipantsChanged(e)) + })), tt.register((e => lh(e["features/base/tracks"])), ((e, t, n) => { + "object" == typeof APP && e !== n && APP.API.notifyVideoMutedStatusChanged(e) + })), qe.register((e => t => n => { + switch (n.type) { + case up: + n.track.local && e.dispatch(eI()); + break; + case hp: { + const a = t(n); + return function(e, t) { const { - mediaType: n, - id: a - } = t; - return n === Xi ? uoe({}, e, { - audioWhitelist: uoe({}, e.audioWhitelist, { - [a]: !0 - }) - }) : n === to ? uoe({}, e, { - videoWhitelist: uoe({}, e.videoWhitelist, { - [a]: !0 - }) - }) : e - } - case Bm: { + getState: n, + dispatch: a + } = e, r = sh(n()["features/base/tracks"], t.track.jitsiTrack); + if (!r || !r.local) return; const { - mediaType: n, - id: a - } = t; - return n === Xi ? uoe({}, e, { - audioWhitelist: uoe({}, e.audioWhitelist, { - [a]: !1 - }) - }) : n === to ? uoe({}, e, { - videoWhitelist: uoe({}, e.videoWhitelist, { - [a]: !1 - }) - }) : e + jitsiTrack: i + } = r; + if (r.mediaType === Fi && r.isReceivingData && Oae(e, t.track), r.mediaType === Bi) { + const { + noDataFromSourceNotificationInfo: n = {} + } = r; + if (r.isReceivingData) n.timeout && (clearTimeout(n.timeout), a(_h(i, void 0))), Oae(e, t.track); + else { + if (n.timeout) return; + const e = setTimeout((() => a(bh(i))), 5e3); + a(_h(i, { + timeout: e + })) + } + } + }(e, n), a + } + case mp: + Oae(e, n.track); + break; + case lf: + if (!n.muted && ph(e.getState())) return; + Nae(e, n, Fi); + break; + case uf: { + const t = Iae(e, Bi); + let a; + t && (a = t.jitsiTrack) && a.getCameraFacingMode() !== n.cameraFacingMode && e.dispatch({ + type: ff + }); + break + } + case pf: + if (!n.muted && ph(e.getState())) return; + Nae(e, n, n.mediaType); + break; + case ff: { + const t = Iae(e, Bi); + let n; + if (t && (n = t.jitsiTrack)) { + n._switchCamera(); + const t = n.getCameraFacingMode() === Li; + e.dispatch({ + type: gp, + track: { + jitsiTrack: n, + mirror: t + } + }) } + break } - return e - })), nt.register("features/base/app", ((e = {}, t) => { - switch (t.type) { - case Ya: { + case cp: + if ("object" == typeof APP) { + if ((n.enabled || void 0 === n.enabled) && bm(Bi, e.getState())) return void(jw(qi, e.getState()) || e.dispatch(rf(qi))); const { - app: n - } = t; - if (e.app !== n) return moe({}, e, { - app: n - }); - break - } - case Ga: - if (e.app === t.app) return moe({}, e, { - app: void 0 + enabled: t, + audioOnly: a, + ignoreDidHaveVideo: r + } = n; + APP.UI.emitEvent(rX.TOGGLE_SCREENSHARING, { + enabled: t, + audioOnly: a, + ignoreDidHaveVideo: r }) + } + break; + case gp: { + if ("undefined" != typeof APP) { + const a = t(n); + if (kH(e.getState())) return a; + const { + jitsiTrack: r + } = n.track, i = r.isMuted(), o = r.getParticipantId(); + return r.type !== Fi ? r.type === qi ? APP.conference.mutePresenter(i) : r.isLocal() && r.videoType !== Yi ? APP.conference.setVideoMuteStatus() : r.isLocal() && i && r.videoType === Yi ? e.dispatch(yh(!1, !1, !0)) : APP.UI.setVideoMuted(o) : r.isLocal() ? APP.conference.setAudioMuteStatus(i) : APP.UI.setAudioMuted(o, i), a + } + const { + jitsiTrack: a + } = n.track; + a.isMuted() && a.type === Bi && a.videoType === Yi && e.dispatch(yh(!1)); + break } - return e - })); - const boe = { - enabled: !1 - }; - - function yoe(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - voe(e, t, n[t]) - })) - } - return e } - - function voe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + return t(n) + })), tt.register((e => vF(e)), ((e, t, n) => { + let { + dispatch: a, + getState: r + } = t; + if (n && !e) { + const e = r()["features/base/tracks"]; + (0, Me.unstable_batchedUpdates)((() => { + for (const t of e) a(wh(t.jitsiTrack)) + })) } - nt.register("features/base/audio-only", ((e = boe, t) => t.type === $Q ? function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - goe(e, t, n[t]) - })) - } - return e - }({}, e, { - enabled: t.audioOnly - }) : e)), nt.register("features/base/color-scheme", ((e = {}, t) => "SET_COLOR_SCHEME" === t.type && k().cloneDeep(t.colorScheme) || e)); - const koe = { - conference: void 0, - e2eeSupported: void 0, - joining: void 0, - leaving: void 0, - locked: void 0, - membersOnly: void 0, - password: void 0, - passwordRequired: void 0 - }; + })); + const Rae = "USER_INTERACTION_RECEIVED"; + let zae = null; - function _oe(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - woe(e, t, n[t]) - })) - } - return e - } + function Lae(e, t) { + t.isTrusted && (e({ + type: Rae + }), Fae()) + } - function woe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Fae() { + window.removeEventListener("mousedown", zae), window.removeEventListener("keydown", zae), zae = null + } + + function qae(e, t) { + let { + dispatch: n, + getState: a + } = e, { + id: r, + message: i, + privateMessage: o, + timestamp: s + } = t, l = !(arguments.length > 2 && void 0 !== arguments[2]) || arguments[2], c = arguments.length > 3 && void 0 !== arguments[3] && arguments[3]; + const u = a(), + { + isOpen: d + } = u["features/chat"], + { + iAmRecorder: p + } = u["features/base/config"], + { + soundsIncomingMessage: h + } = u["features/base/settings"]; + h && l && !d && n(Ii(HV)); + const m = Vh(u, r) || {}, + f = Uh(a), + g = Kh(u, r), + b = m.local || d, + y = s ? new Date(s) : new Date, + v = y.getTime(); + n(ZH({ + displayName: g, + hasRead: b, + id: r, + messageType: m.local ? WV : YV, + message: i, + privateMessage: o, + recipient: Kh(u, f.id), + timestamp: v, + isReaction: c + })), "undefined" != typeof APP && (APP.API.notifyReceivedChatMessage({ + body: i, + id: r, + nick: g, + privateMessage: o, + ts: s + }), p || n(xI(4e3))) + } + qe.register((e => t => n => { + switch (n.type) { + case Va: + ! function(e) { + let { + dispatch: t + } = e; + Fae(), zae = Lae.bind(null, t), window.addEventListener("mousedown", zae), window.addEventListener("keydown", zae) + }(e); + break; + case Wa: + Fae() + } + return t(n) + })), tt.register((e => e["features/base/conference"].conference), ((e, t, n) => { + let { + dispatch: a + } = t; + e && !n && (e.on(ht.BREAKOUT_ROOMS_MOVE_TO_ROOM, (e => { + d2.debug(`Moving to room: ${e}`), a(h2(e)) + })), e.on(ht.BREAKOUT_ROOMS_UPDATED, (e => { + let { + rooms: t, + roomCounter: n + } = e; + d2.debug("Room list updated"), a({ + type: u2, + rooms: t, + roomCounter: n + }) + }))) + })), qe.register((e => t => n => { + const { + getState: a + } = e; + if (!OJ(a)) return t(n); + switch (n.type) { + case mn: { + const r = a()["features/base/known-domains"], + i = t(n); + return Re(r, a()["features/base/known-domains"]) || NJ(e), i + } + case iae: { + const a = t(n); + return function(e, t) { + let { + appState: n + } = t; + "background" === n && e.dispatch((void 0, { + type: lJ, + authorization: undefined + })) + }(e, n), a + } + case In: { + const a = t(n); + return NJ(e), a + } + case sJ: { + const a = t(n); + return NJ(e, n.isInteractive, n.forcePermission), a + } } - nt.register("features/base/conference", ((e = koe, t) => { - switch (t.type) { - case qI: - return function(e, { - authEnabled: t, - authLogin: n - }) { - return Ne(e, { - authEnabled: t, - authLogin: n - }) - }(e, t); - case BI: - return function(e, { - conference: t, - error: n - }) { - const a = e.conference || e.joining; - if (a && a !== t) return e; - let r, i, o; - switch (n.name) { - case gt.AUTHENTICATION_REQUIRED: - r = t; - break; - case gt.CONFERENCE_ACCESS_DENIED: - case gt.MEMBERS_ONLY_ERROR: - i = t; - break; - case gt.PASSWORD_REQUIRED: - o = t - } - return Ne(e, { - authRequired: r, - conference: void 0, - e2eeSupported: void 0, - error: n, - joining: void 0, - leaving: void 0, - locked: o ? m8 : void 0, - membersOnly: i, - password: void 0, - passwordRequired: o + return t(n) + })), qe.register((e => t => n => { + const { + dispatch: a, + getState: r + } = e, i = Uh(r()); + let o, s; + switch (n.type) { + case VH: + s = dW(r()), n.isReaction ? n.hasRead = !1 : s = n.hasRead ? 0 : s + 1, o = r()["features/chat"].isOpen, "undefined" != typeof APP && APP.API.notifyChatUpdated(s, o); + break; + case Va: + a(Oi(HV, "incomingMessage.wav")); + break; + case Wa: + a(Ri(HV)); + break; + case HF: + ! function(e, t) { + t.getState()["features/base/config"].iAmRecorder || (e.on(ht.MESSAGE_RECEIVED, ((e, n, a) => { + qae(t, { + id: e, + message: n, + privateMessage: !1, + timestamp: a }) - }(e, t); - case UI: - return function(e, { - conference: t - }) { - const n = t.room && t.room.locked ? m8 : void 0; - return Ne(e, { - authRequired: void 0, - conference: t, - e2eeSupported: t.isE2EESupported(), - joining: void 0, - membersOnly: void 0, - leaving: void 0, - locked: n, - passwordRequired: void 0 + })), e.on(ht.PRIVATE_MESSAGE_RECEIVED, ((e, n, a) => { + qae(t, { + id: e, + message: n, + privateMessage: !0, + timestamp: a }) - }(e, t); - case VI: - return Le(e, "subject", t.subject); - case WI: - return Le(e, "conferenceTimestamp", t.conferenceTimestamp); - case HI: - case KI: - return function(e, { - conference: t, - type: n - }) { - const a = yoe({}, e); - for (const n in e) - if (e[n] === t) switch (a[n] = void 0, n) { - case "conference": - case "passwordRequired": - delete a.locked, delete a.password + })), e.on(ht.ENDPOINT_MESSAGE_RECEIVED, (function() { + if (OZ(t.getState())) { + for (var e = arguments.length, n = new Array(e), a = 0; a < e; a++) n[a] = arguments[a]; + if (t.dispatch(Ra(...n)), n && n.length >= 2) { + const [{ + _id: e + }, a] = n; + a.name === EZ && (t.dispatch(V6(a.reactions)), qae(t, { + id: e, + message: jZ(a.reactions), + privateMessage: !1, + timestamp: a.timestamp + }, !1, !0)) } - return n === KI && (t !== e.joining && t !== e.conference || (a.leaving = t)), a - }(e, t); - case GI: - return function(e, { - conference: t - }) { - return Ne(e, { - error: void 0, - joining: t - }) - }(e, t); - case PI: - return Le(e, "authRequired", void 0); - case ZI: - return function(e, { - conference: t, - locked: n - }) { - return e.conference !== t ? e : Ne(e, { - locked: n ? e.locked || m8 : void 0, - password: n ? e.password : void 0 - }) - }(e, t); - case QI: - return function(e, t) { - return Le(e, "p2p", t.p2p) - }(e, t); - case eN: - return Le(e, "followMeEnabled", t.enabled); - case DI: - return Le(e, "room", void 0); - case tN: - return function(e, { - conference: t, - method: n, - password: a - }) { - switch (n) { - case t.join: - return Ne(e, { - joining: e.conference ? e.joining : t, - locked: m8, - password: a - }); - case t.lock: - return Ne(e, { - locked: a ? h8 : void 0, - password: a - }) } - return e - }(e, t); - case aN: - return Le(e, "pendingSubjectChange", t.subject); - case rN: - return function(e, t) { - let { - room: n - } = t; - return wI(n) || (n = void 0), Ne(e, { - error: void 0, - room: n - }) - }(e, t); - case iN: - return yoe({}, e, { - startAudioMutedPolicy: t.startAudioMutedPolicy, - startVideoMutedPolicy: t.startVideoMutedPolicy - }) + })), e.on(ht.CONFERENCE_ERROR, ((e, n) => { + e === pt.CHAT_ERROR && function(e, t) { + let { + dispatch: n + } = e; + n(ZH({ + hasRead: !0, + messageType: VV, + message: t, + privateMessage: !1, + timestamp: Date.now() + })) + }(t, n) + }))) + }(n.conference, e); + break; + case GH: + s = 0, "undefined" != typeof APP && APP.API.notifyChatUpdated(s, !0); + break; + case YH: { + const e = r()["features/chat"].isPollsTabFocused; + s = 0, "undefined" != typeof APP && APP.API.notifyChatUpdated(s, !1), e && a(IV()); + break } - return e - })); - const Soe = {}, - Eoe = { - analytics: {}, - disableAudioLevels: !0, - p2p: { - disabledCodec: "", - disableH264: !1, - preferredCodec: "H264", - preferH264: !0 - } - }, - xoe = { - hideConferenceTimer: ["conference-timer"], - hideConferenceSubject: ["subject"], - hideParticipantsStats: ["participants-count"], - hideRecordingLabel: ["recording", "local-recording"] - }; - - function Coe() { - return "ReactNative" === navigator.product ? Eoe : Soe - } - - function Aoe(e) { - return e.connection || e.connecting - } - nt.register("features/base/config", ((e = Coe(), t) => { - switch (t.type) { - case Ln: - return function(e, { - config: t - }) { - const n = k().merge({}, e, t); - return Re(e, n) ? e : n - }(e, t); - case Nn: - return { - error: void 0, locationURL: t.locationURL - }; - case zn: - if (e.locationURL === t.locationURL) return { - error: t.error - }; - break; - case Rn: - return function(e, { - config: t - }) { - t = function(e) { - const t = e; - !Array.isArray(e.toolbarButtons) && "object" == typeof interfaceConfig && Array.isArray(interfaceConfig.TOOLBAR_BUTTONS) && (t.toolbarButtons = interfaceConfig.TOOLBAR_BUTTONS), e.toolbarConfig || (e.toolbarConfig = {}), "boolean" != typeof e.toolbarConfig.alwaysVisible && "object" == typeof interfaceConfig && "boolean" == typeof interfaceConfig.TOOLBAR_ALWAYS_VISIBLE && (t.toolbarConfig.alwaysVisible = interfaceConfig.TOOLBAR_ALWAYS_VISIBLE), "number" != typeof e.toolbarConfig.initialTimeout && "object" == typeof interfaceConfig && "number" == typeof interfaceConfig.INITIAL_TOOLBAR_TIMEOUT && (t.toolbarConfig.initialTimeout = interfaceConfig.INITIAL_TOOLBAR_TIMEOUT), "number" != typeof e.toolbarConfig.timeout && "object" == typeof interfaceConfig && "number" == typeof interfaceConfig.TOOLBAR_TIMEOUT && (t.toolbarConfig.timeout = interfaceConfig.TOOLBAR_TIMEOUT); - const n = Object.keys(xoe).filter((t => e[t])); - var a, r, i, o; - return n.length && (t.conferenceInfo = function(e) { - const { - conferenceInfo: t - } = e; - var n, a; - return t ? { - alwaysVisible: null !== (n = t.alwaysVisible) && void 0 !== n ? n : [...Xre.alwaysVisible], - autoHide: null !== (a = t.autoHide) && void 0 !== a ? a : [...Xre.autoHide] - } : _oe({}, Xre) - }(e), n.forEach((e => { - "hideRecordingLabel" === e ? (t.conferenceInfo.alwaysVisible = t.conferenceInfo.alwaysVisible.filter((t => !xoe[e].includes(t))), t.conferenceInfo.autoHide = k().union(t.conferenceInfo.autoHide, xoe[e])) : (t.conferenceInfo.alwaysVisible = t.conferenceInfo.alwaysVisible.filter((t => !xoe[e].includes(t))), t.conferenceInfo.autoHide = t.conferenceInfo.autoHide.filter((t => !xoe[e].includes(t)))) - }))), !e.connectionIndicators && "object" == typeof interfaceConfig && (interfaceConfig.hasOwnProperty("CONNECTION_INDICATOR_DISABLED") || interfaceConfig.hasOwnProperty("CONNECTION_INDICATOR_AUTO_HIDE_ENABLED") || interfaceConfig.hasOwnProperty("CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT")) && (t.connectionIndicators = { - disabled: interfaceConfig.CONNECTION_INDICATOR_DISABLED, - autoHide: interfaceConfig.CONNECTION_INDICATOR_AUTO_HIDE_ENABLED, - autoHideTimeout: interfaceConfig.CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT - }), t.disabledSounds = t.disabledSounds || [], e.disableJoinLeaveSounds && t.disabledSounds.unshift("PARTICIPANT_LEFT_SOUND", "PARTICIPANT_JOINED_SOUND"), e.disableRecordAudioNotification && t.disabledSounds.unshift("RECORDING_ON_SOUND", "RECORDING_OFF_SOUND", "LIVE_STREAMING_ON_SOUND", "LIVE_STREAMING_OFF_SOUND"), e.disableIncomingMessageSound && t.disabledSounds.unshift("INCOMING_MSG_SOUND"), (e.stereo || e.opusMaxAverageBitrate) && (t.audioQuality = { - opusMaxAverageBitrate: null !== (a = null === (r = e.audioQuality) || void 0 === r ? void 0 : r.opusMaxAverageBitrate) && void 0 !== a ? a : e.opusMaxAverageBitrate, - stereo: null !== (i = null === (o = e.audioQuality) || void 0 === o ? void 0 : o.stereo) && void 0 !== i ? i : e.stereo - }), void 0 === e.disableModeratorIndicator && "object" == typeof interfaceConfig && interfaceConfig.hasOwnProperty("DISABLE_FOCUS_INDICATOR") && (t.disableModeratorIndicator = interfaceConfig.DISABLE_FOCUS_INDICATOR), t - }(t); + case JH: + a(IV()); + break; + case KH: { + const t = e.getState(), + { + conference: r + } = t["features/base/conference"]; + if (r) { + const i = function(e, t) { + if (t.ignorePrivacy) return; const { - audioQuality: n - } = t, a = {}; - (null == n ? void 0 : n.stereo) && Object.assign(a, { - disableAP: !0, - enableNoAudioDetection: !1, - enableNoisyMicDetection: !1, - enableTalkWhileMuted: !1 - }); - const r = k().merge({}, t, a, { - error: void 0 - }, Coe()); - return Re(e, r) ? e : r - }(e, t); - case Fn: - return _oe({}, e, t.config) - } - return e - })), nt.register("features/base/connection", ((e = {}, t) => { - switch (t.type) { - case CI: - return function(e, { - connection: t - }) { - return Aoe(e) !== t ? e : Ne(e, { - connecting: void 0, - connection: void 0, - timeEstablished: void 0 - }) - }(e, t); - case AI: - return function(e, { - connection: t, - timeEstablished: n - }) { - return Ne(e, { - connecting: void 0, - connection: t, - error: void 0, - passwordRequired: void 0, - timeEstablished: n - }) - }(e, t); - case jI: - return function(e, { - connection: t, - error: n - }) { - const a = Aoe(e); - return a && a !== t ? e : Ne(e, { - connecting: void 0, - connection: void 0, - error: n, - passwordRequired: n.name === yt.PASSWORD_REQUIRED ? t : void 0 - }) - }(e, t); - case PI: - return function(e, { - connection: t - }) { - return Ne(e, { - connecting: t, - connection: void 0, - error: void 0, - passwordRequired: void 0, - timeEstablished: void 0 - }) - }(e, t); - case DI: - return function(e, { - locationURL: t - }) { - return Le(e, "locationURL", t) - }(e, t); - case rN: - return function(e) { - return Ne(e, { - error: void 0, - passwordRequired: void 0 - }) - }(e); - case TI: - return function(e, { - showConnectionInfo: t - }) { - return Le(e, "showConnectionInfo", t) - }(e, t) - } - return e - })), nt.register("features/base/dialog", ((e = {}, t) => { - switch (t.type) { - case Xj: { - const { - component: n - } = t; - if (void 0 === n || e.component === n) return Ne(e, { - component: void 0, - componentProps: void 0, - rawDialog: !1 - }); - break + messages: n, + privateMessageRecipient: a + } = e["features/chat"]; + if (a) return; + if (!n.length) return; + const r = "ReactNative" === navigator.product ? n[0] : n[n.length - 1]; + if (r.messageType === WV) return; + if (r.privateMessage) return r.id; + const i = Date.now(), + o = n.filter((e => e.messageType !== WV && e.privateMessage && e.timestamp + 2e4 > i)), + s = "ReactNative" === navigator.product ? o[0] : o[o.length - 1]; + return s ? s.id : void 0 + }(t, n); + if (i) a(VI(qW, { + message: n.message, + participantID: i + })); + else { + const { + privateMessageRecipient: a + } = t["features/chat"]; + "undefined" != typeof APP && APP.API.notifySendingChatMessage(n.message, Boolean(a)), a ? (r.sendPrivateTextMessage(a.id, n.message), function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = Uh(r); + a(ZH({ + displayName: Kh(r, i.id), + hasRead: !0, + id: i.id, + messageType: WV, + message: n, + privateMessage: !0, + recipient: Kh(r, t), + timestamp: Date.now() + })) + }(e, a.id, n.message)) : r.sendTextMessage(n.message) + } } - case eP: - return Ne(e, { - component: t.component, - componentProps: t.componentProps, - rawDialog: t.rawDialog - }) - } - return e - })); - const joe = {}; - - function Poe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register("features/base/flags", ((e = joe, t) => { - if ("UPDATE_FLAGS" === t.type) { - const n = k().merge({}, e, t.flags); - return k().isEqual(e, n) ? e : n + break } - return e - })), nt.register("features/base/jwt", ((e = {}, t) => { - if (t.type === jz) { + case z6: + qae(e, { + id: i.id, + message: n.message, + privateMessage: !1, + timestamp: Date.now() + }, !1, !0) + } + return t(n) + })), tt.register((e => vF(e)), ((e, t, n) => { + let { + dispatch: a, + getState: r + } = t; + e !== n && (r()["features/chat"].isOpen && a(QH()), a({ + type: WH + })) + })), tt.register((e => e["features/chat"].isOpen), ((e, t) => { + let { + dispatch: n + } = t; + "undefined" != typeof APP && e && n(xI()) + })), qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case HF: + case D3: { const { - type: n - } = t, a = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Poe(e, t, n[t]) - })) - } - return e - }({}, function(e, t) { - if (null == e) return {}; - var n, a, r = function(e, t) { - if (null == e) return {}; - var n, a, r = {}, - i = Object.keys(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || (r[n] = e[n]); - return r - }(e, t); - if (Object.getOwnPropertySymbols) { - var i = Object.getOwnPropertySymbols(e); - for (a = 0; a < i.length; a++) n = i[a], t.indexOf(n) >= 0 || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]) - } - return r - }(t, ["type"])); - return Re(e, a) ? e : a + dispatch: t, + getState: n + } = e, a = n(), { + reducedUI: r + } = a["features/base/responsive-ui"]; + t(_I(!r)), t({ + type: _S, + enabled: !r + }); + break } - return e - })); - const Doe = ["alpha.jitsi.net", "beta.meet.jit.si", "meet.jit.si", "8x8.vc"], - Toe = "features/base/known-domains"; - - function Ooe(e, t) { - let n = Array.isArray(e) ? e : []; - if (Array.isArray(t)) { - n = Array.from(e); - for (let e of t) e = e.toLowerCase(), !n.includes(e) && n.push(e) + case ZF: { + const { + dispatch: t + } = e; + t((r = n.participant, (e, t) => { + if (!r || r.isReplaced && r.isReplaced()) return; + const n = { + participantDisplayName: Kh(t, r.getId()) + }; + e(tg({ + appearance: Gf, + hideErrorSupportLink: !0, + descriptionKey: "dialog.kickMessage", + descriptionArguments: n, + titleKey: "dialog.kickTitle", + titleArguments: n + }, Yf.STICKY)) + })); + break } - return n } - - function Moe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + var r; + return a + })), tt.register((e => vF(e)), ((e, t, n) => { + let { + dispatch: a, + getState: r + } = t; + const { + authRequired: i, + membersOnly: o, + passwordRequired: s + } = r()["features/base/conference"]; + e !== n && (a(uS(null)), void 0 !== i || void 0 !== s || void 0 !== o || BI(r(), F1) || a(HI())) + })), qe.register((e => e => t => (t.type === HF && w3.startListeningForStats(t.conference), e(t)))); + const Bae = "OPEN_DESKTOP_APP", Uae = "OPEN_WEB_APP"; + + function Hae() { + return e => { + e({ + type: Uae + }), e(tB()) } - - function Ioe(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Noe(e, t, n[t]) - })) - } - return e + } + const Vae = "deepLinking"; class Wae extends x.Component { + constructor(e) { + super(e), this._onLaunchWeb = this._onLaunchWeb.bind(this), this._onTryAgain = this._onTryAgain.bind(this) } - - function Noe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + componentDidMount() { + Da(Gt("displayed", "DeepLinkingDesktop", { + isMobileBrowser: !1 + })) } - et.register(Toe), nt.register(Toe, ((e = Doe, t) => { - switch (t.type) { - case yn: - return Ooe(e, t.knownDomains); - case Ya: - return Ooe(e, Doe); - default: - return e - } - })), nt.register("features/base/lastn", ((e = {}, t) => { - switch (t.type) { - case Rn: - return function(e, { - config: t - }) { - return Le(e, "lastNLimits", function(e) { - if ("object" != typeof e || !Object.keys(e).length || Object.keys(e).find((t => null === t || isNaN(Number(t)) || null === e[t] || isNaN(Number(e[t]))))) return; - const t = new Map, - n = Object.keys(e).map((e => Number(e))).sort(((e, t) => e - t)); - for (const a of n) t.set(a, Number(e[a])); - return t - }(t.lastNLimits)) - }(e, t); - case O8: { - const { - lastN: n - } = t; - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Moe(e, t, n[t]) - })) - } - return e - }({}, e, { - lastN: n - }) - } - } - return e - })); - const zoe = {}; + render() { + const { + t: e + } = this.props, { + HIDE_DEEP_LINKING_LOGO: t, + NATIVE_APP_NAME: n, + SHOW_DEEP_LINKING_IMAGE: a + } = interfaceConfig, r = a ? null : { + width: "100%" + }; + return C().createElement(_v, { + mode: "light" + }, C().createElement("div", { + className: "deep-linking-desktop" + }, C().createElement("div", { + className: "header" + }, t ? null : C().createElement("img", { + alt: e("welcomepage.logo.logoDeepLinking"), + className: "logo", + src: "images/logo-deep-linking.png" + })), C().createElement("div", { + className: "content" + }, a ? C().createElement("div", { + className: "leftColumn" + }, C().createElement("div", { + className: "leftColumnContent" + }, C().createElement("div", { + className: "image" + }))) : null, C().createElement("div", { + className: "rightColumn", + style: r + }, C().createElement("div", { + className: "rightColumnContent" + }, C().createElement("h1", { + className: "title" + }, e(`${Vae}.title`, { + app: n + })), C().createElement("p", { + className: "description" + }, e(`${Vae}.${pY()?"description":"descriptionWithoutWeb"}`, { + app: n + })), C().createElement("div", { + className: "buttons" + }, C().createElement(JI, null, C().createElement(DC, { + appearance: "default", + onClick: this._onTryAgain + }, e(`${Vae}.tryAgainButton`)), pY() && C().createElement(DC, { + onClick: this._onLaunchWeb + }, e(`${Vae}.launchWebButton`))))))))) + } + _onTryAgain() { + Da(Gt("clicked", "tryAgainButton", { + isMobileBrowser: !1 + })), this.props.dispatch({ + type: Bae + }) + } + _onLaunchWeb() { + Da(Gt("clicked", "launchWebButton", { + isMobileBrowser: !1 + })), this.props.dispatch(Hae()) + } + } + const Yae = Ei(Ne()(Wae)); - function Roe(e) { + function Gae() { + return Gae = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Loe(e, t, n[t]) - })) + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } return e + }, Gae.apply(this, arguments) + } + const Kae = "deep-linking-mobile"; class $ae extends x.Component { + constructor(e) { + super(e), this._onDownloadApp = this._onDownloadApp.bind(this), this._onLaunchWeb = this._onLaunchWeb.bind(this), this._onOpenApp = this._onOpenApp.bind(this) } - - function Loe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + componentDidMount() { + Da(Gt("displayed", "DeepLinkingMobile", { + isMobileBrowser: !0 + })) } - nt.register("features/base/lib-jitsi-meet", ((e = zoe, t) => { - switch (t.type) { - case f: - return zoe; - case g: - return Ioe({}, e, { - initError: void 0, - initialized: !0 - }); - case b: - return Ioe({}, e, { - initError: t.error, - initialized: !1 - }); - default: - return e - } - })); - const Foe = n(5939), - qoe = { - config: Foe, - logCollector: void 0 - }; - if ("ReactNative" === navigator.product) { - const e = { - "modules/sdp/SDPUtil.js": "info", - "modules/xmpp/ChatRoom.js": "warn", - "modules/xmpp/JingleSessionPC.js": "info", - "modules/xmpp/strophe.jingle.js": "info" + render() { + const { + _downloadUrl: e, + _room: t, + t: n + } = this.props, { + HIDE_DEEP_LINKING_LOGO: a, + NATIVE_APP_NAME: r, + SHOW_DEEP_LINKING_IMAGE: i + } = interfaceConfig, o = `${Kae}__button ${Kae}__button_primary`, s = e ? {} : { + target: "_blank", + rel: "noopener noreferrer" }; - qoe.config = Roe({}, Foe, e) + return C().createElement("div", { + className: Kae + }, C().createElement("div", { + className: "header" + }, a ? null : C().createElement("img", { + alt: n("welcomepage.logo.logoDeepLinking"), + className: "logo", + src: "images/logo-deep-linking.png" + })), C().createElement("div", { + className: `${Kae}__body` + }, i ? C().createElement("img", { + alt: n("welcomepage.logo.logoDeepLinking"), + className: "image", + src: "images/deep-linking-image.png" + }) : null, C().createElement("p", { + className: `${Kae}__text` + }, n(`${Vae}.appNotInstalled`, { + app: r + })), C().createElement("p", { + className: `${Kae}__text` + }, n(`${Vae}.ifHaveApp`)), C().createElement("a", Gae({}, s, { + className: `${Kae}__href`, + href: Xae(), + onClick: this._onOpenApp, + target: "_top" + }), C().createElement("button", { + className: `${Kae}__button ${Kae}__button_primary` + }, n(`${Vae}.joinInApp`))), C().createElement("p", { + className: `${Kae}__text` + }, n(`${Vae}.ifDoNotHaveApp`)), C().createElement("a", Gae({}, s, { + href: this._generateDownloadURL(), + onClick: this._onDownloadApp, + target: "_top" + }), C().createElement("button", { + className: o + }, n(`${Vae}.downloadApp`))), hY() ? C().createElement("a", { + onClick: this._onLaunchWeb, + target: "_top" + }, C().createElement("button", { + className: o + }, n(`${Vae}.launchWebButton`))) : C().createElement("b", null, n(`${Vae}.unsupportedBrowser`)), null, C().createElement(F$, { + className: "deep-linking-dial-in", + clickableNumbers: !0, + room: t + }))) } - - function Boe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _generateDownloadURL() { + const { + _downloadUrl: e + } = this.props; + if (e && void 0 === interfaceConfig.MOBILE_DYNAMIC_LINK) return e; + const { + APN: t = "org.jitsi.meet", + APP_CODE: n = "w2atb", + CUSTOM_DOMAIN: a, + IBI: r = "com.atlassian.JitsiMeet.ios", + ISI: i = "1165103905" + } = interfaceConfig.MOBILE_DYNAMIC_LINK || {}, o = null != a ? a : `https://${n}.app.goo.gl`, s = interfaceConfig.APP_SCHEME || "org.jitsi.meet"; + return `${o}/?link=${encodeURIComponent(window.location.href)}&apn=${t}&ibi=${r}&isi=${i}&ius=${s}&efr=1` + } + _onDownloadApp() { + Da(Gt("clicked", "downloadAppButton", { + isMobileBrowser: !0 + })) } - nt.register("features/base/logging", ((e = qoe, t) => { - switch (t.type) { - case Ite: - return function(e, t) { - const n = Roe({}, qoe.config, t.config); - return Re(e.config, n) ? e : Roe({}, e, { - config: n - }) - }(e, t); - case Mte: - return function(e, t) { - return Le(e, "logCollector", t.logCollector) - }(e, t); - default: - return e - } - })), nt.register("features/base/modal", ((e = {}, t) => t.type === hne ? function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Boe(e, t, n[t]) - })) - } - return e - }({}, e, { - activeModalId: t.activeModalId, - modalProps: t.modalProps - }) : e)); - const Uoe = { - isOnline: !0 - }; + _onLaunchWeb() { + Da(Gt("clicked", "launchWebButton", { + isMobileBrowser: !0 + })), this.props.dispatch(Hae()) + } + _onOpenApp() { + Da(Gt("clicked", "openAppButton", { + isMobileBrowser: !0 + })) + } + } + const Jae = Ei(Ne((function(e) { + return { + _downloadUrl: interfaceConfig[`MOBILE_DOWNLOAD_LINK_${ya.OS.toUpperCase()}`], + _room: decodeURIComponent(e["features/base/conference"].room) + } + }))($ae)); class Zae extends x.Component { + componentDidMount() { + Da(Gt("displayed", "noMobileApp", { + isMobileBrowser: !0 + })) + } + render() { + const e = "no-mobile-app"; + return C().createElement("div", { + className: e + }, C().createElement("h2", { + className: `${e}__title` + }, "Video chat isn't available on mobile."), C().createElement("p", { + className: `${e}__description` + }, "Please use ", interfaceConfig.NATIVE_APP_NAME, " on desktop to join calls.")) + } + } - function Hoe(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Voe(e, t, n[t]) - })) + function Qae(e) { + return Promise.resolve(!1) + } + + function Xae() { + const e = interfaceConfig.APP_SCHEME || "org.jitsi.meet", + { + href: t + } = window.location, + n = new RegExp(_n, "gi"); + return "android" === ya.OS ? `intent://${t.replace(n,"").substr(2)}#Intent;scheme=${e};package=${interfaceConfig.ANDROID_APP_PACKAGE||"org.jitsi.meet"};end` : t.replace(n, `${e}:`) + } + qe.register((e => t => n => (n.type === Bae && (e.getState(), Qae()), t(n)))), qe.register((e => t => n => { + const a = t(n); + if (n.type === IM) { + const t = e.getState(), + { + availableDevices: n + } = t["features/base/devices"] || {}; + "undefined" != typeof APP && APP.API.notifyDeviceListChanged(n) + } + return a + })), qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => (a.type === pn && a.settings.displayName && BI(n, i1) && t(HI(i1)), e(a)) + })), qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => t => (t.type === m1 && "undefined" != typeof APP && APP.UI.emitEvent(rX.ETHERPAD_CLICKED), e(t)) + })), tt.register((e => vF(e)), ((e, t, n) => { + let { + dispatch: a, + getState: r + } = t; + e && e.addCommandListener("etherpad", (e => { + let t, { + value: n + } = e; + const { + etherpad_base: i + } = r()["features/base/config"]; + i && (t = new URL(n, i).toString()), a(g1(t)) + })), n && a(g1(void 0)) + })), tt.register((e => e["features/video-layout"].remoteScreenShares), ((e, t) => FS(t))), tt.register((e => e["features/base/participants"].dominantSpeaker), ((e, t) => FS(t))), tt.register((e => ({ + numberOfParticipants: Gh(e), + disableSelfView: e["features/base/settings"].disableSelfView + })), ((e, t) => { + const n = t.getState(); + if (QS(n)) { + const e = ZS(n); + Re(e, n["features/filmstrip"].tileViewDimensions.gridDimensions) || t.dispatch(NS(e)) + } + }), { + deepEquals: !0 + }), tt.register((e => JS(e)), ((e, t) => { + const n = t.getState(); + switch (e) { + case GS: + t.dispatch(NS(ZS(n))); + break; + case YS: + t.dispatch(zS()); + break; + case KS: + t.dispatch(RS()) + } + })), tt.register((e => e["features/chat"].isOpen), ((e, t) => { + const { + innerWidth: n, + innerHeight: a + } = window; + e ? document.body.classList.add("shift-right") : document.body.classList.remove("shift-right"), t.dispatch(j3(n, a)) + })), tt.register(Om, ((e, t) => { + const { + innerWidth: n, + innerHeight: a + } = window; + t.dispatch(j3(n, a)) + })), tt.register((e => e["features/base/responsive-ui"].clientWidth < 512), ((e, t) => { + va() && t.dispatch({ + type: wM, + displayAsDrawer: e + }) + })), tt.register((e => e["features/base/responsive-ui"].clientWidth < gS), ((e, t) => { + const n = t.getState(), + { + disableFilmstripAutohiding: a + } = n["features/base/config"]; + a || t.dispatch(MS(!e)) + })); + const ere = { + multipleColumns: Symbol("multipleColumns"), + singleColumn: Symbol("singleColumn"), + twoColumns: Symbol("twoColumns"), + twoParticipantsSingleColumn: Symbol("twoParticipantsSingleColumn") + }; tt.register((e => { + const { + clientWidth: t + } = e["features/base/responsive-ui"]; + return t < 1e3 && t >= gS ? ere.twoColumns : t < gS && t >= 300 ? ere.twoParticipantsSingleColumn : t < 300 ? ere.singleColumn : ere.multipleColumns + }), ((e, t) => { + const n = t.getState(); + if (QS(n)) { + const e = ZS(n); + t.dispatch(NS(e)) + } + })), qe.register((e => t => n => { + var a; + n.type === Uw && function(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : null; + if (!t) return; + const n = e.getState(), + { + remoteParticipants: a + } = n["features/filmstrip"], + r = new Set(a); + r.delete(t) && e.dispatch(IS(Array.from(r))) + }(e, null === (a = n.participant) || void 0 === a ? void 0 : a.id); + const r = t(n); + switch (n.type) { + case A3: { + const t = e.getState(); + switch (JS(t)) { + case GS: { + const { + gridDimensions: n + } = t["features/filmstrip"].tileViewDimensions; + e.dispatch(NS(n)); + break + } + case YS: + e.dispatch(zS()); + break; + case KS: + e.dispatch(RS()) + } + break } - return e + case qw: + var i; + FS(e, null === (i = n.participant) || void 0 === i ? void 0 : i.id); + break; + case pn: + var o; + "boolean" == typeof(null === (o = n.settings) || void 0 === o ? void 0 : o.localFlipX) && X9.onLocalFlipXChanged() } + return r + })); + const tre = "SET_FOLLOW_ME_MODERATOR", nre = "SET_FOLLOW_ME_STATE"; - function Voe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function are(e) { + return { + type: tre, + id: e } - nt.register(h, ((e = Uoe, t) => { - switch (t.type) { - case _te: - return Ne(e, { - isOnline: t.isOnline, - networkType: t.networkType, - cellularGeneration: t.cellularGeneration, - details: t.details - }); - case wte: - return Ne(e, { - _cleanup: t.cleanup - }); - default: - return e - } - })); - const Woe = ["conference", "id", "local", "dominantSpeaker", "pinned"], - Yoe = { - dominantSpeaker: void 0, - everyoneIsModerator: !1, - fakeParticipants: new Map, - haveParticipantWithScreenSharingFeature: !1, - local: void 0, - pinnedParticipant: void 0, - raisedHandsQueue: [], - remote: new Map, - sortedRemoteParticipants: new Map, - sortedRemoteScreenshares: new Map, - speakersList: new Map - }; + } - function Goe(e) { - var t; - return null !== (t = e) && void 0 !== t ? t : "object" == typeof interfaceConfig ? interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME : "Fellow Jitser" + function rre(e) { + return { + type: nre, + state: e } + } + const ire = "follow-me", ore = $e("features/follow-me"); - function Koe(e) { - if (Gh(e.local)) { - for (const [t, n] of e.remote) - if (!Gh(n)) return !1; - return !0 - } - return !1 + function sre(e) { + const t = Zh(e); + return { + filmstripVisible: e["features/filmstrip"].visible, + nextOnStage: t && t.id, + sharedDocumentVisible: e["features/etherpad"].editing, + tileViewEnabled: QS(e) } + } - function $oe(e = {}, t) { - switch (t.type) { - case Gv: - case Hv: { + function lre(e, t) { + const n = t.getState(), + a = vF(n); + a && tm(n) && ("off" !== e ? n["features/base/conference"].followMeEnabled && a.sendCommand(ire, { + attributes: sre(n) + }) : a.sendCommandOnce(ire, { + attributes: { + off: !0 + } + })) + } + tt.register((e => e["features/base/conference"].followMeEnabled), ((e, t) => lre(e || "off", t))), tt.register((e => { + const t = Zh(e); + return t ? t.id : null + }), lre), tt.register((e => e["features/etherpad"].editing), lre), tt.register((e => e["features/filmstrip"].visible), lre), tt.register((e => e["features/video-layout"].tileViewEnabled), lre); + let cre, ure = 0; + + function dre(e, t) { + Vh(e.getState(), t) ? (clearTimeout(cre), ure = 0, e.dispatch(uS(t))) : cre = setTimeout((() => { + ure > 30 ? ure = 0 : (ure++, dre(e, t)) + }), 1e3) + } + qe.register((e => t => n => { + switch (n.type) { + case KF: { + const { + conference: t + } = n; + t.addCommandListener(ire, ((t, n) => { + let { + attributes: a + } = t; + ! function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0, + n = arguments.length > 2 ? arguments[2] : void 0; + const a = n.getState(); + if (void 0 === t) return; + const r = Vh(a, t); + if (r.local) return; + if ("moderator" !== r.role) return void ore.warn("Received follow-me command not from moderator"); + if (bZ(a) || n.dispatch(are(t)), e.off) return void n.dispatch(are()); + const i = a["features/follow-me"].state || {}; + if (n.dispatch(rre(e)), i.filmstripVisible !== e.filmstripVisible && n.dispatch(MS("true" === e.filmstripVisible)), i.tileViewEnabled !== e.tileViewEnabled && n.dispatch(tE("true" === e.tileViewEnabled)), "undefined" != typeof APP && i.sharedDocumentVisible !== e.sharedDocumentVisible) { + const t = "true" === e.sharedDocumentVisible, + n = APP.UI.getSharedDocumentManager(); + n && t !== a["features/etherpad"].editing && n.toggleEtherpad() + } + const o = Zh(a), + s = e.nextOnStage; + void 0 === s || o && s === o.id || i.nextOnStage === e.nextOnStage ? void 0 === s && o && n.dispatch(uS(null)) : dre(n, s) + }(a, n, e) + })); + break + } + case Uw: + e.getState()["features/follow-me"].moderator === n.participant.id && e.dispatch(are()) + } + return t(n) + })); + const pre = new Map([ + [EU, { + file: "rejected.wav" + }], + [xU, { + file: "rejected.wav" + }], + [CU, { + file: "outgoingRinging.wav", + options: { + loop: !0 + } + }], + [AU, { + file: "outgoingStart.wav" + }] + ]), hre = { + [YW]: AU, + [KW]: Oh, + [JW]: EU, + [WW]: AU, + [$W]: xU, + [GW]: CU + }; qe.register((e => t => n => { + let a; + const { + dispatch: r, + getState: i + } = e, o = i(); + n.type !== Hw && n.type !== Uw || (a = $h(o, n.participant.id)), n.type === BY && (n.calleeInfoVisible ? r(uS(Uh(o).id)) : r(uS())); + const s = t(n); + switch (n.type) { + case Va: + for (const [e, t] of pre.entries()) r(Oi(e, t.file, t.options)); + break; + case Wa: + for (const e of pre.keys()) r(Ri(e)); + break; + case HF: + ! function(e) { const { - participant: n - } = t, a = Hoe({}, e); - for (const e in n) n.hasOwnProperty(e) && -1 === Woe.indexOf(e) && (a[e] = n[e]); - return a - } + dispatch: t, + getState: n + } = e; + (n()["features/invite"].pendingInviteRequests || []).forEach((e => { + let { + invitees: n, + callback: a + } = e; + t(YY(n)).then((e => { + a(e) + })) + })), t({ + type: qY + }) + }(e); + break; + case qw: + case Uw: + case Hw: { + ! function(e, t) { + const n = t.getState(); + if (!n["features/invite"].calleeInfoVisible) return; + const a = Jh(n), + r = Yh(n); + let i = 0; + a.forEach((e => { + "poltergeist" === e.botType && i++ + })); + (i > 1 || r - i > 1 || e.type === Uw && 1 === r) && t.dispatch(KY(!1)) + }(n, e); + const t = $h(o, n.participant.id); + if (a === t) break; + const i = a && hre[a], + s = t && hre[t]; + if (i === s) break; + i && r(Ni(i)), s && r(Ii(s)); + break } - return e - } - - function Joe(e, t, n, a) { - const { - remote: r, - local: i - } = e; - return r.has(t) ? (r.set(t, Le(r.get(t), n, a)), !0) : (null == i ? void 0 : i.id) === t && (e.local = Le(i, n, a), !0) + case HY: + PU.error("Error encountered while fetching dial-in numbers:", n.error) } - - function Zoe(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + return s + })), qe.register((e => t => n => { + switch (n.type) { + case FY: + return function(e, t, n) { + let { + dispatch: a + } = e; + const r = t(n); + return a(VI(j$)), r + }(e, t, n); + case UY: + return function(e, t, n) { + let { + dispatch: a + } = e; + return a(HI(j$)), t(n) + }(e, t, n) } - nt.register("features/base/participants", ((e = Yoe, t) => { - switch (t.type) { - case Fv: { - const { - local: n + return t(n) + })), qe.register((e => t => async n => { + if (n.type === JB) { + const { + status: t + } = n.payload; + "BLOCKED" === t && e.dispatch(aB("/static/planLimit.html")) + } + return t(n) + })); + const mre = $e("features/large-video"); tt.register((e => e["features/large-video"].participantId), (e => { + X9.updateLargeVideo(e, !0) + })), qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case Nw: { + const t = e.getState(), + a = Uh(t); + P9(t) && mre.info(`Dominant speaker changed event for: ${n.participant.id}`), a && a.id !== n.participant.id && e.dispatch(VW()); + break + } + case qw: + case Uw: + case Vw: + case m1: + case up: + case mp: + e.dispatch(VW()) + } + return a + })), qe.register((e => t => n => { + switch (n.type) { + case Va: + e.dispatch(Oi(S8, "knock.mp3")); + break; + case Wa: + e.dispatch(Ri(S8)); + break; + case UF: + return function(e, t, n) { + let { + dispatch: a, + getState: r } = e; - return n ? (e.local = Hoe({}, n, { - id: t.newValue - }), Hoe({}, e)) : e - } - case Nv: { const { - participant: n - } = t, { - id: a, - previousSpeakers: r = [] - } = n, { - dominantSpeaker: i, - local: o - } = e, s = [a, ...r], l = []; - for (const t of s) - if (t !== (null == o ? void 0 : o.id)) { - const n = e.remote.get(t); - n && l.push([t, Goe(n.name)]) - } return l.sort(((e, t) => e[1].localeCompare(t[1]))), i && Joe(e, i, "dominantSpeaker", !1), Joe(e, a, "dominantSpeaker", !0) ? Hoe({}, e, { - dominantSpeaker: a, - speakersList: new Map(l) - }) : (delete e.dominantSpeaker, Hoe({}, e)) - } - case Vv: { - const { - participant: n - } = t, { - id: a - } = n, { - pinnedParticipant: r + error: i + } = n, o = r(), { + membersOnly: s + } = o["features/base/conference"], l = Boolean(s); + if (i.name === pt.MEMBERS_ONLY_ERROR) { + void 0 === i.recoverable && (i.recoverable = !0); + const e = t(n); + return a({ + type: I0, + visible: !0 + }), + function(e) { + const { + iAmRecorder: t, + iAmSipGateway: n, + autoKnockLobby: a + } = e["features/base/config"]; + return (vH(e) || a || t && n) && !e["features/lobby"].knocking + }(o) && a(q0()), l && a(fq(s)), a(F0(l)), e + } + return a(U0()), i.name === pt.CONFERENCE_ACCESS_DENIED && a(tg({ + appearance: Gf, + hideErrorSupportLink: !0, + titleKey: "lobby.joinRejectedMessage" + }, Yf.LONG)), t(n) + }(e, t, n); + case HF: + return function(e, t, n) { + let { + dispatch: a } = e; - return r && Joe(e, r, "pinned", !1), Joe(e, a, "pinned", !0) ? Hoe({}, e, { - pinnedParticipant: a - }) : (delete e.pinnedParticipant, Hoe({}, e)) - } - case Gv: - case Hv: { - var n; - const { - participant: a - } = t; + return a(U0()), t(n) + }(e, t, n); + case D0: { + const a = t(n); + return function(e, t) { let { - id: r - } = a; + id: n + } = t; const { - local: i - } = a; - let o; - if (!r && i && (r = jh), e.remote.has(r) ? (o = $oe(e.remote.get(r), t), e.remote.set(r, o)) : r === (null === (n = e.local) || void 0 === n ? void 0 : n.id) && (o = e.local = $oe(e.local, t)), o) { - const t = Gh(o); - e.everyoneIsModerator && !t ? e.everyoneIsModerator = !1 : !e.everyoneIsModerator && t && (e.everyoneIsModerator = Koe(e)); - const { - features: n = {} - } = a; - "true" === String(n["screen-sharing"]) && (e.haveParticipantWithScreenSharingFeature = !0) - } - return Hoe({}, e) + dispatch: a, + getState: r + } = e, i = r()["features/lobby"].knockingParticipants.find((e => e.id === n)), { + disableThirdPartyRequests: o + } = r()["features/base/config"]; + o || !i || i.loadableAvatarUrl || Bh(i, e).then((e => { + e && a(N0({ + loadableAvatarUrl: e, + id: n + })) + })) + }(e, n.participant), a + } + } + return t(n) + })), tt.register((e => e["features/base/conference"].conference), ((e, t, n) => { + let { + dispatch: a, + getState: r + } = t; + e && !n && (e.on(ht.MEMBERS_ONLY_CHANGED, (e => { + a(function(e) { + return { + enabled: e, + type: j0 } - case qv: { - const n = function({ - participant: e - }) { - const { - avatarURL: t, - botType: n, - connectionStatus: a, - dominantSpeaker: r, - email: i, - isFakeParticipant: o, - isReplacing: s, - isJigasi: l, - loadableAvatarUrl: c, - local: u, - name: d, - pinned: p, - presence: h, - role: m - } = e; - let { - conference: f, - id: g - } = e; - return u && (f = void 0, g || (g = jh)), { - avatarURL: t, - botType: n, - conference: f, - connectionStatus: a, - dominantSpeaker: r || !1, - email: i, - id: g, - isFakeParticipant: o, - isReplacing: s, - isJigasi: l, - loadableAvatarUrl: c, - local: u || !1, - name: d, - pinned: p || !1, - presence: h, - role: m || "none" - } - }(t), - { - id: a, - isFakeParticipant: r, - name: i, - pinned: o - } = n, - { - pinnedParticipant: s, - dominantSpeaker: l - } = e; - o && (s && Joe(e, s, "pinned", !1), e.pinnedParticipant = a), n.dominantSpeaker && (l && Joe(e, l, "dominantSpeaker", !1), e.dominantSpeaker = a); - const c = Gh(n), - { - local: u, - remote: d - } = e; - if (e.everyoneIsModerator && !c ? e.everyoneIsModerator = !1 : !u && 0 === d.size && c && (e.everyoneIsModerator = !0), n.local) return Hoe({}, e, { - local: n - }); - e.remote.set(a, n); - const p = Goe(i), - h = Array.from(e.sortedRemoteParticipants); - return h.push([a, p]), h.sort(((e, t) => e[1].localeCompare(t[1]))), e.sortedRemoteParticipants = new Map(h), r && e.fakeParticipants.set(a, n), Hoe({}, e) + }(e)) + })), e.on(ht.LOBBY_USER_JOINED, ((e, t) => { + (0, Me.unstable_batchedUpdates)((() => { + a(N0({ + id: e, + name: t + })), a(Ii(S8)), "undefined" != typeof APP && APP.API.notifyKnockingParticipant({ + id: e, + name: t + }) + })) + })), e.on(ht.LOBBY_USER_UPDATED, ((e, t) => { + a(N0({ + ...t, + id: e + })) + })), e.on(ht.LOBBY_USER_LEFT, (e => { + a(function(e) { + return { + id: e, + type: P0 } - case Uv: { - const { - conference: n, - id: a - } = t.participant, { - fakeParticipants: r, - remote: i, - local: o, - dominantSpeaker: s, - pinnedParticipant: l - } = e; - let c = i.get(a); - if (c && c.conference === n) i.delete(a); - else { - if ((null == o ? void 0 : o.id) !== a) return e; - c = e.local, delete e.local + }(e)) + })), e.on(ht.ENDPOINT_MESSAGE_RECEIVED, ((e, t) => function(e, t, n) { + let { + dispatch: a, + getState: r + } = n; + if (null == e || !e._id || "lobby-notify" !== (null == t ? void 0 : t.type)) return; + const i = { + descriptionArguments: { + originParticipantName: Kh(r, e._id), + targetParticipantName: t.name + }, + titleKey: "lobby.notificationTitle" + }; + switch (t.event) { + case "LOBBY-ENABLED": + i.descriptionKey = `lobby.notificationLobby${t.value?"En":"Dis"}abled`; + break; + case "LOBBY-ACCESS-GRANTED": + i.descriptionKey = "lobby.notificationLobbyAccessGranted"; + break; + case "LOBBY-ACCESS-DENIED": + i.descriptionKey = "lobby.notificationLobbyAccessDenied" + } + a(tg(i, P9(r()) ? Yf.STICKY : Yf.MEDIUM)) + }(e, t, { + dispatch: a, + getState: r + })))) + })); + const fre = [pt.CONFERENCE_ACCESS_DENIED, pt.CONFERENCE_DESTROYED, pt.CONNECTION_ERROR], gre = (e, t) => { + const n = e(), + { + error: a + } = n["features/base/conference"], + { + error: r + } = n["features/base/config"], + { + error: i + } = n["features/base/connection"]; + return t === a ? { + type: "CONFERENCE", + isFatal: ot(t.name || t) + } : t === r ? { + type: "CONFIG", + isFatal: !0 + } : t === i ? { + type: "CONNECTION", + isFatal: st(t.name || t) + } : void 0 + }; tt.register((e => { + const { + error: t + } = e["features/base/conference"], { + error: n + } = e["features/base/config"], { + error: a + } = e["features/base/connection"]; + return n || a || t + }), ((e, t) => { + let { + dispatch: n, + getState: a + } = t; + if (e) { + if ("undefined" != typeof APP) { + const t = "string" == typeof e ? { + name: e + } : e; + APP.API.notifyError({ + ...t, + ...gre(a, e) + }) + } - 1 === fre.indexOf(e.name) && void 0 === e.recoverable && n(Mq(e)) + } + })), qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const r = e(a); + switch (a.type) { + case xV: { + const e = n(), + r = e["features/chat"].isOpen, + i = e["features/chat"].isPollsTabFocused; + !a.notify || r && i || t(Ii(HV)); + break + } + } + return r + } + })); + const bre = e => { + if ("object" != typeof e || null === e) return null; + const { + id: t, + senderId: n, + senderName: a, + question: r, + answers: i + } = e; + if ("string" != typeof t || "string" != typeof n || "string" != typeof a || "string" != typeof r || !(i instanceof Array)) return null; + const o = []; + for (const e of i) { + const t = new Map; + for (const [n, a] of Object.entries(e.voters)) { + if ("string" != typeof a) return null; + t.set(n, a) + } + o.push({ + name: e.name, + voters: t + }) + } + return { + changingVote: !1, + senderId: n, + senderName: a, + question: r, + showResults: !0, + lastVote: null, + answers: o + } + }; tt.register((e => vF(e)), ((e, t, n) => { + if (e && e !== n) { + const n = (e, n) => { + switch (n.type) { + case OV: { + const { + question: e, + answers: a, + pollId: r, + senderId: i, + senderName: o + } = n, s = { + changingVote: !1, + senderId: i, + senderName: o, + showResults: !1, + lastVote: null, + question: e, + answers: a.map((e => ({ + name: e, + voters: new Map + }))) + }; + t.dispatch(jV(r, s, !0)), t.dispatch(tg({ + appearance: Kf, + titleKey: "polls.notification.title", + descriptionKey: "polls.notification.description" + }, Yf.SHORT)); + break } - e.sortedRemoteParticipants.delete(a), e.everyoneIsModerator || Gh(c) || (e.everyoneIsModerator = Koe(e)); - const { - features: u = {} - } = c || {}; - if (e.haveParticipantWithScreenSharingFeature && "true" === String(u["screen-sharing"])) { + case NV: { const { - features: t = {} - } = e.local || {}; - if ("true" !== String(t["screen-sharing"])) { - e.haveParticipantWithScreenSharingFeature = !1; - for (const [t, n] of e.remote) { - const { - features: t = {} - } = n; - if ("true" === String(t["screen-sharing"])) { - e.haveParticipantWithScreenSharingFeature = !0; - break - } - } - } + pollId: e, + answers: a, + voterId: r, + voterName: i + } = n, o = { + voterId: r, + voterName: i, + pollId: e, + answers: a + }; + t.dispatch(((e, t) => ({ + type: CV, + answer: t, + pollId: e + }))(e, o)); + break } - return s === a && (e.dominantSpeaker = void 0), e.speakersList.has(a) && e.speakersList.delete(a), l === a && (e.pinnedParticipant = void 0), r.has(a) && r.delete(a), Hoe({}, e) - } - case $v: - return Hoe({}, e, { - raisedHandsQueue: t.queue - }); - case fk: { - const { - participantIds: n - } = t, a = []; - for (const t of n) { - const n = e.remote.get(t); - if (n) { - const e = Goe(n.name); - a.push([t, e]) + case "old-polls": { + const { + polls: e + } = n; + for (const n of e) { + const e = bre(n); + null === e ? console.warn("[features/polls] Invalid old poll data") : t.dispatch(jV(n.id, e, !1)) } + break } - return a.length && a.sort(((e, t) => e[1].localeCompare(t[1]))), e.sortedRemoteScreenshares = new Map(a), Hoe({}, e) } + }; + e.on(ht.ENDPOINT_MESSAGE_RECEIVED, n), e.on(ht.NON_PARTICIPANT_MESSAGE_RECEIVED, n) + } + })), tt.register((e => e["features/base/conference"].startReactionsMuted), ((e, t) => function(e, t) { + const n = t.getState(), + a = vF(n); + a && tm(n) && a.sendCommand(xZ, { + attributes: { + startReactionsMuted: Boolean(e) } - return e - })); + }) + }(e || !1, t))), qe.register((e => t => n => { const { - innerHeight: Qoe = 0, - innerWidth: Xoe = 0 - } = window, ese = { - aspectRatio: fQ, - clientHeight: Qoe, - clientWidth: Xoe, - reducedUI: !1, - contextMenuOpened: !1 - }; - - function tse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register("features/base/responsive-ui", ((e = ese, t) => { - switch (t.type) { - case l0: - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Zoe(e, t, n[t]) - })) - } - return e - }({}, e, { - clientWidth: t.clientWidth, - clientHeight: t.clientHeight - }); - case c0: - return Le(e, "aspectRatio", t.aspectRatio); - case u0: - return Le(e, "reducedUI", t.reducedUI); - case d0: - return Le(e, "contextMenuOpened", t.isOpen) + dispatch: a, + getState: r + } = e; + switch (n.type) { + case Va: + (0, Me.unstable_batchedUpdates)((() => { + Object.keys(TZ).forEach((e => { + for (let t = 0; t < AZ.length; t++) a(Oi(`${TZ[e].soundId}${AZ[t]}`, TZ[e].soundFiles[t])) + })), a(Oi(CZ, "reactions-raised-hand.mp3")) + })); + break; + case Wa: + (0, Me.unstable_batchedUpdates)((() => { + Object.keys(TZ).forEach((e => { + for (let t = 0; t < AZ.length; t++) a(Ri(`${TZ[e].soundId}${AZ[t]}`)) + })), a(Ri(CZ)) + })); + break; + case N6: { + const { + timeoutID: e, + buffer: t + } = r()["features/reactions"], { + reaction: i + } = n; + clearTimeout(e), t.push(i), n.buffer = t, n.timeoutID = setTimeout((() => { + a({ + type: R6 + }) + }), 500); + break } - return e - })); - const nse = { - audioOutputDeviceId: void 0, - avatarURL: void 0, - cameraDeviceId: void 0, - disableCallIntegration: void 0, - disableCrashReporting: void 0, - disableP2P: void 0, - displayName: void 0, - email: void 0, - localFlipX: !0, - micDeviceId: void 0, - serverURL: void 0, - hideShareAudioHelper: !1, - soundsIncomingMessage: !0, - soundsParticipantJoined: !0, - soundsParticipantLeft: !0, - soundsTalkWhileMuted: !0, - soundsReactions: !0, - startAudioOnly: !1, - startWithAudioMuted: !1, - startWithVideoMuted: !1, - userSelectedAudioOutputDeviceId: void 0, - userSelectedCameraDeviceId: void 0, - userSelectedMicDeviceId: void 0, - userSelectedAudioOutputDeviceLabel: void 0, - userSelectedCameraDeviceLabel: void 0, - userSelectedMicDeviceLabel: void 0, - userSelectedSkipPrejoin: void 0 - }, - ase = "features/base/settings", - rse = {}; - Object.keys(nse).forEach((e => { - rse[e] = !0 - })), rse.audioOutputDeviceId = !1, rse.cameraDeviceId = !1, rse.micDeviceId = !1, et.register(ase, rse, nse), nt.register(ase, ((e = nse, t) => { - switch (t.type) { - case Ya: - return function(e) { - let t = e; - const n = l.getItem("displayname"), - a = l.getItem("email"); - return t = function(e, t) { - const n = Object(e); - for (const e in t) - if (t.hasOwnProperty(e)) { - const a = t[e]; - void 0 !== a && (n[e] = a) - } return n - }({ - displayName: null === n ? void 0 : k().escape(n), - email: null === a ? void 0 : k().escape(a) - }, t), t - }(e); - case gn: - return function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - tse(e, t, n[t]) + case KF: { + const { + conference: t + } = n; + t.addCommandListener(xZ, ((t, n) => { + let { + attributes: a + } = t; + ! function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0, + n = arguments.length > 2 ? arguments[2] : void 0; + const a = n.getState(); + if (void 0 === t) return; + const r = Vh(a, t); + if (r.local) return; + if ("moderator" !== r.role) return void DZ.warn("Received mute-reactions command not from moderator"); + const i = Boolean(a["features/base/conference"].startReactionsMuted), + o = "true" === e.startReactionsMuted; + i !== o && (0, Me.unstable_batchedUpdates)((() => { + n.dispatch(Eq(o)), n.dispatch(hn({ + soundsReactions: !o })) + })) + }(a, n, e) + })); + break + } + case R6: { + const e = r(), + { + buffer: t + } = e["features/reactions"], + n = Yh(e); + (0, Me.unstable_batchedUpdates)((() => { + n > 1 && a({ + type: F6 + }), a(function(e) { + return { + type: z6, + message: e } - return e - }({}, e, t.settings) + }(jZ(t))), a(V6(t)) + })), async function(e, t) { + const { + webhookProxyUrl: n + } = e["features/base/config"], { + conference: a + } = e["features/base/conference"], { + jwt: r + } = e["features/base/jwt"], { + connection: i + } = e["features/base/connection"], o = i.getJid(), s = Uh(e), l = { + ...r ? { + Authorization: `Bearer ${r}` + } : {}, + "Content-Type": "application/json" + }, c = { + meetingFqn: XY(), + sessionId: a.sessionId, + submitted: Date.now(), + reactions: t, + participantId: s.jwtId, + participantName: s.name, + participantJid: o + }; + if (n) try { + const e = await fetch(`${n}/reactions`, { + method: "POST", + headers: l, + body: JSON.stringify(c) + }); + e.ok || DZ.error("Status error:", e.status) + } catch (e) { + DZ.error("Could not send request", e) + } + }(e, t); + break } - return e - })); - const ise = new Map; - nt.register("features/base/sounds", ((e = ise, t) => { - switch (t.type) { - case qi: - case Bi: - return function(e, t) { - const n = t.type === qi, - a = new Map(e), - { - soundId: r - } = t, - i = a.get(r); - return i ? n ? a.set(r, Ne(i, { - audioElement: t.audioElement - })) : a.set(r, Ne(i, { - audioElement: void 0 - })) : nne.warn(`${t.type}: no sound for id: ${r}`), a - }(e, t); - case Hi: - return function(e, t) { - const n = new Map(e); - return n.set(t.soundId, { - src: t.src, - options: t.options - }), n - }(e, t); - case Wi: - return function(e, t) { - const n = new Map(e); - return n.delete(t.soundId), n - }(e, t); - default: - return e + case q6: { + const e = r(), + { + queue: t, + notificationDisplayed: i + } = e["features/reactions"], + { + soundsReactions: o + } = e["features/base/settings"], + s = Mi(e), + l = n.reactions; + (0, Me.unstable_batchedUpdates)((() => { + var e; + !i && o && !s.includes("REACTION_SOUND") && Z6 && a(Z6()), o && function(e) { + const t = function(e) { + return [...new Set(e)] + }(e); + return t.map((t => ({ + reaction: t, + threshold: IZ(MZ(e, t)) + }))) + }(l).forEach((e => a(Ii(`${TZ[e.reaction].soundId}${e.threshold}`)))), a(U6([...t, ...(e = l, e.map((e => ({ + reaction: e, + uid: rU() + }))))])) + })); + break } - })); - const ose = { - connectionState: "" - }; - - function sse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - lse(e, t, n[t]) - })) + case F6: { + const e = r(), + { + buffer: t + } = e["features/reactions"], + { + conference: n + } = e["features/base/conference"]; + n && n.sendEndpointMessage("", { + name: EZ, + reactions: t, + timestamp: Date.now() + }); + break + } + case pn: { + const { + soundsReactions: e + } = r()["features/base/settings"]; + !1 === n.settings.soundsReactions && !0 === e && Da({ + action: "disabled", + actionSubject: "sounds", + source: "reaction.settings", + type: Lt + }); + break + } + case B6: { + const e = ["notify.reactionSounds"], + t = [() => a(hn({ + soundsReactions: !1 + }))]; + tm(r()) && (e.push("notify.reactionSoundsForAll"), t.push((() => (0, Me.unstable_batchedUpdates)((() => { + a(Eq(!0)), a(hn({ + soundsReactions: !1 + })) + }))))), a(tg({ + titleKey: "toolbar.disableReactionSounds", + customActionNameKey: e, + customActionHandler: t + }, Yf.MEDIUM)); + break } - return e } + return t(n) + })); + const yre = "DELETE_RECENT_LIST_ENTRY", vre = "_STORE_CURRENT_CONFERENCE", kre = "_UPDATE_CONFERENCE_DURATION"; - function lse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function _re() { + return interfaceConfig.RECENT_LIST_ENABLED + } + qe.register((e => t => n => { + if (_re()) switch (n.type) { + case Va: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const i = t(n), + o = []; + for (const { + conference: e + } of r()["features/recent-list"]) { + const t = An(e); + let n; + t && (n = t.host) && o.push(n) + } + return o.length && a(fn(o)), i + }(e, t, n); + case $F: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const { + doNotStoreRoom: i + } = r()["features/base/config"]; + if (!i) { + let e; + e = "undefined" == typeof APP ? n.conference[lF] : r()["features/base/connection"].locationURL, a(function(e) { + return { + type: kre, + locationURL: e + } + }(e)) + } + return t(n) + }(e, t, n); + case oq: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const { + doNotStoreRoom: i + } = r()["features/base/config"]; + if (!i && n.room) { + const { + locationURL: e + } = r()["features/base/connection"]; + e && (a(function(e) { + return { + type: vre, + locationURL: e + } + }(e)), a(fn(e.host))) + } + return t(n) + }(e, t, n) + } + return t(n) + })), tt.register((e => vF(e)), ((e, t) => { + let { + dispatch: n + } = t; + e || n({ + type: VK + }) + })), qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + let r; + a.type === WK && (r = _U(n(), a.sessionData.id)); + const i = e(a); + switch (a.type) { + case Va: + t(Oi(hU, "liveStreamingOff.mp3")), t(Oi(mU, "liveStreamingOn.mp3")), t(Oi(fU, "recordingOff.mp3")), t(Oi(gU, "recordingOn.mp3")); + break; + case Wa: + t(Ri(hU)), t(Ri(mU)), t(Ri(fU)), t(Ri(gU)); + break; + case KF: { + const { + conference: e + } = a; + e.on(ht.RECORDER_STATE_CHANGED, (e => { + e && (e.getID() && t(function(e) { + const t = e.getStatus(), + n = t === kt.status.ON ? Date.now() / 1e3 : void 0; + return { + type: WK, + sessionData: { + error: e.getError(), + id: e.getID(), + initiator: e.getInitiator(), + liveStreamViewURL: e.getLiveStreamViewURL(), + mode: e.getMode(), + status: t, + terminator: e.getTerminator(), + timestamp: n + } + } + }(e)), e.getError() && function(e, t) { + const n = e.getMode(), + a = e.getError(), + r = n === c.default.constants.recording.mode.STREAM; + switch (a) { + case c.default.constants.recording.error.SERVICE_UNAVAILABLE: + t(JK({ + descriptionKey: "recording.unavailable", + descriptionArguments: { + serviceName: r ? "$t(liveStreaming.serviceName)" : "$t(recording.serviceName)" + }, + titleKey: r ? "liveStreaming.unavailableTitle" : "recording.unavailableTitle" + })); + break; + case c.default.constants.recording.error.RESOURCE_CONSTRAINT: + t(JK({ + descriptionKey: r ? "liveStreaming.busy" : "recording.busy", + titleKey: r ? "liveStreaming.busyTitle" : "recording.busyTitle" + })); + break; + case c.default.constants.recording.error.UNEXPECTED_REQUEST: + t(ng({ + descriptionKey: r ? "liveStreaming.sessionAlreadyActive" : "recording.sessionAlreadyActive", + titleKey: r ? "liveStreaming.inProgress" : "recording.inProgress" + })); + break; + default: + t(JK({ + descriptionKey: r ? "liveStreaming.error" : "recording.error", + titleKey: r ? "liveStreaming.failedToStart" : "recording.failedToStart" + })) + } + "undefined" != typeof APP && APP.API.notifyRecordingStatusChanged(!1, n, a) + }(e, t)) + })); + break + } + case WK: { + const { + iAmRecorder: e, + iAmSipGateway: i, + recordingLimit: s + } = n()["features/base/config"]; + if (e && !i) break; + const l = _U(n(), a.sessionData.id), + { + initiator: u, + mode: d, + terminator: p + } = l, + { + PENDING: h, + OFF: m, + ON: f + } = kt.status; + if (l.status !== h || r && r.status === h) { + if (l.status !== h) + if (t(function(e) { + return (t, n) => { + const { + pendingNotificationUids: a + } = n()["features/recording"], r = a[e]; + r && (t(Xf(r)), t(ZK(void 0, e))) + } + }(d)), l.status !== f || r && r.status === f) { + if (l.status === m && (!r || r.status !== m)) { + p && t(function(e, t) { + const n = { + name: t + }; + return tg(e === c.default.constants.recording.mode.STREAM ? { + descriptionKey: t ? "liveStreaming.offBy" : "liveStreaming.off", + descriptionArguments: n, + titleKey: "dialog.liveStreaming" + } : { + descriptionKey: t ? "recording.offBy" : "recording.off", + descriptionArguments: n, + titleKey: "dialog.recording" + }, Yf.SHORT) + }(d, Kh(n, SU(p)))); + let e, a, i = 0; + r && r.timestamp && (i = Date.now() / 1e3 - r.timestamp), Da(en("stop", d, i)), d === kt.mode.FILE ? (e = fU, a = gU) : d === kt.mode.STREAM && (e = hU, a = mU), e && a && (t(Ni(a)), t(Ii(e))), "undefined" != typeof APP && APP.API.notifyRecordingStatusChanged(!1, d) + } + } else { + let e; + t("object" == typeof s ? function(e) { + const t = e === c.default.constants.recording.mode.STREAM; + return tg({ + description: C().createElement(hG, { + isLiveStreaming: t + }), + titleKey: t ? "dialog.liveStreaming" : "dialog.recording" + }, Yf.LONG) + }(d) : function(e, t, n) { + return async (a, r) => { + const i = r(), + o = SU(t), + s = Kh(i, o); + let l = { + descriptionKey: s ? "liveStreaming.onBy" : "liveStreaming.on", + descriptionArguments: { + name: s + }, + isDismissAllowed: !0, + titleKey: "dialog.liveStreaming" + }; + if (e !== c.default.constants.recording.mode.STREAM) { + const e = function(e) { + return e["features/base/config"].recordingSharingUrl + }(i), + t = Uh(i).id === o; + if (l = { + customActionHandler: void 0, + customActionNameKey: void 0, + descriptionKey: s ? "recording.onBy" : "recording.on", + descriptionArguments: { + name: s + }, + isDismissAllowed: !0, + titleKey: "dialog.recording" + }, e && cM(i) && t && ! function(e) { + return uU(e) && e["features/recording"].selectedRecordingService === yU + }(i)) { + const t = function(e) { + var t, n; + return (null === (t = e["features/base/config"]) || void 0 === t || null === (n = t.deploymentInfo) || void 0 === n ? void 0 : n.region) || "" + }(i), + r = lM(i); + try { + const a = await async function(e, t, n, a) { + const r = `${e}?recordingSessionId=${t}®ion=${n}&tenant=${a}`, + i = await fetch(r, { + headers: { + "Content-Type": "application/json" + } + }), + o = await i.json(); + return i.ok ? o : Promise.reject(o) + }(e, n, t, r), { + url: i, + urlExpirationTimeMillis: o + } = a; + "object" == typeof APP && APP.API.notifyRecordingLinkAvailable(i, o), l.customActionNameKey = ["recording.copyLink"], l.customActionHandler = [() => Ct(i)], l.titleKey = "recording.on", l.descriptionKey = "recording.linkGenerated", l.isDismissAllowed = !1 + } catch (e) { + return a(eg({ + titleKey: "recording.errorFetchingLink" + }, Yf.MEDIUM)), $K.error("Could not fetch recording link", e) + } + } + } + a(tg(l, Yf.SHORT)) + } + }(d, u, a.sessionData.id)), Da(en("start", d)), d === kt.mode.FILE ? e = gU : d === kt.mode.STREAM && (e = mU), e && t(Ii(e)), "undefined" != typeof APP && APP.API.notifyRecordingStatusChanged(!0, d) + } + } else t((o = d, async e => { + const t = o === c.default.constants.recording.mode.STREAM ? { + descriptionKey: "liveStreaming.pending", + titleKey: "dialog.liveStreaming" + } : { + descriptionKey: "recording.pending", + titleKey: "dialog.recording" + }, + n = await e(tg({ + isDismissAllowed: !1, + ...t + }, Yf.MEDIUM)); + n && e(ZK(n.uid, o)) + })); + break + } + } + var o; + return i } + })), tt.register((e => { + const t = e["features/recent-list"]; + return t && t.length && t[t.length - 1] + }), ((e, t, n) => { + let {} = t; + n && e && n.conference === e.conference && 0 === e.duration && Da(function(e) { + let { + url: t, + lastConferenceDuration: n, + timeSinceLeft: a + } = e; + return { + action: "rejoined", + attributes: { + lastConferenceDuration: n, + timeSinceLeft: a, + url: t + } + } + }({ + lastConferenceDuration: n.duration / 1e3, + timeSinceLeft: (Date.now() - (n.date + n.duration)) / 1e3, + url: n.conference + })) + })); + const wre = $e("features/room-lock"); qe.register((e => t => n => { + switch (n.type) { + case UF: + return function(e, t, n) { + let { + dispatch: a + } = e; + const { + conference: r, + error: i + } = n; + return r && i.name === pt.PASSWORD_REQUIRED ? (void 0 === i.recoverable && (i.recoverable = !0), i.recoverable && a(function(e) { + return VI(Z8, { + conference: e + }) + }(r))) : a(HI(Z8)), t(n) + }(e, t, n); + case HF: + return function(e, t, n) { + let { + dispatch: a + } = e; + return a(HI(Z8)), t(n) + }(e, t, n); + case QF: { + "undefined" != typeof APP && APP.UI.emitEvent(rX.TOGGLE_ROOM_LOCK, n.locked); + const a = e.getState()["features/base/conference"].locked, + r = t(n), + i = e.getState()["features/base/conference"].locked; + return i === X8 ? e.dispatch(tg({ + titleKey: "notify.passwordSetRemotely" + }, Yf.SHORT)) : a !== X8 || i || e.dispatch(tg({ + titleKey: "notify.passwordRemovedRemotely" + }, Yf.SHORT)), r + } + case rq: + return function(e, t, n) { + if ("undefined" != typeof APP) { + const { + error: e + } = n; + let t, a; + e === pt.PASSWORD_NOT_SUPPORTED ? (wre.warn("room passwords not supported"), t = "dialog.passwordNotSupported", a = "dialog.passwordNotSupportedTitle") : (wre.warn("setting password failed", e), t = "dialog.lockMessage", a = "dialog.lockTitle"), APP.UI.messageHandler.showError({ + descriptionKey: t, + titleKey: a + }) + } + return t(n) + }(0, t, n) + } + return t(n) + })), n(8045); + const Sre = "chrome", Ere = "opera", xre = "firefox", Cre = "iexplorer", Are = "safari", Tre = "nwjs", Dre = "electron", Pre = "react-native", jre = "unknown", Mre = { + Chrome: Sre, + Chromium: Sre, + Opera: Ere, + Firefox: xre, + "Internet Explorer": Cre, + Safari: Are + }; - function cse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - use(e, t, n[t]) - })) + function Ire() { + const e = navigator.userAgent; + if (e.match(/Electron/)) { + const t = e.match(/Electron\/([\d.]+)/)[1]; + return { + name: Dre, + version: t } - return e - } - - function use(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e } + } - function dse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - pse(e, t, n[t]) - })) + function Ore() { + const e = navigator.userAgent; + if (e.match(/JitsiMeetNW/)) { + const t = e.match(/JitsiMeetNW\/([\d.]+)/)[1]; + return { + name: Tre, + version: t } - return e } + } - function pse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register("features/testing", ((e = ose, t) => t.type === ane ? function(e, t) { - return Ne(e, { - connectionState: t.connectionState - }) - }(e, t) : e)), nt.register("features/base/tracks", ((e = [], t) => { - switch (t.type) { - case Fv: - case co: - case fo: - case ho: - return e.map((e => function(e, t) { - switch (t.type) { - case Fv: - if (e.participantId === t.oldValue) return sse({}, e, { - participantId: t.newValue - }); - break; - case ho: { - const n = t.track; - if (e.jitsiTrack === n.jitsiTrack) - for (const t in n) - if (e[t] !== n[t]) return sse({}, e, n); - break - } - case fo: { - const n = t.track; - if (e.jitsiTrack === n && e.lastMediaEvent !== t.name) return sse({}, e, { - lastMediaEvent: t.name - }); - break - } - case co: { - const n = t.track; - if (e.jitsiTrack === n.jitsiTrack) { - const t = n.jitsiTrack.isReceivingData(); - if (e.isReceivingData !== t) return sse({}, e, { - isReceivingData: t - }) - } - break - } - } - return e - }(e, t))); - case oo: { - let n = e; - return t.track.local && (n = e.filter((e => !e.local || e.mediaType !== t.track.mediaType))), [...n, t.track] - } - case so: - case lo: - return e.filter((e => !e.local || e.mediaType !== t.trackType)); - case uo: - return e.filter((e => e.jitsiTrack !== t.track.jitsiTrack)); - case mo: - return [...e, t.track]; - default: - return e + function Nre() { + const e = navigator.userAgent.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i); + let t; + if (e || "ReactNative" === navigator.product) { + let n; + return e && e.length > 2 && (n = e[1], t = e[2]), n || (n = "react-native"), t || (t = "unknown"), { + name: Pre, + version: t } - })), nt.register("features/base/no-src-data", ((e = {}, t) => t.type === ro ? Le(e, "noSrcDataNotificationUid", t.uid) : e)), nt.register("features/base/user-interaction", ((e = {}, t) => { - switch (t.type) { - case Ya: - case Ga: - return cse({}, e, { - interacted: !1 - }); - case cne: - return cse({}, e, { - interacted: !0 + } + } + class Rre { + constructor(e) { + let t, n; + if (this._bowser = h().getParser(navigator.userAgent), void 0 === e) { + const e = function(e) { + let t; + const n = [Nre, Ire, Ore]; + for (let e = 0; e < n.length; e++) + if (t = n[e](), t) return t; + const a = e.getBrowserName(); + return a in Mre ? { + name: Mre[a], + version: e.getBrowserVersion() + } : (t = function() { + const e = navigator.userAgent, + t = { + name: jre, + version: void 0 + }; + if (e.match(/Chrome/) && !e.match(/Edge/)) + if (e.match(/Edg(A?)/)) { + const n = e.match(/Chrome\/([\d.]+)/)[1]; + Number.parseInt(n, 10) > 72 && (t.name = Sre, t.version = n) + } else t.name = Sre, t.version = e.match(/Chrome\/([\d.]+)/)[1]; + return t + }(), t || { + name: jre, + version: void 0 }) - } - return e - })); - const hse = { - authorization: void 0, - events: [], - integrationReady: !1, - integrationType: void 0, - msAuthState: void 0 - }, - mse = "features/calendar-sync"; - - function fse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - gse(e, t, n[t]) - })) - } - return e + }(this._bowser); + t = e.name, n = e.version + } else e.name in Mre ? (t = Mre[e.name], n = e.version) : (t = jre, n = void 0); + this._name = t, this._version = n } - - function gse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + getName() { + return this._name } - et.register(mse, { - integrationType: !0, - msAuthState: !0 - }), nt.register(mse, ((e = hse, t) => { - switch (t.type) { - case GK: - return hse; - case XK: - return t.msAuthState ? Le(e, "msAuthState", dse({}, e.msAuthState, t.msAuthState)) : Le(e, "msAuthState", void 0); - case $K: - return Le(e, "authorization", t.authorization); - case JK: - return Le(e, "error", t.error); - case ZK: - return Le(e, "events", t.events); - case QK: - return dse({}, e, { - integrationReady: t.integrationReady, - integrationType: t.integrationType - }); - case e$: - return Le(e, "profileEmail", t.email); - case t$: - return Le(e, "isLoadingEvents", t.isLoadingEvents) - } - return e - })); - const bse = { - isOpen: !1, - isPollsTabFocused: !1, - lastReadMessage: void 0, - lastReadPoll: void 0, - messages: [], - nbUnreadMessages: 0, - privateMessageRecipient: void 0 - }; - - function yse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + isChrome() { + return this._name === Sre } - - function vse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + isOpera() { + return this._name === Ere } - nt.register("features/chat", ((e = bse, t) => { - switch (t.type) { - case M3: { - const n = { - displayName: t.displayName, - error: t.error, - id: t.id, - isReaction: t.isReaction, - messageType: t.messageType, - message: t.message, - privateMessage: t.privateMessage, - recipient: t.recipient, - timestamp: t.timestamp - }, - a = "ReactNative" === navigator.product ? [n, ...e.messages] : [...e.messages, n]; - return fse({}, e, { - lastReadMessage: t.hasRead ? n : e.lastReadMessage, - nbUnreadMessages: e.isPollsTabFocused ? e.nbUnreadMessages + 1 : e.nbUnreadMessages, - messages: a - }) - } - case I3: - return fse({}, e, { - lastReadMessage: void 0, - messages: [] - }); - case L3: - return fse({}, e, { - privateMessageRecipient: t.participant - }); - case z3: - return fse({}, e, { - isOpen: !0, - privateMessageRecipient: t.participant - }); - case N3: - return fse({}, e, { - isOpen: !1, - lastReadMessage: e.messages["ReactNative" === navigator.product ? 0 : e.messages.length - 1], - privateMessageRecipient: t.participant - }); - case F3: - return fse({}, e, { - isPollsTabFocused: t.isPollsTabFocused, - nbUnreadMessages: 0 - }) - } - return e - })), nt.register("features/deep-linking", ((e = {}, t) => t.type === bne ? function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - yse(e, t, n[t]) - })) - } - return e - }({}, e, { - launchInWeb: !0 - }) : e)); - const kse = "features/dropbox"; - - function _se(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - wse(e, t, n[t]) - })) - } - return e + isFirefox() { + return this._name === xre } - - function wse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + isIExplorer() { + return this._name === Cre } - et.register(kse), nt.register(kse, ((e = {}, t) => t.type === Yz ? function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - vse(e, t, n[t]) - })) - } - return e - }({}, e, { - token: t.token, - rToken: t.rToken, - expireDate: t.expireDate - }) : e)); - const Sse = { - avatarBackgrounds: [], - backgroundColor: "", - backgroundImageUrl: "", - customizationReady: !1, - customizationFailed: !1, - defaultBranding: !0, - didPageUrl: "", - inviteDomain: "", - logoClickUrl: "", - logoImageUrl: "", - premeetingBackground: "", - useDynamicBrandingData: !1, - virtualBackgrounds: [] - }; - - function Ese(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - xse(e, t, n[t]) - })) - } - return e + isSafari() { + return this._name === Are } - - function xse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + isNWJS() { + return this._name === Tre } - nt.register("features/dynamic-branding", ((e = Sse, t) => { - switch (t.type) { - case Qee: { - const { - avatarBackgrounds: e, - backgroundColor: a, - backgroundImageUrl: r, - defaultBranding: i, - didPageUrl: o, - inviteDomain: s, - logoClickUrl: l, - logoImageUrl: c, - premeetingBackground: u, - virtualBackgrounds: d - } = t.value; - return { - avatarBackgrounds: e, - backgroundColor: a, - backgroundImageUrl: r, - defaultBranding: i, - didPageUrl: o, - inviteDomain: s, - logoClickUrl: l, - logoImageUrl: c, - premeetingBackground: u, - customizationFailed: !1, - customizationReady: !0, - useDynamicBrandingData: !0, - virtualBackgrounds: (n = d || [], n.map(((e, t) => { - let n, a; - return "object" == typeof e ? ({ - src: n, - tooltip: a - } = e) : n = e, { - id: `branding-${t}`, - src: n, - tooltip: a - } - }))) - } - } - case Xee: - return _se({}, e, { - customizationReady: !0, - customizationFailed: !0, - useDynamicBrandingData: !0 - }); - case ete: - return _se({}, e, { - customizationReady: !0 - }) - } - var n; - return e - })); - const Cse = { - documentUrl: void 0, - editing: !1 - }; - - function Ase(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - jse(e, t, n[t]) - })) - } - return e + isElectron() { + return this._name === Dre } - - function jse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + isReactNative() { + return this._name === Pre } - nt.register("features/etherpad", ((e = Cse, t) => { - switch (t.type) { - case o6: - return Ese({}, e, { - editing: t.editing - }); - case s6: - return Ese({}, e, { - documentUrl: t.documentUrl - }); - default: - return e - } - })); - const Pse = { - enabled: !0, - horizontalViewDimensions: {}, - participantsVolume: {}, - remoteParticipants: [], - tileViewDimensions: {}, - verticalViewDimensions: {}, - visible: !0, - visibleParticipantsEndIndex: 0, - visibleParticipantsStartIndex: 0, - visibleRemoteParticipants: new Set - }; - - function Dse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Tse(e, t, n[t]) - })) - } - return e + getVersion() { + return this._version } - - function Tse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + _checkCondition(e) { + if (this._version) return this._bowser.satisfies(e) } - nt.register("features/filmstrip", ((e = Pse, t) => { - switch (t.type) { - case DJ: - return Ase({}, e, { - enabled: t.enabled - }); - case TJ: - return Ase({}, e, { - visible: t.visible - }); - case MJ: - return Ase({}, e, { - horizontalViewDimensions: t.dimensions - }); - case IJ: { - e.remoteParticipants = t.participants; - const { - visibleParticipantsStartIndex: n, - visibleParticipantsEndIndex: a - } = e; - return e.visibleRemoteParticipants = new Set(e.remoteParticipants.slice(n, a + 1)), Ase({}, e) - } - case OJ: - return Ase({}, e, { - tileViewDimensions: t.dimensions - }); - case NJ: - return Ase({}, e, { - verticalViewDimensions: t.dimensions - }); - case zJ: - return Ase({}, e, { - participantsVolume: Ase({}, e.participantsVolume, { - [t.participantId]: t.volume - }) - }); - case RJ: - return Ase({}, e, { - visibleParticipantsStartIndex: t.startIndex, - visibleParticipantsEndIndex: t.endIndex, - visibleRemoteParticipants: new Set(e.remoteParticipants.slice(t.startIndex, t.endIndex + 1)) - }); - case Uv: { - const { - id: n, - local: a - } = t.participant; - return a ? e : (delete e.participantsVolume[n], Ase({}, e)) - } - } - return e - })), nt.register("features/follow-me", ((e = {}, t) => { - switch (t.type) { - case Tne: { - let n = Le(e, "moderator", t.id); - return t.id || (n = Le(n, "state", void 0)), n - } - case One: - return Le(e, "state", t.state) - } - return e - })); - const Ose = { - googleAPIState: zK.NEEDS_LOADING, - profileEmail: "" - }; - - function Mse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Ise(e, t, n[t]) - })) - } - return e + isVersionGreaterThan(e) { + return this._checkCondition({ + [this._name]: `>${e}` + }) } - - function Ise(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + isVersionLessThan(e) { + return this._checkCondition({ + [this._name]: `<${e}` + }) } - nt.register("features/google-api", ((e = Ose, t) => { - switch (t.type) { - case MK: - return Dse({}, e, { - googleAPIState: t.googleAPIState, - googleResponse: t.googleResponse - }); - case IK: - return Dse({}, e, { - profileEmail: t.profileEmail - }) - } - return e - })); - const Nse = { - calleeInfoVisible: !1, - numbersEnabled: !0, - numbersFetched: !1, - pendingInviteRequests: [] - }; - nt.register("features/invite", ((e = Nse, t) => { - switch (t.type) { - case kW: - return Mse({}, e, { - pendingInviteRequests: [...e.pendingInviteRequests, t.request] - }); - case wW: - return Mse({}, e, { - pendingInviteRequests: [] - }); - case SW: - return Mse({}, e, { - calleeInfoVisible: t.calleeInfoVisible, - initialCalleeInfo: t.initialCalleeInfo - }); - case xW: - return Mse({}, e, { - error: t.error - }); - case CW: { - if (Array.isArray(t.dialInNumbers)) return Mse({}, e, { - conferenceID: t.conferenceID, - numbers: t.dialInNumbers, - sipUri: t.sipUri, - numbersEnabled: !0, - numbersFetched: !0 - }); - bR.warn("Using deprecated API for retrieving phone numbers"); - const { - numbersEnabled: n - } = t.dialInNumbers; - return Mse({}, e, { - conferenceID: t.conferenceID, - numbers: t.dialInNumbers, - numbersEnabled: n, - numbersFetched: !0 - }) - } - } - return e + isVersionEqualTo(e) { + return this._checkCondition({ + [this._name]: `~${e}` + }) + } + } + class zre { + getItem() {} + setItem() {} + removeItem() {} + key() {} + } + + function Lre(e, t) { + const n = JSON.parse(JSON.stringify(t)); + Object.keys(n).forEach((t => { + const a = n[t]; + delete a.id, e[t] && Object.keys(a).forEach((r => { + a[r] === e[t][r] && delete n[t][r] + })) })); - const zse = { - disabledFeatures: [], - status: "ACTIVE" - }; + let a = -1 / 0; + return Object.keys(n).forEach((e => { + const t = n[e]; + t.timestamp > a && (a = t.timestamp) + })), Object.keys(n).forEach((e => { + const t = n[e]; + t.timestamp === a && (t.timestamp = 0) + })), n.timestamp = a, n + } - function Rse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Lse(e, t, n[t]) - })) - } - return e + function Fre(e) { + return { + id: e.id, + tracks: e.getTracks().map((e => ({ + id: e.id, + kind: e.kind, + label: e.label, + enabled: e.enabled, + muted: e.muted, + readyState: e.readyState + }))) } - - function Lse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + } + new class extends zre { + constructor() { + let e; + super(); + try { + e = window.localStorage + } catch (e) {} + this.storage = e || new zre } - - function Fse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - qse(e, t, n[t]) - })) - } - return e + getItem(e) { + return this.storage.getItem(e) } - - function qse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + setItem(e, t) { + return this.storage.setItem(e, t) } - nt.register("features/jaas", ((e = zse, t) => t.type === Hz ? t.payload : e)), nt.register("features/large-video", ((e = {}, t) => { - switch (t.type) { - case Fv: - if (e.participantId === t.oldValue) return Rse({}, e, { - participantId: t.newValue - }); - break; - case iX: - return Rse({}, e, { - participantId: t.participantId - }); - case oX: - return Rse({}, e, { - resolution: t.resolution - }); - case sX: - return Rse({}, e, { - lastMediaEvent: t.name - }) - } - return e - })); - const Bse = { - knocking: !1, - knockingParticipants: [], - lobbyEnabled: !1, - lobbyVisible: !1, - passwordJoinFailed: !1 - }; - - function Use(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Hse(e, t, n[t]) - })) - } - return e + removeItem(e) { + return this.storage.removeItem(e) } - - function Hse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + key(e) { + return this.storage.key(e) } - nt.register("features/lobby", ((e = Bse, t) => { - switch (t.type) { - case UI: - case HI: - return Fse({}, e, { - knocking: !1, - passwordJoinFailed: !1 - }); - case H4: - return function(e, t) { - let n = t.knockingParticipants.find((t => t.id === e.id)); - return n = Fse({}, n, e), Fse({}, t, { - knockingParticipants: [...t.knockingParticipants.filter((t => t.id !== e.id)), n] - }) - }(t.participant, e); - case V4: - return Fse({}, e, { - knockingParticipants: e.knockingParticipants.filter((e => e.id !== t.id)) - }); - case Y4: - return Fse({}, e, { - knocking: t.knocking, - passwordJoinFailed: !1 - }); - case W4: - return Fse({}, e, { - lobbyEnabled: t.enabled - }); - case G4: - return Fse({}, e, { - lobbyVisible: t.visible - }); - case tN: - return Fse({}, e, { - passwordJoinFailed: !1 - }); - case K4: - return Fse({}, e, { - passwordJoinFailed: t.failed - }) - } - return e - })); - const Vse = { - enabled: !0, - notifications: [] - }; + }; + var qre = n(7670), Bre = n.n(qre), Ure = n(6516), Hre = n.n(Ure); - function Wse(e, t) { - const n = qf[t.props.appearance] || 0; - let a = e.length; - for (let t = 1; t < e.length; t++) { - const r = e[t]; - if ((qf[r.props.appearance] || 0) < n) { - a = t; - break - } - } - const r = e.slice(); - return r.splice(a, 0, t), r - } + function Vre(e) { + return 0 === e.indexOf("[") || -1 !== e.indexOf(":") ? "x:x:x:x:x:x:x:x" : "x.x.x.x" + } - function Yse(e, t) { - return Le(e, "loadConfigOverlayVisible", t) - } + function Wre(e) { + const t = Hre().parseCandidate(e); + return "relay" !== t.type && "ssltcp" !== t.protocol && (t.ip = Vre(t.ip), t.address = Vre(t.address)), t.relatedAddress && (t.relatedAddress = Vre(t.relatedAddress)), Hre().writeCandidate(t) + } - function Gse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Kse(e, t, n[t]) - })) - } - return e + function Yre(e) { + switch (e[0]) { + case "addIceCandidate": + case "onicecandidate": + if (e[2] && e[2].candidate) { + const t = e[2].toJSON(); + t.candidate = Wre(t.candidate), e[2] = t + } + break; + case "setLocalDescription": + case "setRemoteDescription": + case "createOfferOnSuccess": + case "createAnswerOnSuccess": + e[2] && e[2].sdp && (e[2].sdp = (n = e[2].sdp, `${Hre().splitLines(n).map((e=>0===e.indexOf("a=candidate:")?`a=${Wre(e)}`:0===e.indexOf("c=")?"c=IN IP4 0.0.0.0":0===e.indexOf("a=rtcp:")?"a=rtcp:9 IN IP4 0.0.0.0":e)).join("\r\n").trim()}\r\n`)); + break; + case "getStats": + case "getstats": + e[2] && (t = e[2], Object.keys(t).forEach((e => { + const n = t[e]; + n && (["ipAddress", "ip", "address"].forEach((e => { + n[e] && "relayed" !== n.candidateType && (n[e] = Vre(n[e])) + })), ["googLocalAddress", "googRemoteAddress"].forEach((e => { + let t, a, r; + n[e] && (r = "[" === n[e][0] ? "]:" : ":", [a, t] = n[e].split(r), n[e] = `${Vre(a)}:${t}`) + }))) + }))) } + var t, n + } + const Gre = $e("features/rtcstats"); - function Kse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register("features/notifications", ((e = Vse, t) => { - switch (t.type) { - case Tf: - return Use({}, e, { - notifications: [] - }); - case Of: - return Use({}, e, { - notifications: e.notifications.filter((e => e.uid !== t.uid)) - }); - case Nf: - return Use({}, e, { - notifications: e.notifications.filter((e => !e.props.raiseHandNotification)) - }); - case If: - return Use({}, e, { - enabled: t.enabled - }); - case Mf: - return Use({}, e, { - notifications: Wse(e.notifications, { - component: t.component, - props: t.props, - timeout: t.timeout, - uid: t.uid - }) - }) - } - return e - })), nt.register("features/overlay", ((e = {}, t) => { - switch (t.type) { - case Nn: - return Yse(e, Boolean(t.room)); - case zn: - case Rn: - return Yse(!1); - case kN: - return function(e, { - browser: t, - isVisible: n - }) { - return Ne(e, { - browser: t, - isMediaPermissionPromptVisible: n + function Kre(e) { + if (e && e.iceServers[0] && e.iceServers[0].urls) + for (const t of e.iceServers[0].urls) + if (t.indexOf("taas.callstats.io") >= 0) return !0 + } + const $re = new class { + init(e) { + const { + endpoint: t, + useLegacy: n, + pollInterval: a + } = e, r = { + endpoint: t, + onCloseCallback: this.handleTraceWSClose.bind(this), + useLegacy: n + }, i = { + connectionFilter: Kre, + pollInterval: a, + useLegacy: n + }; + this.trace = function(e) { + let { + endpoint: t, + onCloseCallback: n, + useLegacy: a, + obfuscate: r = !0, + pingInterval: i = 3e4 + } = e; + const o = [], + s = Bre().v4(); + let l, c; + const u = a ? "3.1_LEGACY" : "3.1_STANDARD", + d = function(e) { + const t = JSON.stringify(e); + l && l.readyState === WebSocket.OPEN ? l.send(t) : l && l.readyState >= WebSocket.CLOSING || o.length < 300 && o.push(t) + }; + return d.identity = function() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + t.push((new Date).getTime()), d({ + statsSessionId: s, + type: "identity", + data: t }) - }(e, t); - case wN: - return function(e, { - fatalError: t - }) { - return Le(e, "fatalError", t) - }(e, t); - case _N: - return function(e, { - isVisible: t - }) { - return Ne(e, { - isSlowGUMOverlayVisible: t + }, d.statsEntry = function() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + r && Yre(t), t.push((new Date).getTime()); + const a = { + statsSessionId: s, + type: "stats-entry", + data: JSON.stringify(t) + }; + d(a) + }, d.keepAlive = function() { + d({ + statsSessionId: s, + type: "keepalive" }) - }(e, t) - } - return e - })); - const $se = { - polls: {}, - nbUnreadPolls: 0 - }; - - function Jse(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Zse(e, t, n[t]) - })) - } - return e + }, d.close = function() { + l && l.close() + }, d.connect = function() { + l && l.close(), l = new WebSocket(t + window.location.pathname, u), l.onclose = function(e) { + c && clearInterval(c), n({ + code: e.code, + reason: e.reason + }) + }, l.onopen = function() { + for (c = setInterval(d.keepAlive, i); o.length;) l.send(o.shift()) + } + }, d + }(r), + function(e, t) { + let { + statsEntry: n + } = e, { + connectionFilter: a, + pollInterval: r, + useLegacy: i, + sendSdp: o = !1, + prefixesToWrap: s = [""] + } = t, l = 0; + const c = new Rre, + u = c.isFirefox(), + d = c.isSafari(), + p = c.isChrome(), + h = c.isElectron(); + if (!(u || d || p || h)) throw new Error("RTCStats unsupported browser."); + if (s.forEach((e => { + if (!window[`${e}RTCPeerConnection`]) return; + const t = window[`${e}RTCPeerConnection`], + s = function(e, o) { + const s = { + ...e + }, + c = { + ...o + }; + try { + const s = new t(e, o); + if (a && a(e)) return s; + const c = "PC_" + l++; + s.__rtcStatsId = c, e || (e = { + nullConfig: !0 + }), ((e = JSON.parse(JSON.stringify(e))) && e.iceServers || []).forEach((e => { + delete e.credential + })), e.browserType = u ? "moz" : "webkit", n("create", c, e), o && n("constraints", c, o), s.addEventListener("icecandidate", (e => { + n("onicecandidate", c, e.candidate) + })), s.addEventListener("addstream", (e => { + n("onaddstream", c, `${e.stream.id} ${e.stream.getTracks().map((e=>`${e.kind}:${e.id}`))}`) + })), s.addEventListener("track", (e => { + n("ontrack", c, `${e.track.kind}:${e.track.id} ${e.streams.map((e=>`stream:${e.id}`))}`) + })), s.addEventListener("removestream", (e => { + n("onremovestream", c, `${e.stream.id} ${e.stream.getTracks().map((e=>`${e.kind}:${e.id}`))}`) + })), s.addEventListener("signalingstatechange", (() => { + n("onsignalingstatechange", c, s.signalingState) + })), s.addEventListener("iceconnectionstatechange", (() => { + n("oniceconnectionstatechange", c, s.iceConnectionState) + })), s.addEventListener("icegatheringstatechange", (() => { + n("onicegatheringstatechange", c, s.iceGatheringState) + })), s.addEventListener("connectionstatechange", (() => { + n("onconnectionstatechange", c, s.connectionState) + })), s.addEventListener("negotiationneeded", (() => { + n("onnegotiationneeded", c, void 0) + })), s.addEventListener("datachannel", (e => { + n("ondatachannel", c, [e.channel.id, e.channel.label]) + })); + let m = {}; + const f = function() { + u || d || (p || h) && !i ? s.getStats(null).then((e => { + const t = function(e) { + if (!e.entries) return e; + const t = {}; + return e.forEach(((e, n) => { + t[n] = e + })), t + }(e), + a = JSON.parse(JSON.stringify(t)); + n("getstats", c, Lre(m, t)), m = a + })) : (p || h) && s.getStats((e => { + const t = function(e, t) { + const n = {}; + return t.result().forEach((e => { + const t = { + id: e.id, + timestamp: e.timestamp.getTime(), + type: e.type + }; + e.names().forEach((n => { + t[n] = e.stat(n) + })), n[t.id] = t + })), n + }(0, e), + a = JSON.parse(JSON.stringify(t)); + n("getstats", c, Lre(m, t)), m = a + })) + }; + if (r) { + const e = window.setInterval((() => { + "closed" !== s.signalingState ? f() : window.clearInterval(e) + }), r) + } + return s.addEventListener("iceconnectionstatechange", (() => { + "connected" === s.iceConnectionState && f() + })), s + } catch (e) { + return console.error("RTCStats PeerConnection bind failed: ", e), new t(s, c) + } + }; + ["createDataChannel", "close"].forEach((e => { + const a = t.prototype[e]; + a && (t.prototype[e] = function() { + try { + n(e, this.__rtcStatsId, arguments) + } catch (t) { + console.error(`RTCStats ${e} bind failed: `, t) + } + return a.apply(this, arguments) + }) + })), ["addStream", "removeStream"].forEach((e => { + const a = t.prototype[e]; + a && (t.prototype[e] = function() { + try { + const t = arguments[0], + a = t.getTracks().map((e => `${e.kind}:${e.id}`)).join(","); + n(e, this.__rtcStatsId, `${t.id} ${a}`) + } catch (t) { + console.error(`RTCStats ${e} bind failed: `, t) + } + return a.apply(this, arguments) + }) + })), ["addTrack"].forEach((e => { + const a = t.prototype[e]; + a && (t.prototype[e] = function() { + try { + const t = arguments[0], + a = [].slice.call(arguments, 1); + n(e, this.__rtcStatsId, `${t.kind}:${t.id} ${a.map((e=>`stream:${e.id}`)).join(";")||"-"}`) + } catch (t) { + console.error(`RTCStats ${e} bind failed: `, t) + } + return a.apply(this, arguments) + }) + })), ["removeTrack"].forEach((e => { + const a = t.prototype[e]; + a && (t.prototype[e] = function() { + try { + const t = arguments[0].track; + n(e, this.__rtcStatsId, t ? `${t.kind}:${t.id}` : "null") + } catch (t) { + console.error(`RTCStats ${e} bind failed: `, t) + } + return a.apply(this, arguments) + }) + })), ["createOffer", "createAnswer"].forEach((e => { + const a = t.prototype[e]; + a && (t.prototype[e] = function() { + const t = this.__rtcStatsId, + r = arguments; + let i; + 1 === arguments.length && "object" == typeof arguments[0] ? i = arguments[0] : 3 === arguments.length && "object" == typeof arguments[2] && (i = arguments[2]); + try { + n(e, this.__rtcStatsId, i) + } catch (t) { + console.error(`RTCStats ${e} bind failed: `, t) + } + return a.apply(this, i ? [i] : void 0).then((a => { + try { + n(`${e}OnSuccess`, t, o ? a : "") + } catch (t) { + console.error(`RTCStats ${e} promise success bind failed: `, t) + } + if (!(r.length > 0 && "function" == typeof r[0])) return a; + r[0].apply(null, [a]) + }), (a => { + try { + n(`${e}OnFailure`, t, a.toString()) + } catch (t) { + console.error(`RTCStats ${e} promise failure bind failed: `, t) + } + if (!(r.length > 1 && "function" == typeof r[1])) throw a; + r[1].apply(null, [a]) + })) + }) + })), ["setLocalDescription", "setRemoteDescription", "addIceCandidate"].forEach((e => { + const a = t.prototype[e]; + a && (t.prototype[e] = function() { + const t = this.__rtcStatsId, + r = arguments; + try { + const t = o ? r[0] : ""; + n(e, this.__rtcStatsId, t) + } catch (t) { + console.error(`RTCStats ${e} bind failed: `, t) + } + return a.apply(this, [r[0]]).then((() => { + try { + n(`${e}OnSuccess`, t, void 0) + } catch (t) { + console.error(`RTCStats ${e} promise success bind failed: `, t) + } + r.length >= 2 && "function" == typeof r[1] && r[1].apply(null, []) + }), (a => { + try { + n(`${e}OnFailure`, t, a.toString()) + } catch (t) { + console.error(`RTCStats ${e} promise failure bind failed: `, t) + } + if (!(r.length >= 3 && "function" == typeof r[2])) throw a; + r[2].apply(null, [a]) + })) + }) + })), t.generateCertificate && Object.defineProperty(s, "generateCertificate", { + get() { + return arguments.length ? t.generateCertificate.apply(null, arguments) : t.generateCertificate + } + }), window[`${e}RTCPeerConnection`] = s, window[`${e}RTCPeerConnection`].prototype = t.prototype + })), s.forEach((e => { + const t = e + (e.length ? "GetUserMedia" : "getUserMedia"); + if (!navigator[t]) return; + const a = navigator[t].bind(navigator); + navigator[t] = function() { + try { + n("getUserMedia", null, arguments[0]) + } catch (e) { + console.error("RTCStats getUserMedia bind failed: ", e) + } + const e = arguments[1], + t = arguments[2]; + a(arguments[0], (t => { + try { + n("getUserMediaOnSuccess", null, Fre(t)) + } catch (e) { + console.error("RTCStats getUserMediaOnSuccess bind failed: ", e) + } + e && e(t) + }), (e => { + try { + n("getUserMediaOnFailure", null, e.name) + } catch (e) { + console.error("RTCStats getUserMediaOnFailure bind failed: ", e) + } + t && t(e) + })) + }.bind(navigator) + })), navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { + const e = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices), + t = function() { + try { + n("navigator.mediaDevices.getUserMedia", null, arguments[0]) + } catch (e) { + console.error("RTCStats navigator.mediaDevices.getUserMedia bind failed: ", e) + } + return e.apply(navigator.mediaDevices, arguments).then((e => { + try { + n("navigator.mediaDevices.getUserMediaOnSuccess", null, Fre(e)) + } catch (e) { + console.error("RTCStats navigator.mediaDevices.getUserMediaOnSuccess bind failed: ", e) + } + return e + }), (e => { + try { + n("navigator.mediaDevices.getUserMediaOnFailure", null, e.name) + } catch (e) { + console.error("RTCStats navigator.mediaDevices.getUserMediaOnFailure bind failed: ", e) + } + return Promise.reject(e) + })) + }; + navigator.mediaDevices.getUserMedia = t.bind(navigator.mediaDevices) + } + if (navigator.mediaDevices && navigator.mediaDevices.getDisplayMedia) { + const e = navigator.mediaDevices.getDisplayMedia.bind(navigator.mediaDevices), + t = function() { + try { + n("navigator.mediaDevices.getDisplayMedia", null, arguments[0]) + } catch (e) { + console.error("RTCStats navigator.mediaDevices.getDisplayMedia bind failed: ", e) + } + return e.apply(navigator.mediaDevices, arguments).then((e => { + try { + n("navigator.mediaDevices.getDisplayMediaOnSuccess", null, Fre(e)) + } catch (e) { + console.error("RTCStats navigator.mediaDevices.getDisplayMediaOnSuccess bind failed: ", e) + } + return e + }), (e => { + try { + n("navigator.mediaDevices.getDisplayMediaOnFailure", null, e.name) + } catch (e) { + console.error("RTCStats navigator.mediaDevices.getDisplayMediaOnFailure bind failed: ", e) + } + return Promise.reject(e) + })) + }; + navigator.mediaDevices.getDisplayMedia = t.bind(navigator.mediaDevices) + } + }(this.trace, i), this.initialized = !0 } - - function Zse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + isInitialized() { + return this.initialized } - nt.register("features/polls", ((e = $se, t) => { - switch (t.type) { - case K3: - return Gse({}, e, { - polls: Gse({}, e.polls, { - [t.pollId]: t.poll - }), - nbUnreadPolls: e.nbUnreadPolls + 1 - }); - case $3: { - const { - pollId: n, - answer: a - } = t; - if (!(n in e.polls)) return console.warn("requested poll does not exist: pollId ", n), e; - const r = e.polls[n].answers.map((e => ({ - name: e.name, - voters: new Map(e.voters) - }))); - for (let e = 0; e < r.length; e++) { - const t = r[e].voters; - a.answers[e] ? t.set(a.voterId, a.voterName) : t.delete(a.voterId) - } - return Gse({}, e, { - polls: Gse({}, e.polls, { - [n]: Gse({}, e.polls[n], { - answers: r - }) - }) + sendIdentityData(e) { + this.trace && this.trace.identity("identity", null, e) + } + sendDominantSpeakerData(e) { + this.trace && this.trace.statsEntry("dominantSpeaker", null, e) + } + sendFacialExpressionData(e) { + this.trace && this.trace.statsEntry("facialExpression", null, e) + } + connect() { + this.trace && this.trace.connect() + } + close() { + this.trace && this.trace.close() + } + handleTraceWSClose(e) { + Gre.info("RTCStats trace ws closed", e), Da(function(e) { + const t = { + action: "trace.onclose", + source: "rtcstats" + }; + return t.code = e.code, t.reason = e.reason, t + }(e)) + } + }; + + function Jre(e) { + var t, n; + if ("ReactNative" === navigator.product) return !1; + const a = Fe(e)["features/base/config"]; + return null !== (t = null == a || null === (n = a.analytics) || void 0 === n ? void 0 : n.rtcstatsEnabled) && void 0 !== t && t + } + + function Zre(e) { + return Jre(e) && $re.isInitialized() + } + qe.register((e => t => n => { + const a = e.getState(), + r = a["features/base/config"], + { + analytics: i + } = r; + switch (n.type) { + case v: + if (Jre(a)) try { + const e = i.rtcstatsPollInterval || 1e3, + t = i.rtcstatsUseLegacy || !1; + $re.init({ + endpoint: i.rtcstatsEndpoint, + useLegacy: t, + pollInterval: e + }) + } catch (e) { + Gre.error("Failed to initialize RTCStats: ", e) + } + break; + case GF: + if (Zre(a)) try { + $re.connect(); + const e = Uh(a), + t = bF(a), + { + conference: r + } = n, + i = r && r.getMeetingUniqueId(), + o = t.statisticsId || t.statisticsDisplayName || l.getItem("callStatsUserName"); + $re.sendIdentityData({ + ...Pa(), + ...t, + endpointId: null == e ? void 0 : e.id, + confName: kF(a), + displayName: o, + meetingUniqueId: i }) + } catch (e) { + Gre.error("RTCStats connect failed with: ", e) } - case J3: { + break; + case Nw: + if (Zre(a)) { const { - answers: n, - pollId: a - } = t; - return Gse({}, e, { - polls: Gse({}, e.polls, { - [a]: Gse({}, e.polls[a], { - lastVote: n, - showResults: !0 - }) - }) + id: e, + previousSpeakers: t + } = n.participant; + $re.sendDominantSpeakerData({ + dominantSpeakerEndpoint: e, + previousSpeakers: t }) } - case Z3: { + break; + case Lne: + if (Zre(a)) { const { - pollId: n - } = t; - return Gse({}, e, { - polls: Gse({}, e.polls, { - [n]: Gse({}, e.polls[n], { - showResults: !1 - }) - }) + duration: e, + facialExpression: t + } = n; + $re.sendFacialExpressionData({ + duration: e, + facialExpression: t }) } - case Q3: - return Gse({}, e, { - nbUnreadPolls: 0 - }); - default: - return e - } - })), nt.register("features/reactions", ((e = { - visible: !1, - buffer: [], - timeoutID: null, - queue: [], - notificationDisplayed: !1 - }, t) => { - switch (t.type) { - case Z6: - return Jse({}, e, { - visible: !e.visible - }); - case Q6: - return Jse({}, e, { - buffer: t.buffer, - timeoutID: t.timeoutID - }); - case X6: - return Jse({}, e, { - buffer: [], - timeoutID: null - }); - case t4: - return Jse({}, e, { - queue: t.value - }); - case r4: - return Jse({}, e, { - notificationDisplayed: !0 - }) - } - return e - })); - const Qse = Je("features/recent-list"); - - function Xse(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e } - const ele = [], - tle = "features/recent-list"; - - function nle(e, t) { - return LI(new URL(e)) === LI(new URL(t)) - } - - function ale(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - rle(e, t, n[t]) - })) + return t(n) + })), qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const r = e(a); + switch (a.type) { + case AQ: { + const e = HQ(n()); + t(MQ(e)); + break + } + case TQ: + if (a.getSpeakerStats) { + const e = n(), + r = HQ(e, { + ...a.getSpeakerStats() + }), + i = function(e) { + var t, n; + return null !== (t = null === (n = e["features/speaker-stats"]) || void 0 === n ? void 0 : n.pendingReorder) && void 0 !== t && t + }(e); + t(MQ(i ? function(e, t) { + const n = function(e) { + var t, n; + return null !== (t = null === (n = e["features/base/config"]) || void 0 === n ? void 0 : n.speakerStatsOrder) && void 0 !== t ? t : ["role", "name", "hasLeft"] + }(e); + if (n) { + const i = function(e, t, n) { + if (!n) return t; + for (const a in t) + if (t[a].hasOwnProperty("_hasLeft") && !t[a].hasLeft() && n.includes("role")) { + const n = Vh(e, t[a].getUserId()); + t[a].isModerator = n && n.role === Rh + } return t + }(e, t, n), + o = (a = i, r = (e, t) => { + if (n.includes("hasLeft")) { + if (t.hasLeft() && !e.hasLeft()) return -1; + if (e.hasLeft() && !t.hasLeft()) return 1 + } + let a; + for (const r of n) { + switch (r) { + case "role": + a = !t.isModerator && e.isModerator ? -1 : !e.isModerator && t.isModerator ? 1 : 0; + break; + case "name": + a = (e.displayName || "").localeCompare(t.displayName || "") + } + if (0 !== a) break + } + return a + }, Object.entries(a).sort(((e, t) => { + let [, n] = e, [, a] = t; + return r(n, a) + })).reduce(((e, t) => { + let [n, a] = t; + return { + ...e, + [n]: a + } + }), {})); + return o + } + var a, r + }(e, r) : r)) + } + break; + case qw: + case Uw: + case Bw: + case Hw: + t({ + type: PQ + }) } - return e + return r } + })); + const Qre = $e("features/subtitles"), Xre = "transcription-result", eie = "translation-result"; - function rle(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - et.register(tle), nt.register(tle, ((e = function() { - const e = l.getItem("recentURLs"); - if (e) try { - return r.parse(e) - } catch (e) { - Qse.warn("Failed to parse legacy recent-room list!") + function tie(e, t, n) { + n.clearTimeOut && clearTimeout(n.clearTimeOut), n.clearTimeOut = setTimeout((() => e(function(e) { + return { + type: Ia, + transcriptMessageID: e } - return [] - }(), t) => { - if (Zne()) switch (t.type) { - case Ya: - return function(e) { - if (e && "object" == typeof e) { - if (Array.isArray(e)) return e; + }(t))), 3e3) + } + qe.register((e => t => n => { + switch (n.type) { + case Ma: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + const { + json: i + } = n; + if (!i || i.type !== Xre && i.type !== eie) return t(n); + const o = r(), + s = o["features/base/conference"].conference.getLocalParticipantProperty("translation_language"); + try { + const e = i.message_id, + t = i.participant.name; + if (i.type === eie && i.language === s) { + const n = { + clearTimeOut: void 0, + final: i.text, + participantName: t + }; + tie(a, e, n), a(za(e, n)) + } else if (i.type === Xre && !s) { const { - list: t - } = e; - if (Array.isArray(t) && t.length) return t.slice() + text: n + } = i.transcript[0], r = { + ...o["features/subtitles"]._transcriptMessages.get(e) || { + participantName: t + } + }; + tie(a, e, r), i.is_interim ? i.stability > .85 ? (r.stable = n, r.unstable = void 0) : r.unstable = n : r.final = n, a(za(e, r)) } - return ele - }(e); - case Kne: - return function(e, t) { - return e.filter((e => e.conference !== t.url || e.date !== t.date)) - }(e, t.entryId); - case $ne: - return function(e, { - locationURL: t - }) { - const n = t.href, - a = e.filter((e => !nle(e.conference, n))); - return a.push({ - conference: n, - date: Date.now(), - duration: 0 - }), a.splice(0, a.length - 30), a - }(e, t); - case Jne: - return function(e, { - locationURL: t - }) { - if (t && t.href && e.length) { - const n = e.length - 1, - a = e[n]; - if (nle(a.conference, t.href)) { - const t = function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Xse(e, t, n[t]) - })) - } - return e - }({}, a, { - duration: Date.now() - a.date - }); - delete t.conferenceDuration; - const r = e.slice(); - return r[n] = t, r - } + } catch (e) { + Qre.error("Error occurred while updating transcriptions\n", e) + } + return t(n) + }(e, t, n); + case Na: + ! function(e) { + let { + getState: t + } = e; + const n = t(), + { + _requestingSubtitles: a + } = n["features/subtitles"], + { + conference: r + } = n["features/base/conference"]; + r.setLocalParticipantProperty("requestingTranscription", !a) + }(e) + } + return t(n) + })), qe.register((e => t => n => { + switch (n.type) { + case vM: { + const { + timeoutID: t + } = e.getState()["features/toolbox"]; + clearTimeout(t); + break + } + case _M: + return function(e, t) { + const n = e(t); + if ("object" == typeof APP) { + const { + fullScreen: e + } = t; + if (e) { + const e = document.documentElement || {}; + return "function" == typeof e.requestFullscreen ? e.requestFullscreen() : "function" == typeof e.mozRequestFullScreen ? e.mozRequestFullScreen() : "function" == typeof e.webkitRequestFullscreen && e.webkitRequestFullscreen(), n } - return e - }(e, t); - default: - return e + "function" == typeof document.exitFullscreen ? document.exitFullscreen() : "function" == typeof document.mozCancelFullScreen ? document.mozCancelFullScreen() : "function" == typeof document.webkitExitFullscreen && document.webkitExitFullscreen() + } + return n + }(t, n); + case CM: { + const { + timeoutID: t + } = e.getState()["features/toolbox"], { + handler: a, + timeoutMS: r + } = n; + clearTimeout(t), n.timeoutID = setTimeout(a, r); + break } - return e - })); - const ile = { - pendingNotificationUids: {}, - selectedRecordingService: "", - sessionDatas: [] - }; - - function ole(e, t) { - let n; - return n = e.find((e => e.id === t.id)) ? e.map((e => e.id === t.id ? ale({}, t) : e)) : [...e, ale({}, t)], n } + return t(n) + })); + const nie = "TRANSCRIBER_JOINED", aie = "TRANSCRIBER_LEFT", rie = "POTENTIAL_TRANSCRIBER_JOINED", iie = "SET_PENDING_TRANSCRIBING_NOTIFICATION_UID"; - function sle(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - lle(e, t, n[t]) - })) - } - return e + function oie(e) { + return { + type: nie, + transcriberJID: e } + } + const sie = "Transcriber"; + let lie; - function lle(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } + function cie(e) { + let { + dispatch: t, + getState: n + } = e; + const { + tileViewEnabled: a + } = n()["features/video-layout"]; + void 0 === a && void 0 !== lie && t(tE(lie)), lie = void 0 + } - function cle(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - ule(e, t, n[t]) - })) - } - return e - } + function uie(e) { + let { + dispatch: t, + getState: n + } = e; + const { + tileViewEnabled: a + } = n()["features/video-layout"]; + void 0 !== a && (lie = a, t(tE(void 0))) + } - function ule(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } - nt.register("features/recording", ((e = ile, t) => { - switch (t.type) { - case pG: - return ale({}, e, { - sessionDatas: [] - }); - case hG: - return ale({}, e, { - sessionDatas: ole(e.sessionDatas, t.sessionData) - }); - case mG: { - const n = ale({}, e.pendingNotificationUids); - return n[t.streamType] = t.uid, ale({}, e, { - pendingNotificationUids: n - }) - } - case fG: - return ale({}, e, { - selectedRecordingService: t.selectedRecordingService - }); - case "SET_STREAM_KEY": - return ale({}, e, { - streamKey: t.streamKey - }); - default: - return e - } - })), nt.register("features/settings", ((e = {}, t) => { - switch (t.type) { - case dW: - return sle({}, e, { - audioSettingsVisible: t.value - }); - case pW: - return sle({}, e, { - videoSettingsVisible: t.value - }) - } - return e - })); - const dle = { - stats: {}, - pendingReorder: !0, - criteria: null - }; + function die(e, t) { + let { + getState: n + } = t; + const a = n(), + { + conference: r + } = a["features/base/conference"]; + r && (f7.info(`Setting sender resolution to ${e}`), r.setSenderVideoConstraint(e).catch((t => { + wF(t), Pt(t, `Changing sender resolution to ${e} failed.`) + }))) + } - function ple(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - hle(e, t, n[t]) - })) - } - return e + function pie(e) { + let { + getState: t + } = e; + const n = t(), + { + conference: a + } = n["features/base/conference"]; + if (!a) return; + const { + lastN: r + } = n["features/base/lastn"], { + maxReceiverVideoQuality: i, + preferredVideoQuality: o + } = n["features/video-quality"], { + participantId: s + } = n["features/large-video"], l = Math.min(i, o), { + remoteScreenShares: c + } = n["features/video-layout"], { + visibleRemoteParticipants: u + } = n["features/filmstrip"], d = { + constraints: {}, + defaultConstraints: { + maxHeight: d7.NONE + }, + lastN: r, + onStageEndpoints: [], + selectedEndpoints: [] + }; + if (QS(n)) { + if (null == u || !u.size) return; + u.forEach((e => { + d.constraints[e] = { + maxHeight: l + } + })), (null == c ? void 0 : c.length) && (d.selectedEndpoints = c) + } else { + if (!(null != u && u.size || s)) return; + (null == u ? void 0 : u.size) > 0 && u.forEach((e => { + d.constraints[e] = { + maxHeight: d7.LOW + } + })), s && (d.constraints[s] = { + maxHeight: l + }, d.onStageEndpoints = [s]) } - - function hle(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + try { + a.setReceiverConstraints(d) + } catch (e) { + wF(e), Pt(e, `Failed to set receiver video constraints ${JSON.stringify(d)}`) } - nt.register("features/speaker-stats", ((e = function() { - return dle - }(), t) => { - switch (t.type) { - case PZ: - return function(e, { - criteria: t - }) { - return k().assign({}, e, { - criteria: t - }) - }(e, t); - case TZ: - return function(e, { - stats: t - }) { - const n = e.pendingReorder ? t : e.stats; - if (!e.pendingReorder) { - const e = Object.keys(t); - e.forEach((e => { - n[e] = k().clone(t[e]) - })), Object.keys(n).forEach((t => { - e.includes(t) || delete n[t] - })) + } + qe.register((e => t => n => { + const { + transcriberJID: a, + potentialTranscriberJIDs: r + } = e.getState()["features/transcribing"]; + switch (n.type) { + case aie: + e.dispatch(tg({ + descriptionKey: "transcribing.off", + titleKey: "dialog.transcribing" + }, Yf.SHORT)); + break; + case Ww: + n.displayName && n.displayName === sie ? e.dispatch(oie(n.id)) : e.dispatch((i = n.id, { + type: rie, + transcriberJID: i + })); + break; + case Yw: + n.id === a && e.dispatch(function(e) { + return { + type: aie, + transcriberJID: e + } + }(n.id)); + break; + case Hw: { + const { + participant: t + } = n; + r.includes(t.id) && t.name === sie && (e.dispatch(oie(t.id)), e.dispatch(((e, t) => { + const { + pendingNotificationUid: n + } = t()["features/transcribing"]; + n && (e(Xf(n)), e(function(e) { + return { + type: iie, + uid: e } - return k().assign({}, e, { - stats: cle({}, n), - pendingReorder: !1 - }) - }(e, t); - case OZ: - return function(e) { - return k().assign({}, e, { - pendingReorder: !0 - }) - }(e) + }())) + }))); + break } - return e - })); - const mle = { - _transcriptMessages: new Map, - _requestingSubtitles: !1 - }; - - function fle(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - gle(e, t, n[t]) - })) + } + var i; + return t(n) + })), tt.register((e => e["features/base/tracks"]), Nj()(((e, t) => { + if (!$S() || bZ(t)) return; + const n = t.getState()["features/video-layout"].remoteScreenShares || [], + a = e.reduce(((e, t) => ("video" === t.mediaType && "desktop" === t.videoType && ("remote-only" === $S() && t.local || e.push(t.participantId)), e)), []), + r = n.filter((e => a.includes(e))); + a.forEach((e => { + r.includes(e) || r.push(e) + })), Re(n, r) || (t.dispatch({ + type: mS, + participantIds: r + }), XS(n, t)) + }), 100)), qe.register((e => t => n => { + let a = !1; + switch (n.type) { + case Uw: + var r; + if (!$S() || bZ(e)) break; + a = null === (r = Vh(e.getState(), n.participant.id)) || void 0 === r ? void 0 : r.isFakeParticipant + } + const i = t(n); + switch (n.type) { + case Vw: + Zh(e.getState()) ? uie(e) : cie(e); + break; + case p1: + n.editing ? uie(e) : cie(e); + break; + case fS: + n.enabled && Zh(e) && e.dispatch(uS(null)) + } + return a && XS(e.getState()["features/video-layout"].remoteScreenShares || [], e), i + })), tt.register((e => vF(e)), ((e, t, n) => { + let { + dispatch: a + } = t; + e !== n && a(tE()) + })), qe.register((e => t => n => { + const a = t(n); + switch (n.type) { + case $F: + X9.reset(); + break; + case qw: + n.participant.local || X9.updateVideoMutedForNoTracks(n.participant.id); + break; + case Hw: + void 0 !== n.participant.connectionStatus && X9.onParticipantConnectionStatusChanged(n.participant.id, n.participant.connectionStatus); + break; + case _0: + case w0: + case wS: + X9.resizeVideoArea(); + break; + case up: + n.track.mediaType !== Fi && X9._updateLargeVideoIfDisplayed(n.track.participantId, !0); + break; + case fp: + if (n.track.jitsiTrack.isLocal()) { + const t = Uh(e.getState); + X9._updateLargeVideoIfDisplayed(null == t ? void 0 : t.id) + } + break; + case mp: + n.track.local || n.track.mediaType === Fi || X9.updateVideoMutedForNoTracks(n.track.jitsiTrack.getParticipantId()) + } + return a + })), tt.register((e => e["features/filmstrip"].visibleRemoteParticipants), Nj()(((e, t) => { + pie(t) + }), 100)), tt.register((e => e["features/large-video"].participantId), ((e, t) => { + pie(t) + })), tt.register((e => e["features/base/conference"].conference), ((e, t) => { + pie(t) + })), tt.register((e => e["features/video-layout"].tileViewEnabled), ((e, t) => { + pie(t) + })), tt.register((e => e["features/base/lastn"].lastN), ((e, t) => { + pie(t) + })), tt.register((e => { + const { + maxReceiverVideoQuality: t, + preferredVideoQuality: n + } = e["features/video-quality"]; + return { + maxReceiverVideoQuality: t, + preferredVideoQuality: n + } + }), (function(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + const { + maxReceiverVideoQuality: a, + preferredVideoQuality: r + } = e, i = r !== n.preferredVideoQuality, o = a !== n.maxReceiverVideoQuality; + i && (die(r, t), "undefined" != typeof APP && APP.API.notifyVideoQualityChanged(r)), o && pie(t) + }), { + deepEquals: !0 + }), tt.register((e => { + var t, n; + const { + reducedUI: a + } = e["features/base/responsive-ui"], r = QS(e), i = null === (t = e["features/filmstrip"]) || void 0 === t || null === (n = t.tileViewDimensions) || void 0 === n ? void 0 : n.thumbnailSize; + return { + displayTileView: r, + participantCount: Yh(e), + reducedUI: a, + thumbnailHeight: null == i ? void 0 : i.height + } + }), ((e, t) => { + let { + displayTileView: n, + participantCount: a, + reducedUI: r, + thumbnailHeight: i + } = e, { + dispatch: o, + getState: s + } = t; + const l = s(), + { + maxReceiverVideoQuality: c + } = l["features/video-quality"], + { + maxFullResolutionParticipants: u = 2 + } = l["features/base/config"]; + let d = d7.ULTRA; + if (r) d = d7.LOW; + else if (n && !Number.isNaN(i) && (d = function(e, t) { + let n = d7.LOW; + for (const [a, r] of t.entries()) e >= a && (n = r); + return n + }(i, function(e) { + return e["features/video-quality"].minHeightForQualityLvl + }(l)), c !== d && -1 !== u)) { + const e = a > u && d > d7.STANDARD; + f7.info(`Video quality level for thumbnail height: ${i}, is: ${d}, override: ${String(e)}, max full res N: ${u}`), e && (d = d7.STANDARD) + } + c !== d && o(function(e) { + return { + type: m7, + maxReceiverVideoQuality: e + } + }(d)) + }), { + deepEquals: !0 + }), qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const r = e(a); + switch (a.type) { + case HF: + if ("ReactNative" === navigator.product) { + const { + resolution: e + } = n()["features/base/config"]; + void 0 !== e && (t(g7(Number.parseInt(e, 10))), f7.info(`Configured preferred receiver video frame height to: ${e}`)) + } + break; + case In: { + const e = n(), + { + videoQuality: a = {} + } = e["features/base/config"], + { + persistedPrefferedVideoQuality: r + } = e["features/video-quality-persistent-storage"]; + a.persist && void 0 !== r && t(g7(r)); + break + } } - return e + return r } + })); + const hie = $e("features/videosipgw"); - function gle(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function mie(e) { + return { + type: NY, + status: e } - nt.register("features/subtitles", ((e = mle, t) => { - switch (t.type) { - case za: - return function(e, { - transcriptMessageID: t - }) { - const n = new Map(e._transcriptMessages); - return n.delete(t), ple({}, e, { - _transcriptMessages: n - }) - }(e, t); - case Ra: - return function(e, { - transcriptMessageID: t, - newTranscriptMessage: n - }) { - const a = new Map(e._transcriptMessages); - return a.set(t, n), ple({}, e, { - _transcriptMessages: a - }) - }(e, t); - case La: - return ple({}, e, { - _requestingSubtitles: !e._requestingSubtitles - }) - } - return e - })); - const ble = { - enabled: !0, - hovered: !1, - overflowDrawer: !1, - overflowMenuVisible: !1, - timeoutID: null, - visible: !1 - }; + } - function yle(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - vle(e, t, n[t]) - })) + function fie(e) { + const t = Fe(e), + n = Boolean(Zq(t)), + { + calleeInfoVisible: a + } = t["features/invite"]; + return Dw(t) && !n && !a + } + qe.register((e => { + let { + dispatch: t, + getState: n + } = e; + return e => a => { + const r = e(a); + switch (a.type) { + case KF: { + const e = n()["features/base/conference"].joining; + e.on(ht.VIDEO_SIP_GW_AVAILABILITY_CHANGED, (function() { + return t(mie(...arguments)) + })), e.on(ht.VIDEO_SIP_GW_SESSION_STATE_CHANGED, (e => { + const n = function(e) { + switch (e.newState) { + case _t.STATE_PENDING: + return tg({ + titleKey: "videoSIPGW.pending", + titleArguments: { + displayName: e.displayName + } + }, Yf.SHORT); + case _t.STATE_FAILED: + return eg({ + titleKey: "videoSIPGW.errorInviteFailedTitle", + titleArguments: { + displayName: e.displayName + }, + descriptionKey: "videoSIPGW.errorInviteFailed" + }, Yf.LONG); + case _t.STATE_OFF: + if (e.failureReason === _t.STATUS_BUSY) return eg({ + descriptionKey: "videoSIPGW.busy", + titleKey: "videoSIPGW.busyTitle" + }, Yf.LONG); + e.failureReason && hie.error(`Unknown sip videogw error ${e.newState} ${e.failureReason}`) + } + return null + }(e); + n && t(n) + })); + break + } + case RY: + ! function(e, t, n) { + for (const a of e) { + const { + id: e, + name: r + } = a; + if (e && r) { + const a = t.createVideoSIPGWSession(e, r); + if (a instanceof Error) { + const e = a; + switch (e.message) { + case _t.ERROR_NO_CONNECTION: + return void n(eg({ + descriptionKey: "videoSIPGW.errorInvite", + titleKey: "videoSIPGW.errorInviteTitle" + }, Yf.LONG)); + case _t.ERROR_SESSION_EXISTS: + return void n(ng({ + titleKey: "videoSIPGW.errorAlreadyInvited", + titleArguments: { + displayName: r + } + }, Yf.LONG)) + } + return void hie.error("Unknown error trying to create sip videogw session", e) + } + a.start() + } else hie.error(`No display name or sip number for ${JSON.stringify(a)}`) + } + }(a.rooms, a.conference, t) } - return e + return r } - - function vle(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + })); class gie extends x.Component { + renderNotificationsContainer(e) { + return this.props._notificationsVisible ? C().createElement(Ow, e) : null } + } - function kle(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - _le(e, t, n[t]) - })) + function bie(e) { + return { + _notificationsVisible: fie(e), + _room: e["features/base/conference"].room, + _shouldDisplayTileView: QS(e) + } + } + class yie extends x.Component { + render() { + return this.props._showLabel ? C().createElement(hC, { + content: this.props.t("transcribing.labelToolTip"), + position: "left" + }, C().createElement(uG, { + className: "recording-label", + text: this.props.t("transcribing.tr") + })) : null + } + } + const vie = Ei(Ne((function(e) { + return { + _showLabel: e["features/transcribing"].isTranscribing + } + }))(yie)); class kie extends x.Component { + constructor(e) { + super(e), this.state = { + timerValue: Si(0) } - return e } + componentDidMount() { + this._startTimer() + } + componentWillUnmount() { + this._stopTimer() + } + render() { + const { + timerValue: e + } = this.state, { + _startTimestamp: t, + textStyle: n + } = this.props; + return t ? function(e, t) { + return C().createElement("span", { + className: "subject-timer" + }, e) + }(e) : null + } + _setStateFromUTC(e, t) { + if (!e || !t) return; + if (t < e) return; + const n = Si(t - e); + this.setState({ + timerValue: n + }) + } + _startTimer() { + this._interval || (this._setStateFromUTC(this.props._startTimestamp, (new Date).getTime()), this._interval = setInterval((() => { + this._setStateFromUTC(this.props._startTimestamp, (new Date).getTime()) + }), 1e3)) + } + _stopTimer() { + this._interval && clearInterval(this._interval), this.setState({ + timerValue: Si(0) + }) + } + } + const _ie = Ne((function(e) { + return { + _startTimestamp: yF(e) + } + }))(kie), wie = { + alwaysVisible: ["recording", "local-recording"], + autoHide: ["subject", "conference-timer", "participants-count", "e2ee", "transcribing", "video-quality", "insecure-room"] + }, Sie = e => { + const { + conferenceInfo: t + } = e["features/base/config"]; + var n, a; + return t ? { + alwaysVisible: null !== (n = t.alwaysVisible) && void 0 !== n ? n : wie.alwaysVisible, + autoHide: null !== (a = t.autoHide) && void 0 !== a ? a : wie.autoHide + } : wie + }, Eie = e => { + let { + visible: t, + children: n + } = e; + return C().createElement("div", { + className: "subject" + (t ? " visible" : "") + }, C().createElement("div", { + className: "subject-info-container" + }, n)) + }; + var xie = n(7541), Cie = n.n(xie); - function _le(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + function Aie() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ""; + return Cie()(e).score < 3 + } + class Tie extends x.PureComponent { + render() { + return this.props._visible ? this._render() : null } - nt.register("features/toolbox", ((e = ble, t) => { - switch (t.type) { - case CV: - return fle({}, e, { - timeoutID: void 0 - }); - case AV: - return fle({}, e, { - fullScreen: t.fullScreen - }); - case PV: - return fle({}, e, { - overflowDrawer: t.displayAsDrawer - }); - case DV: - return fle({}, e, { - overflowMenuVisible: t.visible - }); - case TV: - return fle({}, e, { - hovered: t.hovered - }); - case OV: - return fle({}, e, { - enabled: t.enabled - }); - case MV: - return fle({}, e, { - timeoutID: t.timeoutID - }); - case IV: - return Le(e, "visible", t.visible); - case "TOGGLE_TOOLBOX_VISIBLE": - return Le(e, "visible", !e.visible) - } - return e - })), nt.register("features/transcribing", ((e = { - isTranscribing: !1, - isDialing: !1, - isTerminating: !1, - transcriberJID: null, - potentialTranscriberJIDs: [] - }, t) => { - switch (t.type) { - case Dae: - return yle({}, e, { - isTranscribing: !0, - isDialing: !1, - transcriberJID: t.transcriberJID - }); - case Tae: - return yle({}, e, { - isTerminating: !1, - isTranscribing: !1, - transcriberJID: void 0, - potentialTranscriberJIDs: [] - }); - case Oae: - return yle({}, e, { - potentialTranscriberJIDs: [t.transcriberJID].concat(e.potentialTranscriberJIDs) - }); - case Mae: - return yle({}, e, { - pendingNotificationUid: t.uid - }); - default: - return e - } - })); - const wle = { - remoteScreenShares: [], - tileViewEnabled: void 0 + } + const Die = Ei(Ne((function(e) { + const { + locked: t, + room: n + } = e["features/base/conference"], { + lobbyEnabled: a + } = e["features/lobby"], { + enableInsecureRoomNameWarning: r = !1 + } = e["features/base/config"]; + return { + _visible: r && n && Aie(n) && !(a || Boolean(t)) + } + }))(class extends Tie { + _render() { + return C().createElement(pC, { + content: this.props.t("security.insecureRoomNameWarning"), + position: "bottom" + }, C().createElement(uG, { + color: "red", + icon: Id + })) + } + })); class Pie extends x.PureComponent { + constructor(e) { + super(e), this._onClick = this._onClick.bind(this) + } + _onClick() { + const { + dispatch: e, + conference: t + } = this.props; + e(VI(GQ, { + conference: t + })) + } + render() { + const { + count: e + } = this.props; + return e <= 2 ? null : C().createElement(uG, { + color: sG, + icon: kd, + onClick: this._onClick, + text: e + }) + } + } + const jie = Ne((function(e) { + return { + conference: e["features/base/conference"].conference, + count: Yh(e) + } + }))(Pie), Mie = Ne((function(e) { + return { + _subject: gF(e) + } + }))((e => { + let { + _subject: t + } = e; + return C().createElement("div", { + className: "subject-text" + }, C().createElement(hC, { + content: t, + position: "bottom" + }, C().createElement("div", { + className: "subject-text--content" + }, t))) + })), Iie = [{ + Component: Mie, + id: "subject" + }, { + Component: _ie, + id: "conference-timer" + }, { + Component: jie, + id: "participants-count" + }, { + Component: _8, + id: "e2ee" + }, { + Component: () => C().createElement(C().Fragment, null, C().createElement(pG, { + mode: kt.mode.FILE + }), C().createElement(pG, { + mode: kt.mode.STREAM + })), + id: "recording" + }, { + Component: k0, + id: "local-recording" + }, { + Component: vie, + id: "transcribing" + }, { + Component: M7, + id: "video-quality" + }, { + Component: Die, + id: "insecure-room" + }]; class Oie extends x.Component { + constructor(e) { + super(e), this._renderAutoHide = this._renderAutoHide.bind(this), this._renderAlwaysVisible = this._renderAlwaysVisible.bind(this) + } + _renderAutoHide() { + const { + autoHide: e + } = this.props._conferenceInfo; + return e && e.length ? C().createElement(Eie, { + visible: this.props._visible + }, Iie.filter((t => e.includes(t.id))).map((e => C().createElement(e.Component, { + key: e.id + })))) : null + } + _renderAlwaysVisible() { + const { + alwaysVisible: e + } = this.props._conferenceInfo; + return e && e.length ? C().createElement(Eie, { + visible: !0 + }, Iie.filter((t => e.includes(t.id))).map((e => C().createElement(e.Component, { + key: e.id + })))) : null + } + render() { + return C().createElement("div", { + className: "details-container" + }, this._renderAlwaysVisible(), this._renderAutoHide()) + } + } + const Nie = Ne((function(e) { + return { + _visible: fI(e), + _conferenceInfo: Sie(e) + } + }))(Oie); class Rie extends x.Component { + render() { + return this.props._message ? C().createElement("div", { + className: "notice" + }, C().createElement("span", { + className: "notice__message" + }, this.props._message)) : null + } + } + const zie = Ei(Ne((function(e) { + const { + noticeMessage: t + } = e["features/base/config"]; + return { + _message: t + } + }))(Rie)), Lie = ["webkitfullscreenchange", "mozfullscreenchange", "fullscreenchange"], Fie = { + [YS]: "horizontal-filmstrip", + [GS]: "tile-view", + [KS]: "vertical-filmstrip" + }, qie = Ne((function(e) { + const { + backgroundAlpha: t, + mouseMoveCallbackInterval: n + } = e["features/base/config"], { + overflowDrawer: a + } = e["features/toolbox"]; + return { + ...bie(e), + _backgroundAlpha: t, + _isParticipantsPaneVisible: Om(e), + _layoutClassName: Fie[JS(e)], + _mouseMoveCallbackInterval: n, + _overflowDrawer: a, + _roomName: (r = e, CF(Dn(dF(Fe(r)).room))), + _showLobby: N5(e), + _showPrejoin: kH(e) }; - - function Sle(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e + var r + }))(Ei(class extends gie { + constructor(e) { + super(e); + const { + _mouseMoveCallbackInterval: t + } = e; + this._originalOnShowToolbar = this._onShowToolbar, this._originalOnMouseMove = this._onMouseMove, this._onShowToolbar = _().throttle((() => this._originalOnShowToolbar()), 100, { + leading: !0, + trailing: !1 + }), this._onMouseMove = _().throttle((e => this._originalOnMouseMove(e)), t, { + leading: !0, + trailing: !1 + }), this._onFullScreenChange = this._onFullScreenChange.bind(this), this._onVidespaceTouchStart = this._onVidespaceTouchStart.bind(this), this._setBackground = this._setBackground.bind(this) } - nt.register("features/video-layout", ((e = wle, t) => { - switch (t.type) { - case fk: - return kle({}, e, { - remoteScreenShares: t.participantIds - }); - case gk: - return kle({}, e, { - tileViewEnabled: t.enabled - }) - } - return e - })), nt.register("features/videosipgw", ((e = [], t) => t.type === yW ? function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? Object(arguments[t]) : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - Sle(e, t, n[t]) - })) - } - return e - }({}, e, { - status: t.status - }) : e)); - const Ele = "features/welcome"; - et.register(Ele, { - defaultPage: !0 - }), nt.register(Ele, ((e = {}, t) => { - switch (t.type) { - case "SET_SIDEBAR_VISIBLE": - return Le(e, "sideBarVisible", t.visible); - case "SET_WELCOME_PAGE_LIST_DEFAULT_PAGE": - return Le(e, "defaultPage", t.pageIndex) - } - return e - })); - class xle extends E.Component { - render() { - const { - className: e, - deviceStatusVisible: t, - showCameraPreview: n, - videoTrack: a - } = this.props; - return x().createElement($7, { - className: `prejoin-third-party ${e}`, - showDeviceStatus: t, - skipPrejoinButton: !1, - thirdParty: !0, - videoMuted: !n, - videoTrack: a + componentDidMount() { + document.title = `${this.props._roomName} | ${interfaceConfig.APP_NAME}`, this._start() + } + componentDidUpdate(e) { + this.props._shouldDisplayTileView !== e._shouldDisplayTileView && X9.refreshLayout() + } + componentWillUnmount() { + APP.UI.unbindEvents(), Lie.forEach((e => document.removeEventListener(e, this._onFullScreenChange))), APP.conference.isJoined() && this.props.dispatch(RF()) + } + render() { + const { + _isParticipantsPaneVisible: e, + _layoutClassName: t, + _notificationsVisible: n, + _overflowDrawer: a, + _showLobby: r, + _showPrejoin: i + } = this.props; + return C().createElement("div", { + id: "layout_wrapper", + onMouseEnter: this._onMouseEnter, + onMouseLeave: this._onMouseLeave, + onMouseMove: this._onMouseMove + }, C().createElement("div", { + className: t, + id: "videoconference_page", + onMouseMove: va() ? void 0 : this._onShowToolbar, + ref: this._setBackground + }, C().createElement(Nie, null), C().createElement(zie, null), C().createElement("div", { + id: "videospace", + onTouchStart: this._onVidespaceTouchStart + }, C().createElement(L9, null), !e && C().createElement("div", { + id: "notification-participant-list" + }, C().createElement(A8, null)), C().createElement(S4, null)), i || r || C().createElement(g9, { + showDominantSpeakerName: !0 + }), C().createElement(OW, null), n && (a ? C().createElement(n9, { + className: "notification-portal" + }, this.renderNotificationsContainer({ + portal: !0 + })) : this.renderNotificationsContainer()), C().createElement(Y$, null), i && C().createElement(Jee, null), r && C().createElement($8, null)), C().createElement(j6, null)) + } + _setBackground(e) { + if (e && void 0 !== this.props._backgroundAlpha) { + const t = jt(e.style.background, this.props._backgroundAlpha); + if (e.style.background = t, e.parentElement) { + const t = jt(e.parentElement.style.background, this.props._backgroundAlpha); + e.parentElement.style.background = t + } + } + } + _onVidespaceTouchStart() { + this.props.dispatch(((e, t) => { + const n = t(), + { + toolbarConfig: { + alwaysVisible: a + } + } = n["features/base/config"], + { + visible: r + } = n["features/toolbox"]; + r && a || e({ + type: TM }) - } + })) + } + _onFullScreenChange() { + var e; + this.props.dispatch((e = APP.UI.isFullScreen(), { + type: kM, + fullScreen: e + })) } - const Cle = ze((function(e) { + _onMouseEnter(e) { + APP.API.notifyMouseEnter(e) + } + _onMouseLeave(e) { + APP.API.notifyMouseLeave(e) + } + _onMouseMove(e) { + APP.API.notifyMouseMove(e) + } + _onShowToolbar() { + this.props.dispatch(xI()) + } + _start() { + APP.UI.start(), APP.UI.registerListeners(), APP.UI.bindEvents(), Lie.forEach((e => document.addEventListener(e, this._onFullScreenChange))); + const { + dispatch: e, + t + } = this.props; + e(NF()), + function(e, t) { + !mY(interfaceConfig.OPTIMAL_BROWSERS || cY) && pY() && e(ng({ + titleKey: "notify.suboptimalExperienceTitle", + description: xi(t, "notify.suboptimalBrowserWarning", { + recommendedBrowserPageLink: `${window.location.origin}/static/recommendedBrowsers.html` + }) + }, Yf.LONG)) + }(e, t) + } + })); Ei(Ne((function(e) { + const t = 1 === Yh(e), + n = interfaceConfig.HIDE_INVITE_MORE_HEADER; + return { + _shouldShow: mI("invite", e) && t && !n, + _toolboxVisible: fI(e) + } + }), { + onClick: () => WY() + })((function(e) { + let { + _shouldShow: t, + _toolboxVisible: n, + onClick: a, + t: r + } = e; + const i = (0, x.useCallback)((e => { + !a || " " !== e.key && "Enter" !== e.key || (e.preventDefault(), a()) + }), [a]); + return t ? C().createElement("div", { + className: "invite-more-container" + (n ? "" : " elevated") + }, C().createElement("div", { + className: "invite-more-content" + }, C().createElement("div", { + className: "invite-more-header", + role: "heading" + }, r("addPeople.inviteMoreHeader")), C().createElement("div", { + className: "invite-more-button", + onClick: a, + onKeyPress: i, + role: "button", + tabIndex: 0 + }, C().createElement(lo, { + src: Rl + }), C().createElement("div", { + className: "invite-more-button-text" + }, r("addPeople.inviteMorePrompt"))))) : null + }))); class Bie extends x.Component { + render() { + return C().createElement("div", { + className: "unsupported-desktop-browser" + }, C().createElement("h2", { + className: "unsupported-desktop-browser__title" + }, "It looks like you're using a browser we don't support."), C().createElement("p", { + className: "unsupported-desktop-browser__description" + }, "Please try again with the latest version of ", C().createElement("a", { + className: "unsupported-desktop-browser__link", + href: "https://www.google.com/chrome/" + }, "Chrome"), " ", this._showFirefox() && C().createElement(C().Fragment, null, "or ", C().createElement("a", { + className: "unsupported-desktop-browser__link", + href: "https://www.getfirefox.com/" + }, "Firefox")))) + } + _showFirefox() { + return "firefox", (interfaceConfig.OPTIMAL_BROWSERS || cY).includes("firefox") + } + } + const Uie = Ei(Bie), Hie = () => (Pe(cM), C().createElement(Uie, null)), Vie = {}; class Wie extends hM { + constructor(e) { + super(e), this._onPress = this._onPress.bind(this) + } + componentDidMount() { + Da(function() { return { - deviceStatusVisible: JR(e), - showCameraPreview: !_f(e), - videoTrack: Jo(e) - } - }))(Li(xle)), - Ale = Je("index.web"), - jle = wa.OS; - document.addEventListener("DOMContentLoaded", (() => { - const e = window.performance.now(); - APP.connectionTimes["document.ready"] = e, Ale.log("(TIME) document ready:\t", e) - })), "ios" === jle && window.addEventListener("pageshow", (e => { - e.persisted && window.location.reload() - })), window.addEventListener("beforeunload", (() => { - APP.logCollectorStarted && (APP.logCollector.stop(), APP.logCollectorStarted = !1), APP.API.notifyConferenceLeft(APP.conference.roomName), APP.API.dispose(), mV().dispose() - })); - const Ple = It(); - Ple.entryPoints = { - APP: class extends Yee { - _createMainElement(e, t) { - return x().createElement(qee, null, x().createElement(Mee, { - mode: "dark" - }, x().createElement(Wee, null), super._createMainElement(e, t))) - } - _renderDialogContainer() { - return x().createElement(qee, null, x().createElement(Mee, { - mode: "dark" - }, x().createElement(zO, null))) - } - }, - PREJOIN: class extends Pf { - componentDidMount() { - super.componentDidMount(), this._init.then((async () => { - const { - store: e - } = this.state, { - dispatch: t - } = e, { - styleType: n - } = this.props; - super._navigate({ - component: Cle, - props: { - className: n - } - }); - const { - startWithAudioMuted: a, - startWithVideoMuted: r - } = e.getState()["features/base/settings"]; - t(aa({ - prejoinPageEnabled: !0, - startWithAudioMuted: a, - startWithVideoMuted: r - })); - const { - tryCreateLocalTracks: i, - errors: o - } = function() { - const e = {}, - t = ["audio"]; - let n = !1; - const { - startAudioOnly: a, - startWithAudioMuted: r, - startWithVideoMuted: i - } = APP.store.getState()["features/base/settings"]; - let o; - return r && APP.store.dispatch(lf(!0)), i || a || (t.push("video"), n = !0), o = Vo({ - devices: t, - firePermissionPromptIsShownEvent: !0 - }).catch((t => n ? (e.audioAndVideoError = t, Vo({ - devices: ["audio"], - firePermissionPromptIsShownEvent: !0 - })) : n ? void Fo.error("Should never happen") : (e.audioOnlyError = t, []))).catch((t => (e.audioOnlyError = t, n ? Vo({ - devices: ["video"], - firePermissionPromptIsShownEvent: !0 - }) : []))).catch((t => (n || Fo.error("The impossible just happened", t), e.videoOnlyError = t, []))), { - tryCreateLocalTracks: o, - errors: e - } - }(), s = await i; - (0, Te.unstable_batchedUpdates)((() => { - t(uL(s, o)), t(mL(gI(e.getState()))) - })) - })) + action: "selected", + attributes: arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + source: "recent.list", + type: Lt } - _createMainElement(e, t) { - return x().createElement(qee, null, x().createElement(Mee, { - mode: "dark" - }, super._createMainElement(e, t))) - } - _renderDialogContainer() { - return x().createElement(qee, null, x().createElement(Mee, { - mode: "dark" - }, x().createElement(zO, null))) - } - } - }, Ple.renderEntryPoint = ({ - Component: e, - props: t = {}, - elementId: n = "react" - }) => { - Oe().render(x().createElement(e, t), document.getElementById(n)) - }, window.Olm && window.Olm.init().catch((e => { - console.error("Failed to initialize Olm, E2EE will be disabled", e), delete window.Olm - })), window.APP = { - API: dee, - conference: X9, - connect: { - handler: null, - status: "initialized" - }, - connectionTimes: { - "index.loaded": window.indexLoadedTime - }, - keyboardshortcut: rQ, - translation: Aee, - UI: See - } - }, 5939: e => { - e.exports = { - defaultLogLevel: "trace", - "modules/RTC/TraceablePeerConnection.js": "info", - "modules/statistics/CallStats.js": "info", - "modules/xmpp/strophe.util.js": "log" - } - }, 1041: (e, t, n) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var a, r = n(3241), - i = r.__importDefault(n(2684)), - o = r.__importDefault(n(5617)), - s = r.__importDefault(n(545)), - l = n(5139), - c = n(6101), - u = function(e) { - var t = e.size; - return t ? "height: " + c.sizes[t] + "; width: " + c.sizes[t] + ";" : null - }; - t.IconWrapper = o.default.span(a || (a = r.__makeTemplateObject(["\n ", ";\n color: ", ";\n display: inline-block;\n fill: ", ";\n flex-shrink: 0;\n line-height: 1;\n\n > svg {\n ", ";\n max-height: 100%;\n max-width: 100%;\n overflow: hidden;\n pointer-events: none;\n vertical-align: bottom;\n }\n\n /**\n * Stop-color doesn't properly apply in chrome when the inherited/current color changes.\n * We have to initially set stop-color to inherit (either via DOM attribute or an initial CSS\n * rule) and then override it with currentColor for the color changes to be picked up.\n */\n stop {\n stop-color: currentColor;\n }\n"], ["\n ", ";\n color: ", ";\n display: inline-block;\n fill: ", ";\n flex-shrink: 0;\n line-height: 1;\n\n > svg {\n ", ";\n max-height: 100%;\n max-width: 100%;\n overflow: hidden;\n pointer-events: none;\n vertical-align: bottom;\n }\n\n /**\n * Stop-color doesn't properly apply in chrome when the inherited/current color changes.\n * We have to initially set stop-color to inherit (either via DOM attribute or an initial CSS\n * rule) and then override it with currentColor for the color changes to be picked up.\n */\n stop {\n stop-color: currentColor;\n }\n"])), u, (function(e) { - return e.primaryColor || "currentColor" - }), (function(e) { - return e.secondaryColor || l.background - }), u), t.default = function(e) { - var n, a, o = e.glyph, - l = e.dangerouslySetGlyph, - c = e.primaryColor, - u = e.secondaryColor, - d = e.size, - p = e.testId, - h = e.label, - m = l ? { - dangerouslySetInnerHTML: { - __html: (n = l, a = s.default(), n.replace(/id="([^"]+)-idPlaceholder"/g, "id=$1-" + a).replace(/fill="url\(#([^"]+)-idPlaceholder\)"/g, 'fill="url(#$1-' + a + ')"')) - } - } : { - children: o ? i.default.createElement(o, { - role: "presentation" - }) : null - }; - return i.default.createElement(t.IconWrapper, r.__assign({ - primaryColor: c, - secondaryColor: u, - size: d, - "data-testid": p, - role: h ? "img" : "presentation", - "aria-label": h || void 0 - }, m)) - } - }, 6101: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.sizes = { - small: "16px", - medium: "24px", - large: "32px", - xlarge: "48px" - }, t.sizeMap = { - small: "small", - medium: "medium", - large: "large", - xlarge: "xlarge" - } - }, 6501: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + }()) } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + _getRenderListEmptyComponent() { + const { + t: e + } = this.props, t = "meetings-list-empty-description"; + return C().createElement(ro, { + "aria-describedby": t, + "aria-label": e("welcomepage.recentList"), + className: "meetings-list-empty", + role: "region", + style: Vie.emptyListContainer + }, C().createElement(KC, { + className: "description", + id: t, + style: Vie.emptyListText + }, e("welcomepage.recentListEmpty"))) + } + _onPress(e) { + const { + dispatch: t + } = this.props; + Da(function(e) { + return { + action: "clicked", + actionSubject: e, + attributes: arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + source: "recent.list", + type: Lt } - return e - }, o.apply(this, arguments) + }("meeting.tile")), t(tB(e)) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "CheckCircleIcon"; - var l = s; - t.Z = l - }, 9406: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + } + const Yie = Ei(Ne((function(e) { + return { + _recentList: e["features/recent-list"] + } + }))(class extends Wie { + constructor(e) { + super(e), this._getRenderListEmptyComponent = this._getRenderListEmptyComponent.bind(this), this._onPress = this._onPress.bind(this), this._onItemDelete = this._onItemDelete.bind(this) + } + _onItemDelete(e) { + this.props.dispatch({ + type: yre, + entryId: e + }) } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, o.apply(this, arguments) + render() { + if (!_re()) return null; + const { + disabled: e, + _recentList: t + } = this.props, n = function(e) { + return [...e].reverse().map((e => ({ + date: e.date, + duration: e.duration, + time: [e.date], + title: Dn(An(e.conference).room), + url: e.conference + }))) + }(t); + return C().createElement(JC, { + disabled: e, + hideURL: !0, + listEmptyComponent: this._getRenderListEmptyComponent(), + meetings: n, + onItemDelete: this._onItemDelete, + onPress: this._onPress + }) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "CheckboxIcon"; - var l = s; - t.Z = l - }, 754: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e + })); class Gie extends x.Component { + static getDerivedStateFromProps(e, t) { + return { + room: e._room || t.room } } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, o.apply(this, arguments) + constructor(e) { + super(e), + function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(this, "state", { + animateTimeoutId: void 0, + generatedRoomname: "", + insecureRoomName: !1, + joining: !1, + room: "", + roomPlaceholder: "", + updateTimeoutId: void 0 + }), this._animateRoomnameChanging = this._animateRoomnameChanging.bind(this), this._onJoin = this._onJoin.bind(this), this._onRoomChange = this._onRoomChange.bind(this), this._renderInsecureRoomNameWarning = this._renderInsecureRoomNameWarning.bind(this), this._updateRoomname = this._updateRoomname.bind(this) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "ChevronDownIcon"; - var l = s; - t.Z = l - }, 3037: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + componentDidMount() { + this._mounted = !0, Da(un("viewed", void 0, { + value: 1 + })) } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, o.apply(this, arguments) + componentWillUnmount() { + this._clearTimeouts(), this._mounted = !1 } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "ChevronUpIcon"; - var l = s; - t.Z = l - }, 4944: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + _animateRoomnameChanging(e) { + let t; + const n = this.state.roomPlaceholder + e.substr(0, 1); + e.length > 1 && (t = setTimeout((() => { + this._animateRoomnameChanging(e.substring(1, e.length)) + }), 70)), this.setState({ + animateTimeoutId: t, + roomPlaceholder: n + }) } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, o.apply(this, arguments) + _clearTimeouts() { + clearTimeout(this.state.animateTimeoutId), clearTimeout(this.state.updateTimeoutId) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "CrossIcon"; - var l = s; - t.Z = l - }, 1951: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e + _onJoin() { + const e = this.state.room || this.state.generatedRoomname; + if (Da(un("clicked", "joinButton", { + isGenerated: !this.state.room, + room: e + })), e) { + this.setState({ + joining: !0 + }); + const t = () => this._mounted && this.setState({ + joining: !1 + }); + this.props.dispatch(tB(e)).then(t, t) } } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, o.apply(this, arguments) + _onRoomChange(e) { + this.setState({ + room: e, + insecureRoomName: this.props._enableInsecureRoomNameWarning && e && Aie(e) + }) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "EditorCloseIcon"; - var l = s; - t.Z = l - }, 2854: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + _renderInsecureRoomNameWarning() { + return this.props._enableInsecureRoomNameWarning && this.state.insecureRoomName ? this._doRenderInsecureRoomNameWarning() : null } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, o.apply(this, arguments) + _updateRoomname() { + const e = Lq(), + t = setTimeout(this._updateRoomname, 1e4); + this._clearTimeouts(), this.setState({ + generatedRoomname: e, + roomPlaceholder: "", + updateTimeoutId: t + }, (() => this._animateRoomnameChanging(e))) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "EditorDoneIcon"; - var l = s; - t.Z = l - }, 247: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + } + class Kie extends x.Component { + constructor(e) { + super(e), this._onSelect = this._onSelect.bind(this) } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, o.apply(this, arguments) + _onSelect() { + const { + index: e, + onSelect: t + } = this.props; + t(e) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "EditorInfoIcon"; - var l = s; - t.Z = l - }, 7737: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + render() { + const { + index: e, + isSelected: t, + label: n + } = this.props, a = "tab" + (t ? " selected" : ""); + return C().createElement("div", { + className: a, + key: e, + onClick: this._onSelect + }, n) } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, o.apply(this, arguments) + } + class $ie extends x.Component { + render() { + const { + onSelect: e, + selected: t, + tabs: n + } = this.props, { + content: a = null + } = n.length ? n[Math.min(t, n.length - 1)] : {}; + return C().createElement("div", { + className: "tab-container" + }, n.length > 1 ? C().createElement("div", { + className: "tab-buttons" + }, n.map(((n, a) => C().createElement(Kie, { + index: a, + isSelected: a === t, + key: a, + label: n.label, + onSelect: e + })))) : null, C().createElement("div", { + className: "tab-content" + }, a)) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "ErrorIcon"; - var l = s; - t.Z = l - }, 7253: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }($ie, "defaultProps", { + tabs: [], + selected: 0 + }); class Jie extends Gie { + constructor(e) { + super(e), this.state = { + ...this.state, + generateRoomnames: interfaceConfig.GENERATE_ROOMNAMES_ON_WELCOME_PAGE, + selectedTab: 0 + }, this._additionalContentRef = null, this._roomInputRef = null, this._additionalToolbarContentRef = null, this._additionalCardRef = null, this._additionalCardTemplate = document.getElementById("welcome-page-additional-card-template"), this._additionalContentTemplate = document.getElementById("welcome-page-additional-content-template"), this._additionalToolbarContentTemplate = document.getElementById("settings-toolbar-additional-content-template"), this._onFormSubmit = this._onFormSubmit.bind(this), this._onRoomChange = this._onRoomChange.bind(this), this._setAdditionalCardRef = this._setAdditionalCardRef.bind(this), this._setAdditionalContentRef = this._setAdditionalContentRef.bind(this), this._setRoomInputRef = this._setRoomInputRef.bind(this), this._setAdditionalToolbarContentRef = this._setAdditionalToolbarContentRef.bind(this), this._onTabSelected = this._onTabSelected.bind(this), this._renderFooter = this._renderFooter.bind(this) + } + componentDidMount() { + super.componentDidMount(), document.body.classList.add("welcome-page"), document.title = interfaceConfig.APP_NAME, this.state.generateRoomnames && this._updateRoomname(), this._shouldShowAdditionalContent() && this._additionalContentRef.appendChild(this._additionalContentTemplate.content.cloneNode(!0)), this._shouldShowAdditionalToolbarContent() && this._additionalToolbarContentRef.appendChild(this._additionalToolbarContentTemplate.content.cloneNode(!0)), this._shouldShowAdditionalCard() && this._additionalCardRef.appendChild(this._additionalCardTemplate.content.cloneNode(!0)) + } + componentWillUnmount() { + super.componentWillUnmount(), document.body.classList.remove("welcome-page") + } + render() { + const { + _moderatedRoomServiceUrl: e, + t + } = this.props, { + DEFAULT_WELCOME_PAGE_LOGO_URL: n, + DISPLAY_WELCOME_FOOTER: a + } = interfaceConfig, r = this._shouldShowAdditionalCard(), i = this._shouldShowAdditionalContent(), o = this._shouldShowAdditionalToolbarContent(), s = i ? "with-content" : "without-content", l = a ? "with-footer" : "without-footer"; + return C().createElement("div", { + className: `welcome ${s} ${l}`, + id: "welcome_page" + }, C().createElement("div", { + className: "welcome-watermark" + }, C().createElement(pM, { + defaultJitsiLogoURL: n + })), C().createElement("div", { + className: "header" + }, C().createElement("div", { + className: "welcome-page-settings" + }, C().createElement(OY, { + defaultTab: jY.CALENDAR + }), o ? C().createElement("div", { + className: "settings-toolbar-content", + ref: this._setAdditionalToolbarContentRef + }) : null), C().createElement("div", { + className: "header-image" + }), C().createElement("div", { + className: "header-container" + }, C().createElement("h1", { + className: "header-text-title" + + }, interfaceConfig.OFMEET_WELCOME_PAGE_TITLE), C().createElement("span", { // BAO + className: "header-text-subtitle" + }, interfaceConfig.OFMEET_WELCOME_PAGE_DESCRIPTION), C().createElement("div", { // BAO + + id: "enter_room" + }, C().createElement("div", { + className: "enter-room-input-container" + }, C().createElement("form", { + onSubmit: this._onFormSubmit + }, C().createElement("input", { + "aria-disabled": "false", + "aria-label": "Meeting name input", + autoFocus: !0, + className: "enter-room-input", + id: "enter_room_field", + onChange: this._onRoomChange, + pattern: "^[^?&:\"'%#]+$", + placeholder: this.state.roomPlaceholder, + ref: this._setRoomInputRef, + title: t("welcomepage.roomNameAllowedChars"), + type: "text", + value: this.state.room + }), C().createElement("div", { + className: e ? "warning-with-link" : "warning-without-link" + }, this._renderInsecureRoomNameWarning()))), C().createElement("button", { + "aria-disabled": "false", + "aria-label": "Start meeting", + className: "welcome-page-button", + id: "enter_room_button", + onClick: this._onFormSubmit, + tabIndex: "0", + type: "button" + }, t("welcomepage.startMeeting"))), e && C().createElement("div", { + id: "moderated-meetings" + }, C().createElement("p", null, xi(t, "welcomepage.moderatedMessage", { + url: e + }))))), C().createElement("div", { + className: "welcome-cards-container" + }, C().createElement("div", { + className: "welcome-card-row" + }, C().createElement("div", { + className: "welcome-tabs welcome-card welcome-card--blue" + }, this._renderTabs()), r ? C().createElement("div", { + className: "welcome-card welcome-card--dark", + ref: this._setAdditionalCardRef + }) : null), i ? C().createElement("div", { + className: "welcome-page-content", + ref: this._setAdditionalContentRef + }) : null), a && this._renderFooter()) + } + _doRenderInsecureRoomNameWarning() { + return C().createElement("div", { + className: "insecure-room-name-warning" + }, C().createElement(lo, { + src: Id + }), C().createElement("span", null, this.props.t("security.insecureRoomNameWarning"))) } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + _onFormSubmit(e) { + e.preventDefault(), this._roomInputRef && !this._roomInputRef.reportValidity() || this._onJoin() + } + _onRoomChange(e) { + super._onRoomChange(e.target.value) + } + _onTabSelected(e) { + this.setState({ + selectedTab: e + }) + } + _renderFooter() { + const { + t: e + } = this.props, { + MOBILE_DOWNLOAD_LINK_ANDROID: t, + MOBILE_DOWNLOAD_LINK_F_DROID: n, + MOBILE_DOWNLOAD_LINK_IOS: a + } = interfaceConfig; + return C().createElement("footer", { + className: "welcome-footer" + }, C().createElement("div", { + className: "welcome-footer-centered" + }, C().createElement("div", { + className: "welcome-footer-padded" + }, C().createElement("div", { + className: "welcome-footer-row-block welcome-footer--row-1" + }, C().createElement("div", { + className: "welcome-footer-row-1-text" + }, e("welcomepage.jitsiOnMobile")), C().createElement("a", { + className: "welcome-badge", + href: a + }, C().createElement("img", { + alt: e("welcomepage.mobileDownLoadLinkIos"), + src: "./images/app-store-badge.png" + })), C().createElement("a", { + className: "welcome-badge", + href: t + }, C().createElement("img", { + alt: e("welcomepage.mobileDownLoadLinkAndroid"), + src: "./images/google-play-badge.png" + })), C().createElement("a", { + className: "welcome-badge", + href: n + }, C().createElement("img", { + alt: e("welcomepage.mobileDownLoadLinkFDroid"), + src: "./images/f-droid-badge.png" + })))))) + } + _renderTabs() { + if (va()) return null; + const { + _calendarEnabled: e, + _recentListEnabled: t, + t: n + } = this.props, a = []; + return e && a.push({ + label: n("welcomepage.calendar"), + content: C().createElement(ZJ, null) + }), t && a.push({ + label: n("welcomepage.recentList"), + content: C().createElement(Yie, null) + }), 0 === a.length ? null : C().createElement($ie, { + onSelect: this._onTabSelected, + selected: this.state.selectedTab, + tabs: a + }) + } + _setAdditionalCardRef(e) { + this._additionalCardRef = e + } + _setAdditionalContentRef(e) { + this._additionalContentRef = e + } + _setAdditionalToolbarContentRef(e) { + this._additionalToolbarContentRef = e + } + _setRoomInputRef(e) { + this._roomInputRef = e + } + _shouldShowAdditionalCard() { + return interfaceConfig.DISPLAY_WELCOME_PAGE_ADDITIONAL_CARD && this._additionalCardTemplate && this._additionalCardTemplate.content && this._additionalCardTemplate.innerHTML.trim() + } + _shouldShowAdditionalContent() { + return interfaceConfig.DISPLAY_WELCOME_PAGE_CONTENT && this._additionalContentTemplate && this._additionalContentTemplate.content && this._additionalContentTemplate.innerHTML.trim() + } + _shouldShowAdditionalToolbarContent() { + return interfaceConfig.DISPLAY_WELCOME_PAGE_TOOLBAR_ADDITIONAL_CONTENT && this._additionalToolbarContentTemplate && this._additionalToolbarContentTemplate.content && this._additionalToolbarContentTemplate.innerHTML.trim() + } + }! function(e, t, n) { + t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n + }(Jie, "defaultProps", { + _room: "" + }); + const Zie = Ei(Ne((function(e) { + return { + _calendarEnabled: OJ(e), + _enableInsecureRoomNameWarning: e["features/base/config"].enableInsecureRoomNameWarning || !1, + _moderatedRoomServiceUrl: e["features/base/config"].moderatedRoomServiceUrl, + _recentListEnabled: _re(), + _room: e["features/base/conference"].room, + _settings: e["features/base/settings"] + } + }))(Jie)); qe.register((e => t => n => { + switch (n.type) { + case TF: + return function(e, t, n) { + const a = t(n), + { + history: r, + location: i + } = window; + if (!ja()) { + if (r && i && r.length && "function" == typeof r.replaceState) { + const e = LF(i); + i !== e && r.replaceState(r.state, document && document.title || "", e) + } + return a + } + }(0, t, n); + case DF: + return function(e, t, n) { + let { + dispatch: a, + getState: r + } = e; + if (! function(e, t) { + const { + error: n + } = t; + if (n && "item-not-found" === n.message && n.details && n.details.shard_changed) { + const t = e(), + { + timeEstablished: a + } = t["features/base/connection"], + { + _immediateReloadThreshold: r + } = t["features/base/config"], + i = a && Date.now() - a, + o = "number" == typeof r ? r : 1500, + s = !a || i <= o; + return Da(function(e) { + return { + action: e, + actionSubject: "connection", + attributes: arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {} + } + }("failed", { + ...n, + connectionEstablished: a, + splitBrain: s, + timeSinceConnectionEstablished: i + })), s + } + return !1 + }(r, n)) return t(n); + a(rB()) + }(e, t, n); + case oq: + return function(e, t, n) { + const a = t(n); + return function(e) { + let { + getState: t + } = e; + const n = t(), + { + app: a + } = n["features/base/app"]; + (function(e) { + const t = Fe(e); + return function(e) { + if (!SF(e["features/base/conference"].room)) return; + const t = { + component: void 0, + href: void 0 + }, + { + locationURL: n + } = e["features/base/connection"]; + return window.location.href !== n.href ? (t.href = n.href, Promise.resolve(t)) : function(e) { + const { + room: t + } = e["features/base/conference"], { + launchInWeb: n + } = e["features/deep-linking"], a = "undefined" != typeof interfaceConfig && interfaceConfig.APP_SCHEME; + if (n || !t || e["features/base/config"].disableDeepLinking || cM(e) && (!a || "com.8x8.meet" === a)) return Promise.resolve(); +/* BAO + if (va()) { + const e = "object" == typeof interfaceConfig && interfaceConfig.MOBILE_APP_PROMO; + return Promise.resolve(void 0 === e || Boolean(e) ? Jae : Zae) + } +*/ + + return Qae().then((e => e ? Yae : void 0)) + }(e).then((e => (e ? t.component = e : pY() ? t.component = qie : t.component = Hie, t))) + }(t) || function(e) { + const t = { + component: void 0, + href: void 0 + }; + if (function(e) { + return "undefined" == typeof APP || Fe(e)["features/base/config"].enableWelcomePage + }(e)) pY() ? t.component = Zie : t.component = Hie; + else { + let e = window.location.href; + e.endsWith("/") || (e += "/"), t.href = e + Lq() + } + return Promise.resolve(t) + }(t) + })(n).then((e => a._navigate(e))) + }(e), a + }(e, t, n) + } + return t(n) + })); + const Qie = { + availableDevices: { + audioInput: [], + audioOutput: [], + videoInput: [] + }, + pendingRequests: [], + permissions: { + audio: !1, + video: !1 + } + }; et.register("features/base/devices", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Qie, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case IM: { + const n = WM(t.devices); + return { + ...e, + availableDevices: n } + } + case OM: + return { + ...e, pendingRequests: [...e.pendingRequests, t.request] + }; + case NM: + return { + ...e, pendingRequests: [] + }; + case jM: + return LM.debug(`set audio input device: ${t.deviceId}`), e; + case MM: + return LM.debug(`set video input device: ${t.deviceId}`), e; + case zM: + return { + ...e, permissions: t.permissions + }; + default: return e - }, o.apply(this, arguments) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "InfoIcon"; - var l = s; - t.Z = l - }, 251: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + })); + const Xie = { + enabled: !1, + maxMode: g8 + }; et.register("features/e2ee", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Xie, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case a8: + return { + ...e, enabled: t.enabled + }; + case r8: + return { + ...e, everyoneEnabledE2EE: t.everyoneEnabledE2EE + }; + case i8: + return { + ...e, everyoneSupportE2EE: t.everyoneSupportE2EE + }; + case o8: + return { + ...e, maxMode: t.maxMode + }; + default: + return e } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + })); + const eoe = { + facialExpressions: { + happy: 0, + neutral: 0, + surprised: 0, + angry: 0, + fearful: 0, + disgusted: 0, + sad: 0 + }, + detectionTimeInterval: -1, + recognitionActive: !1 + }; et.register("features/facial-recognition", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : eoe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Lne: + return e.facialExpressions[t.facialExpression] += t.duration, e; + case Fne: + return { + ...e, detectionTimeInterval: t.time + }; + case qne: + return { + ...e, recognitionActive: !0 + }; + case Bne: + return { + ...e, recognitionActive: !1 + } + } + return e + })); + const toe = { + message: "", + score: -1, + submitted: !1 + }; et.register("features/feedback", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : toe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case k1: + return { + ...e, message: t.message, score: t.score + }; + case _1: + case w1: + return { + ...e, message: "", score: -1, submitted: !0 } + } + return e + })), et.register("features/local-recording", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case H1: + return { + ...e, isEngaged: !0, recordingEngagedAt: t.recordingEngagedAt, encodingFormat: m0._format + }; + case V1: + return { + ...e, isEngaged: !1, recordingEngagedAt: null + }; + case W1: + return { + ...e, stats: t.stats + }; + default: return e - }, o.apply(this, arguments) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "RadioIcon"; - var l = s; - t.Z = l - }, 901: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); + })), et.register("features/no-audio-signal", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === _ne ? ze(e, "noAudioSignalNotificationUid", t.uid) : e + })), et.register("features/noise-detection", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === Cne ? ze(e, "noisyAudioInputNotificationUid", t.uid) : e + })); + const noe = { + isOpen: !1, + participantsVolume: {} + }; - function i(e) { - return e && e.__esModule ? e : { - default: e - } - } + function aoe(e, t) { + return ze(e, "transport", t) + } - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } + function roe(e) { + return ze(e, "suspendDetected", !0) + } + et.register(Sm, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : noe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case _0: + return { + ...e, isOpen: !1 + }; + case w0: + return { + ...e, isOpen: !0 + }; + case S0: + return { + ...e, participantsVolume: { + ...e.participantsVolume, + [t.participantId]: t.volume + } + }; + default: return e - }, o.apply(this, arguments) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "StarFilledIcon"; - var l = s; - t.Z = l - }, 9429: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); + })), et.register("features/power-monitor", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Aee: + return aoe(e, t.transport); + case Cee: + return roe(e) + } + return e + })); + const ioe = { + country: "", + deviceStatusText: "prejoin.configuringDevices", + deviceStatusType: "ok", + dialOutCountry: { + name: "United States", + dialCode: "1", + code: "us" + }, + dialOutNumber: "", + dialOutStatus: "prejoin.dialing", + isDisplayNameRequired: !1, + name: "", + rawError: "", + showPrejoin: !0, + skipPrejoinOnReload: !1, + showJoinByPhoneDialog: !1, + userSelectedSkipPrejoin: !1 + }; - function i(e) { - return e && e.__esModule ? e : { - default: e - } + function ooe(e) { + const { + audioOnlyError: t, + videoOnlyError: n, + audioAndVideoError: a + } = e; + return a ? t ? n ? { + deviceStatusType: "warning", + deviceStatusText: "prejoin.audioAndVideoError", + rawError: a.message + } : { + deviceStatusType: "warning", + deviceStatusText: "prejoin.audioOnlyError", + rawError: t.message + } : { + deviceStatusType: "warning", + deviceStatusText: "prejoin.videoOnlyError", + rawError: a.message + } : { + deviceStatusType: "ok", + deviceStatusText: "prejoin.lookGood", + rawError: "" } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + Xe.register("features/prejoin", { + skipPrejoinOnReload: !0 + }, ioe), et.register("features/prejoin", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ioe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case ZU: + return { + ...e, joiningInProgress: t.value + }; + case eH: + return { + ...e, userSelectedSkipPrejoin: t.value + }; + case tH: + return { + ...e, skipPrejoinOnReload: t.value + }; + case sH: + return { + ...e, precallTestResults: t.value + }; + case cH: + return { + ...e, showPrejoin: t.value + }; + case lH: { + const n = ooe(t.value); + return { + ...e, + ...n + } + } + case XU: { + const { + deviceStatusType: n, + deviceStatusText: a + } = t.value; + return { + ...e, + deviceStatusText: a, + deviceStatusType: n } + } + case rH: + return { + ...e, dialOutNumber: t.value + }; + case aH: + return { + ...e, dialOutCountry: t.value + }; + case iH: + return { + ...e, dialOutStatus: t.value + }; + case oH: + return { + ...e, showJoinByPhoneDialog: t.value + }; + case nH: + return { + ...e, isDisplayNameRequired: !0 + }; + default: return e - }, o.apply(this, arguments) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "StarIcon"; - var l = s; - t.Z = l - }, 9317: (e, t, n) => { - "use strict"; - t.Z = void 0; - var a = i(n(2684)), - r = i(n(1041)); - - function i(e) { - return e && e.__esModule ? e : { - default: e - } + })); + const soe = { + active: !1, + controller: { + isCapturingEvents: !1 + }, + receiver: { + enabled: !1 } - - function o() { - return o = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + }; et.register("features/remote-control", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : soe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case I3: + return { + ...e, controller: ze(e.controller, "isCapturingEvents", t.isCapturingEvents) + }; + case O3: + return ze(e, "active", t.active); + case N3: + return { + ...e, receiver: ze(e.receiver, "transport", t.transport) + }; + case R3: + return { + ...e, receiver: ze(e.receiver, "enabled", t.enabled) + }; + case F3: + return { + ...e, controller: ze(e.controller, "requestedParticipant", t.requestedParticipant) + }; + case L3: + return { + ...e, controller: ze(e.controller, "controlled", t.controlled) + }; + case z3: + return { + ...e, receiver: ze(e.receiver, "controller", t.controller) } - return e - }, o.apply(this, arguments) } - var s = function(e) { - return a.default.createElement(r.default, o({ - dangerouslySetGlyph: '' - }, e)) - }; - s.displayName = "WarningIcon"; - var l = s; - t.Z = l - }, 3241: (e, t, n) => { - "use strict"; - n.r(t), n.d(t, { - __extends: () => r, - __assign: () => i, - __rest: () => o, - __decorate: () => s, - __param: () => l, - __metadata: () => c, - __awaiter: () => u, - __generator: () => d, - __createBinding: () => p, - __exportStar: () => h, - __values: () => m, - __read: () => f, - __spread: () => g, - __spreadArrays: () => b, - __spreadArray: () => y, - __await: () => v, - __asyncGenerator: () => k, - __asyncDelegator: () => _, - __asyncValues: () => w, - __makeTemplateObject: () => S, - __importStar: () => x, - __importDefault: () => C, - __classPrivateFieldGet: () => A, - __classPrivateFieldSet: () => j - }); - var a = function(e, t) { - return a = Object.setPrototypeOf || { - __proto__: [] - } - instanceof Array && function(e, t) { - e.__proto__ = t - } || function(e, t) { - for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) - }, a(e, t) - }; - - function r(e, t) { - if ("function" != typeof t && null !== t) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); - - function n() { - this.constructor = e - } - a(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) + return e + })), et.register("features/screen-share", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + const { + captureFrameRate: n, + isSharingAudio: a + } = t; + switch (t.type) { + case oY: + return { + ...e, isSharingAudio: a + }; + case sY: + return { + ...e, captureFrameRate: n + }; + default: + return e } - var i = function() { - return i = Object.assign || function(e) { - for (var t, n = 1, a = arguments.length; n < a; n++) - for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); + })), Xe.register("features/screnshot-capture", !0, { + capturesEnabled: !1 + }), et.register("features/screenshot-capture", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === xK ? { + ...e, + capturesEnabled: t.payload + } : e + })); + const loe = {}; et.register("features/shared-video", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : loe, + t = arguments.length > 1 ? arguments[1] : void 0; + const { + videoUrl: n, + status: a, + time: r, + ownerId: i, + disabled: o, + muted: s + } = t; + switch (t.type) { + case h6: + return loe; + case p6: + return { + ...e, muted: s, ownerId: i, status: a, time: r, videoUrl: n + }; + case m6: + return { + ...e, disabled: o + }; + default: return e - }, i.apply(this, arguments) - }; - - function o(e, t) { - var n = {}; - for (var a in e) Object.prototype.hasOwnProperty.call(e, a) && t.indexOf(a) < 0 && (n[a] = e[a]); - if (null != e && "function" == typeof Object.getOwnPropertySymbols) { - var r = 0; - for (a = Object.getOwnPropertySymbols(e); r < a.length; r++) t.indexOf(a[r]) < 0 && Object.prototype.propertyIsEnumerable.call(e, a[r]) && (n[a[r]] = e[a[r]]) - } - return n } - - function s(e, t, n, a) { - var r, i = arguments.length, - o = i < 3 ? t : null === a ? a = Object.getOwnPropertyDescriptor(t, n) : a; - if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) o = Reflect.decorate(e, t, n, a); - else - for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (o = (i < 3 ? r(o) : i > 3 ? r(t, n, o) : r(t, n)) || o); - return i > 3 && o && Object.defineProperty(t, n, o), o + })), et.register("features/talk-while-muted", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === Nne ? ze(e, "currentNotificationUid", t.uid) : e + })); + const coe = "features/virtual-background"; et.register(coe, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + const { + virtualSource: n, + backgroundEffectEnabled: a, + blurValue: r, + backgroundType: i, + selectedThumbnail: o + } = t; + switch (Xe.register(coe, e.backgroundType !== Pp), t.type) { + case kp: + return { + ...e, virtualSource: n, blurValue: r, backgroundType: i, selectedThumbnail: o + }; + case vp: + return { + ...e, backgroundEffectEnabled: a + } } - - function l(e, t) { - return function(n, a) { - t(n, a, e) + return e + })); + const uoe = { + localTracksDuration: { + audio: { + startedTime: -1, + value: 0 + }, + video: { + camera: { + startedTime: -1, + value: 0 + }, + desktop: { + startedTime: -1, + value: 0 + } + }, + conference: { + startedTime: -1, + value: 0 } } - - function c(e, t) { - if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t) + }; et.register("features/analytics", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : uoe, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === eae ? { + ...e, + localTracksDuration: t.localTracksDuration + } : e + })), et.register("features/authentication", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case lB: + return Oe(e, { + error: void 0, + progress: void 0, + thenableWithCancel: void 0 + }); + case cB: + return Oe(e, { + error: void 0, + waitForOwnerTimeoutID: void 0 + }); + case uB: { + let { + thenableWithCancel: n + } = t; + if (e.thenableWithCancel === n) { + const { + error: a, + progress: r + } = t; + return (a || 1 === r) && (n = void 0), Oe(e, { + error: a, + progress: r || void 0, + thenableWithCancel: n + }) + } + break + } + case dB: + return Oe(e, { + error: void 0, + progress: void 0, + thenableWithCancel: t.thenableWithCancel + }); + case pB: + return Oe(e, { + waitForOwnerTimeoutID: t.waitForOwnerTimeoutID + }) } + return e + })); + const doe = { + audioModerationEnabled: !1, + videoModerationEnabled: !1, + audioWhitelist: {}, + videoWhitelist: {}, + pendingAudio: [], + pendingVideo: [] + }; - function u(e, t, n, a) { - return new(n || (n = Promise))((function(r, i) { - function o(e) { - try { - l(a.next(e)) - } catch (e) { - i(e) - } + function poe(e, t) { + let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}, + a = !1; + const r = im[e], + i = n[r], + o = i.map((e => e.id === t.id ? (a = !0, { + ...e, + ...t + }) : e)); + return !!a && (n[r] = o, !0) + } + et.register("features/av-moderation", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : doe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Nm: { + const n = t.mediaType === Fi ? { + audioModerationEnabled: !1, + audioUnmuteApproved: void 0 + } : { + videoModerationEnabled: !1, + videoUnmuteApproved: void 0 + }; + return { + ...e, + ...n, + audioWhitelist: {}, + videoWhitelist: {}, + pendingAudio: [], + pendingVideo: [] } - - function s(e) { - try { - l(a.throw(e)) - } catch (e) { - i(e) + } + case zm: { + const n = t.mediaType === Fi ? { + audioModerationEnabled: !0 + } : { + videoModerationEnabled: !0 + }; + return { + ...e, + ...n + } + } + case Um: { + const n = t.mediaType === Fi ? { + audioUnmuteApproved: !0 + } : { + videoUnmuteApproved: !0 + }; + return { + ...e, + ...n + } + } + case Hm: { + const n = t.mediaType === Fi ? { + audioUnmuteApproved: !1 + } : { + videoUnmuteApproved: !1 + }; + return { + ...e, + ...n + } + } + case Gm: { + const { + participant: n + } = t; + if (!e.pendingAudio.find((e => e.id === n.id))) { + const t = [...e.pendingAudio]; + return t.push(n), { + ...e, + pendingAudio: t } } - - function l(e) { - var t; - e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) { - e(t) - }))).then(o, s) + return e + } + case Hw: { + const n = t.participant, + { + audioModerationEnabled: a, + videoModerationEnabled: r + } = e; + let i = !1; + return a && (i = poe(Fi, n, e)), r && (i = i || poe(Bi, n, e)), i ? { + ...e + } : e + } + case Uw: { + const n = t.participant, + { + audioModerationEnabled: a, + videoModerationEnabled: r + } = e; + let i = !1; + if (a) { + const t = e.pendingAudio.filter((e => e.id !== n.id)); + e.pendingAudio.length !== t.length && (e.pendingAudio = t, i = !0) } - l((a = a.apply(e, t || [])).next()) - })) - } - - function d(e, t) { - var n, a, r, i, o = { - label: 0, - sent: function() { - if (1 & r[0]) throw r[1]; - return r[1] - }, - trys: [], - ops: [] - }; - return i = { - next: s(0), - throw: s(1), - return: s(2) - }, "function" == typeof Symbol && (i[Symbol.iterator] = function() { - return this - }), i; - - function s(i) { - return function(s) { - return function(i) { - if (n) throw new TypeError("Generator is already executing."); - for (; o;) try { - if (n = 1, a && (r = 2 & i[0] ? a.return : i[0] ? a.throw || ((r = a.return) && r.call(a), 0) : a.next) && !(r = r.call(a, i[1])).done) return r; - switch (a = 0, r && (i = [2 & i[0], r.value]), i[0]) { - case 0: - case 1: - r = i; - break; - case 4: - return o.label++, { - value: i[1], - done: !1 - }; - case 5: - o.label++, a = i[1], i = [0]; - continue; - case 7: - i = o.ops.pop(), o.trys.pop(); - continue; - default: - if (!((r = (r = o.trys).length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) { - o = 0; - continue - } - if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) { - o.label = i[1]; - break - } - if (6 === i[0] && o.label < r[1]) { - o.label = r[1], r = i; - break - } - if (r && o.label < r[2]) { - o.label = r[2], o.ops.push(i); - break - } - r[2] && o.ops.pop(), o.trys.pop(); - continue - } - i = t.call(e, o) - } catch (e) { - i = [6, e], a = 0 - } finally { - n = r = 0 - } - if (5 & i[0]) throw i[1]; - return { - value: i[0] ? i[1] : void 0, - done: !0 - } - }([i, s]) + if (r) { + const t = e.pendingVideo.filter((e => e.id !== n.id)); + e.pendingVideo.length !== t.length && (e.pendingVideo = t, i = !0) } + return i ? { + ...e + } : e + } + case Rm: { + const { + id: n, + mediaType: a + } = t; + return a === Fi ? { + ...e, + pendingAudio: e.pendingAudio.filter((e => e.id !== n)) + } : a === Bi ? { + ...e, + pendingVideo: e.pendingVideo.filter((e => e.id !== n)) + } : e + } + case Wm: { + const { + mediaType: n, + id: a + } = t; + return n === Fi ? { + ...e, + audioWhitelist: { + ...e.audioWhitelist, + [a]: !0 + } + } : n === Bi ? { + ...e, + videoWhitelist: { + ...e.videoWhitelist, + [a]: !0 + } + } : e + } + case Ym: { + const { + mediaType: n, + id: a + } = t; + return n === Fi ? { + ...e, + audioWhitelist: { + ...e.audioWhitelist, + [a]: !1 + } + } : n === Bi ? { + ...e, + videoWhitelist: { + ...e.videoWhitelist, + [a]: !1 + } + } : e + } + } + return e + })), et.register("features/base/app", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Va: { + const { + app: n + } = t; + if (e.app !== n) return { + ...e, + app: n + }; + break } - } - var p = Object.create ? function(e, t, n, a) { - void 0 === a && (a = n), Object.defineProperty(e, a, { - enumerable: !0, - get: function() { - return t[n] - } - }) - } : function(e, t, n, a) { - void 0 === a && (a = n), e[a] = t[n] - }; + case Wa: + if (e.app === t.app) return { + ...e, + app: void 0 + } + } + return e + })); + const hoe = { + enabled: !1 + }; et.register("features/base/audio-only", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : hoe, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === WX ? { + ...e, + enabled: t.audioOnly + } : e + })); + const moe = { + conference: void 0, + e2eeSupported: void 0, + joining: void 0, + leaving: void 0, + locked: void 0, + membersOnly: void 0, + password: void 0, + passwordRequired: void 0 + }; - function h(e, t) { - for (var n in e) "default" === n || Object.prototype.hasOwnProperty.call(t, n) || p(t, e, n) - } + function foe(e, t) { + let { + authEnabled: n, + authLogin: a + } = t; + return Oe(e, { + authEnabled: n, + authLogin: a + }) + } - function m(e) { - var t = "function" == typeof Symbol && Symbol.iterator, - n = t && e[t], - a = 0; - if (n) return n.call(e); - if (e && "number" == typeof e.length) return { - next: function() { - return e && a >= e.length && (e = void 0), { - value: e && e[a++], - done: !e - } - } - }; - throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.") - } + function goe(e, t) { + let { + conference: n, + error: a + } = t; + const r = e.conference || e.joining; + if (r && r !== n) return e; + let i, o, s; + switch (a.name) { + case pt.AUTHENTICATION_REQUIRED: + i = n; + break; + case pt.CONFERENCE_ACCESS_DENIED: + case pt.MEMBERS_ONLY_ERROR: + o = n; + break; + case pt.PASSWORD_REQUIRED: + s = n + } + return Oe(e, { + authRequired: i, + conference: void 0, + e2eeSupported: void 0, + error: a, + joining: void 0, + leaving: void 0, + locked: s ? X8 : void 0, + membersOnly: o, + password: void 0, + passwordRequired: s + }) + } - function f(e, t) { - var n = "function" == typeof Symbol && e[Symbol.iterator]; - if (!n) return e; - var a, r, i = n.call(e), - o = []; - try { - for (; - (void 0 === t || t-- > 0) && !(a = i.next()).done;) o.push(a.value) - } catch (e) { - r = { - error: e - } - } finally { - try { - a && !a.done && (n = i.return) && n.call(i) - } finally { - if (r) throw r.error - } + function boe(e, t) { + let { + conference: n + } = t; + const a = n.room && n.room.locked ? X8 : void 0; + return Oe(e, { + authRequired: void 0, + conference: n, + e2eeSupported: n.isE2EESupported(), + joining: void 0, + membersOnly: void 0, + leaving: void 0, + locked: a, + passwordRequired: void 0 + }) + } + + function yoe(e, t) { + let { + conference: n, + type: a + } = t; + const r = { + ...e + }; + for (const t in e) + if (e[t] === n) switch (r[t] = void 0, t) { + case "conference": + case "passwordRequired": + delete r.locked, delete r.password } - return o - } + return a === $F && (n !== e.joining && n !== e.conference || (r.leaving = n)), r + } - function g() { - for (var e = [], t = 0; t < arguments.length; t++) e = e.concat(f(arguments[t])); - return e - } + function voe(e, t) { + let { + conference: n + } = t; + return Oe(e, { + error: void 0, + joining: n + }) + } - function b() { - for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; - var a = Array(e), - r = 0; - for (t = 0; t < n; t++) - for (var i = arguments[t], o = 0, s = i.length; o < s; o++, r++) a[r] = i[o]; - return a - } + function koe(e, t) { + let { + conference: n, + locked: a + } = t; + return e.conference !== n ? e : Oe(e, { + locked: a ? e.locked || X8 : void 0, + password: a ? e.password : void 0 + }) + } - function y(e, t) { - for (var n = 0, a = t.length, r = e.length; n < a; n++, r++) e[r] = t[n]; - return e - } + function _oe(e, t) { + return ze(e, "p2p", t.p2p) + } - function v(e) { - return this instanceof v ? (this.v = e, this) : new v(e) + function woe(e, t) { + let { + conference: n, + method: a, + password: r + } = t; + switch (a) { + case n.join: + return Oe(e, { + joining: e.conference ? e.joining : n, + locked: X8, + password: r + }); + case n.lock: + return Oe(e, { + locked: r ? Q8 : void 0, + password: r + }) } + return e + } - function k(e, t, n) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var a, r = n.apply(e, t || []), - i = []; - return a = {}, o("next"), o("throw"), o("return"), a[Symbol.asyncIterator] = function() { - return this - }, a; + function Soe(e, t) { + let { + room: n + } = t; + return SF(n) || (n = void 0), Oe(e, { + error: void 0, + room: n + }) + } + et.register("features/base/conference", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : moe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case BF: + return foe(e, t); + case UF: + return goe(e, t); + case HF: + return boe(e, t); + case WF: + return ze(e, "subject", t.subject); + case YF: + return ze(e, "conferenceTimestamp", t.conferenceTimestamp); + case VF: + case $F: + return yoe(e, t); + case KF: + return voe(e, t); + case PF: + return ze(e, "authRequired", void 0); + case QF: + return koe(e, t); + case XF: + return _oe(e, t); + case tq: + return ze(e, "followMeEnabled", t.enabled); + case nq: + return ze(e, "startReactionsMuted", t.muted); + case jF: + return ze(e, "room", void 0); + case aq: + return woe(e, t); + case iq: + return ze(e, "pendingSubjectChange", t.subject); + case oq: + return Soe(e, t); + case sq: + return { + ...e, startAudioMutedPolicy: t.startAudioMutedPolicy, startVideoMutedPolicy: t.startVideoMutedPolicy + } + } + return e + })); + const Eoe = {}, xoe = { + analytics: {}, + disableAudioLevels: !0, + p2p: { + disabledCodec: "", + disableH264: !1, + preferredCodec: "H264", + preferH264: !0 + } + }, Coe = { + hideConferenceTimer: ["conference-timer"], + hideConferenceSubject: ["subject"], + hideParticipantsStats: ["participants-count"], + hideRecordingLabel: ["recording", "local-recording"] + }; - function o(e) { - r[e] && (a[e] = function(t) { - return new Promise((function(n, a) { - i.push([e, t, n, a]) > 1 || s(e, t) - })) - }) - } + function Aoe() { + return "ReactNative" === navigator.product ? xoe : Eoe + } - function s(e, t) { - try { - (n = r[e](t)).value instanceof v ? Promise.resolve(n.value.v).then(l, c) : u(i[0][2], n) - } catch (e) { - u(i[0][3], e) - } - var n - } + function Toe(e, t) { + let { + config: n + } = t; + n = function(e) { + const t = e; + !Array.isArray(e.toolbarButtons) && "object" == typeof interfaceConfig && Array.isArray(interfaceConfig.TOOLBAR_BUTTONS) && (t.toolbarButtons = interfaceConfig.TOOLBAR_BUTTONS), e.toolbarConfig || (e.toolbarConfig = {}), "boolean" != typeof e.toolbarConfig.alwaysVisible && "object" == typeof interfaceConfig && "boolean" == typeof interfaceConfig.TOOLBAR_ALWAYS_VISIBLE && (t.toolbarConfig.alwaysVisible = interfaceConfig.TOOLBAR_ALWAYS_VISIBLE), "number" != typeof e.toolbarConfig.initialTimeout && "object" == typeof interfaceConfig && "number" == typeof interfaceConfig.INITIAL_TOOLBAR_TIMEOUT && (t.toolbarConfig.initialTimeout = interfaceConfig.INITIAL_TOOLBAR_TIMEOUT), "number" != typeof e.toolbarConfig.timeout && "object" == typeof interfaceConfig && "number" == typeof interfaceConfig.TOOLBAR_TIMEOUT && (t.toolbarConfig.timeout = interfaceConfig.TOOLBAR_TIMEOUT); + const n = Object.keys(Coe).filter((t => e[t])); + var a, r, i, o; + return n.length && (t.conferenceInfo = function(e) { + const { + conferenceInfo: t + } = e; + var n, a; + return t ? { + alwaysVisible: null !== (n = t.alwaysVisible) && void 0 !== n ? n : [...wie.alwaysVisible], + autoHide: null !== (a = t.autoHide) && void 0 !== a ? a : [...wie.autoHide] + } : { + ...wie + } + }(e), n.forEach((e => { + "hideRecordingLabel" === e ? (t.conferenceInfo.alwaysVisible = t.conferenceInfo.alwaysVisible.filter((t => !Coe[e].includes(t))), t.conferenceInfo.autoHide = _().union(t.conferenceInfo.autoHide, Coe[e])) : (t.conferenceInfo.alwaysVisible = t.conferenceInfo.alwaysVisible.filter((t => !Coe[e].includes(t))), t.conferenceInfo.autoHide = t.conferenceInfo.autoHide.filter((t => !Coe[e].includes(t)))) + }))), !e.connectionIndicators && "object" == typeof interfaceConfig && (interfaceConfig.hasOwnProperty("CONNECTION_INDICATOR_DISABLED") || interfaceConfig.hasOwnProperty("CONNECTION_INDICATOR_AUTO_HIDE_ENABLED") || interfaceConfig.hasOwnProperty("CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT")) && (t.connectionIndicators = { + disabled: interfaceConfig.CONNECTION_INDICATOR_DISABLED, + autoHide: interfaceConfig.CONNECTION_INDICATOR_AUTO_HIDE_ENABLED, + autoHideTimeout: interfaceConfig.CONNECTION_INDICATOR_AUTO_HIDE_TIMEOUT + }), t.prejoinConfig = e.prejoinConfig || {}, e.hasOwnProperty("prejoinPageEnabled") && !t.prejoinConfig.hasOwnProperty("enabled") && (t.prejoinConfig.enabled = e.prejoinPageEnabled), t.disabledSounds = t.disabledSounds || [], e.disableJoinLeaveSounds && t.disabledSounds.unshift("PARTICIPANT_LEFT_SOUND", "PARTICIPANT_JOINED_SOUND"), e.disableRecordAudioNotification && t.disabledSounds.unshift("RECORDING_ON_SOUND", "RECORDING_OFF_SOUND", "LIVE_STREAMING_ON_SOUND", "LIVE_STREAMING_OFF_SOUND"), e.disableIncomingMessageSound && t.disabledSounds.unshift("INCOMING_MSG_SOUND"), (e.stereo || e.opusMaxAverageBitrate) && (t.audioQuality = { + opusMaxAverageBitrate: null !== (a = null === (r = e.audioQuality) || void 0 === r ? void 0 : r.opusMaxAverageBitrate) && void 0 !== a ? a : e.opusMaxAverageBitrate, + stereo: null !== (i = null === (o = e.audioQuality) || void 0 === o ? void 0 : o.stereo) && void 0 !== i ? i : e.stereo + }), void 0 === e.disableModeratorIndicator && "object" == typeof interfaceConfig && interfaceConfig.hasOwnProperty("DISABLE_FOCUS_INDICATOR") && (t.disableModeratorIndicator = interfaceConfig.DISABLE_FOCUS_INDICATOR), t.e2ee = t.e2ee || {}, e.e2eeLabels && (t.e2ee.e2eeLabels = e.e2eeLabels), void 0 === e.defaultLocalDisplayName && "object" == typeof interfaceConfig && interfaceConfig.hasOwnProperty("DEFAULT_LOCAL_DISPLAY_NAME") && (t.defaultLocalDisplayName = interfaceConfig.DEFAULT_LOCAL_DISPLAY_NAME), t.defaultLocalDisplayName = t.defaultLocalDisplayName || "me", void 0 === e.defaultRemoteDisplayName && "object" == typeof interfaceConfig && interfaceConfig.hasOwnProperty("DEFAULT_REMOTE_DISPLAY_NAME") && (t.defaultRemoteDisplayName = interfaceConfig.DEFAULT_REMOTE_DISPLAY_NAME), t.defaultRemoteDisplayName = t.defaultRemoteDisplayName || "Fellow Jitster", t + }(n); + const { + audioQuality: a + } = n, r = {}; + null != a && a.stereo && Object.assign(r, { + disableAP: !0, + enableNoAudioDetection: !1, + enableNoisyMicDetection: !1, + enableTalkWhileMuted: !1 + }); + const i = _().merge({}, n, r, { + error: void 0 + }, Aoe()); + return Re(e, i) ? e : i + } - function l(e) { - s("next", e) - } + function Doe(e, t) { + let { + config: n + } = t; + const a = _().merge({}, e, n); + return Re(e, a) ? e : a + } - function c(e) { - s("throw", e) - } + function Poe(e, t) { + let { + connection: n + } = t; + return Ooe(e) !== n ? e : Oe(e, { + connecting: void 0, + connection: void 0, + timeEstablished: void 0 + }) + } - function u(e, t) { - e(t), i.shift(), i.length && s(i[0][0], i[0][1]) - } - } + function joe(e, t) { + let { + connection: n, + timeEstablished: a + } = t; + return Oe(e, { + connecting: void 0, + connection: n, + error: void 0, + passwordRequired: void 0, + timeEstablished: a + }) + } - function _(e) { - var t, n; - return t = {}, a("next"), a("throw", (function(e) { - throw e - })), a("return"), t[Symbol.iterator] = function() { - return this - }, t; + function Moe(e, t) { + let { + connection: n, + error: a + } = t; + const r = Ooe(e); + return r && r !== n ? e : Oe(e, { + connecting: void 0, + connection: void 0, + error: a, + passwordRequired: a.name === mt.PASSWORD_REQUIRED ? n : void 0 + }) + } + + function Ioe(e, t) { + let { + connection: n + } = t; + return Oe(e, { + connecting: n, + connection: void 0, + error: void 0, + passwordRequired: void 0, + timeEstablished: void 0 + }) + } - function a(a, r) { - t[a] = e[a] ? function(t) { - return (n = !n) ? { - value: v(e[a](t)), - done: "return" === a - } : r ? r(t) : t - } : r + function Ooe(e) { + return e.connection || e.connecting + } + + function Noe(e, t) { + let { + locationURL: n + } = t; + return ze(e, "locationURL", n) + } + + function Roe(e) { + return Oe(e, { + error: void 0, + passwordRequired: void 0 + }) + } + + function zoe(e, t) { + let { + showConnectionInfo: n + } = t; + return ze(e, "showConnectionInfo", n) + } + et.register("features/base/config", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Aoe(), + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case On: + return Doe(e, t); + case jn: + return { + error: void 0, locationURL: t.locationURL + }; + case Mn: + if (e.locationURL === t.locationURL) return { + error: t.error + }; + break; + case In: + return Toe(e, t); + case Nn: + return { + ...e, ...t.config + } + } + return e + })), et.register("features/base/connection", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case AF: + return Poe(e, t); + case TF: + return joe(e, t); + case DF: + return Moe(e, t); + case PF: + return Ioe(e, t); + case jF: + return Noe(e, t); + case oq: + return Roe(e); + case MF: + return zoe(e, t) + } + return e + })), et.register("features/base/dialog", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case RI: { + const { + component: n + } = t; + if (void 0 === n || e.component === n) return Oe(e, { + component: void 0, + componentProps: void 0, + rawDialog: !1 + }); + break } + case zI: + return Oe(e, { + component: t.component, + componentProps: t.componentProps, + rawDialog: t.rawDialog + }) + } + return e + })); + const Loe = "UPDATE_FLAGS", Foe = {}; et.register("features/base/flags", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Foe, + t = arguments.length > 1 ? arguments[1] : void 0; + if (t.type === Loe) { + const n = _().merge({}, e, t.flags); + return _().isEqual(e, n) ? e : n + } + return e + })), et.register("features/base/jwt", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + if (t.type === NB) { + const { + type: n, + ...a + } = t, r = { + ...a + }; + return Re(e, r) ? e : r } + return e + })); + const qoe = ["alpha.jitsi.net", "beta.meet.jit.si", "meet.jit.si", "8x8.vc"], Boe = "features/base/known-domains"; - function w(e) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); - var t, n = e[Symbol.asyncIterator]; - return n ? n.call(e) : (e = m(e), t = {}, a("next"), a("throw"), a("return"), t[Symbol.asyncIterator] = function() { - return this - }, t); - - function a(n) { - t[n] = e[n] && function(t) { - return new Promise((function(a, r) { - ! function(e, t, n, a) { - Promise.resolve(a).then((function(t) { - e({ - value: t, - done: n - }) - }), t) - }(a, r, (t = e[n](t)).done, t.value) - })) + function Uoe(e, t) { + let n = Array.isArray(e) ? e : []; + if (Array.isArray(t)) { + n = Array.from(e); + for (let e of t) e = e.toLowerCase(), !n.includes(e) && n.push(e) + } + return n + } + + function Hoe(e, t) { + let { + config: n + } = t; + return ze(e, "lastNLimits", function(e) { + if ("object" != typeof e || !Object.keys(e).length || Object.keys(e).find((t => null === t || isNaN(Number(t)) || null === e[t] || isNaN(Number(e[t]))))) return; + const t = new Map, + n = Object.keys(e).map((e => Number(e))).sort(((e, t) => e - t)); + for (const a of n) t.set(a, Number(e[a])); + return t + }(n.lastNLimits)) + } + Xe.register(Boe), et.register(Boe, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : qoe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case mn: + return Uoe(e, t.knownDomains); + case Va: + return Uoe(e, qoe); + default: + return e + } + })), et.register("features/base/lastn", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case In: + return Hoe(e, t); + case l7: { + const { + lastN: n + } = t; + return { + ...e, + lastN: n } } } - - function S(e, t) { - return Object.defineProperty ? Object.defineProperty(e, "raw", { - value: t - }) : e.raw = t, e + return e + })); + const Voe = {}; et.register("features/base/lib-jitsi-meet", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Voe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case g: + return Voe; + case b: + return { + ...e, initError: void 0, initialized: !0 + }; + case y: + return { + ...e, initError: t.error, initialized: !1 + }; + default: + return e } - var E = Object.create ? function(e, t) { - Object.defineProperty(e, "default", { - enumerable: !0, - value: t - }) - } : function(e, t) { - e.default = t + })); + const Woe = n(5939), Yoe = { + config: Woe, + logCollector: void 0 + }; + if ("ReactNative" === navigator.product) { + const e = { + "modules/sdp/SDPUtil.js": "info", + "modules/xmpp/ChatRoom.js": "warn", + "modules/xmpp/JingleSessionPC.js": "info", + "modules/xmpp/strophe.jingle.js": "info" }; - - function x(e) { - if (e && e.__esModule) return e; - var t = {}; - if (null != e) - for (var n in e) "default" !== n && Object.prototype.hasOwnProperty.call(e, n) && p(t, e, n); - return E(t, e), t + Yoe.config = { + ...Woe, + ...e } + } - function C(e) { - return e && e.__esModule ? e : { - default: e - } + function Goe(e, t) { + const n = { + ...Yoe.config, + ...t.config + }; + return Re(e.config, n) ? e : { + ...e, + config: n } + } - function A(e, t) { - if (!t.has(e)) throw new TypeError("attempted to get private field on non-instance"); - return t.get(e) + function Koe(e, t) { + return ze(e, "logCollector", t.logCollector) + } + et.register("features/base/logging", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Yoe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case cae: + return Goe(e, t); + case lae: + return Koe(e, t); + default: + return e } - - function j(e, t, n) { - if (!t.has(e)) throw new TypeError("attempted to set private field on non-instance"); - return t.set(e, n), n + })); + const $oe = { + isOnline: !0 + }; et.register(m, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : $oe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Qne: + return Oe(e, { + isOnline: t.isOnline, + networkType: t.networkType, + cellularGeneration: t.cellularGeneration, + details: t.details + }); + case Xne: + return Oe(e, { + _cleanup: t.cleanup + }); + default: + return e } - }, 5139: (e, t, n) => { - "use strict"; - n.r(t), n.d(t, { - R50: () => r, - R75: () => i, - R100: () => o, - R200: () => s, - R300: () => l, - R400: () => c, - R500: () => u, - Y50: () => d, - Y75: () => p, - Y100: () => h, - Y200: () => m, - Y300: () => f, - Y400: () => g, - Y500: () => b, - G50: () => y, - G75: () => v, - G100: () => k, - G200: () => _, - G300: () => w, - G400: () => S, - G500: () => E, - B50: () => x, - B75: () => C, - B100: () => A, - B200: () => j, - B300: () => P, - B400: () => D, - B500: () => T, - P50: () => O, - P75: () => M, - P100: () => I, - P200: () => N, - P300: () => z, - P400: () => R, - P500: () => L, - T50: () => F, - T75: () => q, - T100: () => B, - T200: () => U, - T300: () => H, - T400: () => V, - T500: () => W, - N0: () => Y, - N10: () => G, - N20: () => K, - N30: () => $, - N40: () => J, - N50: () => Z, - N60: () => Q, - N70: () => X, - N80: () => ee, - N90: () => te, - N100: () => ne, - N200: () => ae, - N300: () => re, - N400: () => ie, - N500: () => oe, - N600: () => se, - N700: () => le, - N800: () => ce, - N900: () => ue, - N10A: () => de, - N20A: () => pe, - N30A: () => he, - N40A: () => me, - N50A: () => fe, - N60A: () => ge, - N70A: () => be, - N80A: () => ye, - N90A: () => ve, - N100A: () => ke, - N200A: () => _e, - N300A: () => we, - N400A: () => Se, - N500A: () => Ee, - N600A: () => xe, - N700A: () => Ce, - N800A: () => Ae, - DN900: () => je, - DN800: () => Pe, - DN700: () => De, - DN600: () => Te, - DN500: () => Oe, - DN400: () => Me, - DN300: () => Ie, - DN200: () => Ne, - DN100: () => ze, - DN90: () => Re, - DN80: () => Le, - DN70: () => Fe, - DN60: () => qe, - DN50: () => Be, - DN40: () => Ue, - DN30: () => He, - DN20: () => Ve, - DN10: () => We, - DN0: () => Ye, - DN800A: () => Ge, - DN700A: () => Ke, - DN600A: () => $e, - DN500A: () => Je, - DN400A: () => Ze, - DN300A: () => Qe, - DN200A: () => Xe, - DN100A: () => et, - DN90A: () => tt, - DN80A: () => nt, - DN70A: () => at, - DN60A: () => rt, - DN50A: () => it, - DN40A: () => ot, - DN30A: () => st, - DN20A: () => lt, - DN10A: () => ct, - background: () => ut, - backgroundActive: () => dt, - backgroundHover: () => pt, - backgroundOnLayer: () => ht, - text: () => mt, - textHover: () => ft, - textActive: () => gt, - subtleText: () => bt, - placeholderText: () => yt, - heading: () => vt, - subtleHeading: () => kt, - codeBlock: () => _t, - link: () => wt, - linkHover: () => St, - linkActive: () => Et, - linkOutline: () => xt, - primary: () => Ct, - blue: () => At, - teal: () => jt, - purple: () => Pt, - red: () => Dt, - yellow: () => Tt, - green: () => Ot, - skeleton: () => Mt - }); - var a = n(5791), - r = "#FFEBE6", - i = "#FFBDAD", - o = "#FF8F73", - s = "#FF7452", - l = "#FF5630", - c = "#DE350B", - u = "#BF2600", - d = "#FFFAE6", - p = "#FFF0B3", - h = "#FFE380", - m = "#FFC400", - f = "#FFAB00", - g = "#FF991F", - b = "#FF8B00", - y = "#E3FCEF", - v = "#ABF5D1", - k = "#79F2C0", - _ = "#57D9A3", - w = "#36B37E", - S = "#00875A", - E = "#006644", - x = "#DEEBFF", - C = "#B3D4FF", - A = "#4C9AFF", - j = "#2684FF", - P = "#0065FF", - D = "#0052CC", - T = "#0747A6", - O = "#EAE6FF", - M = "#C0B6F2", - I = "#998DD9", - N = "#8777D9", - z = "#6554C0", - R = "#5243AA", - L = "#403294", - F = "#E6FCFF", - q = "#B3F5FF", - B = "#79E2F2", - U = "#00C7E6", - H = "#00B8D9", - V = "#00A3BF", - W = "#008DA6", - Y = "#FFFFFF", - G = "#FAFBFC", - K = "#F4F5F7", - $ = "#EBECF0", - J = "#DFE1E6", - Z = "#C1C7D0", - Q = "#B3BAC5", - X = "#A5ADBA", - ee = "#97A0AF", - te = "#8993A4", - ne = "#7A869A", - ae = "#6B778C", - re = "#5E6C84", - ie = "#505F79", - oe = "#42526E", - se = "#344563", - le = "#253858", - ce = "#172B4D", - ue = "#091E42", - de = "rgba(9, 30, 66, 0.02)", - pe = "rgba(9, 30, 66, 0.04)", - he = "rgba(9, 30, 66, 0.08)", - me = "rgba(9, 30, 66, 0.13)", - fe = "rgba(9, 30, 66, 0.25)", - ge = "rgba(9, 30, 66, 0.31)", - be = "rgba(9, 30, 66, 0.36)", - ye = "rgba(9, 30, 66, 0.42)", - ve = "rgba(9, 30, 66, 0.48)", - ke = "rgba(9, 30, 66, 0.54)", - _e = "rgba(9, 30, 66, 0.60)", - we = "rgba(9, 30, 66, 0.66)", - Se = "rgba(9, 30, 66, 0.71)", - Ee = "rgba(9, 30, 66, 0.77)", - xe = "rgba(9, 30, 66, 0.82)", - Ce = "rgba(9, 30, 66, 0.89)", - Ae = "rgba(9, 30, 66, 0.95)", - je = "#E6EDFA", - Pe = "#DCE5F5", - De = "#CED9EB", - Te = "#B8C7E0", - Oe = "#ABBBD6", - Me = "#9FB0CC", - Ie = "#8C9CB8", - Ne = "#7988A3", - ze = "#67758F", - Re = "#56637A", - Le = "#455166", - Fe = "#3B475C", - qe = "#313D52", - Be = "#283447", - Ue = "#202B3D", - He = "#1B2638", - Ve = "#121A29", - We = "#0E1624", - Ye = "#0D1424", - Ge = "rgba(13, 20, 36, 0.06)", - Ke = "rgba(13, 20, 36, 0.14)", - $e = "rgba(13, 20, 36, 0.18)", - Je = "rgba(13, 20, 36, 0.29)", - Ze = "rgba(13, 20, 36, 0.36)", - Qe = "rgba(13, 20, 36, 0.40)", - Xe = "rgba(13, 20, 36, 0.47)", - et = "rgba(13, 20, 36, 0.53)", - tt = "rgba(13, 20, 36, 0.63)", - nt = "rgba(13, 20, 36, 0.73)", - at = "rgba(13, 20, 36, 0.78)", - rt = "rgba(13, 20, 36, 0.81)", - it = "rgba(13, 20, 36, 0.85)", - ot = "rgba(13, 20, 36, 0.89)", - st = "rgba(13, 20, 36, 0.92)", - lt = "rgba(13, 20, 36, 0.95)", - ct = "rgba(13, 20, 36, 0.97)", - ut = (0, a.Z)({ - light: Y, - dark: He - }), - dt = (0, a.Z)({ - light: x, - dark: C - }), - pt = (0, a.Z)({ - light: $, - dark: Fe - }), - ht = (0, a.Z)({ - light: Y, - dark: Be - }), - mt = (0, a.Z)({ - light: ue, - dark: Te - }), - ft = (0, a.Z)({ - light: ce, - dark: Te - }), - gt = (0, a.Z)({ - light: D, - dark: D - }), - bt = (0, a.Z)({ - light: ae, - dark: Ie - }), - yt = (0, a.Z)({ - light: ne, - dark: Ne - }), - vt = (0, a.Z)({ - light: ce, - dark: Te - }), - kt = (0, a.Z)({ - light: ae, - dark: Ie - }), - _t = (0, a.Z)({ - light: K, - dark: Be - }), - wt = (0, a.Z)({ - light: D, - dark: A - }), - St = (0, a.Z)({ - light: P, - dark: j - }), - Et = (0, a.Z)({ - light: T, - dark: A - }), - xt = (0, a.Z)({ - light: A, - dark: j - }), - Ct = (0, a.Z)({ - light: D, - dark: A - }), - At = (0, a.Z)({ - light: D, - dark: A - }), - jt = (0, a.Z)({ - light: H, - dark: U - }), - Pt = (0, a.Z)({ - light: z, - dark: I - }), - Dt = (0, a.Z)({ - light: l, - dark: l - }), - Tt = (0, a.Z)({ - light: f, - dark: f - }), - Ot = (0, a.Z)({ - light: w, - dark: w - }), - Mt = function() { - return pe - } - }, 5791: (e, t, n) => { - "use strict"; - n.d(t, { - Z: () => i - }); - var a = ["light", "dark"]; + })); + const Joe = ["conference", "id", "local", "dominantSpeaker", "pinned"], Zoe = { + dominantSpeaker: void 0, + everyoneIsModerator: !1, + fakeParticipants: new Map, + haveParticipantWithScreenSharingFeature: !1, + local: void 0, + pinnedParticipant: void 0, + raisedHandsQueue: [], + remote: new Map, + sortedRemoteParticipants: new Map, + sortedRemoteScreenshares: new Map, + speakersList: new Map + }; - function r(e) { - if (e && e.theme) { - if ("__ATLASKIT_THEME__" in e.theme) return e.theme.__ATLASKIT_THEME__; - if ("mode" in e.theme && a.includes(e.theme.mode)) return e.theme - } - return { - mode: "light" - } + function Qoe(e, t) { + const n = e["features/base/config"]; + return null != t ? t : (null == n ? void 0 : n.defaultRemoteDisplayName) || "Fellow Jitster" + } + + function Xoe(e) { + if (Qh(e.local)) { + for (const [t, n] of e.remote) + if (!Qh(n)) return !1; + return !0 } + return !1 + } - function i(e, t) { - if ("string" == typeof e) return n = e, a = t, - function(e) { - var t = r(e); - if (e && e[n] && a) { - var i = a[e[n]]; - if (i && i[t.mode]) { - var o = i[t.mode]; - if (o) return o - } - } - return "" + function ese() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Gw: + case Hw: { + const { + participant: n + } = t, a = { + ...e }; - var n, a, i = e; - return function(e) { - var t = r(e); - if (t.mode in i) { - var n = i[t.mode]; - if (n) return n - } - return "" - } - } - }, 5571: (e, t) => { - "use strict"; - const n = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*\:/; - t.parse = function(e, ...a) { - const r = "object" == typeof a[0] && a[0], - i = a.length > 1 || !r ? a[0] : void 0, - o = a.length > 1 && a[1] || r || {}, - s = JSON.parse(e, i); - return "ignore" === o.protoAction ? s : s && "object" == typeof s && e.match(n) ? (t.scan(s, o), s) : s - }, t.scan = function(e, t = {}) { - let n = [e]; - for (; n.length;) { - const e = n; - n = []; - for (const a of e) { - if (Object.prototype.hasOwnProperty.call(a, "__proto__")) { - if ("remove" !== t.protoAction) throw new SyntaxError("Object contains forbidden prototype property"); - delete a.__proto__ - } - for (const e in a) { - const t = a[e]; - t && "object" == typeof t && n.push(a[e]) - } - } - } - }, t.safeParse = function(e, n) { - try { - return t.parse(e, n) - } catch (e) { - return null + for (const e in n) n.hasOwnProperty(e) && -1 === Joe.indexOf(e) && (a[e] = n[e]); + return a } } - }, 6712: (module, exports, __webpack_require__) => { - var process = __webpack_require__(554), - __WEBPACK_AMD_DEFINE_RESULT__; - (function() { - "use strict"; - var ERROR = "input is invalid type", - WINDOW = "object" == typeof window, - root = WINDOW ? window : {}; - root.JS_MD5_NO_WINDOW && (WINDOW = !1); - var WEB_WORKER = !WINDOW && "object" == typeof self, - NODE_JS = !root.JS_MD5_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node; - NODE_JS ? root = __webpack_require__.g : WEB_WORKER && (root = self); - var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && module.exports, - AMD = __webpack_require__.amdO, - ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer, - HEX_CHARS = "0123456789abcdef".split(""), - EXTRA = [128, 32768, 8388608, -2147483648], - SHIFT = [0, 8, 16, 24], - OUTPUT_TYPES = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"], - BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), - blocks = [], - buffer8; - if (ARRAY_BUFFER) { - var buffer = new ArrayBuffer(68); - buffer8 = new Uint8Array(buffer), blocks = new Uint32Array(buffer) - }!root.JS_MD5_NO_NODE_JS && Array.isArray || (Array.isArray = function(e) { - return "[object Array]" === Object.prototype.toString.call(e) - }), !ARRAY_BUFFER || !root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function(e) { - return "object" == typeof e && e.buffer && e.buffer.constructor === ArrayBuffer - }); - var createOutputMethod = function(e) { - return function(t) { - return new Md5(!0).update(t)[e]() - } - }, - createMethod = function() { - var e = createOutputMethod("hex"); - NODE_JS && (e = nodeWrap(e)), e.create = function() { - return new Md5 - }, e.update = function(t) { - return e.create().update(t) - }; - for (var t = 0; t < OUTPUT_TYPES.length; ++t) { - var n = OUTPUT_TYPES[t]; - e[n] = createOutputMethod(n) - } - return e - }, - nodeWrap = function(method) { - var crypto = eval("require('crypto')"), - Buffer = eval("require('buffer').Buffer"), - nodeMethod = function(e) { - if ("string" == typeof e) return crypto.createHash("md5").update(e, "utf8").digest("hex"); - if (null == e) throw ERROR; - return e.constructor === ArrayBuffer && (e = new Uint8Array(e)), Array.isArray(e) || ArrayBuffer.isView(e) || e.constructor === Buffer ? crypto.createHash("md5").update(new Buffer(e)).digest("hex") : method(e) - }; - return nodeMethod - }; - - function Md5(e) { - if (e) blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0, this.blocks = blocks, this.buffer8 = buffer8; - else if (ARRAY_BUFFER) { - var t = new ArrayBuffer(68); - this.buffer8 = new Uint8Array(t), this.blocks = new Uint32Array(t) - } else this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0, this.finalized = this.hashed = !1, this.first = !0 - } - Md5.prototype.update = function(e) { - if (!this.finalized) { - var t, n = typeof e; - if ("string" !== n) { - if ("object" !== n) throw ERROR; - if (null === e) throw ERROR; - if (ARRAY_BUFFER && e.constructor === ArrayBuffer) e = new Uint8Array(e); - else if (!(Array.isArray(e) || ARRAY_BUFFER && ArrayBuffer.isView(e))) throw ERROR; - t = !0 - } - for (var a, r, i = 0, o = e.length, s = this.blocks, l = this.buffer8; i < o;) { - if (this.hashed && (this.hashed = !1, s[0] = s[16], s[16] = s[1] = s[2] = s[3] = s[4] = s[5] = s[6] = s[7] = s[8] = s[9] = s[10] = s[11] = s[12] = s[13] = s[14] = s[15] = 0), t) - if (ARRAY_BUFFER) - for (r = this.start; i < o && r < 64; ++i) l[r++] = e[i]; - else - for (r = this.start; i < o && r < 64; ++i) s[r >> 2] |= e[i] << SHIFT[3 & r++]; - else if (ARRAY_BUFFER) - for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? l[r++] = a : a < 2048 ? (l[r++] = 192 | a >> 6, l[r++] = 128 | 63 & a) : a < 55296 || a >= 57344 ? (l[r++] = 224 | a >> 12, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), l[r++] = 240 | a >> 18, l[r++] = 128 | a >> 12 & 63, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a); - else - for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? s[r >> 2] |= a << SHIFT[3 & r++] : a < 2048 ? (s[r >> 2] |= (192 | a >> 6) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : a < 55296 || a >= 57344 ? (s[r >> 2] |= (224 | a >> 12) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), s[r >> 2] |= (240 | a >> 18) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 12 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]); - this.lastByteIndex = r, this.bytes += r - this.start, r >= 64 ? (this.start = r - 64, this.hash(), this.hashed = !0) : this.start = r - } - return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this - } - }, Md5.prototype.finalize = function() { - if (!this.finalized) { - this.finalized = !0; - var e = this.blocks, - t = this.lastByteIndex; - e[t >> 2] |= EXTRA[3 & t], t >= 56 && (this.hashed || this.hash(), e[0] = e[16], e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0), e[14] = this.bytes << 3, e[15] = this.hBytes << 3 | this.bytes >>> 29, this.hash() - } - }, Md5.prototype.hash = function() { - var e, t, n, a, r, i, o = this.blocks; - this.first ? t = ((t = ((e = ((e = o[0] - 680876937) << 7 | e >>> 25) - 271733879 << 0) ^ (n = ((n = (-271733879 ^ (a = ((a = (-1732584194 ^ 2004318071 & e) + o[1] - 117830708) << 12 | a >>> 20) + e << 0) & (-271733879 ^ e)) + o[2] - 1126478375) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1316259209) << 22 | t >>> 10) + n << 0 : (e = this.h0, t = this.h1, n = this.h2, t = ((t += ((e = ((e += ((a = this.h3) ^ t & (n ^ a)) + o[0] - 680876936) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[1] - 389564586) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[2] + 606105819) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1044525330) << 22 | t >>> 10) + n << 0), t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[4] - 176418897) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[5] + 1200080426) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[6] - 1473231341) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[7] - 45705983) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[8] + 1770035416) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[9] - 1958414417) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[10] - 42063) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[11] - 1990404162) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[12] + 1804603682) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[13] - 40341101) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[14] - 1502002290) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[15] + 1236535329) << 22 | t >>> 10) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[1] - 165796510) << 5 | e >>> 27) + t << 0) ^ t)) + o[6] - 1069501632) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[11] + 643717713) << 14 | n >>> 18) + a << 0) ^ a)) + o[0] - 373897302) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[5] - 701558691) << 5 | e >>> 27) + t << 0) ^ t)) + o[10] + 38016083) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[15] - 660478335) << 14 | n >>> 18) + a << 0) ^ a)) + o[4] - 405537848) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[9] + 568446438) << 5 | e >>> 27) + t << 0) ^ t)) + o[14] - 1019803690) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[3] - 187363961) << 14 | n >>> 18) + a << 0) ^ a)) + o[8] + 1163531501) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[13] - 1444681467) << 5 | e >>> 27) + t << 0) ^ t)) + o[2] - 51403784) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[7] + 1735328473) << 14 | n >>> 18) + a << 0) ^ a)) + o[12] - 1926607734) << 20 | t >>> 12) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[5] - 378558) << 4 | e >>> 28) + t << 0)) + o[8] - 2022574463) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[11] + 1839030562) << 16 | n >>> 16) + a << 0)) + o[14] - 35309556) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[1] - 1530992060) << 4 | e >>> 28) + t << 0)) + o[4] + 1272893353) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[7] - 155497632) << 16 | n >>> 16) + a << 0)) + o[10] - 1094730640) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[13] + 681279174) << 4 | e >>> 28) + t << 0)) + o[0] - 358537222) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[3] - 722521979) << 16 | n >>> 16) + a << 0)) + o[6] + 76029189) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[9] - 640364487) << 4 | e >>> 28) + t << 0)) + o[12] - 421815835) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[15] + 530742520) << 16 | n >>> 16) + a << 0)) + o[2] - 995338651) << 23 | t >>> 9) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[0] - 198630844) << 6 | e >>> 26) + t << 0) | ~n)) + o[7] + 1126891415) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[14] - 1416354905) << 15 | n >>> 17) + a << 0) | ~e)) + o[5] - 57434055) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[12] + 1700485571) << 6 | e >>> 26) + t << 0) | ~n)) + o[3] - 1894986606) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[10] - 1051523) << 15 | n >>> 17) + a << 0) | ~e)) + o[1] - 2054922799) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[8] + 1873313359) << 6 | e >>> 26) + t << 0) | ~n)) + o[15] - 30611744) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[6] - 1560198380) << 15 | n >>> 17) + a << 0) | ~e)) + o[13] + 1309151649) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[4] - 145523070) << 6 | e >>> 26) + t << 0) | ~n)) + o[11] - 1120210379) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[2] + 718787259) << 15 | n >>> 17) + a << 0) | ~e)) + o[9] - 343485551) << 21 | t >>> 11) + n << 0, this.first ? (this.h0 = e + 1732584193 << 0, this.h1 = t - 271733879 << 0, this.h2 = n - 1732584194 << 0, this.h3 = a + 271733878 << 0, this.first = !1) : (this.h0 = this.h0 + e << 0, this.h1 = this.h1 + t << 0, this.h2 = this.h2 + n << 0, this.h3 = this.h3 + a << 0) - }, Md5.prototype.hex = function() { - this.finalize(); - var e = this.h0, - t = this.h1, - n = this.h2, - a = this.h3; - return HEX_CHARS[e >> 4 & 15] + HEX_CHARS[15 & e] + HEX_CHARS[e >> 12 & 15] + HEX_CHARS[e >> 8 & 15] + HEX_CHARS[e >> 20 & 15] + HEX_CHARS[e >> 16 & 15] + HEX_CHARS[e >> 28 & 15] + HEX_CHARS[e >> 24 & 15] + HEX_CHARS[t >> 4 & 15] + HEX_CHARS[15 & t] + HEX_CHARS[t >> 12 & 15] + HEX_CHARS[t >> 8 & 15] + HEX_CHARS[t >> 20 & 15] + HEX_CHARS[t >> 16 & 15] + HEX_CHARS[t >> 28 & 15] + HEX_CHARS[t >> 24 & 15] + HEX_CHARS[n >> 4 & 15] + HEX_CHARS[15 & n] + HEX_CHARS[n >> 12 & 15] + HEX_CHARS[n >> 8 & 15] + HEX_CHARS[n >> 20 & 15] + HEX_CHARS[n >> 16 & 15] + HEX_CHARS[n >> 28 & 15] + HEX_CHARS[n >> 24 & 15] + HEX_CHARS[a >> 4 & 15] + HEX_CHARS[15 & a] + HEX_CHARS[a >> 12 & 15] + HEX_CHARS[a >> 8 & 15] + HEX_CHARS[a >> 20 & 15] + HEX_CHARS[a >> 16 & 15] + HEX_CHARS[a >> 28 & 15] + HEX_CHARS[a >> 24 & 15] - }, Md5.prototype.toString = Md5.prototype.hex, Md5.prototype.digest = function() { - this.finalize(); - var e = this.h0, - t = this.h1, - n = this.h2, - a = this.h3; - return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255, 255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255] - }, Md5.prototype.array = Md5.prototype.digest, Md5.prototype.arrayBuffer = function() { - this.finalize(); - var e = new ArrayBuffer(16), - t = new Uint32Array(e); - return t[0] = this.h0, t[1] = this.h1, t[2] = this.h2, t[3] = this.h3, e - }, Md5.prototype.buffer = Md5.prototype.arrayBuffer, Md5.prototype.base64 = function() { - for (var e, t, n, a = "", r = this.array(), i = 0; i < 15;) e = r[i++], t = r[i++], n = r[i++], a += BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[63 & (e << 4 | t >>> 4)] + BASE64_ENCODE_CHAR[63 & (t << 2 | n >>> 6)] + BASE64_ENCODE_CHAR[63 & n]; - return e = r[i], a + (BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[e << 4 & 63] + "==") - }; - var exports = createMethod(); - COMMON_JS ? module.exports = exports : (root.md5 = exports, AMD && (__WEBPACK_AMD_DEFINE_RESULT__ = function() { - return exports - }.call(exports, __webpack_require__, exports, module), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))) - })() - }, 6383: (e, t, n) => { - "use strict"; - var a = n(8740), - r = { - childContextTypes: !0, - contextType: !0, - contextTypes: !0, - defaultProps: !0, - displayName: !0, - getDefaultProps: !0, - getDerivedStateFromError: !0, - getDerivedStateFromProps: !0, - mixins: !0, - propTypes: !0, - type: !0 - }, - i = { - name: !0, - length: !0, - prototype: !0, - caller: !0, - callee: !0, - arguments: !0, - arity: !0 - }, - o = { - $$typeof: !0, - compare: !0, - defaultProps: !0, - displayName: !0, - propTypes: !0, - type: !0 - }, - s = {}; + return e + } - function l(e) { - return a.isMemo(e) ? o : s[e.$$typeof] || r + function tse(e) { + let { + participant: t + } = e; + const { + avatarURL: n, + botType: a, + connectionStatus: r, + dominantSpeaker: i, + email: o, + isFakeParticipant: s, + isReplacing: l, + isJigasi: c, + loadableAvatarUrl: u, + local: d, + name: p, + pinned: h, + presence: m, + role: f + } = t; + let { + conference: g, + id: b + } = t; + return d && (g = void 0, b || (b = Ih)), { + avatarURL: n, + botType: a, + conference: g, + connectionStatus: r, + dominantSpeaker: i || !1, + email: o, + id: b, + isFakeParticipant: s, + isReplacing: l, + isJigasi: c, + loadableAvatarUrl: u, + local: d || !1, + name: p, + pinned: h || !1, + presence: m, + role: f || "none" } - s[a.ForwardRef] = { - $$typeof: !0, - render: !0, - defaultProps: !0, - displayName: !0, - propTypes: !0 - }, s[a.Memo] = o; - var c = Object.defineProperty, - u = Object.getOwnPropertyNames, - d = Object.getOwnPropertySymbols, - p = Object.getOwnPropertyDescriptor, - h = Object.getPrototypeOf, - m = Object.prototype; - e.exports = function e(t, n, a) { - if ("string" != typeof n) { - if (m) { - var r = h(n); - r && r !== m && e(t, r, a) - } - var o = u(n); - d && (o = o.concat(d(n))); - for (var s = l(t), f = l(n), g = 0; g < o.length; ++g) { - var b = o[g]; - if (!(i[b] || a && a[b] || f && f[b] || s && s[b])) { - var y = p(n, b); - try { - c(t, b, y) - } catch (e) {} - } + } + + function nse(e, t, n, a) { + const { + remote: r, + local: i + } = e; + return r.has(t) ? (r.set(t, ze(r.get(t), n, a)), !0) : ((null == i ? void 0 : i.id) === t || "local" === (null == i ? void 0 : i.id)) && (e.local = ze(i, n, a), !0) + } + et.register("features/base/participants", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Zoe, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Fw: { + const { + local: n + } = e; + return n ? (e.local = { + ...n, + id: t.newValue + }, { + ...e + }) : e + } + case Nw: { + const { + participant: n + } = t, { + id: a, + previousSpeakers: r = [] + } = n, { + dominantSpeaker: i, + local: o + } = e, s = [a, ...r], l = []; + for (const t of s) + if (t !== (null == o ? void 0 : o.id)) { + const n = e.remote.get(t); + n && l.push([t, Qoe(e, n.name)]) + } return l.sort(((e, t) => e[1].localeCompare(t[1]))), i && nse(e, i, "dominantSpeaker", !1), nse(e, a, "dominantSpeaker", !0) ? { + ...e, + dominantSpeaker: a, + speakersList: new Map(l) + } : (delete e.dominantSpeaker, { + ...e + }) + } + case Vw: { + const { + participant: n + } = t, { + id: a + } = n, { + pinnedParticipant: r + } = e; + return r && nse(e, r, "pinned", !1), a && nse(e, a, "pinned", !0) ? { + ...e, + pinnedParticipant: a + } : (delete e.pinnedParticipant, { + ...e + }) + } + case Gw: + case Hw: { + var n; + const { + participant: a + } = t; + let { + id: r + } = a; + const { + local: i + } = a; + let o; + if (!r && i && (r = Ih), e.remote.has(r) ? (o = ese(e.remote.get(r), t), e.remote.set(r, o)) : r === (null === (n = e.local) || void 0 === n ? void 0 : n.id) && (o = e.local = ese(e.local, t)), o) { + const t = Qh(o); + e.everyoneIsModerator && !t ? e.everyoneIsModerator = !1 : !e.everyoneIsModerator && t && (e.everyoneIsModerator = Xoe(e)); + const { + features: n = {} + } = a; + "true" === String(n["screen-sharing"]) && (e.haveParticipantWithScreenSharingFeature = !0) + } + return { + ...e } } - return t - } - }, 7591: (e, t, n) => { - var a, r, i, o, s, l, c = n(554), - u = (s = {}, i = (i = "undefined" != typeof document && document.currentScript ? document.currentScript.src : void 0) || "node_modules/@matrix-org/olm/olm.js", l = function(t) { - var o, l, u; - if (t = t || {}, o || (o = void 0 !== t ? t : {}), o.ready = new Promise((function(e) { - l = e - })), "undefined" != typeof window) u = function(e) { - window.crypto.getRandomValues(e) - }; - else { - if (!e.exports) throw Error("Cannot find global to attach library to"); - var d = n(7250); - u = function(e) { - var t = d.randomBytes(e.length); - e.set(t) - }, c = n.g.process - } - if ("undefined" != typeof OLM_OPTIONS) - for (var p in OLM_OPTIONS) OLM_OPTIONS.hasOwnProperty(p) && (o[p] = OLM_OPTIONS[p]); - o.onRuntimeInitialized = function() { - Pe = o._olm_error(), s.PRIVATE_KEY_LENGTH = o._olm_pk_private_key_length(), a && a() - }, o.onAbort = function(e) { - r && r(e) + case qw: { + const n = tse(t), + { + id: a, + isFakeParticipant: r, + name: i, + pinned: o + } = n, + { + pinnedParticipant: s, + dominantSpeaker: l + } = e; + o && (s && nse(e, s, "pinned", !1), e.pinnedParticipant = a), n.dominantSpeaker && (l && nse(e, l, "dominantSpeaker", !1), e.dominantSpeaker = a); + const c = Qh(n), + { + local: u, + remote: d + } = e; + if (e.everyoneIsModerator && !c ? e.everyoneIsModerator = !1 : !u && 0 === d.size && c && (e.everyoneIsModerator = !0), n.local) return { + ...e, + local: n }; - var h, m, f, g, b, y = {}; - for (h in o) o.hasOwnProperty(h) && (y[h] = o[h]); - m = "object" == typeof window, f = "function" == typeof importScripts, g = "object" == typeof c && "object" == typeof c.versions && "string" == typeof c.versions.node, b = !m && !g && !f; - var v, k, _, w, S = ""; - g ? (S = f ? n(1217).dirname(S) + "/" : "//", v = function(e, t) { - return _ || (_ = n(1591)), w || (w = n(1217)), e = w.normalize(e), _.readFileSync(e, t ? null : "utf8") - }, k = function(e) { - return (e = v(e, !0)).buffer || (e = new Uint8Array(e)), e.buffer || ae("Assertion failed: undefined"), e - }, 1 < c.argv.length && c.argv[1].replace(/\\/g, "/"), c.argv.slice(2), c.on("uncaughtException", (function(e) { - throw e - })), c.on("unhandledRejection", ae), o.inspect = function() { - return "[Emscripten Module object]" - }) : b ? ("undefined" != typeof read && (v = function(e) { - return read(e) - }), k = function(e) { - return "function" == typeof readbuffer ? new Uint8Array(readbuffer(e)) : ("object" == typeof(e = read(e, "binary")) || ae("Assertion failed: undefined"), e) - }, "undefined" != typeof print && ("undefined" == typeof console && (console = {}), console.log = print, console.warn = console.error = "undefined" != typeof printErr ? printErr : print)) : (m || f) && (f ? S = self.location.href : document.currentScript && (S = document.currentScript.src), i && (S = i), S = 0 !== S.indexOf("blob:") ? S.substr(0, S.lastIndexOf("/") + 1) : "", v = function(e) { - var t = new XMLHttpRequest; - return t.open("GET", e, !1), t.send(null), t.responseText - }, f && (k = function(e) { - var t = new XMLHttpRequest; - return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response) - })); - var E, x = o.print || console.log.bind(console), - C = o.printErr || console.warn.bind(console); - for (h in y) y.hasOwnProperty(h) && (o[h] = y[h]); - - function A(e) { - var t = "i8"; - switch ("*" === t.charAt(t.length - 1) && (t = "i32"), t) { - case "i1": - case "i8": - L[e >> 0] = 0; - break; - case "i16": - q[e >> 1] = 0; - break; - case "i32": - B[e >> 2] = 0; - break; - case "i64": - oe = [0, 1 <= +Q(0) ? ~~+X(0) >>> 0 : 0], B[e >> 2] = oe[0], B[e + 4 >> 2] = oe[1]; - break; - case "float": - U[e >> 2] = 0; - break; - case "double": - H[e >> 3] = 0; - break; - default: - ae("invalid type for setValue: " + t) - } - } - - function j(e, t) { - switch ("*" === (t = t || "i8").charAt(t.length - 1) && (t = "i32"), t) { - case "i1": - case "i8": - return L[e >> 0]; - case "i16": - return q[e >> 1]; - case "i32": - case "i64": - return B[e >> 2]; - case "float": - return U[e >> 2]; - case "double": - return H[e >> 3]; - default: - ae("invalid type for getValue: " + t) - } - return null + e.remote.set(a, n); + const p = Qoe(e, i), + h = Array.from(e.sortedRemoteParticipants); + return h.push([a, p]), h.sort(((e, t) => e[1].localeCompare(t[1]))), e.sortedRemoteParticipants = new Map(h), r && e.fakeParticipants.set(a, n), { + ...e } - y = null, o.wasmBinary && (E = o.wasmBinary), o.noExitRuntime && o.noExitRuntime, "object" != typeof WebAssembly && ae("no native wasm support detected"); - var P, D = new WebAssembly.Table({ - initial: 9, - maximum: 9, - element: "anyfunc" - }), - T = !1, - O = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0; - - function M(e, t) { - if (e) { - var n = F, - a = e + t; - for (t = e; n[t] && !(t >= a);) ++t; - if (16 < t - e && n.subarray && O) e = O.decode(n.subarray(e, t)); - else { - for (a = ""; e < t;) { - var r = n[e++]; - if (128 & r) { - var i = 63 & n[e++]; - if (192 == (224 & r)) a += String.fromCharCode((31 & r) << 6 | i); - else { - var o = 63 & n[e++]; - 65536 > (r = 224 == (240 & r) ? (15 & r) << 12 | i << 6 | o : (7 & r) << 18 | i << 12 | o << 6 | 63 & n[e++]) ? a += String.fromCharCode(r) : (r -= 65536, a += String.fromCharCode(55296 | r >> 10, 56320 | 1023 & r)) - } - } else a += String.fromCharCode(r) - } - e = a - } - } else e = ""; - return e + } + case Uw: { + const { + conference: n, + id: a + } = t.participant, { + fakeParticipants: r, + remote: i, + local: o, + dominantSpeaker: s, + pinnedParticipant: l + } = e; + let c = i.get(a); + if (c && c.conference === n) i.delete(a); + else { + if ((null == o ? void 0 : o.id) !== a) return e; + c = e.local, delete e.local } - - function I(e, t, n, a) { - if (!(0 < a)) return 0; - var r = n; - a = n + a - 1; - for (var i = 0; i < e.length; ++i) { - var o = e.charCodeAt(i); - if (55296 <= o && 57343 >= o && (o = 65536 + ((1023 & o) << 10) | 1023 & e.charCodeAt(++i)), 127 >= o) { - if (n >= a) break; - t[n++] = o - } else { - if (2047 >= o) { - if (n + 1 >= a) break; - t[n++] = 192 | o >> 6 - } else { - if (65535 >= o) { - if (n + 2 >= a) break; - t[n++] = 224 | o >> 12 - } else { - if (n + 3 >= a) break; - t[n++] = 240 | o >> 18, t[n++] = 128 | o >> 12 & 63 - } - t[n++] = 128 | o >> 6 & 63 + e.sortedRemoteParticipants.delete(a), e.raisedHandsQueue = e.raisedHandsQueue.filter((e => e.id !== a)), e.everyoneIsModerator || Qh(c) || (e.everyoneIsModerator = Xoe(e)); + const { + features: u = {} + } = c || {}; + if (e.haveParticipantWithScreenSharingFeature && "true" === String(u["screen-sharing"])) { + const { + features: t = {} + } = e.local || {}; + if ("true" !== String(t["screen-sharing"])) { + e.haveParticipantWithScreenSharingFeature = !1; + for (const [t, n] of e.remote) { + const { + features: t = {} + } = n; + if ("true" === String(t["screen-sharing"])) { + e.haveParticipantWithScreenSharingFeature = !0; + break } - t[n++] = 128 | 63 & o } } - return t[n] = 0, n - r - } - - function N(e) { - for (var t = 0, n = 0; n < e.length; ++n) { - var a = e.charCodeAt(n); - 55296 <= a && 57343 >= a && (a = 65536 + ((1023 & a) << 10) | 1023 & e.charCodeAt(++n)), 127 >= a ? ++t : t = 2047 >= a ? t + 2 : 65535 >= a ? t + 3 : t + 4 - } - return t } - - function z(e, t) { - for (var n = 0; n < e.length; ++n) L[t++ >> 0] = e.charCodeAt(n) + return s === a && (e.dominantSpeaker = void 0), e.speakersList.has(a) && e.speakersList.delete(a), l === a && (e.pinnedParticipant = void 0), r.has(a) && r.delete(a), { + ...e } - var R, L, F, q, B, U, H, V = o.INITIAL_MEMORY || 262144; - (P = o.wasmMemory ? o.wasmMemory : new WebAssembly.Memory({ - initial: V / 65536, - maximum: V / 65536 - })) && (R = P.buffer), V = R.byteLength; - var W = R; - - function Y(e) { - for (; 0 < e.length;) { - var t = e.shift(); - if ("function" == typeof t) t(o); - else { - var n = t.Pb; - "number" == typeof n ? void 0 === t.Ob ? o.dynCall_v(n) : o.dynCall_vi(n, t.Ob) : n(void 0 === t.Ob ? null : t.Ob) - } - } + } + case $w: + return { + ...e, raisedHandsQueue: t.queue + }; + case mS: { + const { + participantIds: n + } = t, a = []; + for (const t of n) { + const n = e.remote.get(t); + if (n) { + const r = Qoe(e, n.name); + a.push([t, r]) + } + } + return a.length && a.sort(((e, t) => e[1].localeCompare(t[1]))), e.sortedRemoteScreenshares = new Map(a), { + ...e + } + } + } + return e + })); + const { + innerHeight: ase = 0, + innerWidth: rse = 0 + } = window, ise = { + aspectRatio: uX, + clientHeight: ase, + clientWidth: rse, + reducedUI: !1, + contextMenuOpened: !1 + }; et.register("features/base/responsive-ui", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ise, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case A3: + return { + ...e, clientWidth: t.clientWidth, clientHeight: t.clientHeight + }; + case T3: + return ze(e, "aspectRatio", t.aspectRatio); + case D3: + return ze(e, "reducedUI", t.reducedUI); + case P3: + return ze(e, "contextMenuOpened", t.isOpen) + } + return e + })); + const ose = { + audioOutputDeviceId: void 0, + avatarURL: void 0, + cameraDeviceId: void 0, + disableCallIntegration: void 0, + disableCrashReporting: void 0, + disableP2P: void 0, + disableSelfView: !1, + displayName: void 0, + email: void 0, + localFlipX: !0, + micDeviceId: void 0, + serverURL: void 0, + hideShareAudioHelper: !1, + soundsIncomingMessage: !0, + soundsParticipantJoined: !0, + soundsParticipantLeft: !0, + soundsTalkWhileMuted: !0, + soundsReactions: !0, + startAudioOnly: !1, + startWithAudioMuted: !1, + startWithVideoMuted: !1, + userSelectedAudioOutputDeviceId: void 0, + userSelectedCameraDeviceId: void 0, + userSelectedMicDeviceId: void 0, + userSelectedAudioOutputDeviceLabel: void 0, + userSelectedCameraDeviceLabel: void 0, + userSelectedMicDeviceLabel: void 0, + userSelectedSkipPrejoin: void 0 + }, sse = "features/base/settings", lse = {}; + + function cse(e) { + let t = e; + const n = l.getItem("displayname"), + a = l.getItem("email"); + return t = function(e, t) { + const n = Object(e); + for (const e in t) + if (t.hasOwnProperty(e)) { + const a = t[e]; + void 0 !== a && (n[e] = a) + } return n + }({ + displayName: null === n ? void 0 : _().escape(n), + email: null === a ? void 0 : _().escape(a) + }, t), t + } + Object.keys(ose).forEach((e => { + lse[e] = !0 + })), lse.audioOutputDeviceId = !1, lse.cameraDeviceId = !1, lse.micDeviceId = !1, Xe.register(sse, lse, ose), et.register(sse, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ose, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Va: + return cse(e); + case pn: + return { + ...e, ...t.settings } - R = W, o.HEAP8 = L = new Int8Array(W), o.HEAP16 = q = new Int16Array(W), o.HEAP32 = B = new Int32Array(W), o.HEAPU8 = F = new Uint8Array(W), o.HEAPU16 = new Uint16Array(W), o.HEAPU32 = new Uint32Array(W), o.HEAPF32 = U = new Float32Array(W), o.HEAPF64 = H = new Float64Array(W), B[9592] = 104064; - var G = [], - K = [], - $ = [], - J = []; + } + return e + })); + const use = new Map; - function Z() { - var e = o.preRun.shift(); - G.unshift(e) - } - var Q = Math.abs, - X = Math.ceil, - ee = (Math.floor, Math.min, 0), - te = null, - ne = null; + function dse(e, t) { + const n = t.type === Ci, + a = new Map(e), + { + soundId: r + } = t, + i = a.get(r); + return i ? n ? a.set(r, Oe(i, { + audioElement: t.audioElement + })) : a.set(r, Oe(i, { + audioElement: void 0 + })) : Dae.warn(`${t.type}: no sound for id: ${r}`), a + } - function ae(e) { - throw o.onAbort && o.onAbort(e), x(e), C(e), T = !0, new WebAssembly.RuntimeError("abort(" + e + "). Build with -s ASSERTIONS=1 for more info.") - } + function pse(e, t) { + const n = new Map(e); + return n.set(t.soundId, { + src: t.src, + options: t.options + }), n + } - function re(e) { - var t = se; - return String.prototype.startsWith ? t.startsWith(e) : 0 === t.indexOf(e) - } + function hse(e, t) { + const n = new Map(e); + return n.delete(t.soundId), n + } + et.register("features/base/sounds", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : use, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Ci: + case Ai: + return dse(e, t); + case Di: + return pse(e, t); + case ji: + return hse(e, t); + default: + return e + } + })); + const mse = { + connectionState: "" + }; - function ie() { - return re("data:application/octet-stream;base64,") - } - o.preloadedImages = {}, o.preloadedAudios = {}; - var oe, se = "olm.wasm"; - if (!ie()) { - var le = se; - se = o.locateFile ? o.locateFile(le, S) : S + le - } + function fse(e, t) { + return Oe(e, { + connectionState: t.connectionState + }) + } - function ce() { - try { - if (E) return new Uint8Array(E); - if (k) return k(se); - throw "both async and sync fetching of the wasm failed" - } catch (e) { - ae(e) + function gse(e, t) { + switch (t.type) { + case Fw: + if (e.participantId === t.oldValue) return { + ...e, + participantId: t.newValue + }; + break; + case gp: { + const n = t.track; + if (e.jitsiTrack === n.jitsiTrack) + for (const t in n) + if (e[t] !== n[t]) return { + ...e, + ...n + }; + break + } + case yp: { + const n = t.track; + if (e.jitsiTrack === n && e.lastMediaEvent !== t.name) return { + ...e, + lastMediaEvent: t.name + }; + break + } + case hp: { + const n = t.track; + if (e.jitsiTrack === n.jitsiTrack) { + const t = n.jitsiTrack.isReceivingData(); + if (e.isReceivingData !== t) return { + ...e, + isReceivingData: t } } - K.push({ - Pb: function() { - de() - } - }); - var ue = { - c: function(e, t, n, a) { - ae("Assertion failed: " + M(e) + ", at: " + [t ? M(t) : "unknown filename", n, a ? M(a) : "unknown function"]) - }, - a: function(e, t, n) { - F.copyWithin(e, t, t + n) - }, - b: function() { - ae("OOM") - }, - memory: P, - table: D + break + } + } + return e + } + et.register("features/testing", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : mse, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === Pae ? fse(e, t) : e + })), et.register("features/base/tracks", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Fw: + case hp: + case yp: + case gp: + return e.map((e => gse(e, t))); + case up: { + let n = e; + return t.track.local && (n = e.filter((e => !e.local || e.mediaType !== t.track.mediaType))), [...n, t.track] + } + case dp: + case pp: + return e.filter((e => !e.local || e.mediaType !== t.trackType)); + case mp: + return e.filter((e => e.jitsiTrack !== t.track.jitsiTrack)); + case bp: + return [...e, t.track]; + default: + return e + } + })), et.register("features/base/no-src-data", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === lp ? ze(e, "noSrcDataNotificationUid", t.uid) : e + })), et.register("features/base/user-interaction", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Va: + case Wa: + return { + ...e, interacted: !1 }; - ! function() { - function e(e) { - o.asm = e.exports, ee--, o.monitorRunDependencies && o.monitorRunDependencies(ee), 0 == ee && (null !== te && (clearInterval(te), te = null), ne && (e = ne, ne = null, e())) - } - - function t(t) { - e(t.instance) - } - - function n(e) { - return (E || !m && !f || "function" != typeof fetch || re("file://") ? new Promise((function(e) { - e(ce()) - })) : fetch(se, { - credentials: "same-origin" - }).then((function(e) { - if (!e.ok) throw "failed to load wasm binary file at '" + se + "'"; - return e.arrayBuffer() - })).catch((function() { - return ce() - }))).then((function(e) { - return WebAssembly.instantiate(e, a) - })).then(e, (function(e) { - C("failed to asynchronously prepare wasm: " + e), ae(e) - })) - } - var a = { - a: ue - }; - if (ee++, o.monitorRunDependencies && o.monitorRunDependencies(ee), o.instantiateWasm) try { - return o.instantiateWasm(a, e) - } catch (e) { - return C("Module.instantiateWasm callback failed with error: " + e), !1 - }! function() { - if (E || "function" != typeof WebAssembly.instantiateStreaming || ie() || re("file://") || "function" != typeof fetch) return n(t); - fetch(se, { - credentials: "same-origin" - }).then((function(e) { - return WebAssembly.instantiateStreaming(e, a).then(t, (function(e) { - return C("wasm streaming compile failed: " + e), C("falling back to ArrayBuffer instantiation"), n(t) - })) - })) - }() - }(); - var de = o.___wasm_call_ctors = function() { - return (de = o.___wasm_call_ctors = o.asm.d).apply(null, arguments) + case Rae: + return { + ...e, interacted: !0 + } + } + return e + })); + const bse = { + rooms: {}, + roomCounter: 0 + }; et.register(ym, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : bse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case c2: + return { + ...e, roomCounter: t.roomCounter }; - o._olm_get_library_version = function() { - return (o._olm_get_library_version = o.asm.e).apply(null, arguments) - }, o._olm_error = function() { - return (o._olm_error = o.asm.f).apply(null, arguments) - }, o._olm_account_last_error = function() { - return (o._olm_account_last_error = o.asm.g).apply(null, arguments) - }, o._olm_session_last_error = function() { - return (o._olm_session_last_error = o.asm.h).apply(null, arguments) - }, o._olm_utility_last_error = function() { - return (o._olm_utility_last_error = o.asm.i).apply(null, arguments) - }, o._olm_account_size = function() { - return (o._olm_account_size = o.asm.j).apply(null, arguments) - }, o._olm_session_size = function() { - return (o._olm_session_size = o.asm.k).apply(null, arguments) - }, o._olm_utility_size = function() { - return (o._olm_utility_size = o.asm.l).apply(null, arguments) - }, o._olm_account = function() { - return (o._olm_account = o.asm.m).apply(null, arguments) - }, o._olm_session = function() { - return (o._olm_session = o.asm.n).apply(null, arguments) - }, o._olm_utility = function() { - return (o._olm_utility = o.asm.o).apply(null, arguments) - }, o._olm_clear_account = function() { - return (o._olm_clear_account = o.asm.p).apply(null, arguments) - }, o._olm_clear_session = function() { - return (o._olm_clear_session = o.asm.q).apply(null, arguments) - }, o._olm_clear_utility = function() { - return (o._olm_clear_utility = o.asm.r).apply(null, arguments) - }, o._olm_pickle_account_length = function() { - return (o._olm_pickle_account_length = o.asm.s).apply(null, arguments) - }, o._olm_pickle_session_length = function() { - return (o._olm_pickle_session_length = o.asm.t).apply(null, arguments) - }, o._olm_pickle_account = function() { - return (o._olm_pickle_account = o.asm.u).apply(null, arguments) - }, o._olm_pickle_session = function() { - return (o._olm_pickle_session = o.asm.v).apply(null, arguments) - }, o._olm_unpickle_account = function() { - return (o._olm_unpickle_account = o.asm.w).apply(null, arguments) - }, o._olm_unpickle_session = function() { - return (o._olm_unpickle_session = o.asm.x).apply(null, arguments) - }, o._olm_create_account_random_length = function() { - return (o._olm_create_account_random_length = o.asm.y).apply(null, arguments) - }, o._olm_create_account = function() { - return (o._olm_create_account = o.asm.z).apply(null, arguments) - }, o._olm_account_identity_keys_length = function() { - return (o._olm_account_identity_keys_length = o.asm.A).apply(null, arguments) - }, o._olm_account_identity_keys = function() { - return (o._olm_account_identity_keys = o.asm.B).apply(null, arguments) - }, o._olm_account_signature_length = function() { - return (o._olm_account_signature_length = o.asm.C).apply(null, arguments) - }, o._olm_account_sign = function() { - return (o._olm_account_sign = o.asm.D).apply(null, arguments) - }, o._olm_account_one_time_keys_length = function() { - return (o._olm_account_one_time_keys_length = o.asm.E).apply(null, arguments) - }, o._olm_account_one_time_keys = function() { - return (o._olm_account_one_time_keys = o.asm.F).apply(null, arguments) - }, o._olm_account_mark_keys_as_published = function() { - return (o._olm_account_mark_keys_as_published = o.asm.G).apply(null, arguments) - }, o._olm_account_max_number_of_one_time_keys = function() { - return (o._olm_account_max_number_of_one_time_keys = o.asm.H).apply(null, arguments) - }, o._olm_account_generate_one_time_keys_random_length = function() { - return (o._olm_account_generate_one_time_keys_random_length = o.asm.I).apply(null, arguments) - }, o._olm_account_generate_one_time_keys = function() { - return (o._olm_account_generate_one_time_keys = o.asm.J).apply(null, arguments) - }, o._olm_account_generate_fallback_key_random_length = function() { - return (o._olm_account_generate_fallback_key_random_length = o.asm.K).apply(null, arguments) - }, o._olm_account_generate_fallback_key = function() { - return (o._olm_account_generate_fallback_key = o.asm.L).apply(null, arguments) - }, o._olm_account_fallback_key_length = function() { - return (o._olm_account_fallback_key_length = o.asm.M).apply(null, arguments) - }, o._olm_account_fallback_key = function() { - return (o._olm_account_fallback_key = o.asm.N).apply(null, arguments) - }, o._olm_create_outbound_session_random_length = function() { - return (o._olm_create_outbound_session_random_length = o.asm.O).apply(null, arguments) - }, o._olm_create_outbound_session = function() { - return (o._olm_create_outbound_session = o.asm.P).apply(null, arguments) - }, o._olm_create_inbound_session = function() { - return (o._olm_create_inbound_session = o.asm.Q).apply(null, arguments) - }, o._olm_create_inbound_session_from = function() { - return (o._olm_create_inbound_session_from = o.asm.R).apply(null, arguments) - }, o._olm_session_id_length = function() { - return (o._olm_session_id_length = o.asm.S).apply(null, arguments) - }, o._olm_session_id = function() { - return (o._olm_session_id = o.asm.T).apply(null, arguments) - }, o._olm_session_has_received_message = function() { - return (o._olm_session_has_received_message = o.asm.U).apply(null, arguments) - }, o._olm_session_describe = function() { - return (o._olm_session_describe = o.asm.V).apply(null, arguments) - }, o._olm_matches_inbound_session = function() { - return (o._olm_matches_inbound_session = o.asm.W).apply(null, arguments) - }, o._olm_matches_inbound_session_from = function() { - return (o._olm_matches_inbound_session_from = o.asm.X).apply(null, arguments) - }, o._olm_remove_one_time_keys = function() { - return (o._olm_remove_one_time_keys = o.asm.Y).apply(null, arguments) - }, o._olm_encrypt_message_type = function() { - return (o._olm_encrypt_message_type = o.asm.Z).apply(null, arguments) - }, o._olm_encrypt_random_length = function() { - return (o._olm_encrypt_random_length = o.asm._).apply(null, arguments) - }, o._olm_encrypt_message_length = function() { - return (o._olm_encrypt_message_length = o.asm.$).apply(null, arguments) - }, o._olm_encrypt = function() { - return (o._olm_encrypt = o.asm.aa).apply(null, arguments) - }, o._olm_decrypt_max_plaintext_length = function() { - return (o._olm_decrypt_max_plaintext_length = o.asm.ba).apply(null, arguments) - }, o._olm_decrypt = function() { - return (o._olm_decrypt = o.asm.ca).apply(null, arguments) - }, o._olm_sha256_length = function() { - return (o._olm_sha256_length = o.asm.da).apply(null, arguments) - }, o._olm_sha256 = function() { - return (o._olm_sha256 = o.asm.ea).apply(null, arguments) - }, o._olm_ed25519_verify = function() { - return (o._olm_ed25519_verify = o.asm.fa).apply(null, arguments) - }, o._olm_pk_encryption_last_error = function() { - return (o._olm_pk_encryption_last_error = o.asm.ga).apply(null, arguments) - }, o._olm_pk_encryption_size = function() { - return (o._olm_pk_encryption_size = o.asm.ha).apply(null, arguments) - }, o._olm_pk_encryption = function() { - return (o._olm_pk_encryption = o.asm.ia).apply(null, arguments) - }, o._olm_clear_pk_encryption = function() { - return (o._olm_clear_pk_encryption = o.asm.ja).apply(null, arguments) - }, o._olm_pk_encryption_set_recipient_key = function() { - return (o._olm_pk_encryption_set_recipient_key = o.asm.ka).apply(null, arguments) - }, o._olm_pk_key_length = function() { - return (o._olm_pk_key_length = o.asm.la).apply(null, arguments) - }, o._olm_pk_ciphertext_length = function() { - return (o._olm_pk_ciphertext_length = o.asm.ma).apply(null, arguments) - }, o._olm_pk_mac_length = function() { - return (o._olm_pk_mac_length = o.asm.na).apply(null, arguments) - }, o._olm_pk_encrypt_random_length = function() { - return (o._olm_pk_encrypt_random_length = o.asm.oa).apply(null, arguments) - }, o._olm_pk_encrypt = function() { - return (o._olm_pk_encrypt = o.asm.pa).apply(null, arguments) - }, o._olm_pk_decryption_last_error = function() { - return (o._olm_pk_decryption_last_error = o.asm.qa).apply(null, arguments) - }, o._olm_pk_decryption_size = function() { - return (o._olm_pk_decryption_size = o.asm.ra).apply(null, arguments) - }, o._olm_pk_decryption = function() { - return (o._olm_pk_decryption = o.asm.sa).apply(null, arguments) - }, o._olm_clear_pk_decryption = function() { - return (o._olm_clear_pk_decryption = o.asm.ta).apply(null, arguments) - }, o._olm_pk_private_key_length = function() { - return (o._olm_pk_private_key_length = o.asm.ua).apply(null, arguments) - }, o._olm_pk_generate_key_random_length = function() { - return (o._olm_pk_generate_key_random_length = o.asm.va).apply(null, arguments) - }, o._olm_pk_key_from_private = function() { - return (o._olm_pk_key_from_private = o.asm.wa).apply(null, arguments) - }, o._olm_pk_generate_key = function() { - return (o._olm_pk_generate_key = o.asm.xa).apply(null, arguments) - }, o._olm_pickle_pk_decryption_length = function() { - return (o._olm_pickle_pk_decryption_length = o.asm.ya).apply(null, arguments) - }, o._olm_pickle_pk_decryption = function() { - return (o._olm_pickle_pk_decryption = o.asm.za).apply(null, arguments) - }, o._olm_unpickle_pk_decryption = function() { - return (o._olm_unpickle_pk_decryption = o.asm.Aa).apply(null, arguments) - }, o._olm_pk_max_plaintext_length = function() { - return (o._olm_pk_max_plaintext_length = o.asm.Ba).apply(null, arguments) - }, o._olm_pk_decrypt = function() { - return (o._olm_pk_decrypt = o.asm.Ca).apply(null, arguments) - }, o._olm_pk_get_private_key = function() { - return (o._olm_pk_get_private_key = o.asm.Da).apply(null, arguments) - }, o._olm_pk_signing_size = function() { - return (o._olm_pk_signing_size = o.asm.Ea).apply(null, arguments) - }, o._olm_pk_signing = function() { - return (o._olm_pk_signing = o.asm.Fa).apply(null, arguments) - }, o._olm_pk_signing_last_error = function() { - return (o._olm_pk_signing_last_error = o.asm.Ga).apply(null, arguments) - }, o._olm_clear_pk_signing = function() { - return (o._olm_clear_pk_signing = o.asm.Ha).apply(null, arguments) - }, o._olm_pk_signing_seed_length = function() { - return (o._olm_pk_signing_seed_length = o.asm.Ia).apply(null, arguments) - }, o._olm_pk_signing_public_key_length = function() { - return (o._olm_pk_signing_public_key_length = o.asm.Ja).apply(null, arguments) - }, o._olm_pk_signing_key_from_seed = function() { - return (o._olm_pk_signing_key_from_seed = o.asm.Ka).apply(null, arguments) - }, o._olm_pk_signature_length = function() { - return (o._olm_pk_signature_length = o.asm.La).apply(null, arguments) - }, o._olm_pk_sign = function() { - return (o._olm_pk_sign = o.asm.Ma).apply(null, arguments) - }, o._olm_inbound_group_session_size = function() { - return (o._olm_inbound_group_session_size = o.asm.Na).apply(null, arguments) - }, o._olm_inbound_group_session = function() { - return (o._olm_inbound_group_session = o.asm.Oa).apply(null, arguments) - }, o._olm_clear_inbound_group_session = function() { - return (o._olm_clear_inbound_group_session = o.asm.Pa).apply(null, arguments) - }, o._olm_inbound_group_session_last_error = function() { - return (o._olm_inbound_group_session_last_error = o.asm.Qa).apply(null, arguments) - }, o._olm_init_inbound_group_session = function() { - return (o._olm_init_inbound_group_session = o.asm.Ra).apply(null, arguments) - }, o._olm_import_inbound_group_session = function() { - return (o._olm_import_inbound_group_session = o.asm.Sa).apply(null, arguments) - }, o._olm_pickle_inbound_group_session_length = function() { - return (o._olm_pickle_inbound_group_session_length = o.asm.Ta).apply(null, arguments) - }, o._olm_pickle_inbound_group_session = function() { - return (o._olm_pickle_inbound_group_session = o.asm.Ua).apply(null, arguments) - }, o._olm_unpickle_inbound_group_session = function() { - return (o._olm_unpickle_inbound_group_session = o.asm.Va).apply(null, arguments) - }, o._olm_group_decrypt_max_plaintext_length = function() { - return (o._olm_group_decrypt_max_plaintext_length = o.asm.Wa).apply(null, arguments) - }, o._olm_group_decrypt = function() { - return (o._olm_group_decrypt = o.asm.Xa).apply(null, arguments) - }, o._olm_inbound_group_session_id_length = function() { - return (o._olm_inbound_group_session_id_length = o.asm.Ya).apply(null, arguments) - }, o._olm_inbound_group_session_id = function() { - return (o._olm_inbound_group_session_id = o.asm.Za).apply(null, arguments) - }, o._olm_inbound_group_session_first_known_index = function() { - return (o._olm_inbound_group_session_first_known_index = o.asm._a).apply(null, arguments) - }, o._olm_inbound_group_session_is_verified = function() { - return (o._olm_inbound_group_session_is_verified = o.asm.$a).apply(null, arguments) - }, o._olm_export_inbound_group_session_length = function() { - return (o._olm_export_inbound_group_session_length = o.asm.ab).apply(null, arguments) - }, o._olm_export_inbound_group_session = function() { - return (o._olm_export_inbound_group_session = o.asm.bb).apply(null, arguments) - }, o._olm_sas_last_error = function() { - return (o._olm_sas_last_error = o.asm.cb).apply(null, arguments) - }, o._olm_sas_size = function() { - return (o._olm_sas_size = o.asm.db).apply(null, arguments) - }, o._olm_sas = function() { - return (o._olm_sas = o.asm.eb).apply(null, arguments) - }, o._olm_clear_sas = function() { - return (o._olm_clear_sas = o.asm.fb).apply(null, arguments) - }, o._olm_create_sas_random_length = function() { - return (o._olm_create_sas_random_length = o.asm.gb).apply(null, arguments) - }, o._olm_create_sas = function() { - return (o._olm_create_sas = o.asm.hb).apply(null, arguments) - }, o._olm_sas_pubkey_length = function() { - return (o._olm_sas_pubkey_length = o.asm.ib).apply(null, arguments) - }, o._olm_sas_get_pubkey = function() { - return (o._olm_sas_get_pubkey = o.asm.jb).apply(null, arguments) - }, o._olm_sas_set_their_key = function() { - return (o._olm_sas_set_their_key = o.asm.kb).apply(null, arguments) - }, o._olm_sas_is_their_key_set = function() { - return (o._olm_sas_is_their_key_set = o.asm.lb).apply(null, arguments) - }, o._olm_sas_generate_bytes = function() { - return (o._olm_sas_generate_bytes = o.asm.mb).apply(null, arguments) - }, o._olm_sas_mac_length = function() { - return (o._olm_sas_mac_length = o.asm.nb).apply(null, arguments) - }, o._olm_sas_calculate_mac_fixed_base64 = function() { - return (o._olm_sas_calculate_mac_fixed_base64 = o.asm.ob).apply(null, arguments) - }, o._olm_sas_calculate_mac = function() { - return (o._olm_sas_calculate_mac = o.asm.pb).apply(null, arguments) - }, o._olm_sas_calculate_mac_long_kdf = function() { - return (o._olm_sas_calculate_mac_long_kdf = o.asm.qb).apply(null, arguments) - }, o._olm_outbound_group_session_size = function() { - return (o._olm_outbound_group_session_size = o.asm.rb).apply(null, arguments) - }, o._olm_outbound_group_session = function() { - return (o._olm_outbound_group_session = o.asm.sb).apply(null, arguments) - }, o._olm_clear_outbound_group_session = function() { - return (o._olm_clear_outbound_group_session = o.asm.tb).apply(null, arguments) - }, o._olm_outbound_group_session_last_error = function() { - return (o._olm_outbound_group_session_last_error = o.asm.ub).apply(null, arguments) - }, o._olm_pickle_outbound_group_session_length = function() { - return (o._olm_pickle_outbound_group_session_length = o.asm.vb).apply(null, arguments) - }, o._olm_pickle_outbound_group_session = function() { - return (o._olm_pickle_outbound_group_session = o.asm.wb).apply(null, arguments) - }, o._olm_unpickle_outbound_group_session = function() { - return (o._olm_unpickle_outbound_group_session = o.asm.xb).apply(null, arguments) - }, o._olm_init_outbound_group_session_random_length = function() { - return (o._olm_init_outbound_group_session_random_length = o.asm.yb).apply(null, arguments) - }, o._olm_init_outbound_group_session = function() { - return (o._olm_init_outbound_group_session = o.asm.zb).apply(null, arguments) - }, o._olm_group_encrypt_message_length = function() { - return (o._olm_group_encrypt_message_length = o.asm.Ab).apply(null, arguments) - }, o._olm_group_encrypt = function() { - return (o._olm_group_encrypt = o.asm.Bb).apply(null, arguments) - }, o._olm_outbound_group_session_id_length = function() { - return (o._olm_outbound_group_session_id_length = o.asm.Cb).apply(null, arguments) - }, o._olm_outbound_group_session_id = function() { - return (o._olm_outbound_group_session_id = o.asm.Db).apply(null, arguments) - }, o._olm_outbound_group_session_message_index = function() { - return (o._olm_outbound_group_session_message_index = o.asm.Eb).apply(null, arguments) - }, o._olm_outbound_group_session_key_length = function() { - return (o._olm_outbound_group_session_key_length = o.asm.Fb).apply(null, arguments) - }, o._olm_outbound_group_session_key = function() { - return (o._olm_outbound_group_session_key = o.asm.Gb).apply(null, arguments) - }, o._malloc = function() { - return (o._malloc = o.asm.Hb).apply(null, arguments) - }, o._free = function() { - return (o._free = o.asm.Ib).apply(null, arguments) + case u2: { + const { + roomCounter: n, + rooms: a + } = t; + return { + ...e, + roomCounter: n, + rooms: a + } + } + case l2: + return bse + } + return e + })); + const yse = { + authorization: void 0, + events: [], + integrationReady: !1, + integrationType: void 0, + msAuthState: void 0 + }, vse = "features/calendar-sync"; Xe.register(vse, { + integrationType: !0, + msAuthState: !0 + }), et.register(vse, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : yse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case oJ: + return yse; + case pJ: + return t.msAuthState ? ze(e, "msAuthState", { + ...e.msAuthState, + ...t.msAuthState + }) : ze(e, "msAuthState", void 0); + case lJ: + return ze(e, "authorization", t.authorization); + case cJ: + return ze(e, "error", t.error); + case uJ: + return ze(e, "events", t.events); + case dJ: + return { + ...e, integrationReady: t.integrationReady, integrationType: t.integrationType }; - var pe, he = o.stackSave = function() { - return (he = o.stackSave = o.asm.Jb).apply(null, arguments) - }, - me = o.stackRestore = function() { - return (me = o.stackRestore = o.asm.Kb).apply(null, arguments) + case hJ: + return ze(e, "profileEmail", t.email); + case mJ: + return ze(e, "isLoadingEvents", t.isLoadingEvents) + } + return e + })); + const kse = { + isOpen: !1, + isPollsTabFocused: !1, + lastReadMessage: void 0, + lastReadPoll: void 0, + messages: [], + nbUnreadMessages: 0, + privateMessageRecipient: void 0 + }; et.register("features/chat", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : kse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case VH: { + const n = { + displayName: t.displayName, + error: t.error, + id: t.id, + isReaction: t.isReaction, + messageType: t.messageType, + message: t.message, + privateMessage: t.privateMessage, + recipient: t.recipient, + timestamp: t.timestamp }, - fe = o.stackAlloc = function() { - return (fe = o.stackAlloc = o.asm.Lb).apply(null, arguments) - }; - - function ge() { - function e() { - if (!pe && (pe = !0, o.calledRun = !0, !T)) { - if (Y(K), Y($), l(o), o.onRuntimeInitialized && o.onRuntimeInitialized(), o.postRun) - for ("function" == typeof o.postRun && (o.postRun = [o.postRun]); o.postRun.length;) { - var e = o.postRun.shift(); - J.unshift(e) - } - Y(J) - } - } - if (!(0 < ee)) { - if (o.preRun) - for ("function" == typeof o.preRun && (o.preRun = [o.preRun]); o.preRun.length;) Z(); - Y(G), 0 < ee || (o.setStatus ? (o.setStatus("Running..."), setTimeout((function() { - setTimeout((function() { - o.setStatus("") - }), 1), e() - }), 1)) : e()) - } + a = "ReactNative" === navigator.product ? [n, ...e.messages] : [...e.messages, n]; + return { + ...e, + lastReadMessage: t.hasRead ? n : e.lastReadMessage, + nbUnreadMessages: e.isPollsTabFocused ? e.nbUnreadMessages + 1 : e.nbUnreadMessages, + messages: a } - if (o.ALLOC_STACK = 1, ne = function e() { - pe || ge(), pe || (ne = e) - }, o.run = ge, o.preInit) - for ("function" == typeof o.preInit && (o.preInit = [o.preInit]); 0 < o.preInit.length;) o.preInit.pop()(); - - function be() { - var e = o._olm_outbound_group_session_size(); - this.Nb = De(e), this.Mb = o._olm_outbound_group_session(this.Nb) + } + case WH: + return { + ...e, lastReadMessage: void 0, messages: [] + }; + case $H: + return { + ...e, privateMessageRecipient: t.participant + }; + case GH: + return { + ...e, isOpen: !0, privateMessageRecipient: t.participant + }; + case YH: + return { + ...e, isOpen: !1, lastReadMessage: e.messages["ReactNative" === navigator.product ? 0 : e.messages.length - 1], privateMessageRecipient: t.participant + }; + case JH: + return { + ...e, isPollsTabFocused: t.isPollsTabFocused, nbUnreadMessages: 0 } + } + return e + })), et.register("features/deep-linking", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === Uae ? { + ...e, + launchInWeb: !0 + } : e + })); + const _se = "features/dropbox"; Xe.register(_se), et.register(_se, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === iU ? { + ...e, + token: t.token, + rToken: t.rToken, + expireDate: t.expireDate + } : e + })); + const wse = { + avatarBackgrounds: [], + backgroundColor: "", + backgroundImageUrl: "", + customizationReady: !1, + customizationFailed: !1, + defaultBranding: !0, + didPageUrl: "", + inviteDomain: "", + logoClickUrl: "", + logoImageUrl: "", + muiBrandedTheme: void 0, + premeetingBackground: "", + useDynamicBrandingData: !1, + virtualBackgrounds: [] + }; - function ye(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_outbound_group_session_last_error(arguments[0])), Error("OLM." + t); - return t - } + function Sse(e) { + return e.map(((e, t) => { + let n, a; + return "object" == typeof e ? ({ + src: n, + tooltip: a + } = e) : n = e, { + id: `branding-${t}`, + src: n, + tooltip: a + } + })) + } + et.register("features/dynamic-branding", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : wse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case JY: { + const { + avatarBackgrounds: e, + backgroundColor: n, + backgroundImageUrl: a, + defaultBranding: r, + didPageUrl: i, + inviteDomain: o, + logoClickUrl: s, + logoImageUrl: l, + muiBrandedTheme: c, + premeetingBackground: u, + virtualBackgrounds: d + } = t.value; + return { + avatarBackgrounds: e, + backgroundColor: n, + backgroundImageUrl: a, + defaultBranding: r, + didPageUrl: i, + inviteDomain: o, + logoClickUrl: s, + logoImageUrl: l, + muiBrandedTheme: c, + premeetingBackground: u, + customizationFailed: !1, + customizationReady: !0, + useDynamicBrandingData: !0, + virtualBackgrounds: Sse(d || []) + } + } + case ZY: + return { + ...e, customizationReady: !0, customizationFailed: !0, useDynamicBrandingData: !0 + }; + case QY: + return { + ...e, customizationReady: !0 + } + } + return e + })); + const Ese = { + documentUrl: void 0, + editing: !1 + }; et.register("features/etherpad", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Ese, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case p1: + return { + ...e, editing: t.editing + }; + case h1: + return { + ...e, documentUrl: t.documentUrl + }; + default: + return e + } + })); + const xse = { + enabled: !0, + horizontalViewDimensions: {}, + participantsVolume: {}, + remoteParticipants: [], + tileViewDimensions: {}, + verticalViewDimensions: {}, + visible: !0, + visibleParticipantsEndIndex: 0, + visibleParticipantsStartIndex: 0, + visibleRemoteParticipants: new Set + }; et.register("features/filmstrip", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : xse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case _S: + return { + ...e, enabled: t.enabled + }; + case wS: + return { + ...e, visible: t.visible + }; + case ES: + return { + ...e, horizontalViewDimensions: t.dimensions + }; + case xS: { + e.remoteParticipants = t.participants; + const { + visibleParticipantsStartIndex: n, + visibleParticipantsEndIndex: a + } = e; + return e.visibleRemoteParticipants = new Set(e.remoteParticipants.slice(n, a + 1)), { + ...e } - - function ve() { - var e = o._olm_inbound_group_session_size(); - this.Nb = De(e), this.Mb = o._olm_inbound_group_session(this.Nb) + } + case SS: + return { + ...e, tileViewDimensions: t.dimensions + }; + case CS: + return { + ...e, verticalViewDimensions: t.dimensions + }; + case AS: + return { + ...e, participantsVolume: { + ...e.participantsVolume, + [t.participantId]: t.volume + } + }; + case TS: + return { + ...e, visibleParticipantsStartIndex: t.startIndex, visibleParticipantsEndIndex: t.endIndex, visibleRemoteParticipants: new Set(e.remoteParticipants.slice(t.startIndex, t.endIndex + 1)) + }; + case Uw: { + const { + id: n, + local: a + } = t.participant; + return a ? e : (delete e.participantsVolume[n], { + ...e + }) + } + } + return e + })), et.register("features/follow-me", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case tre: { + let n = ze(e, "moderator", t.id); + return t.id || (n = ze(n, "state", void 0)), n + } + case nre: + return ze(e, "state", t.state) + } + return e + })); + const Cse = { + googleAPIState: J$.NEEDS_LOADING, + profileEmail: "" + }; et.register("features/google-api", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Cse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case G$: + return { + ...e, googleAPIState: t.googleAPIState, googleResponse: t.googleResponse + }; + case K$: + return { + ...e, profileEmail: t.profileEmail + } + } + return e + })); + const Ase = { + calleeInfoVisible: !1, + numbersEnabled: !0, + numbersFetched: !1, + pendingInviteRequests: [] + }; et.register("features/invite", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Ase, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case LY: + return { + ...e, pendingInviteRequests: [...e.pendingInviteRequests, t.request] + }; + case qY: + return { + ...e, pendingInviteRequests: [] + }; + case BY: + return { + ...e, calleeInfoVisible: t.calleeInfoVisible, initialCalleeInfo: t.initialCalleeInfo + }; + case HY: + return { + ...e, error: t.error + }; + case VY: { + if (Array.isArray(t.dialInNumbers)) return { + ...e, + conferenceID: t.conferenceID, + numbers: t.dialInNumbers, + sipUri: t.sipUri, + numbersEnabled: !0, + numbersFetched: !0 + }; + PU.warn("Using deprecated API for retrieving phone numbers"); + const { + numbersEnabled: n + } = t.dialInNumbers; + return { + ...e, + conferenceID: t.conferenceID, + numbers: t.dialInNumbers, + numbersEnabled: n, + numbersFetched: !0 + } + } + } + return e + })); + const Tse = { + disabledFeatures: [], + status: "ACTIVE" + }; et.register("features/jaas", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Tse, + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === JB ? t.payload : e + })), et.register("features/large-video", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Fw: + if (e.participantId === t.oldValue) return { + ...e, + participantId: t.newValue + }; + break; + case BW: + return { + ...e, participantId: t.participantId + }; + case UW: + return { + ...e, resolution: t.resolution + }; + case HW: + return { + ...e, lastMediaEvent: t.name } + } + return e + })); + const Dse = { + knocking: !1, + knockingParticipants: [], + lobbyEnabled: !1, + lobbyVisible: !1, + passwordJoinFailed: !1 + }; - function ke(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_inbound_group_session_last_error(arguments[0])), Error("OLM." + t); - return t - } + function Pse(e, t) { + let n = t.knockingParticipants.find((t => t.id === e.id)); + return n = { + ...n, + ...e + }, { + ...t, + knockingParticipants: [...t.knockingParticipants.filter((t => t.id !== e.id)), n] + } + } + et.register("features/lobby", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Dse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case HF: + case VF: + return { + ...e, knocking: !1, passwordJoinFailed: !1 + }; + case D0: + return Pse(t.participant, e); + case P0: + return { + ...e, knockingParticipants: e.knockingParticipants.filter((e => e.id !== t.id)) + }; + case M0: + return { + ...e, knocking: t.knocking, passwordJoinFailed: !1 + }; + case j0: + return { + ...e, lobbyEnabled: t.enabled + }; + case I0: + return { + ...e, lobbyVisible: t.visible + }; + case aq: + return { + ...e, passwordJoinFailed: !1 + }; + case O0: + return { + ...e, passwordJoinFailed: t.failed } + } + return e + })); + const jse = { + enabled: !0, + notifications: [] + }; - function _e() { - var e = o._olm_pk_encryption_size(); - this.Nb = De(e), this.Mb = o._olm_pk_encryption(this.Nb) - } + function Mse(e, t) { + const n = Jf[t.props.appearance] || 0; + let a = e.length; + for (let t = 1; t < e.length; t++) { + const r = e[t]; + if ((Jf[r.props.appearance] || 0) < n) { + a = t; + break + } + } + const r = e.slice(); + return r.splice(a, 0, t), r + } - function we(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_pk_encryption_last_error(arguments[0])), Error("OLM." + t); - return t - } - } + function Ise(e, t) { + let { + browser: n, + isVisible: a + } = t; + return Oe(e, { + browser: n, + isMediaPermissionPromptVisible: a + }) + } - function Se() { - var e = o._olm_pk_decryption_size(); - this.Nb = De(e), this.Mb = o._olm_pk_decryption(this.Nb) - } + function Ose(e, t) { + let { + isVisible: n + } = t; + return Oe(e, { + isSlowGUMOverlayVisible: n + }) + } - function Ee(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_pk_decryption_last_error(arguments[0])), Error("OLM." + t); - return t - } - } + function Nse(e, t) { + return ze(e, "loadConfigOverlayVisible", t) + } - function xe() { - var e = o._olm_pk_signing_size(); - this.Nb = De(e), this.Mb = o._olm_pk_signing(this.Nb) + function Rse(e, t) { + let { + fatalError: n + } = t; + return ze(e, "fatalError", n) + } + et.register("features/notifications", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : jse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Bf: + return { + ...e, notifications: [] + }; + case Uf: + return { + ...e, notifications: e.notifications.filter((e => e.uid !== t.uid)) + }; + case Wf: + return { + ...e, notifications: e.notifications.filter((e => !e.props.raiseHandNotification)) + }; + case Vf: + return { + ...e, enabled: t.enabled + }; + case Hf: + return { + ...e, notifications: Mse(e.notifications, { + component: t.component, + props: t.props, + timeout: t.timeout, + uid: t.uid + }) } - - function Ce(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_pk_signing_last_error(arguments[0])), Error("OLM." + t); - return t + } + return e + })), et.register("features/overlay", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case jn: + return Nse(e, Boolean(t.room)); + case Mn: + case In: + return Nse(!1); + case Aq: + return Ise(e, t); + case Dq: + return Rse(e, t); + case Tq: + return Ose(e, t) + } + return e + })); + const zse = { + polls: {}, + nbUnreadPolls: 0 + }; et.register("features/polls", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : zse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case EV: { + const { + pollId: n, + value: a + } = t; + return { + ...e, + polls: { + ...e.polls, + [n]: { + ...e.polls[n], + changingVote: a, + showResults: !a + } } } - - function Ae() { - var e = o._olm_sas_size(), - t = o._olm_create_sas_random_length(), - n = Oe(t, u); - this.Nb = De(e), this.Mb = o._olm_sas(this.Nb), o._olm_create_sas(this.Mb, n, t), ze(n, t) + } + case xV: + return { + ...e, polls: { + ...e.polls, + [t.pollId]: t.poll + }, nbUnreadPolls: e.nbUnreadPolls + 1 + }; + case CV: { + const { + pollId: n, + answer: a + } = t; + if (!(n in e.polls)) return console.warn("requested poll does not exist: pollId ", n), e; + const r = e.polls[n].answers.map((e => ({ + name: e.name, + voters: new Map(e.voters) + }))); + for (let e = 0; e < r.length; e++) { + const t = r[e].voters; + a.answers[e] ? t.set(a.voterId, a.voterName) : t.delete(a.voterId) } - - function je(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_sas_last_error(arguments[0])), Error("OLM." + t); - return t + return { + ...e, + polls: { + ...e.polls, + [n]: { + ...e.polls[n], + answers: r + } } } - ge(), be.prototype.free = function() { - o._olm_clear_outbound_group_session(this.Mb), Te(this.Mb) - }, be.prototype.pickle = Ne((function(e) { - e = Ie(e); - var t = ye(o._olm_pickle_outbound_group_session_length)(this.Mb), - n = Me(e), - a = Me(t + 1); - try { - ye(o._olm_pickle_outbound_group_session)(this.Mb, n, e.length, a, t) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - return M(a, t) - })), be.prototype.unpickle = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Me(t = Ie(t)); - try { - ye(o._olm_unpickle_outbound_group_session)(this.Mb, n, e.length, a, t.length) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - })), be.prototype.create = Ne((function() { - var e = ye(o._olm_init_outbound_group_session_random_length)(this.Mb), - t = Oe(e, u); - ye(o._olm_init_outbound_group_session)(this.Mb, t, e) - })), be.prototype.encrypt = function(e) { - try { - var t = N(e), - n = ye(o._olm_group_encrypt_message_length)(this.Mb, t), - a = De(t + 1); - I(e, F, a, t + 1); - var r = De(n + 1); - return ye(o._olm_group_encrypt)(this.Mb, a, t, r, n), A(r + n), M(r, n) - } finally { - void 0 !== a && (ze(a, t + 1), Te(a)), void 0 !== r && Te(r) - } - }, be.prototype.session_id = Ne((function() { - var e = ye(o._olm_outbound_group_session_id_length)(this.Mb), - t = Me(e + 1); - return ye(o._olm_outbound_group_session_id)(this.Mb, t, e), M(t, e) - })), be.prototype.session_key = Ne((function() { - var e = ye(o._olm_outbound_group_session_key_length)(this.Mb), - t = Me(e + 1); - ye(o._olm_outbound_group_session_key)(this.Mb, t, e); - var n = M(t, e); - return ze(t, e), n - })), be.prototype.message_index = function() { - return ye(o._olm_outbound_group_session_message_index)(this.Mb) - }, s.OutboundGroupSession = be, ve.prototype.free = function() { - o._olm_clear_inbound_group_session(this.Mb), Te(this.Mb) - }, ve.prototype.pickle = Ne((function(e) { - e = Ie(e); - var t = ke(o._olm_pickle_inbound_group_session_length)(this.Mb), - n = Me(e), - a = Me(t + 1); - try { - ke(o._olm_pickle_inbound_group_session)(this.Mb, n, e.length, a, t) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - return M(a, t) - })), ve.prototype.unpickle = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Me(t = Ie(t)); - try { - ke(o._olm_unpickle_inbound_group_session)(this.Mb, n, e.length, a, t.length) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - })), ve.prototype.create = Ne((function(e) { - var t = Me(e = Ie(e)); - try { - ke(o._olm_init_inbound_group_session)(this.Mb, t, e.length) - } finally { - for (ze(t, e.length), t = 0; t < e.length; t++) e[t] = 0 - } - })), ve.prototype.import_session = Ne((function(e) { - var t = Me(e = Ie(e)); - try { - ke(o._olm_import_inbound_group_session)(this.Mb, t, e.length) - } finally { - for (ze(t, e.length), t = 0; t < e.length; t++) e[t] = 0 - } - })), ve.prototype.decrypt = Ne((function(e) { - try { - var t = De(e.length); - z(e, t); - var n = ke(o._olm_group_decrypt_max_plaintext_length)(this.Mb, t, e.length); - z(e, t); - var a = De(n + 1), - r = Me(4), - i = ke(o._olm_group_decrypt)(this.Mb, t, e.length, a, n, r); - return A(a + i), { - plaintext: M(a, i), - message_index: j(r, "i32") - } - } finally { - void 0 !== t && Te(t), void 0 !== a && (ze(a, i), Te(a)) - } - })), ve.prototype.session_id = Ne((function() { - var e = ke(o._olm_inbound_group_session_id_length)(this.Mb), - t = Me(e + 1); - return ke(o._olm_inbound_group_session_id)(this.Mb, t, e), M(t, e) - })), ve.prototype.first_known_index = Ne((function() { - return ke(o._olm_inbound_group_session_first_known_index)(this.Mb) - })), ve.prototype.export_session = Ne((function(e) { - var t = ke(o._olm_export_inbound_group_session_length)(this.Mb), - n = Me(t + 1); - return ye(o._olm_export_inbound_group_session)(this.Mb, n, t, e), e = M(n, t), ze(n, t), e - })), s.InboundGroupSession = ve, _e.prototype.free = function() { - o._olm_clear_pk_encryption(this.Mb), Te(this.Mb) - }, _e.prototype.set_recipient_key = Ne((function(e) { - var t = Me(e = Ie(e)); - we(o._olm_pk_encryption_set_recipient_key)(this.Mb, t, e.length) - })), _e.prototype.encrypt = Ne((function(e) { - try { - var t = N(e), - n = De(t + 1); - I(e, F, n, t + 1); - var a = we(o._olm_pk_encrypt_random_length)(), - r = Oe(a, u), - i = we(o._olm_pk_ciphertext_length)(this.Mb, t), - s = De(i + 1), - l = we(o._olm_pk_mac_length)(this.Mb), - c = Me(l + 1); - A(c + l); - var d = we(o._olm_pk_key_length)(), - p = Me(d + 1); - return A(p + d), we(o._olm_pk_encrypt)(this.Mb, n, t, s, i, c, l, p, d, r, a), A(s + i), { - ciphertext: M(s, i), - mac: M(c, l), - ephemeral: M(p, d) + } + case AV: { + const { + answers: n, + pollId: a + } = t; + return { + ...e, + polls: { + ...e.polls, + [a]: { + ...e.polls[a], + changingVote: !1, + lastVote: n, + showResults: !0 } - } finally { - void 0 !== r && ze(r, a), void 0 !== n && (ze(n, t + 1), Te(n)), void 0 !== s && Te(s) - } - })), Se.prototype.free = function() { - o._olm_clear_pk_decryption(this.Mb), Te(this.Mb) - }, Se.prototype.init_with_private_key = Ne((function(e) { - var t = Me(e.length); - o.HEAPU8.set(e, t); - var n = Ee(o._olm_pk_key_length)(), - a = Me(n + 1); - try { - Ee(o._olm_pk_key_from_private)(this.Mb, a, n, t, e.length) - } finally { - ze(t, e.length) - } - return M(a, n) - })), Se.prototype.generate_key = Ne((function() { - var e = Ee(o._olm_pk_private_key_length)(), - t = Oe(e, u), - n = Ee(o._olm_pk_key_length)(), - a = Me(n + 1); - try { - Ee(o._olm_pk_key_from_private)(this.Mb, a, n, t, e) - } finally { - ze(t, e) - } - return M(a, n) - })), Se.prototype.get_private_key = Ne((function() { - var e = we(o._olm_pk_private_key_length)(), - t = Me(e); - Ee(o._olm_pk_get_private_key)(this.Mb, t, e); - var n = new Uint8Array(new Uint8Array(o.HEAPU8.buffer, t, e)); - return ze(t, e), n - })), Se.prototype.pickle = Ne((function(e) { - e = Ie(e); - var t = Ee(o._olm_pickle_pk_decryption_length)(this.Mb), - n = Me(e), - a = Me(t + 1); - try { - Ee(o._olm_pickle_pk_decryption)(this.Mb, n, e.length, a, t) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - return M(a, t) - })), Se.prototype.unpickle = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Ie(t), - r = Me(a), - i = Me((t = Ee(o._olm_pk_key_length)()) + 1); - try { - Ee(o._olm_unpickle_pk_decryption)(this.Mb, n, e.length, r, a.length, i, t) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 } - return M(i, t) - })), Se.prototype.decrypt = Ne((function(e, t, n) { - try { - var a = N(n), - r = De(a + 1); - I(n, F, r, a + 1); - var i = Ie(e), - s = Me(i), - l = Ie(t), - c = Me(l), - u = Ee(o._olm_pk_max_plaintext_length)(this.Mb, a), - d = De(u + 1), - p = Ee(o._olm_pk_decrypt)(this.Mb, s, i.length, c, l.length, r, a, d, u); - return A(d + p), M(d, p) - } finally { - void 0 !== d && (ze(d, p + 1), Te(d)), void 0 !== r && Te(r) - } - })), xe.prototype.free = function() { - o._olm_clear_pk_signing(this.Mb), Te(this.Mb) - }, xe.prototype.init_with_seed = Ne((function(e) { - var t = Me(e.length); - o.HEAPU8.set(e, t); - var n = Ce(o._olm_pk_signing_public_key_length)(), - a = Me(n + 1); - try { - Ce(o._olm_pk_signing_key_from_seed)(this.Mb, a, n, t, e.length) - } finally { - ze(t, e.length) - } - return M(a, n) - })), xe.prototype.generate_seed = Ne((function() { - var e = Ce(o._olm_pk_signing_seed_length)(), - t = Oe(e, u), - n = new Uint8Array(new Uint8Array(o.HEAPU8.buffer, t, e)); - return ze(t, e), n - })), xe.prototype.sign = Ne((function(e) { - try { - var t = N(e), - n = De(t + 1); - I(e, F, n, t + 1); - var a = Ce(o._olm_pk_signature_length)(), - r = Me(a + 1); - return Ce(o._olm_pk_sign)(this.Mb, n, t, r, a), M(r, a) - } finally { - void 0 !== n && (ze(n, t + 1), Te(n)) - } - })), Ae.prototype.free = function() { - o._olm_clear_sas(this.Mb), Te(this.Mb) - }, Ae.prototype.get_pubkey = Ne((function() { - var e = je(o._olm_sas_pubkey_length)(this.Mb), - t = Me(e + 1); - return je(o._olm_sas_get_pubkey)(this.Mb, t, e), M(t, e) - })), Ae.prototype.set_their_key = Ne((function(e) { - var t = Me(e = Ie(e)); - je(o._olm_sas_set_their_key)(this.Mb, t, e.length) - })), Ae.prototype.is_their_key_set = Ne((function() { - return !!je(o._olm_sas_is_their_key_set)(this.Mb) - })), Ae.prototype.generate_bytes = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Me(t); - return je(o._olm_sas_generate_bytes)(this.Mb, n, e.length, a, t), new Uint8Array(new Uint8Array(o.HEAPU8.buffer, a, t)) - })), Ae.prototype.calculate_mac = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Me(t = Ie(t)), - r = je(o._olm_sas_mac_length)(this.Mb), - i = Me(r + 1); - return je(o._olm_sas_calculate_mac)(this.Mb, n, e.length, a, t.length, i, r), M(i, r) - })), Ae.prototype.calculate_mac_long_kdf = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Me(t = Ie(t)), - r = je(o._olm_sas_mac_length)(this.Mb), - i = Me(r + 1); - return je(o._olm_sas_calculate_mac_long_kdf)(this.Mb, n, e.length, a, t.length, i, r), M(i, r) - })); - var Pe, De = o._malloc, - Te = o._free; - - function Oe(e, t) { - var n = fe(e); - return t(new Uint8Array(o.HEAPU8.buffer, n, e)), n } - - function Me(e) { - return "number" == typeof e ? Oe(e, (function(e) { - e.fill(0) - })) : Oe(e.length, (function(t) { - t.set(e) - })) - } - - function Ie(e) { - if (e instanceof Uint8Array) var t = e; - else e = I(e, t = Array(N(e) + 1), 0, t.length), t.length = e; - return t - } - - function Ne(e) { - return function() { - var t = he(); - try { - return e.apply(this, arguments) - } finally { - me(t) + } + case TV: { + const { + pollId: n + } = t; + return { + ...e, + polls: { + ...e.polls, + [n]: { + ...e.polls[n], + showResults: !1 } } } - - function ze(e, t) { - for (; 0 < t--;) o.HEAP8[e++] = 0 + } + case DV: + return { + ...e, nbUnreadPolls: 0 + }; + default: + return e + } + })), et.register("features/reactions", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : { + visible: !1, + buffer: [], + timeoutID: null, + queue: [], + notificationDisplayed: !1 + }, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case O6: + return { + ...e, visible: !e.visible + }; + case N6: + return { + ...e, buffer: t.buffer, timeoutID: t.timeoutID + }; + case R6: + return { + ...e, buffer: [], timeoutID: null + }; + case L6: + return { + ...e, queue: t.value + }; + case B6: + return { + ...e, notificationDisplayed: !0 } + } + return e + })); + const Lse = $e("features/recent-list"), Fse = [], qse = "features/recent-list"; - function Re() { - var e = o._olm_account_size(); - this.Nb = De(e), this.Mb = o._olm_account(this.Nb) - } + function Bse(e, t) { + return e.filter((e => e.conference !== t.url || e.date !== t.date)) + } - function Le(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_account_last_error(arguments[0])), Error("OLM." + t); - return t - } - } + function Use(e) { + if (e && "object" == typeof e) { + if (Array.isArray(e)) return e; + const { + list: t + } = e; + if (Array.isArray(t) && t.length) return t.slice() + } + return Fse + } - function Fe() { - var e = o._olm_session_size(); - this.Nb = De(e), this.Mb = o._olm_session(this.Nb) - } + function Hse() { + const e = l.getItem("recentURLs"); + if (e) try { + return r.parse(e) + } catch (e) { + Lse.warn("Failed to parse legacy recent-room list!") + } + return [] + } - function qe(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_session_last_error(arguments[0])), Error("OLM." + t); - return t - } - } + function Vse(e, t) { + let { + locationURL: n + } = t; + const a = n.href, + r = e.filter((e => !Yse(e.conference, a))); + return r.push({ + conference: a, + date: Date.now(), + duration: 0 + }), r.splice(0, r.length - 30), r + } - function Be() { - var e = o._olm_utility_size(); - this.Nb = De(e), this.Mb = o._olm_utility(this.Nb) - } + function Wse(e, t) { + let { + locationURL: n + } = t; + if (n && n.href && e.length) { + const t = e.length - 1, + a = e[t]; + if (Yse(a.conference, n.href)) { + const n = { + ...a, + duration: Date.now() - a.date + }; + delete n.conferenceDuration; + const r = e.slice(); + return r[t] = n, r + } + } + return e + } - function Ue(e) { - return function() { - var t = e.apply(this, arguments); - if (t === Pe) throw t = M(o._olm_utility_last_error(arguments[0])), Error("OLM." + t); - return t - } - } - return Re.prototype.free = function() { - o._olm_clear_account(this.Mb), Te(this.Mb) - }, Re.prototype.create = Ne((function() { - var e = Le(o._olm_create_account_random_length)(this.Mb), - t = Oe(e, u); - Le(o._olm_create_account)(this.Mb, t, e) - })), Re.prototype.identity_keys = Ne((function() { - var e = Le(o._olm_account_identity_keys_length)(this.Mb), - t = Me(e + 1); - return Le(o._olm_account_identity_keys)(this.Mb, t, e), M(t, e) - })), Re.prototype.sign = Ne((function(e) { - var t = Le(o._olm_account_signature_length)(this.Mb), - n = Me(e = Ie(e)), - a = Me(t + 1); - try { - Le(o._olm_account_sign)(this.Mb, n, e.length, a, t) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - return M(a, t) - })), Re.prototype.one_time_keys = Ne((function() { - var e = Le(o._olm_account_one_time_keys_length)(this.Mb), - t = Me(e + 1); - return Le(o._olm_account_one_time_keys)(this.Mb, t, e), M(t, e) - })), Re.prototype.mark_keys_as_published = Ne((function() { - Le(o._olm_account_mark_keys_as_published)(this.Mb) - })), Re.prototype.max_number_of_one_time_keys = Ne((function() { - return Le(o._olm_account_max_number_of_one_time_keys)(this.Mb) - })), Re.prototype.generate_one_time_keys = Ne((function(e) { - var t = Le(o._olm_account_generate_one_time_keys_random_length)(this.Mb, e), - n = Oe(t, u); - Le(o._olm_account_generate_one_time_keys)(this.Mb, e, n, t) - })), Re.prototype.remove_one_time_keys = Ne((function(e) { - Le(o._olm_remove_one_time_keys)(this.Mb, e.Mb) - })), Re.prototype.generate_fallback_key = Ne((function() { - var e = Le(o._olm_account_generate_fallback_key_random_length)(this.Mb), - t = Oe(e, u); - Le(o._olm_account_generate_fallback_key)(this.Mb, t, e) - })), Re.prototype.fallback_key = Ne((function() { - var e = Le(o._olm_account_fallback_key_length)(this.Mb), - t = Me(e + 1); - return Le(o._olm_account_fallback_key)(this.Mb, t, e), M(t, e) - })), Re.prototype.pickle = Ne((function(e) { - e = Ie(e); - var t = Le(o._olm_pickle_account_length)(this.Mb), - n = Me(e), - a = Me(t + 1); - try { - Le(o._olm_pickle_account)(this.Mb, n, e.length, a, t) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - return M(a, t) - })), Re.prototype.unpickle = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Me(t = Ie(t)); - try { - Le(o._olm_unpickle_account)(this.Mb, n, e.length, a, t.length) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - })), Fe.prototype.free = function() { - o._olm_clear_session(this.Mb), Te(this.Mb) - }, Fe.prototype.pickle = Ne((function(e) { - e = Ie(e); - var t = qe(o._olm_pickle_session_length)(this.Mb), - n = Me(e), - a = Me(t + 1); - try { - qe(o._olm_pickle_session)(this.Mb, n, e.length, a, t) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - return M(a, t) - })), Fe.prototype.unpickle = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Me(t = Ie(t)); - try { - qe(o._olm_unpickle_session)(this.Mb, n, e.length, a, t.length) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - })), Fe.prototype.create_outbound = Ne((function(e, t, n) { - var a = qe(o._olm_create_outbound_session_random_length)(this.Mb), - r = Oe(a, u); - t = Ie(t), n = Ie(n); - var i = Me(t), - s = Me(n); - try { - qe(o._olm_create_outbound_session)(this.Mb, e.Mb, i, t.length, s, n.length, r, a) - } finally { - ze(r, a) - } - })), Fe.prototype.create_inbound = Ne((function(e, t) { - var n = Me(t = Ie(t)); - try { - qe(o._olm_create_inbound_session)(this.Mb, e.Mb, n, t.length) - } finally { - for (ze(n, t.length), e = 0; e < t.length; e++) t[e] = 0 - } - })), Fe.prototype.create_inbound_from = Ne((function(e, t, n) { - var a = Me(t = Ie(t)), - r = Me(n = Ie(n)); - try { - qe(o._olm_create_inbound_session_from)(this.Mb, e.Mb, a, t.length, r, n.length) - } finally { - for (ze(r, n.length), e = 0; e < n.length; e++) n[e] = 0 - } - })), Fe.prototype.session_id = Ne((function() { - var e = qe(o._olm_session_id_length)(this.Mb), - t = Me(e + 1); - return qe(o._olm_session_id)(this.Mb, t, e), M(t, e) - })), Fe.prototype.has_received_message = function() { - return !!qe(o._olm_session_has_received_message)(this.Mb) - }, Fe.prototype.matches_inbound = Ne((function(e) { - var t = Me(e = Ie(e)); - return !!qe(o._olm_matches_inbound_session)(this.Mb, t, e.length) - })), Fe.prototype.matches_inbound_from = Ne((function(e, t) { - var n = Me(e = Ie(e)), - a = Me(t = Ie(t)); - return !!qe(o._olm_matches_inbound_session_from)(this.Mb, n, e.length, a, t.length) - })), Fe.prototype.encrypt = Ne((function(e) { - try { - var t = qe(o._olm_encrypt_random_length)(this.Mb), - n = qe(o._olm_encrypt_message_type)(this.Mb), - a = N(e), - r = qe(o._olm_encrypt_message_length)(this.Mb, a), - i = Oe(t, u), - s = De(a + 1); - I(e, F, s, a + 1); - var l = De(r + 1); - return qe(o._olm_encrypt)(this.Mb, s, a, i, t, l, r), A(l + r), { - type: n, - body: M(l, r) - } - } finally { - void 0 !== i && ze(i, t), void 0 !== s && (ze(s, a + 1), Te(s)), void 0 !== l && Te(l) - } - })), Fe.prototype.decrypt = Ne((function(e, t) { - try { - var n = De(t.length); - z(t, n); - var a = qe(o._olm_decrypt_max_plaintext_length)(this.Mb, e, n, t.length); - z(t, n); - var r = De(a + 1), - i = qe(o._olm_decrypt)(this.Mb, e, n, t.length, r, a); - return A(r + i), M(r, i) - } finally { - void 0 !== n && Te(n), void 0 !== r && (ze(r, a), Te(r)) - } - })), Fe.prototype.describe = Ne((function() { - try { - var e = De(256); - return qe(o._olm_session_describe)(this.Mb, e, 256), M(e) - } finally { - void 0 !== e && Te(e) - } - })), Be.prototype.free = function() { - o._olm_clear_utility(this.Mb), Te(this.Mb) - }, Be.prototype.sha256 = Ne((function(e) { - var t = Ue(o._olm_sha256_length)(this.Mb), - n = Me(e = Ie(e)), - a = Me(t + 1); - try { - Ue(o._olm_sha256)(this.Mb, n, e.length, a, t) - } finally { - for (ze(n, e.length), n = 0; n < e.length; n++) e[n] = 0 - } - return M(a, t) - })), Be.prototype.ed25519_verify = Ne((function(e, t, n) { - var a = Me(e = Ie(e)), - r = Me(t = Ie(t)), - i = Me(n = Ie(n)); - try { - Ue(o._olm_ed25519_verify)(this.Mb, a, e.length, r, t.length, i, n.length) - } finally { - for (ze(r, t.length), e = 0; e < t.length; e++) t[e] = 0 - } - })), s.Account = Re, s.Session = Fe, s.Utility = Be, s.PkEncryption = _e, s.PkDecryption = Se, s.PkSigning = xe, s.SAS = Ae, s.get_library_version = Ne((function() { - var e = Me(3); - return o._olm_get_library_version(e, e + 1, e + 2), [j(e, "i8"), j(e + 1, "i8"), j(e + 2, "i8")] - })), t.ready - }, e.exports = l, s.init = function(e) { - return o || (e && (OLM_OPTIONS = e), o = new Promise((function(e, t) { - a = function() { - e() - }, r = function(e) { - t(e) - }, l() - }))) - }, s); - "undefined" != typeof window && (window.Olm = u), e.exports = u - }, 9783: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var n = function() { - function e() {} - return e.serializeContent = function(e) { - var t = e.constructor.name; - if ("Buffer" === t || "Blob" === t || "File" === t || "FormData" === t || "string" == typeof e) return e; - if ("ArrayBuffer" === t) e = Buffer.from(e); - else if ("Int8Array" === t || "Int16Array" === t || "Int32Array" === t || "Uint8Array" === t || "Uint16Array" === t || "Uint32Array" === t || "Uint8ClampedArray" === t || "Float32Array" === t || "Float64Array" === t || "DataView" === t) e = Buffer.from(e.buffer); - else try { - e = JSON.stringify(e) - } catch (e) { - throw console.log(e), new Error("Invalid JSON content") - } + function Yse(e, t) { + return FF(new URL(e)) === FF(new URL(t)) + } + Xe.register(qse), et.register(qse, (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Hse(), + t = arguments.length > 1 ? arguments[1] : void 0; + if (_re()) switch (t.type) { + case Va: + return Use(e); + case yre: + return Bse(e, t.entryId); + case vre: + return Vse(e, t); + case kre: + return Wse(e, t); + default: return e - }, e - }(); - t.GraphHelper = n - }, 9324: (e, t, n) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var a = n(4305); - n(5430); - var r = n(3114), - i = n(5220), - o = n(1558), - s = n(9783), - l = function() { - function e(e, t) { - this.config = e, this._headers = {}, this.urlComponents = { - host: this.config.baseUrl, - version: this.config.defaultVersion, - oDataQueryParams: {}, - otherURLQueryParams: {} - }, this.parsePath(t) - } - return e.prototype.header = function(e, t) { - return this._headers[e] = t, this - }, e.prototype.headers = function(e) { - for (var t in e) this._headers[t] = e[t]; - return this - }, e.prototype.parsePath = function(e) { - if (-1 != e.indexOf("https://")) { - var t = (e = e.replace("https://", "")).indexOf("/"); - this.urlComponents.host = "https://" + e.substring(0, t); - var n = (e = e.substring(t + 1, e.length)).indexOf("/"); - this.urlComponents.version = e.substring(0, n), e = e.substring(n + 1, e.length) - } - "/" == e.charAt(0) && (e = e.substr(1)); - var a = e.indexOf("?"); - if (-1 == a) this.urlComponents.path = e; - else { - this.urlComponents.path = e.substr(0, a); - for (var i = 0, o = e.substring(a + 1, e.length).split("&"); i < o.length; i++) { - var s = o[i].split("="), - l = s[0], - c = s[1]; - r.oDataQueryNames.indexOf(l) ? this.urlComponents.oDataQueryParams[l] = c : this.urlComponents.otherURLQueryParams[l] = c - } - } - }, e.prototype.urlJoin = function(e) { - var t = function(e) { - return e.replace(/^\/+/, "") - }; - return Array.prototype.slice.call(e).reduce((function(e, n) { - return [(a = e, a.replace(/\/+$/, "")), t(n)].join("/"); - var a - })) - }, e.prototype.buildFullUrl = function() { - var e = this.urlJoin([this.urlComponents.host, this.urlComponents.version, this.urlComponents.path]) + this.createQueryString(); - return this.config.debugLogging && console.log(e), e - }, e.prototype.version = function(e) { - return this.urlComponents.version = e, this - }, e.prototype.select = function(e) { - return this.addCsvQueryParamater("$select", e, arguments), this - }, e.prototype.expand = function(e) { - return this.addCsvQueryParamater("$expand", e, arguments), this - }, e.prototype.orderby = function(e) { - return this.addCsvQueryParamater("$orderby", e, arguments), this - }, e.prototype.filter = function(e) { - return this.urlComponents.oDataQueryParams.$filter = e, this - }, e.prototype.top = function(e) { - return this.urlComponents.oDataQueryParams.$top = e, this - }, e.prototype.skip = function(e) { - return this.urlComponents.oDataQueryParams.$skip = e, this - }, e.prototype.skipToken = function(e) { - return this.urlComponents.oDataQueryParams.$skipToken = e, this - }, e.prototype.count = function(e) { - return this.urlComponents.oDataQueryParams.$count = e.toString(), this - }, e.prototype.responseType = function(e) { - return this._responseType = e, this - }, e.prototype.addCsvQueryParamater = function(e, t, n) { - this.urlComponents.oDataQueryParams[e] = this.urlComponents.oDataQueryParams[e] ? this.urlComponents.oDataQueryParams[e] + "," : ""; - var a = []; - "string" == typeof t ? a.push(t) : a = a.concat(t), n.length > 1 && "string" == typeof t && (a = Array.prototype.slice.call(n)), this.urlComponents.oDataQueryParams[e] += a.join(",") - }, e.prototype.delete = function(e) { - var t = this.buildFullUrl(); - return this.sendRequestAndRouteResponse(new Request(t, { - method: o.RequestMethod.DELETE, - headers: new Headers - }), e) - }, e.prototype.patch = function(e, t) { - var n = this.buildFullUrl(); - return this.sendRequestAndRouteResponse(new Request(n, { - method: o.RequestMethod.PATCH, - body: s.GraphHelper.serializeContent(e), - headers: new Headers({ - "Content-Type": "application/json" - }) - }), t) - }, e.prototype.post = function(e, t) { - var n = this.buildFullUrl(); - return this.sendRequestAndRouteResponse(new Request(n, { - method: o.RequestMethod.POST, - body: s.GraphHelper.serializeContent(e), - headers: new Headers(void 0 !== e.constructor && "FormData" === e.constructor.name ? {} : { - "Content-Type": "application/json" - }) - }), t) - }, e.prototype.put = function(e, t) { - var n = this.buildFullUrl(); - return this.sendRequestAndRouteResponse(new Request(n, { - method: o.RequestMethod.PUT, - body: s.GraphHelper.serializeContent(e), - headers: new Headers({ - "Content-Type": "application/octet-stream" - }) - }), t) - }, e.prototype.create = function(e, t) { - return this.post(e, t) - }, e.prototype.update = function(e, t) { - return this.patch(e, t) - }, e.prototype.del = function(e) { - return this.delete(e) - }, e.prototype.get = function(e) { - var t = this.buildFullUrl(); - return this.sendRequestAndRouteResponse(new Request(t, { - method: o.RequestMethod.GET, - headers: new Headers - }), e) - }, e.prototype.routeResponseToPromise = function(e) { - var t = this; - return new a.Promise((function(n, a) { - t.routeResponseToCallback(e, (function(e, t) { - null != e ? a(e) : n(t) - })) - })) - }, e.prototype.handleFetch = function(e, t, n) { - var a = this; - ("Request" === e.constructor.name ? fetch(e) : fetch(e, n)).then((function(e) { - a.convertResponseType(e).then((function(n) { - i.ResponseHandler.init(e, void 0, n, t) - })).catch((function(n) { - i.ResponseHandler.init(e, n, void 0, t) - })) - })).catch((function(e) { - i.ResponseHandler.init(void 0, e, void 0, t) - })) - }, e.prototype.routeResponseToCallback = function(e, t) { - var n = this; - n.config.authProvider((function(a, r) { - null == a && null != r ? (e = n.configureRequest(e, r), n.handleFetch(e, t)) : t(a, null, null) - })) - }, e.prototype.sendRequestAndRouteResponse = function(e, t) { - if (null == t && void 0 !== a.Promise) return this.routeResponseToPromise(e); - this.routeResponseToCallback(e, t || function() {}) - }, e.prototype.getStream = function(e) { - var t = this; - t.config.authProvider((function(n, a) { - if (null === n && null !== a) { - var r = t.buildFullUrl(), - i = { - method: o.RequestMethod.GET, - headers: t.getDefaultRequestHeaders(a) - }; - t.responseType("stream"), Object.keys(t._headers).forEach((function(e) { - return i.headers[e] = t._headers[e] - })), t.handleFetch(r, e, i) - } else e(n, null) - })) - }, e.prototype.putStream = function(e, t) { - var n = this; - n.config.authProvider((function(a, r) { - if (null === a && null !== r) { - var i = n.buildFullUrl(), - s = { - method: o.RequestMethod.PUT, - headers: { - "Content-Type": "application/octet-stream" - }, - body: e - }, - l = n.getDefaultRequestHeaders(r); - Object.keys(l).forEach((function(e) { - return s.headers[e] = l[e] - })), Object.keys(n._headers).forEach((function(e) { - return s.headers[e] = n._headers[e] - })), n.handleFetch(i, t, s) - } - })) - }, e.prototype.getDefaultRequestHeaders = function(e) { - return { - Authorization: "Bearer " + e, - SdkVersion: "graph-js-" + r.PACKAGE_VERSION - } - }, e.prototype.configureRequest = function(e, t) { - var n = this, - a = n.getDefaultRequestHeaders(t); - return Object.keys(a).forEach((function(t) { - return e.headers.set(t, a[t]) - })), Object.keys(n._headers).forEach((function(t) { - return e.headers.set(t, n._headers[t]) - })), e - }, e.prototype.query = function(e) { - if ("string" == typeof e) { - var t = e, - n = t.split("=")[0], - a = t.split("=")[1]; - this.urlComponents.otherURLQueryParams[n] = a - } else - for (var r in e) this.urlComponents.otherURLQueryParams[r] = e[r]; - return this - }, e.prototype.createQueryString = function() { - var e = []; - if (0 != Object.keys(this.urlComponents.oDataQueryParams).length) - for (var t in this.urlComponents.oDataQueryParams) e.push(t + "=" + this.urlComponents.oDataQueryParams[t]); - if (0 != Object.keys(this.urlComponents.otherURLQueryParams).length) - for (var t in this.urlComponents.otherURLQueryParams) e.push(t + "=" + this.urlComponents.otherURLQueryParams[t]); - return e.length > 0 ? "?" + e.join("&") : "" - }, e.prototype.convertResponseType = function(e) { - var t; - switch (this._responseType || (this._responseType = ""), this._responseType.toLowerCase()) { - case "arraybuffer": - t = e.arrayBuffer(); - break; - case "blob": - t = e.blob(); - break; - default: - t = e.json(); - break; - case "text": - t = e.text(); - break; - case "stream": - t = a.Promise.resolve(e.body) - } - return t - }, e - }(); - t.GraphRequest = l - }, 1558: (e, t) => { - "use strict"; - var n; - Object.defineProperty(t, "__esModule", { - value: !0 - }), (n = t.RequestMethod || (t.RequestMethod = {})).GET = "GET", n.PATCH = "PATCH", n.POST = "POST", n.PUT = "PUT", n.DELETE = "DELETE" - }, 5220: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var n = function() { - function e() {} - return e.init = function(t, n, a, r) { - t && t.ok ? r(null, a, t) : null == n && null != t ? null != a && null != a.error ? r(e.buildGraphErrorFromResponseObject(a.error, t.status), null, t) : r(e.defaultGraphError(t.status), null, t) : r(e.ParseError(n), null, t) - }, e.ParseError = function(t) { - return t ? e.buildGraphErrorFromErrorObject(t) : e.defaultGraphError(-1) - }, e.defaultGraphError = function(e) { + } + return e + })); + const Gse = { + pendingNotificationUids: {}, + selectedRecordingService: "", + sessionDatas: [] + }; + + function Kse(e, t) { + let n; + return n = e.find((e => e.id === t.id)) ? e.map((e => e.id === t.id ? { + ...t + } : e)) : [...e, { + ...t + }], n + } + et.register("features/recording", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Gse, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case VK: return { - statusCode: e, - code: null, - message: null, - requestId: null, - date: new Date, - body: null - } - }, e.buildGraphErrorFromErrorObject = function(t) { - var n = e.defaultGraphError(-1); - return n.body = t.toString(), n.message = t.message, n.date = new Date, n - }, e.buildGraphErrorFromResponseObject = function(e, t) { + ...e, sessionDatas: [] + }; + case WK: return { - statusCode: t, - code: e.code, - message: e.message, - requestId: e.innerError["request-id"], - date: new Date(e.innerError.date), - body: e + ...e, sessionDatas: Kse(e.sessionDatas, t.sessionData) + }; + case YK: { + const n = { + ...e.pendingNotificationUids + }; + return n[t.streamType] = t.uid, { + ...e, + pendingNotificationUids: n } - }, e - }(); - t.ResponseHandler = n - }, 3114: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.oDataQueryNames = ["select", "expand", "orderby", "filter", "top", "skip", "skipToken", "count"], t.DEFAULT_VERSION = "v1.0", t.GRAPH_BASE_URL = "https://graph.microsoft.com/", t.PACKAGE_VERSION = "1.0.0", t.oDataQueryNames = t.oDataQueryNames.concat(t.oDataQueryNames.map((function(e) { - return "$" + e - }))) - }, 387: (e, t, n) => { - "use strict"; - - function a(e) { - for (var n in e) t.hasOwnProperty(n) || (t[n] = e[n]) + } + case GK: + return { + ...e, selectedRecordingService: t.selectedRecordingService + }; + case KK: + return { + ...e, streamKey: t.streamKey + }; + default: + return e } - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var r = n(3114), - i = n(9324), - o = function() { - function e() { - this.config = { - debugLogging: !1, - defaultVersion: r.DEFAULT_VERSION, - baseUrl: r.GRAPH_BASE_URL - } + })), et.register("features/settings", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case TY: + return { + ...e, audioSettingsVisible: t.value + }; + case DY: + return { + ...e, videoSettingsVisible: t.value } - return e.init = function(t) { - var n = new e; - for (var a in t) n.config[a] = t[a]; - return n - }, e.prototype.api = function(e) { - return new i.GraphRequest(this.config, e) - }, e - }(); - t.Client = o, a(n(9324)), a(n(3114)), a(n(5220)) - }, 4976: function(e, t, n) { - var a = n(554); - e.exports = function() { - "use strict"; + } + return e + })); + const $se = { + stats: {}, + isOpen: !1, + pendingReorder: !0, + criteria: null + }; - function e(t) { - return e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { - return typeof e - } : function(e) { - return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e - }, e(t) - } + function Jse() { + return $se + } - function t(e, t) { - for (var n = 0; n < t.length; n++) { - var a = t[n]; - a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) - } - } + function Zse(e, t) { + let { + criteria: n + } = t; + return _().assign({}, e, { + criteria: n + }) + } - function r(e, t, n) { - return t in e ? Object.defineProperty(e, t, { - value: n, - enumerable: !0, - configurable: !0, - writable: !0 - }) : e[t] = n, e - } + function Qse(e, t) { + let { + stats: n + } = t; + const a = e.pendingReorder ? n : e.stats; + if (!e.pendingReorder) { + const e = Object.keys(n); + e.forEach((e => { + a[e] = _().clone(n[e]) + })), Object.keys(a).forEach((t => { + e.includes(t) || delete a[t] + })) + } + return _().assign({}, e, { + stats: { + ...a + }, + pendingReorder: !1 + }) + } - function i(e) { - for (var t = 1; t < arguments.length; t++) { - var n = null != arguments[t] ? arguments[t] : {}, - a = Object.keys(n); - "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { - return Object.getOwnPropertyDescriptor(n, e).enumerable - })))), a.forEach((function(t) { - r(e, t, n[t]) - })) - } - return e - } - var o, s, l, c; + function Xse(e) { + return _().assign({}, e, { + pendingReorder: !0 + }) + } + et.register("features/speaker-stats", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : Jse(), + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case AQ: + return Zse(e, t); + case DQ: + return Qse(e, t); + case PQ: + return Xse(e) + } + return e + })); + const ele = { + _transcriptMessages: new Map, + _requestingSubtitles: !1 + }; - function u() { - return "object" == typeof window && void 0 !== (null === window || void 0 === window ? void 0 : window.document) - }(function(e) { - e.IDENTIFY = "$identify" - })(o || (o = {})), - function(e) { - e.SET = "$set", e.SET_ONCE = "$setOnce", e.ADD = "$add", e.APPEND = "$append", e.PREPEND = "$prepend", e.REMOVE = "$remove", e.PREINSERT = "$preinsert", e.POSTINSERT = "$postinsert", e.UNSET = "$unset", e.CLEAR_ALL = "$clearAll" - }(s || (s = {})), - function(e) { - e[e.None = 0] = "None", e[e.Error = 1] = "Error", e[e.Warn = 2] = "Warn", e[e.Verbose = 3] = "Verbose" - }(l || (l = {})), - function(e) { - e.Unknown = "unknown", e.Skipped = "skipped", e.Success = "success", e.RateLimit = "rate_limit", e.PayloadTooLarge = "payload_too_large", e.Invalid = "invalid", e.Failed = "failed" - }(c || (c = {})), - function(e) { - e.fromHttpCode = function(t) { - return t >= 200 && t < 300 ? e.Success : 429 === t ? e.RateLimit : 413 === t ? e.PayloadTooLarge : t >= 400 && t < 500 ? e.Invalid : t >= 500 ? e.Failed : e.Unknown - } - }(c || (c = {})), c.Skipped; - var d, p = {}, - h = ((d = function() { - return "object" == typeof a && void 0 !== (null === (e = null == a ? void 0 : a.versions) || void 0 === e ? void 0 : e.node) ? n.g : "undefined" != typeof window ? window : "undefined" != typeof self ? self : p; - var e - }()).__AMPLITUDE__ = d.__AMPLITUDE__ || {}, d.__AMPLITUDE__), - m = "Amplitude Logger ", - f = function() { - function e() { - this._logLevel = 0 - } - return e.prototype.disable = function() { - this._logLevel = 0 - }, e.prototype.enable = function(e) { - void 0 === e && (e = l.Warn), this._logLevel = e - }, e.prototype.log = function() { - for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; - this._logLevel < l.Verbose || n.g.console.log(m + "[Log]: " + e.join(" ")) - }, e.prototype.warn = function() { - for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; - this._logLevel < l.Warn || n.g.console.warn(m + "[Warn]: " + e.join(" ")) - }, e.prototype.error = function() { - for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; - this._logLevel < l.Error || n.g.console.error(m + "[Error]: " + e.join(" ")) - }, e - }(), - g = (h.logger || (h.logger = new f), { - DEFAULT_INSTANCE: "$default_instance", - API_VERSION: 2, - MAX_STRING_LENGTH: 4096, - MAX_PROPERTY_KEYS: 1e3, - IDENTIFY_EVENT: "$identify", - GROUP_IDENTIFY_EVENT: "$groupidentify", - LAST_EVENT_ID: "amplitude_lastEventId", - LAST_EVENT_TIME: "amplitude_lastEventTime", - LAST_IDENTIFY_ID: "amplitude_lastIdentifyId", - LAST_SEQUENCE_NUMBER: "amplitude_lastSequenceNumber", - SESSION_ID: "amplitude_sessionId", - DEVICE_ID: "amplitude_deviceId", - OPT_OUT: "amplitude_optOut", - USER_ID: "amplitude_userId", - COOKIE_TEST_PREFIX: "amp_cookie_test", - COOKIE_PREFIX: "amp", - STORAGE_DEFAULT: "", - STORAGE_COOKIES: "cookies", - STORAGE_NONE: "none", - STORAGE_LOCAL: "localStorage", - STORAGE_SESSION: "sessionStorage", - REVENUE_EVENT: "revenue_amount", - REVENUE_PRODUCT_ID: "$productId", - REVENUE_QUANTITY: "$quantity", - REVENUE_PRICE: "$price", - REVENUE_REVENUE_TYPE: "$revenueType", - AMP_DEVICE_ID_PARAM: "amp_device_id", - REFERRER: "referrer", - UTM_SOURCE: "utm_source", - UTM_MEDIUM: "utm_medium", - UTM_CAMPAIGN: "utm_campaign", - UTM_TERM: "utm_term", - UTM_CONTENT: "utm_content", - ATTRIBUTION_EVENT: "[Amplitude] Attribution Captured" - }), - b = function(e) { - for (var t = "", n = 0; n < e.length; n++) { - var a = e.charCodeAt(n); - a < 128 ? t += String.fromCharCode(a) : a > 127 && a < 2048 ? (t += String.fromCharCode(a >> 6 | 192), t += String.fromCharCode(63 & a | 128)) : (t += String.fromCharCode(a >> 12 | 224), t += String.fromCharCode(a >> 6 & 63 | 128), t += String.fromCharCode(63 & a | 128)) - } - return t - }, - y = function(e) { - for (var t = "", n = 0, a = 0, r = 0, i = 0; n < e.length;)(a = e.charCodeAt(n)) < 128 ? (t += String.fromCharCode(a), n++) : a > 191 && a < 224 ? (r = e.charCodeAt(n + 1), t += String.fromCharCode((31 & a) << 6 | 63 & r), n += 2) : (r = e.charCodeAt(n + 1), i = e.charCodeAt(n + 2), t += String.fromCharCode((15 & a) << 12 | (63 & r) << 6 | 63 & i), n += 3); - return t - }, - v = { - _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", - encode: function(e) { - try { - if (window.btoa && window.atob) return window.btoa(unescape(encodeURIComponent(e))) - } catch (e) {} - return v._encode(e) - }, - _encode: function(e) { - var t, n, a, r, i, o, s, l = "", - c = 0; - for (e = b(e); c < e.length;) r = (t = e.charCodeAt(c++)) >> 2, i = (3 & t) << 4 | (n = e.charCodeAt(c++)) >> 4, o = (15 & n) << 2 | (a = e.charCodeAt(c++)) >> 6, s = 63 & a, isNaN(n) ? o = s = 64 : isNaN(a) && (s = 64), l = l + v._keyStr.charAt(r) + v._keyStr.charAt(i) + v._keyStr.charAt(o) + v._keyStr.charAt(s); - return l - }, - decode: function(e) { - try { - if (window.btoa && window.atob) return decodeURIComponent(escape(window.atob(e))) - } catch (e) {} - return v._decode(e) - }, - _decode: function(e) { - var t, n, a, r, i, o, s = "", - l = 0; - for (e = e.replace(/[^A-Za-z0-9+/=]/g, ""); l < e.length;) t = v._keyStr.indexOf(e.charAt(l++)) << 2 | (r = v._keyStr.indexOf(e.charAt(l++))) >> 4, n = (15 & r) << 4 | (i = v._keyStr.indexOf(e.charAt(l++))) >> 2, a = (3 & i) << 6 | (o = v._keyStr.indexOf(e.charAt(l++))), s += String.fromCharCode(t), 64 !== i && (s += String.fromCharCode(n)), 64 !== o && (s += String.fromCharCode(a)); - return y(s) - } - }, - k = Object.prototype.toString; - - function _(t) { - switch (k.call(t)) { - case "[object Date]": - return "date"; - case "[object RegExp]": - return "regexp"; - case "[object Arguments]": - return "arguments"; - case "[object Array]": - return "array"; - case "[object Error]": - return "error" - } - return null === t ? "null" : void 0 === t ? "undefined" : t != t ? "nan" : t && 1 === t.nodeType ? "element" : "undefined" != typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(t) ? "buffer" : e(t = t.valueOf ? t.valueOf() : Object.prototype.valueOf.apply(t)) - } - var w, S = { - DISABLE: 0, - ERROR: 1, - WARN: 2, - INFO: 3 - }, - E = S.WARN, - x = { - error: function(e) { - E >= S.ERROR && C(e) - }, - warn: function(e) { - E >= S.WARN && C(e) - }, - info: function(e) { - E >= S.INFO && C(e) - } - }, - C = function(e) { - try { - console.log("[Amplitude] " + e) - } catch (e) {} - }, - A = function(e) { - return "string" === _(e) && e.length > g.MAX_STRING_LENGTH ? e.substring(0, g.MAX_STRING_LENGTH) : e - }, - j = function(e) { - var t = _(e); - if ("object" !== t) return x.error("Error: invalid properties format. Expecting Javascript object, received " + t + ", ignoring"), {}; - if (Object.keys(e).length > g.MAX_PROPERTY_KEYS) return x.error("Error: too many properties (more than 1000), ignoring"), {}; - var n = {}; - for (var a in e) - if (Object.prototype.hasOwnProperty.call(e, a)) { - var r = a, - i = _(r); - "string" !== i && (r = String(r), x.warn("WARNING: Non-string property key, received type " + i + ', coercing to string "' + r + '"')); - var o = D(r, e[a]); - null !== o && (n[r] = o) - } return n - }, - P = ["nan", "function", "arguments", "regexp", "element"], - D = function e(t, n) { - var a = _(n); - if (-1 !== P.indexOf(a)) x.warn('WARNING: Property key "' + t + '" with invalid value type ' + a + ", ignoring"), n = null; - else if ("undefined" === a) n = null; - else if ("error" === a) n = String(n), x.warn('WARNING: Property key "' + t + '" with value type error, coercing to ' + n); - else if ("array" === a) { - for (var r = [], i = 0; i < n.length; i++) { - var o = n[i], - s = _(o); - "array" !== s ? "object" === s ? r.push(j(o)) : r.push(e(t, o)) : x.warn("WARNING: Cannot have " + s + " nested in an array property value, skipping") - } - n = r - } else "object" === a && (n = j(n)); - return n - }, - T = function(e, t) { - var n = _(t); - if ("string" === n) return t; - if ("date" === n || "number" === n || "boolean" === n) return t = String(t), x.warn("WARNING: Non-string groupName, received type " + n + ', coercing to string "' + t + '"'), t; - if ("array" === n) { - for (var a = [], r = 0; r < t.length; r++) { - var i = t[r], - o = _(i); - "array" !== o && "object" !== o ? "string" === o ? a.push(i) : "date" !== o && "number" !== o && "boolean" !== o || (i = String(i), x.warn("WARNING: Non-string groupName, received type " + o + ', coercing to string "' + i + '"'), a.push(i)) : x.warn("WARNING: Skipping nested " + o + " in array groupName") - } - return a - } - x.warn("WARNING: Non-string groupName, received type " + n + ". Please use strings or array of strings for groupName") - }, - O = function(e) { - Object.prototype.hasOwnProperty.call(S, e) && (E = S[e]) - }, - M = x, - I = function(e) { - return !e || 0 === e.length - }, - N = function(e, t) { - e = e.replace(/[[]/, "\\[").replace(/[\]]/, "\\]"); - var n = new RegExp("[\\?&]" + e + "=([^&#]*)").exec(t); - return null === n ? void 0 : decodeURIComponent(n[1].replace(/\+/g, " ")) - }, - z = function e(t) { - if ("array" === _(t)) - for (var n = 0; n < t.length; n++) t[n] = e(t[n]); - else if ("object" === _(t)) - for (var a in t) a in t && (t[a] = e(t[a])); - else t = A(t); - return t - }, - R = function(e) { - var t = _(e); - if ("object" !== t) return x.error("Error: invalid groups format. Expecting Javascript object, received " + t + ", ignoring"), {}; - var n = {}; - for (var a in e) - if (Object.prototype.hasOwnProperty.call(e, a)) { - var r = a, - i = _(r); - "string" !== i && (r = String(r), x.warn("WARNING: Non-string groupType, received type " + i + ', coercing to string "' + r + '"')); - var o = T(r, e[a]); - null !== o && (n[r] = o) - } return n - }, - L = function(e, t, n) { - return _(e) === n || (x.error("Invalid " + t + " input type. Expected " + n + " but received " + _(e)), !1) - }, - F = j, - q = function() { - return window.location - }, - B = function() { - for (var e = "", t = 0; t < 22; ++t) e += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charAt(Math.floor(64 * Math.random())); - return e - }, - U = function(e) { - try { - for (var t = document.cookie.split(";"), n = null, a = 0; a < t.length; a++) { - for (var r = t[a]; - " " === r.charAt(0);) r = r.substring(1, r.length); - if (0 === r.indexOf(e)) { - n = r.substring(e.length, r.length); - break - } - } - return n - } catch (e) { - return null - } - }, - H = function(e, t, n) { - var a = null !== t ? n.expirationDays : -1; - if (a) { - var r = new Date; - r.setTime(r.getTime() + 24 * a * 60 * 60 * 1e3), a = r - } - var i = e + "=" + t; - a && (i += "; expires=" + a.toUTCString()), i += "; path=/", n.domain && (i += "; domain=" + n.domain), n.secure && (i += "; Secure"), n.sameSite && (i += "; SameSite=" + n.sameSite), document.cookie = i - }, - V = H, - W = U, - Y = function() { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, - t = g.COOKIE_TEST_PREFIX + B(), - n = !1; - try { - var a = String(new Date); - H(t, a, e), M.info("Testing if cookies available"), n = U(t + "=") === a - } catch (e) { - M.warn('Error thrown when checking for cookies. Reason: "'.concat(e, '"')) - } finally { - M.warn("Cleaning up cookies availability test"), H(t, null, e) - } - return n - }, - G = function(e) { - var t = document.createElement("a"); - return t.href = e, t.hostname || location.hostname - }, - K = function(e) { - for (var t = G(e).split("."), n = [], a = "_tldtest_" + B(), r = t.length - 2; r >= 0; --r) n.push(t.slice(r).join(".")); - for (var i = 0; i < n.length; ++i) { - var o = n[i], - s = { - domain: "." + o - }; - if (V(a, 1, s), W(a)) return V(a, null, s), o - } - return "" - }, - $ = { - expirationDays: void 0, - domain: void 0 - }, - J = function(e) { - var t = ""; - return $.domain && (t = "." === $.domain.charAt(0) ? $.domain.substring(1) : $.domain), e + t - }, - Z = function(e) { - var t = J(e) + "=", - n = W(t); - try { - if (n) return JSON.parse(v.decode(n)) - } catch (e) { - return null - } - return null - }, - Q = function(e, t) { - try { - return V(J(e), v.encode(JSON.stringify(t)), $), !0 - } catch (e) { - return !1 - } - }, - X = function(e) { - try { - return V(J(e), null, $), !0 - } catch (e) { - return !1 - } - }, - ee = { - reset: function() { - $ = { - expirationDays: void 0, - domain: void 0 - } - }, - options: function(e) { - if (0 === arguments.length) return $; - e = e || {}, $.expirationDays = e.expirationDays, $.secure = e.secure, $.sameSite = e.sameSite; - var t = I(e.domain) ? "." + K(q().href) : e.domain, - n = Math.random(); - $.domain = t, Q("amplitude_test", n); - var a = Z("amplitude_test"); - return a && a === n || (t = null), X("amplitude_test"), $.domain = t, $ - }, - get: Z, - set: Q, - remove: X, - setRaw: function(e, t) { - try { - return V(J(e), t, $), !0 - } catch (e) { - return !1 - } - }, - getRaw: function(e) { - var t = J(e) + "="; - return W(t) - } + function tle(e, t) { + let { + transcriptMessageID: n + } = t; + const a = new Map(e._transcriptMessages); + return a.delete(n), { + ...e, + _transcriptMessages: a + } + } + + function nle(e, t) { + let { + transcriptMessageID: n, + newTranscriptMessage: a + } = t; + const r = new Map(e._transcriptMessages); + return r.set(n, a), { + ...e, + _transcriptMessages: r + } + } + et.register("features/subtitles", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ele, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case Ia: + return tle(e, t); + case Oa: + return nle(e, t); + case Na: + return { + ...e, _requestingSubtitles: !e._requestingSubtitles + } + } + return e + })); + const ale = { + enabled: !0, + hovered: !1, + overflowDrawer: !1, + overflowMenuVisible: !1, + timeoutID: null, + visible: !1 + }; et.register("features/toolbox", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ale, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case vM: + return { + ...e, timeoutID: void 0 }; - if (function() { - var e, t = new Date; - try { - return window.localStorage.setItem(t, t), e = window.localStorage.getItem(t) === String(t), window.localStorage.removeItem(t), e - } catch (e) {} - return !1 - }()) w = window.localStorage; - else if (window.globalStorage) try { - w = window.globalStorage[window.location.hostname] - } catch (e) {} else if ("undefined" != typeof document) { - var te = document.createElement("div"), - ne = "localStorage"; - te.style.display = "none", document.getElementsByTagName("head")[0].appendChild(te), te.addBehavior && (te.addBehavior("#default#userdata"), w = { - length: 0, - setItem: function(e, t) { - te.load(ne), te.getAttribute(e) || this.length++, te.setAttribute(e, t), te.save(ne) - }, - getItem: function(e) { - return te.load(ne), te.getAttribute(e) - }, - removeItem: function(e) { - te.load(ne), te.getAttribute(e) && this.length--, te.removeAttribute(e), te.save(ne) - }, - clear: function() { - te.load(ne); - for (var e, t = 0; e = te.XMLDocument.documentElement.attributes[t++];) te.removeAttribute(e.name); - te.save(ne), this.length = 0 - }, - key: function(e) { - return te.load(ne), te.XMLDocument.documentElement.attributes[e] - } - }, te.load(ne), w.length = te.XMLDocument.documentElement.attributes.length) - } w || (w = { - length: 0, - setItem: function(e, t) {}, - getItem: function(e) {}, - removeItem: function(e) {}, - clear: function() {}, - key: function(e) {} - }); - var ae, re = w, - ie = function() { - this.storage = null + case kM: + return { + ...e, fullScreen: t.fullScreen + }; + case wM: + return { + ...e, overflowDrawer: t.displayAsDrawer + }; + case SM: + return { + ...e, overflowMenuVisible: t.visible + }; + case EM: + return { + ...e, hovered: t.hovered + }; + case xM: + return { + ...e, enabled: t.enabled + }; + case CM: + return { + ...e, timeoutID: t.timeoutID + }; + case AM: + return ze(e, "visible", t.visible); + case TM: + return ze(e, "visible", !e.visible) + } + return e + })), et.register("features/transcribing", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : { + isTranscribing: !1, + isDialing: !1, + isTerminating: !1, + transcriberJID: null, + potentialTranscriberJIDs: [] + }, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case nie: + return { + ...e, isTranscribing: !0, isDialing: !1, transcriberJID: t.transcriberJID + }; + case aie: + return { + ...e, isTerminating: !1, isTranscribing: !1, transcriberJID: void 0, potentialTranscriberJIDs: [] + }; + case rie: + return { + ...e, potentialTranscriberJIDs: [t.transcriberJID].concat(e.potentialTranscriberJIDs) + }; + case iie: + return { + ...e, pendingNotificationUid: t.uid + }; + default: + return e + } + })); + const rle = { + remoteScreenShares: [], + tileViewEnabled: void 0 + }; et.register("features/video-layout", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : rle, + t = arguments.length > 1 ? arguments[1] : void 0; + switch (t.type) { + case mS: + return { + ...e, remoteScreenShares: t.participantIds }; - ie.prototype.getStorage = function() { - if (null !== this.storage) return this.storage; - if (Y()) this.storage = ee; - else { - var e = "amp_cookiestore_"; - this.storage = { - _options: { - expirationDays: void 0, - domain: void 0, - secure: !1 - }, - reset: function() { - this._options = { - expirationDays: void 0, - domain: void 0, - secure: !1 - } - }, - options: function(e) { - return 0 === arguments.length ? this._options : (e = e || {}, this._options.expirationDays = e.expirationDays || this._options.expirationDays, this._options.domain = e.domain || this._options.domain || window && window.location && window.location.hostname, this._options.secure = e.secure || !1) - }, - get: function(t) { - try { - return JSON.parse(re.getItem(e + t)) - } catch (e) {} - return null - }, - set: function(t, n) { - try { - return re.setItem(e + t, JSON.stringify(n)), !0 - } catch (e) {} - return !1 - }, - remove: function(t) { - try { - re.removeItem(e + t) - } catch (e) { - return !1 - } - } - } + case fS: + return { + ...e, tileViewEnabled: t.enabled } - return this.storage - }; - var oe = (r(ae = {}, g.STORAGE_COOKIES, !0), r(ae, g.STORAGE_NONE, !0), r(ae, g.STORAGE_LOCAL, !0), r(ae, g.STORAGE_SESSION, !0), ae), - se = function() { - function e(t) { - var n = t.storageKey, - a = t.disableCookies, - r = t.domain, - i = t.secure, - o = t.sameSite, - s = t.expirationDays, - l = t.storage; - (function(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - })(this, e), this.storageKey = n, this.domain = r, this.secure = i, this.sameSite = o, this.expirationDays = s, this.cookieDomain = ""; - var c = K(q().href); - if (this.cookieDomain = r || (c ? "." + c : null), oe[l]) this.storage = l; - else { - var u = a || !Y({ - domain: this.cookieDomain, - secure: this.secure, - sameSite: this.sameSite, - expirationDays: this.expirationDays - }); - this.storage = u ? g.STORAGE_LOCAL : g.STORAGE_COOKIES - } - } - return n = e, (a = [{ - key: "getCookieStorageKey", - value: function() { - if (!this.domain) return this.storageKey; - var e = "." === this.domain.charAt(0) ? this.domain.substring(1) : this.domain; - return "".concat(this.storageKey).concat(e ? "_".concat(e) : "") - } - }, { - key: "save", - value: function(e) { - var t = e.deviceId, - n = e.userId, - a = e.optOut, - r = e.sessionId, - i = e.lastEventTime, - o = e.eventId, - s = e.identifyId, - l = e.sequenceNumber; - if (this.storage !== g.STORAGE_NONE) { - var c = [t, v.encode(n || ""), a ? "1" : "", r ? r.toString(32) : "0", i ? i.toString(32) : "0", o ? o.toString(32) : "0", s ? s.toString(32) : "0", l ? l.toString(32) : "0"].join("."); - switch (this.storage) { - case g.STORAGE_SESSION: - window.sessionStorage && window.sessionStorage.setItem(this.storageKey, c); - break; - case g.STORAGE_LOCAL: - re.setItem(this.storageKey, c); - break; - case g.STORAGE_COOKIES: - V(this.getCookieStorageKey(), c, { - domain: this.cookieDomain, - secure: this.secure, - sameSite: this.sameSite, - expirationDays: this.expirationDays - }) - } - } - } - }, { - key: "load", - value: function() { - var e; - if (this.storage === g.STORAGE_COOKIES && (e = W(this.getCookieStorageKey() + "=")), e || (e = re.getItem(this.storageKey)), !e) try { - e = window.sessionStorage && window.sessionStorage.getItem(this.storageKey) - } catch (e) { - M.info('window.sessionStorage unavailable. Reason: "'.concat(e, '"')) - } - if (!e) return null; - var t = e.split("."), - n = null; - if (t[1]) try { - n = v.decode(t[1]) - } catch (e) { - n = null - } - return { - deviceId: t[0], - userId: n, - optOut: "1" === t[2], - sessionId: parseInt(t[3], 32), - lastEventTime: parseInt(t[4], 32), - eventId: parseInt(t[5], 32), - identifyId: parseInt(t[6], 32), - sequenceNumber: parseInt(t[7], 32) - } + } + return e + })), et.register("features/videosipgw", (function() { + let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [], + t = arguments.length > 1 ? arguments[1] : void 0; + return t.type === NY ? { + ...e, + status: t.status + } : e + })); class ile extends x.Component { + render() { + const { + className: e, + deviceStatusVisible: t, + showCameraPreview: n, + videoTrack: a + } = this.props; + return C().createElement(G8, { + className: `prejoin-third-party ${e}`, + showDeviceStatus: t, + skipPrejoinButton: !1, + thirdParty: !0, + videoMuted: !n, + videoTrack: a + }) + } + } + const ole = Ne((function(e) { + return { + deviceStatusVisible: dH(e), + showCameraPreview: !jf(e), + videoTrack: rh(e) + } + }))(Ei(ile)), sle = $e("index.web"), lle = ya.OS; document.addEventListener("DOMContentLoaded", (() => { + const e = window.performance.now(); + APP.connectionTimes["document.ready"] = e, sle.log("(TIME) document ready:\t", e) + })), "ios" === lle && window.addEventListener("pageshow", (e => { + e.persisted && window.location.reload() + })); + const cle = Dt(); cle.entryPoints = { + APP: class extends pne { + _createMainElement(e, t) { + return C().createElement(one, null, C().createElement(_v, { + mode: "dark" + }, C().createElement(ane, null), C().createElement(dne, null), super._createMainElement(e, t))) + } + _renderDialogContainer() { + return C().createElement(one, null, C().createElement(_v, { + mode: "dark" + }, C().createElement(kL, null))) + } + }, + PREJOIN: class extends Ff { + componentDidMount() { + super.componentDidMount(), this._init.then((async () => { + const { + store: e + } = this.state, { + dispatch: t + } = e, { + styleType: n + } = this.props; + super._navigate({ + component: ole, + props: { + className: n } - }]) && t(n.prototype, a), r && t(n, r), e; - var n, a, r - }(), - le = "$clearAll", - ce = function() { - this.userPropertiesOperations = {}, this.properties = [] - }; - ce.prototype.add = function(e, t) { - return "number" === _(t) || "string" === _(t) ? this._addOperation("$add", e, t) : M.error("Unsupported type for value: " + _(t) + ", expecting number or string"), this - }, ce.prototype.append = function(e, t) { - return this._addOperation("$append", e, t), this - }, ce.prototype.clearAll = function() { - return Object.keys(this.userPropertiesOperations).length > 0 ? (Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, le) || M.error("Need to send $clearAll on its own Identify object without any other operations, skipping $clearAll"), this) : (this.userPropertiesOperations.$clearAll = "-", this) - }, ce.prototype.prepend = function(e, t) { - return this._addOperation("$prepend", e, t), this - }, ce.prototype.set = function(e, t) { - return this._addOperation("$set", e, t), this - }, ce.prototype.setOnce = function(e, t) { - return this._addOperation("$setOnce", e, t), this - }, ce.prototype.unset = function(e) { - return this._addOperation("$unset", e, "-"), this - }, ce.prototype.preInsert = function(e, t) { - return this._addOperation("$preInsert", e, t), this - }, ce.prototype.postInsert = function(e, t) { - return this._addOperation("$postInsert", e, t), this - }, ce.prototype.remove = function(e, t) { - return this._addOperation("$remove", e, t), this - }, ce.prototype._addOperation = function(e, t, n) { - Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, le) ? M.error("This identify already contains a $clearAll operation, skipping operation " + e) : -1 === this.properties.indexOf(t) ? (Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, e) || (this.userPropertiesOperations[e] = {}), this.userPropertiesOperations[e][t] = n, this.properties.push(t)) : M.error('User property "' + t + '" already used in this identify, skipping operation ' + e) + }); + const { + startWithAudioMuted: a, + startWithVideoMuted: r + } = e.getState()["features/base/settings"]; + t(ea({ + prejoinConfig: { + enabled: !0 + }, + startWithAudioMuted: a, + startWithVideoMuted: r + })); + const { + tryCreateLocalTracks: i, + errors: o + } = function() { + const e = {}, + t = ["audio"]; + let n = !1; + const { + startAudioOnly: a, + startWithAudioMuted: r, + startWithVideoMuted: i + } = APP.store.getState()["features/base/settings"]; + let o; + return r && APP.store.dispatch(gf(!0)), i || a || (t.push("video"), n = !0), o = Qp({ + devices: t, + firePermissionPromptIsShownEvent: !0 + }).catch((t => n ? (e.audioAndVideoError = t, Qp({ + devices: ["audio"], + firePermissionPromptIsShownEvent: !0 + })) : n ? void Yp.error("Should never happen") : (e.audioOnlyError = t, []))).catch((t => (e.audioOnlyError = t, n ? Qp({ + devices: ["video"], + firePermissionPromptIsShownEvent: !0 + }) : []))).catch((t => (n || Yp.error("The impossible just happened", t), e.videoOnlyError = t, []))), { + tryCreateLocalTracks: o, + errors: e + } + }(), s = await i; + (0, Me.unstable_batchedUpdates)((() => { + t(DH(s, o)), t(IH(bF(e.getState()))) + })) + })) + } + _createMainElement(e, t) { + return C().createElement(one, null, C().createElement(_v, { + mode: "dark" + }, C().createElement(ane, null), super._createMainElement(e, t))) + } + _renderDialogContainer() { + return C().createElement(one, null, C().createElement(_v, { + mode: "dark" + }, C().createElement(kL, null))) + } + } + }, cle.renderEntryPoint = e => { + let { + Component: t, + props: n = {}, + elementId: a = "react" + } = e; + Ie().render(C().createElement(t, n), document.getElementById(a)) + }, window.Olm && window.Olm.init().catch((e => { + console.error("Failed to initialize Olm, E2EE will be disabled", e), delete window.Olm + })), window.APP = { + API: Lte, + conference: Ete, + connect: { + handler: null, + status: "initialized" + }, + connectionTimes: { + "index.loaded": window.indexLoadedTime + }, + keyboardshortcut: eX, + translation: Xte, + UI: $te + } +}, 5939: e => { + e.exports = { + defaultLogLevel: "trace", + "modules/RTC/TraceablePeerConnection.js": "info", + "modules/statistics/CallStats.js": "info", + "modules/xmpp/strophe.util.js": "log" + } +}, 1041: (e, t, n) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }); + var a, r = n(3241), + i = r.__importDefault(n(2684)), + o = r.__importDefault(n(5617)), + s = r.__importDefault(n(8889)), + l = n(5139), + c = n(6101), + u = function(e) { + var t = e.size; + return t ? "height: " + c.sizes[t] + "; width: " + c.sizes[t] + ";" : null + }; + t.IconWrapper = o.default.span(a || (a = r.__makeTemplateObject(["\n ", ";\n color: ", ";\n display: inline-block;\n fill: ", ";\n flex-shrink: 0;\n line-height: 1;\n\n > svg {\n ", ";\n max-height: 100%;\n max-width: 100%;\n overflow: hidden;\n pointer-events: none;\n vertical-align: bottom;\n }\n\n /**\n * Stop-color doesn't properly apply in chrome when the inherited/current color changes.\n * We have to initially set stop-color to inherit (either via DOM attribute or an initial CSS\n * rule) and then override it with currentColor for the color changes to be picked up.\n */\n stop {\n stop-color: currentColor;\n }\n"], ["\n ", ";\n color: ", ";\n display: inline-block;\n fill: ", ";\n flex-shrink: 0;\n line-height: 1;\n\n > svg {\n ", ";\n max-height: 100%;\n max-width: 100%;\n overflow: hidden;\n pointer-events: none;\n vertical-align: bottom;\n }\n\n /**\n * Stop-color doesn't properly apply in chrome when the inherited/current color changes.\n * We have to initially set stop-color to inherit (either via DOM attribute or an initial CSS\n * rule) and then override it with currentColor for the color changes to be picked up.\n */\n stop {\n stop-color: currentColor;\n }\n"])), u, (function(e) { + return e.primaryColor || "currentColor" + }), (function(e) { + return e.secondaryColor || l.background + }), u), t.default = function(e) { + var n, a, o = e.glyph, + l = e.dangerouslySetGlyph, + c = e.primaryColor, + u = e.secondaryColor, + d = e.size, + p = e.testId, + h = e.label, + m = l ? { + dangerouslySetInnerHTML: { + __html: (n = l, a = s.default(), n.replace(/id="([^"]+)-idPlaceholder"/g, "id=$1-" + a).replace(/fill="url\(#([^"]+)-idPlaceholder\)"/g, 'fill="url(#$1-' + a + ')"')) + } + } : { + children: o ? i.default.createElement(o, { + role: "presentation" + }) : null }; - var ue = "undefined" != typeof window ? window : void 0 !== n.g ? n.g : "undefined" != typeof self ? self : {}; + return i.default.createElement(t.IconWrapper, r.__assign({ + primaryColor: c, + secondaryColor: u, + size: d, + "data-testid": p, + role: h ? "img" : "presentation", + "aria-label": h || void 0 + }, m)) + } +}, 6101: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.sizes = { + small: "16px", + medium: "24px", + large: "32px", + xlarge: "48px" + }, t.sizeMap = { + small: "small", + medium: "medium", + large: "large", + xlarge: "xlarge" + } +}, 6501: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); - function de(e, t) { - return e(t = { - exports: {} - }, t.exports), t.exports + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } + + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) } - var pe = de((function(e) { - ! function(t) { - function n(e, t) { - var n = (65535 & e) + (65535 & t); - return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n - } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "CheckCircleIcon"; + var l = s; + t.Z = l +}, 9406: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function a(e, t, a, r, i, o) { - return n((s = n(n(t, e), n(r, o))) << (l = i) | s >>> 32 - l, a); - var s, l - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "CheckboxIcon"; + var l = s; + t.Z = l +}, 754: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function r(e, t, n, r, i, o, s) { - return a(t & n | ~t & r, e, t, i, o, s) - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "ChevronDownIcon"; + var l = s; + t.Z = l +}, 3037: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function i(e, t, n, r, i, o, s) { - return a(t & r | n & ~r, e, t, i, o, s) - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "ChevronUpIcon"; + var l = s; + t.Z = l +}, 4944: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function o(e, t, n, r, i, o, s) { - return a(t ^ n ^ r, e, t, i, o, s) - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "CrossIcon"; + var l = s; + t.Z = l +}, 1951: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function s(e, t, n, r, i, o, s) { - return a(n ^ (t | ~r), e, t, i, o, s) - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "EditorCloseIcon"; + var l = s; + t.Z = l +}, 2854: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function l(e, t) { - var a, l, c, u, d; - e[t >> 5] |= 128 << t % 32, e[14 + (t + 64 >>> 9 << 4)] = t; - var p = 1732584193, - h = -271733879, - m = -1732584194, - f = 271733878; - for (a = 0; a < e.length; a += 16) l = p, c = h, u = m, d = f, p = r(p, h, m, f, e[a], 7, -680876936), f = r(f, p, h, m, e[a + 1], 12, -389564586), m = r(m, f, p, h, e[a + 2], 17, 606105819), h = r(h, m, f, p, e[a + 3], 22, -1044525330), p = r(p, h, m, f, e[a + 4], 7, -176418897), f = r(f, p, h, m, e[a + 5], 12, 1200080426), m = r(m, f, p, h, e[a + 6], 17, -1473231341), h = r(h, m, f, p, e[a + 7], 22, -45705983), p = r(p, h, m, f, e[a + 8], 7, 1770035416), f = r(f, p, h, m, e[a + 9], 12, -1958414417), m = r(m, f, p, h, e[a + 10], 17, -42063), h = r(h, m, f, p, e[a + 11], 22, -1990404162), p = r(p, h, m, f, e[a + 12], 7, 1804603682), f = r(f, p, h, m, e[a + 13], 12, -40341101), m = r(m, f, p, h, e[a + 14], 17, -1502002290), p = i(p, h = r(h, m, f, p, e[a + 15], 22, 1236535329), m, f, e[a + 1], 5, -165796510), f = i(f, p, h, m, e[a + 6], 9, -1069501632), m = i(m, f, p, h, e[a + 11], 14, 643717713), h = i(h, m, f, p, e[a], 20, -373897302), p = i(p, h, m, f, e[a + 5], 5, -701558691), f = i(f, p, h, m, e[a + 10], 9, 38016083), m = i(m, f, p, h, e[a + 15], 14, -660478335), h = i(h, m, f, p, e[a + 4], 20, -405537848), p = i(p, h, m, f, e[a + 9], 5, 568446438), f = i(f, p, h, m, e[a + 14], 9, -1019803690), m = i(m, f, p, h, e[a + 3], 14, -187363961), h = i(h, m, f, p, e[a + 8], 20, 1163531501), p = i(p, h, m, f, e[a + 13], 5, -1444681467), f = i(f, p, h, m, e[a + 2], 9, -51403784), m = i(m, f, p, h, e[a + 7], 14, 1735328473), p = o(p, h = i(h, m, f, p, e[a + 12], 20, -1926607734), m, f, e[a + 5], 4, -378558), f = o(f, p, h, m, e[a + 8], 11, -2022574463), m = o(m, f, p, h, e[a + 11], 16, 1839030562), h = o(h, m, f, p, e[a + 14], 23, -35309556), p = o(p, h, m, f, e[a + 1], 4, -1530992060), f = o(f, p, h, m, e[a + 4], 11, 1272893353), m = o(m, f, p, h, e[a + 7], 16, -155497632), h = o(h, m, f, p, e[a + 10], 23, -1094730640), p = o(p, h, m, f, e[a + 13], 4, 681279174), f = o(f, p, h, m, e[a], 11, -358537222), m = o(m, f, p, h, e[a + 3], 16, -722521979), h = o(h, m, f, p, e[a + 6], 23, 76029189), p = o(p, h, m, f, e[a + 9], 4, -640364487), f = o(f, p, h, m, e[a + 12], 11, -421815835), m = o(m, f, p, h, e[a + 15], 16, 530742520), p = s(p, h = o(h, m, f, p, e[a + 2], 23, -995338651), m, f, e[a], 6, -198630844), f = s(f, p, h, m, e[a + 7], 10, 1126891415), m = s(m, f, p, h, e[a + 14], 15, -1416354905), h = s(h, m, f, p, e[a + 5], 21, -57434055), p = s(p, h, m, f, e[a + 12], 6, 1700485571), f = s(f, p, h, m, e[a + 3], 10, -1894986606), m = s(m, f, p, h, e[a + 10], 15, -1051523), h = s(h, m, f, p, e[a + 1], 21, -2054922799), p = s(p, h, m, f, e[a + 8], 6, 1873313359), f = s(f, p, h, m, e[a + 15], 10, -30611744), m = s(m, f, p, h, e[a + 6], 15, -1560198380), h = s(h, m, f, p, e[a + 13], 21, 1309151649), p = s(p, h, m, f, e[a + 4], 6, -145523070), f = s(f, p, h, m, e[a + 11], 10, -1120210379), m = s(m, f, p, h, e[a + 2], 15, 718787259), h = s(h, m, f, p, e[a + 9], 21, -343485551), p = n(p, l), h = n(h, c), m = n(m, u), f = n(f, d); - return [p, h, m, f] - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "EditorDoneIcon"; + var l = s; + t.Z = l +}, 247: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function c(e) { - var t, n = "", - a = 32 * e.length; - for (t = 0; t < a; t += 8) n += String.fromCharCode(e[t >> 5] >>> t % 32 & 255); - return n - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "EditorInfoIcon"; + var l = s; + t.Z = l +}, 7737: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function u(e) { - var t, n = []; - for (n[(e.length >> 2) - 1] = void 0, t = 0; t < n.length; t += 1) n[t] = 0; - var a = 8 * e.length; - for (t = 0; t < a; t += 8) n[t >> 5] |= (255 & e.charCodeAt(t / 8)) << t % 32; - return n - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "ErrorIcon"; + var l = s; + t.Z = l +}, 7253: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function d(e) { - var t, n, a = "0123456789abcdef", - r = ""; - for (n = 0; n < e.length; n += 1) t = e.charCodeAt(n), r += a.charAt(t >>> 4 & 15) + a.charAt(15 & t); - return r - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "InfoIcon"; + var l = s; + t.Z = l +}, 251: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function p(e) { - return unescape(encodeURIComponent(e)) - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "RadioIcon"; + var l = s; + t.Z = l +}, 901: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function h(e) { - return function(e) { - return c(l(u(e), 8 * e.length)) - }(p(e)) - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "StarFilledIcon"; + var l = s; + t.Z = l +}, 9429: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function m(e, t) { - return function(e, t) { - var n, a, r = u(e), - i = [], - o = []; - for (i[15] = o[15] = void 0, r.length > 16 && (r = l(r, 8 * e.length)), n = 0; n < 16; n += 1) i[n] = 909522486 ^ r[n], o[n] = 1549556828 ^ r[n]; - return a = l(i.concat(u(t)), 512 + 8 * t.length), c(l(o.concat(a), 640)) - }(p(e), p(t)) - } + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "StarIcon"; + var l = s; + t.Z = l +}, 9317: (e, t, n) => { + "use strict"; + t.Z = void 0; + var a = i(n(2684)), + r = i(n(1041)); + + function i(e) { + return e && e.__esModule ? e : { + default: e + } + } - function f(e, t, n) { - return t ? n ? m(t, e) : d(m(t, e)) : n ? h(e) : d(h(e)) - } - e.exports ? e.exports = f : t.md5 = f - }(ue) - })), - he = Object.getOwnPropertySymbols, - me = Object.prototype.hasOwnProperty, - fe = Object.prototype.propertyIsEnumerable; + function o() { + return o = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, o.apply(this, arguments) + } + var s = function(e) { + return a.default.createElement(r.default, o({ + dangerouslySetGlyph: '' + }, e)) + }; + s.displayName = "WarningIcon"; + var l = s; + t.Z = l +}, 3241: (e, t, n) => { + "use strict"; + n.r(t), n.d(t, { + __extends: () => r, + __assign: () => i, + __rest: () => o, + __decorate: () => s, + __param: () => l, + __metadata: () => c, + __awaiter: () => u, + __generator: () => d, + __createBinding: () => p, + __exportStar: () => h, + __values: () => m, + __read: () => f, + __spread: () => g, + __spreadArrays: () => b, + __spreadArray: () => y, + __await: () => v, + __asyncGenerator: () => k, + __asyncDelegator: () => _, + __asyncValues: () => w, + __makeTemplateObject: () => S, + __importStar: () => x, + __importDefault: () => C, + __classPrivateFieldGet: () => A, + __classPrivateFieldSet: () => T + }); + var a = function(e, t) { + return a = Object.setPrototypeOf || { + __proto__: [] + } + instanceof Array && function(e, t) { + e.__proto__ = t + } || function(e, t) { + for (var n in t) Object.prototype.hasOwnProperty.call(t, n) && (e[n] = t[n]) + }, a(e, t) + }; - function ge(e) { - if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined"); - return Object(e) + function r(e, t) { + if ("function" != typeof t && null !== t) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); + + function n() { + this.constructor = e + } + a(e, t), e.prototype = null === t ? Object.create(t) : (n.prototype = t.prototype, new n) + } + var i = function() { + return i = Object.assign || function(e) { + for (var t, n = 1, a = arguments.length; n < a; n++) + for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); + return e + }, i.apply(this, arguments) + }; + + function o(e, t) { + var n = {}; + for (var a in e) Object.prototype.hasOwnProperty.call(e, a) && t.indexOf(a) < 0 && (n[a] = e[a]); + if (null != e && "function" == typeof Object.getOwnPropertySymbols) { + var r = 0; + for (a = Object.getOwnPropertySymbols(e); r < a.length; r++) t.indexOf(a[r]) < 0 && Object.prototype.propertyIsEnumerable.call(e, a[r]) && (n[a[r]] = e[a[r]]) + } + return n + } + + function s(e, t, n, a) { + var r, i = arguments.length, + o = i < 3 ? t : null === a ? a = Object.getOwnPropertyDescriptor(t, n) : a; + if ("object" == typeof Reflect && "function" == typeof Reflect.decorate) o = Reflect.decorate(e, t, n, a); + else + for (var s = e.length - 1; s >= 0; s--)(r = e[s]) && (o = (i < 3 ? r(o) : i > 3 ? r(t, n, o) : r(t, n)) || o); + return i > 3 && o && Object.defineProperty(t, n, o), o + } + + function l(e, t) { + return function(n, a) { + t(n, a, e) + } + } + + function c(e, t) { + if ("object" == typeof Reflect && "function" == typeof Reflect.metadata) return Reflect.metadata(e, t) + } + + function u(e, t, n, a) { + return new(n || (n = Promise))((function(r, i) { + function o(e) { + try { + l(a.next(e)) + } catch (e) { + i(e) + } } - var be = function() { - try { - if (!Object.assign) return !1; - var e = new String("abc"); - if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) return !1; - for (var t = {}, n = 0; n < 10; n++) t["_" + String.fromCharCode(n)] = n; - if ("0123456789" !== Object.getOwnPropertyNames(t).map((function(e) { - return t[e] - })).join("")) return !1; - var a = {}; - return "abcdefghijklmnopqrst".split("").forEach((function(e) { - a[e] = e - })), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, a)).join("") - } catch (e) { - return !1 - } - }() ? Object.assign : function(e, t) { - for (var n, a, r = ge(e), i = 1; i < arguments.length; i++) { - for (var o in n = Object(arguments[i])) me.call(n, o) && (r[o] = n[o]); - if (he) { - a = he(n); - for (var s = 0; s < a.length; s++) fe.call(n, a[s]) && (r[a[s]] = n[a[s]]) - } - } - return r - }, - ye = "%[a-f0-9]{2}"; - new RegExp(ye, "gi"), new RegExp("(" + ye + ")+", "gi"); - function ve(e, t) { - return t.encode ? t.strict ? encodeURIComponent(e).replace(/[!'()*]/g, (function(e) { - return "%" + e.charCodeAt(0).toString(16).toUpperCase() - })) : encodeURIComponent(e) : e - } - var ke = function(e, t) { - !1 === (t = be({ - encode: !0, - strict: !0, - arrayFormat: "none" - }, t)).sort && (t.sort = function() {}); - var n = function(e) { - switch (e.arrayFormat) { - case "index": - return function(t, n, a) { - return null === n ? [ve(t, e), "[", a, "]"].join("") : [ve(t, e), "[", ve(a, e), "]=", ve(n, e)].join("") - }; - case "bracket": - return function(t, n) { - return null === n ? ve(t, e) : [ve(t, e), "[]=", ve(n, e)].join("") + function s(e) { + try { + l(a.throw(e)) + } catch (e) { + i(e) + } + } + + function l(e) { + var t; + e.done ? r(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) { + e(t) + }))).then(o, s) + } + l((a = a.apply(e, t || [])).next()) + })) + } + + function d(e, t) { + var n, a, r, i, o = { + label: 0, + sent: function() { + if (1 & r[0]) throw r[1]; + return r[1] + }, + trys: [], + ops: [] + }; + return i = { + next: s(0), + throw: s(1), + return: s(2) + }, "function" == typeof Symbol && (i[Symbol.iterator] = function() { + return this + }), i; + + function s(i) { + return function(s) { + return function(i) { + if (n) throw new TypeError("Generator is already executing."); + for (; o;) try { + if (n = 1, a && (r = 2 & i[0] ? a.return : i[0] ? a.throw || ((r = a.return) && r.call(a), 0) : a.next) && !(r = r.call(a, i[1])).done) return r; + switch (a = 0, r && (i = [2 & i[0], r.value]), i[0]) { + case 0: + case 1: + r = i; + break; + case 4: + return o.label++, { + value: i[1], + done: !1 }; + case 5: + o.label++, a = i[1], i = [0]; + continue; + case 7: + i = o.ops.pop(), o.trys.pop(); + continue; default: - return function(t, n) { - return null === n ? ve(t, e) : [ve(t, e), "=", ve(n, e)].join("") + if (!((r = (r = o.trys).length > 0 && r[r.length - 1]) || 6 !== i[0] && 2 !== i[0])) { + o = 0; + continue } - } - }(t); - return e ? Object.keys(e).sort(t.sort).map((function(a) { - var r = e[a]; - if (void 0 === r) return ""; - if (null === r) return ve(a, t); - if (Array.isArray(r)) { - var i = []; - return r.slice().forEach((function(e) { - void 0 !== e && i.push(n(a, e, i.length)) - })), i.join("&") - } - return ve(a, t) + "=" + ve(r, t) - })).filter((function(e) { - return e.length > 0 - })).join("&") : "" - }, - _e = function(e, t, n) { - this.url = e, this.data = t || {}, this.headers = n - }; - _e.prototype.send = function(e) { - if (window.XDomainRequest) { - var t = new window.XDomainRequest; - t.open("POST", this.url, !0), t.onload = function() { - e(200, t.responseText) - }, t.onerror = function() { - "Request Entity Too Large" === t.responseText ? e(413, t.responseText) : e(500, t.responseText) - }, t.ontimeout = function() {}, t.onprogress = function() {}, t.send(ke(this.data)) - } else { - var n = new XMLHttpRequest; - n.open("POST", this.url, !0), n.onreadystatechange = function() { - 4 === n.readyState && e(n.status, n.responseText) - }, - function(e, t) { - for (var n in t) e.setRequestHeader(n, t[n]) - }(n, this.headers), n.send(ke(this.data)) - } - }; - var we = function() { - this._price = null, this._productId = null, this._quantity = 1, this._revenueType = null, this._properties = null - }; - we.prototype.setProductId = function(e) { - return "string" !== _(e) ? M.error("Unsupported type for productId: " + _(e) + ", expecting string") : I(e) ? M.error("Invalid empty productId") : this._productId = e, this - }, we.prototype.setQuantity = function(e) { - return "number" !== _(e) ? M.error("Unsupported type for quantity: " + _(e) + ", expecting number") : this._quantity = parseInt(e), this - }, we.prototype.setPrice = function(e) { - return "number" !== _(e) ? M.error("Unsupported type for price: " + _(e) + ", expecting number") : this._price = e, this - }, we.prototype.setRevenueType = function(e) { - return "string" !== _(e) ? M.error("Unsupported type for revenueType: " + _(e) + ", expecting string") : this._revenueType = e, this - }, we.prototype.setEventProperties = function(e) { - return "object" !== _(e) ? M.error("Unsupported type for eventProperties: " + _(e) + ", expecting object") : this._properties = F(e), this - }, we.prototype._isValidRevenue = function() { - return "number" === _(this._price) || (M.error("Invalid revenue, need to set price field"), !1) - }, we.prototype._toJSONObject = function() { - var e = "object" === _(this._properties) ? this._properties : {}; - return null !== this._productId && (e[g.REVENUE_PRODUCT_ID] = this._productId), null !== this._quantity && (e[g.REVENUE_QUANTITY] = this._quantity), null !== this._price && (e[g.REVENUE_PRICE] = this._price), null !== this._revenueType && (e[g.REVENUE_REVENUE_TYPE] = this._revenueType), e - }; - var Se = de((function(e, t) { - ! function(n, a) { - var r = "function", - i = "object", - o = "model", - s = "name", - l = "type", - c = "vendor", - u = "version", - d = "architecture", - p = "console", - h = "mobile", - m = "tablet", - f = "smarttv", - g = "wearable", - b = { - extend: function(e, t) { - var n = {}; - for (var a in e) t[a] && t[a].length % 2 == 0 ? n[a] = t[a].concat(e[a]) : n[a] = e[a]; - return n - }, - has: function(e, t) { - return "string" == typeof e && -1 !== t.toLowerCase().indexOf(e.toLowerCase()) - }, - lowerize: function(e) { - return e.toLowerCase() - }, - major: function(e) { - return "string" == typeof e ? e.replace(/[^\d\.]/g, "").split(".")[0] : a - }, - trim: function(e) { - return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") + if (3 === i[0] && (!r || i[1] > r[0] && i[1] < r[3])) { + o.label = i[1]; + break } - }, - y = { - rgx: function(e, t) { - for (var n, o, s, l, c, u, d = 0; d < t.length && !c;) { - var p = t[d], - h = t[d + 1]; - for (n = o = 0; n < p.length && !c;) - if (c = p[n++].exec(e)) - for (s = 0; s < h.length; s++) u = c[++o], typeof(l = h[s]) === i && l.length > 0 ? 2 == l.length ? typeof l[1] == r ? this[l[0]] = l[1].call(this, u) : this[l[0]] = l[1] : 3 == l.length ? typeof l[1] !== r || l[1].exec && l[1].test ? this[l[0]] = u ? u.replace(l[1], l[2]) : a : this[l[0]] = u ? l[1].call(this, u, l[2]) : a : 4 == l.length && (this[l[0]] = u ? l[3].call(this, u.replace(l[1], l[2])) : a) : this[l] = u || a; - d += 2 - } - }, - str: function(e, t) { - for (var n in t) - if (typeof t[n] === i && t[n].length > 0) { - for (var r = 0; r < t[n].length; r++) - if (b.has(t[n][r], e)) return "?" === n ? a : n - } else if (b.has(t[n], e)) return "?" === n ? a : n; - return e + if (6 === i[0] && o.label < r[1]) { + o.label = r[1], r = i; + break } - }, - v = { - browser: { - oldsafari: { - version: { - "1.0": "/8", - 1.2: "/1", - 1.3: "/3", - "2.0": "/412", - "2.0.2": "/416", - "2.0.3": "/417", - "2.0.4": "/419", - "?": "/" - } - } - }, - device: { - amazon: { - model: { - "Fire Phone": ["SD", "KF"] - } - }, - sprint: { - model: { - "Evo Shift 4G": "7373KT" - }, - vendor: { - HTC: "APA", - Sprint: "Sprint" - } - } - }, - os: { - windows: { - version: { - ME: "4.90", - "NT 3.11": "NT3.51", - "NT 4.0": "NT4.0", - 2e3: "NT 5.0", - XP: ["NT 5.1", "NT 5.2"], - Vista: "NT 6.0", - 7: "NT 6.1", - 8: "NT 6.2", - 8.1: "NT 6.3", - 10: ["NT 6.4", "NT 10.0"], - RT: "ARM" - } - } + if (r && o.label < r[2]) { + o.label = r[2], o.ops.push(i); + break } - }, - k = { - browser: [ - [/(opera\smini)\/([\w\.-]+)/i, /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, /(opera).+version\/([\w\.]+)/i, /(opera)[\/\s]+([\w\.]+)/i], - [s, u], - [/(opios)[\/\s]+([\w\.]+)/i], - [ - [s, "Opera Mini"], u - ], - [/\s(opr)\/([\w\.]+)/i], - [ - [s, "Opera"], u - ], - [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i, /(avant\s|iemobile|slim)(?:browser)?[\/\s]?([\w\.]*)/i, /(bidubrowser|baidubrowser)[\/\s]?([\w\.]+)/i, /(?:ms|\()(ie)\s([\w\.]+)/i, /(rekonq)\/([\w\.]*)/i, /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i], - [s, u], - [/(konqueror)\/([\w\.]+)/i], - [ - [s, "Konqueror"], u - ], - [/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i], - [ - [s, "IE"], u - ], - [/(edge|edgios|edga|edg)\/((\d+)?[\w\.]+)/i], - [ - [s, "Edge"], u - ], - [/(yabrowser)\/([\w\.]+)/i], - [ - [s, "Yandex"], u - ], - [/(Avast)\/([\w\.]+)/i], - [ - [s, "Avast Secure Browser"], u - ], - [/(AVG)\/([\w\.]+)/i], - [ - [s, "AVG Secure Browser"], u - ], - [/(puffin)\/([\w\.]+)/i], - [ - [s, "Puffin"], u - ], - [/(focus)\/([\w\.]+)/i], - [ - [s, "Firefox Focus"], u - ], - [/(opt)\/([\w\.]+)/i], - [ - [s, "Opera Touch"], u - ], - [/((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i], - [ - [s, "UCBrowser"], u - ], - [/(comodo_dragon)\/([\w\.]+)/i], - [ - [s, /_/g, " "], u - ], - [/(windowswechat qbcore)\/([\w\.]+)/i], - [ - [s, "WeChat(Win) Desktop"], u - ], - [/(micromessenger)\/([\w\.]+)/i], - [ - [s, "WeChat"], u - ], - [/(brave)\/([\w\.]+)/i], - [ - [s, "Brave"], u - ], - [/(qqbrowserlite)\/([\w\.]+)/i], - [s, u], - [/(QQ)\/([\d\.]+)/i], - [s, u], - [/m?(qqbrowser)[\/\s]?([\w\.]+)/i], - [s, u], - [/(baiduboxapp)[\/\s]?([\w\.]+)/i], - [s, u], - [/(2345Explorer)[\/\s]?([\w\.]+)/i], - [s, u], - [/(MetaSr)[\/\s]?([\w\.]+)/i], - [s], - [/(LBBROWSER)/i], - [s], - [/xiaomi\/miuibrowser\/([\w\.]+)/i], - [u, [s, "MIUI Browser"]], - [/;fbav\/([\w\.]+);/i], - [u, [s, "Facebook"]], - [/safari\s(line)\/([\w\.]+)/i, /android.+(line)\/([\w\.]+)\/iab/i], - [s, u], - [/headlesschrome(?:\/([\w\.]+)|\s)/i], - [u, [s, "Chrome Headless"]], - [/\swv\).+(chrome)\/([\w\.]+)/i], - [ - [s, /(.+)/, "$1 WebView"], u - ], - [/((?:oculus|samsung)browser)\/([\w\.]+)/i], - [ - [s, /(.+(?:g|us))(.+)/, "$1 $2"], u - ], - [/((?:android.+)crmo|crios)\/([\w\.]+)/i, /android.+(chrome)\/([\w\.]+)\s+(?:mobile\s?safari)/i], - [ - [s, "Chrome Mobile"], u - ], - [/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i], - [u, [s, "Android Browser"]], - [/(sailfishbrowser)\/([\w\.]+)/i], - [ - [s, "Sailfish Browser"], u - ], - [/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i], - [s, u], - [/(dolfin)\/([\w\.]+)/i], - [ - [s, "Dolphin"], u - ], - [/(qihu|qhbrowser|qihoobrowser|360browser)/i], - [ - [s, "360 Browser"] - ], - [/(coast)\/([\w\.]+)/i], - [ - [s, "Opera Coast"], u - ], - [/fxios\/([\w\.-]+)/i], - [u, [s, "Firefox"]], - [/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i], - [u, [s, "Mobile Safari"]], - [/version\/([\w\.]+).+?(mobile\s?safari|safari)/i], - [u, s], - [/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i], - [ - [s, "GSA"], u - ], - [/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i], - [s, [u, y.str, v.browser.oldsafari.version]], - [/(webkit|khtml)\/([\w\.]+)/i], - [s, u], - [/(navigator|netscape)\/([\w\.-]+)/i], - [ - [s, "Netscape"], u - ], - [/(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)/i, /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, /(links)\s\(([\w\.]+)/i, /(gobrowser)\/?([\w\.]*)/i, /(ice\s?browser)\/v?([\w\._]+)/i, /(mosaic)[\/\s]([\w\.]+)/i], - [s, u] - ], - cpu: [ - [/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i], - [ - [d, "amd64"] - ], - [/(ia32(?=;))/i], - [ - [d, b.lowerize] - ], - [/((?:i[346]|x)86)[;\)]/i], - [ - [d, "ia32"] - ], - [/windows\s(ce|mobile);\sppc;/i], - [ - [d, "arm"] - ], - [/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i], - [ - [d, /ower/, "", b.lowerize] - ], - [/(sun4\w)[;\)]/i], - [ - [d, "sparc"] - ], - [/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+[;l]))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i], - [ - [d, b.lowerize] - ] - ], - device: [ - [/\((ipad|playbook);[\w\s\),;-]+(rim|apple)/i], - [o, c, [l, m]], - [/applecoremedia\/[\w\.]+ \((ipad)/], - [o, [c, "Apple"], - [l, m] - ], - [/(apple\s{0,1}tv)/i], - [ - [o, "Apple TV"], - [c, "Apple"], - [l, f] - ], - [/(archos)\s(gamepad2?)/i, /(hp).+(touchpad)/i, /(hp).+(tablet)/i, /(kindle)\/([\w\.]+)/i, /\s(nook)[\w\s]+build\/(\w+)/i, /(dell)\s(strea[kpr\s\d]*[\dko])/i], - [c, o, [l, m]], - [/(kf[A-z]+)\sbuild\/.+silk\//i], - [o, [c, "Amazon"], - [l, m] - ], - [/(sd|kf)[0349hijorstuw]+\sbuild\/.+silk\//i], - [ - [o, y.str, v.device.amazon.model], - [c, "Amazon"], - [l, h] - ], - [/android.+aft([bms])\sbuild/i], - [o, [c, "Amazon"], - [l, f] - ], - [/\((ip[honed|\s\w*]+);.+(apple)/i], - [o, c, [l, h]], - [/\((ip[honed|\s\w*]+);/i], - [o, [c, "Apple"], - [l, h] - ], - [/(blackberry)[\s-]?(\w+)/i, /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i, /(hp)\s([\w\s]+\w)/i, /(asus)-?(\w+)/i], - [c, o, [l, h]], - [/\(bb10;\s(\w+)/i], - [o, [c, "BlackBerry"], - [l, h] - ], - [/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone|p00c)/i], - [o, [c, "Asus"], - [l, m] - ], - [/(sony)\s(tablet\s[ps])\sbuild\//i, /(sony)?(?:sgp.+)\sbuild\//i], - [ - [c, "Sony"], - [o, "Xperia Tablet"], - [l, m] - ], - [/android.+\s([c-g]\d{4}|so[-l]\w+)(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i], - [o, [c, "Sony"], - [l, h] - ], - [/\s(ouya)\s/i, /(nintendo)\s([wids3u]+)/i], - [c, o, [l, p]], - [/android.+;\s(shield)\sbuild/i], - [o, [c, "Nvidia"], - [l, p] - ], - [/(playstation\s[34portablevi]+)/i], - [o, [c, "Sony"], - [l, p] - ], - [/(sprint\s(\w+))/i], - [ - [c, y.str, v.device.sprint.vendor], - [o, y.str, v.device.sprint.model], - [l, h] - ], - [/(htc)[;_\s-]+([\w\s]+(?=\)|\sbuild)|\w+)/i, /(zte)-(\w*)/i, /(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i], - [c, [o, /_/g, " "], - [l, h] - ], - [/(nexus\s9)/i], - [o, [c, "HTC"], - [l, m] - ], - [/d\/huawei([\w\s-]+)[;\)]/i, /(nexus\s6p|vog-l29|ane-lx1|eml-l29)/i], - [o, [c, "Huawei"], - [l, h] - ], - [/android.+(bah2?-a?[lw]\d{2})/i], - [o, [c, "Huawei"], - [l, m] - ], - [/(microsoft);\s(lumia[\s\w]+)/i], - [c, o, [l, h]], - [/[\s\(;](xbox(?:\sone)?)[\s\);]/i], - [o, [c, "Microsoft"], - [l, p] - ], - [/(kin\.[onetw]{3})/i], - [ - [o, /\./g, " "], - [c, "Microsoft"], - [l, h] - ], - [/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)[\w\s]+build\//i, /mot[\s-]?(\w*)/i, /(XT\d{3,4}) build\//i, /(nexus\s6)/i], - [o, [c, "Motorola"], - [l, h] - ], - [/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i], - [o, [c, "Motorola"], - [l, m] - ], - [/hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i], - [ - [c, b.trim], - [o, b.trim], - [l, f] - ], - [/hbbtv.+maple;(\d+)/i], - [ - [o, /^/, "SmartTV"], - [c, "Samsung"], - [l, f] - ], - [/\(dtv[\);].+(aquos)/i], - [o, [c, "Sharp"], - [l, f] - ], - [/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i, /((SM-T\w+))/i], - [ - [c, "Samsung"], o, [l, m] - ], - [/smart-tv.+(samsung)/i], - [c, [l, f], o], - [/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i, /(sam[sung]*)[\s-]*(\w+-?[\w-]*)/i, /sec-((sgh\w+))/i], - [ - [c, "Samsung"], o, [l, h] - ], - [/sie-(\w*)/i], - [o, [c, "Siemens"], - [l, h] - ], - [/(maemo|nokia).*(n900|lumia\s\d+)/i, /(nokia)[\s_-]?([\w-]*)/i], - [ - [c, "Nokia"], o, [l, h] - ], - [/android[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i], - [o, [c, "Acer"], - [l, m] - ], - [/android.+([vl]k\-?\d{3})\s+build/i], - [o, [c, "LG"], - [l, m] - ], - [/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i], - [ - [c, "LG"], o, [l, m] - ], - [/(lg) netcast\.tv/i], - [c, o, [l, f]], - [/(nexus\s[45])/i, /lg[e;\s\/-]+(\w*)/i, /android.+lg(\-?[\d\w]+)\s+build/i], - [o, [c, "LG"], - [l, h] - ], - [/(lenovo)\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+))/i], - [c, o, [l, m]], - [/android.+(ideatab[a-z0-9\-\s]+)/i], - [o, [c, "Lenovo"], - [l, m] - ], - [/(lenovo)[_\s-]?([\w-]+)/i], - [c, o, [l, h]], - [/linux;.+((jolla));/i], - [c, o, [l, h]], - [/((pebble))app\/[\d\.]+\s/i], - [c, o, [l, g]], - [/android.+;\s(oppo)\s?([\w\s]+)\sbuild/i], - [c, o, [l, h]], - [/crkey/i], - [ - [o, "Chromecast"], - [c, "Google"], - [l, f] - ], - [/android.+;\s(glass)\s\d/i], - [o, [c, "Google"], - [l, g] - ], - [/android.+;\s(pixel c)[\s)]/i], - [o, [c, "Google"], - [l, m] - ], - [/android.+;\s(pixel( [23])?( xl)?)[\s)]/i], - [o, [c, "Google"], - [l, h] - ], - [/android.+;\s(\w+)\s+build\/hm\1/i, /android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, /android.+(mi[\s\-_]*(?:a\d|one|one[\s_]plus|note lte)?[\s_]*(?:\d?\w?)[\s_]*(?:plus)?)\s+build/i, /android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+))\s+build/i], - [ - [o, /_/g, " "], - [c, "Xiaomi"], - [l, h] - ], - [/android.+(mi[\s\-_]*(?:pad)(?:[\s_]*[\w\s]+))\s+build/i], - [ - [o, /_/g, " "], - [c, "Xiaomi"], - [l, m] - ], - [/android.+;\s(m[1-5]\snote)\sbuild/i], - [o, [c, "Meizu"], - [l, h] - ], - [/(mz)-([\w-]{2,})/i], - [ - [c, "Meizu"], o, [l, h] - ], - [/android.+a000(1)\s+build/i, /android.+oneplus\s(a\d{4})[\s)]/i], - [o, [c, "OnePlus"], - [l, h] - ], - [/android.+[;\/]\s*(RCT[\d\w]+)\s+build/i], - [o, [c, "RCA"], - [l, m] - ], - [/android.+[;\/\s]+(Venue[\d\s]{2,7})\s+build/i], - [o, [c, "Dell"], - [l, m] - ], - [/android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i], - [o, [c, "Verizon"], - [l, m] - ], - [/android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i], - [ - [c, "Barnes & Noble"], o, [l, m] - ], - [/android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i], - [o, [c, "NuVision"], - [l, m] - ], - [/android.+;\s(k88)\sbuild/i], - [o, [c, "ZTE"], - [l, m] - ], - [/android.+[;\/]\s*(gen\d{3})\s+build.*49h/i], - [o, [c, "Swiss"], - [l, h] - ], - [/android.+[;\/]\s*(zur\d{3})\s+build/i], - [o, [c, "Swiss"], - [l, m] - ], - [/android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i], - [o, [c, "Zeki"], - [l, m] - ], - [/(android).+[;\/]\s+([YR]\d{2})\s+build/i, /android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(\w{5})\sbuild/i], - [ - [c, "Dragon Touch"], o, [l, m] - ], - [/android.+[;\/]\s*(NS-?\w{0,9})\sbuild/i], - [o, [c, "Insignia"], - [l, m] - ], - [/android.+[;\/]\s*((NX|Next)-?\w{0,9})\s+build/i], - [o, [c, "NextBook"], - [l, m] - ], - [/android.+[;\/]\s*(Xtreme\_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i], - [ - [c, "Voice"], o, [l, h] - ], - [/android.+[;\/]\s*(LVTEL\-)?(V1[12])\s+build/i], - [ - [c, "LvTel"], o, [l, h] - ], - [/android.+;\s(PH-1)\s/i], - [o, [c, "Essential"], - [l, h] - ], - [/android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i], - [o, [c, "Envizen"], - [l, m] - ], - [/android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(\w{1,9})\s+build/i], - [c, o, [l, m]], - [/android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i], - [o, [c, "MachSpeed"], - [l, m] - ], - [/android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i], - [c, o, [l, m]], - [/android.+[;\/]\s*TU_(1491)\s+build/i], - [o, [c, "Rotor"], - [l, m] - ], - [/android.+(KS(.+))\s+build/i], - [o, [c, "Amazon"], - [l, m] - ], - [/android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i], - [c, o, [l, m]], - [/\s(tablet|tab)[;\/]/i, /\s(mobile)(?:[;\/]|\ssafari)/i], - [ - [l, b.lowerize], c, o - ], - [/[\s\/\(](smart-?tv)[;\)]/i], - [ - [l, f] - ], - [/(android[\w\.\s\-]{0,9});.+build/i], - [o, [c, "Generic"]] - ], - engine: [ - [/windows.+\sedge\/([\w\.]+)/i], - [u, [s, "EdgeHTML"]], - [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], - [u, [s, "Blink"]], - [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, /(icab)[\/\s]([23]\.[\d\.]+)/i], - [s, u], - [/rv\:([\w\.]{1,9}).+(gecko)/i], - [u, s] - ], - os: [ - [/microsoft\s(windows)\s(vista|xp)/i], - [s, u], - [/(windows)\snt\s6\.2;\s(arm)/i, /(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i, /(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i], - [ - [s, y.str, v.os.windows.name], - [u, y.str, v.os.windows.version] - ], - [/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i], - [ - [s, "Windows"], - [u, y.str, v.os.windows.version] - ], - [/\((bb)(10);/i], - [ - [s, "BlackBerry"], u - ], - [/(blackberry)\w*\/?([\w\.]*)/i, /(tizen|kaios)[\/\s]([\w\.]+)/i, /(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i], - [s, u], - [/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i], - [ - [s, "Symbian"], u - ], - [/\((series40);/i], - [s], - [/mozilla.+\(mobile;.+gecko.+firefox/i], - [ - [s, "Firefox OS"], u - ], - [/(nintendo|playstation)\s([wids34portablevu]+)/i, /(mint)[\/\s\(]?(\w*)/i, /(mageia|vectorlinux)[;\s]/i, /(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i, /(hurd|linux)\s?([\w\.]*)/i, /(gnu)\s?([\w\.]*)/i], - [ - [s, "Linux"], u - ], - [/(cros)\s[\w]+\s([\w\.]+\w)/i], - [ - [s, "Chromium OS"], u - ], - [/(sunos)\s?([\w\.\d]*)/i], - [ - [s, "Solaris"], u - ], - [/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i], - [ - [s, "Linux"], u - ], - [/(iphone)(?:.*os\s*([\w]*)\slike\smac|;\sopera)/i], - [ - [s, "iPhone"], - [u, /_/g, "."] - ], - [/(ipad)(?:.*os\s*([\w]*)\slike\smac|;\sopera)/i], - [ - [s, "iPad"], - [u, /_/g, "."] - ], - [/(haiku)\s(\w+)/i], - [s, u], - [/cfnetwork\/.+darwin/i, /ip[honead]{2,4}(?:.*os\s([\w]+)\slike\smac|;\sopera)/i], - [ - [u, /_/g, "."], - [s, "iOS"] - ], - [/(mac\sos\sx)\s?([\w\s\.]*)/i, /(macintosh|mac(?=_powerpc)\s)/i], - [ - [s, "Mac"], - [u, /_/g, "."] - ], - [/((?:open)?solaris)[\/\s-]?([\w\.]*)/i, /(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i, /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i, /(unix)\s?([\w\.]*)/i], - [s, u] - ] - }, - _ = function(e, t) { - if ("object" == typeof e && (t = e, e = a), !(this instanceof _)) return new _(e, t).getResult(); - var r = e || (n && n.navigator && n.navigator.userAgent ? n.navigator.userAgent : ""), - i = t ? b.extend(k, t) : k; - return this.getBrowser = function() { - var e = { - name: a, - version: a - }; - return y.rgx.call(e, r, i.browser), e.major = b.major(e.version), e - }, this.getCPU = function() { - var e = { - architecture: a - }; - return y.rgx.call(e, r, i.cpu), e - }, this.getDevice = function() { - var e = { - vendor: a, - model: a, - type: a - }; - return y.rgx.call(e, r, i.device), e - }, this.getEngine = function() { - var e = { - name: a, - version: a - }; - return y.rgx.call(e, r, i.engine), e - }, this.getOS = function() { - var e = { - name: a, - version: a - }; - return y.rgx.call(e, r, i.os), e - }, this.getResult = function() { - return { - ua: this.getUA(), - browser: this.getBrowser(), - engine: this.getEngine(), - os: this.getOS(), - device: this.getDevice(), - cpu: this.getCPU() - } - }, this.getUA = function() { - return r - }, this.setUA = function(e) { - return r = e, this - }, this - }; - _.VERSION = "0.7.21", _.BROWSER = { - NAME: s, - MAJOR: "major", - VERSION: u - }, _.CPU = { - ARCHITECTURE: d - }, _.DEVICE = { - MODEL: o, - VENDOR: c, - TYPE: l, - CONSOLE: p, - MOBILE: h, - SMARTTV: f, - TABLET: m, - WEARABLE: g, - EMBEDDED: "embedded" - }, _.ENGINE = { - NAME: s, - VERSION: u - }, _.OS = { - NAME: s, - VERSION: u - }, e.exports && (t = e.exports = _), t.UAParser = _; - var w = n && (n.jQuery || n.Zepto); - if (w && !w.ua) { - var S = new _; - w.ua = S.getResult(), w.ua.get = function() { - return S.getUA() - }, w.ua.set = function(e) { - S.setUA(e); - var t = S.getResult(); - for (var n in t) w.ua[n] = t[n] - } + r[2] && o.ops.pop(), o.trys.pop(); + continue } - }("object" == typeof window ? window : ue) - })), - Ee = (Se.UAParser, function e(t) { - return t ? (t ^ 16 * Math.random() >> t / 4).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, e) - }), - xe = "8.2.1", - Ce = { - apiEndpoint: "api.amplitude.com", - batchEvents: !1, - cookieExpiration: 365, - cookieName: "amplitude_id", - sameSiteCookie: "Lax", - cookieForceUpgrade: !1, - deferInitialization: !1, - disableCookies: !1, - deviceIdFromUrlParam: !1, - domain: "", - eventUploadPeriodMillis: 3e4, - eventUploadThreshold: 30, - forceHttps: !0, - includeFbclid: !1, - includeGclid: !1, - includeReferrer: !1, - includeUtm: !1, - language: navigator && (navigator.languages && navigator.languages[0] || navigator.language || navigator.userLanguage) || "", - logLevel: "WARN", - logAttributionCapturedEvent: !1, - optOut: !1, - onError: function() {}, - platform: "Web", - savedMaxCount: 1e3, - saveEvents: !0, - saveParamsReferrerOncePerSession: !0, - secureCookie: !1, - sessionTimeout: 18e5, - storage: g.STORAGE_DEFAULT, - trackingOptions: { - city: !0, - country: !0, - carrier: !0, - device_manufacturer: !0, - device_model: !0, - dma: !0, - ip_address: !0, - language: !0, - os_name: !0, - os_version: !0, - platform: !0, - region: !0, - version_name: !0 - }, - unsetParamsReferrerOnNewSession: !1, - unsentKey: "amplitude_unsent", - unsentIdentifyKey: "amplitude_unsent_identify", - uploadBatchSize: 100, - headers: { - "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" - } - }, - Ae = function(e) { - u() || M.warn("amplitude-js will not work in a non-browser environment. If you are planning to add Amplitude to a node environment, please use @amplitude/node"), this._instanceName = I(e) ? g.DEFAULT_INSTANCE : e.toLowerCase(), this._unsentEvents = [], this._unsentIdentifys = [], this._ua = new Se(navigator.userAgent).getResult(), this.options = i({}, Ce, { - trackingOptions: i({}, Ce.trackingOptions) - }), this.cookieStorage = (new ie).getStorage(), this._q = [], this._sending = !1, this._updateScheduled = !1, this._onInit = [], this._eventId = 0, this._identifyId = 0, this._lastEventTime = null, this._newSession = !1, this._sequenceNumber = 0, this._sessionId = null, this._isInitialized = !1, this._userAgent = navigator && navigator.userAgent || null - }; - Ae.prototype.Identify = ce, Ae.prototype.Revenue = we, Ae.prototype.init = function(e, t, n, a) { - var r = this; - if ("string" !== _(e) || I(e)) M.error("Invalid apiKey. Please re-initialize with a valid apiKey"); - else try { - Pe(this.options, n), u() && void 0 !== window.Prototype && Array.prototype.toJSON && (function() { - var e; - if (u()) { - var t = window, - n = Array; - if (void 0 !== t.Prototype && void 0 !== (null === (e = n.prototype) || void 0 === e ? void 0 : e.toJSON)) return delete n.prototype.toJSON, !0 - } - }(), M.warn("Prototype.js injected Array.prototype.toJSON. Deleting Array.prototype.toJSON to prevent double-stringify")), this.options.cookieName !== Ce.cookieName && M.warn("The cookieName option is deprecated. We will be ignoring it for newer cookies"), this.options.apiKey = e, this._storageSuffix = "_" + e + (this._instanceName === g.DEFAULT_INSTANCE ? "" : "_" + this._instanceName), this._storageSuffixV5 = e.slice(0, 6), this._oldCookiename = this.options.cookieName + this._storageSuffix, this._unsentKey = this.options.unsentKey + this._storageSuffix, this._unsentIdentifyKey = this.options.unsentIdentifyKey + this._storageSuffix, this._cookieName = g.COOKIE_PREFIX + "_" + this._storageSuffixV5, this.cookieStorage.options({ - expirationDays: this.options.cookieExpiration, - domain: this.options.domain, - secure: this.options.secureCookie, - sameSite: this.options.sameSiteCookie - }), this._metadataStorage = new se({ - storageKey: this._cookieName, - disableCookies: this.options.disableCookies, - expirationDays: this.options.cookieExpiration, - domain: this.options.domain, - secure: this.options.secureCookie, - sameSite: this.options.sameSiteCookie, - storage: this.options.storage - }); - var i = !!this.cookieStorage.get(this._oldCookiename), - o = !!this._metadataStorage.load(); - this._useOldCookie = !o && i && !this.options.cookieForceUpgrade; - var s = o || i; - if (this.options.domain = this.cookieStorage.options().domain, this.options.deferInitialization && !s) return void this._deferInitialization(e, t, n, a); - "string" === _(this.options.logLevel) && O(this.options.logLevel); - var l = Re(this); - this._apiPropertiesTrackingOptions = Object.keys(l).length > 0 ? { - tracking_options: l - } : {}, this.options.cookieForceUpgrade && i && (o || Te(this), this.cookieStorage.remove(this._oldCookiename)), De(this), this._pendingReadStorage = !0; - this.options.saveEvents && (this._unsentEvents = this._loadSavedUnsentEvents(this.options.unsentKey).map((function(e) { - return { - event: e - } - })).concat(this._unsentEvents), this._unsentIdentifys = this._loadSavedUnsentEvents(this.options.unsentIdentifyKey).map((function(e) { - return { - event: e - } - })).concat(this._unsentIdentifys)), - function(e) { - r.options.deviceId = r._getInitialDeviceId(n && n.deviceId, e), r.options.userId = "string" === _(t) && !I(t) && t || "number" === _(t) && t.toString() || r.options.userId || null; - var a = (new Date).getTime(); - (!r._sessionId || !r._lastEventTime || a - r._lastEventTime > r.options.sessionTimeout) && (r.options.unsetParamsReferrerOnNewSession && r._unsetUTMParams(), r._newSession = !0, r._sessionId = a, r.options.saveParamsReferrerOncePerSession && r._trackParamsAndReferrer()), r.options.saveParamsReferrerOncePerSession || r._trackParamsAndReferrer(), r.options.saveEvents && (je(r._unsentEvents), je(r._unsentIdentifys)), r._lastEventTime = a, Me(r), r._pendingReadStorage = !1, r._sendEventsIfReady(); - for (var i = 0; i < r._onInit.length; i++) r._onInit[i](r); - r._onInit = [], r._isInitialized = !0 - }(), this.runQueuedFunctions(), "function" === _(a) && a(this) - } catch (e) { - M.error(e), "function" === _(n.onError) && n.onError(e) - } - }, Ae.prototype.deleteLowerLevelDomainCookies = function() { - var e = G(), - t = this.options.domain && "." === this.options.domain[0] ? this.options.domain.slice(1) : this.options.domain; - if (t && e !== t && new RegExp(t + "$").test(e)) { - for (var n = e.split("."), a = t.split("."), r = n.length; r > a.length; --r) { - var i = n.slice(n.length - r).join("."); - V(this._cookieName, null, { - domain: "." + i - }) - } - V(this._cookieName, null, {}) - } - }, Ae.prototype._getInitialDeviceId = function(e, t) { - if (e) return e; - if (this.options.deviceIdFromUrlParam) { - var n = this._getDeviceIdFromUrlParam(this._getUrlParams()); - if (n) return n - } - return this.options.deviceId ? this.options.deviceId : t || B() - }; - var je = function(e) { - for (var t = 0; t < e.length; t++) { - var n = e[t].event.user_properties, - a = e[t].event.event_properties, - r = e[t].event.groups; - e[t].event.user_properties = F(n), e[t].event.event_properties = F(a), e[t].event.groups = R(r) - } - }; - Ae.prototype._trackParamsAndReferrer = function() { - var e, t, n, a; - if (this.options.includeUtm && (e = this._initUtmData()), this.options.includeReferrer && (t = this._saveReferrer(this._getReferrer())), this.options.includeGclid && (n = this._saveGclid(this._getUrlParams())), this.options.includeFbclid && (a = this._saveFbclid(this._getUrlParams())), this.options.logAttributionCapturedEvent) { - var r = i({}, e, t, n, a); - Object.keys(r).length > 0 && this.logEvent(g.ATTRIBUTION_EVENT, r) - } - }; - var Pe = function e(t, n) { - if ("object" === _(n)) { - var a = new Set(["headers"]), - r = function(a) { - if (Object.prototype.hasOwnProperty.call(t, a)) { - var r = n[a], - i = _(t[a]); - L(r, a + " option", i) && ("boolean" === i ? t[a] = !!r : "string" === i && !I(r) || "number" === i && r > 0 || "function" === i ? t[a] = r : "object" === i && e(t[a], r)) - } - }; - for (var o in n) a.has(o) ? t[o] = i({}, t[o], n[o]) : Object.prototype.hasOwnProperty.call(n, o) && r(o) - } - }; - Ae.prototype.runQueuedFunctions = function() { - var e = this._q; - this._q = []; - for (var t = 0; t < e.length; t++) { - var n = this[e[t][0]]; - "function" === _(n) && n.apply(this, e[t].slice(1)) - } - }, Ae.prototype._apiKeySet = function(e) { - return !I(this.options.apiKey) || (M.error("Invalid apiKey. Please set a valid apiKey with init() before calling " + e), !1) - }, Ae.prototype._loadSavedUnsentEvents = function(e) { - var t = this._getFromStorage(re, e), - n = this._parseSavedUnsentEventsString(t, e); - return this._setInStorage(re, e, JSON.stringify(n)), n - }, Ae.prototype._parseSavedUnsentEventsString = function(e, t) { - if (I(e)) return []; - if ("string" === _(e)) try { - var n = JSON.parse(e); - if ("array" === _(n)) return n - } catch (e) {} - return M.error("Unable to load " + t + " events. Restart with a new empty queue."), [] - }, Ae.prototype.isNewSession = function() { - return this._newSession - }, Ae.prototype.onInit = function(e) { - this._isInitialized ? e(this) : this._onInit.push(e) - }, Ae.prototype.getSessionId = function() { - return this._sessionId - }, Ae.prototype.nextEventId = function() { - return this._eventId++, this._eventId - }, Ae.prototype.nextIdentifyId = function() { - return this._identifyId++, this._identifyId - }, Ae.prototype.nextSequenceNumber = function() { - return this._sequenceNumber++, this._sequenceNumber - }, Ae.prototype._unsentCount = function() { - return this._unsentEvents.length + this._unsentIdentifys.length - }, Ae.prototype._sendEventsIfReady = function() { - return 0 !== this._unsentCount() && (this.options.batchEvents ? this._unsentCount() >= this.options.eventUploadThreshold ? (this.sendEvents(), !0) : (this._updateScheduled || (this._updateScheduled = !0, setTimeout(function() { - this._updateScheduled = !1, this.sendEvents() - }.bind(this), this.options.eventUploadPeriodMillis)), !1) : (this.sendEvents(), !0)) - }, Ae.prototype._getFromStorage = function(e, t) { - return e.getItem(t + this._storageSuffix) - }, Ae.prototype._setInStorage = function(e, t, n) { - e.setItem(t + this._storageSuffix, n) - }; - var De = function(e) { - if (e._useOldCookie) { - var t = e.cookieStorage.get(e._oldCookiename); - "object" !== _(t) || Oe(e, t) - } else { - var n = e._metadataStorage.load(); - "object" === _(n) && Oe(e, n) - } - }, - Te = function(e) { - var t = e.cookieStorage.get(e._oldCookiename); - "object" === _(t) && (Oe(e, t), Me(e)) - }, - Oe = function(e, t) { - t.deviceId && (e.options.deviceId = t.deviceId), t.userId && (e.options.userId = t.userId), null !== t.optOut && void 0 !== t.optOut && !1 !== t.optOut && (e.options.optOut = t.optOut), t.sessionId && (e._sessionId = parseInt(t.sessionId, 10)), t.lastEventTime && (e._lastEventTime = parseInt(t.lastEventTime, 10)), t.eventId && (e._eventId = parseInt(t.eventId, 10)), t.identifyId && (e._identifyId = parseInt(t.identifyId, 10)), t.sequenceNumber && (e._sequenceNumber = parseInt(t.sequenceNumber, 10)) - }, - Me = function(e) { - var t = { - deviceId: e.options.deviceId, - userId: e.options.userId, - optOut: e.options.optOut, - sessionId: e._sessionId, - lastEventTime: e._lastEventTime, - eventId: e._eventId, - identifyId: e._identifyId, - sequenceNumber: e._sequenceNumber - }; - e._useOldCookie ? e.cookieStorage.set(e.options.cookieName + e._storageSuffix, t) : e._metadataStorage.save(t) - }; - Ae.prototype._initUtmData = function(e, t) { - e = e || this._getUrlParams(), t = t || this.cookieStorage.get("__utmz"); - var n, a, r, i, o, s, l, c, u, d, p, h = (a = e, r = (n = t) ? "?" + n.split(".").slice(-1)[0].replace(/\|/g, "&") : "", i = function(e, t, n, a) { - return N(e, t) || N(n, a) - }, o = i(g.UTM_SOURCE, a, "utmcsr", r), s = i(g.UTM_MEDIUM, a, "utmcmd", r), l = i(g.UTM_CAMPAIGN, a, "utmccn", r), c = i(g.UTM_TERM, a, "utmctr", r), u = i(g.UTM_CONTENT, a, "utmcct", r), d = {}, (p = function(e, t) { - I(t) || (d[e] = t) - })(g.UTM_SOURCE, o), p(g.UTM_MEDIUM, s), p(g.UTM_CAMPAIGN, l), p(g.UTM_TERM, c), p(g.UTM_CONTENT, u), d); - return Ie(this, h), h - }, Ae.prototype._unsetUTMParams = function() { - var e = new ce; - e.unset(g.REFERRER), e.unset(g.UTM_SOURCE), e.unset(g.UTM_MEDIUM), e.unset(g.UTM_CAMPAIGN), e.unset(g.UTM_TERM), e.unset(g.UTM_CONTENT), this.identify(e) - }; - var Ie = function(e, t) { - if ("object" === _(t) && 0 !== Object.keys(t).length) { - var n = new ce; - for (var a in t) Object.prototype.hasOwnProperty.call(t, a) && (n.setOnce("initial_" + a, t[a]), n.set(a, t[a])); - e.identify(n) - } - }; - Ae.prototype._getReferrer = function() { - return document.referrer - }, Ae.prototype._getUrlParams = function() { - return location.search - }, Ae.prototype._saveGclid = function(e) { - var t = N("gclid", e); - if (!I(t)) { - var n = { - gclid: t - }; - return Ie(this, n), n - } - }, Ae.prototype._saveFbclid = function(e) { - var t = N("fbclid", e); - if (!I(t)) { - var n = { - fbclid: t - }; - return Ie(this, n), n - } - }, Ae.prototype._getDeviceIdFromUrlParam = function(e) { - return N(g.AMP_DEVICE_ID_PARAM, e) - }, Ae.prototype._getReferringDomain = function(e) { - if (I(e)) return null; - var t = e.split("/"); - return t.length >= 3 ? t[2] : null - }, Ae.prototype._saveReferrer = function(e) { - if (!I(e)) { - var t = { - referrer: e, - referring_domain: this._getReferringDomain(e) - }; - return Ie(this, t), t - } - }, Ae.prototype.saveEvents = function() { - try { - var e = JSON.stringify(this._unsentEvents.map((function(e) { - return e.event - }))); - this._setInStorage(re, this.options.unsentKey, e) - } catch (e) {} - try { - var t = JSON.stringify(this._unsentIdentifys.map((function(e) { - return e.event - }))); - this._setInStorage(re, this.options.unsentIdentifyKey, t) - } catch (e) {} - }, Ae.prototype.setDomain = function(e) { - if (this._shouldDeferCall()) return this._q.push(["setDomain"].concat(Array.prototype.slice.call(arguments, 0))); - if (L(e, "domain", "string")) try { - this.cookieStorage.options({ - expirationDays: this.options.cookieExpiration, - secure: this.options.secureCookie, - domain: e, - sameSite: this.options.sameSiteCookie - }), this.options.domain = this.cookieStorage.options().domain, De(this), Me(this) - } catch (e) { - M.error(e) - } - }, Ae.prototype.setUserId = function(e) { - if (this._shouldDeferCall()) return this._q.push(["setUserId"].concat(Array.prototype.slice.call(arguments, 0))); - try { - this.options.userId = null != e && "" + e || null, Me(this) - } catch (e) { - M.error(e) - } - }, Ae.prototype.setGroup = function(e, t) { - if (this._shouldDeferCall()) return this._q.push(["setGroup"].concat(Array.prototype.slice.call(arguments, 0))); - if (this._apiKeySet("setGroup()") && L(e, "groupType", "string") && !I(e)) { - var n = {}; - n[e] = t; - var a = (new ce).set(e, t); - this._logEvent(g.IDENTIFY_EVENT, null, null, a.userPropertiesOperations, n, null, null, null) - } - }, Ae.prototype.setOptOut = function(e) { - if (this._shouldDeferCall()) return this._q.push(["setOptOut"].concat(Array.prototype.slice.call(arguments, 0))); - if (L(e, "enable", "boolean")) try { - this.options.optOut = e, Me(this) - } catch (e) { - M.error(e) - } - }, Ae.prototype.setSessionId = function(e) { - if (L(e, "sessionId", "number")) try { - this._sessionId = e, Me(this) - } catch (e) { - M.error(e) - } - }, Ae.prototype.resetSessionId = function() { - this.setSessionId((new Date).getTime()) - }, Ae.prototype.regenerateDeviceId = function() { - if (this._shouldDeferCall()) return this._q.push(["regenerateDeviceId"].concat(Array.prototype.slice.call(arguments, 0))); - this.setDeviceId(B()) - }, Ae.prototype.setDeviceId = function(e) { - if (this._shouldDeferCall()) return this._q.push(["setDeviceId"].concat(Array.prototype.slice.call(arguments, 0))); - if (L(e, "deviceId", "string")) try { - I(e) || (this.options.deviceId = "" + e, Me(this)) - } catch (e) { - M.error(e) - } - }, Ae.prototype.setUserProperties = function(e) { - if (this._shouldDeferCall()) return this._q.push(["setUserProperties"].concat(Array.prototype.slice.call(arguments, 0))); - if (this._apiKeySet("setUserProperties()") && L(e, "userProperties", "object")) { - var t = z(F(e)); - if (0 !== Object.keys(t).length) { - var n = new ce; - for (var a in t) Object.prototype.hasOwnProperty.call(t, a) && n.set(a, t[a]); - this.identify(n) - } - } - }, Ae.prototype.clearUserProperties = function() { - if (this._shouldDeferCall()) return this._q.push(["clearUserProperties"].concat(Array.prototype.slice.call(arguments, 0))); - if (this._apiKeySet("clearUserProperties()")) { - var e = new ce; - e.clearAll(), this.identify(e) - } - }; - var Ne = function(e, t) { - for (var n = 0; n < t._q.length; n++) { - var a = e[t._q[n][0]]; - "function" === _(a) && a.apply(e, t._q[n].slice(1)) - } - return e - }; - Ae.prototype.identify = function(e, t) { - if (this._shouldDeferCall()) return this._q.push(["identify"].concat(Array.prototype.slice.call(arguments, 0))); - if (this._apiKeySet("identify()")) - if ("object" === _(e) && Object.prototype.hasOwnProperty.call(e, "_q") && (e = Ne(new ce, e)), e instanceof ce) { - if (Object.keys(e.userPropertiesOperations).length > 0) return this._logEvent(g.IDENTIFY_EVENT, null, null, e.userPropertiesOperations, null, null, null, t); - "function" === _(t) && t(0, "No request sent", { - reason: "No user property operations" - }) - } else M.error("Invalid identify input type. Expected Identify object but saw " + _(e)), "function" === _(t) && t(0, "No request sent", { - reason: "Invalid identify input type" - }); - else "function" === _(t) && t(0, "No request sent", { - reason: "API key is not set" - }) - }, Ae.prototype.groupIdentify = function(e, t, n, a) { - if (this._shouldDeferCall()) return this._q.push(["groupIdentify"].concat(Array.prototype.slice.call(arguments, 0))); - if (this._apiKeySet("groupIdentify()")) - if (L(e, "group_type", "string") && !I(e)) - if (null != t) - if ("object" === _(n) && Object.prototype.hasOwnProperty.call(n, "_q") && (n = Ne(new ce, n)), n instanceof ce) { - if (Object.keys(n.userPropertiesOperations).length > 0) return this._logEvent(g.GROUP_IDENTIFY_EVENT, null, null, null, r({}, e, t), n.userPropertiesOperations, null, a); - "function" === _(a) && a(0, "No request sent", { - reason: "No group property operations" - }) - } else M.error("Invalid identify input type. Expected Identify object but saw " + _(n)), "function" === _(a) && a(0, "No request sent", { - reason: "Invalid identify input type" - }); - else "function" === _(a) && a(0, "No request sent", { - reason: "Invalid group name" - }); - else "function" === _(a) && a(0, "No request sent", { - reason: "Invalid group type" - }); - else "function" === _(a) && a(0, "No request sent", { - reason: "API key is not set" - }) - }, Ae.prototype.setVersionName = function(e) { - if (this._shouldDeferCall()) return this._q.push(["setVersionName"].concat(Array.prototype.slice.call(arguments, 0))); - L(e, "versionName", "string") && (this.options.versionName = e) - }, Ae.prototype._logEvent = function(e, t, n, a, r, o, s, l) { - if (De(this), e) - if (this.options.optOut) "function" === _(l) && l(0, "No request sent", { - reason: "optOut is set to true" - }); - else try { - var c; - c = e === g.IDENTIFY_EVENT || e === g.GROUP_IDENTIFY_EVENT ? this.nextIdentifyId() : this.nextEventId(); - var u = this.nextSequenceNumber(), - d = "number" === _(s) ? s : (new Date).getTime(); - (!this._sessionId || !this._lastEventTime || d - this._lastEventTime > this.options.sessionTimeout) && (this._sessionId = d), this._lastEventTime = d, Me(this); - var p = this._ua.browser.name, - h = this._ua.browser.major, - m = this._ua.os.name; - a = a || {}; - var f = i({}, this._apiPropertiesTrackingOptions); - n = i({}, n || {}, f), t = t || {}, r = r || {}, o = o || {}; - var b = { - device_id: this.options.deviceId, - user_id: this.options.userId, - timestamp: d, - event_id: c, - session_id: this._sessionId || -1, - event_type: e, - version_name: this.options.versionName || null, - platform: ze(this, "platform") ? this.options.platform : null, - os_name: ze(this, "os_name") && p || null, - os_version: ze(this, "os_version") && h || null, - device_model: ze(this, "device_model") && m || null, - language: ze(this, "language") ? this.options.language : null, - api_properties: n, - event_properties: z(F(t)), - user_properties: z(F(a)), - uuid: Ee(), - library: { - name: "amplitude-js", - version: xe - }, - sequence_number: u, - groups: z(R(r)), - group_properties: z(F(o)), - user_agent: this._userAgent - }; - return e === g.IDENTIFY_EVENT || e === g.GROUP_IDENTIFY_EVENT ? (this._unsentIdentifys.push({ - event: b, - callback: l - }), this._limitEventsQueued(this._unsentIdentifys)) : (this._unsentEvents.push({ - event: b, - callback: l - }), this._limitEventsQueued(this._unsentEvents)), this.options.saveEvents && this.saveEvents(), this._sendEventsIfReady(), c + i = t.call(e, o) } catch (e) { - M.error(e) - } else "function" === _(l) && l(0, "No request sent", { - reason: "Missing eventType" - }) - }; - var ze = function(e, t) { - return !!e.options.trackingOptions[t] - }, - Re = function(e) { - for (var t = ["city", "country", "dma", "ip_address", "region"], n = {}, a = 0; a < t.length; a++) { - var r = t[a]; - ze(e, r) || (n[r] = !1) - } - return n - }; - Ae.prototype._limitEventsQueued = function(e) { - e.length > this.options.savedMaxCount && e.splice(0, e.length - this.options.savedMaxCount).forEach((function(e) { - "function" === _(e.callback) && e.callback(0, "No request sent", { - reason: "Event dropped because options.savedMaxCount exceeded. User may be offline or have a content blocker" - }) - })) - }, Ae.prototype.logEvent = function(e, t, n) { - return this._shouldDeferCall() ? this._q.push(["logEvent"].concat(Array.prototype.slice.call(arguments, 0))) : this.logEventWithTimestamp(e, t, null, n) - }, Ae.prototype.logEventWithTimestamp = function(e, t, n, a) { - return this._shouldDeferCall() ? this._q.push(["logEventWithTimestamp"].concat(Array.prototype.slice.call(arguments, 0))) : this._apiKeySet("logEvent()") ? L(e, "eventType", "string") ? I(e) ? ("function" === _(a) && a(0, "No request sent", { - reason: "Missing eventType" - }), -1) : this._logEvent(e, t, null, null, null, null, n, a) : ("function" === _(a) && a(0, "No request sent", { - reason: "Invalid type for eventType" - }), -1) : ("function" === _(a) && a(0, "No request sent", { - reason: "API key not set" - }), -1) - }, Ae.prototype.logEventWithGroups = function(e, t, n, a) { - return this._shouldDeferCall() ? this._q.push(["logEventWithGroups"].concat(Array.prototype.slice.call(arguments, 0))) : this._apiKeySet("logEventWithGroups()") ? L(e, "eventType", "string") ? this._logEvent(e, t, null, null, n, null, null, a) : ("function" === _(a) && a(0, "No request sent", { - reason: "Invalid type for eventType" - }), -1) : ("function" === _(a) && a(0, "No request sent", { - reason: "API key not set" - }), -1) - }; - var Le = function(e) { - return !isNaN(parseFloat(e)) && isFinite(e) - }; - Ae.prototype.logRevenueV2 = function(e) { - if (this._shouldDeferCall()) return this._q.push(["logRevenueV2"].concat(Array.prototype.slice.call(arguments, 0))); - if (this._apiKeySet("logRevenueV2()")) - if ("object" === _(e) && Object.prototype.hasOwnProperty.call(e, "_q") && (e = Ne(new we, e)), e instanceof we) { - if (e && e._isValidRevenue()) return this.logEvent(g.REVENUE_EVENT, e._toJSONObject()) - } else M.error("Invalid revenue input type. Expected Revenue object but saw " + _(e)) - }, Ae.prototype.logRevenue = function(e, t, n) { - return this._shouldDeferCall() ? this._q.push(["logRevenue"].concat(Array.prototype.slice.call(arguments, 0))) : this._apiKeySet("logRevenue()") && Le(e) && (void 0 === t || Le(t)) ? this._logEvent(g.REVENUE_EVENT, {}, { - productId: n, - special: "revenue_amount", - quantity: t || 1, - price: e - }, null, null, null, null, null) : -1 - }, Ae.prototype.removeEvents = function(e, t, n, a) { - Fe(this, "_unsentEvents", e, n, a), Fe(this, "_unsentIdentifys", t, n, a) - }; - var Fe = function(e, t, n, a, r) { - if (!(n < 0)) { - for (var i = [], o = 0; o < e[t].length; o++) { - var s = e[t][o]; - s.event.event_id > n ? i.push(s) : s.callback && s.callback(a, r) - } - e[t] = i - } - }; - Ae.prototype.sendEvents = function() { - if (this._apiKeySet("sendEvents()")) { - if (this.options.optOut) this.removeEvents(1 / 0, 1 / 0, 0, "No request sent", { - reason: "Opt out is set to true" - }); - else if (0 !== this._unsentCount() && !this._sending) { - this._sending = !0; - var e = (this.options.forceHttps || "https:" === window.location.protocol ? "https" : "http") + "://" + this.options.apiEndpoint, - t = Math.min(this._unsentCount(), this.options.uploadBatchSize), - n = this._mergeEventsAndIdentifys(t), - a = n.maxEventId, - r = n.maxIdentifyId, - i = JSON.stringify(n.eventsToSend.map((function(e) { - return e.event - }))), - o = (new Date).getTime(), - s = { - client: this.options.apiKey, - e: i, - v: g.API_VERSION, - upload_time: o, - checksum: pe(g.API_VERSION + this.options.apiKey + i + o) - }, - l = this; - new _e(e, s, this.options.headers).send((function(e, n) { - l._sending = !1; - try { - 200 === e && "success" === n ? (l.removeEvents(a, r, e, n), l.options.saveEvents && l.saveEvents(), l._sendEventsIfReady()) : 413 === e && (1 === l.options.uploadBatchSize && l.removeEvents(a, r, e, n), l.options.uploadBatchSize = Math.ceil(t / 2), l.sendEvents()) - } catch (e) {} - })) + i = [6, e], a = 0 + } finally { + n = r = 0 } - } else this.removeEvents(1 / 0, 1 / 0, 0, "No request sent", { - reason: "API key not set" - }) - }, Ae.prototype._mergeEventsAndIdentifys = function(e) { - for (var t = [], n = 0, a = -1, r = 0, i = -1; t.length < e;) { - var o = void 0, - s = r >= this._unsentIdentifys.length, - l = n >= this._unsentEvents.length; - if (l && s) { - M.error("Merging Events and Identifys, less events and identifys than expected"); - break + if (5 & i[0]) throw i[1]; + return { + value: i[0] ? i[1] : void 0, + done: !0 } - s ? a = (o = this._unsentEvents[n++]).event.event_id : l ? i = (o = this._unsentIdentifys[r++]).event.event_id : !("sequence_number" in this._unsentEvents[n].event) || this._unsentEvents[n].event.sequence_number < this._unsentIdentifys[r].event.sequence_number ? a = (o = this._unsentEvents[n++]).event.event_id : i = (o = this._unsentIdentifys[r++]).event.event_id, t.push(o) + }([i, s]) + } + } + } + var p = Object.create ? function(e, t, n, a) { + void 0 === a && (a = n), Object.defineProperty(e, a, { + enumerable: !0, + get: function() { + return t[n] + } + }) + } : function(e, t, n, a) { + void 0 === a && (a = n), e[a] = t[n] + }; + + function h(e, t) { + for (var n in e) "default" === n || Object.prototype.hasOwnProperty.call(t, n) || p(t, e, n) + } + + function m(e) { + var t = "function" == typeof Symbol && Symbol.iterator, + n = t && e[t], + a = 0; + if (n) return n.call(e); + if (e && "number" == typeof e.length) return { + next: function() { + return e && a >= e.length && (e = void 0), { + value: e && e[a++], + done: !e } - return { - eventsToSend: t, - maxEventId: a, - maxIdentifyId: i - } - }, Ae.prototype.setGlobalUserProperties = function(e) { - this.setUserProperties(e) - }, Ae.prototype.__VERSION__ = xe, Ae.prototype._shouldDeferCall = function() { - return this._pendingReadStorage || this._initializationDeferred - }, Ae.prototype._deferInitialization = function() { - this._initializationDeferred = !0, this._q.push(["init"].concat(Array.prototype.slice.call(arguments, 0))) - }, Ae.prototype.enableTracking = function() { - this._initializationDeferred = !1, Me(this), this.runQueuedFunctions() - }; - var qe = function() { - this.options = i({}, Ce), this._q = [], this._instances = {} - }; - qe.prototype.Identify = ce, qe.prototype.Revenue = we, qe.prototype.getInstance = function(e) { - e = I(e) ? g.DEFAULT_INSTANCE : e.toLowerCase(); - var t = this._instances[e]; - return void 0 === t && (t = new Ae(e), this._instances[e] = t), t - }, qe.prototype.runQueuedFunctions = function() { - for (var e = 0; e < this._q.length; e++) { - var t = this[this._q[e][0]]; - "function" === _(t) && t.apply(this, this._q[e].slice(1)) - } - for (var n in this._q = [], this._instances) Object.prototype.hasOwnProperty.call(this._instances, n) && this._instances[n].runQueuedFunctions() - }, qe.prototype.init = function(e, t, n, a) { - this.getInstance().init(e, t, n, function(e) { - this.options = e.options, "function" === _(a) && a(e) - }.bind(this)) - }, qe.prototype.isNewSession = function() { - return this.getInstance().isNewSession() - }, qe.prototype.getSessionId = function() { - return this.getInstance().getSessionId() - }, qe.prototype.nextEventId = function() { - return this.getInstance().nextEventId() - }, qe.prototype.nextIdentifyId = function() { - return this.getInstance().nextIdentifyId() - }, qe.prototype.nextSequenceNumber = function() { - return this.getInstance().nextSequenceNumber() - }, qe.prototype.saveEvents = function() { - this.getInstance().saveEvents() - }, qe.prototype.setDomain = function(e) { - this.getInstance().setDomain(e) - }, qe.prototype.setUserId = function(e) { - this.getInstance().setUserId(e) - }, qe.prototype.setGroup = function(e, t) { - this.getInstance().setGroup(e, t) - }, qe.prototype.setOptOut = function(e) { - this.getInstance().setOptOut(e) - }, qe.prototype.regenerateDeviceId = function() { - this.getInstance().regenerateDeviceId() - }, qe.prototype.setDeviceId = function(e) { - this.getInstance().setDeviceId(e) - }, qe.prototype.setUserProperties = function(e) { - this.getInstance().setUserProperties(e) - }, qe.prototype.clearUserProperties = function() { - this.getInstance().clearUserProperties() - }, qe.prototype.identify = function(e, t) { - this.getInstance().identify(e, t) - }, qe.prototype.setVersionName = function(e) { - this.getInstance().setVersionName(e) - }, qe.prototype.logEvent = function(e, t, n) { - return this.getInstance().logEvent(e, t, n) - }, qe.prototype.logEventWithGroups = function(e, t, n, a) { - return this.getInstance().logEventWithGroups(e, t, n, a) - }, qe.prototype.logRevenueV2 = function(e) { - return this.getInstance().logRevenueV2(e) - }, qe.prototype.logRevenue = function(e, t, n) { - return this.getInstance().logRevenue(e, t, n) - }, qe.prototype.removeEvents = function(e, t) { - this.getInstance().removeEvents(e, t) - }, qe.prototype.sendEvents = function(e) { - this.getInstance().sendEvents(e) - }, qe.prototype.setGlobalUserProperties = function(e) { - this.getInstance().setUserProperties(e) - }, qe.prototype.__VERSION__ = xe; - var Be = window.amplitude || {}, - Ue = new qe; - for (var He in Ue._q = Be._q || [], Be._iq) Object.prototype.hasOwnProperty.call(Be._iq, He) && (Ue.getInstance(He)._q = Be._iq[He]._q || []); - return Ue.runQueuedFunctions(), Ue - }() - }, 6952: e => { - "use strict"; - e.exports = function(e, t, n) { - if ("function" == typeof Array.prototype.find) return e.find(t, n); - n = n || this; - var a, r = e.length; - if ("function" != typeof t) throw new TypeError(t + " is not a function"); - for (a = 0; a < r; a++) - if (t.call(n, e[a], a, e)) return e[a] - } - }, 7943: (e, t) => { - "use strict"; - t.byteLength = function(e) { - var t = l(e), - n = t[0], - a = t[1]; - return 3 * (n + a) / 4 - a - }, t.toByteArray = function(e) { - var t, n, i = l(e), - o = i[0], - s = i[1], - c = new r(function(e, t, n) { - return 3 * (t + n) / 4 - n - }(0, o, s)), - u = 0, - d = s > 0 ? o - 4 : o; - for (n = 0; n < d; n += 4) t = a[e.charCodeAt(n)] << 18 | a[e.charCodeAt(n + 1)] << 12 | a[e.charCodeAt(n + 2)] << 6 | a[e.charCodeAt(n + 3)], c[u++] = t >> 16 & 255, c[u++] = t >> 8 & 255, c[u++] = 255 & t; - return 2 === s && (t = a[e.charCodeAt(n)] << 2 | a[e.charCodeAt(n + 1)] >> 4, c[u++] = 255 & t), 1 === s && (t = a[e.charCodeAt(n)] << 10 | a[e.charCodeAt(n + 1)] << 4 | a[e.charCodeAt(n + 2)] >> 2, c[u++] = t >> 8 & 255, c[u++] = 255 & t), c - }, t.fromByteArray = function(e) { - for (var t, a = e.length, r = a % 3, i = [], o = 16383, s = 0, l = a - r; s < l; s += o) i.push(c(e, s, s + o > l ? l : s + o)); - return 1 === r ? (t = e[a - 1], i.push(n[t >> 2] + n[t << 4 & 63] + "==")) : 2 === r && (t = (e[a - 2] << 8) + e[a - 1], i.push(n[t >> 10] + n[t >> 4 & 63] + n[t << 2 & 63] + "=")), i.join("") + } }; - for (var n = [], a = [], r = "undefined" != typeof Uint8Array ? Uint8Array : Array, i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", o = 0, s = i.length; o < s; ++o) n[o] = i[o], a[i.charCodeAt(o)] = o; + throw new TypeError(t ? "Object is not iterable." : "Symbol.iterator is not defined.") + } + + function f(e, t) { + var n = "function" == typeof Symbol && e[Symbol.iterator]; + if (!n) return e; + var a, r, i = n.call(e), + o = []; + try { + for (; + (void 0 === t || t-- > 0) && !(a = i.next()).done;) o.push(a.value) + } catch (e) { + r = { + error: e + } + } finally { + try { + a && !a.done && (n = i.return) && n.call(i) + } finally { + if (r) throw r.error + } + } + return o + } + + function g() { + for (var e = [], t = 0; t < arguments.length; t++) e = e.concat(f(arguments[t])); + return e + } + + function b() { + for (var e = 0, t = 0, n = arguments.length; t < n; t++) e += arguments[t].length; + var a = Array(e), + r = 0; + for (t = 0; t < n; t++) + for (var i = arguments[t], o = 0, s = i.length; o < s; o++, r++) a[r] = i[o]; + return a + } + + function y(e, t) { + for (var n = 0, a = t.length, r = e.length; n < a; n++, r++) e[r] = t[n]; + return e + } + + function v(e) { + return this instanceof v ? (this.v = e, this) : new v(e) + } + + function k(e, t, n) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var a, r = n.apply(e, t || []), + i = []; + return a = {}, o("next"), o("throw"), o("return"), a[Symbol.asyncIterator] = function() { + return this + }, a; + + function o(e) { + r[e] && (a[e] = function(t) { + return new Promise((function(n, a) { + i.push([e, t, n, a]) > 1 || s(e, t) + })) + }) + } + + function s(e, t) { + try { + (n = r[e](t)).value instanceof v ? Promise.resolve(n.value.v).then(l, c) : u(i[0][2], n) + } catch (e) { + u(i[0][3], e) + } + var n + } function l(e) { - var t = e.length; - if (t % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); - var n = e.indexOf("="); - return -1 === n && (n = t), [n, n === t ? 0 : 4 - n % 4] + s("next", e) } - function c(e, t, a) { - for (var r, i, o = [], s = t; s < a; s += 3) r = (e[s] << 16 & 16711680) + (e[s + 1] << 8 & 65280) + (255 & e[s + 2]), o.push(n[(i = r) >> 18 & 63] + n[i >> 12 & 63] + n[i >> 6 & 63] + n[63 & i]); - return o.join("") + function c(e) { + s("throw", e) } - a["-".charCodeAt(0)] = 62, a["_".charCodeAt(0)] = 63 - }, 8912: function(e, t, n) { - "use strict"; - var a = this && this.__assign || function() { - return a = Object.assign || function(e) { - for (var t, n = 1, a = arguments.length; n < a; n++) - for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); - return e - }, a.apply(this, arguments) - }; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.bindAll = void 0; - var r = n(4395); - function i(e) { - if (void 0 !== e) return "boolean" == typeof e ? { - capture: e - } : e - } - t.bindAll = function(e, t, n) { - var o = t.map((function(t) { - var o = function(e, t) { - return null == t ? e : a(a({}, e), { - options: a(a({}, i(t)), i(e.options)) - }) - }(t, n); - return r.bind(e, o) - })); - return function() { - o.forEach((function(e) { - return e() + function u(e, t) { + e(t), i.shift(), i.length && s(i[0][0], i[0][1]) + } + } + + function _(e) { + var t, n; + return t = {}, a("next"), a("throw", (function(e) { + throw e + })), a("return"), t[Symbol.iterator] = function() { + return this + }, t; + + function a(a, r) { + t[a] = e[a] ? function(t) { + return (n = !n) ? { + value: v(e[a](t)), + done: "return" === a + } : r ? r(t) : t + } : r + } + } + + function w(e) { + if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + var t, n = e[Symbol.asyncIterator]; + return n ? n.call(e) : (e = m(e), t = {}, a("next"), a("throw"), a("return"), t[Symbol.asyncIterator] = function() { + return this + }, t); + + function a(n) { + t[n] = e[n] && function(t) { + return new Promise((function(a, r) { + ! function(e, t, n, a) { + Promise.resolve(a).then((function(t) { + e({ + value: t, + done: n + }) + }), t) + }(a, r, (t = e[n](t)).done, t.value) })) } } - }, 4395: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.bind = void 0, t.bind = function(e, t) { - var n = t.type, - a = t.listener, - r = t.options; - return e.addEventListener(n, a, r), - function() { - e.removeEventListener(n, a, r) + } + + function S(e, t) { + return Object.defineProperty ? Object.defineProperty(e, "raw", { + value: t + }) : e.raw = t, e + } + var E = Object.create ? function(e, t) { + Object.defineProperty(e, "default", { + enumerable: !0, + value: t + }) + } : function(e, t) { + e.default = t + }; + + function x(e) { + if (e && e.__esModule) return e; + var t = {}; + if (null != e) + for (var n in e) "default" !== n && Object.prototype.hasOwnProperty.call(e, n) && p(t, e, n); + return E(t, e), t + } + + function C(e) { + return e && e.__esModule ? e : { + default: e + } + } + + function A(e, t) { + if (!t.has(e)) throw new TypeError("attempted to get private field on non-instance"); + return t.get(e) + } + + function T(e, t, n) { + if (!t.has(e)) throw new TypeError("attempted to set private field on non-instance"); + return t.set(e, n), n + } +}, 8889: (e, t, n) => { + var a = n(8986), + r = n(3955), + i = r; + i.v1 = a, i.v4 = r, e.exports = i +}, 9989: e => { + for (var t = [], n = 0; n < 256; ++n) t[n] = (n + 256).toString(16).substr(1); + e.exports = function(e, n) { + var a = n || 0, + r = t; + return [r[e[a++]], r[e[a++]], r[e[a++]], r[e[a++]], "-", r[e[a++]], r[e[a++]], "-", r[e[a++]], r[e[a++]], "-", r[e[a++]], r[e[a++]], "-", r[e[a++]], r[e[a++]], r[e[a++]], r[e[a++]], r[e[a++]], r[e[a++]]].join("") + } +}, 9872: e => { + var t = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof window.msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto); + if (t) { + var n = new Uint8Array(16); + e.exports = function() { + return t(n), n + } + } else { + var a = new Array(16); + e.exports = function() { + for (var e, t = 0; t < 16; t++) 0 == (3 & t) && (e = 4294967296 * Math.random()), a[t] = e >>> ((3 & t) << 3) & 255; + return a + } + } +}, 8986: (e, t, n) => { + var a, r, i = n(9872), + o = n(9989), + s = 0, + l = 0; + e.exports = function(e, t, n) { + var c = t && n || 0, + u = t || [], + d = (e = e || {}).node || a, + p = void 0 !== e.clockseq ? e.clockseq : r; + if (null == d || null == p) { + var h = i(); + null == d && (d = a = [1 | h[0], h[1], h[2], h[3], h[4], h[5]]), null == p && (p = r = 16383 & (h[6] << 8 | h[7])) + } + var m = void 0 !== e.msecs ? e.msecs : (new Date).getTime(), + f = void 0 !== e.nsecs ? e.nsecs : l + 1, + g = m - s + (f - l) / 1e4; + if (g < 0 && void 0 === e.clockseq && (p = p + 1 & 16383), (g < 0 || m > s) && void 0 === e.nsecs && (f = 0), f >= 1e4) throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + s = m, l = f, r = p; + var b = (1e4 * (268435455 & (m += 122192928e5)) + f) % 4294967296; + u[c++] = b >>> 24 & 255, u[c++] = b >>> 16 & 255, u[c++] = b >>> 8 & 255, u[c++] = 255 & b; + var y = m / 4294967296 * 1e4 & 268435455; + u[c++] = y >>> 8 & 255, u[c++] = 255 & y, u[c++] = y >>> 24 & 15 | 16, u[c++] = y >>> 16 & 255, u[c++] = p >>> 8 | 128, u[c++] = 255 & p; + for (var v = 0; v < 6; ++v) u[c + v] = d[v]; + return t || o(u) + } +}, 3955: (e, t, n) => { + var a = n(9872), + r = n(9989); + e.exports = function(e, t, n) { + var i = t && n || 0; + "string" == typeof e && (t = "binary" === e ? new Array(16) : null, e = null); + var o = (e = e || {}).random || (e.rng || a)(); + if (o[6] = 15 & o[6] | 64, o[8] = 63 & o[8] | 128, t) + for (var s = 0; s < 16; ++s) t[i + s] = o[s]; + return t || r(o) + } +}, 4027: (e, t, n) => { + var a = n(9819), + r = n(6088), + i = r; + i.v1 = a, i.v4 = r, e.exports = i +}, 2914: e => { + for (var t = [], n = 0; n < 256; ++n) t[n] = (n + 256).toString(16).substr(1); + e.exports = function(e, n) { + var a = n || 0, + r = t; + return [r[e[a++]], r[e[a++]], r[e[a++]], r[e[a++]], "-", r[e[a++]], r[e[a++]], "-", r[e[a++]], r[e[a++]], "-", r[e[a++]], r[e[a++]], "-", r[e[a++]], r[e[a++]], r[e[a++]], r[e[a++]], r[e[a++]], r[e[a++]]].join("") + } +}, 4114: e => { + var t = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof window.msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto); + if (t) { + var n = new Uint8Array(16); + e.exports = function() { + return t(n), n + } + } else { + var a = new Array(16); + e.exports = function() { + for (var e, t = 0; t < 16; t++) 0 == (3 & t) && (e = 4294967296 * Math.random()), a[t] = e >>> ((3 & t) << 3) & 255; + return a + } + } +}, 9819: (e, t, n) => { + var a, r, i = n(4114), + o = n(2914), + s = 0, + l = 0; + e.exports = function(e, t, n) { + var c = t && n || 0, + u = t || [], + d = (e = e || {}).node || a, + p = void 0 !== e.clockseq ? e.clockseq : r; + if (null == d || null == p) { + var h = i(); + null == d && (d = a = [1 | h[0], h[1], h[2], h[3], h[4], h[5]]), null == p && (p = r = 16383 & (h[6] << 8 | h[7])) + } + var m = void 0 !== e.msecs ? e.msecs : (new Date).getTime(), + f = void 0 !== e.nsecs ? e.nsecs : l + 1, + g = m - s + (f - l) / 1e4; + if (g < 0 && void 0 === e.clockseq && (p = p + 1 & 16383), (g < 0 || m > s) && void 0 === e.nsecs && (f = 0), f >= 1e4) throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + s = m, l = f, r = p; + var b = (1e4 * (268435455 & (m += 122192928e5)) + f) % 4294967296; + u[c++] = b >>> 24 & 255, u[c++] = b >>> 16 & 255, u[c++] = b >>> 8 & 255, u[c++] = 255 & b; + var y = m / 4294967296 * 1e4 & 268435455; + u[c++] = y >>> 8 & 255, u[c++] = 255 & y, u[c++] = y >>> 24 & 15 | 16, u[c++] = y >>> 16 & 255, u[c++] = p >>> 8 | 128, u[c++] = 255 & p; + for (var v = 0; v < 6; ++v) u[c + v] = d[v]; + return t || o(u) + } +}, 6088: (e, t, n) => { + var a = n(4114), + r = n(2914); + e.exports = function(e, t, n) { + var i = t && n || 0; + "string" == typeof e && (t = "binary" === e ? new Array(16) : null, e = null); + var o = (e = e || {}).random || (e.rng || a)(); + if (o[6] = 15 & o[6] | 64, o[8] = 63 & o[8] | 128, t) + for (var s = 0; s < 16; ++s) t[i + s] = o[s]; + return t || r(o) + } +}, 5139: (e, t, n) => { + "use strict"; + n.r(t), n.d(t, { + R50: () => r, + R75: () => i, + R100: () => o, + R200: () => s, + R300: () => l, + R400: () => c, + R500: () => u, + Y50: () => d, + Y75: () => p, + Y100: () => h, + Y200: () => m, + Y300: () => f, + Y400: () => g, + Y500: () => b, + G50: () => y, + G75: () => v, + G100: () => k, + G200: () => _, + G300: () => w, + G400: () => S, + G500: () => E, + B50: () => x, + B75: () => C, + B100: () => A, + B200: () => T, + B300: () => D, + B400: () => P, + B500: () => j, + P50: () => M, + P75: () => I, + P100: () => O, + P200: () => N, + P300: () => R, + P400: () => z, + P500: () => L, + T50: () => F, + T75: () => q, + T100: () => B, + T200: () => U, + T300: () => H, + T400: () => V, + T500: () => W, + N0: () => Y, + N10: () => G, + N20: () => K, + N30: () => $, + N40: () => J, + N50: () => Z, + N60: () => Q, + N70: () => X, + N80: () => ee, + N90: () => te, + N100: () => ne, + N200: () => ae, + N300: () => re, + N400: () => ie, + N500: () => oe, + N600: () => se, + N700: () => le, + N800: () => ce, + N900: () => ue, + N10A: () => de, + N20A: () => pe, + N30A: () => he, + N40A: () => me, + N50A: () => fe, + N60A: () => ge, + N70A: () => be, + N80A: () => ye, + N90A: () => ve, + N100A: () => ke, + N200A: () => _e, + N300A: () => we, + N400A: () => Se, + N500A: () => Ee, + N600A: () => xe, + N700A: () => Ce, + N800A: () => Ae, + DN900: () => Te, + DN800: () => De, + DN700: () => Pe, + DN600: () => je, + DN500: () => Me, + DN400: () => Ie, + DN300: () => Oe, + DN200: () => Ne, + DN100: () => Re, + DN90: () => ze, + DN80: () => Le, + DN70: () => Fe, + DN60: () => qe, + DN50: () => Be, + DN40: () => Ue, + DN30: () => He, + DN20: () => Ve, + DN10: () => We, + DN0: () => Ye, + DN800A: () => Ge, + DN700A: () => Ke, + DN600A: () => $e, + DN500A: () => Je, + DN400A: () => Ze, + DN300A: () => Qe, + DN200A: () => Xe, + DN100A: () => et, + DN90A: () => tt, + DN80A: () => nt, + DN70A: () => at, + DN60A: () => rt, + DN50A: () => it, + DN40A: () => ot, + DN30A: () => st, + DN20A: () => lt, + DN10A: () => ct, + background: () => ut, + backgroundActive: () => dt, + backgroundHover: () => pt, + backgroundOnLayer: () => ht, + text: () => mt, + textHover: () => ft, + textActive: () => gt, + subtleText: () => bt, + placeholderText: () => yt, + heading: () => vt, + subtleHeading: () => kt, + codeBlock: () => _t, + link: () => wt, + linkHover: () => St, + linkActive: () => Et, + linkOutline: () => xt, + primary: () => Ct, + blue: () => At, + teal: () => Tt, + purple: () => Dt, + red: () => Pt, + yellow: () => jt, + green: () => Mt, + skeleton: () => It + }); + var a = n(5791), + r = "#FFEBE6", + i = "#FFBDAD", + o = "#FF8F73", + s = "#FF7452", + l = "#FF5630", + c = "#DE350B", + u = "#BF2600", + d = "#FFFAE6", + p = "#FFF0B3", + h = "#FFE380", + m = "#FFC400", + f = "#FFAB00", + g = "#FF991F", + b = "#FF8B00", + y = "#E3FCEF", + v = "#ABF5D1", + k = "#79F2C0", + _ = "#57D9A3", + w = "#36B37E", + S = "#00875A", + E = "#006644", + x = "#DEEBFF", + C = "#B3D4FF", + A = "#4C9AFF", + T = "#2684FF", + D = "#0065FF", + P = "#0052CC", + j = "#0747A6", + M = "#EAE6FF", + I = "#C0B6F2", + O = "#998DD9", + N = "#8777D9", + R = "#6554C0", + z = "#5243AA", + L = "#403294", + F = "#E6FCFF", + q = "#B3F5FF", + B = "#79E2F2", + U = "#00C7E6", + H = "#00B8D9", + V = "#00A3BF", + W = "#008DA6", + Y = "#FFFFFF", + G = "#FAFBFC", + K = "#F4F5F7", + $ = "#EBECF0", + J = "#DFE1E6", + Z = "#C1C7D0", + Q = "#B3BAC5", + X = "#A5ADBA", + ee = "#97A0AF", + te = "#8993A4", + ne = "#7A869A", + ae = "#6B778C", + re = "#5E6C84", + ie = "#505F79", + oe = "#42526E", + se = "#344563", + le = "#253858", + ce = "#172B4D", + ue = "#091E42", + de = "rgba(9, 30, 66, 0.02)", + pe = "rgba(9, 30, 66, 0.04)", + he = "rgba(9, 30, 66, 0.08)", + me = "rgba(9, 30, 66, 0.13)", + fe = "rgba(9, 30, 66, 0.25)", + ge = "rgba(9, 30, 66, 0.31)", + be = "rgba(9, 30, 66, 0.36)", + ye = "rgba(9, 30, 66, 0.42)", + ve = "rgba(9, 30, 66, 0.48)", + ke = "rgba(9, 30, 66, 0.54)", + _e = "rgba(9, 30, 66, 0.60)", + we = "rgba(9, 30, 66, 0.66)", + Se = "rgba(9, 30, 66, 0.71)", + Ee = "rgba(9, 30, 66, 0.77)", + xe = "rgba(9, 30, 66, 0.82)", + Ce = "rgba(9, 30, 66, 0.89)", + Ae = "rgba(9, 30, 66, 0.95)", + Te = "#E6EDFA", + De = "#DCE5F5", + Pe = "#CED9EB", + je = "#B8C7E0", + Me = "#ABBBD6", + Ie = "#9FB0CC", + Oe = "#8C9CB8", + Ne = "#7988A3", + Re = "#67758F", + ze = "#56637A", + Le = "#455166", + Fe = "#3B475C", + qe = "#313D52", + Be = "#283447", + Ue = "#202B3D", + He = "#1B2638", + Ve = "#121A29", + We = "#0E1624", + Ye = "#0D1424", + Ge = "rgba(13, 20, 36, 0.06)", + Ke = "rgba(13, 20, 36, 0.14)", + $e = "rgba(13, 20, 36, 0.18)", + Je = "rgba(13, 20, 36, 0.29)", + Ze = "rgba(13, 20, 36, 0.36)", + Qe = "rgba(13, 20, 36, 0.40)", + Xe = "rgba(13, 20, 36, 0.47)", + et = "rgba(13, 20, 36, 0.53)", + tt = "rgba(13, 20, 36, 0.63)", + nt = "rgba(13, 20, 36, 0.73)", + at = "rgba(13, 20, 36, 0.78)", + rt = "rgba(13, 20, 36, 0.81)", + it = "rgba(13, 20, 36, 0.85)", + ot = "rgba(13, 20, 36, 0.89)", + st = "rgba(13, 20, 36, 0.92)", + lt = "rgba(13, 20, 36, 0.95)", + ct = "rgba(13, 20, 36, 0.97)", + ut = (0, a.Z)({ + light: Y, + dark: He + }), + dt = (0, a.Z)({ + light: x, + dark: C + }), + pt = (0, a.Z)({ + light: $, + dark: Fe + }), + ht = (0, a.Z)({ + light: Y, + dark: Be + }), + mt = (0, a.Z)({ + light: ue, + dark: je + }), + ft = (0, a.Z)({ + light: ce, + dark: je + }), + gt = (0, a.Z)({ + light: P, + dark: P + }), + bt = (0, a.Z)({ + light: ae, + dark: Oe + }), + yt = (0, a.Z)({ + light: ne, + dark: Ne + }), + vt = (0, a.Z)({ + light: ce, + dark: je + }), + kt = (0, a.Z)({ + light: ae, + dark: Oe + }), + _t = (0, a.Z)({ + light: K, + dark: Be + }), + wt = (0, a.Z)({ + light: P, + dark: A + }), + St = (0, a.Z)({ + light: D, + dark: T + }), + Et = (0, a.Z)({ + light: j, + dark: A + }), + xt = (0, a.Z)({ + light: A, + dark: T + }), + Ct = (0, a.Z)({ + light: P, + dark: A + }), + At = (0, a.Z)({ + light: P, + dark: A + }), + Tt = (0, a.Z)({ + light: H, + dark: U + }), + Dt = (0, a.Z)({ + light: R, + dark: O + }), + Pt = (0, a.Z)({ + light: l, + dark: l + }), + jt = (0, a.Z)({ + light: f, + dark: f + }), + Mt = (0, a.Z)({ + light: w, + dark: w + }), + It = function() { + return pe + } +}, 5791: (e, t, n) => { + "use strict"; + n.d(t, { + Z: () => i + }); + var a = ["light", "dark"]; + + function r(e) { + if (e && e.theme) { + if ("__ATLASKIT_THEME__" in e.theme) return e.theme.__ATLASKIT_THEME__; + if ("mode" in e.theme && a.includes(e.theme.mode)) return e.theme + } + return { + mode: "light" + } + } + + function i(e, t) { + if ("string" == typeof e) return n = e, a = t, + function(e) { + var t = r(e); + if (e && e[n] && a) { + var i = a[e[n]]; + if (i && i[t.mode]) { + var o = i[t.mode]; + if (o) return o + } } + return "" + }; + var n, a, i = e; + return function(e) { + var t = r(e); + if (t.mode in i) { + var n = i[t.mode]; + if (n) return n + } + return "" + } + } +}, 5571: (e, t) => { + "use strict"; + const n = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*\:/; + t.parse = function(e) { + const a = "object" == typeof(arguments.length <= 1 ? void 0 : arguments[1]) && (arguments.length <= 1 ? void 0 : arguments[1]), + r = (arguments.length <= 1 ? 0 : arguments.length - 1) > 1 || !a ? arguments.length <= 1 ? void 0 : arguments[1] : void 0, + i = (arguments.length <= 1 ? 0 : arguments.length - 1) > 1 && (arguments.length <= 2 ? void 0 : arguments[2]) || a || {}, + o = JSON.parse(e, r); + return "ignore" === i.protoAction ? o : o && "object" == typeof o && e.match(n) ? (t.scan(o, i), o) : o + }, t.scan = function(e) { + let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = [e]; + for (; n.length;) { + const e = n; + n = []; + for (const a of e) { + if (Object.prototype.hasOwnProperty.call(a, "__proto__")) { + if ("remove" !== t.protoAction) throw new SyntaxError("Object contains forbidden prototype property"); + delete a.__proto__ + } + for (const e in a) { + const t = a[e]; + t && "object" == typeof t && n.push(a[e]) + } + } + } + }, t.safeParse = function(e, n) { + try { + return t.parse(e, n) + } catch (e) { + return null } - }, 412: (e, t, n) => { + } +}, 6712: (module, exports, __webpack_require__) => { + var process = __webpack_require__(554), + __WEBPACK_AMD_DEFINE_RESULT__; + (function() { "use strict"; - var a = n(4395); - Object.defineProperty(t, "ak", { - enumerable: !0, - get: function() { - return a.bind - } + var ERROR = "input is invalid type", + WINDOW = "object" == typeof window, + root = WINDOW ? window : {}; + root.JS_MD5_NO_WINDOW && (WINDOW = !1); + var WEB_WORKER = !WINDOW && "object" == typeof self, + NODE_JS = !root.JS_MD5_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node; + NODE_JS ? root = __webpack_require__.g : WEB_WORKER && (root = self); + var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && module.exports, + AMD = __webpack_require__.amdO, + ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer, + HEX_CHARS = "0123456789abcdef".split(""), + EXTRA = [128, 32768, 8388608, -2147483648], + SHIFT = [0, 8, 16, 24], + OUTPUT_TYPES = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"], + BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), + blocks = [], + buffer8; + if (ARRAY_BUFFER) { + var buffer = new ArrayBuffer(68); + buffer8 = new Uint8Array(buffer), blocks = new Uint32Array(buffer) + }!root.JS_MD5_NO_NODE_JS && Array.isArray || (Array.isArray = function(e) { + return "[object Array]" === Object.prototype.toString.call(e) + }), !ARRAY_BUFFER || !root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function(e) { + return "object" == typeof e && e.buffer && e.buffer.constructor === ArrayBuffer }); - n(8912) - }, 1481: function(e) { - e.exports = function(e) { - var t = {}; - - function n(a) { - if (t[a]) return t[a].exports; - var r = t[a] = { - i: a, - l: !1, - exports: {} - }; - return e[a].call(r.exports, r, r.exports, n), r.l = !0, r.exports - } - return n.m = e, n.c = t, n.d = function(e, t, a) { - n.o(e, t) || Object.defineProperty(e, t, { - enumerable: !0, - get: a - }) - }, n.r = function(e) { - "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { - value: "Module" - }), Object.defineProperty(e, "__esModule", { - value: !0 - }) - }, n.t = function(e, t) { - if (1 & t && (e = n(e)), 8 & t) return e; - if (4 & t && "object" == typeof e && e && e.__esModule) return e; - var a = Object.create(null); - if (n.r(a), Object.defineProperty(a, "default", { - enumerable: !0, - value: e - }), 2 & t && "string" != typeof e) - for (var r in e) n.d(a, r, function(t) { - return e[t] - }.bind(null, r)); - return a - }, n.n = function(e) { - var t = e && e.__esModule ? function() { - return e.default - } : function() { - return e + var createOutputMethod = function(e) { + return function(t) { + return new Md5(!0).update(t)[e]() + } + }, + createMethod = function() { + var e = createOutputMethod("hex"); + NODE_JS && (e = nodeWrap(e)), e.create = function() { + return new Md5 + }, e.update = function(t) { + return e.create().update(t) }; - return n.d(t, "a", t), t - }, n.o = function(e, t) { - return Object.prototype.hasOwnProperty.call(e, t) - }, n.p = "", n(n.s = 90) - }({ - 17: function(e, t, n) { - "use strict"; - t.__esModule = !0, t.default = void 0; - var a = n(18), - r = function() { - function e() {} - return e.getFirstMatch = function(e, t) { - var n = t.match(e); - return n && n.length > 0 && n[1] || "" - }, e.getSecondMatch = function(e, t) { - var n = t.match(e); - return n && n.length > 1 && n[2] || "" - }, e.matchAndReturnConst = function(e, t, n) { - if (e.test(t)) return n - }, e.getWindowsVersionName = function(e) { - switch (e) { - case "NT": - return "NT"; - case "XP": - case "NT 5.1": - return "XP"; - case "NT 5.0": - return "2000"; - case "NT 5.2": - return "2003"; - case "NT 6.0": - return "Vista"; - case "NT 6.1": - return "7"; - case "NT 6.2": - return "8"; - case "NT 6.3": - return "8.1"; - case "NT 10.0": - return "10"; - default: - return - } - }, e.getMacOSVersionName = function(e) { - var t = e.split(".").splice(0, 2).map((function(e) { - return parseInt(e, 10) || 0 - })); - if (t.push(0), 10 === t[0]) switch (t[1]) { - case 5: - return "Leopard"; - case 6: - return "Snow Leopard"; - case 7: - return "Lion"; - case 8: - return "Mountain Lion"; - case 9: - return "Mavericks"; - case 10: - return "Yosemite"; - case 11: - return "El Capitan"; - case 12: - return "Sierra"; - case 13: - return "High Sierra"; - case 14: - return "Mojave"; - case 15: - return "Catalina"; - default: - return - } - }, e.getAndroidVersionName = function(e) { - var t = e.split(".").splice(0, 2).map((function(e) { - return parseInt(e, 10) || 0 - })); - if (t.push(0), !(1 === t[0] && t[1] < 5)) return 1 === t[0] && t[1] < 6 ? "Cupcake" : 1 === t[0] && t[1] >= 6 ? "Donut" : 2 === t[0] && t[1] < 2 ? "Eclair" : 2 === t[0] && 2 === t[1] ? "Froyo" : 2 === t[0] && t[1] > 2 ? "Gingerbread" : 3 === t[0] ? "Honeycomb" : 4 === t[0] && t[1] < 1 ? "Ice Cream Sandwich" : 4 === t[0] && t[1] < 4 ? "Jelly Bean" : 4 === t[0] && t[1] >= 4 ? "KitKat" : 5 === t[0] ? "Lollipop" : 6 === t[0] ? "Marshmallow" : 7 === t[0] ? "Nougat" : 8 === t[0] ? "Oreo" : 9 === t[0] ? "Pie" : void 0 - }, e.getVersionPrecision = function(e) { - return e.split(".").length - }, e.compareVersions = function(t, n, a) { - void 0 === a && (a = !1); - var r = e.getVersionPrecision(t), - i = e.getVersionPrecision(n), - o = Math.max(r, i), - s = 0, - l = e.map([t, n], (function(t) { - var n = o - e.getVersionPrecision(t), - a = t + new Array(n + 1).join(".0"); - return e.map(a.split("."), (function(e) { - return new Array(20 - e.length).join("0") + e - })).reverse() - })); - for (a && (s = o - Math.min(r, i)), o -= 1; o >= s;) { - if (l[0][o] > l[1][o]) return 1; - if (l[0][o] === l[1][o]) { - if (o === s) return 0; - o -= 1 - } else if (l[0][o] < l[1][o]) return -1 - } - }, e.map = function(e, t) { - var n, a = []; - if (Array.prototype.map) return Array.prototype.map.call(e, t); - for (n = 0; n < e.length; n += 1) a.push(t(e[n])); - return a - }, e.getBrowserAlias = function(e) { - return a.BROWSER_ALIASES_MAP[e] - }, e.getBrowserTypeByAlias = function(e) { - return a.BROWSER_MAP[e] || "" - }, e - }(); - t.default = r, e.exports = t.default + for (var t = 0; t < OUTPUT_TYPES.length; ++t) { + var n = OUTPUT_TYPES[t]; + e[n] = createOutputMethod(n) + } + return e }, - 18: function(e, t, n) { - "use strict"; - t.__esModule = !0, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0, t.BROWSER_ALIASES_MAP = { - "Amazon Silk": "amazon_silk", - "Android Browser": "android", - Bada: "bada", - BlackBerry: "blackberry", - Chrome: "chrome", - Chromium: "chromium", - Epiphany: "epiphany", - Firefox: "firefox", - Focus: "focus", - Generic: "generic", - "Google Search": "google_search", - Googlebot: "googlebot", - "Internet Explorer": "ie", - "K-Meleon": "k_meleon", - Maxthon: "maxthon", - "Microsoft Edge": "edge", - "MZ Browser": "mz", - "NAVER Whale Browser": "naver", - Opera: "opera", - "Opera Coast": "opera_coast", - PhantomJS: "phantomjs", - Puffin: "puffin", - QupZilla: "qupzilla", - QQ: "qq", - QQLite: "qqlite", - Safari: "safari", - Sailfish: "sailfish", - "Samsung Internet for Android": "samsung_internet", - SeaMonkey: "seamonkey", - Sleipnir: "sleipnir", - Swing: "swing", - Tizen: "tizen", - "UC Browser": "uc", - Vivaldi: "vivaldi", - "WebOS Browser": "webos", - WeChat: "wechat", - "Yandex Browser": "yandex", - Roku: "roku" - }, t.BROWSER_MAP = { - amazon_silk: "Amazon Silk", - android: "Android Browser", - bada: "Bada", - blackberry: "BlackBerry", - chrome: "Chrome", - chromium: "Chromium", - epiphany: "Epiphany", - firefox: "Firefox", - focus: "Focus", - generic: "Generic", - googlebot: "Googlebot", - google_search: "Google Search", - ie: "Internet Explorer", - k_meleon: "K-Meleon", - maxthon: "Maxthon", - edge: "Microsoft Edge", - mz: "MZ Browser", - naver: "NAVER Whale Browser", - opera: "Opera", - opera_coast: "Opera Coast", - phantomjs: "PhantomJS", - puffin: "Puffin", - qupzilla: "QupZilla", - qq: "QQ Browser", - qqlite: "QQ Browser Lite", - safari: "Safari", - sailfish: "Sailfish", - samsung_internet: "Samsung Internet for Android", - seamonkey: "SeaMonkey", - sleipnir: "Sleipnir", - swing: "Swing", - tizen: "Tizen", - uc: "UC Browser", - vivaldi: "Vivaldi", - webos: "WebOS Browser", - wechat: "WeChat", - yandex: "Yandex Browser" - }, t.PLATFORMS_MAP = { - tablet: "tablet", - mobile: "mobile", - desktop: "desktop", - tv: "tv" - }, t.OS_MAP = { - WindowsPhone: "Windows Phone", - Windows: "Windows", - MacOS: "macOS", - iOS: "iOS", - Android: "Android", - WebOS: "WebOS", - BlackBerry: "BlackBerry", - Bada: "Bada", - Tizen: "Tizen", - Linux: "Linux", - ChromeOS: "Chrome OS", - PlayStation4: "PlayStation 4", - Roku: "Roku" - }, t.ENGINE_MAP = { - EdgeHTML: "EdgeHTML", - Blink: "Blink", - Trident: "Trident", - Presto: "Presto", - Gecko: "Gecko", - WebKit: "WebKit" - } - }, - 90: function(e, t, n) { - "use strict"; - t.__esModule = !0, t.default = void 0; - var a, r = (a = n(91)) && a.__esModule ? a : { - default: a - }, - i = n(18); + nodeWrap = function(method) { + var crypto = eval("require('crypto')"), + Buffer = eval("require('buffer').Buffer"), + nodeMethod = function(e) { + if ("string" == typeof e) return crypto.createHash("md5").update(e, "utf8").digest("hex"); + if (null == e) throw ERROR; + return e.constructor === ArrayBuffer && (e = new Uint8Array(e)), Array.isArray(e) || ArrayBuffer.isView(e) || e.constructor === Buffer ? crypto.createHash("md5").update(new Buffer(e)).digest("hex") : method(e) + }; + return nodeMethod + }; - function o(e, t) { - for (var n = 0; n < t.length; n++) { - var a = t[n]; - a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) - } - } - var s = function() { - function e() {} - var t, n; - return e.getParser = function(e, t) { - if (void 0 === t && (t = !1), "string" != typeof e) throw new Error("UserAgent should be a string"); - return new r.default(e, t) - }, e.parse = function(e) { - return new r.default(e).getResult() - }, t = e, n = [{ - key: "BROWSER_MAP", - get: function() { - return i.BROWSER_MAP - } - }, { - key: "ENGINE_MAP", - get: function() { - return i.ENGINE_MAP - } - }, { - key: "OS_MAP", - get: function() { - return i.OS_MAP - } - }, { - key: "PLATFORMS_MAP", - get: function() { - return i.PLATFORMS_MAP - } - }], null && o(t.prototype, null), n && o(t, n), e - }(); - t.default = s, e.exports = t.default + function Md5(e) { + if (e) blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0, this.blocks = blocks, this.buffer8 = buffer8; + else if (ARRAY_BUFFER) { + var t = new ArrayBuffer(68); + this.buffer8 = new Uint8Array(t), this.blocks = new Uint32Array(t) + } else this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0, this.finalized = this.hashed = !1, this.first = !0 + } + Md5.prototype.update = function(e) { + if (!this.finalized) { + var t, n = typeof e; + if ("string" !== n) { + if ("object" !== n) throw ERROR; + if (null === e) throw ERROR; + if (ARRAY_BUFFER && e.constructor === ArrayBuffer) e = new Uint8Array(e); + else if (!(Array.isArray(e) || ARRAY_BUFFER && ArrayBuffer.isView(e))) throw ERROR; + t = !0 + } + for (var a, r, i = 0, o = e.length, s = this.blocks, l = this.buffer8; i < o;) { + if (this.hashed && (this.hashed = !1, s[0] = s[16], s[16] = s[1] = s[2] = s[3] = s[4] = s[5] = s[6] = s[7] = s[8] = s[9] = s[10] = s[11] = s[12] = s[13] = s[14] = s[15] = 0), t) + if (ARRAY_BUFFER) + for (r = this.start; i < o && r < 64; ++i) l[r++] = e[i]; + else + for (r = this.start; i < o && r < 64; ++i) s[r >> 2] |= e[i] << SHIFT[3 & r++]; + else if (ARRAY_BUFFER) + for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? l[r++] = a : a < 2048 ? (l[r++] = 192 | a >> 6, l[r++] = 128 | 63 & a) : a < 55296 || a >= 57344 ? (l[r++] = 224 | a >> 12, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), l[r++] = 240 | a >> 18, l[r++] = 128 | a >> 12 & 63, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a); + else + for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? s[r >> 2] |= a << SHIFT[3 & r++] : a < 2048 ? (s[r >> 2] |= (192 | a >> 6) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : a < 55296 || a >= 57344 ? (s[r >> 2] |= (224 | a >> 12) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), s[r >> 2] |= (240 | a >> 18) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 12 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]); + this.lastByteIndex = r, this.bytes += r - this.start, r >= 64 ? (this.start = r - 64, this.hash(), this.hashed = !0) : this.start = r + } + return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this + } + }, Md5.prototype.finalize = function() { + if (!this.finalized) { + this.finalized = !0; + var e = this.blocks, + t = this.lastByteIndex; + e[t >> 2] |= EXTRA[3 & t], t >= 56 && (this.hashed || this.hash(), e[0] = e[16], e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0), e[14] = this.bytes << 3, e[15] = this.hBytes << 3 | this.bytes >>> 29, this.hash() + } + }, Md5.prototype.hash = function() { + var e, t, n, a, r, i, o = this.blocks; + this.first ? t = ((t = ((e = ((e = o[0] - 680876937) << 7 | e >>> 25) - 271733879 << 0) ^ (n = ((n = (-271733879 ^ (a = ((a = (-1732584194 ^ 2004318071 & e) + o[1] - 117830708) << 12 | a >>> 20) + e << 0) & (-271733879 ^ e)) + o[2] - 1126478375) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1316259209) << 22 | t >>> 10) + n << 0 : (e = this.h0, t = this.h1, n = this.h2, t = ((t += ((e = ((e += ((a = this.h3) ^ t & (n ^ a)) + o[0] - 680876936) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[1] - 389564586) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[2] + 606105819) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1044525330) << 22 | t >>> 10) + n << 0), t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[4] - 176418897) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[5] + 1200080426) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[6] - 1473231341) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[7] - 45705983) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[8] + 1770035416) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[9] - 1958414417) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[10] - 42063) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[11] - 1990404162) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[12] + 1804603682) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[13] - 40341101) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[14] - 1502002290) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[15] + 1236535329) << 22 | t >>> 10) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[1] - 165796510) << 5 | e >>> 27) + t << 0) ^ t)) + o[6] - 1069501632) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[11] + 643717713) << 14 | n >>> 18) + a << 0) ^ a)) + o[0] - 373897302) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[5] - 701558691) << 5 | e >>> 27) + t << 0) ^ t)) + o[10] + 38016083) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[15] - 660478335) << 14 | n >>> 18) + a << 0) ^ a)) + o[4] - 405537848) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[9] + 568446438) << 5 | e >>> 27) + t << 0) ^ t)) + o[14] - 1019803690) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[3] - 187363961) << 14 | n >>> 18) + a << 0) ^ a)) + o[8] + 1163531501) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[13] - 1444681467) << 5 | e >>> 27) + t << 0) ^ t)) + o[2] - 51403784) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[7] + 1735328473) << 14 | n >>> 18) + a << 0) ^ a)) + o[12] - 1926607734) << 20 | t >>> 12) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[5] - 378558) << 4 | e >>> 28) + t << 0)) + o[8] - 2022574463) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[11] + 1839030562) << 16 | n >>> 16) + a << 0)) + o[14] - 35309556) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[1] - 1530992060) << 4 | e >>> 28) + t << 0)) + o[4] + 1272893353) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[7] - 155497632) << 16 | n >>> 16) + a << 0)) + o[10] - 1094730640) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[13] + 681279174) << 4 | e >>> 28) + t << 0)) + o[0] - 358537222) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[3] - 722521979) << 16 | n >>> 16) + a << 0)) + o[6] + 76029189) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[9] - 640364487) << 4 | e >>> 28) + t << 0)) + o[12] - 421815835) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[15] + 530742520) << 16 | n >>> 16) + a << 0)) + o[2] - 995338651) << 23 | t >>> 9) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[0] - 198630844) << 6 | e >>> 26) + t << 0) | ~n)) + o[7] + 1126891415) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[14] - 1416354905) << 15 | n >>> 17) + a << 0) | ~e)) + o[5] - 57434055) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[12] + 1700485571) << 6 | e >>> 26) + t << 0) | ~n)) + o[3] - 1894986606) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[10] - 1051523) << 15 | n >>> 17) + a << 0) | ~e)) + o[1] - 2054922799) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[8] + 1873313359) << 6 | e >>> 26) + t << 0) | ~n)) + o[15] - 30611744) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[6] - 1560198380) << 15 | n >>> 17) + a << 0) | ~e)) + o[13] + 1309151649) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[4] - 145523070) << 6 | e >>> 26) + t << 0) | ~n)) + o[11] - 1120210379) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[2] + 718787259) << 15 | n >>> 17) + a << 0) | ~e)) + o[9] - 343485551) << 21 | t >>> 11) + n << 0, this.first ? (this.h0 = e + 1732584193 << 0, this.h1 = t - 271733879 << 0, this.h2 = n - 1732584194 << 0, this.h3 = a + 271733878 << 0, this.first = !1) : (this.h0 = this.h0 + e << 0, this.h1 = this.h1 + t << 0, this.h2 = this.h2 + n << 0, this.h3 = this.h3 + a << 0) + }, Md5.prototype.hex = function() { + this.finalize(); + var e = this.h0, + t = this.h1, + n = this.h2, + a = this.h3; + return HEX_CHARS[e >> 4 & 15] + HEX_CHARS[15 & e] + HEX_CHARS[e >> 12 & 15] + HEX_CHARS[e >> 8 & 15] + HEX_CHARS[e >> 20 & 15] + HEX_CHARS[e >> 16 & 15] + HEX_CHARS[e >> 28 & 15] + HEX_CHARS[e >> 24 & 15] + HEX_CHARS[t >> 4 & 15] + HEX_CHARS[15 & t] + HEX_CHARS[t >> 12 & 15] + HEX_CHARS[t >> 8 & 15] + HEX_CHARS[t >> 20 & 15] + HEX_CHARS[t >> 16 & 15] + HEX_CHARS[t >> 28 & 15] + HEX_CHARS[t >> 24 & 15] + HEX_CHARS[n >> 4 & 15] + HEX_CHARS[15 & n] + HEX_CHARS[n >> 12 & 15] + HEX_CHARS[n >> 8 & 15] + HEX_CHARS[n >> 20 & 15] + HEX_CHARS[n >> 16 & 15] + HEX_CHARS[n >> 28 & 15] + HEX_CHARS[n >> 24 & 15] + HEX_CHARS[a >> 4 & 15] + HEX_CHARS[15 & a] + HEX_CHARS[a >> 12 & 15] + HEX_CHARS[a >> 8 & 15] + HEX_CHARS[a >> 20 & 15] + HEX_CHARS[a >> 16 & 15] + HEX_CHARS[a >> 28 & 15] + HEX_CHARS[a >> 24 & 15] + }, Md5.prototype.toString = Md5.prototype.hex, Md5.prototype.digest = function() { + this.finalize(); + var e = this.h0, + t = this.h1, + n = this.h2, + a = this.h3; + return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255, 255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255] + }, Md5.prototype.array = Md5.prototype.digest, Md5.prototype.arrayBuffer = function() { + this.finalize(); + var e = new ArrayBuffer(16), + t = new Uint32Array(e); + return t[0] = this.h0, t[1] = this.h1, t[2] = this.h2, t[3] = this.h3, e + }, Md5.prototype.buffer = Md5.prototype.arrayBuffer, Md5.prototype.base64 = function() { + for (var e, t, n, a = "", r = this.array(), i = 0; i < 15;) e = r[i++], t = r[i++], n = r[i++], a += BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[63 & (e << 4 | t >>> 4)] + BASE64_ENCODE_CHAR[63 & (t << 2 | n >>> 6)] + BASE64_ENCODE_CHAR[63 & n]; + return e = r[i], a + (BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[e << 4 & 63] + "==") + }; + var exports = createMethod(); + COMMON_JS ? module.exports = exports : (root.md5 = exports, AMD && (__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return exports + }.call(exports, __webpack_require__, exports, module), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))) + })() +}, 7369: (e, t, n) => { + var a = n(7); + + function r(e, t) { + this.logStorage = e, this.stringifyObjects = !(!t || !t.stringifyObjects) && t.stringifyObjects, this.storeInterval = t && t.storeInterval ? t.storeInterval : 3e4, this.maxEntryLength = t && t.maxEntryLength ? t.maxEntryLength : 1e4, Object.keys(a.levels).forEach(function(e) { + this[a.levels[e]] = function() { + this._log.apply(this, arguments) + }.bind(this, e) + }.bind(this)), this.storeLogsIntervalID = null, this.queue = [], this.totalLen = 0, this.outputCache = [] + } + r.prototype.stringify = function(e) { + try { + return JSON.stringify(e) + } catch (e) { + return "[object with circular refs?]" + } + }, r.prototype.formatLogMessage = function(e) { + for (var t = "", n = 1, r = arguments.length; n < r; n++) { + var i = arguments[n]; + !this.stringifyObjects && e !== a.levels.ERROR || "object" != typeof i || (i = this.stringify(i)), t += i, n !== r - 1 && (t += " ") + } + return t.length ? t : null + }, r.prototype._log = function() { + var e = arguments[1], + t = this.formatLogMessage.apply(this, arguments); + if (t) { + var n = this.queue[this.queue.length - 1], + a = n && n.text; + a === t ? n.count += 1 : (this.queue.push({ + text: t, + timestamp: e, + count: 1 + }), this.totalLen += t.length) + } + this.totalLen >= this.maxEntryLength && this._flush(!0, !0) + }, r.prototype.start = function() { + this._reschedulePublishInterval() + }, r.prototype._reschedulePublishInterval = function() { + this.storeLogsIntervalID && (window.clearTimeout(this.storeLogsIntervalID), this.storeLogsIntervalID = null), this.storeLogsIntervalID = window.setTimeout(this._flush.bind(this, !1, !0), this.storeInterval) + }, r.prototype.flush = function() { + this._flush(!1, !0) + }, r.prototype._flush = function(e, t) { + this.totalLen > 0 && (this.logStorage.isReady() || e) && (this.logStorage.isReady() ? (this.outputCache.length && (this.outputCache.forEach(function(e) { + this.logStorage.storeLogs(e) + }.bind(this)), this.outputCache = []), this.logStorage.storeLogs(this.queue)) : this.outputCache.push(this.queue), this.queue = [], this.totalLen = 0), t && this._reschedulePublishInterval() + }, r.prototype.stop = function() { + this._flush(!1, !1) + }, e.exports = r +}, 7: e => { + var t = { + trace: 0, + debug: 1, + info: 2, + log: 3, + warn: 4, + error: 5 + }; + o.consoleTransport = console; + var n = [o.consoleTransport]; + o.addGlobalTransport = function(e) { + -1 === n.indexOf(e) && n.push(e) + }, o.removeGlobalTransport = function(e) { + var t = n.indexOf(e); - 1 !== t && n.splice(t, 1) + }; + var a = {}; + + function r() { + var e = { + methodName: "", + fileLocation: "", + line: null, + column: null }, - 91: function(e, t, n) { - "use strict"; - t.__esModule = !0, t.default = void 0; - var a = l(n(92)), - r = l(n(93)), - i = l(n(94)), - o = l(n(95)), - s = l(n(17)); - - function l(e) { - return e && e.__esModule ? e : { - default: e - } + t = new Error, + n = t.stack ? t.stack.split("\n") : []; + if (!n || n.length < 3) return e; + var a = null; + return n[3] && (a = n[3].match(/\s*at\s*(.+?)\s*\((\S*)\s*:(\d*)\s*:(\d*)\)/)), !a || a.length <= 4 ? (0 === n[2].indexOf("log@") ? e.methodName = n[3].substr(0, n[3].indexOf("@")) : e.methodName = n[2].substr(0, n[2].indexOf("@")), e) : (e.methodName = a[1], e.fileLocation = a[2], e.line = a[3], e.column = a[4], e) + } + + function i() { + var e = arguments[0], + i = arguments[1], + o = Array.prototype.slice.call(arguments, 2); + if (!(t[i] < e.level)) + for (var s = !(e.options.disableCallerInfo || a.disableCallerInfo) && r(), l = n.concat(e.transports), c = 0; c < l.length; c++) { + var u = l[c], + d = u[i]; + if (d && "function" == typeof d) { + var p = []; + p.push((new Date).toISOString()), e.id && p.push("[" + e.id + "]"), s && s.methodName.length > 1 && p.push("<" + s.methodName + ">: "); + var h = p.concat(o); + d.bind(u).apply(u, h) + } + } + } + + function o(e, n, a, r) { + this.id = n, this.options = r || {}, this.transports = a, this.transports || (this.transports = []), this.level = t[e]; + for (var o = Object.keys(t), s = 0; s < o.length; s++) this[o[s]] = i.bind(null, this, o[s]) + } + o.setGlobalOptions = function(e) { + a = e || {} + }, o.prototype.setLevel = function(e) { + this.level = t[e] + }, e.exports = o, o.levels = { + TRACE: "trace", + DEBUG: "debug", + INFO: "info", + LOG: "log", + WARN: "warn", + ERROR: "error" + } +}, 1860: (e, t, n) => { + var a = n(7), + r = n(7369), + i = {}, + o = [], + s = a.levels.TRACE; + e.exports = { + addGlobalTransport: function(e) { + a.addGlobalTransport(e) + }, + removeGlobalTransport: function(e) { + a.removeGlobalTransport(e) + }, + setGlobalOptions: function(e) { + a.setGlobalOptions(e) + }, + getLogger: function(e, t, n) { + var r = new a(s, e, t, n); + return e ? (i[e] = i[e] || [], i[e].push(r)) : o.push(r), r + }, + setLogLevelById: function(e, t) { + for (var n = t ? i[t] || [] : o, a = 0; a < n.length; a++) n[a].setLevel(e) + }, + setLogLevel: function(e) { + s = e; + for (var t = 0; t < o.length; t++) o[t].setLevel(e); + for (var n in i) { + var a = i[n] || []; + for (t = 0; t < a.length; t++) a[t].setLevel(e) + } + }, + levels: a.levels, + LogCollector: r + } +}, 8045: (module, exports, __webpack_require__) => { + var process = __webpack_require__(554), + __WEBPACK_AMD_DEFINE_RESULT__; + (function() { + "use strict"; + var ERROR = "input is invalid type", + WINDOW = "object" == typeof window, + root = WINDOW ? window : {}; + root.JS_MD5_NO_WINDOW && (WINDOW = !1); + var WEB_WORKER = !WINDOW && "object" == typeof self, + NODE_JS = !root.JS_MD5_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node; + NODE_JS ? root = __webpack_require__.g : WEB_WORKER && (root = self); + var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && module.exports, + AMD = __webpack_require__.amdO, + ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer, + HEX_CHARS = "0123456789abcdef".split(""), + EXTRA = [128, 32768, 8388608, -2147483648], + SHIFT = [0, 8, 16, 24], + OUTPUT_TYPES = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"], + BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), + blocks = [], + buffer8; + if (ARRAY_BUFFER) { + var buffer = new ArrayBuffer(68); + buffer8 = new Uint8Array(buffer), blocks = new Uint32Array(buffer) + }!root.JS_MD5_NO_NODE_JS && Array.isArray || (Array.isArray = function(e) { + return "[object Array]" === Object.prototype.toString.call(e) + }), !ARRAY_BUFFER || !root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function(e) { + return "object" == typeof e && e.buffer && e.buffer.constructor === ArrayBuffer + }); + var createOutputMethod = function(e) { + return function(t) { + return new Md5(!0).update(t)[e]() } - var c = function() { - function e(e, t) { - if (void 0 === t && (t = !1), null == e || "" === e) throw new Error("UserAgent parameter can't be empty"); - this._ua = e, this.parsedResult = {}, !0 !== t && this.parse() - } - var t = e.prototype; - return t.getUA = function() { - return this._ua - }, t.test = function(e) { - return e.test(this._ua) - }, t.parseBrowser = function() { - var e = this; - this.parsedResult.browser = {}; - var t = a.default.find((function(t) { - if ("function" == typeof t.test) return t.test(e); - if (t.test instanceof Array) return t.test.some((function(t) { - return e.test(t) - })); - throw new Error("Browser's test function is not valid") - })); - return t && (this.parsedResult.browser = t.describe(this.getUA())), this.parsedResult.browser - }, t.getBrowser = function() { - return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser() - }, t.getBrowserName = function(e) { - return e ? String(this.getBrowser().name).toLowerCase() || "" : this.getBrowser().name || "" - }, t.getBrowserVersion = function() { - return this.getBrowser().version - }, t.getOS = function() { - return this.parsedResult.os ? this.parsedResult.os : this.parseOS() - }, t.parseOS = function() { - var e = this; - this.parsedResult.os = {}; - var t = r.default.find((function(t) { - if ("function" == typeof t.test) return t.test(e); - if (t.test instanceof Array) return t.test.some((function(t) { - return e.test(t) - })); - throw new Error("Browser's test function is not valid") - })); - return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os - }, t.getOSName = function(e) { - var t = this.getOS().name; - return e ? String(t).toLowerCase() || "" : t || "" - }, t.getOSVersion = function() { - return this.getOS().version - }, t.getPlatform = function() { - return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform() - }, t.getPlatformType = function(e) { - void 0 === e && (e = !1); - var t = this.getPlatform().type; - return e ? String(t).toLowerCase() || "" : t || "" - }, t.parsePlatform = function() { - var e = this; - this.parsedResult.platform = {}; - var t = i.default.find((function(t) { - if ("function" == typeof t.test) return t.test(e); - if (t.test instanceof Array) return t.test.some((function(t) { - return e.test(t) - })); - throw new Error("Browser's test function is not valid") - })); - return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform - }, t.getEngine = function() { - return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine() - }, t.getEngineName = function(e) { - return e ? String(this.getEngine().name).toLowerCase() || "" : this.getEngine().name || "" - }, t.parseEngine = function() { - var e = this; - this.parsedResult.engine = {}; - var t = o.default.find((function(t) { - if ("function" == typeof t.test) return t.test(e); - if (t.test instanceof Array) return t.test.some((function(t) { - return e.test(t) - })); - throw new Error("Browser's test function is not valid") - })); - return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine - }, t.parse = function() { - return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this - }, t.getResult = function() { - return Object.assign({}, this.parsedResult) - }, t.satisfies = function(e) { - var t = this, - n = {}, - a = 0, - r = {}, - i = 0; - if (Object.keys(e).forEach((function(t) { - var o = e[t]; - "string" == typeof o ? (r[t] = o, i += 1) : "object" == typeof o && (n[t] = o, a += 1) - })), a > 0) { - var o = Object.keys(n), - s = o.find((function(e) { - return t.isOS(e) - })); - if (s) { - var l = this.satisfies(n[s]); - if (void 0 !== l) return l - } - var c = o.find((function(e) { - return t.isPlatform(e) - })); - if (c) { - var u = this.satisfies(n[c]); - if (void 0 !== u) return u - } - } - if (i > 0) { - var d = Object.keys(r).find((function(e) { - return t.isBrowser(e, !0) - })); - if (void 0 !== d) return this.compareVersion(r[d]) - } - }, t.isBrowser = function(e, t) { - void 0 === t && (t = !1); - var n = this.getBrowserName().toLowerCase(), - a = e.toLowerCase(), - r = s.default.getBrowserTypeByAlias(a); - return t && r && (a = r.toLowerCase()), a === n - }, t.compareVersion = function(e) { - var t = [0], - n = e, - a = !1, - r = this.getBrowserVersion(); - if ("string" == typeof r) return ">" === e[0] || "<" === e[0] ? (n = e.substr(1), "=" === e[1] ? (a = !0, n = e.substr(2)) : t = [], ">" === e[0] ? t.push(1) : t.push(-1)) : "=" === e[0] ? n = e.substr(1) : "~" === e[0] && (a = !0, n = e.substr(1)), t.indexOf(s.default.compareVersions(r, n, a)) > -1 - }, t.isOS = function(e) { - return this.getOSName(!0) === String(e).toLowerCase() - }, t.isPlatform = function(e) { - return this.getPlatformType(!0) === String(e).toLowerCase() - }, t.isEngine = function(e) { - return this.getEngineName(!0) === String(e).toLowerCase() - }, t.is = function(e) { - return this.isBrowser(e) || this.isOS(e) || this.isPlatform(e) - }, t.some = function(e) { - var t = this; - return void 0 === e && (e = []), e.some((function(e) { - return t.is(e) - })) - }, e - }(); - t.default = c, e.exports = t.default - }, - 92: function(e, t, n) { - "use strict"; - t.__esModule = !0, t.default = void 0; - var a, r = (a = n(17)) && a.__esModule ? a : { - default: a - }, - i = /version\/(\d+(\.?_?\d+)+)/i, - o = [{ - test: [/googlebot/i], - describe: function(e) { - var t = { - name: "Googlebot" - }, - n = r.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/opera/i], - describe: function(e) { - var t = { - name: "Opera" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/opr\/|opios/i], - describe: function(e) { - var t = { - name: "Opera" - }, - n = r.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/SamsungBrowser/i], - describe: function(e) { - var t = { - name: "Samsung Internet for Android" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/Whale/i], - describe: function(e) { - var t = { - name: "NAVER Whale Browser" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/MZBrowser/i], - describe: function(e) { - var t = { - name: "MZ Browser" - }, - n = r.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/focus/i], - describe: function(e) { - var t = { - name: "Focus" - }, - n = r.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/swing/i], - describe: function(e) { - var t = { - name: "Swing" - }, - n = r.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/coast/i], - describe: function(e) { - var t = { - name: "Opera Coast" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/yabrowser/i], - describe: function(e) { - var t = { - name: "Yandex Browser" - }, - n = r.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/ucbrowser/i], - describe: function(e) { - var t = { - name: "UC Browser" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/Maxthon|mxios/i], - describe: function(e) { - var t = { - name: "Maxthon" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/epiphany/i], - describe: function(e) { - var t = { - name: "Epiphany" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/puffin/i], - describe: function(e) { - var t = { - name: "Puffin" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/sleipnir/i], - describe: function(e) { - var t = { - name: "Sleipnir" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/k-meleon/i], - describe: function(e) { - var t = { - name: "K-Meleon" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/micromessenger/i], - describe: function(e) { - var t = { - name: "WeChat" - }, - n = r.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/qqbrowser/i], - describe: function(e) { - var t = { - name: /qqbrowserlite/i.test(e) ? "QQ Browser Lite" : "QQ Browser" - }, - n = r.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/msie|trident/i], - describe: function(e) { - var t = { - name: "Internet Explorer" - }, - n = r.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/\sedg\//i], - describe: function(e) { - var t = { - name: "Microsoft Edge" - }, - n = r.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/edg([ea]|ios)/i], - describe: function(e) { - var t = { - name: "Microsoft Edge" - }, - n = r.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/vivaldi/i], - describe: function(e) { - var t = { - name: "Vivaldi" - }, - n = r.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/seamonkey/i], - describe: function(e) { - var t = { - name: "SeaMonkey" - }, - n = r.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/sailfish/i], - describe: function(e) { - var t = { - name: "Sailfish" - }, - n = r.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, e); - return n && (t.version = n), t - } - }, { - test: [/silk/i], - describe: function(e) { - var t = { - name: "Amazon Silk" - }, - n = r.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/phantom/i], - describe: function(e) { - var t = { - name: "PhantomJS" - }, - n = r.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/slimerjs/i], - describe: function(e) { - var t = { - name: "SlimerJS" - }, - n = r.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/blackberry|\bbb\d+/i, /rim\stablet/i], - describe: function(e) { - var t = { - name: "BlackBerry" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/(web|hpw)[o0]s/i], - describe: function(e) { - var t = { - name: "WebOS Browser" - }, - n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/bada/i], - describe: function(e) { - var t = { - name: "Bada" - }, - n = r.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/tizen/i], - describe: function(e) { - var t = { - name: "Tizen" - }, - n = r.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/qupzilla/i], - describe: function(e) { - var t = { - name: "QupZilla" - }, - n = r.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/firefox|iceweasel|fxios/i], - describe: function(e) { - var t = { - name: "Firefox" - }, - n = r.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/chromium/i], - describe: function(e) { - var t = { - name: "Chromium" - }, - n = r.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/chrome|crios|crmo/i], - describe: function(e) { - var t = { - name: "Chrome" - }, - n = r.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/GSA/i], - describe: function(e) { - var t = { - name: "Google Search" - }, - n = r.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: function(e) { - var t = !e.test(/like android/i), - n = e.test(/android/i); - return t && n - }, - describe: function(e) { - var t = { - name: "Android Browser" - }, - n = r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/playstation 4/i], - describe: function(e) { - var t = { - name: "PlayStation 4" - }, - n = r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/safari|applewebkit/i], - describe: function(e) { - var t = { - name: "Safari" - }, - n = r.default.getFirstMatch(i, e); - return n && (t.version = n), t - } - }, { - test: [/.*/i], - describe: function(e) { - var t = -1 !== e.search("\\(") ? /^(.*)\/(.*)[ \t]\((.*)/ : /^(.*)\/(.*) /; - return { - name: r.default.getFirstMatch(t, e), - version: r.default.getSecondMatch(t, e) - } - } - }]; - t.default = o, e.exports = t.default }, - 93: function(e, t, n) { - "use strict"; - t.__esModule = !0, t.default = void 0; - var a, r = (a = n(17)) && a.__esModule ? a : { - default: a - }, - i = n(18), - o = [{ - test: [/Roku\/DVP/], - describe: function(e) { - var t = r.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i, e); - return { - name: i.OS_MAP.Roku, - version: t - } - } - }, { - test: [/windows phone/i], - describe: function(e) { - var t = r.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i, e); - return { - name: i.OS_MAP.WindowsPhone, - version: t - } - } - }, { - test: [/windows/i], - describe: function(e) { - var t = r.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i, e), - n = r.default.getWindowsVersionName(t); - return { - name: i.OS_MAP.Windows, - version: t, - versionName: n - } - } - }, { - test: [/macintosh/i], - describe: function(e) { - var t = r.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i, e).replace(/[_\s]/g, "."), - n = r.default.getMacOSVersionName(t), - a = { - name: i.OS_MAP.MacOS, - version: t - }; - return n && (a.versionName = n), a - } - }, { - test: [/(ipod|iphone|ipad)/i], - describe: function(e) { - var t = r.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i, e).replace(/[_\s]/g, "."); - return { - name: i.OS_MAP.iOS, - version: t - } - } - }, { - test: function(e) { - var t = !e.test(/like android/i), - n = e.test(/android/i); - return t && n - }, - describe: function(e) { - var t = r.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i, e), - n = r.default.getAndroidVersionName(t), - a = { - name: i.OS_MAP.Android, - version: t - }; - return n && (a.versionName = n), a - } - }, { - test: [/(web|hpw)[o0]s/i], - describe: function(e) { - var t = r.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i, e), - n = { - name: i.OS_MAP.WebOS - }; - return t && t.length && (n.version = t), n - } - }, { - test: [/blackberry|\bbb\d+/i, /rim\stablet/i], - describe: function(e) { - var t = r.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i, e) || r.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i, e) || r.default.getFirstMatch(/\bbb(\d+)/i, e); - return { - name: i.OS_MAP.BlackBerry, - version: t - } - } - }, { - test: [/bada/i], - describe: function(e) { - var t = r.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i, e); - return { - name: i.OS_MAP.Bada, - version: t - } - } - }, { - test: [/tizen/i], - describe: function(e) { - var t = r.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i, e); - return { - name: i.OS_MAP.Tizen, - version: t - } - } - }, { - test: [/linux/i], - describe: function() { - return { - name: i.OS_MAP.Linux - } - } - }, { - test: [/CrOS/], - describe: function() { - return { - name: i.OS_MAP.ChromeOS - } - } - }, { - test: [/PlayStation 4/], - describe: function(e) { - var t = r.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i, e); - return { - name: i.OS_MAP.PlayStation4, - version: t - } - } - }]; - t.default = o, e.exports = t.default + createMethod = function() { + var e = createOutputMethod("hex"); + NODE_JS && (e = nodeWrap(e)), e.create = function() { + return new Md5 + }, e.update = function(t) { + return e.create().update(t) + }; + for (var t = 0; t < OUTPUT_TYPES.length; ++t) { + var n = OUTPUT_TYPES[t]; + e[n] = createOutputMethod(n) + } + return e }, - 94: function(e, t, n) { - "use strict"; - t.__esModule = !0, t.default = void 0; - var a, r = (a = n(17)) && a.__esModule ? a : { - default: a - }, - i = n(18), - o = [{ - test: [/googlebot/i], - describe: function() { - return { - type: "bot", - vendor: "Google" - } - } - }, { - test: [/huawei/i], - describe: function(e) { - var t = r.default.getFirstMatch(/(can-l01)/i, e) && "Nova", - n = { - type: i.PLATFORMS_MAP.mobile, - vendor: "Huawei" - }; - return t && (n.model = t), n - } - }, { - test: [/nexus\s*(?:7|8|9|10).*/i], - describe: function() { - return { - type: i.PLATFORMS_MAP.tablet, - vendor: "Nexus" - } - } - }, { - test: [/ipad/i], - describe: function() { - return { - type: i.PLATFORMS_MAP.tablet, - vendor: "Apple", - model: "iPad" - } - } - }, { - test: [/kftt build/i], - describe: function() { - return { - type: i.PLATFORMS_MAP.tablet, - vendor: "Amazon", - model: "Kindle Fire HD 7" - } - } - }, { - test: [/silk/i], - describe: function() { - return { - type: i.PLATFORMS_MAP.tablet, - vendor: "Amazon" - } - } - }, { - test: [/tablet(?! pc)/i], - describe: function() { - return { - type: i.PLATFORMS_MAP.tablet - } - } - }, { - test: function(e) { - var t = e.test(/ipod|iphone/i), - n = e.test(/like (ipod|iphone)/i); - return t && !n - }, - describe: function(e) { - var t = r.default.getFirstMatch(/(ipod|iphone)/i, e); - return { - type: i.PLATFORMS_MAP.mobile, - vendor: "Apple", - model: t - } - } - }, { - test: [/nexus\s*[0-6].*/i, /galaxy nexus/i], - describe: function() { - return { - type: i.PLATFORMS_MAP.mobile, - vendor: "Nexus" - } - } - }, { - test: [/[^-]mobi/i], - describe: function() { - return { - type: i.PLATFORMS_MAP.mobile - } - } - }, { - test: function(e) { - return "blackberry" === e.getBrowserName(!0) - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.mobile, - vendor: "BlackBerry" - } - } - }, { - test: function(e) { - return "bada" === e.getBrowserName(!0) - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.mobile - } - } - }, { - test: function(e) { - return "windows phone" === e.getBrowserName() - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.mobile, - vendor: "Microsoft" - } - } - }, { - test: function(e) { - var t = Number(String(e.getOSVersion()).split(".")[0]); - return "android" === e.getOSName(!0) && t >= 3 - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.tablet - } - } - }, { - test: function(e) { - return "android" === e.getOSName(!0) - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.mobile - } - } - }, { - test: function(e) { - return "macos" === e.getOSName(!0) - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.desktop, - vendor: "Apple" - } - } - }, { - test: function(e) { - return "windows" === e.getOSName(!0) - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.desktop - } - } - }, { - test: function(e) { - return "linux" === e.getOSName(!0) - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.desktop - } + nodeWrap = function(method) { + var crypto = eval("require('crypto')"), + Buffer = eval("require('buffer').Buffer"), + nodeMethod = function(e) { + if ("string" == typeof e) return crypto.createHash("md5").update(e, "utf8").digest("hex"); + if (null == e) throw ERROR; + return e.constructor === ArrayBuffer && (e = new Uint8Array(e)), Array.isArray(e) || ArrayBuffer.isView(e) || e.constructor === Buffer ? crypto.createHash("md5").update(new Buffer(e)).digest("hex") : method(e) + }; + return nodeMethod + }; + + function Md5(e) { + if (e) blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0, this.blocks = blocks, this.buffer8 = buffer8; + else if (ARRAY_BUFFER) { + var t = new ArrayBuffer(68); + this.buffer8 = new Uint8Array(t), this.blocks = new Uint32Array(t) + } else this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = this.hBytes = 0, this.finalized = this.hashed = !1, this.first = !0 + } + Md5.prototype.update = function(e) { + if (!this.finalized) { + var t, n = typeof e; + if ("string" !== n) { + if ("object" !== n) throw ERROR; + if (null === e) throw ERROR; + if (ARRAY_BUFFER && e.constructor === ArrayBuffer) e = new Uint8Array(e); + else if (!(Array.isArray(e) || ARRAY_BUFFER && ArrayBuffer.isView(e))) throw ERROR; + t = !0 + } + for (var a, r, i = 0, o = e.length, s = this.blocks, l = this.buffer8; i < o;) { + if (this.hashed && (this.hashed = !1, s[0] = s[16], s[16] = s[1] = s[2] = s[3] = s[4] = s[5] = s[6] = s[7] = s[8] = s[9] = s[10] = s[11] = s[12] = s[13] = s[14] = s[15] = 0), t) + if (ARRAY_BUFFER) + for (r = this.start; i < o && r < 64; ++i) l[r++] = e[i]; + else + for (r = this.start; i < o && r < 64; ++i) s[r >> 2] |= e[i] << SHIFT[3 & r++]; + else if (ARRAY_BUFFER) + for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? l[r++] = a : a < 2048 ? (l[r++] = 192 | a >> 6, l[r++] = 128 | 63 & a) : a < 55296 || a >= 57344 ? (l[r++] = 224 | a >> 12, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), l[r++] = 240 | a >> 18, l[r++] = 128 | a >> 12 & 63, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a); + else + for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? s[r >> 2] |= a << SHIFT[3 & r++] : a < 2048 ? (s[r >> 2] |= (192 | a >> 6) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : a < 55296 || a >= 57344 ? (s[r >> 2] |= (224 | a >> 12) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), s[r >> 2] |= (240 | a >> 18) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 12 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]); + this.lastByteIndex = r, this.bytes += r - this.start, r >= 64 ? (this.start = r - 64, this.hash(), this.hashed = !0) : this.start = r + } + return this.bytes > 4294967295 && (this.hBytes += this.bytes / 4294967296 << 0, this.bytes = this.bytes % 4294967296), this + } + }, Md5.prototype.finalize = function() { + if (!this.finalized) { + this.finalized = !0; + var e = this.blocks, + t = this.lastByteIndex; + e[t >> 2] |= EXTRA[3 & t], t >= 56 && (this.hashed || this.hash(), e[0] = e[16], e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0), e[14] = this.bytes << 3, e[15] = this.hBytes << 3 | this.bytes >>> 29, this.hash() + } + }, Md5.prototype.hash = function() { + var e, t, n, a, r, i, o = this.blocks; + this.first ? t = ((t = ((e = ((e = o[0] - 680876937) << 7 | e >>> 25) - 271733879 << 0) ^ (n = ((n = (-271733879 ^ (a = ((a = (-1732584194 ^ 2004318071 & e) + o[1] - 117830708) << 12 | a >>> 20) + e << 0) & (-271733879 ^ e)) + o[2] - 1126478375) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1316259209) << 22 | t >>> 10) + n << 0 : (e = this.h0, t = this.h1, n = this.h2, t = ((t += ((e = ((e += ((a = this.h3) ^ t & (n ^ a)) + o[0] - 680876936) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[1] - 389564586) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[2] + 606105819) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1044525330) << 22 | t >>> 10) + n << 0), t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[4] - 176418897) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[5] + 1200080426) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[6] - 1473231341) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[7] - 45705983) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[8] + 1770035416) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[9] - 1958414417) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[10] - 42063) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[11] - 1990404162) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[12] + 1804603682) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[13] - 40341101) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[14] - 1502002290) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[15] + 1236535329) << 22 | t >>> 10) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[1] - 165796510) << 5 | e >>> 27) + t << 0) ^ t)) + o[6] - 1069501632) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[11] + 643717713) << 14 | n >>> 18) + a << 0) ^ a)) + o[0] - 373897302) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[5] - 701558691) << 5 | e >>> 27) + t << 0) ^ t)) + o[10] + 38016083) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[15] - 660478335) << 14 | n >>> 18) + a << 0) ^ a)) + o[4] - 405537848) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[9] + 568446438) << 5 | e >>> 27) + t << 0) ^ t)) + o[14] - 1019803690) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[3] - 187363961) << 14 | n >>> 18) + a << 0) ^ a)) + o[8] + 1163531501) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[13] - 1444681467) << 5 | e >>> 27) + t << 0) ^ t)) + o[2] - 51403784) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[7] + 1735328473) << 14 | n >>> 18) + a << 0) ^ a)) + o[12] - 1926607734) << 20 | t >>> 12) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[5] - 378558) << 4 | e >>> 28) + t << 0)) + o[8] - 2022574463) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[11] + 1839030562) << 16 | n >>> 16) + a << 0)) + o[14] - 35309556) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[1] - 1530992060) << 4 | e >>> 28) + t << 0)) + o[4] + 1272893353) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[7] - 155497632) << 16 | n >>> 16) + a << 0)) + o[10] - 1094730640) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[13] + 681279174) << 4 | e >>> 28) + t << 0)) + o[0] - 358537222) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[3] - 722521979) << 16 | n >>> 16) + a << 0)) + o[6] + 76029189) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[9] - 640364487) << 4 | e >>> 28) + t << 0)) + o[12] - 421815835) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[15] + 530742520) << 16 | n >>> 16) + a << 0)) + o[2] - 995338651) << 23 | t >>> 9) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[0] - 198630844) << 6 | e >>> 26) + t << 0) | ~n)) + o[7] + 1126891415) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[14] - 1416354905) << 15 | n >>> 17) + a << 0) | ~e)) + o[5] - 57434055) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[12] + 1700485571) << 6 | e >>> 26) + t << 0) | ~n)) + o[3] - 1894986606) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[10] - 1051523) << 15 | n >>> 17) + a << 0) | ~e)) + o[1] - 2054922799) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[8] + 1873313359) << 6 | e >>> 26) + t << 0) | ~n)) + o[15] - 30611744) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[6] - 1560198380) << 15 | n >>> 17) + a << 0) | ~e)) + o[13] + 1309151649) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[4] - 145523070) << 6 | e >>> 26) + t << 0) | ~n)) + o[11] - 1120210379) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[2] + 718787259) << 15 | n >>> 17) + a << 0) | ~e)) + o[9] - 343485551) << 21 | t >>> 11) + n << 0, this.first ? (this.h0 = e + 1732584193 << 0, this.h1 = t - 271733879 << 0, this.h2 = n - 1732584194 << 0, this.h3 = a + 271733878 << 0, this.first = !1) : (this.h0 = this.h0 + e << 0, this.h1 = this.h1 + t << 0, this.h2 = this.h2 + n << 0, this.h3 = this.h3 + a << 0) + }, Md5.prototype.hex = function() { + this.finalize(); + var e = this.h0, + t = this.h1, + n = this.h2, + a = this.h3; + return HEX_CHARS[e >> 4 & 15] + HEX_CHARS[15 & e] + HEX_CHARS[e >> 12 & 15] + HEX_CHARS[e >> 8 & 15] + HEX_CHARS[e >> 20 & 15] + HEX_CHARS[e >> 16 & 15] + HEX_CHARS[e >> 28 & 15] + HEX_CHARS[e >> 24 & 15] + HEX_CHARS[t >> 4 & 15] + HEX_CHARS[15 & t] + HEX_CHARS[t >> 12 & 15] + HEX_CHARS[t >> 8 & 15] + HEX_CHARS[t >> 20 & 15] + HEX_CHARS[t >> 16 & 15] + HEX_CHARS[t >> 28 & 15] + HEX_CHARS[t >> 24 & 15] + HEX_CHARS[n >> 4 & 15] + HEX_CHARS[15 & n] + HEX_CHARS[n >> 12 & 15] + HEX_CHARS[n >> 8 & 15] + HEX_CHARS[n >> 20 & 15] + HEX_CHARS[n >> 16 & 15] + HEX_CHARS[n >> 28 & 15] + HEX_CHARS[n >> 24 & 15] + HEX_CHARS[a >> 4 & 15] + HEX_CHARS[15 & a] + HEX_CHARS[a >> 12 & 15] + HEX_CHARS[a >> 8 & 15] + HEX_CHARS[a >> 20 & 15] + HEX_CHARS[a >> 16 & 15] + HEX_CHARS[a >> 28 & 15] + HEX_CHARS[a >> 24 & 15] + }, Md5.prototype.toString = Md5.prototype.hex, Md5.prototype.digest = function() { + this.finalize(); + var e = this.h0, + t = this.h1, + n = this.h2, + a = this.h3; + return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255, 255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255] + }, Md5.prototype.array = Md5.prototype.digest, Md5.prototype.arrayBuffer = function() { + this.finalize(); + var e = new ArrayBuffer(16), + t = new Uint32Array(e); + return t[0] = this.h0, t[1] = this.h1, t[2] = this.h2, t[3] = this.h3, e + }, Md5.prototype.buffer = Md5.prototype.arrayBuffer, Md5.prototype.base64 = function() { + for (var e, t, n, a = "", r = this.array(), i = 0; i < 15;) e = r[i++], t = r[i++], n = r[i++], a += BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[63 & (e << 4 | t >>> 4)] + BASE64_ENCODE_CHAR[63 & (t << 2 | n >>> 6)] + BASE64_ENCODE_CHAR[63 & n]; + return e = r[i], a + (BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[e << 4 & 63] + "==") + }; + var exports = createMethod(); + COMMON_JS ? module.exports = exports : (root.md5 = exports, AMD && (__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return exports + }.call(exports, __webpack_require__, exports, module), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))) + })() +}, 7670: (e, t, n) => { + var a = n(791), + r = n(6309), + i = r; + i.v1 = a, i.v4 = r, e.exports = i +}, 2548: e => { + for (var t = [], n = 0; n < 256; ++n) t[n] = (n + 256).toString(16).substr(1); + e.exports = function(e, n) { + var a = n || 0, + r = t; + return r[e[a++]] + r[e[a++]] + r[e[a++]] + r[e[a++]] + "-" + r[e[a++]] + r[e[a++]] + "-" + r[e[a++]] + r[e[a++]] + "-" + r[e[a++]] + r[e[a++]] + "-" + r[e[a++]] + r[e[a++]] + r[e[a++]] + r[e[a++]] + r[e[a++]] + r[e[a++]] + } +}, 7933: (e, t, n) => { + var a, r = n.g.crypto || n.g.msCrypto; + if (r && r.getRandomValues) { + var i = new Uint8Array(16); + a = function() { + return r.getRandomValues(i), i + } + } + if (!a) { + var o = new Array(16); + a = function() { + for (var e, t = 0; t < 16; t++) 0 == (3 & t) && (e = 4294967296 * Math.random()), o[t] = e >>> ((3 & t) << 3) & 255; + return o + } + } + e.exports = a +}, 791: (e, t, n) => { + var a = n(7933), + r = n(2548), + i = a(), + o = [1 | i[0], i[1], i[2], i[3], i[4], i[5]], + s = 16383 & (i[6] << 8 | i[7]), + l = 0, + c = 0; + e.exports = function(e, t, n) { + var a = t && n || 0, + i = t || [], + u = void 0 !== (e = e || {}).clockseq ? e.clockseq : s, + d = void 0 !== e.msecs ? e.msecs : (new Date).getTime(), + p = void 0 !== e.nsecs ? e.nsecs : c + 1, + h = d - l + (p - c) / 1e4; + if (h < 0 && void 0 === e.clockseq && (u = u + 1 & 16383), (h < 0 || d > l) && void 0 === e.nsecs && (p = 0), p >= 1e4) throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + l = d, c = p, s = u; + var m = (1e4 * (268435455 & (d += 122192928e5)) + p) % 4294967296; + i[a++] = m >>> 24 & 255, i[a++] = m >>> 16 & 255, i[a++] = m >>> 8 & 255, i[a++] = 255 & m; + var f = d / 4294967296 * 1e4 & 268435455; + i[a++] = f >>> 8 & 255, i[a++] = 255 & f, i[a++] = f >>> 24 & 15 | 16, i[a++] = f >>> 16 & 255, i[a++] = u >>> 8 | 128, i[a++] = 255 & u; + for (var g = e.node || o, b = 0; b < 6; ++b) i[a + b] = g[b]; + return t || r(i) + } +}, 6309: (e, t, n) => { + var a = n(7933), + r = n(2548); + e.exports = function(e, t, n) { + var i = t && n || 0; + "string" == typeof e && (t = "binary" == e ? new Array(16) : null, e = null); + var o = (e = e || {}).random || (e.rng || a)(); + if (o[6] = 15 & o[6] | 64, o[8] = 63 & o[8] | 128, t) + for (var s = 0; s < 16; ++s) t[i + s] = o[s]; + return t || r(o) + } +}, 6383: (e, t, n) => { + "use strict"; + var a = n(8740), + r = { + childContextTypes: !0, + contextType: !0, + contextTypes: !0, + defaultProps: !0, + displayName: !0, + getDefaultProps: !0, + getDerivedStateFromError: !0, + getDerivedStateFromProps: !0, + mixins: !0, + propTypes: !0, + type: !0 + }, + i = { + name: !0, + length: !0, + prototype: !0, + caller: !0, + callee: !0, + arguments: !0, + arity: !0 + }, + o = { + $$typeof: !0, + compare: !0, + defaultProps: !0, + displayName: !0, + propTypes: !0, + type: !0 + }, + s = {}; + + function l(e) { + return a.isMemo(e) ? o : s[e.$$typeof] || r + } + s[a.ForwardRef] = { + $$typeof: !0, + render: !0, + defaultProps: !0, + displayName: !0, + propTypes: !0 + }, s[a.Memo] = o; + var c = Object.defineProperty, + u = Object.getOwnPropertyNames, + d = Object.getOwnPropertySymbols, + p = Object.getOwnPropertyDescriptor, + h = Object.getPrototypeOf, + m = Object.prototype; + e.exports = function e(t, n, a) { + if ("string" != typeof n) { + if (m) { + var r = h(n); + r && r !== m && e(t, r, a) + } + var o = u(n); + d && (o = o.concat(d(n))); + for (var s = l(t), f = l(n), g = 0; g < o.length; ++g) { + var b = o[g]; + if (!(i[b] || a && a[b] || f && f[b] || s && s[b])) { + var y = p(n, b); + try { + c(t, b, y) + } catch (e) {} + } + } + } + return t + } +}, 7591: (e, t, n) => { + var a, r, i, o, s, l, c = n(554), + u = (s = {}, i = (i = "undefined" != typeof document && document.currentScript ? document.currentScript.src : void 0) || "node_modules/@matrix-org/olm/olm.js", l = function(t) { + var o, l, u; + if (t = t || {}, o || (o = void 0 !== t ? t : {}), o.ready = new Promise((function(e) { + l = e + })), "undefined" != typeof window) u = function(e) { + window.crypto.getRandomValues(e) + }; + else { + if (!e.exports) throw Error("Cannot find global to attach library to"); + var d = n(7250); + u = function(e) { + var t = d.randomBytes(e.length); + e.set(t) + }, c = n.g.process + } + if ("undefined" != typeof OLM_OPTIONS) + for (var p in OLM_OPTIONS) OLM_OPTIONS.hasOwnProperty(p) && (o[p] = OLM_OPTIONS[p]); + o.onRuntimeInitialized = function() { + De = o._olm_error(), s.PRIVATE_KEY_LENGTH = o._olm_pk_private_key_length(), a && a() + }, o.onAbort = function(e) { + r && r(e) + }; + var h, m, f, g, b, y = {}; + for (h in o) o.hasOwnProperty(h) && (y[h] = o[h]); + m = "object" == typeof window, f = "function" == typeof importScripts, g = "object" == typeof c && "object" == typeof c.versions && "string" == typeof c.versions.node, b = !m && !g && !f; + var v, k, _, w, S = ""; + g ? (S = f ? n(1217).dirname(S) + "/" : "//", v = function(e, t) { + return _ || (_ = n(1591)), w || (w = n(1217)), e = w.normalize(e), _.readFileSync(e, t ? null : "utf8") + }, k = function(e) { + return (e = v(e, !0)).buffer || (e = new Uint8Array(e)), e.buffer || ae("Assertion failed: undefined"), e + }, 1 < c.argv.length && c.argv[1].replace(/\\/g, "/"), c.argv.slice(2), c.on("uncaughtException", (function(e) { + throw e + })), c.on("unhandledRejection", ae), o.inspect = function() { + return "[Emscripten Module object]" + }) : b ? ("undefined" != typeof read && (v = function(e) { + return read(e) + }), k = function(e) { + return "function" == typeof readbuffer ? new Uint8Array(readbuffer(e)) : ("object" == typeof(e = read(e, "binary")) || ae("Assertion failed: undefined"), e) + }, "undefined" != typeof print && ("undefined" == typeof console && (console = {}), console.log = print, console.warn = console.error = "undefined" != typeof printErr ? printErr : print)) : (m || f) && (f ? S = self.location.href : document.currentScript && (S = document.currentScript.src), i && (S = i), S = 0 !== S.indexOf("blob:") ? S.substr(0, S.lastIndexOf("/") + 1) : "", v = function(e) { + var t = new XMLHttpRequest; + return t.open("GET", e, !1), t.send(null), t.responseText + }, f && (k = function(e) { + var t = new XMLHttpRequest; + return t.open("GET", e, !1), t.responseType = "arraybuffer", t.send(null), new Uint8Array(t.response) + })); + var E, x = o.print || console.log.bind(console), + C = o.printErr || console.warn.bind(console); + for (h in y) y.hasOwnProperty(h) && (o[h] = y[h]); + + function A(e) { + var t = "i8"; + switch ("*" === t.charAt(t.length - 1) && (t = "i32"), t) { + case "i1": + case "i8": + L[e >> 0] = 0; + break; + case "i16": + q[e >> 1] = 0; + break; + case "i32": + B[e >> 2] = 0; + break; + case "i64": + oe = [0, 1 <= +Q(0) ? ~~+X(0) >>> 0 : 0], B[e >> 2] = oe[0], B[e + 4 >> 2] = oe[1]; + break; + case "float": + U[e >> 2] = 0; + break; + case "double": + H[e >> 3] = 0; + break; + default: + ae("invalid type for setValue: " + t) + } + } + + function T(e, t) { + switch ("*" === (t = t || "i8").charAt(t.length - 1) && (t = "i32"), t) { + case "i1": + case "i8": + return L[e >> 0]; + case "i16": + return q[e >> 1]; + case "i32": + case "i64": + return B[e >> 2]; + case "float": + return U[e >> 2]; + case "double": + return H[e >> 3]; + default: + ae("invalid type for getValue: " + t) + } + return null + } + y = null, o.wasmBinary && (E = o.wasmBinary), o.noExitRuntime && o.noExitRuntime, "object" != typeof WebAssembly && ae("no native wasm support detected"); + var D, P = new WebAssembly.Table({ + initial: 9, + maximum: 9, + element: "anyfunc" + }), + j = !1, + M = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0; + + function I(e, t) { + if (e) { + var n = F, + a = e + t; + for (t = e; n[t] && !(t >= a);) ++t; + if (16 < t - e && n.subarray && M) e = M.decode(n.subarray(e, t)); + else { + for (a = ""; e < t;) { + var r = n[e++]; + if (128 & r) { + var i = 63 & n[e++]; + if (192 == (224 & r)) a += String.fromCharCode((31 & r) << 6 | i); + else { + var o = 63 & n[e++]; + 65536 > (r = 224 == (240 & r) ? (15 & r) << 12 | i << 6 | o : (7 & r) << 18 | i << 12 | o << 6 | 63 & n[e++]) ? a += String.fromCharCode(r) : (r -= 65536, a += String.fromCharCode(55296 | r >> 10, 56320 | 1023 & r)) + } + } else a += String.fromCharCode(r) } - }, { - test: function(e) { - return "playstation 4" === e.getOSName(!0) - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.tv + e = a + } + } else e = ""; + return e + } + + function O(e, t, n, a) { + if (!(0 < a)) return 0; + var r = n; + a = n + a - 1; + for (var i = 0; i < e.length; ++i) { + var o = e.charCodeAt(i); + if (55296 <= o && 57343 >= o && (o = 65536 + ((1023 & o) << 10) | 1023 & e.charCodeAt(++i)), 127 >= o) { + if (n >= a) break; + t[n++] = o + } else { + if (2047 >= o) { + if (n + 1 >= a) break; + t[n++] = 192 | o >> 6 + } else { + if (65535 >= o) { + if (n + 2 >= a) break; + t[n++] = 224 | o >> 12 + } else { + if (n + 3 >= a) break; + t[n++] = 240 | o >> 18, t[n++] = 128 | o >> 12 & 63 } + t[n++] = 128 | o >> 6 & 63 } - }, { - test: function(e) { - return "roku" === e.getOSName(!0) - }, - describe: function() { - return { - type: i.PLATFORMS_MAP.tv + t[n++] = 128 | 63 & o + } + } + return t[n] = 0, n - r + } + + function N(e) { + for (var t = 0, n = 0; n < e.length; ++n) { + var a = e.charCodeAt(n); + 55296 <= a && 57343 >= a && (a = 65536 + ((1023 & a) << 10) | 1023 & e.charCodeAt(++n)), 127 >= a ? ++t : t = 2047 >= a ? t + 2 : 65535 >= a ? t + 3 : t + 4 + } + return t + } + + function R(e, t) { + for (var n = 0; n < e.length; ++n) L[t++ >> 0] = e.charCodeAt(n) + } + var z, L, F, q, B, U, H, V = o.INITIAL_MEMORY || 262144; + (D = o.wasmMemory ? o.wasmMemory : new WebAssembly.Memory({ + initial: V / 65536, + maximum: V / 65536 + })) && (z = D.buffer), V = z.byteLength; + var W = z; + + function Y(e) { + for (; 0 < e.length;) { + var t = e.shift(); + if ("function" == typeof t) t(o); + else { + var n = t.Pb; + "number" == typeof n ? void 0 === t.Ob ? o.dynCall_v(n) : o.dynCall_vi(n, t.Ob) : n(void 0 === t.Ob ? null : t.Ob) + } + } + } + z = W, o.HEAP8 = L = new Int8Array(W), o.HEAP16 = q = new Int16Array(W), o.HEAP32 = B = new Int32Array(W), o.HEAPU8 = F = new Uint8Array(W), o.HEAPU16 = new Uint16Array(W), o.HEAPU32 = new Uint32Array(W), o.HEAPF32 = U = new Float32Array(W), o.HEAPF64 = H = new Float64Array(W), B[9592] = 104064; + var G = [], + K = [], + $ = [], + J = []; + + function Z() { + var e = o.preRun.shift(); + G.unshift(e) + } + var Q = Math.abs, + X = Math.ceil, + ee = (Math.floor, Math.min, 0), + te = null, + ne = null; + + function ae(e) { + throw o.onAbort && o.onAbort(e), x(e), C(e), j = !0, new WebAssembly.RuntimeError("abort(" + e + "). Build with -s ASSERTIONS=1 for more info.") + } + + function re(e) { + var t = se; + return String.prototype.startsWith ? t.startsWith(e) : 0 === t.indexOf(e) + } + + function ie() { + return re("data:application/octet-stream;base64,") + } + o.preloadedImages = {}, o.preloadedAudios = {}; + var oe, se = "olm.wasm"; + if (!ie()) { + var le = se; + se = o.locateFile ? o.locateFile(le, S) : S + le + } + + function ce() { + try { + if (E) return new Uint8Array(E); + if (k) return k(se); + throw "both async and sync fetching of the wasm failed" + } catch (e) { + ae(e) + } + } + K.push({ + Pb: function() { + de() + } + }); + var ue = { + c: function(e, t, n, a) { + ae("Assertion failed: " + I(e) + ", at: " + [t ? I(t) : "unknown filename", n, a ? I(a) : "unknown function"]) + }, + a: function(e, t, n) { + F.copyWithin(e, t, t + n) + }, + b: function() { + ae("OOM") + }, + memory: D, + table: P + }; + ! function() { + function e(e) { + o.asm = e.exports, ee--, o.monitorRunDependencies && o.monitorRunDependencies(ee), 0 == ee && (null !== te && (clearInterval(te), te = null), ne && (e = ne, ne = null, e())) + } + + function t(t) { + e(t.instance) + } + + function n(e) { + return (E || !m && !f || "function" != typeof fetch || re("file://") ? new Promise((function(e) { + e(ce()) + })) : fetch(se, { + credentials: "same-origin" + }).then((function(e) { + if (!e.ok) throw "failed to load wasm binary file at '" + se + "'"; + return e.arrayBuffer() + })).catch((function() { + return ce() + }))).then((function(e) { + return WebAssembly.instantiate(e, a) + })).then(e, (function(e) { + C("failed to asynchronously prepare wasm: " + e), ae(e) + })) + } + var a = { + a: ue + }; + if (ee++, o.monitorRunDependencies && o.monitorRunDependencies(ee), o.instantiateWasm) try { + return o.instantiateWasm(a, e) + } catch (e) { + return C("Module.instantiateWasm callback failed with error: " + e), !1 + }! function() { + if (E || "function" != typeof WebAssembly.instantiateStreaming || ie() || re("file://") || "function" != typeof fetch) return n(t); + fetch(se, { + credentials: "same-origin" + }).then((function(e) { + return WebAssembly.instantiateStreaming(e, a).then(t, (function(e) { + return C("wasm streaming compile failed: " + e), C("falling back to ArrayBuffer instantiation"), n(t) + })) + })) + }() + }(); + var de = o.___wasm_call_ctors = function() { + return (de = o.___wasm_call_ctors = o.asm.d).apply(null, arguments) + }; + o._olm_get_library_version = function() { + return (o._olm_get_library_version = o.asm.e).apply(null, arguments) + }, o._olm_error = function() { + return (o._olm_error = o.asm.f).apply(null, arguments) + }, o._olm_account_last_error = function() { + return (o._olm_account_last_error = o.asm.g).apply(null, arguments) + }, o._olm_session_last_error = function() { + return (o._olm_session_last_error = o.asm.h).apply(null, arguments) + }, o._olm_utility_last_error = function() { + return (o._olm_utility_last_error = o.asm.i).apply(null, arguments) + }, o._olm_account_size = function() { + return (o._olm_account_size = o.asm.j).apply(null, arguments) + }, o._olm_session_size = function() { + return (o._olm_session_size = o.asm.k).apply(null, arguments) + }, o._olm_utility_size = function() { + return (o._olm_utility_size = o.asm.l).apply(null, arguments) + }, o._olm_account = function() { + return (o._olm_account = o.asm.m).apply(null, arguments) + }, o._olm_session = function() { + return (o._olm_session = o.asm.n).apply(null, arguments) + }, o._olm_utility = function() { + return (o._olm_utility = o.asm.o).apply(null, arguments) + }, o._olm_clear_account = function() { + return (o._olm_clear_account = o.asm.p).apply(null, arguments) + }, o._olm_clear_session = function() { + return (o._olm_clear_session = o.asm.q).apply(null, arguments) + }, o._olm_clear_utility = function() { + return (o._olm_clear_utility = o.asm.r).apply(null, arguments) + }, o._olm_pickle_account_length = function() { + return (o._olm_pickle_account_length = o.asm.s).apply(null, arguments) + }, o._olm_pickle_session_length = function() { + return (o._olm_pickle_session_length = o.asm.t).apply(null, arguments) + }, o._olm_pickle_account = function() { + return (o._olm_pickle_account = o.asm.u).apply(null, arguments) + }, o._olm_pickle_session = function() { + return (o._olm_pickle_session = o.asm.v).apply(null, arguments) + }, o._olm_unpickle_account = function() { + return (o._olm_unpickle_account = o.asm.w).apply(null, arguments) + }, o._olm_unpickle_session = function() { + return (o._olm_unpickle_session = o.asm.x).apply(null, arguments) + }, o._olm_create_account_random_length = function() { + return (o._olm_create_account_random_length = o.asm.y).apply(null, arguments) + }, o._olm_create_account = function() { + return (o._olm_create_account = o.asm.z).apply(null, arguments) + }, o._olm_account_identity_keys_length = function() { + return (o._olm_account_identity_keys_length = o.asm.A).apply(null, arguments) + }, o._olm_account_identity_keys = function() { + return (o._olm_account_identity_keys = o.asm.B).apply(null, arguments) + }, o._olm_account_signature_length = function() { + return (o._olm_account_signature_length = o.asm.C).apply(null, arguments) + }, o._olm_account_sign = function() { + return (o._olm_account_sign = o.asm.D).apply(null, arguments) + }, o._olm_account_one_time_keys_length = function() { + return (o._olm_account_one_time_keys_length = o.asm.E).apply(null, arguments) + }, o._olm_account_one_time_keys = function() { + return (o._olm_account_one_time_keys = o.asm.F).apply(null, arguments) + }, o._olm_account_mark_keys_as_published = function() { + return (o._olm_account_mark_keys_as_published = o.asm.G).apply(null, arguments) + }, o._olm_account_max_number_of_one_time_keys = function() { + return (o._olm_account_max_number_of_one_time_keys = o.asm.H).apply(null, arguments) + }, o._olm_account_generate_one_time_keys_random_length = function() { + return (o._olm_account_generate_one_time_keys_random_length = o.asm.I).apply(null, arguments) + }, o._olm_account_generate_one_time_keys = function() { + return (o._olm_account_generate_one_time_keys = o.asm.J).apply(null, arguments) + }, o._olm_account_generate_fallback_key_random_length = function() { + return (o._olm_account_generate_fallback_key_random_length = o.asm.K).apply(null, arguments) + }, o._olm_account_generate_fallback_key = function() { + return (o._olm_account_generate_fallback_key = o.asm.L).apply(null, arguments) + }, o._olm_account_fallback_key_length = function() { + return (o._olm_account_fallback_key_length = o.asm.M).apply(null, arguments) + }, o._olm_account_fallback_key = function() { + return (o._olm_account_fallback_key = o.asm.N).apply(null, arguments) + }, o._olm_create_outbound_session_random_length = function() { + return (o._olm_create_outbound_session_random_length = o.asm.O).apply(null, arguments) + }, o._olm_create_outbound_session = function() { + return (o._olm_create_outbound_session = o.asm.P).apply(null, arguments) + }, o._olm_create_inbound_session = function() { + return (o._olm_create_inbound_session = o.asm.Q).apply(null, arguments) + }, o._olm_create_inbound_session_from = function() { + return (o._olm_create_inbound_session_from = o.asm.R).apply(null, arguments) + }, o._olm_session_id_length = function() { + return (o._olm_session_id_length = o.asm.S).apply(null, arguments) + }, o._olm_session_id = function() { + return (o._olm_session_id = o.asm.T).apply(null, arguments) + }, o._olm_session_has_received_message = function() { + return (o._olm_session_has_received_message = o.asm.U).apply(null, arguments) + }, o._olm_session_describe = function() { + return (o._olm_session_describe = o.asm.V).apply(null, arguments) + }, o._olm_matches_inbound_session = function() { + return (o._olm_matches_inbound_session = o.asm.W).apply(null, arguments) + }, o._olm_matches_inbound_session_from = function() { + return (o._olm_matches_inbound_session_from = o.asm.X).apply(null, arguments) + }, o._olm_remove_one_time_keys = function() { + return (o._olm_remove_one_time_keys = o.asm.Y).apply(null, arguments) + }, o._olm_encrypt_message_type = function() { + return (o._olm_encrypt_message_type = o.asm.Z).apply(null, arguments) + }, o._olm_encrypt_random_length = function() { + return (o._olm_encrypt_random_length = o.asm._).apply(null, arguments) + }, o._olm_encrypt_message_length = function() { + return (o._olm_encrypt_message_length = o.asm.$).apply(null, arguments) + }, o._olm_encrypt = function() { + return (o._olm_encrypt = o.asm.aa).apply(null, arguments) + }, o._olm_decrypt_max_plaintext_length = function() { + return (o._olm_decrypt_max_plaintext_length = o.asm.ba).apply(null, arguments) + }, o._olm_decrypt = function() { + return (o._olm_decrypt = o.asm.ca).apply(null, arguments) + }, o._olm_sha256_length = function() { + return (o._olm_sha256_length = o.asm.da).apply(null, arguments) + }, o._olm_sha256 = function() { + return (o._olm_sha256 = o.asm.ea).apply(null, arguments) + }, o._olm_ed25519_verify = function() { + return (o._olm_ed25519_verify = o.asm.fa).apply(null, arguments) + }, o._olm_pk_encryption_last_error = function() { + return (o._olm_pk_encryption_last_error = o.asm.ga).apply(null, arguments) + }, o._olm_pk_encryption_size = function() { + return (o._olm_pk_encryption_size = o.asm.ha).apply(null, arguments) + }, o._olm_pk_encryption = function() { + return (o._olm_pk_encryption = o.asm.ia).apply(null, arguments) + }, o._olm_clear_pk_encryption = function() { + return (o._olm_clear_pk_encryption = o.asm.ja).apply(null, arguments) + }, o._olm_pk_encryption_set_recipient_key = function() { + return (o._olm_pk_encryption_set_recipient_key = o.asm.ka).apply(null, arguments) + }, o._olm_pk_key_length = function() { + return (o._olm_pk_key_length = o.asm.la).apply(null, arguments) + }, o._olm_pk_ciphertext_length = function() { + return (o._olm_pk_ciphertext_length = o.asm.ma).apply(null, arguments) + }, o._olm_pk_mac_length = function() { + return (o._olm_pk_mac_length = o.asm.na).apply(null, arguments) + }, o._olm_pk_encrypt_random_length = function() { + return (o._olm_pk_encrypt_random_length = o.asm.oa).apply(null, arguments) + }, o._olm_pk_encrypt = function() { + return (o._olm_pk_encrypt = o.asm.pa).apply(null, arguments) + }, o._olm_pk_decryption_last_error = function() { + return (o._olm_pk_decryption_last_error = o.asm.qa).apply(null, arguments) + }, o._olm_pk_decryption_size = function() { + return (o._olm_pk_decryption_size = o.asm.ra).apply(null, arguments) + }, o._olm_pk_decryption = function() { + return (o._olm_pk_decryption = o.asm.sa).apply(null, arguments) + }, o._olm_clear_pk_decryption = function() { + return (o._olm_clear_pk_decryption = o.asm.ta).apply(null, arguments) + }, o._olm_pk_private_key_length = function() { + return (o._olm_pk_private_key_length = o.asm.ua).apply(null, arguments) + }, o._olm_pk_generate_key_random_length = function() { + return (o._olm_pk_generate_key_random_length = o.asm.va).apply(null, arguments) + }, o._olm_pk_key_from_private = function() { + return (o._olm_pk_key_from_private = o.asm.wa).apply(null, arguments) + }, o._olm_pk_generate_key = function() { + return (o._olm_pk_generate_key = o.asm.xa).apply(null, arguments) + }, o._olm_pickle_pk_decryption_length = function() { + return (o._olm_pickle_pk_decryption_length = o.asm.ya).apply(null, arguments) + }, o._olm_pickle_pk_decryption = function() { + return (o._olm_pickle_pk_decryption = o.asm.za).apply(null, arguments) + }, o._olm_unpickle_pk_decryption = function() { + return (o._olm_unpickle_pk_decryption = o.asm.Aa).apply(null, arguments) + }, o._olm_pk_max_plaintext_length = function() { + return (o._olm_pk_max_plaintext_length = o.asm.Ba).apply(null, arguments) + }, o._olm_pk_decrypt = function() { + return (o._olm_pk_decrypt = o.asm.Ca).apply(null, arguments) + }, o._olm_pk_get_private_key = function() { + return (o._olm_pk_get_private_key = o.asm.Da).apply(null, arguments) + }, o._olm_pk_signing_size = function() { + return (o._olm_pk_signing_size = o.asm.Ea).apply(null, arguments) + }, o._olm_pk_signing = function() { + return (o._olm_pk_signing = o.asm.Fa).apply(null, arguments) + }, o._olm_pk_signing_last_error = function() { + return (o._olm_pk_signing_last_error = o.asm.Ga).apply(null, arguments) + }, o._olm_clear_pk_signing = function() { + return (o._olm_clear_pk_signing = o.asm.Ha).apply(null, arguments) + }, o._olm_pk_signing_seed_length = function() { + return (o._olm_pk_signing_seed_length = o.asm.Ia).apply(null, arguments) + }, o._olm_pk_signing_public_key_length = function() { + return (o._olm_pk_signing_public_key_length = o.asm.Ja).apply(null, arguments) + }, o._olm_pk_signing_key_from_seed = function() { + return (o._olm_pk_signing_key_from_seed = o.asm.Ka).apply(null, arguments) + }, o._olm_pk_signature_length = function() { + return (o._olm_pk_signature_length = o.asm.La).apply(null, arguments) + }, o._olm_pk_sign = function() { + return (o._olm_pk_sign = o.asm.Ma).apply(null, arguments) + }, o._olm_inbound_group_session_size = function() { + return (o._olm_inbound_group_session_size = o.asm.Na).apply(null, arguments) + }, o._olm_inbound_group_session = function() { + return (o._olm_inbound_group_session = o.asm.Oa).apply(null, arguments) + }, o._olm_clear_inbound_group_session = function() { + return (o._olm_clear_inbound_group_session = o.asm.Pa).apply(null, arguments) + }, o._olm_inbound_group_session_last_error = function() { + return (o._olm_inbound_group_session_last_error = o.asm.Qa).apply(null, arguments) + }, o._olm_init_inbound_group_session = function() { + return (o._olm_init_inbound_group_session = o.asm.Ra).apply(null, arguments) + }, o._olm_import_inbound_group_session = function() { + return (o._olm_import_inbound_group_session = o.asm.Sa).apply(null, arguments) + }, o._olm_pickle_inbound_group_session_length = function() { + return (o._olm_pickle_inbound_group_session_length = o.asm.Ta).apply(null, arguments) + }, o._olm_pickle_inbound_group_session = function() { + return (o._olm_pickle_inbound_group_session = o.asm.Ua).apply(null, arguments) + }, o._olm_unpickle_inbound_group_session = function() { + return (o._olm_unpickle_inbound_group_session = o.asm.Va).apply(null, arguments) + }, o._olm_group_decrypt_max_plaintext_length = function() { + return (o._olm_group_decrypt_max_plaintext_length = o.asm.Wa).apply(null, arguments) + }, o._olm_group_decrypt = function() { + return (o._olm_group_decrypt = o.asm.Xa).apply(null, arguments) + }, o._olm_inbound_group_session_id_length = function() { + return (o._olm_inbound_group_session_id_length = o.asm.Ya).apply(null, arguments) + }, o._olm_inbound_group_session_id = function() { + return (o._olm_inbound_group_session_id = o.asm.Za).apply(null, arguments) + }, o._olm_inbound_group_session_first_known_index = function() { + return (o._olm_inbound_group_session_first_known_index = o.asm._a).apply(null, arguments) + }, o._olm_inbound_group_session_is_verified = function() { + return (o._olm_inbound_group_session_is_verified = o.asm.$a).apply(null, arguments) + }, o._olm_export_inbound_group_session_length = function() { + return (o._olm_export_inbound_group_session_length = o.asm.ab).apply(null, arguments) + }, o._olm_export_inbound_group_session = function() { + return (o._olm_export_inbound_group_session = o.asm.bb).apply(null, arguments) + }, o._olm_sas_last_error = function() { + return (o._olm_sas_last_error = o.asm.cb).apply(null, arguments) + }, o._olm_sas_size = function() { + return (o._olm_sas_size = o.asm.db).apply(null, arguments) + }, o._olm_sas = function() { + return (o._olm_sas = o.asm.eb).apply(null, arguments) + }, o._olm_clear_sas = function() { + return (o._olm_clear_sas = o.asm.fb).apply(null, arguments) + }, o._olm_create_sas_random_length = function() { + return (o._olm_create_sas_random_length = o.asm.gb).apply(null, arguments) + }, o._olm_create_sas = function() { + return (o._olm_create_sas = o.asm.hb).apply(null, arguments) + }, o._olm_sas_pubkey_length = function() { + return (o._olm_sas_pubkey_length = o.asm.ib).apply(null, arguments) + }, o._olm_sas_get_pubkey = function() { + return (o._olm_sas_get_pubkey = o.asm.jb).apply(null, arguments) + }, o._olm_sas_set_their_key = function() { + return (o._olm_sas_set_their_key = o.asm.kb).apply(null, arguments) + }, o._olm_sas_is_their_key_set = function() { + return (o._olm_sas_is_their_key_set = o.asm.lb).apply(null, arguments) + }, o._olm_sas_generate_bytes = function() { + return (o._olm_sas_generate_bytes = o.asm.mb).apply(null, arguments) + }, o._olm_sas_mac_length = function() { + return (o._olm_sas_mac_length = o.asm.nb).apply(null, arguments) + }, o._olm_sas_calculate_mac_fixed_base64 = function() { + return (o._olm_sas_calculate_mac_fixed_base64 = o.asm.ob).apply(null, arguments) + }, o._olm_sas_calculate_mac = function() { + return (o._olm_sas_calculate_mac = o.asm.pb).apply(null, arguments) + }, o._olm_sas_calculate_mac_long_kdf = function() { + return (o._olm_sas_calculate_mac_long_kdf = o.asm.qb).apply(null, arguments) + }, o._olm_outbound_group_session_size = function() { + return (o._olm_outbound_group_session_size = o.asm.rb).apply(null, arguments) + }, o._olm_outbound_group_session = function() { + return (o._olm_outbound_group_session = o.asm.sb).apply(null, arguments) + }, o._olm_clear_outbound_group_session = function() { + return (o._olm_clear_outbound_group_session = o.asm.tb).apply(null, arguments) + }, o._olm_outbound_group_session_last_error = function() { + return (o._olm_outbound_group_session_last_error = o.asm.ub).apply(null, arguments) + }, o._olm_pickle_outbound_group_session_length = function() { + return (o._olm_pickle_outbound_group_session_length = o.asm.vb).apply(null, arguments) + }, o._olm_pickle_outbound_group_session = function() { + return (o._olm_pickle_outbound_group_session = o.asm.wb).apply(null, arguments) + }, o._olm_unpickle_outbound_group_session = function() { + return (o._olm_unpickle_outbound_group_session = o.asm.xb).apply(null, arguments) + }, o._olm_init_outbound_group_session_random_length = function() { + return (o._olm_init_outbound_group_session_random_length = o.asm.yb).apply(null, arguments) + }, o._olm_init_outbound_group_session = function() { + return (o._olm_init_outbound_group_session = o.asm.zb).apply(null, arguments) + }, o._olm_group_encrypt_message_length = function() { + return (o._olm_group_encrypt_message_length = o.asm.Ab).apply(null, arguments) + }, o._olm_group_encrypt = function() { + return (o._olm_group_encrypt = o.asm.Bb).apply(null, arguments) + }, o._olm_outbound_group_session_id_length = function() { + return (o._olm_outbound_group_session_id_length = o.asm.Cb).apply(null, arguments) + }, o._olm_outbound_group_session_id = function() { + return (o._olm_outbound_group_session_id = o.asm.Db).apply(null, arguments) + }, o._olm_outbound_group_session_message_index = function() { + return (o._olm_outbound_group_session_message_index = o.asm.Eb).apply(null, arguments) + }, o._olm_outbound_group_session_key_length = function() { + return (o._olm_outbound_group_session_key_length = o.asm.Fb).apply(null, arguments) + }, o._olm_outbound_group_session_key = function() { + return (o._olm_outbound_group_session_key = o.asm.Gb).apply(null, arguments) + }, o._malloc = function() { + return (o._malloc = o.asm.Hb).apply(null, arguments) + }, o._free = function() { + return (o._free = o.asm.Ib).apply(null, arguments) + }; + var pe, he = o.stackSave = function() { + return (he = o.stackSave = o.asm.Jb).apply(null, arguments) + }, + me = o.stackRestore = function() { + return (me = o.stackRestore = o.asm.Kb).apply(null, arguments) + }, + fe = o.stackAlloc = function() { + return (fe = o.stackAlloc = o.asm.Lb).apply(null, arguments) + }; + + function ge() { + function e() { + if (!pe && (pe = !0, o.calledRun = !0, !j)) { + if (Y(K), Y($), l(o), o.onRuntimeInitialized && o.onRuntimeInitialized(), o.postRun) + for ("function" == typeof o.postRun && (o.postRun = [o.postRun]); o.postRun.length;) { + var e = o.postRun.shift(); + J.unshift(e) } - } - }]; - t.default = o, e.exports = t.default - }, - 95: function(e, t, n) { - "use strict"; - t.__esModule = !0, t.default = void 0; - var a, r = (a = n(17)) && a.__esModule ? a : { - default: a - }, - i = n(18), - o = [{ - test: function(e) { - return "microsoft edge" === e.getBrowserName(!0) - }, - describe: function(e) { - if (/\sedg\//i.test(e)) return { - name: i.ENGINE_MAP.Blink + Y(J) + } + } + if (!(0 < ee)) { + if (o.preRun) + for ("function" == typeof o.preRun && (o.preRun = [o.preRun]); o.preRun.length;) Z(); + Y(G), 0 < ee || (o.setStatus ? (o.setStatus("Running..."), setTimeout((function() { + setTimeout((function() { + o.setStatus("") + }), 1), e() + }), 1)) : e()) + } + } + if (o.ALLOC_STACK = 1, ne = function e() { + pe || ge(), pe || (ne = e) + }, o.run = ge, o.preInit) + for ("function" == typeof o.preInit && (o.preInit = [o.preInit]); 0 < o.preInit.length;) o.preInit.pop()(); + + function be() { + var e = o._olm_outbound_group_session_size(); + this.Nb = Pe(e), this.Mb = o._olm_outbound_group_session(this.Nb) + } + + function ye(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_outbound_group_session_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + + function ve() { + var e = o._olm_inbound_group_session_size(); + this.Nb = Pe(e), this.Mb = o._olm_inbound_group_session(this.Nb) + } + + function ke(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_inbound_group_session_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + + function _e() { + var e = o._olm_pk_encryption_size(); + this.Nb = Pe(e), this.Mb = o._olm_pk_encryption(this.Nb) + } + + function we(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_pk_encryption_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + + function Se() { + var e = o._olm_pk_decryption_size(); + this.Nb = Pe(e), this.Mb = o._olm_pk_decryption(this.Nb) + } + + function Ee(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_pk_decryption_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + + function xe() { + var e = o._olm_pk_signing_size(); + this.Nb = Pe(e), this.Mb = o._olm_pk_signing(this.Nb) + } + + function Ce(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_pk_signing_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + + function Ae() { + var e = o._olm_sas_size(), + t = o._olm_create_sas_random_length(), + n = Me(t, u); + this.Nb = Pe(e), this.Mb = o._olm_sas(this.Nb), o._olm_create_sas(this.Mb, n, t), Re(n, t) + } + + function Te(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_sas_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + ge(), be.prototype.free = function() { + o._olm_clear_outbound_group_session(this.Mb), je(this.Mb) + }, be.prototype.pickle = Ne((function(e) { + e = Oe(e); + var t = ye(o._olm_pickle_outbound_group_session_length)(this.Mb), + n = Ie(e), + a = Ie(t + 1); + try { + ye(o._olm_pickle_outbound_group_session)(this.Mb, n, e.length, a, t) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + return I(a, t) + })), be.prototype.unpickle = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Ie(t = Oe(t)); + try { + ye(o._olm_unpickle_outbound_group_session)(this.Mb, n, e.length, a, t.length) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + })), be.prototype.create = Ne((function() { + var e = ye(o._olm_init_outbound_group_session_random_length)(this.Mb), + t = Me(e, u); + ye(o._olm_init_outbound_group_session)(this.Mb, t, e) + })), be.prototype.encrypt = function(e) { + try { + var t = N(e), + n = ye(o._olm_group_encrypt_message_length)(this.Mb, t), + a = Pe(t + 1); + O(e, F, a, t + 1); + var r = Pe(n + 1); + return ye(o._olm_group_encrypt)(this.Mb, a, t, r, n), A(r + n), I(r, n) + } finally { + void 0 !== a && (Re(a, t + 1), je(a)), void 0 !== r && je(r) + } + }, be.prototype.session_id = Ne((function() { + var e = ye(o._olm_outbound_group_session_id_length)(this.Mb), + t = Ie(e + 1); + return ye(o._olm_outbound_group_session_id)(this.Mb, t, e), I(t, e) + })), be.prototype.session_key = Ne((function() { + var e = ye(o._olm_outbound_group_session_key_length)(this.Mb), + t = Ie(e + 1); + ye(o._olm_outbound_group_session_key)(this.Mb, t, e); + var n = I(t, e); + return Re(t, e), n + })), be.prototype.message_index = function() { + return ye(o._olm_outbound_group_session_message_index)(this.Mb) + }, s.OutboundGroupSession = be, ve.prototype.free = function() { + o._olm_clear_inbound_group_session(this.Mb), je(this.Mb) + }, ve.prototype.pickle = Ne((function(e) { + e = Oe(e); + var t = ke(o._olm_pickle_inbound_group_session_length)(this.Mb), + n = Ie(e), + a = Ie(t + 1); + try { + ke(o._olm_pickle_inbound_group_session)(this.Mb, n, e.length, a, t) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + return I(a, t) + })), ve.prototype.unpickle = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Ie(t = Oe(t)); + try { + ke(o._olm_unpickle_inbound_group_session)(this.Mb, n, e.length, a, t.length) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + })), ve.prototype.create = Ne((function(e) { + var t = Ie(e = Oe(e)); + try { + ke(o._olm_init_inbound_group_session)(this.Mb, t, e.length) + } finally { + for (Re(t, e.length), t = 0; t < e.length; t++) e[t] = 0 + } + })), ve.prototype.import_session = Ne((function(e) { + var t = Ie(e = Oe(e)); + try { + ke(o._olm_import_inbound_group_session)(this.Mb, t, e.length) + } finally { + for (Re(t, e.length), t = 0; t < e.length; t++) e[t] = 0 + } + })), ve.prototype.decrypt = Ne((function(e) { + try { + var t = Pe(e.length); + R(e, t); + var n = ke(o._olm_group_decrypt_max_plaintext_length)(this.Mb, t, e.length); + R(e, t); + var a = Pe(n + 1), + r = Ie(4), + i = ke(o._olm_group_decrypt)(this.Mb, t, e.length, a, n, r); + return A(a + i), { + plaintext: I(a, i), + message_index: T(r, "i32") + } + } finally { + void 0 !== t && je(t), void 0 !== a && (Re(a, i), je(a)) + } + })), ve.prototype.session_id = Ne((function() { + var e = ke(o._olm_inbound_group_session_id_length)(this.Mb), + t = Ie(e + 1); + return ke(o._olm_inbound_group_session_id)(this.Mb, t, e), I(t, e) + })), ve.prototype.first_known_index = Ne((function() { + return ke(o._olm_inbound_group_session_first_known_index)(this.Mb) + })), ve.prototype.export_session = Ne((function(e) { + var t = ke(o._olm_export_inbound_group_session_length)(this.Mb), + n = Ie(t + 1); + return ye(o._olm_export_inbound_group_session)(this.Mb, n, t, e), e = I(n, t), Re(n, t), e + })), s.InboundGroupSession = ve, _e.prototype.free = function() { + o._olm_clear_pk_encryption(this.Mb), je(this.Mb) + }, _e.prototype.set_recipient_key = Ne((function(e) { + var t = Ie(e = Oe(e)); + we(o._olm_pk_encryption_set_recipient_key)(this.Mb, t, e.length) + })), _e.prototype.encrypt = Ne((function(e) { + try { + var t = N(e), + n = Pe(t + 1); + O(e, F, n, t + 1); + var a = we(o._olm_pk_encrypt_random_length)(), + r = Me(a, u), + i = we(o._olm_pk_ciphertext_length)(this.Mb, t), + s = Pe(i + 1), + l = we(o._olm_pk_mac_length)(this.Mb), + c = Ie(l + 1); + A(c + l); + var d = we(o._olm_pk_key_length)(), + p = Ie(d + 1); + return A(p + d), we(o._olm_pk_encrypt)(this.Mb, n, t, s, i, c, l, p, d, r, a), A(s + i), { + ciphertext: I(s, i), + mac: I(c, l), + ephemeral: I(p, d) + } + } finally { + void 0 !== r && Re(r, a), void 0 !== n && (Re(n, t + 1), je(n)), void 0 !== s && je(s) + } + })), Se.prototype.free = function() { + o._olm_clear_pk_decryption(this.Mb), je(this.Mb) + }, Se.prototype.init_with_private_key = Ne((function(e) { + var t = Ie(e.length); + o.HEAPU8.set(e, t); + var n = Ee(o._olm_pk_key_length)(), + a = Ie(n + 1); + try { + Ee(o._olm_pk_key_from_private)(this.Mb, a, n, t, e.length) + } finally { + Re(t, e.length) + } + return I(a, n) + })), Se.prototype.generate_key = Ne((function() { + var e = Ee(o._olm_pk_private_key_length)(), + t = Me(e, u), + n = Ee(o._olm_pk_key_length)(), + a = Ie(n + 1); + try { + Ee(o._olm_pk_key_from_private)(this.Mb, a, n, t, e) + } finally { + Re(t, e) + } + return I(a, n) + })), Se.prototype.get_private_key = Ne((function() { + var e = we(o._olm_pk_private_key_length)(), + t = Ie(e); + Ee(o._olm_pk_get_private_key)(this.Mb, t, e); + var n = new Uint8Array(new Uint8Array(o.HEAPU8.buffer, t, e)); + return Re(t, e), n + })), Se.prototype.pickle = Ne((function(e) { + e = Oe(e); + var t = Ee(o._olm_pickle_pk_decryption_length)(this.Mb), + n = Ie(e), + a = Ie(t + 1); + try { + Ee(o._olm_pickle_pk_decryption)(this.Mb, n, e.length, a, t) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + return I(a, t) + })), Se.prototype.unpickle = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Oe(t), + r = Ie(a), + i = Ie((t = Ee(o._olm_pk_key_length)()) + 1); + try { + Ee(o._olm_unpickle_pk_decryption)(this.Mb, n, e.length, r, a.length, i, t) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + return I(i, t) + })), Se.prototype.decrypt = Ne((function(e, t, n) { + try { + var a = N(n), + r = Pe(a + 1); + O(n, F, r, a + 1); + var i = Oe(e), + s = Ie(i), + l = Oe(t), + c = Ie(l), + u = Ee(o._olm_pk_max_plaintext_length)(this.Mb, a), + d = Pe(u + 1), + p = Ee(o._olm_pk_decrypt)(this.Mb, s, i.length, c, l.length, r, a, d, u); + return A(d + p), I(d, p) + } finally { + void 0 !== d && (Re(d, p + 1), je(d)), void 0 !== r && je(r) + } + })), xe.prototype.free = function() { + o._olm_clear_pk_signing(this.Mb), je(this.Mb) + }, xe.prototype.init_with_seed = Ne((function(e) { + var t = Ie(e.length); + o.HEAPU8.set(e, t); + var n = Ce(o._olm_pk_signing_public_key_length)(), + a = Ie(n + 1); + try { + Ce(o._olm_pk_signing_key_from_seed)(this.Mb, a, n, t, e.length) + } finally { + Re(t, e.length) + } + return I(a, n) + })), xe.prototype.generate_seed = Ne((function() { + var e = Ce(o._olm_pk_signing_seed_length)(), + t = Me(e, u), + n = new Uint8Array(new Uint8Array(o.HEAPU8.buffer, t, e)); + return Re(t, e), n + })), xe.prototype.sign = Ne((function(e) { + try { + var t = N(e), + n = Pe(t + 1); + O(e, F, n, t + 1); + var a = Ce(o._olm_pk_signature_length)(), + r = Ie(a + 1); + return Ce(o._olm_pk_sign)(this.Mb, n, t, r, a), I(r, a) + } finally { + void 0 !== n && (Re(n, t + 1), je(n)) + } + })), Ae.prototype.free = function() { + o._olm_clear_sas(this.Mb), je(this.Mb) + }, Ae.prototype.get_pubkey = Ne((function() { + var e = Te(o._olm_sas_pubkey_length)(this.Mb), + t = Ie(e + 1); + return Te(o._olm_sas_get_pubkey)(this.Mb, t, e), I(t, e) + })), Ae.prototype.set_their_key = Ne((function(e) { + var t = Ie(e = Oe(e)); + Te(o._olm_sas_set_their_key)(this.Mb, t, e.length) + })), Ae.prototype.is_their_key_set = Ne((function() { + return !!Te(o._olm_sas_is_their_key_set)(this.Mb) + })), Ae.prototype.generate_bytes = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Ie(t); + return Te(o._olm_sas_generate_bytes)(this.Mb, n, e.length, a, t), new Uint8Array(new Uint8Array(o.HEAPU8.buffer, a, t)) + })), Ae.prototype.calculate_mac = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Ie(t = Oe(t)), + r = Te(o._olm_sas_mac_length)(this.Mb), + i = Ie(r + 1); + return Te(o._olm_sas_calculate_mac)(this.Mb, n, e.length, a, t.length, i, r), I(i, r) + })), Ae.prototype.calculate_mac_long_kdf = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Ie(t = Oe(t)), + r = Te(o._olm_sas_mac_length)(this.Mb), + i = Ie(r + 1); + return Te(o._olm_sas_calculate_mac_long_kdf)(this.Mb, n, e.length, a, t.length, i, r), I(i, r) + })); + var De, Pe = o._malloc, + je = o._free; + + function Me(e, t) { + var n = fe(e); + return t(new Uint8Array(o.HEAPU8.buffer, n, e)), n + } + + function Ie(e) { + return "number" == typeof e ? Me(e, (function(e) { + e.fill(0) + })) : Me(e.length, (function(t) { + t.set(e) + })) + } + + function Oe(e) { + if (e instanceof Uint8Array) var t = e; + else e = O(e, t = Array(N(e) + 1), 0, t.length), t.length = e; + return t + } + + function Ne(e) { + return function() { + var t = he(); + try { + return e.apply(this, arguments) + } finally { + me(t) + } + } + } + + function Re(e, t) { + for (; 0 < t--;) o.HEAP8[e++] = 0 + } + + function ze() { + var e = o._olm_account_size(); + this.Nb = Pe(e), this.Mb = o._olm_account(this.Nb) + } + + function Le(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_account_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + + function Fe() { + var e = o._olm_session_size(); + this.Nb = Pe(e), this.Mb = o._olm_session(this.Nb) + } + + function qe(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_session_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + + function Be() { + var e = o._olm_utility_size(); + this.Nb = Pe(e), this.Mb = o._olm_utility(this.Nb) + } + + function Ue(e) { + return function() { + var t = e.apply(this, arguments); + if (t === De) throw t = I(o._olm_utility_last_error(arguments[0])), Error("OLM." + t); + return t + } + } + return ze.prototype.free = function() { + o._olm_clear_account(this.Mb), je(this.Mb) + }, ze.prototype.create = Ne((function() { + var e = Le(o._olm_create_account_random_length)(this.Mb), + t = Me(e, u); + Le(o._olm_create_account)(this.Mb, t, e) + })), ze.prototype.identity_keys = Ne((function() { + var e = Le(o._olm_account_identity_keys_length)(this.Mb), + t = Ie(e + 1); + return Le(o._olm_account_identity_keys)(this.Mb, t, e), I(t, e) + })), ze.prototype.sign = Ne((function(e) { + var t = Le(o._olm_account_signature_length)(this.Mb), + n = Ie(e = Oe(e)), + a = Ie(t + 1); + try { + Le(o._olm_account_sign)(this.Mb, n, e.length, a, t) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + return I(a, t) + })), ze.prototype.one_time_keys = Ne((function() { + var e = Le(o._olm_account_one_time_keys_length)(this.Mb), + t = Ie(e + 1); + return Le(o._olm_account_one_time_keys)(this.Mb, t, e), I(t, e) + })), ze.prototype.mark_keys_as_published = Ne((function() { + Le(o._olm_account_mark_keys_as_published)(this.Mb) + })), ze.prototype.max_number_of_one_time_keys = Ne((function() { + return Le(o._olm_account_max_number_of_one_time_keys)(this.Mb) + })), ze.prototype.generate_one_time_keys = Ne((function(e) { + var t = Le(o._olm_account_generate_one_time_keys_random_length)(this.Mb, e), + n = Me(t, u); + Le(o._olm_account_generate_one_time_keys)(this.Mb, e, n, t) + })), ze.prototype.remove_one_time_keys = Ne((function(e) { + Le(o._olm_remove_one_time_keys)(this.Mb, e.Mb) + })), ze.prototype.generate_fallback_key = Ne((function() { + var e = Le(o._olm_account_generate_fallback_key_random_length)(this.Mb), + t = Me(e, u); + Le(o._olm_account_generate_fallback_key)(this.Mb, t, e) + })), ze.prototype.fallback_key = Ne((function() { + var e = Le(o._olm_account_fallback_key_length)(this.Mb), + t = Ie(e + 1); + return Le(o._olm_account_fallback_key)(this.Mb, t, e), I(t, e) + })), ze.prototype.pickle = Ne((function(e) { + e = Oe(e); + var t = Le(o._olm_pickle_account_length)(this.Mb), + n = Ie(e), + a = Ie(t + 1); + try { + Le(o._olm_pickle_account)(this.Mb, n, e.length, a, t) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + return I(a, t) + })), ze.prototype.unpickle = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Ie(t = Oe(t)); + try { + Le(o._olm_unpickle_account)(this.Mb, n, e.length, a, t.length) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + })), Fe.prototype.free = function() { + o._olm_clear_session(this.Mb), je(this.Mb) + }, Fe.prototype.pickle = Ne((function(e) { + e = Oe(e); + var t = qe(o._olm_pickle_session_length)(this.Mb), + n = Ie(e), + a = Ie(t + 1); + try { + qe(o._olm_pickle_session)(this.Mb, n, e.length, a, t) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + return I(a, t) + })), Fe.prototype.unpickle = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Ie(t = Oe(t)); + try { + qe(o._olm_unpickle_session)(this.Mb, n, e.length, a, t.length) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + })), Fe.prototype.create_outbound = Ne((function(e, t, n) { + var a = qe(o._olm_create_outbound_session_random_length)(this.Mb), + r = Me(a, u); + t = Oe(t), n = Oe(n); + var i = Ie(t), + s = Ie(n); + try { + qe(o._olm_create_outbound_session)(this.Mb, e.Mb, i, t.length, s, n.length, r, a) + } finally { + Re(r, a) + } + })), Fe.prototype.create_inbound = Ne((function(e, t) { + var n = Ie(t = Oe(t)); + try { + qe(o._olm_create_inbound_session)(this.Mb, e.Mb, n, t.length) + } finally { + for (Re(n, t.length), e = 0; e < t.length; e++) t[e] = 0 + } + })), Fe.prototype.create_inbound_from = Ne((function(e, t, n) { + var a = Ie(t = Oe(t)), + r = Ie(n = Oe(n)); + try { + qe(o._olm_create_inbound_session_from)(this.Mb, e.Mb, a, t.length, r, n.length) + } finally { + for (Re(r, n.length), e = 0; e < n.length; e++) n[e] = 0 + } + })), Fe.prototype.session_id = Ne((function() { + var e = qe(o._olm_session_id_length)(this.Mb), + t = Ie(e + 1); + return qe(o._olm_session_id)(this.Mb, t, e), I(t, e) + })), Fe.prototype.has_received_message = function() { + return !!qe(o._olm_session_has_received_message)(this.Mb) + }, Fe.prototype.matches_inbound = Ne((function(e) { + var t = Ie(e = Oe(e)); + return !!qe(o._olm_matches_inbound_session)(this.Mb, t, e.length) + })), Fe.prototype.matches_inbound_from = Ne((function(e, t) { + var n = Ie(e = Oe(e)), + a = Ie(t = Oe(t)); + return !!qe(o._olm_matches_inbound_session_from)(this.Mb, n, e.length, a, t.length) + })), Fe.prototype.encrypt = Ne((function(e) { + try { + var t = qe(o._olm_encrypt_random_length)(this.Mb), + n = qe(o._olm_encrypt_message_type)(this.Mb), + a = N(e), + r = qe(o._olm_encrypt_message_length)(this.Mb, a), + i = Me(t, u), + s = Pe(a + 1); + O(e, F, s, a + 1); + var l = Pe(r + 1); + return qe(o._olm_encrypt)(this.Mb, s, a, i, t, l, r), A(l + r), { + type: n, + body: I(l, r) + } + } finally { + void 0 !== i && Re(i, t), void 0 !== s && (Re(s, a + 1), je(s)), void 0 !== l && je(l) + } + })), Fe.prototype.decrypt = Ne((function(e, t) { + try { + var n = Pe(t.length); + R(t, n); + var a = qe(o._olm_decrypt_max_plaintext_length)(this.Mb, e, n, t.length); + R(t, n); + var r = Pe(a + 1), + i = qe(o._olm_decrypt)(this.Mb, e, n, t.length, r, a); + return A(r + i), I(r, i) + } finally { + void 0 !== n && je(n), void 0 !== r && (Re(r, a), je(r)) + } + })), Fe.prototype.describe = Ne((function() { + try { + var e = Pe(256); + return qe(o._olm_session_describe)(this.Mb, e, 256), I(e) + } finally { + void 0 !== e && je(e) + } + })), Be.prototype.free = function() { + o._olm_clear_utility(this.Mb), je(this.Mb) + }, Be.prototype.sha256 = Ne((function(e) { + var t = Ue(o._olm_sha256_length)(this.Mb), + n = Ie(e = Oe(e)), + a = Ie(t + 1); + try { + Ue(o._olm_sha256)(this.Mb, n, e.length, a, t) + } finally { + for (Re(n, e.length), n = 0; n < e.length; n++) e[n] = 0 + } + return I(a, t) + })), Be.prototype.ed25519_verify = Ne((function(e, t, n) { + var a = Ie(e = Oe(e)), + r = Ie(t = Oe(t)), + i = Ie(n = Oe(n)); + try { + Ue(o._olm_ed25519_verify)(this.Mb, a, e.length, r, t.length, i, n.length) + } finally { + for (Re(r, t.length), e = 0; e < t.length; e++) t[e] = 0 + } + })), s.Account = ze, s.Session = Fe, s.Utility = Be, s.PkEncryption = _e, s.PkDecryption = Se, s.PkSigning = xe, s.SAS = Ae, s.get_library_version = Ne((function() { + var e = Ie(3); + return o._olm_get_library_version(e, e + 1, e + 2), [T(e, "i8"), T(e + 1, "i8"), T(e + 2, "i8")] + })), t.ready + }, e.exports = l, s.init = function(e) { + return o || (e && (OLM_OPTIONS = e), o = new Promise((function(e, t) { + a = function() { + e() + }, r = function(e) { + t(e) + }, l() + }))) + }, s); + "undefined" != typeof window && (window.Olm = u), e.exports = u +}, 9783: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }); + var n = function() { + function e() {} + return e.serializeContent = function(e) { + var t = e.constructor.name; + if ("Buffer" === t || "Blob" === t || "File" === t || "FormData" === t || "string" == typeof e) return e; + if ("ArrayBuffer" === t) e = Buffer.from(e); + else if ("Int8Array" === t || "Int16Array" === t || "Int32Array" === t || "Uint8Array" === t || "Uint16Array" === t || "Uint32Array" === t || "Uint8ClampedArray" === t || "Float32Array" === t || "Float64Array" === t || "DataView" === t) e = Buffer.from(e.buffer); + else try { + e = JSON.stringify(e) + } catch (e) { + throw console.log(e), new Error("Invalid JSON content") + } + return e + }, e + }(); + t.GraphHelper = n +}, 9324: (e, t, n) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }); + var a = n(4305); + n(5430); + var r = n(3114), + i = n(5220), + o = n(1558), + s = n(9783), + l = function() { + function e(e, t) { + this.config = e, this._headers = {}, this.urlComponents = { + host: this.config.baseUrl, + version: this.config.defaultVersion, + oDataQueryParams: {}, + otherURLQueryParams: {} + }, this.parsePath(t) + } + return e.prototype.header = function(e, t) { + return this._headers[e] = t, this + }, e.prototype.headers = function(e) { + for (var t in e) this._headers[t] = e[t]; + return this + }, e.prototype.parsePath = function(e) { + if (-1 != e.indexOf("https://")) { + var t = (e = e.replace("https://", "")).indexOf("/"); + this.urlComponents.host = "https://" + e.substring(0, t); + var n = (e = e.substring(t + 1, e.length)).indexOf("/"); + this.urlComponents.version = e.substring(0, n), e = e.substring(n + 1, e.length) + } + "/" == e.charAt(0) && (e = e.substr(1)); + var a = e.indexOf("?"); + if (-1 == a) this.urlComponents.path = e; + else { + this.urlComponents.path = e.substr(0, a); + for (var i = 0, o = e.substring(a + 1, e.length).split("&"); i < o.length; i++) { + var s = o[i].split("="), + l = s[0], + c = s[1]; + r.oDataQueryNames.indexOf(l) ? this.urlComponents.oDataQueryParams[l] = c : this.urlComponents.otherURLQueryParams[l] = c + } + } + }, e.prototype.urlJoin = function(e) { + var t = function(e) { + return e.replace(/^\/+/, "") + }; + return Array.prototype.slice.call(e).reduce((function(e, n) { + return [(a = e, a.replace(/\/+$/, "")), t(n)].join("/"); + var a + })) + }, e.prototype.buildFullUrl = function() { + var e = this.urlJoin([this.urlComponents.host, this.urlComponents.version, this.urlComponents.path]) + this.createQueryString(); + return this.config.debugLogging && console.log(e), e + }, e.prototype.version = function(e) { + return this.urlComponents.version = e, this + }, e.prototype.select = function(e) { + return this.addCsvQueryParamater("$select", e, arguments), this + }, e.prototype.expand = function(e) { + return this.addCsvQueryParamater("$expand", e, arguments), this + }, e.prototype.orderby = function(e) { + return this.addCsvQueryParamater("$orderby", e, arguments), this + }, e.prototype.filter = function(e) { + return this.urlComponents.oDataQueryParams.$filter = e, this + }, e.prototype.top = function(e) { + return this.urlComponents.oDataQueryParams.$top = e, this + }, e.prototype.skip = function(e) { + return this.urlComponents.oDataQueryParams.$skip = e, this + }, e.prototype.skipToken = function(e) { + return this.urlComponents.oDataQueryParams.$skipToken = e, this + }, e.prototype.count = function(e) { + return this.urlComponents.oDataQueryParams.$count = e.toString(), this + }, e.prototype.responseType = function(e) { + return this._responseType = e, this + }, e.prototype.addCsvQueryParamater = function(e, t, n) { + this.urlComponents.oDataQueryParams[e] = this.urlComponents.oDataQueryParams[e] ? this.urlComponents.oDataQueryParams[e] + "," : ""; + var a = []; + "string" == typeof t ? a.push(t) : a = a.concat(t), n.length > 1 && "string" == typeof t && (a = Array.prototype.slice.call(n)), this.urlComponents.oDataQueryParams[e] += a.join(",") + }, e.prototype.delete = function(e) { + var t = this.buildFullUrl(); + return this.sendRequestAndRouteResponse(new Request(t, { + method: o.RequestMethod.DELETE, + headers: new Headers + }), e) + }, e.prototype.patch = function(e, t) { + var n = this.buildFullUrl(); + return this.sendRequestAndRouteResponse(new Request(n, { + method: o.RequestMethod.PATCH, + body: s.GraphHelper.serializeContent(e), + headers: new Headers({ + "Content-Type": "application/json" + }) + }), t) + }, e.prototype.post = function(e, t) { + var n = this.buildFullUrl(); + return this.sendRequestAndRouteResponse(new Request(n, { + method: o.RequestMethod.POST, + body: s.GraphHelper.serializeContent(e), + headers: new Headers(void 0 !== e.constructor && "FormData" === e.constructor.name ? {} : { + "Content-Type": "application/json" + }) + }), t) + }, e.prototype.put = function(e, t) { + var n = this.buildFullUrl(); + return this.sendRequestAndRouteResponse(new Request(n, { + method: o.RequestMethod.PUT, + body: s.GraphHelper.serializeContent(e), + headers: new Headers({ + "Content-Type": "application/octet-stream" + }) + }), t) + }, e.prototype.create = function(e, t) { + return this.post(e, t) + }, e.prototype.update = function(e, t) { + return this.patch(e, t) + }, e.prototype.del = function(e) { + return this.delete(e) + }, e.prototype.get = function(e) { + var t = this.buildFullUrl(); + return this.sendRequestAndRouteResponse(new Request(t, { + method: o.RequestMethod.GET, + headers: new Headers + }), e) + }, e.prototype.routeResponseToPromise = function(e) { + var t = this; + return new a.Promise((function(n, a) { + t.routeResponseToCallback(e, (function(e, t) { + null != e ? a(e) : n(t) + })) + })) + }, e.prototype.handleFetch = function(e, t, n) { + var a = this; + ("Request" === e.constructor.name ? fetch(e) : fetch(e, n)).then((function(e) { + a.convertResponseType(e).then((function(n) { + i.ResponseHandler.init(e, void 0, n, t) + })).catch((function(n) { + i.ResponseHandler.init(e, n, void 0, t) + })) + })).catch((function(e) { + i.ResponseHandler.init(void 0, e, void 0, t) + })) + }, e.prototype.routeResponseToCallback = function(e, t) { + var n = this; + n.config.authProvider((function(a, r) { + null == a && null != r ? (e = n.configureRequest(e, r), n.handleFetch(e, t)) : t(a, null, null) + })) + }, e.prototype.sendRequestAndRouteResponse = function(e, t) { + if (null == t && void 0 !== a.Promise) return this.routeResponseToPromise(e); + this.routeResponseToCallback(e, t || function() {}) + }, e.prototype.getStream = function(e) { + var t = this; + t.config.authProvider((function(n, a) { + if (null === n && null !== a) { + var r = t.buildFullUrl(), + i = { + method: o.RequestMethod.GET, + headers: t.getDefaultRequestHeaders(a) }; - var t = r.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, e); - return { - name: i.ENGINE_MAP.EdgeHTML, - version: t - } - } - }, { - test: [/trident/i], - describe: function(e) { - var t = { - name: i.ENGINE_MAP.Trident - }, - n = r.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: function(e) { - return e.test(/presto/i) - }, - describe: function(e) { - var t = { - name: i.ENGINE_MAP.Presto - }, - n = r.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: function(e) { - var t = e.test(/gecko/i), - n = e.test(/like gecko/i); - return t && !n - }, - describe: function(e) { - var t = { - name: i.ENGINE_MAP.Gecko - }, - n = r.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }, { - test: [/(apple)?webkit\/537\.36/i], - describe: function() { - return { - name: i.ENGINE_MAP.Blink - } - } - }, { - test: [/(apple)?webkit/i], - describe: function(e) { - var t = { - name: i.ENGINE_MAP.WebKit + t.responseType("stream"), Object.keys(t._headers).forEach((function(e) { + return i.headers[e] = t._headers[e] + })), t.handleFetch(r, e, i) + } else e(n, null) + })) + }, e.prototype.putStream = function(e, t) { + var n = this; + n.config.authProvider((function(a, r) { + if (null === a && null !== r) { + var i = n.buildFullUrl(), + s = { + method: o.RequestMethod.PUT, + headers: { + "Content-Type": "application/octet-stream" }, - n = r.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, e); - return n && (t.version = n), t - } - }]; - t.default = o, e.exports = t.default + body: e + }, + l = n.getDefaultRequestHeaders(r); + Object.keys(l).forEach((function(e) { + return s.headers[e] = l[e] + })), Object.keys(n._headers).forEach((function(e) { + return s.headers[e] = n._headers[e] + })), n.handleFetch(i, t, s) + } + })) + }, e.prototype.getDefaultRequestHeaders = function(e) { + return { + Authorization: "Bearer " + e, + SdkVersion: "graph-js-" + r.PACKAGE_VERSION + } + }, e.prototype.configureRequest = function(e, t) { + var n = this, + a = n.getDefaultRequestHeaders(t); + return Object.keys(a).forEach((function(t) { + return e.headers.set(t, a[t]) + })), Object.keys(n._headers).forEach((function(t) { + return e.headers.set(t, n._headers[t]) + })), e + }, e.prototype.query = function(e) { + if ("string" == typeof e) { + var t = e, + n = t.split("=")[0], + a = t.split("=")[1]; + this.urlComponents.otherURLQueryParams[n] = a + } else + for (var r in e) this.urlComponents.otherURLQueryParams[r] = e[r]; + return this + }, e.prototype.createQueryString = function() { + var e = []; + if (0 != Object.keys(this.urlComponents.oDataQueryParams).length) + for (var t in this.urlComponents.oDataQueryParams) e.push(t + "=" + this.urlComponents.oDataQueryParams[t]); + if (0 != Object.keys(this.urlComponents.otherURLQueryParams).length) + for (var t in this.urlComponents.otherURLQueryParams) e.push(t + "=" + this.urlComponents.otherURLQueryParams[t]); + return e.length > 0 ? "?" + e.join("&") : "" + }, e.prototype.convertResponseType = function(e) { + var t; + switch (this._responseType || (this._responseType = ""), this._responseType.toLowerCase()) { + case "arraybuffer": + t = e.arrayBuffer(); + break; + case "blob": + t = e.blob(); + break; + default: + t = e.json(); + break; + case "text": + t = e.text(); + break; + case "stream": + t = a.Promise.resolve(e.body) + } + return t + }, e + }(); + t.GraphRequest = l +}, 1558: (e, t) => { + "use strict"; + var n; + Object.defineProperty(t, "__esModule", { + value: !0 + }), (n = t.RequestMethod || (t.RequestMethod = {})).GET = "GET", n.PATCH = "PATCH", n.POST = "POST", n.PUT = "PUT", n.DELETE = "DELETE" +}, 5220: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }); + var n = function() { + function e() {} + return e.init = function(t, n, a, r) { + t && t.ok ? r(null, a, t) : null == n && null != t ? null != a && null != a.error ? r(e.buildGraphErrorFromResponseObject(a.error, t.status), null, t) : r(e.defaultGraphError(t.status), null, t) : r(e.ParseError(n), null, t) + }, e.ParseError = function(t) { + return t ? e.buildGraphErrorFromErrorObject(t) : e.defaultGraphError(-1) + }, e.defaultGraphError = function(e) { + return { + statusCode: e, + code: null, + message: null, + requestId: null, + date: new Date, + body: null + } + }, e.buildGraphErrorFromErrorObject = function(t) { + var n = e.defaultGraphError(-1); + return n.body = t.toString(), n.message = t.message, n.date = new Date, n + }, e.buildGraphErrorFromResponseObject = function(e, t) { + return { + statusCode: t, + code: e.code, + message: e.message, + requestId: e.innerError["request-id"], + date: new Date(e.innerError.date), + body: e + } + }, e + }(); + t.ResponseHandler = n +}, 3114: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.oDataQueryNames = ["select", "expand", "orderby", "filter", "top", "skip", "skipToken", "count"], t.DEFAULT_VERSION = "v1.0", t.GRAPH_BASE_URL = "https://graph.microsoft.com/", t.PACKAGE_VERSION = "1.0.0", t.oDataQueryNames = t.oDataQueryNames.concat(t.oDataQueryNames.map((function(e) { + return "$" + e + }))) +}, 387: (e, t, n) => { + "use strict"; + + function a(e) { + for (var n in e) t.hasOwnProperty(n) || (t[n] = e[n]) + } + Object.defineProperty(t, "__esModule", { + value: !0 + }); + var r = n(3114), + i = n(9324), + o = function() { + function e() { + this.config = { + debugLogging: !1, + defaultVersion: r.DEFAULT_VERSION, + baseUrl: r.GRAPH_BASE_URL + } } - }) - }, 6699: (e, t, n) => { - const a = n(559); - t.parseFont = a, t.createCanvas = function(e, t) { - return Object.assign(document.createElement("canvas"), { - width: e, - height: t - }) - }, t.createImageData = function(e, t, n) { - switch (arguments.length) { - case 0: - return new ImageData; - case 1: - return new ImageData(e); - case 2: - return new ImageData(e, t); - default: - return new ImageData(e, t, n) + return e.init = function(t) { + var n = new e; + for (var a in t) n.config[a] = t[a]; + return n + }, e.prototype.api = function(e) { + return new i.GraphRequest(this.config, e) + }, e + }(); + t.Client = o, a(n(9324)), a(n(3114)), a(n(5220)) +}, 4976: function(e, t, n) { + var a = n(554); + e.exports = function() { + "use strict"; + + function e(t) { + return e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { + return typeof e + } : function(e) { + return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e + }, e(t) + } + + function t(e, t) { + for (var n = 0; n < t.length; n++) { + var a = t[n]; + a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } - }, t.loadImage = function(e, t) { - return new Promise((function(n, a) { - const r = Object.assign(document.createElement("img"), t); + } - function i() { - r.onload = null, r.onerror = null - } - r.onload = function() { - i(), n(r) - }, r.onerror = function() { - i(), a(new Error('Failed to load the image "' + e + '"')) - }, r.src = e - })) + function r(e, t, n) { + return t in e ? Object.defineProperty(e, t, { + value: n, + enumerable: !0, + configurable: !0, + writable: !0 + }) : e[t] = n, e } - }, 559: e => { - "use strict"; - const t = "'([^']+)'|\"([^\"]+)\"|[\\w\\s-]+", - n = new RegExp("(bold|bolder|lighter|[1-9]00) +", "i"), - a = new RegExp("(italic|oblique) +", "i"), - r = new RegExp("(small-caps) +", "i"), - i = new RegExp("(ultra-condensed|extra-condensed|condensed|semi-condensed|semi-expanded|expanded|extra-expanded|ultra-expanded) +", "i"), - o = new RegExp("([\\d\\.]+)(px|pt|pc|in|cm|mm|%|em|ex|ch|rem|q) *((?:" + t + ")( *, *(?:" + t + "))*)"), - s = {}; - e.exports = function(e) { - if (s[e]) return s[e]; - const t = o.exec(e); - if (!t) return; - const l = { - weight: "normal", - style: "normal", - stretch: "normal", - variant: "normal", - size: parseFloat(t[1]), - unit: t[2], - family: t[3].replace(/["']/g, "").replace(/ *, */g, ",") - }; - let c, u, d, p, h = e.substring(0, t.index); - switch ((c = n.exec(h)) && (l.weight = c[1]), (u = a.exec(h)) && (l.style = u[1]), (d = r.exec(h)) && (l.variant = d[1]), (p = i.exec(h)) && (l.stretch = p[1]), l.unit) { - case "pt": - l.size /= .75; - break; - case "pc": - l.size *= 16; - break; - case "in": - l.size *= 96; - break; - case "cm": - l.size *= 96 / 2.54; - break; - case "mm": - l.size *= 96 / 25.4; - break; - case "%": - break; - case "em": - case "rem": - l.size *= 16 / .75; - break; - case "q": - l.size *= 96 / 25.4 / 4 + + function i(e) { + for (var t = 1; t < arguments.length; t++) { + var n = null != arguments[t] ? arguments[t] : {}, + a = Object.keys(n); + "function" == typeof Object.getOwnPropertySymbols && (a = a.concat(Object.getOwnPropertySymbols(n).filter((function(e) { + return Object.getOwnPropertyDescriptor(n, e).enumerable + })))), a.forEach((function(t) { + r(e, t, n[t]) + })) } - return s[e] = l + return e } - }, 3588: (e, t) => { - var n; - ! function() { - "use strict"; - var a = {}.hasOwnProperty; + var o, s, l, c; - function r() { - for (var e = [], t = 0; t < arguments.length; t++) { - var n = arguments[t]; - if (n) { - var i = typeof n; - if ("string" === i || "number" === i) e.push(n); - else if (Array.isArray(n)) e.push(r.apply(null, n)); - else if ("object" === i) - for (var o in n) a.call(n, o) && n[o] && e.push(o) + function u() { + return "object" == typeof window && void 0 !== (null === window || void 0 === window ? void 0 : window.document) + }(function(e) { + e.IDENTIFY = "$identify" + })(o || (o = {})), + function(e) { + e.SET = "$set", e.SET_ONCE = "$setOnce", e.ADD = "$add", e.APPEND = "$append", e.PREPEND = "$prepend", e.REMOVE = "$remove", e.PREINSERT = "$preinsert", e.POSTINSERT = "$postinsert", e.UNSET = "$unset", e.CLEAR_ALL = "$clearAll" + }(s || (s = {})), + function(e) { + e[e.None = 0] = "None", e[e.Error = 1] = "Error", e[e.Warn = 2] = "Warn", e[e.Verbose = 3] = "Verbose" + }(l || (l = {})), + function(e) { + e.Unknown = "unknown", e.Skipped = "skipped", e.Success = "success", e.RateLimit = "rate_limit", e.PayloadTooLarge = "payload_too_large", e.Invalid = "invalid", e.Failed = "failed" + }(c || (c = {})), + function(e) { + e.fromHttpCode = function(t) { + return t >= 200 && t < 300 ? e.Success : 429 === t ? e.RateLimit : 413 === t ? e.PayloadTooLarge : t >= 400 && t < 500 ? e.Invalid : t >= 500 ? e.Failed : e.Unknown + } + }(c || (c = {})), c.Skipped; + var d, p = {}, + h = ((d = function() { + return "object" == typeof a && void 0 !== (null === (e = null == a ? void 0 : a.versions) || void 0 === e ? void 0 : e.node) ? n.g : "undefined" != typeof window ? window : "undefined" != typeof self ? self : p; + var e + }()).__AMPLITUDE__ = d.__AMPLITUDE__ || {}, d.__AMPLITUDE__), + m = "Amplitude Logger ", + f = function() { + function e() { + this._logLevel = 0 + } + return e.prototype.disable = function() { + this._logLevel = 0 + }, e.prototype.enable = function(e) { + void 0 === e && (e = l.Warn), this._logLevel = e + }, e.prototype.log = function() { + for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; + this._logLevel < l.Verbose || n.g.console.log(m + "[Log]: " + e.join(" ")) + }, e.prototype.warn = function() { + for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; + this._logLevel < l.Warn || n.g.console.warn(m + "[Warn]: " + e.join(" ")) + }, e.prototype.error = function() { + for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; + this._logLevel < l.Error || n.g.console.error(m + "[Error]: " + e.join(" ")) + }, e + }(), + g = (h.logger || (h.logger = new f), { + DEFAULT_INSTANCE: "$default_instance", + API_VERSION: 2, + MAX_STRING_LENGTH: 4096, + MAX_PROPERTY_KEYS: 1e3, + IDENTIFY_EVENT: "$identify", + GROUP_IDENTIFY_EVENT: "$groupidentify", + LAST_EVENT_ID: "amplitude_lastEventId", + LAST_EVENT_TIME: "amplitude_lastEventTime", + LAST_IDENTIFY_ID: "amplitude_lastIdentifyId", + LAST_SEQUENCE_NUMBER: "amplitude_lastSequenceNumber", + SESSION_ID: "amplitude_sessionId", + DEVICE_ID: "amplitude_deviceId", + OPT_OUT: "amplitude_optOut", + USER_ID: "amplitude_userId", + COOKIE_TEST_PREFIX: "amp_cookie_test", + COOKIE_PREFIX: "amp", + STORAGE_DEFAULT: "", + STORAGE_COOKIES: "cookies", + STORAGE_NONE: "none", + STORAGE_LOCAL: "localStorage", + STORAGE_SESSION: "sessionStorage", + REVENUE_EVENT: "revenue_amount", + REVENUE_PRODUCT_ID: "$productId", + REVENUE_QUANTITY: "$quantity", + REVENUE_PRICE: "$price", + REVENUE_REVENUE_TYPE: "$revenueType", + AMP_DEVICE_ID_PARAM: "amp_device_id", + REFERRER: "referrer", + UTM_SOURCE: "utm_source", + UTM_MEDIUM: "utm_medium", + UTM_CAMPAIGN: "utm_campaign", + UTM_TERM: "utm_term", + UTM_CONTENT: "utm_content", + ATTRIBUTION_EVENT: "[Amplitude] Attribution Captured" + }), + b = function(e) { + for (var t = "", n = 0; n < e.length; n++) { + var a = e.charCodeAt(n); + a < 128 ? t += String.fromCharCode(a) : a > 127 && a < 2048 ? (t += String.fromCharCode(a >> 6 | 192), t += String.fromCharCode(63 & a | 128)) : (t += String.fromCharCode(a >> 12 | 224), t += String.fromCharCode(a >> 6 & 63 | 128), t += String.fromCharCode(63 & a | 128)) + } + return t + }, + y = function(e) { + for (var t = "", n = 0, a = 0, r = 0, i = 0; n < e.length;)(a = e.charCodeAt(n)) < 128 ? (t += String.fromCharCode(a), n++) : a > 191 && a < 224 ? (r = e.charCodeAt(n + 1), t += String.fromCharCode((31 & a) << 6 | 63 & r), n += 2) : (r = e.charCodeAt(n + 1), i = e.charCodeAt(n + 2), t += String.fromCharCode((15 & a) << 12 | (63 & r) << 6 | 63 & i), n += 3); + return t + }, + v = { + _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", + encode: function(e) { + try { + if (window.btoa && window.atob) return window.btoa(unescape(encodeURIComponent(e))) + } catch (e) {} + return v._encode(e) + }, + _encode: function(e) { + var t, n, a, r, i, o, s, l = "", + c = 0; + for (e = b(e); c < e.length;) r = (t = e.charCodeAt(c++)) >> 2, i = (3 & t) << 4 | (n = e.charCodeAt(c++)) >> 4, o = (15 & n) << 2 | (a = e.charCodeAt(c++)) >> 6, s = 63 & a, isNaN(n) ? o = s = 64 : isNaN(a) && (s = 64), l = l + v._keyStr.charAt(r) + v._keyStr.charAt(i) + v._keyStr.charAt(o) + v._keyStr.charAt(s); + return l + }, + decode: function(e) { + try { + if (window.btoa && window.atob) return decodeURIComponent(escape(window.atob(e))) + } catch (e) {} + return v._decode(e) + }, + _decode: function(e) { + var t, n, a, r, i, o, s = "", + l = 0; + for (e = e.replace(/[^A-Za-z0-9+/=]/g, ""); l < e.length;) t = v._keyStr.indexOf(e.charAt(l++)) << 2 | (r = v._keyStr.indexOf(e.charAt(l++))) >> 4, n = (15 & r) << 4 | (i = v._keyStr.indexOf(e.charAt(l++))) >> 2, a = (3 & i) << 6 | (o = v._keyStr.indexOf(e.charAt(l++))), s += String.fromCharCode(t), 64 !== i && (s += String.fromCharCode(n)), 64 !== o && (s += String.fromCharCode(a)); + return y(s) + } + }, + k = Object.prototype.toString; + + function _(t) { + switch (k.call(t)) { + case "[object Date]": + return "date"; + case "[object RegExp]": + return "regexp"; + case "[object Arguments]": + return "arguments"; + case "[object Array]": + return "array"; + case "[object Error]": + return "error" + } + return null === t ? "null" : void 0 === t ? "undefined" : t != t ? "nan" : t && 1 === t.nodeType ? "element" : "undefined" != typeof Buffer && "function" == typeof Buffer.isBuffer && Buffer.isBuffer(t) ? "buffer" : e(t = t.valueOf ? t.valueOf() : Object.prototype.valueOf.apply(t)) + } + var w, S = { + DISABLE: 0, + ERROR: 1, + WARN: 2, + INFO: 3 + }, + E = S.WARN, + x = { + error: function(e) { + E >= S.ERROR && C(e) + }, + warn: function(e) { + E >= S.WARN && C(e) + }, + info: function(e) { + E >= S.INFO && C(e) + } + }, + C = function(e) { + try { + console.log("[Amplitude] " + e) + } catch (e) {} + }, + A = function(e) { + return "string" === _(e) && e.length > g.MAX_STRING_LENGTH ? e.substring(0, g.MAX_STRING_LENGTH) : e + }, + T = function(e) { + var t = _(e); + if ("object" !== t) return x.error("Error: invalid properties format. Expecting Javascript object, received " + t + ", ignoring"), {}; + if (Object.keys(e).length > g.MAX_PROPERTY_KEYS) return x.error("Error: too many properties (more than 1000), ignoring"), {}; + var n = {}; + for (var a in e) + if (Object.prototype.hasOwnProperty.call(e, a)) { + var r = a, + i = _(r); + "string" !== i && (r = String(r), x.warn("WARNING: Non-string property key, received type " + i + ', coercing to string "' + r + '"')); + var o = P(r, e[a]); + null !== o && (n[r] = o) + } return n + }, + D = ["nan", "function", "arguments", "regexp", "element"], + P = function e(t, n) { + var a = _(n); + if (-1 !== D.indexOf(a)) x.warn('WARNING: Property key "' + t + '" with invalid value type ' + a + ", ignoring"), n = null; + else if ("undefined" === a) n = null; + else if ("error" === a) n = String(n), x.warn('WARNING: Property key "' + t + '" with value type error, coercing to ' + n); + else if ("array" === a) { + for (var r = [], i = 0; i < n.length; i++) { + var o = n[i], + s = _(o); + "array" !== s ? "object" === s ? r.push(T(o)) : r.push(e(t, o)) : x.warn("WARNING: Cannot have " + s + " nested in an array property value, skipping") + } + n = r + } else "object" === a && (n = T(n)); + return n + }, + j = function(e, t) { + var n = _(t); + if ("string" === n) return t; + if ("date" === n || "number" === n || "boolean" === n) return t = String(t), x.warn("WARNING: Non-string groupName, received type " + n + ', coercing to string "' + t + '"'), t; + if ("array" === n) { + for (var a = [], r = 0; r < t.length; r++) { + var i = t[r], + o = _(i); + "array" !== o && "object" !== o ? "string" === o ? a.push(i) : "date" !== o && "number" !== o && "boolean" !== o || (i = String(i), x.warn("WARNING: Non-string groupName, received type " + o + ', coercing to string "' + i + '"'), a.push(i)) : x.warn("WARNING: Skipping nested " + o + " in array groupName") } + return a } - return e.join(" ") - } - e.exports ? e.exports = r : void 0 === (n = function() { - return r - }.apply(t, [])) || (e.exports = n) - }() - }, 6415: e => { - function t() { - return new DOMException("The request is not allowed", "NotAllowedError") - } - e.exports = async function(e) { - try { - await async function(e) { - if (!navigator.clipboard) throw t(); - return navigator.clipboard.writeText(e) - }(e) - } catch (n) { + x.warn("WARNING: Non-string groupName, received type " + n + ". Please use strings or array of strings for groupName") + }, + M = function(e) { + Object.prototype.hasOwnProperty.call(S, e) && (E = S[e]) + }, + I = x, + O = function(e) { + return !e || 0 === e.length + }, + N = function(e, t) { + e = e.replace(/[[]/, "\\[").replace(/[\]]/, "\\]"); + var n = new RegExp("[\\?&]" + e + "=([^&#]*)").exec(t); + return null === n ? void 0 : decodeURIComponent(n[1].replace(/\+/g, " ")) + }, + R = function e(t) { + if ("array" === _(t)) + for (var n = 0; n < t.length; n++) t[n] = e(t[n]); + else if ("object" === _(t)) + for (var a in t) a in t && (t[a] = e(t[a])); + else t = A(t); + return t + }, + z = function(e) { + var t = _(e); + if ("object" !== t) return x.error("Error: invalid groups format. Expecting Javascript object, received " + t + ", ignoring"), {}; + var n = {}; + for (var a in e) + if (Object.prototype.hasOwnProperty.call(e, a)) { + var r = a, + i = _(r); + "string" !== i && (r = String(r), x.warn("WARNING: Non-string groupType, received type " + i + ', coercing to string "' + r + '"')); + var o = j(r, e[a]); + null !== o && (n[r] = o) + } return n + }, + L = function(e, t, n) { + return _(e) === n || (x.error("Invalid " + t + " input type. Expected " + n + " but received " + _(e)), !1) + }, + F = T, + q = function() { + return window.location + }, + B = function() { + for (var e = "", t = 0; t < 22; ++t) e += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".charAt(Math.floor(64 * Math.random())); + return e + }, + U = function(e) { + try { + for (var t = document.cookie.split(";"), n = null, a = 0; a < t.length; a++) { + for (var r = t[a]; + " " === r.charAt(0);) r = r.substring(1, r.length); + if (0 === r.indexOf(e)) { + n = r.substring(e.length, r.length); + break + } + } + return n + } catch (e) { + return null + } + }, + H = function(e, t, n) { + var a = null !== t ? n.expirationDays : -1; + if (a) { + var r = new Date; + r.setTime(r.getTime() + 24 * a * 60 * 60 * 1e3), a = r + } + var i = e + "=" + t; + a && (i += "; expires=" + a.toUTCString()), i += "; path=/", n.domain && (i += "; domain=" + n.domain), n.secure && (i += "; Secure"), n.sameSite && (i += "; SameSite=" + n.sameSite), document.cookie = i + }, + V = H, + W = U, + Y = function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}, + t = g.COOKIE_TEST_PREFIX + B(), + n = !1; + try { + var a = String(new Date); + H(t, a, e), I.info("Testing if cookies available"), n = U(t + "=") === a + } catch (e) { + I.warn('Error thrown when checking for cookies. Reason: "'.concat(e, '"')) + } finally { + I.warn("Cleaning up cookies availability test"), H(t, null, e) + } + return n + }, + G = function(e) { + var t = document.createElement("a"); + return t.href = e, t.hostname || location.hostname + }, + K = function(e) { + for (var t = G(e).split("."), n = [], a = "_tldtest_" + B(), r = t.length - 2; r >= 0; --r) n.push(t.slice(r).join(".")); + for (var i = 0; i < n.length; ++i) { + var o = n[i], + s = { + domain: "." + o + }; + if (V(a, 1, s), W(a)) return V(a, null, s), o + } + return "" + }, + $ = { + expirationDays: void 0, + domain: void 0 + }, + J = function(e) { + var t = ""; + return $.domain && (t = "." === $.domain.charAt(0) ? $.domain.substring(1) : $.domain), e + t + }, + Z = function(e) { + var t = J(e) + "=", + n = W(t); try { - await async function(e) { - const n = document.createElement("span"); - n.textContent = e, n.style.whiteSpace = "pre", n.style.webkitUserSelect = "auto", n.style.userSelect = "all", document.body.appendChild(n); - const a = window.getSelection(), - r = window.document.createRange(); - a.removeAllRanges(), r.selectNode(n), a.addRange(r); - let i = !1; - try { - i = window.document.execCommand("copy") - } finally { - a.removeAllRanges(), window.document.body.removeChild(n) - } - if (!i) throw t() - }(e) + if (n) return JSON.parse(v.decode(n)) } catch (e) { - throw e || n || t() - } - } - } - }, 8801: (e, t, n) => { - var a = n(554); - - function r() { - var e; - try { - e = t.storage.debug - } catch (e) {} - return !e && void 0 !== a && "env" in a && (e = a.env.DEBUG), e - }(t = e.exports = n(2155)).log = function() { - return "object" == typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments) - }, t.formatArgs = function(e) { - var n = this.useColors; - if (e[0] = (n ? "%c" : "") + this.namespace + (n ? " %c" : " ") + e[0] + (n ? "%c " : " ") + "+" + t.humanize(this.diff), n) { - var a = "color: " + this.color; - e.splice(1, 0, a, "color: inherit"); - var r = 0, - i = 0; - e[0].replace(/%[a-zA-Z%]/g, (function(e) { - "%%" !== e && (r++, "%c" === e && (i = r)) - })), e.splice(i, 0, a) - } - }, t.save = function(e) { - try { - null == e ? t.storage.removeItem("debug") : t.storage.debug = e - } catch (e) {} - }, t.load = r, t.useColors = function() { - return !("undefined" == typeof window || !window.process || "renderer" !== window.process.type) || ("undefined" != typeof document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || "undefined" != typeof window && window.console && (window.console.firebug || window.console.exception && window.console.table) || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)) - }, t.storage = "undefined" != typeof chrome && void 0 !== chrome.storage ? chrome.storage.local : function() { - try { - return window.localStorage - } catch (e) {} - }(), t.colors = ["lightseagreen", "forestgreen", "goldenrod", "dodgerblue", "darkorchid", "crimson"], t.formatters.j = function(e) { - try { - return JSON.stringify(e) - } catch (e) { - return "[UnexpectedJSONParseError]: " + e.message - } - }, t.enable(r()) - }, 2155: (e, t, n) => { - var a; - - function r(e) { - function n() { - if (n.enabled) { - var e = n, - r = +new Date, - i = r - (a || r); - e.diff = i, e.prev = a, e.curr = r, a = r; - for (var o = new Array(arguments.length), s = 0; s < o.length; s++) o[s] = arguments[s]; - o[0] = t.coerce(o[0]), "string" != typeof o[0] && o.unshift("%O"); - var l = 0; - o[0] = o[0].replace(/%([a-zA-Z%])/g, (function(n, a) { - if ("%%" === n) return n; - l++; - var r = t.formatters[a]; - if ("function" == typeof r) { - var i = o[l]; - n = r.call(e, i), o.splice(l, 1), l-- - } - return n - })), t.formatArgs.call(e, o); - var c = n.log || t.log || console.log.bind(console); - c.apply(e, o) + return null } - } - return n.namespace = e, n.enabled = t.enabled(e), n.useColors = t.useColors(), n.color = function(e) { - var n, a = 0; - for (n in e) a = (a << 5) - a + e.charCodeAt(n), a |= 0; - return t.colors[Math.abs(a) % t.colors.length] - }(e), "function" == typeof t.init && t.init(n), n - }(t = e.exports = r.debug = r.default = r).coerce = function(e) { - return e instanceof Error ? e.stack || e.message : e - }, t.disable = function() { - t.enable("") - }, t.enable = function(e) { - t.save(e), t.names = [], t.skips = []; - for (var n = ("string" == typeof e ? e : "").split(/[\s,]+/), a = n.length, r = 0; r < a; r++) n[r] && ("-" === (e = n[r].replace(/\*/g, ".*?"))[0] ? t.skips.push(new RegExp("^" + e.substr(1) + "$")) : t.names.push(new RegExp("^" + e + "$"))) - }, t.enabled = function(e) { - var n, a; - for (n = 0, a = t.skips.length; n < a; n++) - if (t.skips[n].test(e)) return !1; - for (n = 0, a = t.names.length; n < a; n++) - if (t.names[n].test(e)) return !0; - return !1 - }, t.humanize = n(2068), t.names = [], t.skips = [], t.formatters = {} - }, 904: function(e, t, n) { - ! function(e) { - "use strict"; - - function t(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - } - - function a(e, t) { - for (var n = 0; t.length > n; n++) { - var a = t[n]; - a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) + return null + }, + Q = function(e, t) { + try { + return V(J(e), v.encode(JSON.stringify(t)), $), !0 + } catch (e) { + return !1 } - } - - function r(e, t, n) { - return t && a(e.prototype, t), n && a(e, n), e - } - - function i(e) { - return (i = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { - return e.__proto__ || Object.getPrototypeOf(e) - })(e) - } - - function o(e, t) { - return (o = Object.setPrototypeOf || function(e, t) { - return e.__proto__ = t, e - })(e, t) - } - - function s() { - if ("undefined" == typeof Reflect || !Reflect.construct) return !1; - if (Reflect.construct.sham) return !1; - if ("function" == typeof Proxy) return !0; + }, + X = function(e) { try { - return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + return V(J(e), null, $), !0 } catch (e) { return !1 } + }, + ee = { + reset: function() { + $ = { + expirationDays: void 0, + domain: void 0 + } + }, + options: function(e) { + if (0 === arguments.length) return $; + e = e || {}, $.expirationDays = e.expirationDays, $.secure = e.secure, $.sameSite = e.sameSite; + var t = O(e.domain) ? "." + K(q().href) : e.domain, + n = Math.random(); + $.domain = t, Q("amplitude_test", n); + var a = Z("amplitude_test"); + return a && a === n || (t = null), X("amplitude_test"), $.domain = t, $ + }, + get: Z, + set: Q, + remove: X, + setRaw: function(e, t) { + try { + return V(J(e), t, $), !0 + } catch (e) { + return !1 + } + }, + getRaw: function(e) { + var t = J(e) + "="; + return W(t) + } + }; + if (function() { + var e, t = new Date; + try { + return window.localStorage.setItem(t, t), e = window.localStorage.getItem(t) === String(t), window.localStorage.removeItem(t), e + } catch (e) {} + return !1 + }()) w = window.localStorage; + else if (window.globalStorage) try { + w = window.globalStorage[window.location.hostname] + } catch (e) {} else if ("undefined" != typeof document) { + var te = document.createElement("div"), + ne = "localStorage"; + te.style.display = "none", document.getElementsByTagName("head")[0].appendChild(te), te.addBehavior && (te.addBehavior("#default#userdata"), w = { + length: 0, + setItem: function(e, t) { + te.load(ne), te.getAttribute(e) || this.length++, te.setAttribute(e, t), te.save(ne) + }, + getItem: function(e) { + return te.load(ne), te.getAttribute(e) + }, + removeItem: function(e) { + te.load(ne), te.getAttribute(e) && this.length--, te.removeAttribute(e), te.save(ne) + }, + clear: function() { + te.load(ne); + for (var e, t = 0; e = te.XMLDocument.documentElement.attributes[t++];) te.removeAttribute(e.name); + te.save(ne), this.length = 0 + }, + key: function(e) { + return te.load(ne), te.XMLDocument.documentElement.attributes[e] + } + }, te.load(ne), w.length = te.XMLDocument.documentElement.attributes.length) + } w || (w = { + length: 0, + setItem: function(e, t) {}, + getItem: function(e) {}, + removeItem: function(e) {}, + clear: function() {}, + key: function(e) {} + }); + var ae, re = w, + ie = function() { + this.storage = null + }; + ie.prototype.getStorage = function() { + if (null !== this.storage) return this.storage; + if (Y()) this.storage = ee; + else { + var e = "amp_cookiestore_"; + this.storage = { + _options: { + expirationDays: void 0, + domain: void 0, + secure: !1 + }, + reset: function() { + this._options = { + expirationDays: void 0, + domain: void 0, + secure: !1 + } + }, + options: function(e) { + return 0 === arguments.length ? this._options : (e = e || {}, this._options.expirationDays = e.expirationDays || this._options.expirationDays, this._options.domain = e.domain || this._options.domain || window && window.location && window.location.hostname, this._options.secure = e.secure || !1) + }, + get: function(t) { + try { + return JSON.parse(re.getItem(e + t)) + } catch (e) {} + return null + }, + set: function(t, n) { + try { + return re.setItem(e + t, JSON.stringify(n)), !0 + } catch (e) {} + return !1 + }, + remove: function(t) { + try { + re.removeItem(e + t) + } catch (e) { + return !1 + } + } + } } + return this.storage + }; + var oe = (r(ae = {}, g.STORAGE_COOKIES, !0), r(ae, g.STORAGE_NONE, !0), r(ae, g.STORAGE_LOCAL, !0), r(ae, g.STORAGE_SESSION, !0), ae), + se = function() { + function e(t) { + var n = t.storageKey, + a = t.disableCookies, + r = t.domain, + i = t.secure, + o = t.sameSite, + s = t.expirationDays, + l = t.storage; + (function(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + })(this, e), this.storageKey = n, this.domain = r, this.secure = i, this.sameSite = o, this.expirationDays = s, this.cookieDomain = ""; + var c = K(q().href); + if (this.cookieDomain = r || (c ? "." + c : null), oe[l]) this.storage = l; + else { + var u = a || !Y({ + domain: this.cookieDomain, + secure: this.secure, + sameSite: this.sameSite, + expirationDays: this.expirationDays + }); + this.storage = u ? g.STORAGE_LOCAL : g.STORAGE_COOKIES + } + } + return n = e, (a = [{ + key: "getCookieStorageKey", + value: function() { + if (!this.domain) return this.storageKey; + var e = "." === this.domain.charAt(0) ? this.domain.substring(1) : this.domain; + return "".concat(this.storageKey).concat(e ? "_".concat(e) : "") + } + }, { + key: "save", + value: function(e) { + var t = e.deviceId, + n = e.userId, + a = e.optOut, + r = e.sessionId, + i = e.lastEventTime, + o = e.eventId, + s = e.identifyId, + l = e.sequenceNumber; + if (this.storage !== g.STORAGE_NONE) { + var c = [t, v.encode(n || ""), a ? "1" : "", r ? r.toString(32) : "0", i ? i.toString(32) : "0", o ? o.toString(32) : "0", s ? s.toString(32) : "0", l ? l.toString(32) : "0"].join("."); + switch (this.storage) { + case g.STORAGE_SESSION: + window.sessionStorage && window.sessionStorage.setItem(this.storageKey, c); + break; + case g.STORAGE_LOCAL: + re.setItem(this.storageKey, c); + break; + case g.STORAGE_COOKIES: + V(this.getCookieStorageKey(), c, { + domain: this.cookieDomain, + secure: this.secure, + sameSite: this.sameSite, + expirationDays: this.expirationDays + }) + } + } + } + }, { + key: "load", + value: function() { + var e; + if (this.storage === g.STORAGE_COOKIES && (e = W(this.getCookieStorageKey() + "=")), e || (e = re.getItem(this.storageKey)), !e) try { + e = window.sessionStorage && window.sessionStorage.getItem(this.storageKey) + } catch (e) { + I.info('window.sessionStorage unavailable. Reason: "'.concat(e, '"')) + } + if (!e) return null; + var t = e.split("."), + n = null; + if (t[1]) try { + n = v.decode(t[1]) + } catch (e) { + n = null + } + return { + deviceId: t[0], + userId: n, + optOut: "1" === t[2], + sessionId: parseInt(t[3], 32), + lastEventTime: parseInt(t[4], 32), + eventId: parseInt(t[5], 32), + identifyId: parseInt(t[6], 32), + sequenceNumber: parseInt(t[7], 32) + } + } + }]) && t(n.prototype, a), r && t(n, r), e; + var n, a, r + }(), + le = "$clearAll", + ce = function() { + this.userPropertiesOperations = {}, this.properties = [] + }; + ce.prototype.add = function(e, t) { + return "number" === _(t) || "string" === _(t) ? this._addOperation("$add", e, t) : I.error("Unsupported type for value: " + _(t) + ", expecting number or string"), this + }, ce.prototype.append = function(e, t) { + return this._addOperation("$append", e, t), this + }, ce.prototype.clearAll = function() { + return Object.keys(this.userPropertiesOperations).length > 0 ? (Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, le) || I.error("Need to send $clearAll on its own Identify object without any other operations, skipping $clearAll"), this) : (this.userPropertiesOperations.$clearAll = "-", this) + }, ce.prototype.prepend = function(e, t) { + return this._addOperation("$prepend", e, t), this + }, ce.prototype.set = function(e, t) { + return this._addOperation("$set", e, t), this + }, ce.prototype.setOnce = function(e, t) { + return this._addOperation("$setOnce", e, t), this + }, ce.prototype.unset = function(e) { + return this._addOperation("$unset", e, "-"), this + }, ce.prototype.preInsert = function(e, t) { + return this._addOperation("$preInsert", e, t), this + }, ce.prototype.postInsert = function(e, t) { + return this._addOperation("$postInsert", e, t), this + }, ce.prototype.remove = function(e, t) { + return this._addOperation("$remove", e, t), this + }, ce.prototype._addOperation = function(e, t, n) { + Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, le) ? I.error("This identify already contains a $clearAll operation, skipping operation " + e) : -1 === this.properties.indexOf(t) ? (Object.prototype.hasOwnProperty.call(this.userPropertiesOperations, e) || (this.userPropertiesOperations[e] = {}), this.userPropertiesOperations[e][t] = n, this.properties.push(t)) : I.error('User property "' + t + '" already used in this identify, skipping operation ' + e) + }; + var ue = "undefined" != typeof window ? window : void 0 !== n.g ? n.g : "undefined" != typeof self ? self : {}; - function l(e, t, n) { - return (l = s() ? Reflect.construct : function(e, t, n) { - var a = [null]; - a.push.apply(a, t); - var r = new(Function.bind.apply(e, a)); - return n && o(r, n.prototype), r - }).apply(null, arguments) - } + function de(e, t) { + return e(t = { + exports: {} + }, t.exports), t.exports + } + var pe = de((function(e) { + ! function(t) { + function n(e, t) { + var n = (65535 & e) + (65535 & t); + return (e >> 16) + (t >> 16) + (n >> 16) << 16 | 65535 & n + } - function c(e) { - var t = "function" == typeof Map ? new Map : void 0; - return (c = function(e) { - if (null === e || -1 === Function.toString.call(e).indexOf("[native code]")) return e; - if ("function" != typeof e) throw new TypeError("Super expression must either be null or a function"); - if (void 0 !== t) { - if (t.has(e)) return t.get(e); - t.set(e, n) + function a(e, t, a, r, i, o) { + return n((s = n(n(t, e), n(r, o))) << (l = i) | s >>> 32 - l, a); + var s, l } - function n() { - return l(e, arguments, i(this).constructor) + function r(e, t, n, r, i, o, s) { + return a(t & n | ~t & r, e, t, i, o, s) } - return n.prototype = Object.create(e.prototype, { - constructor: { - value: n, - enumerable: !1, - writable: !0, - configurable: !0 - } - }), o(n, e) - })(e) - } - function u(e, t) { - return !t || "object" != typeof t && "function" != typeof t ? function(e) { - if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - return e - }(e) : t - } - var d = "app", - p = "user", - h = "team", - m = "dropboxapi.com", - f = "dropbox.com", - g = { - api: "api", - notify: "bolt", - content: "api-content" - }, - b = {}; - - function y(e) { - var t = "000".concat(e.charCodeAt(0).toString(16)).slice(-4); - return "\\u".concat(t) - } - b.accountSetProfilePhoto = function(e) { - return this.request("account/set_profile_photo", e, "user", "api", "rpc") - }, b.authTokenFromOauth1 = function(e) { - return this.request("auth/token/from_oauth1", e, "app", "api", "rpc") - }, b.authTokenRevoke = function() { - return this.request("auth/token/revoke", null, "user", "api", "rpc") - }, b.checkApp = function(e) { - return this.request("check/app", e, "app", "api", "rpc") - }, b.checkUser = function(e) { - return this.request("check/user", e, "user", "api", "rpc") - }, b.contactsDeleteManualContacts = function() { - return this.request("contacts/delete_manual_contacts", null, "user", "api", "rpc") - }, b.contactsDeleteManualContactsBatch = function(e) { - return this.request("contacts/delete_manual_contacts_batch", e, "user", "api", "rpc") - }, b.filePropertiesPropertiesAdd = function(e) { - return this.request("file_properties/properties/add", e, "user", "api", "rpc") - }, b.filePropertiesPropertiesOverwrite = function(e) { - return this.request("file_properties/properties/overwrite", e, "user", "api", "rpc") - }, b.filePropertiesPropertiesRemove = function(e) { - return this.request("file_properties/properties/remove", e, "user", "api", "rpc") - }, b.filePropertiesPropertiesSearch = function(e) { - return this.request("file_properties/properties/search", e, "user", "api", "rpc") - }, b.filePropertiesPropertiesSearchContinue = function(e) { - return this.request("file_properties/properties/search/continue", e, "user", "api", "rpc") - }, b.filePropertiesPropertiesUpdate = function(e) { - return this.request("file_properties/properties/update", e, "user", "api", "rpc") - }, b.filePropertiesTemplatesAddForTeam = function(e) { - return this.request("file_properties/templates/add_for_team", e, "team", "api", "rpc") - }, b.filePropertiesTemplatesAddForUser = function(e) { - return this.request("file_properties/templates/add_for_user", e, "user", "api", "rpc") - }, b.filePropertiesTemplatesGetForTeam = function(e) { - return this.request("file_properties/templates/get_for_team", e, "team", "api", "rpc") - }, b.filePropertiesTemplatesGetForUser = function(e) { - return this.request("file_properties/templates/get_for_user", e, "user", "api", "rpc") - }, b.filePropertiesTemplatesListForTeam = function() { - return this.request("file_properties/templates/list_for_team", null, "team", "api", "rpc") - }, b.filePropertiesTemplatesListForUser = function() { - return this.request("file_properties/templates/list_for_user", null, "user", "api", "rpc") - }, b.filePropertiesTemplatesRemoveForTeam = function(e) { - return this.request("file_properties/templates/remove_for_team", e, "team", "api", "rpc") - }, b.filePropertiesTemplatesRemoveForUser = function(e) { - return this.request("file_properties/templates/remove_for_user", e, "user", "api", "rpc") - }, b.filePropertiesTemplatesUpdateForTeam = function(e) { - return this.request("file_properties/templates/update_for_team", e, "team", "api", "rpc") - }, b.filePropertiesTemplatesUpdateForUser = function(e) { - return this.request("file_properties/templates/update_for_user", e, "user", "api", "rpc") - }, b.fileRequestsCount = function() { - return this.request("file_requests/count", null, "user", "api", "rpc") - }, b.fileRequestsCreate = function(e) { - return this.request("file_requests/create", e, "user", "api", "rpc") - }, b.fileRequestsDelete = function(e) { - return this.request("file_requests/delete", e, "user", "api", "rpc") - }, b.fileRequestsDeleteAllClosed = function() { - return this.request("file_requests/delete_all_closed", null, "user", "api", "rpc") - }, b.fileRequestsGet = function(e) { - return this.request("file_requests/get", e, "user", "api", "rpc") - }, b.fileRequestsListV2 = function(e) { - return this.request("file_requests/list_v2", e, "user", "api", "rpc") - }, b.fileRequestsList = function() { - return this.request("file_requests/list", null, "user", "api", "rpc") - }, b.fileRequestsListContinue = function(e) { - return this.request("file_requests/list/continue", e, "user", "api", "rpc") - }, b.fileRequestsUpdate = function(e) { - return this.request("file_requests/update", e, "user", "api", "rpc") - }, b.filesAlphaGetMetadata = function(e) { - return this.request("files/alpha/get_metadata", e, "user", "api", "rpc") - }, b.filesAlphaUpload = function(e) { - return this.request("files/alpha/upload", e, "user", "content", "upload") - }, b.filesCopyV2 = function(e) { - return this.request("files/copy_v2", e, "user", "api", "rpc") - }, b.filesCopy = function(e) { - return this.request("files/copy", e, "user", "api", "rpc") - }, b.filesCopyBatchV2 = function(e) { - return this.request("files/copy_batch_v2", e, "user", "api", "rpc") - }, b.filesCopyBatch = function(e) { - return this.request("files/copy_batch", e, "user", "api", "rpc") - }, b.filesCopyBatchCheckV2 = function(e) { - return this.request("files/copy_batch/check_v2", e, "user", "api", "rpc") - }, b.filesCopyBatchCheck = function(e) { - return this.request("files/copy_batch/check", e, "user", "api", "rpc") - }, b.filesCopyReferenceGet = function(e) { - return this.request("files/copy_reference/get", e, "user", "api", "rpc") - }, b.filesCopyReferenceSave = function(e) { - return this.request("files/copy_reference/save", e, "user", "api", "rpc") - }, b.filesCreateFolderV2 = function(e) { - return this.request("files/create_folder_v2", e, "user", "api", "rpc") - }, b.filesCreateFolder = function(e) { - return this.request("files/create_folder", e, "user", "api", "rpc") - }, b.filesCreateFolderBatch = function(e) { - return this.request("files/create_folder_batch", e, "user", "api", "rpc") - }, b.filesCreateFolderBatchCheck = function(e) { - return this.request("files/create_folder_batch/check", e, "user", "api", "rpc") - }, b.filesDeleteV2 = function(e) { - return this.request("files/delete_v2", e, "user", "api", "rpc") - }, b.filesDelete = function(e) { - return this.request("files/delete", e, "user", "api", "rpc") - }, b.filesDeleteBatch = function(e) { - return this.request("files/delete_batch", e, "user", "api", "rpc") - }, b.filesDeleteBatchCheck = function(e) { - return this.request("files/delete_batch/check", e, "user", "api", "rpc") - }, b.filesDownload = function(e) { - return this.request("files/download", e, "user", "content", "download") - }, b.filesDownloadZip = function(e) { - return this.request("files/download_zip", e, "user", "content", "download") - }, b.filesExport = function(e) { - return this.request("files/export", e, "user", "content", "download") - }, b.filesGetFileLockBatch = function(e) { - return this.request("files/get_file_lock_batch", e, "user", "api", "rpc") - }, b.filesGetMetadata = function(e) { - return this.request("files/get_metadata", e, "user", "api", "rpc") - }, b.filesGetPreview = function(e) { - return this.request("files/get_preview", e, "user", "content", "download") - }, b.filesGetTemporaryLink = function(e) { - return this.request("files/get_temporary_link", e, "user", "api", "rpc") - }, b.filesGetTemporaryUploadLink = function(e) { - return this.request("files/get_temporary_upload_link", e, "user", "api", "rpc") - }, b.filesGetThumbnail = function(e) { - return this.request("files/get_thumbnail", e, "user", "content", "download") - }, b.filesGetThumbnailV2 = function(e) { - return this.request("files/get_thumbnail_v2", e, "app, user", "content", "download") - }, b.filesGetThumbnailBatch = function(e) { - return this.request("files/get_thumbnail_batch", e, "user", "content", "rpc") - }, b.filesListFolder = function(e) { - return this.request("files/list_folder", e, "user", "api", "rpc") - }, b.filesListFolderContinue = function(e) { - return this.request("files/list_folder/continue", e, "user", "api", "rpc") - }, b.filesListFolderGetLatestCursor = function(e) { - return this.request("files/list_folder/get_latest_cursor", e, "user", "api", "rpc") - }, b.filesListFolderLongpoll = function(e) { - return this.request("files/list_folder/longpoll", e, "noauth", "notify", "rpc") - }, b.filesListRevisions = function(e) { - return this.request("files/list_revisions", e, "user", "api", "rpc") - }, b.filesLockFileBatch = function(e) { - return this.request("files/lock_file_batch", e, "user", "api", "rpc") - }, b.filesMoveV2 = function(e) { - return this.request("files/move_v2", e, "user", "api", "rpc") - }, b.filesMove = function(e) { - return this.request("files/move", e, "user", "api", "rpc") - }, b.filesMoveBatchV2 = function(e) { - return this.request("files/move_batch_v2", e, "user", "api", "rpc") - }, b.filesMoveBatch = function(e) { - return this.request("files/move_batch", e, "user", "api", "rpc") - }, b.filesMoveBatchCheckV2 = function(e) { - return this.request("files/move_batch/check_v2", e, "user", "api", "rpc") - }, b.filesMoveBatchCheck = function(e) { - return this.request("files/move_batch/check", e, "user", "api", "rpc") - }, b.filesPaperCreate = function(e) { - return this.request("files/paper/create", e, "user", "api", "upload") - }, b.filesPaperUpdate = function(e) { - return this.request("files/paper/update", e, "user", "api", "upload") - }, b.filesPermanentlyDelete = function(e) { - return this.request("files/permanently_delete", e, "user", "api", "rpc") - }, b.filesPropertiesAdd = function(e) { - return this.request("files/properties/add", e, "user", "api", "rpc") - }, b.filesPropertiesOverwrite = function(e) { - return this.request("files/properties/overwrite", e, "user", "api", "rpc") - }, b.filesPropertiesRemove = function(e) { - return this.request("files/properties/remove", e, "user", "api", "rpc") - }, b.filesPropertiesTemplateGet = function(e) { - return this.request("files/properties/template/get", e, "user", "api", "rpc") - }, b.filesPropertiesTemplateList = function() { - return this.request("files/properties/template/list", null, "user", "api", "rpc") - }, b.filesPropertiesUpdate = function(e) { - return this.request("files/properties/update", e, "user", "api", "rpc") - }, b.filesRestore = function(e) { - return this.request("files/restore", e, "user", "api", "rpc") - }, b.filesSaveUrl = function(e) { - return this.request("files/save_url", e, "user", "api", "rpc") - }, b.filesSaveUrlCheckJobStatus = function(e) { - return this.request("files/save_url/check_job_status", e, "user", "api", "rpc") - }, b.filesSearch = function(e) { - return this.request("files/search", e, "user", "api", "rpc") - }, b.filesSearchV2 = function(e) { - return this.request("files/search_v2", e, "user", "api", "rpc") - }, b.filesSearchContinueV2 = function(e) { - return this.request("files/search/continue_v2", e, "user", "api", "rpc") - }, b.filesUnlockFileBatch = function(e) { - return this.request("files/unlock_file_batch", e, "user", "api", "rpc") - }, b.filesUpload = function(e) { - return this.request("files/upload", e, "user", "content", "upload") - }, b.filesUploadSessionAppendV2 = function(e) { - return this.request("files/upload_session/append_v2", e, "user", "content", "upload") - }, b.filesUploadSessionAppend = function(e) { - return this.request("files/upload_session/append", e, "user", "content", "upload") - }, b.filesUploadSessionFinish = function(e) { - return this.request("files/upload_session/finish", e, "user", "content", "upload") - }, b.filesUploadSessionFinishBatch = function(e) { - return this.request("files/upload_session/finish_batch", e, "user", "api", "rpc") - }, b.filesUploadSessionFinishBatchCheck = function(e) { - return this.request("files/upload_session/finish_batch/check", e, "user", "api", "rpc") - }, b.filesUploadSessionStart = function(e) { - return this.request("files/upload_session/start", e, "user", "content", "upload") - }, b.paperDocsArchive = function(e) { - return this.request("paper/docs/archive", e, "user", "api", "rpc") - }, b.paperDocsCreate = function(e) { - return this.request("paper/docs/create", e, "user", "api", "upload") - }, b.paperDocsDownload = function(e) { - return this.request("paper/docs/download", e, "user", "api", "download") - }, b.paperDocsFolderUsersList = function(e) { - return this.request("paper/docs/folder_users/list", e, "user", "api", "rpc") - }, b.paperDocsFolderUsersListContinue = function(e) { - return this.request("paper/docs/folder_users/list/continue", e, "user", "api", "rpc") - }, b.paperDocsGetFolderInfo = function(e) { - return this.request("paper/docs/get_folder_info", e, "user", "api", "rpc") - }, b.paperDocsList = function(e) { - return this.request("paper/docs/list", e, "user", "api", "rpc") - }, b.paperDocsListContinue = function(e) { - return this.request("paper/docs/list/continue", e, "user", "api", "rpc") - }, b.paperDocsPermanentlyDelete = function(e) { - return this.request("paper/docs/permanently_delete", e, "user", "api", "rpc") - }, b.paperDocsSharingPolicyGet = function(e) { - return this.request("paper/docs/sharing_policy/get", e, "user", "api", "rpc") - }, b.paperDocsSharingPolicySet = function(e) { - return this.request("paper/docs/sharing_policy/set", e, "user", "api", "rpc") - }, b.paperDocsUpdate = function(e) { - return this.request("paper/docs/update", e, "user", "api", "upload") - }, b.paperDocsUsersAdd = function(e) { - return this.request("paper/docs/users/add", e, "user", "api", "rpc") - }, b.paperDocsUsersList = function(e) { - return this.request("paper/docs/users/list", e, "user", "api", "rpc") - }, b.paperDocsUsersListContinue = function(e) { - return this.request("paper/docs/users/list/continue", e, "user", "api", "rpc") - }, b.paperDocsUsersRemove = function(e) { - return this.request("paper/docs/users/remove", e, "user", "api", "rpc") - }, b.paperFoldersCreate = function(e) { - return this.request("paper/folders/create", e, "user", "api", "rpc") - }, b.sharingAddFileMember = function(e) { - return this.request("sharing/add_file_member", e, "user", "api", "rpc") - }, b.sharingAddFolderMember = function(e) { - return this.request("sharing/add_folder_member", e, "user", "api", "rpc") - }, b.sharingCheckJobStatus = function(e) { - return this.request("sharing/check_job_status", e, "user", "api", "rpc") - }, b.sharingCheckRemoveMemberJobStatus = function(e) { - return this.request("sharing/check_remove_member_job_status", e, "user", "api", "rpc") - }, b.sharingCheckShareJobStatus = function(e) { - return this.request("sharing/check_share_job_status", e, "user", "api", "rpc") - }, b.sharingCreateSharedLink = function(e) { - return this.request("sharing/create_shared_link", e, "user", "api", "rpc") - }, b.sharingCreateSharedLinkWithSettings = function(e) { - return this.request("sharing/create_shared_link_with_settings", e, "user", "api", "rpc") - }, b.sharingGetFileMetadata = function(e) { - return this.request("sharing/get_file_metadata", e, "user", "api", "rpc") - }, b.sharingGetFileMetadataBatch = function(e) { - return this.request("sharing/get_file_metadata/batch", e, "user", "api", "rpc") - }, b.sharingGetFolderMetadata = function(e) { - return this.request("sharing/get_folder_metadata", e, "user", "api", "rpc") - }, b.sharingGetSharedLinkFile = function(e) { - return this.request("sharing/get_shared_link_file", e, "user", "content", "download") - }, b.sharingGetSharedLinkMetadata = function(e) { - return this.request("sharing/get_shared_link_metadata", e, "user", "api", "rpc") - }, b.sharingGetSharedLinks = function(e) { - return this.request("sharing/get_shared_links", e, "user", "api", "rpc") - }, b.sharingListFileMembers = function(e) { - return this.request("sharing/list_file_members", e, "user", "api", "rpc") - }, b.sharingListFileMembersBatch = function(e) { - return this.request("sharing/list_file_members/batch", e, "user", "api", "rpc") - }, b.sharingListFileMembersContinue = function(e) { - return this.request("sharing/list_file_members/continue", e, "user", "api", "rpc") - }, b.sharingListFolderMembers = function(e) { - return this.request("sharing/list_folder_members", e, "user", "api", "rpc") - }, b.sharingListFolderMembersContinue = function(e) { - return this.request("sharing/list_folder_members/continue", e, "user", "api", "rpc") - }, b.sharingListFolders = function(e) { - return this.request("sharing/list_folders", e, "user", "api", "rpc") - }, b.sharingListFoldersContinue = function(e) { - return this.request("sharing/list_folders/continue", e, "user", "api", "rpc") - }, b.sharingListMountableFolders = function(e) { - return this.request("sharing/list_mountable_folders", e, "user", "api", "rpc") - }, b.sharingListMountableFoldersContinue = function(e) { - return this.request("sharing/list_mountable_folders/continue", e, "user", "api", "rpc") - }, b.sharingListReceivedFiles = function(e) { - return this.request("sharing/list_received_files", e, "user", "api", "rpc") - }, b.sharingListReceivedFilesContinue = function(e) { - return this.request("sharing/list_received_files/continue", e, "user", "api", "rpc") - }, b.sharingListSharedLinks = function(e) { - return this.request("sharing/list_shared_links", e, "user", "api", "rpc") - }, b.sharingModifySharedLinkSettings = function(e) { - return this.request("sharing/modify_shared_link_settings", e, "user", "api", "rpc") - }, b.sharingMountFolder = function(e) { - return this.request("sharing/mount_folder", e, "user", "api", "rpc") - }, b.sharingRelinquishFileMembership = function(e) { - return this.request("sharing/relinquish_file_membership", e, "user", "api", "rpc") - }, b.sharingRelinquishFolderMembership = function(e) { - return this.request("sharing/relinquish_folder_membership", e, "user", "api", "rpc") - }, b.sharingRemoveFileMember = function(e) { - return this.request("sharing/remove_file_member", e, "user", "api", "rpc") - }, b.sharingRemoveFileMember2 = function(e) { - return this.request("sharing/remove_file_member_2", e, "user", "api", "rpc") - }, b.sharingRemoveFolderMember = function(e) { - return this.request("sharing/remove_folder_member", e, "user", "api", "rpc") - }, b.sharingRevokeSharedLink = function(e) { - return this.request("sharing/revoke_shared_link", e, "user", "api", "rpc") - }, b.sharingSetAccessInheritance = function(e) { - return this.request("sharing/set_access_inheritance", e, "user", "api", "rpc") - }, b.sharingShareFolder = function(e) { - return this.request("sharing/share_folder", e, "user", "api", "rpc") - }, b.sharingTransferFolder = function(e) { - return this.request("sharing/transfer_folder", e, "user", "api", "rpc") - }, b.sharingUnmountFolder = function(e) { - return this.request("sharing/unmount_folder", e, "user", "api", "rpc") - }, b.sharingUnshareFile = function(e) { - return this.request("sharing/unshare_file", e, "user", "api", "rpc") - }, b.sharingUnshareFolder = function(e) { - return this.request("sharing/unshare_folder", e, "user", "api", "rpc") - }, b.sharingUpdateFileMember = function(e) { - return this.request("sharing/update_file_member", e, "user", "api", "rpc") - }, b.sharingUpdateFolderMember = function(e) { - return this.request("sharing/update_folder_member", e, "user", "api", "rpc") - }, b.sharingUpdateFolderPolicy = function(e) { - return this.request("sharing/update_folder_policy", e, "user", "api", "rpc") - }, b.teamDevicesListMemberDevices = function(e) { - return this.request("team/devices/list_member_devices", e, "team", "api", "rpc") - }, b.teamDevicesListMembersDevices = function(e) { - return this.request("team/devices/list_members_devices", e, "team", "api", "rpc") - }, b.teamDevicesListTeamDevices = function(e) { - return this.request("team/devices/list_team_devices", e, "team", "api", "rpc") - }, b.teamDevicesRevokeDeviceSession = function(e) { - return this.request("team/devices/revoke_device_session", e, "team", "api", "rpc") - }, b.teamDevicesRevokeDeviceSessionBatch = function(e) { - return this.request("team/devices/revoke_device_session_batch", e, "team", "api", "rpc") - }, b.teamFeaturesGetValues = function(e) { - return this.request("team/features/get_values", e, "team", "api", "rpc") - }, b.teamGetInfo = function() { - return this.request("team/get_info", null, "team", "api", "rpc") - }, b.teamGroupsCreate = function(e) { - return this.request("team/groups/create", e, "team", "api", "rpc") - }, b.teamGroupsDelete = function(e) { - return this.request("team/groups/delete", e, "team", "api", "rpc") - }, b.teamGroupsGetInfo = function(e) { - return this.request("team/groups/get_info", e, "team", "api", "rpc") - }, b.teamGroupsJobStatusGet = function(e) { - return this.request("team/groups/job_status/get", e, "team", "api", "rpc") - }, b.teamGroupsList = function(e) { - return this.request("team/groups/list", e, "team", "api", "rpc") - }, b.teamGroupsListContinue = function(e) { - return this.request("team/groups/list/continue", e, "team", "api", "rpc") - }, b.teamGroupsMembersAdd = function(e) { - return this.request("team/groups/members/add", e, "team", "api", "rpc") - }, b.teamGroupsMembersList = function(e) { - return this.request("team/groups/members/list", e, "team", "api", "rpc") - }, b.teamGroupsMembersListContinue = function(e) { - return this.request("team/groups/members/list/continue", e, "team", "api", "rpc") - }, b.teamGroupsMembersRemove = function(e) { - return this.request("team/groups/members/remove", e, "team", "api", "rpc") - }, b.teamGroupsMembersSetAccessType = function(e) { - return this.request("team/groups/members/set_access_type", e, "team", "api", "rpc") - }, b.teamGroupsUpdate = function(e) { - return this.request("team/groups/update", e, "team", "api", "rpc") - }, b.teamLegalHoldsCreatePolicy = function(e) { - return this.request("team/legal_holds/create_policy", e, "team", "api", "rpc") - }, b.teamLegalHoldsGetPolicy = function(e) { - return this.request("team/legal_holds/get_policy", e, "team", "api", "rpc") - }, b.teamLegalHoldsListHeldRevisions = function(e) { - return this.request("team/legal_holds/list_held_revisions", e, "team", "api", "rpc") - }, b.teamLegalHoldsListHeldRevisionsContinue = function(e) { - return this.request("team/legal_holds/list_held_revisions_continue", e, "team", "api", "rpc") - }, b.teamLegalHoldsListPolicies = function(e) { - return this.request("team/legal_holds/list_policies", e, "team", "api", "rpc") - }, b.teamLegalHoldsReleasePolicy = function(e) { - return this.request("team/legal_holds/release_policy", e, "team", "api", "rpc") - }, b.teamLegalHoldsUpdatePolicy = function(e) { - return this.request("team/legal_holds/update_policy", e, "team", "api", "rpc") - }, b.teamLinkedAppsListMemberLinkedApps = function(e) { - return this.request("team/linked_apps/list_member_linked_apps", e, "team", "api", "rpc") - }, b.teamLinkedAppsListMembersLinkedApps = function(e) { - return this.request("team/linked_apps/list_members_linked_apps", e, "team", "api", "rpc") - }, b.teamLinkedAppsListTeamLinkedApps = function(e) { - return this.request("team/linked_apps/list_team_linked_apps", e, "team", "api", "rpc") - }, b.teamLinkedAppsRevokeLinkedApp = function(e) { - return this.request("team/linked_apps/revoke_linked_app", e, "team", "api", "rpc") - }, b.teamLinkedAppsRevokeLinkedAppBatch = function(e) { - return this.request("team/linked_apps/revoke_linked_app_batch", e, "team", "api", "rpc") - }, b.teamMemberSpaceLimitsExcludedUsersAdd = function(e) { - return this.request("team/member_space_limits/excluded_users/add", e, "team", "api", "rpc") - }, b.teamMemberSpaceLimitsExcludedUsersList = function(e) { - return this.request("team/member_space_limits/excluded_users/list", e, "team", "api", "rpc") - }, b.teamMemberSpaceLimitsExcludedUsersListContinue = function(e) { - return this.request("team/member_space_limits/excluded_users/list/continue", e, "team", "api", "rpc") - }, b.teamMemberSpaceLimitsExcludedUsersRemove = function(e) { - return this.request("team/member_space_limits/excluded_users/remove", e, "team", "api", "rpc") - }, b.teamMemberSpaceLimitsGetCustomQuota = function(e) { - return this.request("team/member_space_limits/get_custom_quota", e, "team", "api", "rpc") - }, b.teamMemberSpaceLimitsRemoveCustomQuota = function(e) { - return this.request("team/member_space_limits/remove_custom_quota", e, "team", "api", "rpc") - }, b.teamMemberSpaceLimitsSetCustomQuota = function(e) { - return this.request("team/member_space_limits/set_custom_quota", e, "team", "api", "rpc") - }, b.teamMembersAddV2 = function(e) { - return this.request("team/members/add_v2", e, "team", "api", "rpc") - }, b.teamMembersAdd = function(e) { - return this.request("team/members/add", e, "team", "api", "rpc") - }, b.teamMembersAddJobStatusGetV2 = function(e) { - return this.request("team/members/add/job_status/get_v2", e, "team", "api", "rpc") - }, b.teamMembersAddJobStatusGet = function(e) { - return this.request("team/members/add/job_status/get", e, "team", "api", "rpc") - }, b.teamMembersDeleteProfilePhotoV2 = function(e) { - return this.request("team/members/delete_profile_photo_v2", e, "team", "api", "rpc") - }, b.teamMembersDeleteProfilePhoto = function(e) { - return this.request("team/members/delete_profile_photo", e, "team", "api", "rpc") - }, b.teamMembersGetAvailableTeamMemberRoles = function() { - return this.request("team/members/get_available_team_member_roles", null, "team", "api", "rpc") - }, b.teamMembersGetInfoV2 = function(e) { - return this.request("team/members/get_info_v2", e, "team", "api", "rpc") - }, b.teamMembersGetInfo = function(e) { - return this.request("team/members/get_info", e, "team", "api", "rpc") - }, b.teamMembersListV2 = function(e) { - return this.request("team/members/list_v2", e, "team", "api", "rpc") - }, b.teamMembersList = function(e) { - return this.request("team/members/list", e, "team", "api", "rpc") - }, b.teamMembersListContinueV2 = function(e) { - return this.request("team/members/list/continue_v2", e, "team", "api", "rpc") - }, b.teamMembersListContinue = function(e) { - return this.request("team/members/list/continue", e, "team", "api", "rpc") - }, b.teamMembersMoveFormerMemberFiles = function(e) { - return this.request("team/members/move_former_member_files", e, "team", "api", "rpc") - }, b.teamMembersMoveFormerMemberFilesJobStatusCheck = function(e) { - return this.request("team/members/move_former_member_files/job_status/check", e, "team", "api", "rpc") - }, b.teamMembersRecover = function(e) { - return this.request("team/members/recover", e, "team", "api", "rpc") - }, b.teamMembersRemove = function(e) { - return this.request("team/members/remove", e, "team", "api", "rpc") - }, b.teamMembersRemoveJobStatusGet = function(e) { - return this.request("team/members/remove/job_status/get", e, "team", "api", "rpc") - }, b.teamMembersSecondaryEmailsAdd = function(e) { - return this.request("team/members/secondary_emails/add", e, "team", "api", "rpc") - }, b.teamMembersSecondaryEmailsDelete = function(e) { - return this.request("team/members/secondary_emails/delete", e, "team", "api", "rpc") - }, b.teamMembersSecondaryEmailsResendVerificationEmails = function(e) { - return this.request("team/members/secondary_emails/resend_verification_emails", e, "team", "api", "rpc") - }, b.teamMembersSendWelcomeEmail = function(e) { - return this.request("team/members/send_welcome_email", e, "team", "api", "rpc") - }, b.teamMembersSetAdminPermissionsV2 = function(e) { - return this.request("team/members/set_admin_permissions_v2", e, "team", "api", "rpc") - }, b.teamMembersSetAdminPermissions = function(e) { - return this.request("team/members/set_admin_permissions", e, "team", "api", "rpc") - }, b.teamMembersSetProfileV2 = function(e) { - return this.request("team/members/set_profile_v2", e, "team", "api", "rpc") - }, b.teamMembersSetProfile = function(e) { - return this.request("team/members/set_profile", e, "team", "api", "rpc") - }, b.teamMembersSetProfilePhotoV2 = function(e) { - return this.request("team/members/set_profile_photo_v2", e, "team", "api", "rpc") - }, b.teamMembersSetProfilePhoto = function(e) { - return this.request("team/members/set_profile_photo", e, "team", "api", "rpc") - }, b.teamMembersSuspend = function(e) { - return this.request("team/members/suspend", e, "team", "api", "rpc") - }, b.teamMembersUnsuspend = function(e) { - return this.request("team/members/unsuspend", e, "team", "api", "rpc") - }, b.teamNamespacesList = function(e) { - return this.request("team/namespaces/list", e, "team", "api", "rpc") - }, b.teamNamespacesListContinue = function(e) { - return this.request("team/namespaces/list/continue", e, "team", "api", "rpc") - }, b.teamPropertiesTemplateAdd = function(e) { - return this.request("team/properties/template/add", e, "team", "api", "rpc") - }, b.teamPropertiesTemplateGet = function(e) { - return this.request("team/properties/template/get", e, "team", "api", "rpc") - }, b.teamPropertiesTemplateList = function() { - return this.request("team/properties/template/list", null, "team", "api", "rpc") - }, b.teamPropertiesTemplateUpdate = function(e) { - return this.request("team/properties/template/update", e, "team", "api", "rpc") - }, b.teamReportsGetActivity = function(e) { - return this.request("team/reports/get_activity", e, "team", "api", "rpc") - }, b.teamReportsGetDevices = function(e) { - return this.request("team/reports/get_devices", e, "team", "api", "rpc") - }, b.teamReportsGetMembership = function(e) { - return this.request("team/reports/get_membership", e, "team", "api", "rpc") - }, b.teamReportsGetStorage = function(e) { - return this.request("team/reports/get_storage", e, "team", "api", "rpc") - }, b.teamTeamFolderActivate = function(e) { - return this.request("team/team_folder/activate", e, "team", "api", "rpc") - }, b.teamTeamFolderArchive = function(e) { - return this.request("team/team_folder/archive", e, "team", "api", "rpc") - }, b.teamTeamFolderArchiveCheck = function(e) { - return this.request("team/team_folder/archive/check", e, "team", "api", "rpc") - }, b.teamTeamFolderCreate = function(e) { - return this.request("team/team_folder/create", e, "team", "api", "rpc") - }, b.teamTeamFolderGetInfo = function(e) { - return this.request("team/team_folder/get_info", e, "team", "api", "rpc") - }, b.teamTeamFolderList = function(e) { - return this.request("team/team_folder/list", e, "team", "api", "rpc") - }, b.teamTeamFolderListContinue = function(e) { - return this.request("team/team_folder/list/continue", e, "team", "api", "rpc") - }, b.teamTeamFolderPermanentlyDelete = function(e) { - return this.request("team/team_folder/permanently_delete", e, "team", "api", "rpc") - }, b.teamTeamFolderRename = function(e) { - return this.request("team/team_folder/rename", e, "team", "api", "rpc") - }, b.teamTeamFolderUpdateSyncSettings = function(e) { - return this.request("team/team_folder/update_sync_settings", e, "team", "api", "rpc") - }, b.teamTokenGetAuthenticatedAdmin = function() { - return this.request("team/token/get_authenticated_admin", null, "team", "api", "rpc") - }, b.teamLogGetEvents = function(e) { - return this.request("team_log/get_events", e, "team", "api", "rpc") - }, b.teamLogGetEventsContinue = function(e) { - return this.request("team_log/get_events/continue", e, "team", "api", "rpc") - }, b.usersFeaturesGetValues = function(e) { - return this.request("users/features/get_values", e, "user", "api", "rpc") - }, b.usersGetAccount = function(e) { - return this.request("users/get_account", e, "user", "api", "rpc") - }, b.usersGetAccountBatch = function(e) { - return this.request("users/get_account_batch", e, "user", "api", "rpc") - }, b.usersGetCurrentAccount = function() { - return this.request("users/get_current_account", null, "user", "api", "rpc") - }, b.usersGetSpaceUsage = function() { - return this.request("users/get_space_usage", null, "user", "api", "rpc") - }; - var v = function(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : m, - n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "."; - return t !== m && void 0 !== g[e] && (e = g[e], n = "-"), "https://".concat(e).concat(n).concat(t, "/2/") - }, - k = function() { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : f; - return e !== f && (e = "meta-".concat(e)), "https://".concat(e, "/oauth2/authorize") - }, - _ = function() { - var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : m, - t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ".", - n = "api"; - return e !== m && (n = g[n], t = "-"), "https://".concat(n).concat(t).concat(e, "/oauth2/token") - }; + function i(e, t, n, r, i, o, s) { + return a(t & r | n & ~r, e, t, i, o, s) + } - function w(e) { - return JSON.stringify(e).replace(/[\u007f-\uffff]/g, y) - } + function o(e, t, n, r, i, o, s) { + return a(t ^ n ^ r, e, t, i, o, s) + } - function S(e) { - return new Date(Date.now() + 1e3 * e) - } + function s(e, t, n, r, i, o, s) { + return a(n ^ (t | ~r), e, t, i, o, s) + } - function E() { - return "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope || "undefined" != typeof window - } + function l(e, t) { + var a, l, c, u, d; + e[t >> 5] |= 128 << t % 32, e[14 + (t + 64 >>> 9 << 4)] = t; + var p = 1732584193, + h = -271733879, + m = -1732584194, + f = 271733878; + for (a = 0; a < e.length; a += 16) l = p, c = h, u = m, d = f, p = r(p, h, m, f, e[a], 7, -680876936), f = r(f, p, h, m, e[a + 1], 12, -389564586), m = r(m, f, p, h, e[a + 2], 17, 606105819), h = r(h, m, f, p, e[a + 3], 22, -1044525330), p = r(p, h, m, f, e[a + 4], 7, -176418897), f = r(f, p, h, m, e[a + 5], 12, 1200080426), m = r(m, f, p, h, e[a + 6], 17, -1473231341), h = r(h, m, f, p, e[a + 7], 22, -45705983), p = r(p, h, m, f, e[a + 8], 7, 1770035416), f = r(f, p, h, m, e[a + 9], 12, -1958414417), m = r(m, f, p, h, e[a + 10], 17, -42063), h = r(h, m, f, p, e[a + 11], 22, -1990404162), p = r(p, h, m, f, e[a + 12], 7, 1804603682), f = r(f, p, h, m, e[a + 13], 12, -40341101), m = r(m, f, p, h, e[a + 14], 17, -1502002290), p = i(p, h = r(h, m, f, p, e[a + 15], 22, 1236535329), m, f, e[a + 1], 5, -165796510), f = i(f, p, h, m, e[a + 6], 9, -1069501632), m = i(m, f, p, h, e[a + 11], 14, 643717713), h = i(h, m, f, p, e[a], 20, -373897302), p = i(p, h, m, f, e[a + 5], 5, -701558691), f = i(f, p, h, m, e[a + 10], 9, 38016083), m = i(m, f, p, h, e[a + 15], 14, -660478335), h = i(h, m, f, p, e[a + 4], 20, -405537848), p = i(p, h, m, f, e[a + 9], 5, 568446438), f = i(f, p, h, m, e[a + 14], 9, -1019803690), m = i(m, f, p, h, e[a + 3], 14, -187363961), h = i(h, m, f, p, e[a + 8], 20, 1163531501), p = i(p, h, m, f, e[a + 13], 5, -1444681467), f = i(f, p, h, m, e[a + 2], 9, -51403784), m = i(m, f, p, h, e[a + 7], 14, 1735328473), p = o(p, h = i(h, m, f, p, e[a + 12], 20, -1926607734), m, f, e[a + 5], 4, -378558), f = o(f, p, h, m, e[a + 8], 11, -2022574463), m = o(m, f, p, h, e[a + 11], 16, 1839030562), h = o(h, m, f, p, e[a + 14], 23, -35309556), p = o(p, h, m, f, e[a + 1], 4, -1530992060), f = o(f, p, h, m, e[a + 4], 11, 1272893353), m = o(m, f, p, h, e[a + 7], 16, -155497632), h = o(h, m, f, p, e[a + 10], 23, -1094730640), p = o(p, h, m, f, e[a + 13], 4, 681279174), f = o(f, p, h, m, e[a], 11, -358537222), m = o(m, f, p, h, e[a + 3], 16, -722521979), h = o(h, m, f, p, e[a + 6], 23, 76029189), p = o(p, h, m, f, e[a + 9], 4, -640364487), f = o(f, p, h, m, e[a + 12], 11, -421815835), m = o(m, f, p, h, e[a + 15], 16, 530742520), p = s(p, h = o(h, m, f, p, e[a + 2], 23, -995338651), m, f, e[a], 6, -198630844), f = s(f, p, h, m, e[a + 7], 10, 1126891415), m = s(m, f, p, h, e[a + 14], 15, -1416354905), h = s(h, m, f, p, e[a + 5], 21, -57434055), p = s(p, h, m, f, e[a + 12], 6, 1700485571), f = s(f, p, h, m, e[a + 3], 10, -1894986606), m = s(m, f, p, h, e[a + 10], 15, -1051523), h = s(h, m, f, p, e[a + 1], 21, -2054922799), p = s(p, h, m, f, e[a + 8], 6, 1873313359), f = s(f, p, h, m, e[a + 15], 10, -30611744), m = s(m, f, p, h, e[a + 6], 15, -1560198380), h = s(h, m, f, p, e[a + 13], 21, 1309151649), p = s(p, h, m, f, e[a + 4], 6, -145523070), f = s(f, p, h, m, e[a + 11], 10, -1120210379), m = s(m, f, p, h, e[a + 2], 15, 718787259), h = s(h, m, f, p, e[a + 9], 21, -343485551), p = n(p, l), h = n(h, c), m = n(m, u), f = n(f, d); + return [p, h, m, f] + } - function x() { - return "undefined" != typeof window - } + function c(e) { + var t, n = "", + a = 32 * e.length; + for (t = 0; t < a; t += 8) n += String.fromCharCode(e[t >> 5] >>> t % 32 & 255); + return n + } - function C(e) { - return e.toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "") - } - var A, j, P, D = function(e) { - ! function(e, t) { - if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); - e.prototype = Object.create(t && t.prototype, { - constructor: { - value: e, - writable: !0, - configurable: !0 - } - }), t && o(e, t) - }(l, e); - var n, a, r = (n = l, a = s(), function() { - var e, t = i(n); - if (a) { - var r = i(this).constructor; - e = Reflect.construct(t, arguments, r) - } else e = t.apply(this, arguments); - return u(this, e) - }); + function u(e) { + var t, n = []; + for (n[(e.length >> 2) - 1] = void 0, t = 0; t < n.length; t += 1) n[t] = 0; + var a = 8 * e.length; + for (t = 0; t < a; t += 8) n[t >> 5] |= (255 & e.charCodeAt(t / 8)) << t % 32; + return n + } - function l(e, n, a) { - var i; - return t(this, l), (i = r.call(this, "Response failed with a ".concat(e, " code"))).name = "DropboxResponseError", i.status = e, i.headers = n, i.error = a, i + function d(e) { + var t, n, a = "0123456789abcdef", + r = ""; + for (n = 0; n < e.length; n += 1) t = e.charCodeAt(n), r += a.charAt(t >>> 4 & 15) + a.charAt(15 & t); + return r } - return l - }(c(Error)), - T = function e(n, a, r) { - t(this, e), this.status = n, this.headers = a, this.result = r - }; - function O(e) { - return e.text().then((function(t) { - var n; - try { - n = JSON.parse(t) - } catch (e) { - n = t + function p(e) { + return unescape(encodeURIComponent(e)) } - throw new D(e.status, e.headers, n) - })) - } - function M(e) { - return e.ok ? e.text().then((function(t) { - var n; - try { - n = JSON.parse(t) - } catch (e) { - n = t + function h(e) { + return function(e) { + return c(l(u(e), 8 * e.length)) + }(p(e)) } - return new T(e.status, e.headers, n) - })) : O(e) - } - A = x() ? window.fetch.bind(window) : n(3155), j = x() ? window.crypto || window.msCrypto : n(8090), P = "undefined" == typeof TextEncoder ? n(8751).TextEncoder : TextEncoder; - var I, N = ["legacy", "offline", "online"], - z = ["code", "token"], - R = ["none", "user", "team"], - L = function() { - function e(n) { - t(this, e), this.fetch = (n = n || {}).fetch || A, this.accessToken = n.accessToken, this.accessTokenExpiresAt = n.accessTokenExpiresAt, this.refreshToken = n.refreshToken, this.clientId = n.clientId, this.clientSecret = n.clientSecret, this.domain = n.domain, this.domainDelimiter = n.domainDelimiter + + function m(e, t) { + return function(e, t) { + var n, a, r = u(e), + i = [], + o = []; + for (i[15] = o[15] = void 0, r.length > 16 && (r = l(r, 8 * e.length)), n = 0; n < 16; n += 1) i[n] = 909522486 ^ r[n], o[n] = 1549556828 ^ r[n]; + return a = l(i.concat(u(t)), 512 + 8 * t.length), c(l(o.concat(a), 640)) + }(p(e), p(t)) } - return r(e, [{ - key: "setAccessToken", - value: function(e) { - this.accessToken = e - } - }, { - key: "getAccessToken", - value: function() { - return this.accessToken - } - }, { - key: "setClientId", - value: function(e) { - this.clientId = e - } - }, { - key: "getClientId", - value: function() { - return this.clientId - } - }, { - key: "setClientSecret", - value: function(e) { - this.clientSecret = e - } - }, { - key: "getClientSecret", - value: function() { - return this.clientSecret - } - }, { - key: "getRefreshToken", - value: function() { - return this.refreshToken - } - }, { - key: "setRefreshToken", - value: function(e) { - this.refreshToken = e - } - }, { - key: "getAccessTokenExpiresAt", - value: function() { - return this.accessTokenExpiresAt - } - }, { - key: "setAccessTokenExpiresAt", - value: function(e) { - this.accessTokenExpiresAt = e - } - }, { - key: "setCodeVerifier", - value: function(e) { - this.codeVerifier = e - } - }, { - key: "getCodeVerifier", - value: function() { - return this.codeVerifier - } - }, { - key: "generateCodeChallenge", - value: function() { - var e, t = this, - n = (new P).encode(this.codeVerifier); - if (x()) return j.subtle.digest("SHA-256", n).then((function(n) { - var a = btoa(String.fromCharCode.apply(null, new Uint8Array(n))); - e = C(a).substr(0, 128), t.codeChallenge = e - })); - var a = j.createHash("sha256").update(n).digest(); - return e = C(a), this.codeChallenge = e, Promise.resolve() - } - }, { - key: "generatePKCECodes", - value: function() { - var e; - if (x()) { - var t = new Uint8Array(128), - n = j.getRandomValues(t); - e = C(btoa(n)).substr(0, 128) - } else e = C(j.randomBytes(128)).substr(0, 128); - return this.codeVerifier = e, this.generateCodeChallenge() - } - }, { - key: "getAuthenticationUrl", - value: function(e, t) { - var n, a = this, - r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "token", - i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, - o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : null, - s = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : "none", - l = arguments.length > 6 && void 0 !== arguments[6] && arguments[6], - c = this.getClientId(), - u = k(this.domain); - if (!c) throw Error("A client id is required. You can set the client id using .setClientId()."); - if ("code" !== r && !e) throw Error("A redirect uri is required."); - if (!z.includes(r)) throw Error("Authorization type must be code or token"); - if (i && !N.includes(i)) throw Error("Token Access Type must be legacy, offline, or online"); - if (o && !(o instanceof Array)) throw Error("Scope must be an array of strings"); - if (!R.includes(s)) throw Error("includeGrantedScopes must be none, user, or team"); - return n = "code" === r ? "".concat(u, "?response_type=code&client_id=").concat(c) : "".concat(u, "?response_type=token&client_id=").concat(c), e && (n += "&redirect_uri=".concat(e)), t && (n += "&state=".concat(t)), i && (n += "&token_access_type=".concat(i)), o && (n += "&scope=".concat(o.join(" "))), "none" !== s && (n += "&include_granted_scopes=".concat(s)), l ? this.generatePKCECodes().then((function() { - return n += "&code_challenge_method=S256", n += "&code_challenge=".concat(a.codeChallenge) - })) : Promise.resolve(n) - } - }, { - key: "getAccessTokenFromCode", - value: function(e, t) { - var n = this.getClientId(), - a = this.getClientSecret(); - if (!n) throw Error("A client id is required. You can set the client id using .setClientId()."); - var r = _(this.domain, this.domainDelimiter); - if (r += "?grant_type=authorization_code", r += "&code=".concat(t), r += "&client_id=".concat(n), a) r += "&client_secret=".concat(a); - else { - if (!this.codeVerifier) throw Error("You must use PKCE when generating the authorization URL to not include a client secret"); - r += "&code_verifier=".concat(this.codeVerifier) - } - return e && (r += "&redirect_uri=".concat(e)), this.fetch(r, { - method: "POST", - headers: { - "Content-Type": "application/x-www-form-urlencoded" - } - }).then((function(e) { - return M(e) - })) - } - }, { - key: "checkAndRefreshAccessToken", - value: function() { - var e = this.getRefreshToken() && this.getClientId(), - t = !this.getAccessTokenExpiresAt() || new Date(Date.now() + 3e5) >= this.getAccessTokenExpiresAt(), - n = !this.getAccessToken(); - return (t || n) && e ? this.refreshAccessToken() : Promise.resolve() - } - }, { - key: "refreshAccessToken", - value: function() { - var e = this, - t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, - n = _(this.domain, this.domainDelimiter), - a = this.getClientId(), - r = this.getClientSecret(); - if (!a) throw Error("A client id is required. You can set the client id using .setClientId()."); - if (t && !(t instanceof Array)) throw Error("Scope must be an array of strings"); - var i = { - "Content-Type": "application/json" - }; - n += "?grant_type=refresh_token&refresh_token=".concat(this.getRefreshToken()), n += "&client_id=".concat(a), r && (n += "&client_secret=".concat(r)), t && (n += "&scope=".concat(t.join(" "))); - var o = { - method: "POST" - }; - return o.headers = i, this.fetch(n, o).then((function(e) { - return M(e) - })).then((function(t) { - e.setAccessToken(t.result.access_token), e.setAccessTokenExpiresAt(S(t.result.expires_in)) - })) - } - }]), e - }(); - I = "undefined" != typeof window ? window.fetch.bind(window) : n(3155); - var F = "undefined" == typeof btoa ? function(e) { - return Buffer.from(e).toString("base64") - } : btoa; - e.Dropbox = function() { - function e(n) { - t(this, e), this.auth = (n = n || {}).auth ? n.auth : new L(n), this.fetch = n.fetch || I, this.selectUser = n.selectUser, this.selectAdmin = n.selectAdmin, this.pathRoot = n.pathRoot, this.domain = n.domain, this.domainDelimiter = n.domainDelimiter, Object.assign(this, b) + + function f(e, t, n) { + return t ? n ? m(t, e) : d(m(t, e)) : n ? h(e) : d(h(e)) + } + e.exports ? e.exports = f : t.md5 = f + }(ue) + })), + he = Object.getOwnPropertySymbols, + me = Object.prototype.hasOwnProperty, + fe = Object.prototype.propertyIsEnumerable; + + function ge(e) { + if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined"); + return Object(e) + } + var be = function() { + try { + if (!Object.assign) return !1; + var e = new String("abc"); + if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) return !1; + for (var t = {}, n = 0; n < 10; n++) t["_" + String.fromCharCode(n)] = n; + if ("0123456789" !== Object.getOwnPropertyNames(t).map((function(e) { + return t[e] + })).join("")) return !1; + var a = {}; + return "abcdefghijklmnopqrst".split("").forEach((function(e) { + a[e] = e + })), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, a)).join("") + } catch (e) { + return !1 } - return r(e, [{ - key: "request", - value: function(e, t, n, a, r) { - if (n.split(",").length > 1) { - var i = n.replace(" ", "").split(","); - i.includes(p) && this.auth.getAccessToken() ? n = p : i.includes(h) && this.auth.getAccessToken() ? n = h : i.includes(d) && (n = d) - } - switch (r) { - case "rpc": - return this.rpcRequest(e, t, n, a); - case "download": - return this.downloadRequest(e, t, n, a); - case "upload": - return this.uploadRequest(e, t, n, a); - default: - throw Error("Invalid request style: ".concat(r)) - } + }() ? Object.assign : function(e, t) { + for (var n, a, r = ge(e), i = 1; i < arguments.length; i++) { + for (var o in n = Object(arguments[i])) me.call(n, o) && (r[o] = n[o]); + if (he) { + a = he(n); + for (var s = 0; s < a.length; s++) fe.call(n, a[s]) && (r[a[s]] = n[a[s]]) } - }, { - key: "rpcRequest", - value: function(e, t, n, a) { - var r = this; - return this.auth.checkAndRefreshAccessToken().then((function() { - var e, a = { - method: "POST", - body: t ? JSON.stringify(t) : null, - headers: {} + } + return r + }, + ye = "%[a-f0-9]{2}"; + new RegExp(ye, "gi"), new RegExp("(" + ye + ")+", "gi"); + + function ve(e, t) { + return t.encode ? t.strict ? encodeURIComponent(e).replace(/[!'()*]/g, (function(e) { + return "%" + e.charCodeAt(0).toString(16).toUpperCase() + })) : encodeURIComponent(e) : e + } + var ke = function(e, t) { + !1 === (t = be({ + encode: !0, + strict: !0, + arrayFormat: "none" + }, t)).sort && (t.sort = function() {}); + var n = function(e) { + switch (e.arrayFormat) { + case "index": + return function(t, n, a) { + return null === n ? [ve(t, e), "[", a, "]"].join("") : [ve(t, e), "[", ve(a, e), "]=", ve(n, e)].join("") }; - switch (t && (a.headers["Content-Type"] = "application/json"), n) { - case d: - if (!r.auth.clientId || !r.auth.clientSecret) throw Error("A client id and secret is required for this function"); - e = F("".concat(r.auth.clientId, ":").concat(r.auth.clientSecret)), a.headers.Authorization = "Basic ".concat(e); - break; - case h: - case p: - a.headers.Authorization = "Bearer ".concat(r.auth.getAccessToken()); - break; - case "noauth": - break; - default: - throw Error("Unhandled auth type: ".concat(n)) + case "bracket": + return function(t, n) { + return null === n ? ve(t, e) : [ve(t, e), "[]=", ve(n, e)].join("") + }; + default: + return function(t, n) { + return null === n ? ve(t, e) : [ve(t, e), "=", ve(n, e)].join("") } - return r.setCommonHeaders(a), a - })).then((function(t) { - return r.fetch(v(a, r.domain, r.domainDelimiter) + e, t) - })).then((function(e) { - return M(e) - })) } - }, { - key: "downloadRequest", - value: function(e, t, n, a) { - var r = this; - return this.auth.checkAndRefreshAccessToken().then((function() { - if (n !== p) throw Error("Unexpected auth type: ".concat(n)); - var e = { - method: "POST", - headers: { - Authorization: "Bearer ".concat(r.auth.getAccessToken()), - "Dropbox-API-Arg": w(t) + }(t); + return e ? Object.keys(e).sort(t.sort).map((function(a) { + var r = e[a]; + if (void 0 === r) return ""; + if (null === r) return ve(a, t); + if (Array.isArray(r)) { + var i = []; + return r.slice().forEach((function(e) { + void 0 !== e && i.push(n(a, e, i.length)) + })), i.join("&") + } + return ve(a, t) + "=" + ve(r, t) + })).filter((function(e) { + return e.length > 0 + })).join("&") : "" + }, + _e = function(e, t, n) { + this.url = e, this.data = t || {}, this.headers = n + }; + _e.prototype.send = function(e) { + if (window.XDomainRequest) { + var t = new window.XDomainRequest; + t.open("POST", this.url, !0), t.onload = function() { + e(200, t.responseText) + }, t.onerror = function() { + "Request Entity Too Large" === t.responseText ? e(413, t.responseText) : e(500, t.responseText) + }, t.ontimeout = function() {}, t.onprogress = function() {}, t.send(ke(this.data)) + } else { + var n = new XMLHttpRequest; + n.open("POST", this.url, !0), n.onreadystatechange = function() { + 4 === n.readyState && e(n.status, n.responseText) + }, + function(e, t) { + for (var n in t) e.setRequestHeader(n, t[n]) + }(n, this.headers), n.send(ke(this.data)) + } + }; + var we = function() { + this._price = null, this._productId = null, this._quantity = 1, this._revenueType = null, this._properties = null + }; + we.prototype.setProductId = function(e) { + return "string" !== _(e) ? I.error("Unsupported type for productId: " + _(e) + ", expecting string") : O(e) ? I.error("Invalid empty productId") : this._productId = e, this + }, we.prototype.setQuantity = function(e) { + return "number" !== _(e) ? I.error("Unsupported type for quantity: " + _(e) + ", expecting number") : this._quantity = parseInt(e), this + }, we.prototype.setPrice = function(e) { + return "number" !== _(e) ? I.error("Unsupported type for price: " + _(e) + ", expecting number") : this._price = e, this + }, we.prototype.setRevenueType = function(e) { + return "string" !== _(e) ? I.error("Unsupported type for revenueType: " + _(e) + ", expecting string") : this._revenueType = e, this + }, we.prototype.setEventProperties = function(e) { + return "object" !== _(e) ? I.error("Unsupported type for eventProperties: " + _(e) + ", expecting object") : this._properties = F(e), this + }, we.prototype._isValidRevenue = function() { + return "number" === _(this._price) || (I.error("Invalid revenue, need to set price field"), !1) + }, we.prototype._toJSONObject = function() { + var e = "object" === _(this._properties) ? this._properties : {}; + return null !== this._productId && (e[g.REVENUE_PRODUCT_ID] = this._productId), null !== this._quantity && (e[g.REVENUE_QUANTITY] = this._quantity), null !== this._price && (e[g.REVENUE_PRICE] = this._price), null !== this._revenueType && (e[g.REVENUE_REVENUE_TYPE] = this._revenueType), e + }; + var Se = de((function(e, t) { + ! function(n, a) { + var r = "function", + i = "object", + o = "model", + s = "name", + l = "type", + c = "vendor", + u = "version", + d = "architecture", + p = "console", + h = "mobile", + m = "tablet", + f = "smarttv", + g = "wearable", + b = { + extend: function(e, t) { + var n = {}; + for (var a in e) t[a] && t[a].length % 2 == 0 ? n[a] = t[a].concat(e[a]) : n[a] = e[a]; + return n + }, + has: function(e, t) { + return "string" == typeof e && -1 !== t.toLowerCase().indexOf(e.toLowerCase()) + }, + lowerize: function(e) { + return e.toLowerCase() + }, + major: function(e) { + return "string" == typeof e ? e.replace(/[^\d\.]/g, "").split(".")[0] : a + }, + trim: function(e) { + return e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, "") + } + }, + y = { + rgx: function(e, t) { + for (var n, o, s, l, c, u, d = 0; d < t.length && !c;) { + var p = t[d], + h = t[d + 1]; + for (n = o = 0; n < p.length && !c;) + if (c = p[n++].exec(e)) + for (s = 0; s < h.length; s++) u = c[++o], typeof(l = h[s]) === i && l.length > 0 ? 2 == l.length ? typeof l[1] == r ? this[l[0]] = l[1].call(this, u) : this[l[0]] = l[1] : 3 == l.length ? typeof l[1] !== r || l[1].exec && l[1].test ? this[l[0]] = u ? u.replace(l[1], l[2]) : a : this[l[0]] = u ? l[1].call(this, u, l[2]) : a : 4 == l.length && (this[l[0]] = u ? l[3].call(this, u.replace(l[1], l[2])) : a) : this[l] = u || a; + d += 2 } - }; - return r.setCommonHeaders(e), e - })).then((function(t) { - return r.fetch(v(a, r.domain, r.domainDelimiter) + e, t) - })).then((function(e) { - return function(e) { - return e.ok ? new Promise((function(t) { - E() ? e.blob().then((function(e) { - return t(e) - })) : e.buffer().then((function(e) { - return t(e) - })) - })).then((function(t) { - var n = JSON.parse(e.headers.get("dropbox-api-result")); - return E() ? n.fileBlob = t : n.fileBinary = t, new T(e.status, e.headers, n) - })) : O(e) - }(e) - })) - } - }, { - key: "uploadRequest", - value: function(e, t, n, a) { - var r = this; - return this.auth.checkAndRefreshAccessToken().then((function() { - if (n !== p) throw Error("Unexpected auth type: ".concat(n)); - var e = t.contents; - delete t.contents; - var a = { - body: e, - method: "POST", - headers: { - Authorization: "Bearer ".concat(r.auth.getAccessToken()), - "Content-Type": "application/octet-stream", - "Dropbox-API-Arg": w(t) + }, + str: function(e, t) { + for (var n in t) + if (typeof t[n] === i && t[n].length > 0) { + for (var r = 0; r < t[n].length; r++) + if (b.has(t[n][r], e)) return "?" === n ? a : n + } else if (b.has(t[n], e)) return "?" === n ? a : n; + return e + } + }, + v = { + browser: { + oldsafari: { + version: { + "1.0": "/8", + 1.2: "/1", + 1.3: "/3", + "2.0": "/412", + "2.0.2": "/416", + "2.0.3": "/417", + "2.0.4": "/419", + "?": "/" + } } - }; - return r.setCommonHeaders(a), a - })).then((function(t) { - return r.fetch(v(a, r.domain, r.domainDelimiter) + e, t) - })).then((function(e) { - return M(e) - })) - } - }, { - key: "setCommonHeaders", - value: function(e) { - this.selectUser && (e.headers["Dropbox-API-Select-User"] = this.selectUser), this.selectAdmin && (e.headers["Dropbox-API-Select-Admin"] = this.selectAdmin), this.pathRoot && (e.headers["Dropbox-API-Path-Root"] = this.pathRoot) - } - }]), e - }(), e.DropboxAuth = L, e.DropboxResponse = T, e.DropboxResponseError = D, Object.defineProperty(e, "__esModule", { - value: !0 - }) - }(t) - }, 3155: (e, t) => { - "use strict"; - var n = function() { - if ("undefined" != typeof self) return self; - if ("undefined" != typeof window) return window; - if (void 0 !== n) return n; - throw new Error("unable to locate global object") - }(); - e.exports = t = n.fetch, n.fetch && (t.default = n.fetch.bind(n)), t.Headers = n.Headers, t.Request = n.Request, t.Response = n.Response - }, 1908: e => { - "use strict"; - e.exports = function() { - return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]\uFE0F|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F/g - } - }, 4305: function(e, t, n) { - var a = n(554); - e.exports = function() { - "use strict"; - - function e(e) { - return "function" == typeof e - } - var t = Array.isArray ? Array.isArray : function(e) { - return "[object Array]" === Object.prototype.toString.call(e) - }, - r = 0, - i = void 0, - o = void 0, - s = function(e, t) { - m[r] = e, m[r + 1] = t, 2 === (r += 2) && (o ? o(f) : k()) - }; - var l = "undefined" != typeof window ? window : void 0, - c = l || {}, - u = c.MutationObserver || c.WebKitMutationObserver, - d = "undefined" == typeof self && void 0 !== a && "[object process]" === {}.toString.call(a), - p = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel; - - function h() { - var e = setTimeout; - return function() { - return e(f, 1) + }, + device: { + amazon: { + model: { + "Fire Phone": ["SD", "KF"] + } + }, + sprint: { + model: { + "Evo Shift 4G": "7373KT" + }, + vendor: { + HTC: "APA", + Sprint: "Sprint" + } + } + }, + os: { + windows: { + version: { + ME: "4.90", + "NT 3.11": "NT3.51", + "NT 4.0": "NT4.0", + 2e3: "NT 5.0", + XP: ["NT 5.1", "NT 5.2"], + Vista: "NT 6.0", + 7: "NT 6.1", + 8: "NT 6.2", + 8.1: "NT 6.3", + 10: ["NT 6.4", "NT 10.0"], + RT: "ARM" + } + } + } + }, + k = { + browser: [ + [/(opera\smini)\/([\w\.-]+)/i, /(opera\s[mobiletab]+).+version\/([\w\.-]+)/i, /(opera).+version\/([\w\.]+)/i, /(opera)[\/\s]+([\w\.]+)/i], + [s, u], + [/(opios)[\/\s]+([\w\.]+)/i], + [ + [s, "Opera Mini"], u + ], + [/\s(opr)\/([\w\.]+)/i], + [ + [s, "Opera"], u + ], + [/(kindle)\/([\w\.]+)/i, /(lunascape|maxthon|netfront|jasmine|blazer)[\/\s]?([\w\.]*)/i, /(avant\s|iemobile|slim)(?:browser)?[\/\s]?([\w\.]*)/i, /(bidubrowser|baidubrowser)[\/\s]?([\w\.]+)/i, /(?:ms|\()(ie)\s([\w\.]+)/i, /(rekonq)\/([\w\.]*)/i, /(chromium|flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon)\/([\w\.-]+)/i], + [s, u], + [/(konqueror)\/([\w\.]+)/i], + [ + [s, "Konqueror"], u + ], + [/(trident).+rv[:\s]([\w\.]+).+like\sgecko/i], + [ + [s, "IE"], u + ], + [/(edge|edgios|edga|edg)\/((\d+)?[\w\.]+)/i], + [ + [s, "Edge"], u + ], + [/(yabrowser)\/([\w\.]+)/i], + [ + [s, "Yandex"], u + ], + [/(Avast)\/([\w\.]+)/i], + [ + [s, "Avast Secure Browser"], u + ], + [/(AVG)\/([\w\.]+)/i], + [ + [s, "AVG Secure Browser"], u + ], + [/(puffin)\/([\w\.]+)/i], + [ + [s, "Puffin"], u + ], + [/(focus)\/([\w\.]+)/i], + [ + [s, "Firefox Focus"], u + ], + [/(opt)\/([\w\.]+)/i], + [ + [s, "Opera Touch"], u + ], + [/((?:[\s\/])uc?\s?browser|(?:juc.+)ucweb)[\/\s]?([\w\.]+)/i], + [ + [s, "UCBrowser"], u + ], + [/(comodo_dragon)\/([\w\.]+)/i], + [ + [s, /_/g, " "], u + ], + [/(windowswechat qbcore)\/([\w\.]+)/i], + [ + [s, "WeChat(Win) Desktop"], u + ], + [/(micromessenger)\/([\w\.]+)/i], + [ + [s, "WeChat"], u + ], + [/(brave)\/([\w\.]+)/i], + [ + [s, "Brave"], u + ], + [/(qqbrowserlite)\/([\w\.]+)/i], + [s, u], + [/(QQ)\/([\d\.]+)/i], + [s, u], + [/m?(qqbrowser)[\/\s]?([\w\.]+)/i], + [s, u], + [/(baiduboxapp)[\/\s]?([\w\.]+)/i], + [s, u], + [/(2345Explorer)[\/\s]?([\w\.]+)/i], + [s, u], + [/(MetaSr)[\/\s]?([\w\.]+)/i], + [s], + [/(LBBROWSER)/i], + [s], + [/xiaomi\/miuibrowser\/([\w\.]+)/i], + [u, [s, "MIUI Browser"]], + [/;fbav\/([\w\.]+);/i], + [u, [s, "Facebook"]], + [/safari\s(line)\/([\w\.]+)/i, /android.+(line)\/([\w\.]+)\/iab/i], + [s, u], + [/headlesschrome(?:\/([\w\.]+)|\s)/i], + [u, [s, "Chrome Headless"]], + [/\swv\).+(chrome)\/([\w\.]+)/i], + [ + [s, /(.+)/, "$1 WebView"], u + ], + [/((?:oculus|samsung)browser)\/([\w\.]+)/i], + [ + [s, /(.+(?:g|us))(.+)/, "$1 $2"], u + ], + [/((?:android.+)crmo|crios)\/([\w\.]+)/i, /android.+(chrome)\/([\w\.]+)\s+(?:mobile\s?safari)/i], + [ + [s, "Chrome Mobile"], u + ], + [/android.+version\/([\w\.]+)\s+(?:mobile\s?safari|safari)*/i], + [u, [s, "Android Browser"]], + [/(sailfishbrowser)\/([\w\.]+)/i], + [ + [s, "Sailfish Browser"], u + ], + [/(chrome|omniweb|arora|[tizenoka]{5}\s?browser)\/v?([\w\.]+)/i], + [s, u], + [/(dolfin)\/([\w\.]+)/i], + [ + [s, "Dolphin"], u + ], + [/(qihu|qhbrowser|qihoobrowser|360browser)/i], + [ + [s, "360 Browser"] + ], + [/(coast)\/([\w\.]+)/i], + [ + [s, "Opera Coast"], u + ], + [/fxios\/([\w\.-]+)/i], + [u, [s, "Firefox"]], + [/version\/([\w\.]+).+?mobile\/\w+\s(safari)/i], + [u, [s, "Mobile Safari"]], + [/version\/([\w\.]+).+?(mobile\s?safari|safari)/i], + [u, s], + [/webkit.+?(gsa)\/([\w\.]+).+?(mobile\s?safari|safari)(\/[\w\.]+)/i], + [ + [s, "GSA"], u + ], + [/webkit.+?(mobile\s?safari|safari)(\/[\w\.]+)/i], + [s, [u, y.str, v.browser.oldsafari.version]], + [/(webkit|khtml)\/([\w\.]+)/i], + [s, u], + [/(navigator|netscape)\/([\w\.-]+)/i], + [ + [s, "Netscape"], u + ], + [/(swiftfox)/i, /(icedragon|iceweasel|camino|chimera|fennec|maemo\sbrowser|minimo|conkeror)[\/\s]?([\w\.\+]+)/i, /(firefox|seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\/([\w\.-]+)/i, /(mozilla)\/([\w\.]+).+rv\:.+gecko\/\d+/i, /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir)[\/\s]?([\w\.]+)/i, /(links)\s\(([\w\.]+)/i, /(gobrowser)\/?([\w\.]*)/i, /(ice\s?browser)\/v?([\w\._]+)/i, /(mosaic)[\/\s]([\w\.]+)/i], + [s, u] + ], + cpu: [ + [/(?:(amd|x(?:(?:86|64)[_-])?|wow|win)64)[;\)]/i], + [ + [d, "amd64"] + ], + [/(ia32(?=;))/i], + [ + [d, b.lowerize] + ], + [/((?:i[346]|x)86)[;\)]/i], + [ + [d, "ia32"] + ], + [/windows\s(ce|mobile);\sppc;/i], + [ + [d, "arm"] + ], + [/((?:ppc|powerpc)(?:64)?)(?:\smac|;|\))/i], + [ + [d, /ower/, "", b.lowerize] + ], + [/(sun4\w)[;\)]/i], + [ + [d, "sparc"] + ], + [/((?:avr32|ia64(?=;))|68k(?=\))|arm(?:64|(?=v\d+[;l]))|(?=atmel\s)avr|(?:irix|mips|sparc)(?:64)?(?=;)|pa-risc)/i], + [ + [d, b.lowerize] + ] + ], + device: [ + [/\((ipad|playbook);[\w\s\),;-]+(rim|apple)/i], + [o, c, [l, m]], + [/applecoremedia\/[\w\.]+ \((ipad)/], + [o, [c, "Apple"], + [l, m] + ], + [/(apple\s{0,1}tv)/i], + [ + [o, "Apple TV"], + [c, "Apple"], + [l, f] + ], + [/(archos)\s(gamepad2?)/i, /(hp).+(touchpad)/i, /(hp).+(tablet)/i, /(kindle)\/([\w\.]+)/i, /\s(nook)[\w\s]+build\/(\w+)/i, /(dell)\s(strea[kpr\s\d]*[\dko])/i], + [c, o, [l, m]], + [/(kf[A-z]+)\sbuild\/.+silk\//i], + [o, [c, "Amazon"], + [l, m] + ], + [/(sd|kf)[0349hijorstuw]+\sbuild\/.+silk\//i], + [ + [o, y.str, v.device.amazon.model], + [c, "Amazon"], + [l, h] + ], + [/android.+aft([bms])\sbuild/i], + [o, [c, "Amazon"], + [l, f] + ], + [/\((ip[honed|\s\w*]+);.+(apple)/i], + [o, c, [l, h]], + [/\((ip[honed|\s\w*]+);/i], + [o, [c, "Apple"], + [l, h] + ], + [/(blackberry)[\s-]?(\w+)/i, /(blackberry|benq|palm(?=\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[\s_-]?([\w-]*)/i, /(hp)\s([\w\s]+\w)/i, /(asus)-?(\w+)/i], + [c, o, [l, h]], + [/\(bb10;\s(\w+)/i], + [o, [c, "BlackBerry"], + [l, h] + ], + [/android.+(transfo[prime\s]{4,10}\s\w+|eeepc|slider\s\w+|nexus 7|padfone|p00c)/i], + [o, [c, "Asus"], + [l, m] + ], + [/(sony)\s(tablet\s[ps])\sbuild\//i, /(sony)?(?:sgp.+)\sbuild\//i], + [ + [c, "Sony"], + [o, "Xperia Tablet"], + [l, m] + ], + [/android.+\s([c-g]\d{4}|so[-l]\w+)(?=\sbuild\/|\).+chrome\/(?![1-6]{0,1}\d\.))/i], + [o, [c, "Sony"], + [l, h] + ], + [/\s(ouya)\s/i, /(nintendo)\s([wids3u]+)/i], + [c, o, [l, p]], + [/android.+;\s(shield)\sbuild/i], + [o, [c, "Nvidia"], + [l, p] + ], + [/(playstation\s[34portablevi]+)/i], + [o, [c, "Sony"], + [l, p] + ], + [/(sprint\s(\w+))/i], + [ + [c, y.str, v.device.sprint.vendor], + [o, y.str, v.device.sprint.model], + [l, h] + ], + [/(htc)[;_\s-]+([\w\s]+(?=\)|\sbuild)|\w+)/i, /(zte)-(\w*)/i, /(alcatel|geeksphone|nexian|panasonic|(?=;\s)sony)[_\s-]?([\w-]*)/i], + [c, [o, /_/g, " "], + [l, h] + ], + [/(nexus\s9)/i], + [o, [c, "HTC"], + [l, m] + ], + [/d\/huawei([\w\s-]+)[;\)]/i, /(nexus\s6p|vog-l29|ane-lx1|eml-l29)/i], + [o, [c, "Huawei"], + [l, h] + ], + [/android.+(bah2?-a?[lw]\d{2})/i], + [o, [c, "Huawei"], + [l, m] + ], + [/(microsoft);\s(lumia[\s\w]+)/i], + [c, o, [l, h]], + [/[\s\(;](xbox(?:\sone)?)[\s\);]/i], + [o, [c, "Microsoft"], + [l, p] + ], + [/(kin\.[onetw]{3})/i], + [ + [o, /\./g, " "], + [c, "Microsoft"], + [l, h] + ], + [/\s(milestone|droid(?:[2-4x]|\s(?:bionic|x2|pro|razr))?:?(\s4g)?)[\w\s]+build\//i, /mot[\s-]?(\w*)/i, /(XT\d{3,4}) build\//i, /(nexus\s6)/i], + [o, [c, "Motorola"], + [l, h] + ], + [/android.+\s(mz60\d|xoom[\s2]{0,2})\sbuild\//i], + [o, [c, "Motorola"], + [l, m] + ], + [/hbbtv\/\d+\.\d+\.\d+\s+\([\w\s]*;\s*(\w[^;]*);([^;]*)/i], + [ + [c, b.trim], + [o, b.trim], + [l, f] + ], + [/hbbtv.+maple;(\d+)/i], + [ + [o, /^/, "SmartTV"], + [c, "Samsung"], + [l, f] + ], + [/\(dtv[\);].+(aquos)/i], + [o, [c, "Sharp"], + [l, f] + ], + [/android.+((sch-i[89]0\d|shw-m380s|gt-p\d{4}|gt-n\d+|sgh-t8[56]9|nexus 10))/i, /((SM-T\w+))/i], + [ + [c, "Samsung"], o, [l, m] + ], + [/smart-tv.+(samsung)/i], + [c, [l, f], o], + [/((s[cgp]h-\w+|gt-\w+|galaxy\snexus|sm-\w[\w\d]+))/i, /(sam[sung]*)[\s-]*(\w+-?[\w-]*)/i, /sec-((sgh\w+))/i], + [ + [c, "Samsung"], o, [l, h] + ], + [/sie-(\w*)/i], + [o, [c, "Siemens"], + [l, h] + ], + [/(maemo|nokia).*(n900|lumia\s\d+)/i, /(nokia)[\s_-]?([\w-]*)/i], + [ + [c, "Nokia"], o, [l, h] + ], + [/android[x\d\.\s;]+\s([ab][1-7]\-?[0178a]\d\d?)/i], + [o, [c, "Acer"], + [l, m] + ], + [/android.+([vl]k\-?\d{3})\s+build/i], + [o, [c, "LG"], + [l, m] + ], + [/android\s3\.[\s\w;-]{10}(lg?)-([06cv9]{3,4})/i], + [ + [c, "LG"], o, [l, m] + ], + [/(lg) netcast\.tv/i], + [c, o, [l, f]], + [/(nexus\s[45])/i, /lg[e;\s\/-]+(\w*)/i, /android.+lg(\-?[\d\w]+)\s+build/i], + [o, [c, "LG"], + [l, h] + ], + [/(lenovo)\s?(s(?:5000|6000)(?:[\w-]+)|tab(?:[\s\w]+))/i], + [c, o, [l, m]], + [/android.+(ideatab[a-z0-9\-\s]+)/i], + [o, [c, "Lenovo"], + [l, m] + ], + [/(lenovo)[_\s-]?([\w-]+)/i], + [c, o, [l, h]], + [/linux;.+((jolla));/i], + [c, o, [l, h]], + [/((pebble))app\/[\d\.]+\s/i], + [c, o, [l, g]], + [/android.+;\s(oppo)\s?([\w\s]+)\sbuild/i], + [c, o, [l, h]], + [/crkey/i], + [ + [o, "Chromecast"], + [c, "Google"], + [l, f] + ], + [/android.+;\s(glass)\s\d/i], + [o, [c, "Google"], + [l, g] + ], + [/android.+;\s(pixel c)[\s)]/i], + [o, [c, "Google"], + [l, m] + ], + [/android.+;\s(pixel( [23])?( xl)?)[\s)]/i], + [o, [c, "Google"], + [l, h] + ], + [/android.+;\s(\w+)\s+build\/hm\1/i, /android.+(hm[\s\-_]*note?[\s_]*(?:\d\w)?)\s+build/i, /android.+(mi[\s\-_]*(?:a\d|one|one[\s_]plus|note lte)?[\s_]*(?:\d?\w?)[\s_]*(?:plus)?)\s+build/i, /android.+(redmi[\s\-_]*(?:note)?(?:[\s_]*[\w\s]+))\s+build/i], + [ + [o, /_/g, " "], + [c, "Xiaomi"], + [l, h] + ], + [/android.+(mi[\s\-_]*(?:pad)(?:[\s_]*[\w\s]+))\s+build/i], + [ + [o, /_/g, " "], + [c, "Xiaomi"], + [l, m] + ], + [/android.+;\s(m[1-5]\snote)\sbuild/i], + [o, [c, "Meizu"], + [l, h] + ], + [/(mz)-([\w-]{2,})/i], + [ + [c, "Meizu"], o, [l, h] + ], + [/android.+a000(1)\s+build/i, /android.+oneplus\s(a\d{4})[\s)]/i], + [o, [c, "OnePlus"], + [l, h] + ], + [/android.+[;\/]\s*(RCT[\d\w]+)\s+build/i], + [o, [c, "RCA"], + [l, m] + ], + [/android.+[;\/\s]+(Venue[\d\s]{2,7})\s+build/i], + [o, [c, "Dell"], + [l, m] + ], + [/android.+[;\/]\s*(Q[T|M][\d\w]+)\s+build/i], + [o, [c, "Verizon"], + [l, m] + ], + [/android.+[;\/]\s+(Barnes[&\s]+Noble\s+|BN[RT])(V?.*)\s+build/i], + [ + [c, "Barnes & Noble"], o, [l, m] + ], + [/android.+[;\/]\s+(TM\d{3}.*\b)\s+build/i], + [o, [c, "NuVision"], + [l, m] + ], + [/android.+;\s(k88)\sbuild/i], + [o, [c, "ZTE"], + [l, m] + ], + [/android.+[;\/]\s*(gen\d{3})\s+build.*49h/i], + [o, [c, "Swiss"], + [l, h] + ], + [/android.+[;\/]\s*(zur\d{3})\s+build/i], + [o, [c, "Swiss"], + [l, m] + ], + [/android.+[;\/]\s*((Zeki)?TB.*\b)\s+build/i], + [o, [c, "Zeki"], + [l, m] + ], + [/(android).+[;\/]\s+([YR]\d{2})\s+build/i, /android.+[;\/]\s+(Dragon[\-\s]+Touch\s+|DT)(\w{5})\sbuild/i], + [ + [c, "Dragon Touch"], o, [l, m] + ], + [/android.+[;\/]\s*(NS-?\w{0,9})\sbuild/i], + [o, [c, "Insignia"], + [l, m] + ], + [/android.+[;\/]\s*((NX|Next)-?\w{0,9})\s+build/i], + [o, [c, "NextBook"], + [l, m] + ], + [/android.+[;\/]\s*(Xtreme\_)?(V(1[045]|2[015]|30|40|60|7[05]|90))\s+build/i], + [ + [c, "Voice"], o, [l, h] + ], + [/android.+[;\/]\s*(LVTEL\-)?(V1[12])\s+build/i], + [ + [c, "LvTel"], o, [l, h] + ], + [/android.+;\s(PH-1)\s/i], + [o, [c, "Essential"], + [l, h] + ], + [/android.+[;\/]\s*(V(100MD|700NA|7011|917G).*\b)\s+build/i], + [o, [c, "Envizen"], + [l, m] + ], + [/android.+[;\/]\s*(Le[\s\-]+Pan)[\s\-]+(\w{1,9})\s+build/i], + [c, o, [l, m]], + [/android.+[;\/]\s*(Trio[\s\-]*.*)\s+build/i], + [o, [c, "MachSpeed"], + [l, m] + ], + [/android.+[;\/]\s*(Trinity)[\-\s]*(T\d{3})\s+build/i], + [c, o, [l, m]], + [/android.+[;\/]\s*TU_(1491)\s+build/i], + [o, [c, "Rotor"], + [l, m] + ], + [/android.+(KS(.+))\s+build/i], + [o, [c, "Amazon"], + [l, m] + ], + [/android.+(Gigaset)[\s\-]+(Q\w{1,9})\s+build/i], + [c, o, [l, m]], + [/\s(tablet|tab)[;\/]/i, /\s(mobile)(?:[;\/]|\ssafari)/i], + [ + [l, b.lowerize], c, o + ], + [/[\s\/\(](smart-?tv)[;\)]/i], + [ + [l, f] + ], + [/(android[\w\.\s\-]{0,9});.+build/i], + [o, [c, "Generic"]] + ], + engine: [ + [/windows.+\sedge\/([\w\.]+)/i], + [u, [s, "EdgeHTML"]], + [/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i], + [u, [s, "Blink"]], + [/(presto)\/([\w\.]+)/i, /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\/([\w\.]+)/i, /(khtml|tasman|links)[\/\s]\(?([\w\.]+)/i, /(icab)[\/\s]([23]\.[\d\.]+)/i], + [s, u], + [/rv\:([\w\.]{1,9}).+(gecko)/i], + [u, s] + ], + os: [ + [/microsoft\s(windows)\s(vista|xp)/i], + [s, u], + [/(windows)\snt\s6\.2;\s(arm)/i, /(windows\sphone(?:\sos)*)[\s\/]?([\d\.\s\w]*)/i, /(windows\smobile|windows)[\s\/]?([ntce\d\.\s]+\w)/i], + [ + [s, y.str, v.os.windows.name], + [u, y.str, v.os.windows.version] + ], + [/(win(?=3|9|n)|win\s9x\s)([nt\d\.]+)/i], + [ + [s, "Windows"], + [u, y.str, v.os.windows.version] + ], + [/\((bb)(10);/i], + [ + [s, "BlackBerry"], u + ], + [/(blackberry)\w*\/?([\w\.]*)/i, /(tizen|kaios)[\/\s]([\w\.]+)/i, /(android|webos|palm\sos|qnx|bada|rim\stablet\sos|meego|sailfish|contiki)[\/\s-]?([\w\.]*)/i], + [s, u], + [/(symbian\s?os|symbos|s60(?=;))[\/\s-]?([\w\.]*)/i], + [ + [s, "Symbian"], u + ], + [/\((series40);/i], + [s], + [/mozilla.+\(mobile;.+gecko.+firefox/i], + [ + [s, "Firefox OS"], u + ], + [/(nintendo|playstation)\s([wids34portablevu]+)/i, /(mint)[\/\s\(]?(\w*)/i, /(mageia|vectorlinux)[;\s]/i, /(joli|[kxln]?ubuntu|debian|suse|opensuse|gentoo|(?=\s)arch|slackware|fedora|mandriva|centos|pclinuxos|redhat|zenwalk|linpus)[\/\s-]?(?!chrom)([\w\.-]*)/i, /(hurd|linux)\s?([\w\.]*)/i, /(gnu)\s?([\w\.]*)/i], + [ + [s, "Linux"], u + ], + [/(cros)\s[\w]+\s([\w\.]+\w)/i], + [ + [s, "Chromium OS"], u + ], + [/(sunos)\s?([\w\.\d]*)/i], + [ + [s, "Solaris"], u + ], + [/\s([frentopc-]{0,4}bsd|dragonfly)\s?([\w\.]*)/i], + [ + [s, "Linux"], u + ], + [/(iphone)(?:.*os\s*([\w]*)\slike\smac|;\sopera)/i], + [ + [s, "iPhone"], + [u, /_/g, "."] + ], + [/(ipad)(?:.*os\s*([\w]*)\slike\smac|;\sopera)/i], + [ + [s, "iPad"], + [u, /_/g, "."] + ], + [/(haiku)\s(\w+)/i], + [s, u], + [/cfnetwork\/.+darwin/i, /ip[honead]{2,4}(?:.*os\s([\w]+)\slike\smac|;\sopera)/i], + [ + [u, /_/g, "."], + [s, "iOS"] + ], + [/(mac\sos\sx)\s?([\w\s\.]*)/i, /(macintosh|mac(?=_powerpc)\s)/i], + [ + [s, "Mac"], + [u, /_/g, "."] + ], + [/((?:open)?solaris)[\/\s-]?([\w\.]*)/i, /(aix)\s((\d)(?=\.|\)|\s)[\w\.])*/i, /(plan\s9|minix|beos|os\/2|amigaos|morphos|risc\sos|openvms|fuchsia)/i, /(unix)\s?([\w\.]*)/i], + [s, u] + ] + }, + _ = function(e, t) { + if ("object" == typeof e && (t = e, e = a), !(this instanceof _)) return new _(e, t).getResult(); + var r = e || (n && n.navigator && n.navigator.userAgent ? n.navigator.userAgent : ""), + i = t ? b.extend(k, t) : k; + return this.getBrowser = function() { + var e = { + name: a, + version: a + }; + return y.rgx.call(e, r, i.browser), e.major = b.major(e.version), e + }, this.getCPU = function() { + var e = { + architecture: a + }; + return y.rgx.call(e, r, i.cpu), e + }, this.getDevice = function() { + var e = { + vendor: a, + model: a, + type: a + }; + return y.rgx.call(e, r, i.device), e + }, this.getEngine = function() { + var e = { + name: a, + version: a + }; + return y.rgx.call(e, r, i.engine), e + }, this.getOS = function() { + var e = { + name: a, + version: a + }; + return y.rgx.call(e, r, i.os), e + }, this.getResult = function() { + return { + ua: this.getUA(), + browser: this.getBrowser(), + engine: this.getEngine(), + os: this.getOS(), + device: this.getDevice(), + cpu: this.getCPU() + } + }, this.getUA = function() { + return r + }, this.setUA = function(e) { + return r = e, this + }, this + }; + _.VERSION = "0.7.21", _.BROWSER = { + NAME: s, + MAJOR: "major", + VERSION: u + }, _.CPU = { + ARCHITECTURE: d + }, _.DEVICE = { + MODEL: o, + VENDOR: c, + TYPE: l, + CONSOLE: p, + MOBILE: h, + SMARTTV: f, + TABLET: m, + WEARABLE: g, + EMBEDDED: "embedded" + }, _.ENGINE = { + NAME: s, + VERSION: u + }, _.OS = { + NAME: s, + VERSION: u + }, e.exports && (t = e.exports = _), t.UAParser = _; + var w = n && (n.jQuery || n.Zepto); + if (w && !w.ua) { + var S = new _; + w.ua = S.getResult(), w.ua.get = function() { + return S.getUA() + }, w.ua.set = function(e) { + S.setUA(e); + var t = S.getResult(); + for (var n in t) w.ua[n] = t[n] + } + } + }("object" == typeof window ? window : ue) + })), + Ee = (Se.UAParser, function e(t) { + return t ? (t ^ 16 * Math.random() >> t / 4).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, e) + }), + xe = "8.2.1", + Ce = { + apiEndpoint: "api.amplitude.com", + batchEvents: !1, + cookieExpiration: 365, + cookieName: "amplitude_id", + sameSiteCookie: "Lax", + cookieForceUpgrade: !1, + deferInitialization: !1, + disableCookies: !1, + deviceIdFromUrlParam: !1, + domain: "", + eventUploadPeriodMillis: 3e4, + eventUploadThreshold: 30, + forceHttps: !0, + includeFbclid: !1, + includeGclid: !1, + includeReferrer: !1, + includeUtm: !1, + language: navigator && (navigator.languages && navigator.languages[0] || navigator.language || navigator.userLanguage) || "", + logLevel: "WARN", + logAttributionCapturedEvent: !1, + optOut: !1, + onError: function() {}, + platform: "Web", + savedMaxCount: 1e3, + saveEvents: !0, + saveParamsReferrerOncePerSession: !0, + secureCookie: !1, + sessionTimeout: 18e5, + storage: g.STORAGE_DEFAULT, + trackingOptions: { + city: !0, + country: !0, + carrier: !0, + device_manufacturer: !0, + device_model: !0, + dma: !0, + ip_address: !0, + language: !0, + os_name: !0, + os_version: !0, + platform: !0, + region: !0, + version_name: !0 + }, + unsetParamsReferrerOnNewSession: !1, + unsentKey: "amplitude_unsent", + unsentIdentifyKey: "amplitude_unsent_identify", + uploadBatchSize: 100, + headers: { + "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" } + }, + Ae = function(e) { + u() || I.warn("amplitude-js will not work in a non-browser environment. If you are planning to add Amplitude to a node environment, please use @amplitude/node"), this._instanceName = O(e) ? g.DEFAULT_INSTANCE : e.toLowerCase(), this._unsentEvents = [], this._unsentIdentifys = [], this._ua = new Se(navigator.userAgent).getResult(), this.options = i({}, Ce, { + trackingOptions: i({}, Ce.trackingOptions) + }), this.cookieStorage = (new ie).getStorage(), this._q = [], this._sending = !1, this._updateScheduled = !1, this._onInit = [], this._eventId = 0, this._identifyId = 0, this._lastEventTime = null, this._newSession = !1, this._sequenceNumber = 0, this._sessionId = null, this._isInitialized = !1, this._userAgent = navigator && navigator.userAgent || null + }; + Ae.prototype.Identify = ce, Ae.prototype.Revenue = we, Ae.prototype.init = function(e, t, n, a) { + var r = this; + if ("string" !== _(e) || O(e)) I.error("Invalid apiKey. Please re-initialize with a valid apiKey"); + else try { + De(this.options, n), u() && void 0 !== window.Prototype && Array.prototype.toJSON && (function() { + var e; + if (u()) { + var t = window, + n = Array; + if (void 0 !== t.Prototype && void 0 !== (null === (e = n.prototype) || void 0 === e ? void 0 : e.toJSON)) return delete n.prototype.toJSON, !0 + } + }(), I.warn("Prototype.js injected Array.prototype.toJSON. Deleting Array.prototype.toJSON to prevent double-stringify")), this.options.cookieName !== Ce.cookieName && I.warn("The cookieName option is deprecated. We will be ignoring it for newer cookies"), this.options.apiKey = e, this._storageSuffix = "_" + e + (this._instanceName === g.DEFAULT_INSTANCE ? "" : "_" + this._instanceName), this._storageSuffixV5 = e.slice(0, 6), this._oldCookiename = this.options.cookieName + this._storageSuffix, this._unsentKey = this.options.unsentKey + this._storageSuffix, this._unsentIdentifyKey = this.options.unsentIdentifyKey + this._storageSuffix, this._cookieName = g.COOKIE_PREFIX + "_" + this._storageSuffixV5, this.cookieStorage.options({ + expirationDays: this.options.cookieExpiration, + domain: this.options.domain, + secure: this.options.secureCookie, + sameSite: this.options.sameSiteCookie + }), this._metadataStorage = new se({ + storageKey: this._cookieName, + disableCookies: this.options.disableCookies, + expirationDays: this.options.cookieExpiration, + domain: this.options.domain, + secure: this.options.secureCookie, + sameSite: this.options.sameSiteCookie, + storage: this.options.storage + }); + var i = !!this.cookieStorage.get(this._oldCookiename), + o = !!this._metadataStorage.load(); + this._useOldCookie = !o && i && !this.options.cookieForceUpgrade; + var s = o || i; + if (this.options.domain = this.cookieStorage.options().domain, this.options.deferInitialization && !s) return void this._deferInitialization(e, t, n, a); + "string" === _(this.options.logLevel) && M(this.options.logLevel); + var l = ze(this); + this._apiPropertiesTrackingOptions = Object.keys(l).length > 0 ? { + tracking_options: l + } : {}, this.options.cookieForceUpgrade && i && (o || je(this), this.cookieStorage.remove(this._oldCookiename)), Pe(this), this._pendingReadStorage = !0; + this.options.saveEvents && (this._unsentEvents = this._loadSavedUnsentEvents(this.options.unsentKey).map((function(e) { + return { + event: e + } + })).concat(this._unsentEvents), this._unsentIdentifys = this._loadSavedUnsentEvents(this.options.unsentIdentifyKey).map((function(e) { + return { + event: e + } + })).concat(this._unsentIdentifys)), + function(e) { + r.options.deviceId = r._getInitialDeviceId(n && n.deviceId, e), r.options.userId = "string" === _(t) && !O(t) && t || "number" === _(t) && t.toString() || r.options.userId || null; + var a = (new Date).getTime(); + (!r._sessionId || !r._lastEventTime || a - r._lastEventTime > r.options.sessionTimeout) && (r.options.unsetParamsReferrerOnNewSession && r._unsetUTMParams(), r._newSession = !0, r._sessionId = a, r.options.saveParamsReferrerOncePerSession && r._trackParamsAndReferrer()), r.options.saveParamsReferrerOncePerSession || r._trackParamsAndReferrer(), r.options.saveEvents && (Te(r._unsentEvents), Te(r._unsentIdentifys)), r._lastEventTime = a, Ie(r), r._pendingReadStorage = !1, r._sendEventsIfReady(); + for (var i = 0; i < r._onInit.length; i++) r._onInit[i](r); + r._onInit = [], r._isInitialized = !0 + }(), this.runQueuedFunctions(), "function" === _(a) && a(this) + } catch (e) { + I.error(e), "function" === _(n.onError) && n.onError(e) + } + }, Ae.prototype.deleteLowerLevelDomainCookies = function() { + var e = G(), + t = this.options.domain && "." === this.options.domain[0] ? this.options.domain.slice(1) : this.options.domain; + if (t && e !== t && new RegExp(t + "$").test(e)) { + for (var n = e.split("."), a = t.split("."), r = n.length; r > a.length; --r) { + var i = n.slice(n.length - r).join("."); + V(this._cookieName, null, { + domain: "." + i + }) + } + V(this._cookieName, null, {}) + } + }, Ae.prototype._getInitialDeviceId = function(e, t) { + if (e) return e; + if (this.options.deviceIdFromUrlParam) { + var n = this._getDeviceIdFromUrlParam(this._getUrlParams()); + if (n) return n + } + return this.options.deviceId ? this.options.deviceId : t || B() + }; + var Te = function(e) { + for (var t = 0; t < e.length; t++) { + var n = e[t].event.user_properties, + a = e[t].event.event_properties, + r = e[t].event.groups; + e[t].event.user_properties = F(n), e[t].event.event_properties = F(a), e[t].event.groups = z(r) } - var m = new Array(1e3); - - function f() { - for (var e = 0; e < r; e += 2)(0, m[e])(m[e + 1]), m[e] = void 0, m[e + 1] = void 0; - r = 0 + }; + Ae.prototype._trackParamsAndReferrer = function() { + var e, t, n, a; + if (this.options.includeUtm && (e = this._initUtmData()), this.options.includeReferrer && (t = this._saveReferrer(this._getReferrer())), this.options.includeGclid && (n = this._saveGclid(this._getUrlParams())), this.options.includeFbclid && (a = this._saveFbclid(this._getUrlParams())), this.options.logAttributionCapturedEvent) { + var r = i({}, e, t, n, a); + Object.keys(r).length > 0 && this.logEvent(g.ATTRIBUTION_EVENT, r) } - var g, b, y, v, k = void 0; - - function _(e, t) { - var n = this, - a = new this.constructor(E); - void 0 === a[S] && R(a); - var r = n._state; - if (r) { - var i = arguments[r - 1]; - s((function() { - return N(r, a, i, n._result) - })) - } else M(n, a, e, t); - return a + }; + var De = function e(t, n) { + if ("object" === _(n)) { + var a = new Set(["headers"]), + r = function(a) { + if (Object.prototype.hasOwnProperty.call(t, a)) { + var r = n[a], + i = _(t[a]); + L(r, a + " option", i) && ("boolean" === i ? t[a] = !!r : "string" === i && !O(r) || "number" === i && r > 0 || "function" === i ? t[a] = r : "object" === i && e(t[a], r)) + } + }; + for (var o in n) a.has(o) ? t[o] = i({}, t[o], n[o]) : Object.prototype.hasOwnProperty.call(n, o) && r(o) } - - function w(e) { - if (e && "object" == typeof e && e.constructor === this) return e; - var t = new this(E); - return P(t, e), t - } - k = d ? function() { - return a.nextTick(f) - } : u ? (b = 0, y = new u(f), v = document.createTextNode(""), y.observe(v, { - characterData: !0 - }), function() { - v.data = b = ++b % 2 - }) : p ? ((g = new MessageChannel).port1.onmessage = f, function() { - return g.port2.postMessage(0) - }) : void 0 === l ? function() { - try { - var e = Function("return this")().require("vertx"); - return void 0 !== (i = e.runOnLoop || e.runOnContext) ? function() { - i(f) - } : h() - } catch (e) { - return h() + }; + Ae.prototype.runQueuedFunctions = function() { + var e = this._q; + this._q = []; + for (var t = 0; t < e.length; t++) { + var n = this[e[t][0]]; + "function" === _(n) && n.apply(this, e[t].slice(1)) + } + }, Ae.prototype._apiKeySet = function(e) { + return !O(this.options.apiKey) || (I.error("Invalid apiKey. Please set a valid apiKey with init() before calling " + e), !1) + }, Ae.prototype._loadSavedUnsentEvents = function(e) { + var t = this._getFromStorage(re, e), + n = this._parseSavedUnsentEventsString(t, e); + return this._setInStorage(re, e, JSON.stringify(n)), n + }, Ae.prototype._parseSavedUnsentEventsString = function(e, t) { + if (O(e)) return []; + if ("string" === _(e)) try { + var n = JSON.parse(e); + if ("array" === _(n)) return n + } catch (e) {} + return I.error("Unable to load " + t + " events. Restart with a new empty queue."), [] + }, Ae.prototype.isNewSession = function() { + return this._newSession + }, Ae.prototype.onInit = function(e) { + this._isInitialized ? e(this) : this._onInit.push(e) + }, Ae.prototype.getSessionId = function() { + return this._sessionId + }, Ae.prototype.nextEventId = function() { + return this._eventId++, this._eventId + }, Ae.prototype.nextIdentifyId = function() { + return this._identifyId++, this._identifyId + }, Ae.prototype.nextSequenceNumber = function() { + return this._sequenceNumber++, this._sequenceNumber + }, Ae.prototype._unsentCount = function() { + return this._unsentEvents.length + this._unsentIdentifys.length + }, Ae.prototype._sendEventsIfReady = function() { + return 0 !== this._unsentCount() && (this.options.batchEvents ? this._unsentCount() >= this.options.eventUploadThreshold ? (this.sendEvents(), !0) : (this._updateScheduled || (this._updateScheduled = !0, setTimeout(function() { + this._updateScheduled = !1, this.sendEvents() + }.bind(this), this.options.eventUploadPeriodMillis)), !1) : (this.sendEvents(), !0)) + }, Ae.prototype._getFromStorage = function(e, t) { + return e.getItem(t + this._storageSuffix) + }, Ae.prototype._setInStorage = function(e, t, n) { + e.setItem(t + this._storageSuffix, n) + }; + var Pe = function(e) { + if (e._useOldCookie) { + var t = e.cookieStorage.get(e._oldCookiename); + "object" !== _(t) || Me(e, t) + } else { + var n = e._metadataStorage.load(); + "object" === _(n) && Me(e, n) } - }() : h(); - var S = Math.random().toString(36).substring(2); - - function E() {} - var x = void 0, - C = { - error: null + }, + je = function(e) { + var t = e.cookieStorage.get(e._oldCookiename); + "object" === _(t) && (Me(e, t), Ie(e)) + }, + Me = function(e, t) { + t.deviceId && (e.options.deviceId = t.deviceId), t.userId && (e.options.userId = t.userId), null !== t.optOut && void 0 !== t.optOut && !1 !== t.optOut && (e.options.optOut = t.optOut), t.sessionId && (e._sessionId = parseInt(t.sessionId, 10)), t.lastEventTime && (e._lastEventTime = parseInt(t.lastEventTime, 10)), t.eventId && (e._eventId = parseInt(t.eventId, 10)), t.identifyId && (e._identifyId = parseInt(t.identifyId, 10)), t.sequenceNumber && (e._sequenceNumber = parseInt(t.sequenceNumber, 10)) + }, + Ie = function(e) { + var t = { + deviceId: e.options.deviceId, + userId: e.options.userId, + optOut: e.options.optOut, + sessionId: e._sessionId, + lastEventTime: e._lastEventTime, + eventId: e._eventId, + identifyId: e._identifyId, + sequenceNumber: e._sequenceNumber }; - - function A(e) { - try { - return e.then - } catch (e) { - return C.error = e, C - } + e._useOldCookie ? e.cookieStorage.set(e.options.cookieName + e._storageSuffix, t) : e._metadataStorage.save(t) + }; + Ae.prototype._initUtmData = function(e, t) { + e = e || this._getUrlParams(), t = t || this.cookieStorage.get("__utmz"); + var n, a, r, i, o, s, l, c, u, d, p, h = (a = e, r = (n = t) ? "?" + n.split(".").slice(-1)[0].replace(/\|/g, "&") : "", i = function(e, t, n, a) { + return N(e, t) || N(n, a) + }, o = i(g.UTM_SOURCE, a, "utmcsr", r), s = i(g.UTM_MEDIUM, a, "utmcmd", r), l = i(g.UTM_CAMPAIGN, a, "utmccn", r), c = i(g.UTM_TERM, a, "utmctr", r), u = i(g.UTM_CONTENT, a, "utmcct", r), d = {}, (p = function(e, t) { + O(t) || (d[e] = t) + })(g.UTM_SOURCE, o), p(g.UTM_MEDIUM, s), p(g.UTM_CAMPAIGN, l), p(g.UTM_TERM, c), p(g.UTM_CONTENT, u), d); + return Oe(this, h), h + }, Ae.prototype._unsetUTMParams = function() { + var e = new ce; + e.unset(g.REFERRER), e.unset(g.UTM_SOURCE), e.unset(g.UTM_MEDIUM), e.unset(g.UTM_CAMPAIGN), e.unset(g.UTM_TERM), e.unset(g.UTM_CONTENT), this.identify(e) + }; + var Oe = function(e, t) { + if ("object" === _(t) && 0 !== Object.keys(t).length) { + var n = new ce; + for (var a in t) Object.prototype.hasOwnProperty.call(t, a) && (n.setOnce("initial_" + a, t[a]), n.set(a, t[a])); + e.identify(n) } - - function j(t, n, a) { - n.constructor === t.constructor && a === _ && n.constructor.resolve === w ? function(e, t) { - 1 === t._state ? T(e, t._result) : 2 === t._state ? O(e, t._result) : M(t, void 0, (function(t) { - return P(e, t) - }), (function(t) { - return O(e, t) - })) - }(t, n) : a === C ? (O(t, C.error), C.error = null) : void 0 === a ? T(t, n) : e(a) ? function(e, t, n) { - s((function(e) { - var a = !1, - r = function(e, t, n, a) { - try { - e.call(t, n, a) - } catch (e) { - return e - } - }(n, t, (function(n) { - a || (a = !0, t !== n ? P(e, n) : T(e, n)) - }), (function(t) { - a || (a = !0, O(e, t)) - }), e._label); - !a && r && (a = !0, O(e, r)) - }), e) - }(t, n, a) : T(t, n) + }; + Ae.prototype._getReferrer = function() { + return document.referrer + }, Ae.prototype._getUrlParams = function() { + return location.search + }, Ae.prototype._saveGclid = function(e) { + var t = N("gclid", e); + if (!O(t)) { + var n = { + gclid: t + }; + return Oe(this, n), n } - - function P(e, t) { - var n, a; - e === t ? O(e, new TypeError("You cannot resolve a promise with itself")) : (a = typeof(n = t), null === n || "object" !== a && "function" !== a ? T(e, t) : j(e, t, A(t))) + }, Ae.prototype._saveFbclid = function(e) { + var t = N("fbclid", e); + if (!O(t)) { + var n = { + fbclid: t + }; + return Oe(this, n), n + } + }, Ae.prototype._getDeviceIdFromUrlParam = function(e) { + return N(g.AMP_DEVICE_ID_PARAM, e) + }, Ae.prototype._getReferringDomain = function(e) { + if (O(e)) return null; + var t = e.split("/"); + return t.length >= 3 ? t[2] : null + }, Ae.prototype._saveReferrer = function(e) { + if (!O(e)) { + var t = { + referrer: e, + referring_domain: this._getReferringDomain(e) + }; + return Oe(this, t), t } - - function D(e) { - e._onerror && e._onerror(e._result), I(e) + }, Ae.prototype.saveEvents = function() { + try { + var e = JSON.stringify(this._unsentEvents.map((function(e) { + return e.event + }))); + this._setInStorage(re, this.options.unsentKey, e) + } catch (e) {} + try { + var t = JSON.stringify(this._unsentIdentifys.map((function(e) { + return e.event + }))); + this._setInStorage(re, this.options.unsentIdentifyKey, t) + } catch (e) {} + }, Ae.prototype.setDomain = function(e) { + if (this._shouldDeferCall()) return this._q.push(["setDomain"].concat(Array.prototype.slice.call(arguments, 0))); + if (L(e, "domain", "string")) try { + this.cookieStorage.options({ + expirationDays: this.options.cookieExpiration, + secure: this.options.secureCookie, + domain: e, + sameSite: this.options.sameSiteCookie + }), this.options.domain = this.cookieStorage.options().domain, Pe(this), Ie(this) + } catch (e) { + I.error(e) } - - function T(e, t) { - e._state === x && (e._result = t, e._state = 1, 0 !== e._subscribers.length && s(I, e)) + }, Ae.prototype.setUserId = function(e) { + if (this._shouldDeferCall()) return this._q.push(["setUserId"].concat(Array.prototype.slice.call(arguments, 0))); + try { + this.options.userId = null != e && "" + e || null, Ie(this) + } catch (e) { + I.error(e) } - - function O(e, t) { - e._state === x && (e._state = 2, e._result = t, s(D, e)) + }, Ae.prototype.setGroup = function(e, t) { + if (this._shouldDeferCall()) return this._q.push(["setGroup"].concat(Array.prototype.slice.call(arguments, 0))); + if (this._apiKeySet("setGroup()") && L(e, "groupType", "string") && !O(e)) { + var n = {}; + n[e] = t; + var a = (new ce).set(e, t); + this._logEvent(g.IDENTIFY_EVENT, null, null, a.userPropertiesOperations, n, null, null, null) + } + }, Ae.prototype.setOptOut = function(e) { + if (this._shouldDeferCall()) return this._q.push(["setOptOut"].concat(Array.prototype.slice.call(arguments, 0))); + if (L(e, "enable", "boolean")) try { + this.options.optOut = e, Ie(this) + } catch (e) { + I.error(e) } - - function M(e, t, n, a) { - var r = e._subscribers, - i = r.length; - e._onerror = null, r[i] = t, r[i + 1] = n, r[i + 2] = a, 0 === i && e._state && s(I, e) + }, Ae.prototype.setSessionId = function(e) { + if (L(e, "sessionId", "number")) try { + this._sessionId = e, Ie(this) + } catch (e) { + I.error(e) + } + }, Ae.prototype.resetSessionId = function() { + this.setSessionId((new Date).getTime()) + }, Ae.prototype.regenerateDeviceId = function() { + if (this._shouldDeferCall()) return this._q.push(["regenerateDeviceId"].concat(Array.prototype.slice.call(arguments, 0))); + this.setDeviceId(B()) + }, Ae.prototype.setDeviceId = function(e) { + if (this._shouldDeferCall()) return this._q.push(["setDeviceId"].concat(Array.prototype.slice.call(arguments, 0))); + if (L(e, "deviceId", "string")) try { + O(e) || (this.options.deviceId = "" + e, Ie(this)) + } catch (e) { + I.error(e) } - - function I(e) { - var t = e._subscribers, - n = e._state; - if (0 !== t.length) { - for (var a = void 0, r = void 0, i = e._result, o = 0; o < t.length; o += 3) a = t[o], r = t[o + n], a ? N(n, a, r, i) : r(i); - e._subscribers.length = 0 + }, Ae.prototype.setUserProperties = function(e) { + if (this._shouldDeferCall()) return this._q.push(["setUserProperties"].concat(Array.prototype.slice.call(arguments, 0))); + if (this._apiKeySet("setUserProperties()") && L(e, "userProperties", "object")) { + var t = R(F(e)); + if (0 !== Object.keys(t).length) { + var n = new ce; + for (var a in t) Object.prototype.hasOwnProperty.call(t, a) && n.set(a, t[a]); + this.identify(n) } } - - function N(t, n, a, r) { - var i = e(a), - o = void 0, - s = void 0, - l = void 0, - c = void 0; - if (i) { - if ((o = function(e, t) { - try { - return e(t) - } catch (e) { - return C.error = e, C - } - }(a, r)) === C ? (c = !0, s = o.error, o.error = null) : l = !0, n === o) return void O(n, new TypeError("A promises callback cannot return that same promise.")) - } else o = r, l = !0; - n._state !== x || (i && l ? P(n, o) : c ? O(n, s) : 1 === t ? T(n, o) : 2 === t && O(n, o)) - } - var z = 0; - - function R(e) { - e[S] = z++, e._state = void 0, e._result = void 0, e._subscribers = [] - } - var L = function() { - function e(e, n) { - this._instanceConstructor = e, this.promise = new e(E), this.promise[S] || R(this.promise), t(n) ? (this.length = n.length, this._remaining = n.length, this._result = new Array(this.length), 0 === this.length ? T(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(n), 0 === this._remaining && T(this.promise, this._result))) : O(this.promise, new Error("Array Methods must be provided an Array")) - } - return e.prototype._enumerate = function(e) { - for (var t = 0; this._state === x && t < e.length; t++) this._eachEntry(e[t], t) - }, e.prototype._eachEntry = function(e, t) { - var n = this._instanceConstructor, - a = n.resolve; - if (a === w) { - var r = A(e); - if (r === _ && e._state !== x) this._settledAt(e._state, t, e._result); - else if ("function" != typeof r) this._remaining--, this._result[t] = e; - else if (n === F) { - var i = new n(E); - j(i, e, r), this._willSettleAt(i, t) - } else this._willSettleAt(new n((function(t) { - return t(e) - })), t) - } else this._willSettleAt(a(e), t) - }, e.prototype._settledAt = function(e, t, n) { - var a = this.promise; - a._state === x && (this._remaining--, 2 === e ? O(a, n) : this._result[t] = n), 0 === this._remaining && T(a, this._result) - }, e.prototype._willSettleAt = function(e, t) { - var n = this; - M(e, void 0, (function(e) { - return n._settledAt(1, t, e) - }), (function(e) { - return n._settledAt(2, t, e) - })) - }, e - }(); - var F = function() { - function e(t) { - this[S] = z++, this._result = this._state = void 0, this._subscribers = [], E !== t && ("function" != typeof t && function() { - throw new TypeError("You must pass a resolver function as the first argument to the promise constructor") - }(), this instanceof e ? function(e, t) { - try { - t((function(t) { - P(e, t) - }), (function(t) { - O(e, t) - })) - } catch (t) { - O(e, t) - } - }(this, t) : function() { - throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.") - }()) - } - return e.prototype.catch = function(e) { - return this.then(null, e) - }, e.prototype.finally = function(e) { - var t = this.constructor; - return this.then((function(n) { - return t.resolve(e()).then((function() { - return n - })) - }), (function(n) { - return t.resolve(e()).then((function() { - throw n - })) - })) - }, e - }(); - return F.prototype.then = _, F.all = function(e) { - return new L(this, e).promise - }, F.race = function(e) { - var n = this; - return t(e) ? new n((function(t, a) { - for (var r = e.length, i = 0; i < r; i++) n.resolve(e[i]).then(t, a) - })) : new n((function(e, t) { - return t(new TypeError("You must pass an array to race.")) - })) - }, F.resolve = w, F.reject = function(e) { - var t = new this(E); - return O(t, e), t - }, F._setScheduler = function(e) { - o = e - }, F._setAsap = function(e) { - s = e - }, F._asap = s, F.polyfill = function() { - var e = void 0; - if (void 0 !== n.g) e = n.g; - else if ("undefined" != typeof self) e = self; + }, Ae.prototype.clearUserProperties = function() { + if (this._shouldDeferCall()) return this._q.push(["clearUserProperties"].concat(Array.prototype.slice.call(arguments, 0))); + if (this._apiKeySet("clearUserProperties()")) { + var e = new ce; + e.clearAll(), this.identify(e) + } + }; + var Ne = function(e, t) { + for (var n = 0; n < t._q.length; n++) { + var a = e[t._q[n][0]]; + "function" === _(a) && a.apply(e, t._q[n].slice(1)) + } + return e + }; + Ae.prototype.identify = function(e, t) { + if (this._shouldDeferCall()) return this._q.push(["identify"].concat(Array.prototype.slice.call(arguments, 0))); + if (this._apiKeySet("identify()")) + if ("object" === _(e) && Object.prototype.hasOwnProperty.call(e, "_q") && (e = Ne(new ce, e)), e instanceof ce) { + if (Object.keys(e.userPropertiesOperations).length > 0) return this._logEvent(g.IDENTIFY_EVENT, null, null, e.userPropertiesOperations, null, null, null, t); + "function" === _(t) && t(0, "No request sent", { + reason: "No user property operations" + }) + } else I.error("Invalid identify input type. Expected Identify object but saw " + _(e)), "function" === _(t) && t(0, "No request sent", { + reason: "Invalid identify input type" + }); + else "function" === _(t) && t(0, "No request sent", { + reason: "API key is not set" + }) + }, Ae.prototype.groupIdentify = function(e, t, n, a) { + if (this._shouldDeferCall()) return this._q.push(["groupIdentify"].concat(Array.prototype.slice.call(arguments, 0))); + if (this._apiKeySet("groupIdentify()")) + if (L(e, "group_type", "string") && !O(e)) + if (null != t) + if ("object" === _(n) && Object.prototype.hasOwnProperty.call(n, "_q") && (n = Ne(new ce, n)), n instanceof ce) { + if (Object.keys(n.userPropertiesOperations).length > 0) return this._logEvent(g.GROUP_IDENTIFY_EVENT, null, null, null, r({}, e, t), n.userPropertiesOperations, null, a); + "function" === _(a) && a(0, "No request sent", { + reason: "No group property operations" + }) + } else I.error("Invalid identify input type. Expected Identify object but saw " + _(n)), "function" === _(a) && a(0, "No request sent", { + reason: "Invalid identify input type" + }); + else "function" === _(a) && a(0, "No request sent", { + reason: "Invalid group name" + }); + else "function" === _(a) && a(0, "No request sent", { + reason: "Invalid group type" + }); + else "function" === _(a) && a(0, "No request sent", { + reason: "API key is not set" + }) + }, Ae.prototype.setVersionName = function(e) { + if (this._shouldDeferCall()) return this._q.push(["setVersionName"].concat(Array.prototype.slice.call(arguments, 0))); + L(e, "versionName", "string") && (this.options.versionName = e) + }, Ae.prototype._logEvent = function(e, t, n, a, r, o, s, l) { + if (Pe(this), e) + if (this.options.optOut) "function" === _(l) && l(0, "No request sent", { + reason: "optOut is set to true" + }); else try { - e = Function("return this")() + var c; + c = e === g.IDENTIFY_EVENT || e === g.GROUP_IDENTIFY_EVENT ? this.nextIdentifyId() : this.nextEventId(); + var u = this.nextSequenceNumber(), + d = "number" === _(s) ? s : (new Date).getTime(); + (!this._sessionId || !this._lastEventTime || d - this._lastEventTime > this.options.sessionTimeout) && (this._sessionId = d), this._lastEventTime = d, Ie(this); + var p = this._ua.browser.name, + h = this._ua.browser.major, + m = this._ua.os.name; + a = a || {}; + var f = i({}, this._apiPropertiesTrackingOptions); + n = i({}, n || {}, f), t = t || {}, r = r || {}, o = o || {}; + var b = { + device_id: this.options.deviceId, + user_id: this.options.userId, + timestamp: d, + event_id: c, + session_id: this._sessionId || -1, + event_type: e, + version_name: this.options.versionName || null, + platform: Re(this, "platform") ? this.options.platform : null, + os_name: Re(this, "os_name") && p || null, + os_version: Re(this, "os_version") && h || null, + device_model: Re(this, "device_model") && m || null, + language: Re(this, "language") ? this.options.language : null, + api_properties: n, + event_properties: R(F(t)), + user_properties: R(F(a)), + uuid: Ee(), + library: { + name: "amplitude-js", + version: xe + }, + sequence_number: u, + groups: R(z(r)), + group_properties: R(F(o)), + user_agent: this._userAgent + }; + return e === g.IDENTIFY_EVENT || e === g.GROUP_IDENTIFY_EVENT ? (this._unsentIdentifys.push({ + event: b, + callback: l + }), this._limitEventsQueued(this._unsentIdentifys)) : (this._unsentEvents.push({ + event: b, + callback: l + }), this._limitEventsQueued(this._unsentEvents)), this.options.saveEvents && this.saveEvents(), this._sendEventsIfReady(), c } catch (e) { - throw new Error("polyfill failed because global object is unavailable in this environment") - } - var t = e.Promise; - if (t) { - var a = null; - try { - a = Object.prototype.toString.call(t.resolve()) - } catch (e) {} - if ("[object Promise]" === a && !t.cast) return + I.error(e) + } else "function" === _(l) && l(0, "No request sent", { + reason: "Missing eventType" + }) + }; + var Re = function(e, t) { + return !!e.options.trackingOptions[t] + }, + ze = function(e) { + for (var t = ["city", "country", "dma", "ip_address", "region"], n = {}, a = 0; a < t.length; a++) { + var r = t[a]; + Re(e, r) || (n[r] = !1) } - e.Promise = F - }, F.Promise = F, F - }() - }, 9620: e => { - "use strict"; - var t, n = "object" == typeof Reflect ? Reflect : null, - a = n && "function" == typeof n.apply ? n.apply : function(e, t, n) { - return Function.prototype.apply.call(e, t, n) + return n }; - t = n && "function" == typeof n.ownKeys ? n.ownKeys : Object.getOwnPropertySymbols ? function(e) { - return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)) - } : function(e) { - return Object.getOwnPropertyNames(e) + Ae.prototype._limitEventsQueued = function(e) { + e.length > this.options.savedMaxCount && e.splice(0, e.length - this.options.savedMaxCount).forEach((function(e) { + "function" === _(e.callback) && e.callback(0, "No request sent", { + reason: "Event dropped because options.savedMaxCount exceeded. User may be offline or have a content blocker" + }) + })) + }, Ae.prototype.logEvent = function(e, t, n) { + return this._shouldDeferCall() ? this._q.push(["logEvent"].concat(Array.prototype.slice.call(arguments, 0))) : this.logEventWithTimestamp(e, t, null, n) + }, Ae.prototype.logEventWithTimestamp = function(e, t, n, a) { + return this._shouldDeferCall() ? this._q.push(["logEventWithTimestamp"].concat(Array.prototype.slice.call(arguments, 0))) : this._apiKeySet("logEvent()") ? L(e, "eventType", "string") ? O(e) ? ("function" === _(a) && a(0, "No request sent", { + reason: "Missing eventType" + }), -1) : this._logEvent(e, t, null, null, null, null, n, a) : ("function" === _(a) && a(0, "No request sent", { + reason: "Invalid type for eventType" + }), -1) : ("function" === _(a) && a(0, "No request sent", { + reason: "API key not set" + }), -1) + }, Ae.prototype.logEventWithGroups = function(e, t, n, a) { + return this._shouldDeferCall() ? this._q.push(["logEventWithGroups"].concat(Array.prototype.slice.call(arguments, 0))) : this._apiKeySet("logEventWithGroups()") ? L(e, "eventType", "string") ? this._logEvent(e, t, null, null, n, null, null, a) : ("function" === _(a) && a(0, "No request sent", { + reason: "Invalid type for eventType" + }), -1) : ("function" === _(a) && a(0, "No request sent", { + reason: "API key not set" + }), -1) }; - var r = Number.isNaN || function(e) { - return e != e + var Le = function(e) { + return !isNaN(parseFloat(e)) && isFinite(e) }; - - function i() { - i.init.call(this) - } - e.exports = i, e.exports.once = function(e, t) { - return new Promise((function(n, a) { - function r(n) { - e.removeListener(t, i), a(n) + Ae.prototype.logRevenueV2 = function(e) { + if (this._shouldDeferCall()) return this._q.push(["logRevenueV2"].concat(Array.prototype.slice.call(arguments, 0))); + if (this._apiKeySet("logRevenueV2()")) + if ("object" === _(e) && Object.prototype.hasOwnProperty.call(e, "_q") && (e = Ne(new we, e)), e instanceof we) { + if (e && e._isValidRevenue()) return this.logEvent(g.REVENUE_EVENT, e._toJSONObject()) + } else I.error("Invalid revenue input type. Expected Revenue object but saw " + _(e)) + }, Ae.prototype.logRevenue = function(e, t, n) { + return this._shouldDeferCall() ? this._q.push(["logRevenue"].concat(Array.prototype.slice.call(arguments, 0))) : this._apiKeySet("logRevenue()") && Le(e) && (void 0 === t || Le(t)) ? this._logEvent(g.REVENUE_EVENT, {}, { + productId: n, + special: "revenue_amount", + quantity: t || 1, + price: e + }, null, null, null, null, null) : -1 + }, Ae.prototype.removeEvents = function(e, t, n, a) { + Fe(this, "_unsentEvents", e, n, a), Fe(this, "_unsentIdentifys", t, n, a) + }; + var Fe = function(e, t, n, a, r) { + if (!(n < 0)) { + for (var i = [], o = 0; o < e[t].length; o++) { + var s = e[t][o]; + s.event.event_id > n ? i.push(s) : s.callback && s.callback(a, r) } - - function i() { - "function" == typeof e.removeListener && e.removeListener("error", r), n([].slice.call(arguments)) + e[t] = i + } + }; + Ae.prototype.sendEvents = function() { + if (this._apiKeySet("sendEvents()")) { + if (this.options.optOut) this.removeEvents(1 / 0, 1 / 0, 0, "No request sent", { + reason: "Opt out is set to true" + }); + else if (0 !== this._unsentCount() && !this._sending) { + this._sending = !0; + var e = (this.options.forceHttps || "https:" === window.location.protocol ? "https" : "http") + "://" + this.options.apiEndpoint, + t = Math.min(this._unsentCount(), this.options.uploadBatchSize), + n = this._mergeEventsAndIdentifys(t), + a = n.maxEventId, + r = n.maxIdentifyId, + i = JSON.stringify(n.eventsToSend.map((function(e) { + return e.event + }))), + o = (new Date).getTime(), + s = { + client: this.options.apiKey, + e: i, + v: g.API_VERSION, + upload_time: o, + checksum: pe(g.API_VERSION + this.options.apiKey + i + o) + }, + l = this; + new _e(e, s, this.options.headers).send((function(e, n) { + l._sending = !1; + try { + 200 === e && "success" === n ? (l.removeEvents(a, r, e, n), l.options.saveEvents && l.saveEvents(), l._sendEventsIfReady()) : 413 === e && (1 === l.options.uploadBatchSize && l.removeEvents(a, r, e, n), l.options.uploadBatchSize = Math.ceil(t / 2), l.sendEvents()) + } catch (e) {} + })) } - f(e, t, i, { - once: !0 - }), "error" !== t && function(e, t, n) { - "function" == typeof e.on && f(e, "error", t, { - once: !0 - }) - }(e, r) - })) - }, i.EventEmitter = i, i.prototype._events = void 0, i.prototype._eventsCount = 0, i.prototype._maxListeners = void 0; - var o = 10; - - function s(e) { - if ("function" != typeof e) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e) - } - - function l(e) { - return void 0 === e._maxListeners ? i.defaultMaxListeners : e._maxListeners - } - - function c(e, t, n, a) { - var r, i, o, c; - if (s(n), void 0 === (i = e._events) ? (i = e._events = Object.create(null), e._eventsCount = 0) : (void 0 !== i.newListener && (e.emit("newListener", t, n.listener ? n.listener : n), i = e._events), o = i[t]), void 0 === o) o = i[t] = n, ++e._eventsCount; - else if ("function" == typeof o ? o = i[t] = a ? [n, o] : [o, n] : a ? o.unshift(n) : o.push(n), (r = l(e)) > 0 && o.length > r && !o.warned) { - o.warned = !0; - var u = new Error("Possible EventEmitter memory leak detected. " + o.length + " " + String(t) + " listeners added. Use emitter.setMaxListeners() to increase limit"); - u.name = "MaxListenersExceededWarning", u.emitter = e, u.type = t, u.count = o.length, c = u, console && console.warn && console.warn(c) + } else this.removeEvents(1 / 0, 1 / 0, 0, "No request sent", { + reason: "API key not set" + }) + }, Ae.prototype._mergeEventsAndIdentifys = function(e) { + for (var t = [], n = 0, a = -1, r = 0, i = -1; t.length < e;) { + var o = void 0, + s = r >= this._unsentIdentifys.length, + l = n >= this._unsentEvents.length; + if (l && s) { + I.error("Merging Events and Identifys, less events and identifys than expected"); + break + } + s ? a = (o = this._unsentEvents[n++]).event.event_id : l ? i = (o = this._unsentIdentifys[r++]).event.event_id : !("sequence_number" in this._unsentEvents[n].event) || this._unsentEvents[n].event.sequence_number < this._unsentIdentifys[r].event.sequence_number ? a = (o = this._unsentEvents[n++]).event.event_id : i = (o = this._unsentIdentifys[r++]).event.event_id, t.push(o) } - return e - } + return { + eventsToSend: t, + maxEventId: a, + maxIdentifyId: i + } + }, Ae.prototype.setGlobalUserProperties = function(e) { + this.setUserProperties(e) + }, Ae.prototype.__VERSION__ = xe, Ae.prototype._shouldDeferCall = function() { + return this._pendingReadStorage || this._initializationDeferred + }, Ae.prototype._deferInitialization = function() { + this._initializationDeferred = !0, this._q.push(["init"].concat(Array.prototype.slice.call(arguments, 0))) + }, Ae.prototype.enableTracking = function() { + this._initializationDeferred = !1, Ie(this), this.runQueuedFunctions() + }; + var qe = function() { + this.options = i({}, Ce), this._q = [], this._instances = {} + }; + qe.prototype.Identify = ce, qe.prototype.Revenue = we, qe.prototype.getInstance = function(e) { + e = O(e) ? g.DEFAULT_INSTANCE : e.toLowerCase(); + var t = this._instances[e]; + return void 0 === t && (t = new Ae(e), this._instances[e] = t), t + }, qe.prototype.runQueuedFunctions = function() { + for (var e = 0; e < this._q.length; e++) { + var t = this[this._q[e][0]]; + "function" === _(t) && t.apply(this, this._q[e].slice(1)) + } + for (var n in this._q = [], this._instances) Object.prototype.hasOwnProperty.call(this._instances, n) && this._instances[n].runQueuedFunctions() + }, qe.prototype.init = function(e, t, n, a) { + this.getInstance().init(e, t, n, function(e) { + this.options = e.options, "function" === _(a) && a(e) + }.bind(this)) + }, qe.prototype.isNewSession = function() { + return this.getInstance().isNewSession() + }, qe.prototype.getSessionId = function() { + return this.getInstance().getSessionId() + }, qe.prototype.nextEventId = function() { + return this.getInstance().nextEventId() + }, qe.prototype.nextIdentifyId = function() { + return this.getInstance().nextIdentifyId() + }, qe.prototype.nextSequenceNumber = function() { + return this.getInstance().nextSequenceNumber() + }, qe.prototype.saveEvents = function() { + this.getInstance().saveEvents() + }, qe.prototype.setDomain = function(e) { + this.getInstance().setDomain(e) + }, qe.prototype.setUserId = function(e) { + this.getInstance().setUserId(e) + }, qe.prototype.setGroup = function(e, t) { + this.getInstance().setGroup(e, t) + }, qe.prototype.setOptOut = function(e) { + this.getInstance().setOptOut(e) + }, qe.prototype.regenerateDeviceId = function() { + this.getInstance().regenerateDeviceId() + }, qe.prototype.setDeviceId = function(e) { + this.getInstance().setDeviceId(e) + }, qe.prototype.setUserProperties = function(e) { + this.getInstance().setUserProperties(e) + }, qe.prototype.clearUserProperties = function() { + this.getInstance().clearUserProperties() + }, qe.prototype.identify = function(e, t) { + this.getInstance().identify(e, t) + }, qe.prototype.setVersionName = function(e) { + this.getInstance().setVersionName(e) + }, qe.prototype.logEvent = function(e, t, n) { + return this.getInstance().logEvent(e, t, n) + }, qe.prototype.logEventWithGroups = function(e, t, n, a) { + return this.getInstance().logEventWithGroups(e, t, n, a) + }, qe.prototype.logRevenueV2 = function(e) { + return this.getInstance().logRevenueV2(e) + }, qe.prototype.logRevenue = function(e, t, n) { + return this.getInstance().logRevenue(e, t, n) + }, qe.prototype.removeEvents = function(e, t) { + this.getInstance().removeEvents(e, t) + }, qe.prototype.sendEvents = function(e) { + this.getInstance().sendEvents(e) + }, qe.prototype.setGlobalUserProperties = function(e) { + this.getInstance().setUserProperties(e) + }, qe.prototype.__VERSION__ = xe; + var Be = window.amplitude || {}, + Ue = new qe; + for (var He in Ue._q = Be._q || [], Be._iq) Object.prototype.hasOwnProperty.call(Be._iq, He) && (Ue.getInstance(He)._q = Be._iq[He]._q || []); + return Ue.runQueuedFunctions(), Ue + }() +}, 6952: e => { + "use strict"; + e.exports = function(e, t, n) { + if ("function" == typeof Array.prototype.find) return e.find(t, n); + n = n || this; + var a, r = e.length; + if ("function" != typeof t) throw new TypeError(t + " is not a function"); + for (a = 0; a < r; a++) + if (t.call(n, e[a], a, e)) return e[a] + } +}, 7943: (e, t) => { + "use strict"; + t.byteLength = function(e) { + var t = l(e), + n = t[0], + a = t[1]; + return 3 * (n + a) / 4 - a + }, t.toByteArray = function(e) { + var t, n, i = l(e), + o = i[0], + s = i[1], + c = new r(function(e, t, n) { + return 3 * (t + n) / 4 - n + }(0, o, s)), + u = 0, + d = s > 0 ? o - 4 : o; + for (n = 0; n < d; n += 4) t = a[e.charCodeAt(n)] << 18 | a[e.charCodeAt(n + 1)] << 12 | a[e.charCodeAt(n + 2)] << 6 | a[e.charCodeAt(n + 3)], c[u++] = t >> 16 & 255, c[u++] = t >> 8 & 255, c[u++] = 255 & t; + return 2 === s && (t = a[e.charCodeAt(n)] << 2 | a[e.charCodeAt(n + 1)] >> 4, c[u++] = 255 & t), 1 === s && (t = a[e.charCodeAt(n)] << 10 | a[e.charCodeAt(n + 1)] << 4 | a[e.charCodeAt(n + 2)] >> 2, c[u++] = t >> 8 & 255, c[u++] = 255 & t), c + }, t.fromByteArray = function(e) { + for (var t, a = e.length, r = a % 3, i = [], o = 16383, s = 0, l = a - r; s < l; s += o) i.push(c(e, s, s + o > l ? l : s + o)); + return 1 === r ? (t = e[a - 1], i.push(n[t >> 2] + n[t << 4 & 63] + "==")) : 2 === r && (t = (e[a - 2] << 8) + e[a - 1], i.push(n[t >> 10] + n[t >> 4 & 63] + n[t << 2 & 63] + "=")), i.join("") + }; + for (var n = [], a = [], r = "undefined" != typeof Uint8Array ? Uint8Array : Array, i = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", o = 0, s = i.length; o < s; ++o) n[o] = i[o], a[i.charCodeAt(o)] = o; - function u() { - if (!this.fired) return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments) - } + function l(e) { + var t = e.length; + if (t % 4 > 0) throw new Error("Invalid string. Length must be a multiple of 4"); + var n = e.indexOf("="); + return -1 === n && (n = t), [n, n === t ? 0 : 4 - n % 4] + } - function d(e, t, n) { - var a = { - fired: !1, - wrapFn: void 0, - target: e, - type: t, - listener: n - }, - r = u.bind(a); - return r.listener = n, a.wrapFn = r, r - } + function c(e, t, a) { + for (var r, i, o = [], s = t; s < a; s += 3) r = (e[s] << 16 & 16711680) + (e[s + 1] << 8 & 65280) + (255 & e[s + 2]), o.push(n[(i = r) >> 18 & 63] + n[i >> 12 & 63] + n[i >> 6 & 63] + n[63 & i]); + return o.join("") + } + a["-".charCodeAt(0)] = 62, a["_".charCodeAt(0)] = 63 +}, 8912: function(e, t, n) { + "use strict"; + var a = this && this.__assign || function() { + return a = Object.assign || function(e) { + for (var t, n = 1, a = arguments.length; n < a; n++) + for (var r in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, r) && (e[r] = t[r]); + return e + }, a.apply(this, arguments) + }; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.bindAll = void 0; + var r = n(4395); - function p(e, t, n) { - var a = e._events; - if (void 0 === a) return []; - var r = a[t]; - return void 0 === r ? [] : "function" == typeof r ? n ? [r.listener || r] : [r] : n ? function(e) { - for (var t = new Array(e.length), n = 0; n < t.length; ++n) t[n] = e[n].listener || e[n]; - return t - }(r) : m(r, r.length) + function i(e) { + if (void 0 !== e) return "boolean" == typeof e ? { + capture: e + } : e + } + t.bindAll = function(e, t, n) { + var o = t.map((function(t) { + var o = function(e, t) { + return null == t ? e : a(a({}, e), { + options: a(a({}, i(t)), i(e.options)) + }) + }(t, n); + return r.bind(e, o) + })); + return function() { + o.forEach((function(e) { + return e() + })) } - - function h(e) { - var t = this._events; - if (void 0 !== t) { - var n = t[e]; - if ("function" == typeof n) return 1; - if (void 0 !== n) return n.length + } +}, 4395: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.bind = void 0, t.bind = function(e, t) { + var n = t.type, + a = t.listener, + r = t.options; + return e.addEventListener(n, a, r), + function() { + e.removeEventListener(n, a, r) } - return 0 - } - - function m(e, t) { - for (var n = new Array(t), a = 0; a < t; ++a) n[a] = e[a]; - return n + } +}, 412: (e, t, n) => { + "use strict"; + var a = n(4395); + Object.defineProperty(t, "ak", { + enumerable: !0, + get: function() { + return a.bind } + }); + n(8912) +}, 1481: function(e) { + e.exports = function(e) { + var t = {}; - function f(e, t, n, a) { - if ("function" == typeof e.on) a.once ? e.once(t, n) : e.on(t, n); - else { - if ("function" != typeof e.addEventListener) throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof e); - e.addEventListener(t, (function r(i) { - a.once && e.removeEventListener(t, r), n(i) - })) - } + function n(a) { + if (t[a]) return t[a].exports; + var r = t[a] = { + i: a, + l: !1, + exports: {} + }; + return e[a].call(r.exports, r, r.exports, n), r.l = !0, r.exports } - Object.defineProperty(i, "defaultMaxListeners", { - enumerable: !0, - get: function() { - return o - }, - set: function(e) { - if ("number" != typeof e || e < 0 || r(e)) throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + e + "."); - o = e - } - }), i.init = function() { - void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0 - }, i.prototype.setMaxListeners = function(e) { - if ("number" != typeof e || e < 0 || r(e)) throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + e + "."); - return this._maxListeners = e, this - }, i.prototype.getMaxListeners = function() { - return l(this) - }, i.prototype.emit = function(e) { - for (var t = [], n = 1; n < arguments.length; n++) t.push(arguments[n]); - var r = "error" === e, - i = this._events; - if (void 0 !== i) r = r && void 0 === i.error; - else if (!r) return !1; - if (r) { - var o; - if (t.length > 0 && (o = t[0]), o instanceof Error) throw o; - var s = new Error("Unhandled error." + (o ? " (" + o.message + ")" : "")); - throw s.context = o, s - } - var l = i[e]; - if (void 0 === l) return !1; - if ("function" == typeof l) a(l, this, t); - else { - var c = l.length, - u = m(l, c); - for (n = 0; n < c; ++n) a(u[n], this, t) - } - return !0 - }, i.prototype.addListener = function(e, t) { - return c(this, e, t, !1) - }, i.prototype.on = i.prototype.addListener, i.prototype.prependListener = function(e, t) { - return c(this, e, t, !0) - }, i.prototype.once = function(e, t) { - return s(t), this.on(e, d(this, e, t)), this - }, i.prototype.prependOnceListener = function(e, t) { - return s(t), this.prependListener(e, d(this, e, t)), this - }, i.prototype.removeListener = function(e, t) { - var n, a, r, i, o; - if (s(t), void 0 === (a = this._events)) return this; - if (void 0 === (n = a[e])) return this; - if (n === t || n.listener === t) 0 == --this._eventsCount ? this._events = Object.create(null) : (delete a[e], a.removeListener && this.emit("removeListener", e, n.listener || t)); - else if ("function" != typeof n) { - for (r = -1, i = n.length - 1; i >= 0; i--) - if (n[i] === t || n[i].listener === t) { - o = n[i].listener, r = i; - break - } if (r < 0) return this; - 0 === r ? n.shift() : function(e, t) { - for (; t + 1 < e.length; t++) e[t] = e[t + 1]; - e.pop() - }(n, r), 1 === n.length && (a[e] = n[0]), void 0 !== a.removeListener && this.emit("removeListener", e, o || t) - } - return this - }, i.prototype.off = i.prototype.removeListener, i.prototype.removeAllListeners = function(e) { - var t, n, a; - if (void 0 === (n = this._events)) return this; - if (void 0 === n.removeListener) return 0 === arguments.length ? (this._events = Object.create(null), this._eventsCount = 0) : void 0 !== n[e] && (0 == --this._eventsCount ? this._events = Object.create(null) : delete n[e]), this; - if (0 === arguments.length) { - var r, i = Object.keys(n); - for (a = 0; a < i.length; ++a) "removeListener" !== (r = i[a]) && this.removeAllListeners(r); - return this.removeAllListeners("removeListener"), this._events = Object.create(null), this._eventsCount = 0, this - } - if ("function" == typeof(t = n[e])) this.removeListener(e, t); - else if (void 0 !== t) - for (a = t.length - 1; a >= 0; a--) this.removeListener(e, t[a]); - return this - }, i.prototype.listeners = function(e) { - return p(this, e, !0) - }, i.prototype.rawListeners = function(e) { - return p(this, e, !1) - }, i.listenerCount = function(e, t) { - return "function" == typeof e.listenerCount ? e.listenerCount(t) : h.call(e, t) - }, i.prototype.listenerCount = h, i.prototype.eventNames = function() { - return this._eventsCount > 0 ? t(this._events) : [] - } - }, 8474: (e, t, n) => { - var a; - ! function() { + return n.m = e, n.c = t, n.d = function(e, t, a) { + n.o(e, t) || Object.defineProperty(e, t, { + enumerable: !0, + get: a + }) + }, n.r = function(e) { + "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { + value: "Module" + }), Object.defineProperty(e, "__esModule", { + value: !0 + }) + }, n.t = function(e, t) { + if (1 & t && (e = n(e)), 8 & t) return e; + if (4 & t && "object" == typeof e && e && e.__esModule) return e; + var a = Object.create(null); + if (n.r(a), Object.defineProperty(a, "default", { + enumerable: !0, + value: e + }), 2 & t && "string" != typeof e) + for (var r in e) n.d(a, r, function(t) { + return e[t] + }.bind(null, r)); + return a + }, n.n = function(e) { + var t = e && e.__esModule ? function() { + return e.default + } : function() { + return e + }; + return n.d(t, "a", t), t + }, n.o = function(e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + }, n.p = "", n(n.s = 90) + }({ + 17: function(e, t, n) { "use strict"; - var r = !("undefined" == typeof window || !window.document || !window.document.createElement), - i = { - canUseDOM: r, - canUseWorkers: "undefined" != typeof Worker, - canUseEventListeners: r && !(!window.addEventListener && !window.attachEvent), - canUseViewport: r && !!window.screen - }; - void 0 === (a = function() { - return i - }.call(t, n, t, e)) || (e.exports = a) - }() - }, 9157: (e, t, n) => { - var a = n(9755), - r = n(6648); - void 0 === r.$ && (r.$ = a), void 0 === r.jQuery && (r.jQuery = a), e.exports = a - }, 6648: (e, t, n) => { - "use strict"; - e.exports = function() { - if ("object" == typeof globalThis) return globalThis; - var e; - try { - e = this || new Function("return this")() - } catch (e) { - if ("object" == typeof window) return window; - if ("object" == typeof self) return self; - if (void 0 !== n.g) return n.g - } - return e - }() - }, 3763: e => { - "use strict"; - var t = /([A-Z])/g; - e.exports = function(e) { - return e.replace(t, "-$1").toLowerCase() - } - }, 8154: (e, t, n) => { - "use strict"; - var a = n(3763), - r = /^ms-/; - e.exports = function(e) { - return a(e).replace(r, "-ms-") - } - }, 8830: () => { - ! function() { + t.__esModule = !0, t.default = void 0; + var a = n(18), + r = function() { + function e() {} + return e.getFirstMatch = function(e, t) { + var n = t.match(e); + return n && n.length > 0 && n[1] || "" + }, e.getSecondMatch = function(e, t) { + var n = t.match(e); + return n && n.length > 1 && n[2] || "" + }, e.matchAndReturnConst = function(e, t, n) { + if (e.test(t)) return n + }, e.getWindowsVersionName = function(e) { + switch (e) { + case "NT": + return "NT"; + case "XP": + case "NT 5.1": + return "XP"; + case "NT 5.0": + return "2000"; + case "NT 5.2": + return "2003"; + case "NT 6.0": + return "Vista"; + case "NT 6.1": + return "7"; + case "NT 6.2": + return "8"; + case "NT 6.3": + return "8.1"; + case "NT 10.0": + return "10"; + default: + return + } + }, e.getMacOSVersionName = function(e) { + var t = e.split(".").splice(0, 2).map((function(e) { + return parseInt(e, 10) || 0 + })); + if (t.push(0), 10 === t[0]) switch (t[1]) { + case 5: + return "Leopard"; + case 6: + return "Snow Leopard"; + case 7: + return "Lion"; + case 8: + return "Mountain Lion"; + case 9: + return "Mavericks"; + case 10: + return "Yosemite"; + case 11: + return "El Capitan"; + case 12: + return "Sierra"; + case 13: + return "High Sierra"; + case 14: + return "Mojave"; + case 15: + return "Catalina"; + default: + return + } + }, e.getAndroidVersionName = function(e) { + var t = e.split(".").splice(0, 2).map((function(e) { + return parseInt(e, 10) || 0 + })); + if (t.push(0), !(1 === t[0] && t[1] < 5)) return 1 === t[0] && t[1] < 6 ? "Cupcake" : 1 === t[0] && t[1] >= 6 ? "Donut" : 2 === t[0] && t[1] < 2 ? "Eclair" : 2 === t[0] && 2 === t[1] ? "Froyo" : 2 === t[0] && t[1] > 2 ? "Gingerbread" : 3 === t[0] ? "Honeycomb" : 4 === t[0] && t[1] < 1 ? "Ice Cream Sandwich" : 4 === t[0] && t[1] < 4 ? "Jelly Bean" : 4 === t[0] && t[1] >= 4 ? "KitKat" : 5 === t[0] ? "Lollipop" : 6 === t[0] ? "Marshmallow" : 7 === t[0] ? "Nougat" : 8 === t[0] ? "Oreo" : 9 === t[0] ? "Pie" : void 0 + }, e.getVersionPrecision = function(e) { + return e.split(".").length + }, e.compareVersions = function(t, n, a) { + void 0 === a && (a = !1); + var r = e.getVersionPrecision(t), + i = e.getVersionPrecision(n), + o = Math.max(r, i), + s = 0, + l = e.map([t, n], (function(t) { + var n = o - e.getVersionPrecision(t), + a = t + new Array(n + 1).join(".0"); + return e.map(a.split("."), (function(e) { + return new Array(20 - e.length).join("0") + e + })).reverse() + })); + for (a && (s = o - Math.min(r, i)), o -= 1; o >= s;) { + if (l[0][o] > l[1][o]) return 1; + if (l[0][o] === l[1][o]) { + if (o === s) return 0; + o -= 1 + } else if (l[0][o] < l[1][o]) return -1 + } + }, e.map = function(e, t) { + var n, a = []; + if (Array.prototype.map) return Array.prototype.map.call(e, t); + for (n = 0; n < e.length; n += 1) a.push(t(e[n])); + return a + }, e.getBrowserAlias = function(e) { + return a.BROWSER_ALIASES_MAP[e] + }, e.getBrowserTypeByAlias = function(e) { + return a.BROWSER_MAP[e] || "" + }, e + }(); + t.default = r, e.exports = t.default + }, + 18: function(e, t, n) { "use strict"; + t.__esModule = !0, t.ENGINE_MAP = t.OS_MAP = t.PLATFORMS_MAP = t.BROWSER_MAP = t.BROWSER_ALIASES_MAP = void 0, t.BROWSER_ALIASES_MAP = { + "Amazon Silk": "amazon_silk", + "Android Browser": "android", + Bada: "bada", + BlackBerry: "blackberry", + Chrome: "chrome", + Chromium: "chromium", + Epiphany: "epiphany", + Firefox: "firefox", + Focus: "focus", + Generic: "generic", + "Google Search": "google_search", + Googlebot: "googlebot", + "Internet Explorer": "ie", + "K-Meleon": "k_meleon", + Maxthon: "maxthon", + "Microsoft Edge": "edge", + "MZ Browser": "mz", + "NAVER Whale Browser": "naver", + Opera: "opera", + "Opera Coast": "opera_coast", + PhantomJS: "phantomjs", + Puffin: "puffin", + QupZilla: "qupzilla", + QQ: "qq", + QQLite: "qqlite", + Safari: "safari", + Sailfish: "sailfish", + "Samsung Internet for Android": "samsung_internet", + SeaMonkey: "seamonkey", + Sleipnir: "sleipnir", + Swing: "swing", + Tizen: "tizen", + "UC Browser": "uc", + Vivaldi: "vivaldi", + "WebOS Browser": "webos", + WeChat: "wechat", + "Yandex Browser": "yandex", + Roku: "roku" + }, t.BROWSER_MAP = { + amazon_silk: "Amazon Silk", + android: "Android Browser", + bada: "Bada", + blackberry: "BlackBerry", + chrome: "Chrome", + chromium: "Chromium", + epiphany: "Epiphany", + firefox: "Firefox", + focus: "Focus", + generic: "Generic", + googlebot: "Googlebot", + google_search: "Google Search", + ie: "Internet Explorer", + k_meleon: "K-Meleon", + maxthon: "Maxthon", + edge: "Microsoft Edge", + mz: "MZ Browser", + naver: "NAVER Whale Browser", + opera: "Opera", + opera_coast: "Opera Coast", + phantomjs: "PhantomJS", + puffin: "Puffin", + qupzilla: "QupZilla", + qq: "QQ Browser", + qqlite: "QQ Browser Lite", + safari: "Safari", + sailfish: "Sailfish", + samsung_internet: "Samsung Internet for Android", + seamonkey: "SeaMonkey", + sleipnir: "Sleipnir", + swing: "Swing", + tizen: "Tizen", + uc: "UC Browser", + vivaldi: "Vivaldi", + webos: "WebOS Browser", + wechat: "WeChat", + yandex: "Yandex Browser" + }, t.PLATFORMS_MAP = { + tablet: "tablet", + mobile: "mobile", + desktop: "desktop", + tv: "tv" + }, t.OS_MAP = { + WindowsPhone: "Windows Phone", + Windows: "Windows", + MacOS: "macOS", + iOS: "iOS", + Android: "Android", + WebOS: "WebOS", + BlackBerry: "BlackBerry", + Bada: "Bada", + Tizen: "Tizen", + Linux: "Linux", + ChromeOS: "Chrome OS", + PlayStation4: "PlayStation 4", + Roku: "Roku" + }, t.ENGINE_MAP = { + EdgeHTML: "EdgeHTML", + Blink: "Blink", + Trident: "Trident", + Presto: "Presto", + Gecko: "Gecko", + WebKit: "WebKit" + } + }, + 90: function(e, t, n) { + "use strict"; + t.__esModule = !0, t.default = void 0; + var a, r = (a = n(91)) && a.__esModule ? a : { + default: a + }, + i = n(18); - function e(e) { - var t = !0, - n = !1, - a = null, - r = { - text: !0, - search: !0, - url: !0, - tel: !0, - email: !0, - password: !0, - number: !0, - date: !0, - month: !0, - week: !0, - time: !0, - datetime: !0, - "datetime-local": !0 - }; - - function i(e) { - return !!(e && e !== document && "HTML" !== e.nodeName && "BODY" !== e.nodeName && "classList" in e && "contains" in e.classList) - } - - function o(e) { - e.classList.contains("focus-visible") || (e.classList.add("focus-visible"), e.setAttribute("data-focus-visible-added", "")) - } - - function s(e) { - t = !1 - } - - function l() { - document.addEventListener("mousemove", c), document.addEventListener("mousedown", c), document.addEventListener("mouseup", c), document.addEventListener("pointermove", c), document.addEventListener("pointerdown", c), document.addEventListener("pointerup", c), document.addEventListener("touchmove", c), document.addEventListener("touchstart", c), document.addEventListener("touchend", c) + function o(e, t) { + for (var n = 0; n < t.length; n++) { + var a = t[n]; + a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) } + } + var s = function() { + function e() {} + var t, n; + return e.getParser = function(e, t) { + if (void 0 === t && (t = !1), "string" != typeof e) throw new Error("UserAgent should be a string"); + return new r.default(e, t) + }, e.parse = function(e) { + return new r.default(e).getResult() + }, t = e, n = [{ + key: "BROWSER_MAP", + get: function() { + return i.BROWSER_MAP + } + }, { + key: "ENGINE_MAP", + get: function() { + return i.ENGINE_MAP + } + }, { + key: "OS_MAP", + get: function() { + return i.OS_MAP + } + }, { + key: "PLATFORMS_MAP", + get: function() { + return i.PLATFORMS_MAP + } + }], null && o(t.prototype, null), n && o(t, n), e + }(); + t.default = s, e.exports = t.default + }, + 91: function(e, t, n) { + "use strict"; + t.__esModule = !0, t.default = void 0; + var a = l(n(92)), + r = l(n(93)), + i = l(n(94)), + o = l(n(95)), + s = l(n(17)); - function c(e) { - e.target.nodeName && "html" === e.target.nodeName.toLowerCase() || (t = !1, document.removeEventListener("mousemove", c), document.removeEventListener("mousedown", c), document.removeEventListener("mouseup", c), document.removeEventListener("pointermove", c), document.removeEventListener("pointerdown", c), document.removeEventListener("pointerup", c), document.removeEventListener("touchmove", c), document.removeEventListener("touchstart", c), document.removeEventListener("touchend", c)) + function l(e) { + return e && e.__esModule ? e : { + default: e } - document.addEventListener("keydown", (function(n) { - n.metaKey || n.altKey || n.ctrlKey || (i(e.activeElement) && o(e.activeElement), t = !0) - }), !0), document.addEventListener("mousedown", s, !0), document.addEventListener("pointerdown", s, !0), document.addEventListener("touchstart", s, !0), document.addEventListener("visibilitychange", (function(e) { - "hidden" === document.visibilityState && (n && (t = !0), l()) - }), !0), l(), e.addEventListener("focus", (function(e) { - var n, a, s; - i(e.target) && (t || (a = (n = e.target).type, "INPUT" === (s = n.tagName) && r[a] && !n.readOnly || "TEXTAREA" === s && !n.readOnly || n.isContentEditable)) && o(e.target) - }), !0), e.addEventListener("blur", (function(e) { - var t; - i(e.target) && (e.target.classList.contains("focus-visible") || e.target.hasAttribute("data-focus-visible-added")) && (n = !0, window.clearTimeout(a), a = window.setTimeout((function() { - n = !1 - }), 100), (t = e.target).hasAttribute("data-focus-visible-added") && (t.classList.remove("focus-visible"), t.removeAttribute("data-focus-visible-added"))) - }), !0), e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host ? e.host.setAttribute("data-js-focus-visible", "") : e.nodeType === Node.DOCUMENT_NODE && (document.documentElement.classList.add("js-focus-visible"), document.documentElement.setAttribute("data-js-focus-visible", "")) } - if ("undefined" != typeof window && "undefined" != typeof document) { - var t; - window.applyFocusVisiblePolyfill = e; - try { - t = new CustomEvent("focus-visible-polyfill-ready") - } catch (e) { - (t = document.createEvent("CustomEvent")).initCustomEvent("focus-visible-polyfill-ready", !1, !1, {}) + var c = function() { + function e(e, t) { + if (void 0 === t && (t = !1), null == e || "" === e) throw new Error("UserAgent parameter can't be empty"); + this._ua = e, this.parsedResult = {}, !0 !== t && this.parse() } - window.dispatchEvent(t) - } - "undefined" != typeof document && e(document) - }() - }, 9483: (e, t, n) => { - "use strict"; - var a = n(5837), - r = { - childContextTypes: !0, - contextType: !0, - contextTypes: !0, - defaultProps: !0, - displayName: !0, - getDefaultProps: !0, - getDerivedStateFromError: !0, - getDerivedStateFromProps: !0, - mixins: !0, - propTypes: !0, - type: !0 - }, - i = { - name: !0, - length: !0, - prototype: !0, - caller: !0, - callee: !0, - arguments: !0, - arity: !0 - }, - o = { - $$typeof: !0, - compare: !0, - defaultProps: !0, - displayName: !0, - propTypes: !0, - type: !0 - }, - s = {}; - - function l(e) { - return a.isMemo(e) ? o : s[e.$$typeof] || r - } - s[a.ForwardRef] = { - $$typeof: !0, - render: !0, - defaultProps: !0, - displayName: !0, - propTypes: !0 - }; - var c = Object.defineProperty, - u = Object.getOwnPropertyNames, - d = Object.getOwnPropertySymbols, - p = Object.getOwnPropertyDescriptor, - h = Object.getPrototypeOf, - m = Object.prototype; - e.exports = function e(t, n, a) { - if ("string" != typeof n) { - if (m) { - var r = h(n); - r && r !== m && e(t, r, a) - } - var o = u(n); - d && (o = o.concat(d(n))); - for (var s = l(t), f = l(n), g = 0; g < o.length; ++g) { - var b = o[g]; - if (!(i[b] || a && a[b] || f && f[b] || s && s[b])) { - var y = p(n, b); - try { - c(t, b, y) - } catch (e) {} + var t = e.prototype; + return t.getUA = function() { + return this._ua + }, t.test = function(e) { + return e.test(this._ua) + }, t.parseBrowser = function() { + var e = this; + this.parsedResult.browser = {}; + var t = a.default.find((function(t) { + if ("function" == typeof t.test) return t.test(e); + if (t.test instanceof Array) return t.test.some((function(t) { + return e.test(t) + })); + throw new Error("Browser's test function is not valid") + })); + return t && (this.parsedResult.browser = t.describe(this.getUA())), this.parsedResult.browser + }, t.getBrowser = function() { + return this.parsedResult.browser ? this.parsedResult.browser : this.parseBrowser() + }, t.getBrowserName = function(e) { + return e ? String(this.getBrowser().name).toLowerCase() || "" : this.getBrowser().name || "" + }, t.getBrowserVersion = function() { + return this.getBrowser().version + }, t.getOS = function() { + return this.parsedResult.os ? this.parsedResult.os : this.parseOS() + }, t.parseOS = function() { + var e = this; + this.parsedResult.os = {}; + var t = r.default.find((function(t) { + if ("function" == typeof t.test) return t.test(e); + if (t.test instanceof Array) return t.test.some((function(t) { + return e.test(t) + })); + throw new Error("Browser's test function is not valid") + })); + return t && (this.parsedResult.os = t.describe(this.getUA())), this.parsedResult.os + }, t.getOSName = function(e) { + var t = this.getOS().name; + return e ? String(t).toLowerCase() || "" : t || "" + }, t.getOSVersion = function() { + return this.getOS().version + }, t.getPlatform = function() { + return this.parsedResult.platform ? this.parsedResult.platform : this.parsePlatform() + }, t.getPlatformType = function(e) { + void 0 === e && (e = !1); + var t = this.getPlatform().type; + return e ? String(t).toLowerCase() || "" : t || "" + }, t.parsePlatform = function() { + var e = this; + this.parsedResult.platform = {}; + var t = i.default.find((function(t) { + if ("function" == typeof t.test) return t.test(e); + if (t.test instanceof Array) return t.test.some((function(t) { + return e.test(t) + })); + throw new Error("Browser's test function is not valid") + })); + return t && (this.parsedResult.platform = t.describe(this.getUA())), this.parsedResult.platform + }, t.getEngine = function() { + return this.parsedResult.engine ? this.parsedResult.engine : this.parseEngine() + }, t.getEngineName = function(e) { + return e ? String(this.getEngine().name).toLowerCase() || "" : this.getEngine().name || "" + }, t.parseEngine = function() { + var e = this; + this.parsedResult.engine = {}; + var t = o.default.find((function(t) { + if ("function" == typeof t.test) return t.test(e); + if (t.test instanceof Array) return t.test.some((function(t) { + return e.test(t) + })); + throw new Error("Browser's test function is not valid") + })); + return t && (this.parsedResult.engine = t.describe(this.getUA())), this.parsedResult.engine + }, t.parse = function() { + return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this + }, t.getResult = function() { + return Object.assign({}, this.parsedResult) + }, t.satisfies = function(e) { + var t = this, + n = {}, + a = 0, + r = {}, + i = 0; + if (Object.keys(e).forEach((function(t) { + var o = e[t]; + "string" == typeof o ? (r[t] = o, i += 1) : "object" == typeof o && (n[t] = o, a += 1) + })), a > 0) { + var o = Object.keys(n), + s = o.find((function(e) { + return t.isOS(e) + })); + if (s) { + var l = this.satisfies(n[s]); + if (void 0 !== l) return l + } + var c = o.find((function(e) { + return t.isPlatform(e) + })); + if (c) { + var u = this.satisfies(n[c]); + if (void 0 !== u) return u + } + } + if (i > 0) { + var d = Object.keys(r).find((function(e) { + return t.isBrowser(e, !0) + })); + if (void 0 !== d) return this.compareVersion(r[d]) + } + }, t.isBrowser = function(e, t) { + void 0 === t && (t = !1); + var n = this.getBrowserName().toLowerCase(), + a = e.toLowerCase(), + r = s.default.getBrowserTypeByAlias(a); + return t && r && (a = r.toLowerCase()), a === n + }, t.compareVersion = function(e) { + var t = [0], + n = e, + a = !1, + r = this.getBrowserVersion(); + if ("string" == typeof r) return ">" === e[0] || "<" === e[0] ? (n = e.substr(1), "=" === e[1] ? (a = !0, n = e.substr(2)) : t = [], ">" === e[0] ? t.push(1) : t.push(-1)) : "=" === e[0] ? n = e.substr(1) : "~" === e[0] && (a = !0, n = e.substr(1)), t.indexOf(s.default.compareVersions(r, n, a)) > -1 + }, t.isOS = function(e) { + return this.getOSName(!0) === String(e).toLowerCase() + }, t.isPlatform = function(e) { + return this.getPlatformType(!0) === String(e).toLowerCase() + }, t.isEngine = function(e) { + return this.getEngineName(!0) === String(e).toLowerCase() + }, t.is = function(e) { + return this.isBrowser(e) || this.isOS(e) || this.isPlatform(e) + }, t.some = function(e) { + var t = this; + return void 0 === e && (e = []), e.some((function(e) { + return t.is(e) + })) + }, e + }(); + t.default = c, e.exports = t.default + }, + 92: function(e, t, n) { + "use strict"; + t.__esModule = !0, t.default = void 0; + var a, r = (a = n(17)) && a.__esModule ? a : { + default: a + }, + i = /version\/(\d+(\.?_?\d+)+)/i, + o = [{ + test: [/googlebot/i], + describe: function(e) { + var t = { + name: "Googlebot" + }, + n = r.default.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/opera/i], + describe: function(e) { + var t = { + name: "Opera" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/opr\/|opios/i], + describe: function(e) { + var t = { + name: "Opera" + }, + n = r.default.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/SamsungBrowser/i], + describe: function(e) { + var t = { + name: "Samsung Internet for Android" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/Whale/i], + describe: function(e) { + var t = { + name: "NAVER Whale Browser" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/MZBrowser/i], + describe: function(e) { + var t = { + name: "MZ Browser" + }, + n = r.default.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/focus/i], + describe: function(e) { + var t = { + name: "Focus" + }, + n = r.default.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/swing/i], + describe: function(e) { + var t = { + name: "Swing" + }, + n = r.default.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/coast/i], + describe: function(e) { + var t = { + name: "Opera Coast" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/yabrowser/i], + describe: function(e) { + var t = { + name: "Yandex Browser" + }, + n = r.default.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/ucbrowser/i], + describe: function(e) { + var t = { + name: "UC Browser" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/Maxthon|mxios/i], + describe: function(e) { + var t = { + name: "Maxthon" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/epiphany/i], + describe: function(e) { + var t = { + name: "Epiphany" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/puffin/i], + describe: function(e) { + var t = { + name: "Puffin" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/sleipnir/i], + describe: function(e) { + var t = { + name: "Sleipnir" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/k-meleon/i], + describe: function(e) { + var t = { + name: "K-Meleon" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/micromessenger/i], + describe: function(e) { + var t = { + name: "WeChat" + }, + n = r.default.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/qqbrowser/i], + describe: function(e) { + var t = { + name: /qqbrowserlite/i.test(e) ? "QQ Browser Lite" : "QQ Browser" + }, + n = r.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/msie|trident/i], + describe: function(e) { + var t = { + name: "Internet Explorer" + }, + n = r.default.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/\sedg\//i], + describe: function(e) { + var t = { + name: "Microsoft Edge" + }, + n = r.default.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/edg([ea]|ios)/i], + describe: function(e) { + var t = { + name: "Microsoft Edge" + }, + n = r.default.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/vivaldi/i], + describe: function(e) { + var t = { + name: "Vivaldi" + }, + n = r.default.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/seamonkey/i], + describe: function(e) { + var t = { + name: "SeaMonkey" + }, + n = r.default.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/sailfish/i], + describe: function(e) { + var t = { + name: "Sailfish" + }, + n = r.default.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, e); + return n && (t.version = n), t + } + }, { + test: [/silk/i], + describe: function(e) { + var t = { + name: "Amazon Silk" + }, + n = r.default.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/phantom/i], + describe: function(e) { + var t = { + name: "PhantomJS" + }, + n = r.default.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/slimerjs/i], + describe: function(e) { + var t = { + name: "SlimerJS" + }, + n = r.default.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/blackberry|\bbb\d+/i, /rim\stablet/i], + describe: function(e) { + var t = { + name: "BlackBerry" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/(web|hpw)[o0]s/i], + describe: function(e) { + var t = { + name: "WebOS Browser" + }, + n = r.default.getFirstMatch(i, e) || r.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/bada/i], + describe: function(e) { + var t = { + name: "Bada" + }, + n = r.default.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/tizen/i], + describe: function(e) { + var t = { + name: "Tizen" + }, + n = r.default.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/qupzilla/i], + describe: function(e) { + var t = { + name: "QupZilla" + }, + n = r.default.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/firefox|iceweasel|fxios/i], + describe: function(e) { + var t = { + name: "Firefox" + }, + n = r.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/chromium/i], + describe: function(e) { + var t = { + name: "Chromium" + }, + n = r.default.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, e) || r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/chrome|crios|crmo/i], + describe: function(e) { + var t = { + name: "Chrome" + }, + n = r.default.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: [/GSA/i], + describe: function(e) { + var t = { + name: "Google Search" + }, + n = r.default.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }, { + test: function(e) { + var t = !e.test(/like android/i), + n = e.test(/android/i); + return t && n + }, + describe: function(e) { + var t = { + name: "Android Browser" + }, + n = r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/playstation 4/i], + describe: function(e) { + var t = { + name: "PlayStation 4" + }, + n = r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/safari|applewebkit/i], + describe: function(e) { + var t = { + name: "Safari" + }, + n = r.default.getFirstMatch(i, e); + return n && (t.version = n), t + } + }, { + test: [/.*/i], + describe: function(e) { + var t = -1 !== e.search("\\(") ? /^(.*)\/(.*)[ \t]\((.*)/ : /^(.*)\/(.*) /; + return { + name: r.default.getFirstMatch(t, e), + version: r.default.getSecondMatch(t, e) + } + } + }]; + t.default = o, e.exports = t.default + }, + 93: function(e, t, n) { + "use strict"; + t.__esModule = !0, t.default = void 0; + var a, r = (a = n(17)) && a.__esModule ? a : { + default: a + }, + i = n(18), + o = [{ + test: [/Roku\/DVP/], + describe: function(e) { + var t = r.default.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i, e); + return { + name: i.OS_MAP.Roku, + version: t + } + } + }, { + test: [/windows phone/i], + describe: function(e) { + var t = r.default.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i, e); + return { + name: i.OS_MAP.WindowsPhone, + version: t + } } - } - return t - } - return t - } - }, 6891: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var n = "function" == typeof Symbol && Symbol.for, - a = n ? Symbol.for("react.element") : 60103, - r = n ? Symbol.for("react.portal") : 60106, - i = n ? Symbol.for("react.fragment") : 60107, - o = n ? Symbol.for("react.strict_mode") : 60108, - s = n ? Symbol.for("react.profiler") : 60114, - l = n ? Symbol.for("react.provider") : 60109, - c = n ? Symbol.for("react.context") : 60110, - u = n ? Symbol.for("react.async_mode") : 60111, - d = n ? Symbol.for("react.concurrent_mode") : 60111, - p = n ? Symbol.for("react.forward_ref") : 60112, - h = n ? Symbol.for("react.suspense") : 60113, - m = n ? Symbol.for("react.suspense_list") : 60120, - f = n ? Symbol.for("react.memo") : 60115, - g = n ? Symbol.for("react.lazy") : 60116, - b = n ? Symbol.for("react.fundamental") : 60117, - y = n ? Symbol.for("react.responder") : 60118; - - function v(e) { - if ("object" == typeof e && null !== e) { - var t = e.$$typeof; - switch (t) { - case a: - switch (e = e.type) { - case u: - case d: - case i: - case s: - case o: - case h: - return e; - default: - switch (e = e && e.$$typeof) { - case c: - case p: - case l: - return e; - default: - return t - } + }, { + test: [/windows/i], + describe: function(e) { + var t = r.default.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i, e), + n = r.default.getWindowsVersionName(t); + return { + name: i.OS_MAP.Windows, + version: t, + versionName: n } - case g: - case f: - case r: - return t - } - } - } - - function k(e) { - return v(e) === d - } - t.typeOf = v, t.AsyncMode = u, t.ConcurrentMode = d, t.ContextConsumer = c, t.ContextProvider = l, t.Element = a, t.ForwardRef = p, t.Fragment = i, t.Lazy = g, t.Memo = f, t.Portal = r, t.Profiler = s, t.StrictMode = o, t.Suspense = h, t.isValidElementType = function(e) { - return "string" == typeof e || "function" == typeof e || e === i || e === d || e === s || e === o || e === h || e === m || "object" == typeof e && null !== e && (e.$$typeof === g || e.$$typeof === f || e.$$typeof === l || e.$$typeof === c || e.$$typeof === p || e.$$typeof === b || e.$$typeof === y) - }, t.isAsyncMode = function(e) { - return k(e) || v(e) === u - }, t.isConcurrentMode = k, t.isContextConsumer = function(e) { - return v(e) === c - }, t.isContextProvider = function(e) { - return v(e) === l - }, t.isElement = function(e) { - return "object" == typeof e && null !== e && e.$$typeof === a - }, t.isForwardRef = function(e) { - return v(e) === p - }, t.isFragment = function(e) { - return v(e) === i - }, t.isLazy = function(e) { - return v(e) === g - }, t.isMemo = function(e) { - return v(e) === f - }, t.isPortal = function(e) { - return v(e) === r - }, t.isProfiler = function(e) { - return v(e) === s - }, t.isStrictMode = function(e) { - return v(e) === o - }, t.isSuspense = function(e) { - return v(e) === h - } - }, 5837: (e, t, n) => { - "use strict"; - e.exports = n(6891) - }, 4444: (e, t, n) => { - e.exports = { - parse: n(1018), - stringify: n(1674) - } - }, 3514: (e, t, n) => { - var a = /([\w-]+)|=|(['"])([.\s\S]*?)\2/g, - r = n(8058); - e.exports = function(e) { - var t, n = 0, - i = !0, - o = { - type: "tag", - name: "", - voidElement: !1, - attrs: {}, - children: [] - }; - return e.replace(a, (function(a) { - if ("=" === a) return i = !0, void n++; - i ? 0 === n ? ((r[a] || "/" === e.charAt(e.length - 2)) && (o.voidElement = !0), o.name = a) : (o.attrs[t] = a.replace(/^['"]|['"]$/g, ""), t = void 0) : (t && (o.attrs[t] = t), t = a), n++, i = !1 - })), o - } - }, 1018: (e, t, n) => { - var a = /(?:|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g, - r = n(3514), - i = Object.create ? Object.create(null) : {}; - - function o(e, t, n, a, r) { - var i = t.indexOf("<", a), - o = t.slice(a, -1 === i ? void 0 : i); - /^\s*$/.test(o) && (o = " "), (!r && i > -1 && n + e.length >= 0 || " " !== o) && e.push({ - type: "text", - content: o - }) - } - e.exports = function(e, t) { - t || (t = {}), t.components || (t.components = i); - var n, s = [], - l = -1, - c = [], - u = {}, - d = !1; - return e.replace(a, (function(a, i) { - if (d) { - if (a !== "") return; - d = !1 - } - var p, h = "/" !== a.charAt(1), - m = 0 === a.indexOf("\x3c!--"), - f = i + a.length, - g = e.charAt(f); - h && !m && (l++, "tag" === (n = r(a)).type && t.components[n.name] && (n.type = "component", d = !0), n.voidElement || d || !g || "<" === g || o(n.children, e, l, f, t.ignoreWhitespace), u[n.tagName] = n, 0 === l && s.push(n), (p = c[l - 1]) && p.children.push(n), c[l] = n), (m || !h || n.voidElement) && (m || l--, !d && "<" !== g && g && o(p = -1 === l ? s : c[l].children, e, l, f, t.ignoreWhitespace)) - })), !s.length && e.length && o(s, e, 0, 0, t.ignoreWhitespace), s - } - }, 1674: e => { - function t(e, n) { - switch (n.type) { - case "text": - return e + n.content; - case "tag": - return e += "<" + n.name + (n.attrs ? function(e) { - var t = []; - for (var n in e) t.push(n + '="' + e[n] + '"'); - return t.length ? " " + t.join(" ") : "" - }(n.attrs) : "") + (n.voidElement ? "/>" : ">"), n.voidElement ? e : e + n.children.reduce(t, "") + "" - } - } - e.exports = function(e) { - return e.reduce((function(e, n) { - return e + t("", n) - }), "") - } - }, 1568: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.default = { - name: "cookie", - lookup: function(e) { - var t = void 0; - if (e.lookupCookie && "undefined" != typeof document) { - var n = function(e) { - for (var t = e + "=", n = document.cookie.split(";"), a = 0; a < n.length; a++) { - for (var r = n[a]; - " " === r.charAt(0);) r = r.substring(1, r.length); - if (0 === r.indexOf(t)) return r.substring(t.length, r.length) + } + }, { + test: [/macintosh/i], + describe: function(e) { + var t = r.default.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i, e).replace(/[_\s]/g, "."), + n = r.default.getMacOSVersionName(t), + a = { + name: i.OS_MAP.MacOS, + version: t + }; + return n && (a.versionName = n), a + } + }, { + test: [/(ipod|iphone|ipad)/i], + describe: function(e) { + var t = r.default.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i, e).replace(/[_\s]/g, "."); + return { + name: i.OS_MAP.iOS, + version: t } - return null - }(e.lookupCookie); - n && (t = n) - } - return t - }, - cacheUserLanguage: function(e, t) { - t.lookupCookie && "undefined" != typeof document && function(e, t, n, a) { - var r = void 0; - if (n) { - var i = new Date; - i.setTime(i.getTime() + 60 * n * 1e3), r = "; expires=" + i.toGMTString() - } else r = ""; - a = a ? "domain=" + a + ";" : "", document.cookie = e + "=" + t + r + ";" + a + "path=/" - }(t.lookupCookie, e, t.cookieMinutes, t.cookieDomain) - } - } - }, 6182: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.default = { - name: "htmlTag", - lookup: function(e) { - var t = void 0, - n = e.htmlTag || ("undefined" != typeof document ? document.documentElement : null); - return n && "function" == typeof n.getAttribute && (t = n.getAttribute("lang")), t - } - } - }, 4414: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - var n = void 0; - try { - n = "undefined" !== window && null !== window.localStorage; - var a = "i18next.translate.boo"; - window.localStorage.setItem(a, "foo"), window.localStorage.removeItem(a) - } catch (e) { - n = !1 - } - t.default = { - name: "localStorage", - lookup: function(e) { - var t = void 0; - if (e.lookupLocalStorage && n) { - var a = window.localStorage.getItem(e.lookupLocalStorage); - a && (t = a) - } - return t - }, - cacheUserLanguage: function(e, t) { - t.lookupLocalStorage && n && window.localStorage.setItem(t.lookupLocalStorage, e) - } - } - }, 8864: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.default = { - name: "navigator", - lookup: function(e) { - var t = []; - if ("undefined" != typeof navigator) { - if (navigator.languages) - for (var n = 0; n < navigator.languages.length; n++) t.push(navigator.languages[n]); - navigator.userLanguage && t.push(navigator.userLanguage), navigator.language && t.push(navigator.language) - } - return t.length > 0 ? t : void 0 - } - } - }, 1699: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.default = { - name: "path", - lookup: function(e) { - var t = void 0; - if ("undefined" != typeof window) { - var n = window.location.pathname.match(/\/([a-zA-Z-]*)/g); - if (n instanceof Array) - if ("number" == typeof e.lookupFromPathIndex) { - if ("string" != typeof n[e.lookupFromPathIndex]) return; - t = n[e.lookupFromPathIndex].replace("/", "") - } else t = n[0].replace("/", "") - } - return t - } - } - }, 6276: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.default = { - name: "querystring", - lookup: function(e) { - var t = void 0; - if ("undefined" != typeof window) - for (var n = window.location.search.substring(1).split("&"), a = 0; a < n.length; a++) { - var r = n[a].indexOf("="); - r > 0 && n[a].substring(0, r) === e.lookupQuerystring && (t = n[a].substring(r + 1)) } - return t - } - } - }, 1129: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.default = { - name: "subdomain", - lookup: function(e) { - var t = void 0; - if ("undefined" != typeof window) { - var n = window.location.href.match(/(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/gi); - n instanceof Array && (t = "number" == typeof e.lookupFromSubdomainIndex ? n[e.lookupFromSubdomainIndex].replace("http://", "").replace("https://", "").replace(".", "") : n[0].replace("http://", "").replace("https://", "").replace(".", "")) - } - return t - } - } - }, 9795: (e, t, n) => { - "use strict"; - var a = function() { - function e(e, t) { - for (var n = 0; n < t.length; n++) { - var a = t[n]; - a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) + }, { + test: function(e) { + var t = !e.test(/like android/i), + n = e.test(/android/i); + return t && n + }, + describe: function(e) { + var t = r.default.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i, e), + n = r.default.getAndroidVersionName(t), + a = { + name: i.OS_MAP.Android, + version: t + }; + return n && (a.versionName = n), a } - } - return function(t, n, a) { - return n && e(t.prototype, n), a && e(t, a), t - } - }(), - r = function(e) { - if (e && e.__esModule) return e; - var t = {}; - if (null != e) - for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); - return t.default = e, t - }(n(5655)), - i = p(n(1568)), - o = p(n(6276)), - s = p(n(4414)), - l = p(n(8864)), - c = p(n(6182)), - u = p(n(1699)), - d = p(n(1129)); - - function p(e) { - return e && e.__esModule ? e : { - default: e - } - } - - function h(e, t) { - if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") - } - var m = function() { - function e(t) { - var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; - h(this, e), this.type = "languageDetector", this.detectors = {}, this.init(t, n) - } - return a(e, [{ - key: "init", - value: function(e) { - var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, - n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; - this.services = e, this.options = r.defaults(t, this.options || {}, { - order: ["querystring", "cookie", "localStorage", "navigator", "htmlTag"], - lookupQuerystring: "lng", - lookupCookie: "i18next", - lookupLocalStorage: "i18nextLng", - caches: ["localStorage"], - excludeCacheFor: ["cimode"] - }), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = n, this.addDetector(i.default), this.addDetector(o.default), this.addDetector(s.default), this.addDetector(l.default), this.addDetector(c.default), this.addDetector(u.default), this.addDetector(d.default) - } - }, { - key: "addDetector", - value: function(e) { - this.detectors[e.name] = e - } - }, { - key: "detect", - value: function(e) { - var t = this; - e || (e = this.options.order); - var n = []; - e.forEach((function(e) { - if (t.detectors[e]) { - var a = t.detectors[e].lookup(t.options); - a && "string" == typeof a && (a = [a]), a && (n = n.concat(a)) + }, { + test: [/(web|hpw)[o0]s/i], + describe: function(e) { + var t = r.default.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i, e), + n = { + name: i.OS_MAP.WebOS + }; + return t && t.length && (n.version = t), n + } + }, { + test: [/blackberry|\bbb\d+/i, /rim\stablet/i], + describe: function(e) { + var t = r.default.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i, e) || r.default.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i, e) || r.default.getFirstMatch(/\bbb(\d+)/i, e); + return { + name: i.OS_MAP.BlackBerry, + version: t } - })); - var a = void 0; - if (n.forEach((function(e) { - if (!a) { - var n = t.services.languageUtils.formatLanguageCode(e); - t.services.languageUtils.isWhitelisted(n) && (a = n) - } - })), !a) { - var r = this.i18nOptions.fallbackLng; - "string" == typeof r && (r = [r]), r || (r = []), a = "[object Array]" === Object.prototype.toString.apply(r) ? r[0] : r[0] || r.default && r.default[0] } - return a - } - }, { - key: "cacheUserLanguage", - value: function(e, t) { - var n = this; - t || (t = this.options.caches), t && (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(e) > -1 || t.forEach((function(t) { - n.detectors[t] && n.detectors[t].cacheUserLanguage(e, n.options) - }))) - } - }]), e - }(); - m.type = "languageDetector", t.Z = m - }, 5655: (e, t) => { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }), t.defaults = function(e) { - return a.call(r.call(arguments, 1), (function(t) { - if (t) - for (var n in t) void 0 === e[n] && (e[n] = t[n]) - })), e - }, t.extend = function(e) { - return a.call(r.call(arguments, 1), (function(t) { - if (t) - for (var n in t) e[n] = t[n] - })), e - }; - var n = [], - a = n.forEach, - r = n.slice - }, 8726: (e, t, n) => { - var a = n(9795).Z; - e.exports = a, e.exports.default = a - }, 376: e => { - "function" == typeof Object.create ? e.exports = function(e, t) { - e.super_ = t, e.prototype = Object.create(t.prototype, { - constructor: { - value: e, - enumerable: !1, - writable: !0, - configurable: !0 - } - }) - } : e.exports = function(e, t) { - e.super_ = t; - var n = function() {}; - n.prototype = t.prototype, e.prototype = new n, e.prototype.constructor = e - } - }, 2456: e => { - "use strict"; - e.exports = function(e, t, n, a, r, i, o, s) { - if (!e) { - var l; - if (void 0 === t) l = new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."); - else { - var c = [n, a, r, i, o, s], - u = 0; - (l = new Error(t.replace(/%s/g, (function() { - return c[u++] - })))).name = "Invariant Violation" - } - throw l.framesToPop = 1, l - } - } - }, 2755: e => { - "use strict"; - var t = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag, - n = Object.prototype.toString, - a = function(e) { - return !(t && e && "object" == typeof e && Symbol.toStringTag in e) && "[object Arguments]" === n.call(e) - }, - r = function(e) { - return !!a(e) || null !== e && "object" == typeof e && "number" == typeof e.length && e.length >= 0 && "[object Array]" !== n.call(e) && "[object Function]" === n.call(e.callee) - }, - i = function() { - return a(arguments) - }(); - a.isLegacyArguments = r, e.exports = i ? a : r - }, 6738: e => { - "use strict"; - var t = Object.prototype.toString, - n = Function.prototype.toString, - a = /^\s*(?:function)?\*/, - r = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag, - i = Object.getPrototypeOf, - o = function() { - if (!r) return !1; - try { - return Function("return function*() {}")() - } catch (e) {} - }(), - s = o ? i(o) : {}; - e.exports = function(e) { - return "function" == typeof e && (!!a.test(n.call(e)) || (r ? i(e) === s : "[object GeneratorFunction]" === t.call(e))) - } - }, 5430: (e, t, n) => { - n(6866), e.exports = self.fetch.bind(self) - }, 3691: (e, t, n) => { - var a = n(8719); - - function r(e, t) { - this.logStorage = e, this.stringifyObjects = !(!t || !t.stringifyObjects) && t.stringifyObjects, this.storeInterval = t && t.storeInterval ? t.storeInterval : 3e4, this.maxEntryLength = t && t.maxEntryLength ? t.maxEntryLength : 1e4, Object.keys(a.levels).forEach(function(e) { - this[a.levels[e]] = function() { - this._log.apply(this, arguments) - }.bind(this, e) - }.bind(this)), this.storeLogsIntervalID = null, this.queue = [], this.totalLen = 0, this.outputCache = [] - } - r.prototype.stringify = function(e) { - try { - return JSON.stringify(e) - } catch (e) { - return "[object with circular refs?]" - } - }, r.prototype.formatLogMessage = function(e) { - for (var t = "", n = 1, r = arguments.length; n < r; n++) { - var i = arguments[n]; - !this.stringifyObjects && e !== a.levels.ERROR || "object" != typeof i || (i = this.stringify(i)), t += i, n !== r - 1 && (t += " ") - } - return t.length ? t : null - }, r.prototype._log = function() { - var e = arguments[1], - t = this.formatLogMessage.apply(this, arguments); - if (t) { - var n = this.queue[this.queue.length - 1], - a = n && n.text; - a === t ? n.count += 1 : (this.queue.push({ - text: t, - timestamp: e, - count: 1 - }), this.totalLen += t.length) - } - this.totalLen >= this.maxEntryLength && this._flush(!0, !0) - }, r.prototype.start = function() { - this._reschedulePublishInterval() - }, r.prototype._reschedulePublishInterval = function() { - this.storeLogsIntervalID && (window.clearTimeout(this.storeLogsIntervalID), this.storeLogsIntervalID = null), this.storeLogsIntervalID = window.setTimeout(this._flush.bind(this, !1, !0), this.storeInterval) - }, r.prototype.flush = function() { - this._flush(!1, !0) - }, r.prototype._flush = function(e, t) { - this.totalLen > 0 && (this.logStorage.isReady() || e) && (this.logStorage.isReady() ? (this.outputCache.length && (this.outputCache.forEach(function(e) { - this.logStorage.storeLogs(e) - }.bind(this)), this.outputCache = []), this.logStorage.storeLogs(this.queue)) : this.outputCache.push(this.queue), this.queue = [], this.totalLen = 0), t && this._reschedulePublishInterval() - }, r.prototype.stop = function() { - this._flush(!1, !1) - }, e.exports = r - }, 8719: e => { - var t = { - trace: 0, - debug: 1, - info: 2, - log: 3, - warn: 4, - error: 5 - }; - o.consoleTransport = console; - var n = [o.consoleTransport]; - o.addGlobalTransport = function(e) { - -1 === n.indexOf(e) && n.push(e) - }, o.removeGlobalTransport = function(e) { - var t = n.indexOf(e); - 1 !== t && n.splice(t, 1) - }; - var a = {}; - - function r() { - var e = { - methodName: "", - fileLocation: "", - line: null, - column: null - }, - t = new Error, - n = t.stack ? t.stack.split("\n") : []; - if (!n || n.length < 3) return e; - var a = null; - return n[3] && (a = n[3].match(/\s*at\s*(.+?)\s*\((\S*)\s*:(\d*)\s*:(\d*)\)/)), !a || a.length <= 4 ? (0 === n[2].indexOf("log@") ? e.methodName = n[3].substr(0, n[3].indexOf("@")) : e.methodName = n[2].substr(0, n[2].indexOf("@")), e) : (e.methodName = a[1], e.fileLocation = a[2], e.line = a[3], e.column = a[4], e) - } - - function i() { - var e = arguments[0], - i = arguments[1], - o = Array.prototype.slice.call(arguments, 2); - if (!(t[i] < e.level)) - for (var s = !(e.options.disableCallerInfo || a.disableCallerInfo) && r(), l = n.concat(e.transports), c = 0; c < l.length; c++) { - var u = l[c], - d = u[i]; - if (d && "function" == typeof d) { - var p = []; - p.push((new Date).toISOString()), e.id && p.push("[" + e.id + "]"), s && s.methodName.length > 1 && p.push("<" + s.methodName + ">: "); - var h = p.concat(o); - d.bind(u).apply(u, h) - } - } - } - - function o(e, n, a, r) { - this.id = n, this.options = r || {}, this.transports = a, this.transports || (this.transports = []), this.level = t[e]; - for (var o = Object.keys(t), s = 0; s < o.length; s++) this[o[s]] = i.bind(null, this, o[s]) - } - o.setGlobalOptions = function(e) { - a = e || {} - }, o.prototype.setLevel = function(e) { - this.level = t[e] - }, e.exports = o, o.levels = { - TRACE: "trace", - DEBUG: "debug", - INFO: "info", - LOG: "log", - WARN: "warn", - ERROR: "error" - } - }, 8481: (e, t, n) => { - var a = n(8719), - r = n(3691), - i = {}, - o = [], - s = a.levels.TRACE; - e.exports = { - addGlobalTransport: function(e) { - a.addGlobalTransport(e) - }, - removeGlobalTransport: function(e) { - a.removeGlobalTransport(e) - }, - setGlobalOptions: function(e) { - a.setGlobalOptions(e) - }, - getLogger: function(e, t, n) { - var r = new a(s, e, t, n); - return e ? (i[e] = i[e] || [], i[e].push(r)) : o.push(r), r - }, - setLogLevelById: function(e, t) { - for (var n = t ? i[t] || [] : o, a = 0; a < n.length; a++) n[a].setLevel(e) - }, - setLogLevel: function(e) { - s = e; - for (var t = 0; t < o.length; t++) o[t].setLevel(e); - for (var n in i) { - var a = i[n] || []; - for (t = 0; t < a.length; t++) a[t].setLevel(e) - } - }, - levels: a.levels, - LogCollector: r - } - }, 587: (e, t) => { - "use strict"; - var n = Object.assign || function(e) { - for (var t = 1; t < arguments.length; t++) { - var n = arguments[t]; - for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) - } - return e - }, - a = { - tName: "t", - i18nName: "i18n", - handleName: "localize", - selectorAttr: "data-i18n", - targetAttr: "i18n-target", - optionsAttr: "i18n-options", - useOptionsAttr: !1, - parseDefaultValueFromContent: !0 - }; - t.default = { - init: function(e, t) { - var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; - - function i(t, a, i) { - if (0 !== a.length) { - var o = "text"; - if (0 === a.indexOf("[")) { - var s = a.split("]"); - a = s[1], o = s[0].substr(1, s[0].length - 1) - } - if (a.indexOf(";") === a.length - 1 && (a = a.substr(0, a.length - 2)), "html" === o) t.html(e.t(a, u(i, t.html()))); - else if ("text" === o) t.text(e.t(a, u(i, t.text()))); - else if ("prepend" === o) t.prepend(e.t(a, u(i, t.html()))); - else if ("append" === o) t.append(e.t(a, u(i, t.html()))); - else if (0 === o.indexOf("data-")) { - var l = o.substr("data-".length), - c = e.t(a, u(i, t.data(l))); - t.data(l, c), t.attr(o, c) - } else t.attr(o, e.t(a, u(i, t.attr(o)))) - } - - function u(e, t) { - return r.parseDefaultValueFromContent ? n({}, e, { - defaultValue: t - }) : e - } - } - - function o(e, a) { - var o = e.attr(r.selectorAttr); - if (o || void 0 === o || !1 === o || (o = e.text() || e.val()), o) { - var s = e, - l = e.data(r.targetAttr); - if (l && (s = e.find(l) || e), a || !0 !== r.useOptionsAttr || (a = e.data(r.optionsAttr)), a = a || {}, o.indexOf(";") >= 0) { - var c = o.split(";"); - t.each(c, (function(e, t) { - "" !== t && i(s, t.trim(), a) - })) - } else i(s, o, a); - if (!0 === r.useOptionsAttr) { - var u = {}; - delete(u = n({ - clone: u - }, a)).lng, e.data(r.optionsAttr, u) + }, { + test: [/bada/i], + describe: function(e) { + var t = r.default.getFirstMatch(/bada\/(\d+(\.\d+)*)/i, e); + return { + name: i.OS_MAP.Bada, + version: t } } - } - - function s(e) { - return this.each((function() { - o(t(this), e), t(this).find("[" + r.selectorAttr + "]").each((function() { - o(t(this), e) - })) - })) - } - r = n({}, a, r), t[r.tName] = e.t.bind(e), t[r.i18nName] = e, t.fn[r.handleName] = s - } - } - }, 7795: (e, t, n) => { - e.exports = n(587).default - }, 7927: (module, exports, __webpack_require__) => { - var process = __webpack_require__(554), - __WEBPACK_AMD_DEFINE_RESULT__; - (function() { + }, { + test: [/tizen/i], + describe: function(e) { + var t = r.default.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i, e); + return { + name: i.OS_MAP.Tizen, + version: t + } + } + }, { + test: [/linux/i], + describe: function() { + return { + name: i.OS_MAP.Linux + } + } + }, { + test: [/CrOS/], + describe: function() { + return { + name: i.OS_MAP.ChromeOS + } + } + }, { + test: [/PlayStation 4/], + describe: function(e) { + var t = r.default.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i, e); + return { + name: i.OS_MAP.PlayStation4, + version: t + } + } + }]; + t.default = o, e.exports = t.default + }, + 94: function(e, t, n) { "use strict"; - var ERROR = "input is invalid type", - WINDOW = "object" == typeof window, - root = WINDOW ? window : {}; - root.JS_MD5_NO_WINDOW && (WINDOW = !1); - var WEB_WORKER = !WINDOW && "object" == typeof self, - NODE_JS = !root.JS_MD5_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node; - NODE_JS ? root = __webpack_require__.g : WEB_WORKER && (root = self); - var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && module.exports, - AMD = __webpack_require__.amdO, - ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer, - HEX_CHARS = "0123456789abcdef".split(""), - EXTRA = [128, 32768, 8388608, -2147483648], - SHIFT = [0, 8, 16, 24], - OUTPUT_TYPES = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"], - BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), - blocks = [], - buffer8; - if (ARRAY_BUFFER) { - var buffer = new ArrayBuffer(68); - buffer8 = new Uint8Array(buffer), blocks = new Uint32Array(buffer) - }!root.JS_MD5_NO_NODE_JS && Array.isArray || (Array.isArray = function(e) { - return "[object Array]" === Object.prototype.toString.call(e) - }), !ARRAY_BUFFER || !root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function(e) { - return "object" == typeof e && e.buffer && e.buffer.constructor === ArrayBuffer - }); - var createOutputMethod = function(e) { - return function(t) { - return new Md5(!0).update(t)[e]() + t.__esModule = !0, t.default = void 0; + var a, r = (a = n(17)) && a.__esModule ? a : { + default: a + }, + i = n(18), + o = [{ + test: [/googlebot/i], + describe: function() { + return { + type: "bot", + vendor: "Google" + } } - }, - createMethod = function() { - var e = createOutputMethod("hex"); - NODE_JS && (e = nodeWrap(e)), e.create = function() { - return new Md5 - }, e.update = function(t) { - return e.create().update(t) - }; - for (var t = 0; t < OUTPUT_TYPES.length; ++t) { - var n = OUTPUT_TYPES[t]; - e[n] = createOutputMethod(n) + }, { + test: [/huawei/i], + describe: function(e) { + var t = r.default.getFirstMatch(/(can-l01)/i, e) && "Nova", + n = { + type: i.PLATFORMS_MAP.mobile, + vendor: "Huawei" + }; + return t && (n.model = t), n } - return e - }, - nodeWrap = function(method) { - var crypto = eval("require('crypto')"), - Buffer = eval("require('buffer').Buffer"), - nodeMethod = function(e) { - if ("string" == typeof e) return crypto.createHash("md5").update(e, "utf8").digest("hex"); - if (null == e) throw ERROR; - return e.constructor === ArrayBuffer && (e = new Uint8Array(e)), Array.isArray(e) || ArrayBuffer.isView(e) || e.constructor === Buffer ? crypto.createHash("md5").update(new Buffer(e)).digest("hex") : method(e) + }, { + test: [/nexus\s*(?:7|8|9|10).*/i], + describe: function() { + return { + type: i.PLATFORMS_MAP.tablet, + vendor: "Nexus" + } + } + }, { + test: [/ipad/i], + describe: function() { + return { + type: i.PLATFORMS_MAP.tablet, + vendor: "Apple", + model: "iPad" + } + } + }, { + test: [/kftt build/i], + describe: function() { + return { + type: i.PLATFORMS_MAP.tablet, + vendor: "Amazon", + model: "Kindle Fire HD 7" + } + } + }, { + test: [/silk/i], + describe: function() { + return { + type: i.PLATFORMS_MAP.tablet, + vendor: "Amazon" + } + } + }, { + test: [/tablet(?! pc)/i], + describe: function() { + return { + type: i.PLATFORMS_MAP.tablet + } + } + }, { + test: function(e) { + var t = e.test(/ipod|iphone/i), + n = e.test(/like (ipod|iphone)/i); + return t && !n + }, + describe: function(e) { + var t = r.default.getFirstMatch(/(ipod|iphone)/i, e); + return { + type: i.PLATFORMS_MAP.mobile, + vendor: "Apple", + model: t + } + } + }, { + test: [/nexus\s*[0-6].*/i, /galaxy nexus/i], + describe: function() { + return { + type: i.PLATFORMS_MAP.mobile, + vendor: "Nexus" + } + } + }, { + test: [/[^-]mobi/i], + describe: function() { + return { + type: i.PLATFORMS_MAP.mobile + } + } + }, { + test: function(e) { + return "blackberry" === e.getBrowserName(!0) + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.mobile, + vendor: "BlackBerry" + } + } + }, { + test: function(e) { + return "bada" === e.getBrowserName(!0) + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.mobile + } + } + }, { + test: function(e) { + return "windows phone" === e.getBrowserName() + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.mobile, + vendor: "Microsoft" + } + } + }, { + test: function(e) { + var t = Number(String(e.getOSVersion()).split(".")[0]); + return "android" === e.getOSName(!0) && t >= 3 + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.tablet + } + } + }, { + test: function(e) { + return "android" === e.getOSName(!0) + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.mobile + } + } + }, { + test: function(e) { + return "macos" === e.getOSName(!0) + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.desktop, + vendor: "Apple" + } + } + }, { + test: function(e) { + return "windows" === e.getOSName(!0) + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.desktop + } + } + }, { + test: function(e) { + return "linux" === e.getOSName(!0) + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.desktop + } + } + }, { + test: function(e) { + return "playstation 4" === e.getOSName(!0) + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.tv + } + } + }, { + test: function(e) { + return "roku" === e.getOSName(!0) + }, + describe: function() { + return { + type: i.PLATFORMS_MAP.tv + } + } + }]; + t.default = o, e.exports = t.default + }, + 95: function(e, t, n) { + "use strict"; + t.__esModule = !0, t.default = void 0; + var a, r = (a = n(17)) && a.__esModule ? a : { + default: a + }, + i = n(18), + o = [{ + test: function(e) { + return "microsoft edge" === e.getBrowserName(!0) + }, + describe: function(e) { + if (/\sedg\//i.test(e)) return { + name: i.ENGINE_MAP.Blink }; - return nodeMethod - }; - - function Md5(e) { - if (e) blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0, this.blocks = blocks, this.buffer8 = buffer8; - else if (ARRAY_BUFFER) { - var t = new ArrayBuffer(68); - this.buffer8 = new Uint8Array(t), this.blocks = new Uint32Array(t) - } else this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; - this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = 0, this.finalized = this.hashed = !1, this.first = !0 - } - Md5.prototype.update = function(e) { - if (!this.finalized) { - var t, n = typeof e; - if ("string" !== n) { - if ("object" !== n) throw ERROR; - if (null === e) throw ERROR; - if (ARRAY_BUFFER && e.constructor === ArrayBuffer) e = new Uint8Array(e); - else if (!(Array.isArray(e) || ARRAY_BUFFER && ArrayBuffer.isView(e))) throw ERROR; - t = !0 - } - for (var a, r, i = 0, o = e.length, s = this.blocks, l = this.buffer8; i < o;) { - if (this.hashed && (this.hashed = !1, s[0] = s[16], s[16] = s[1] = s[2] = s[3] = s[4] = s[5] = s[6] = s[7] = s[8] = s[9] = s[10] = s[11] = s[12] = s[13] = s[14] = s[15] = 0), t) - if (ARRAY_BUFFER) - for (r = this.start; i < o && r < 64; ++i) l[r++] = e[i]; - else - for (r = this.start; i < o && r < 64; ++i) s[r >> 2] |= e[i] << SHIFT[3 & r++]; - else if (ARRAY_BUFFER) - for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? l[r++] = a : a < 2048 ? (l[r++] = 192 | a >> 6, l[r++] = 128 | 63 & a) : a < 55296 || a >= 57344 ? (l[r++] = 224 | a >> 12, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), l[r++] = 240 | a >> 18, l[r++] = 128 | a >> 12 & 63, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a); - else - for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? s[r >> 2] |= a << SHIFT[3 & r++] : a < 2048 ? (s[r >> 2] |= (192 | a >> 6) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : a < 55296 || a >= 57344 ? (s[r >> 2] |= (224 | a >> 12) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), s[r >> 2] |= (240 | a >> 18) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 12 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]); - this.lastByteIndex = r, this.bytes += r - this.start, r >= 64 ? (this.start = r - 64, this.hash(), this.hashed = !0) : this.start = r + var t = r.default.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, e); + return { + name: i.ENGINE_MAP.EdgeHTML, + version: t + } } - return this - } - }, Md5.prototype.finalize = function() { - if (!this.finalized) { - this.finalized = !0; - var e = this.blocks, - t = this.lastByteIndex; - e[t >> 2] |= EXTRA[3 & t], t >= 56 && (this.hashed || this.hash(), e[0] = e[16], e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0), e[14] = this.bytes << 3, this.hash() - } - }, Md5.prototype.hash = function() { - var e, t, n, a, r, i, o = this.blocks; - this.first ? t = ((t = ((e = ((e = o[0] - 680876937) << 7 | e >>> 25) - 271733879 << 0) ^ (n = ((n = (-271733879 ^ (a = ((a = (-1732584194 ^ 2004318071 & e) + o[1] - 117830708) << 12 | a >>> 20) + e << 0) & (-271733879 ^ e)) + o[2] - 1126478375) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1316259209) << 22 | t >>> 10) + n << 0 : (e = this.h0, t = this.h1, n = this.h2, t = ((t += ((e = ((e += ((a = this.h3) ^ t & (n ^ a)) + o[0] - 680876936) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[1] - 389564586) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[2] + 606105819) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1044525330) << 22 | t >>> 10) + n << 0), t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[4] - 176418897) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[5] + 1200080426) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[6] - 1473231341) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[7] - 45705983) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[8] + 1770035416) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[9] - 1958414417) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[10] - 42063) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[11] - 1990404162) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[12] + 1804603682) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[13] - 40341101) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[14] - 1502002290) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[15] + 1236535329) << 22 | t >>> 10) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[1] - 165796510) << 5 | e >>> 27) + t << 0) ^ t)) + o[6] - 1069501632) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[11] + 643717713) << 14 | n >>> 18) + a << 0) ^ a)) + o[0] - 373897302) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[5] - 701558691) << 5 | e >>> 27) + t << 0) ^ t)) + o[10] + 38016083) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[15] - 660478335) << 14 | n >>> 18) + a << 0) ^ a)) + o[4] - 405537848) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[9] + 568446438) << 5 | e >>> 27) + t << 0) ^ t)) + o[14] - 1019803690) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[3] - 187363961) << 14 | n >>> 18) + a << 0) ^ a)) + o[8] + 1163531501) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[13] - 1444681467) << 5 | e >>> 27) + t << 0) ^ t)) + o[2] - 51403784) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[7] + 1735328473) << 14 | n >>> 18) + a << 0) ^ a)) + o[12] - 1926607734) << 20 | t >>> 12) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[5] - 378558) << 4 | e >>> 28) + t << 0)) + o[8] - 2022574463) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[11] + 1839030562) << 16 | n >>> 16) + a << 0)) + o[14] - 35309556) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[1] - 1530992060) << 4 | e >>> 28) + t << 0)) + o[4] + 1272893353) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[7] - 155497632) << 16 | n >>> 16) + a << 0)) + o[10] - 1094730640) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[13] + 681279174) << 4 | e >>> 28) + t << 0)) + o[0] - 358537222) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[3] - 722521979) << 16 | n >>> 16) + a << 0)) + o[6] + 76029189) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[9] - 640364487) << 4 | e >>> 28) + t << 0)) + o[12] - 421815835) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[15] + 530742520) << 16 | n >>> 16) + a << 0)) + o[2] - 995338651) << 23 | t >>> 9) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[0] - 198630844) << 6 | e >>> 26) + t << 0) | ~n)) + o[7] + 1126891415) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[14] - 1416354905) << 15 | n >>> 17) + a << 0) | ~e)) + o[5] - 57434055) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[12] + 1700485571) << 6 | e >>> 26) + t << 0) | ~n)) + o[3] - 1894986606) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[10] - 1051523) << 15 | n >>> 17) + a << 0) | ~e)) + o[1] - 2054922799) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[8] + 1873313359) << 6 | e >>> 26) + t << 0) | ~n)) + o[15] - 30611744) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[6] - 1560198380) << 15 | n >>> 17) + a << 0) | ~e)) + o[13] + 1309151649) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[4] - 145523070) << 6 | e >>> 26) + t << 0) | ~n)) + o[11] - 1120210379) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[2] + 718787259) << 15 | n >>> 17) + a << 0) | ~e)) + o[9] - 343485551) << 21 | t >>> 11) + n << 0, this.first ? (this.h0 = e + 1732584193 << 0, this.h1 = t - 271733879 << 0, this.h2 = n - 1732584194 << 0, this.h3 = a + 271733878 << 0, this.first = !1) : (this.h0 = this.h0 + e << 0, this.h1 = this.h1 + t << 0, this.h2 = this.h2 + n << 0, this.h3 = this.h3 + a << 0) - }, Md5.prototype.hex = function() { - this.finalize(); - var e = this.h0, - t = this.h1, - n = this.h2, - a = this.h3; - return HEX_CHARS[e >> 4 & 15] + HEX_CHARS[15 & e] + HEX_CHARS[e >> 12 & 15] + HEX_CHARS[e >> 8 & 15] + HEX_CHARS[e >> 20 & 15] + HEX_CHARS[e >> 16 & 15] + HEX_CHARS[e >> 28 & 15] + HEX_CHARS[e >> 24 & 15] + HEX_CHARS[t >> 4 & 15] + HEX_CHARS[15 & t] + HEX_CHARS[t >> 12 & 15] + HEX_CHARS[t >> 8 & 15] + HEX_CHARS[t >> 20 & 15] + HEX_CHARS[t >> 16 & 15] + HEX_CHARS[t >> 28 & 15] + HEX_CHARS[t >> 24 & 15] + HEX_CHARS[n >> 4 & 15] + HEX_CHARS[15 & n] + HEX_CHARS[n >> 12 & 15] + HEX_CHARS[n >> 8 & 15] + HEX_CHARS[n >> 20 & 15] + HEX_CHARS[n >> 16 & 15] + HEX_CHARS[n >> 28 & 15] + HEX_CHARS[n >> 24 & 15] + HEX_CHARS[a >> 4 & 15] + HEX_CHARS[15 & a] + HEX_CHARS[a >> 12 & 15] + HEX_CHARS[a >> 8 & 15] + HEX_CHARS[a >> 20 & 15] + HEX_CHARS[a >> 16 & 15] + HEX_CHARS[a >> 28 & 15] + HEX_CHARS[a >> 24 & 15] - }, Md5.prototype.toString = Md5.prototype.hex, Md5.prototype.digest = function() { - this.finalize(); - var e = this.h0, - t = this.h1, - n = this.h2, - a = this.h3; - return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255, 255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255] - }, Md5.prototype.array = Md5.prototype.digest, Md5.prototype.arrayBuffer = function() { - this.finalize(); - var e = new ArrayBuffer(16), - t = new Uint32Array(e); - return t[0] = this.h0, t[1] = this.h1, t[2] = this.h2, t[3] = this.h3, e - }, Md5.prototype.buffer = Md5.prototype.arrayBuffer, Md5.prototype.base64 = function() { - for (var e, t, n, a = "", r = this.array(), i = 0; i < 15;) e = r[i++], t = r[i++], n = r[i++], a += BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[63 & (e << 4 | t >>> 4)] + BASE64_ENCODE_CHAR[63 & (t << 2 | n >>> 6)] + BASE64_ENCODE_CHAR[63 & n]; - return e = r[i], a + (BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[e << 4 & 63] + "==") - }; - var exports = createMethod(); - COMMON_JS ? module.exports = exports : (root.md5 = exports, AMD && (__WEBPACK_AMD_DEFINE_RESULT__ = function() { - return exports - }.call(exports, __webpack_require__, exports, module), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))) - })() - }, 9229: e => { - function t(e) { - this.message = e - } - t.prototype = new Error, t.prototype.name = "InvalidCharacterError", e.exports = "undefined" != typeof window && window.atob && window.atob.bind(window) || function(e) { - var n = String(e).replace(/=+$/, ""); - if (n.length % 4 == 1) throw new t("'atob' failed: The string to be decoded is not correctly encoded."); - for (var a, r, i = 0, o = 0, s = ""; r = n.charAt(o++); ~r && (a = i % 4 ? 64 * a + r : r, i++ % 4) ? s += String.fromCharCode(255 & a >> (-2 * i & 6)) : 0) r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r); - return s - } - }, 2099: (e, t, n) => { - var a = n(9229); - e.exports = function(e) { - var t = e.replace(/-/g, "+").replace(/_/g, "/"); - switch (t.length % 4) { - case 0: - break; - case 2: - t += "=="; - break; - case 3: - t += "="; - break; - default: - throw "Illegal base64url string!" - } - try { - return function(e) { - return decodeURIComponent(a(e).replace(/(.)/g, (function(e, t) { - var n = t.charCodeAt(0).toString(16).toUpperCase(); - return n.length < 2 && (n = "0" + n), "%" + n - }))) - }(t) - } catch (e) { - return a(t) - } - } - }, 9623: (e, t, n) => { - "use strict"; - var a = n(2099); - - function r(e) { - this.message = e - } - r.prototype = new Error, r.prototype.name = "InvalidTokenError", e.exports = function(e, t) { - if ("string" != typeof e) throw new r("Invalid token specified"); - var n = !0 === (t = t || {}).header ? 0 : 1; - try { - return JSON.parse(a(e.split(".")[n])) - } catch (e) { - throw new r("Invalid token specified: " + e.message) - } - }, e.exports.InvalidTokenError = r - }, 6148: (e, t, n) => { - "use strict"; - - function a(e) { - var t = Array.prototype.slice.call(arguments, 1); - return t.forEach((function(t) { - t && Object.keys(t).forEach((function(n) { - e[n] = t[n] - })) - })), e - } - - function r(e) { - return Object.prototype.toString.call(e) - } - - function i(e) { - return "[object Function]" === r(e) - } - - function o(e) { - return e.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&") - } - var s = { - fuzzyLink: !0, - fuzzyEmail: !0, - fuzzyIP: !1 - }, - l = { - "http:": { - validate: function(e, t, n) { - var a = e.slice(t); - return n.re.http || (n.re.http = new RegExp("^\\/\\/" + n.re.src_auth + n.re.src_host_port_strict + n.re.src_path, "i")), n.re.http.test(a) ? a.match(n.re.http)[0].length : 0 + }, { + test: [/trident/i], + describe: function(e) { + var t = { + name: i.ENGINE_MAP.Trident + }, + n = r.default.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t } - }, - "https:": "http:", - "ftp:": "http:", - "//": { - validate: function(e, t, n) { - var a = e.slice(t); - return n.re.no_http || (n.re.no_http = new RegExp("^" + n.re.src_auth + "(?:localhost|(?:(?:" + n.re.src_domain + ")\\.)+" + n.re.src_domain_root + ")" + n.re.src_port + n.re.src_host_terminator + n.re.src_path, "i")), n.re.no_http.test(a) ? t >= 3 && ":" === e[t - 3] || t >= 3 && "/" === e[t - 3] ? 0 : a.match(n.re.no_http)[0].length : 0 + }, { + test: function(e) { + return e.test(/presto/i) + }, + describe: function(e) { + var t = { + name: i.ENGINE_MAP.Presto + }, + n = r.default.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t } - }, - "mailto:": { - validate: function(e, t, n) { - var a = e.slice(t); - return n.re.mailto || (n.re.mailto = new RegExp("^" + n.re.src_email_name + "@" + n.re.src_host_strict, "i")), n.re.mailto.test(a) ? a.match(n.re.mailto)[0].length : 0 + }, { + test: function(e) { + var t = e.test(/gecko/i), + n = e.test(/like gecko/i); + return t && !n + }, + describe: function(e) { + var t = { + name: i.ENGINE_MAP.Gecko + }, + n = r.default.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t } - } - }, - c = "biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|"); - - function u(e) { - var t = e.re = n(3854)(e.__opts__), - a = e.__tlds__.slice(); - - function s(e) { - return e.replace("%TLDS%", t.src_tlds) - } - e.onCompile(), e.__tlds_replaced__ || a.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"), a.push(t.src_xn), t.src_tlds = a.join("|"), t.email_fuzzy = RegExp(s(t.tpl_email_fuzzy), "i"), t.link_fuzzy = RegExp(s(t.tpl_link_fuzzy), "i"), t.link_no_ip_fuzzy = RegExp(s(t.tpl_link_no_ip_fuzzy), "i"), t.host_fuzzy_test = RegExp(s(t.tpl_host_fuzzy_test), "i"); - var l = []; - - function c(e, t) { - throw new Error('(LinkifyIt) Invalid schema "' + e + '": ' + t) - } - e.__compiled__ = {}, Object.keys(e.__schemas__).forEach((function(t) { - var n = e.__schemas__[t]; - if (null !== n) { - var a = { - validate: null, - link: null - }; - if (e.__compiled__[t] = a, "[object Object]" === r(n)) return "[object RegExp]" !== r(n.validate) ? i(n.validate) ? a.validate = n.validate : c(t, n) : a.validate = function(e) { - return function(t, n) { - var a = t.slice(n); - return e.test(a) ? a.match(e)[0].length : 0 + }, { + test: [/(apple)?webkit\/537\.36/i], + describe: function() { + return { + name: i.ENGINE_MAP.Blink } - }(n.validate), void(i(n.normalize) ? a.normalize = n.normalize : n.normalize ? c(t, n) : a.normalize = function(e, t) { - t.normalize(e) - }); - ! function(e) { - return "[object String]" === r(e) - }(n) ? c(t, n): l.push(t) - } - })), l.forEach((function(t) { - e.__compiled__[e.__schemas__[t]] && (e.__compiled__[t].validate = e.__compiled__[e.__schemas__[t]].validate, e.__compiled__[t].normalize = e.__compiled__[e.__schemas__[t]].normalize) - })), e.__compiled__[""] = { - validate: null, - normalize: function(e, t) { - t.normalize(e) - } - }; - var u = Object.keys(e.__compiled__).filter((function(t) { - return t.length > 0 && e.__compiled__[t] - })).map(o).join("|"); - e.re.schema_test = RegExp("(^|(?!_)(?:[><|]|" + t.src_ZPCc + "))(" + u + ")", "i"), e.re.schema_search = RegExp("(^|(?!_)(?:[><|]|" + t.src_ZPCc + "))(" + u + ")", "ig"), e.re.pretest = RegExp("(" + e.re.schema_test.source + ")|(" + e.re.host_fuzzy_test.source + ")|@", "i"), - function(e) { - e.__index__ = -1, e.__text_cache__ = "" - }(e) - } - - function d(e, t) { - var n = e.__index__, - a = e.__last_index__, - r = e.__text_cache__.slice(n, a); - this.schema = e.__schema__.toLowerCase(), this.index = n + t, this.lastIndex = a + t, this.raw = r, this.text = r, this.url = r - } - - function p(e, t) { - var n = new d(e, t); - return e.__compiled__[n.schema].normalize(n, e), n + } + }, { + test: [/(apple)?webkit/i], + describe: function(e) { + var t = { + name: i.ENGINE_MAP.WebKit + }, + n = r.default.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, e); + return n && (t.version = n), t + } + }]; + t.default = o, e.exports = t.default } - - function h(e, t) { - if (!(this instanceof h)) return new h(e, t); - var n; - t || (n = e, Object.keys(n || {}).reduce((function(e, t) { - return e || s.hasOwnProperty(t) - }), !1) && (t = e, e = {})), this.__opts__ = a({}, s, t), this.__index__ = -1, this.__last_index__ = -1, this.__schema__ = "", this.__text_cache__ = "", this.__schemas__ = a({}, l, e), this.__compiled__ = {}, this.__tlds__ = c, this.__tlds_replaced__ = !1, this.re = {}, u(this) - } - h.prototype.add = function(e, t) { - return this.__schemas__[e] = t, u(this), this - }, h.prototype.set = function(e) { - return this.__opts__ = a(this.__opts__, e), this - }, h.prototype.test = function(e) { - if (this.__text_cache__ = e, this.__index__ = -1, !e.length) return !1; - var t, n, a, r, i, o, s, l; - if (this.re.schema_test.test(e)) - for ((s = this.re.schema_search).lastIndex = 0; null !== (t = s.exec(e));) - if (r = this.testSchemaAt(e, t[2], s.lastIndex)) { - this.__schema__ = t[2], this.__index__ = t.index + t[1].length, this.__last_index__ = t.index + t[0].length + r; - break - } return this.__opts__.fuzzyLink && this.__compiled__["http:"] && (l = e.search(this.re.host_fuzzy_test)) >= 0 && (this.__index__ < 0 || l < this.__index__) && null !== (n = e.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) && (i = n.index + n[1].length, (this.__index__ < 0 || i < this.__index__) && (this.__schema__ = "", this.__index__ = i, this.__last_index__ = n.index + n[0].length)), this.__opts__.fuzzyEmail && this.__compiled__["mailto:"] && e.indexOf("@") >= 0 && null !== (a = e.match(this.re.email_fuzzy)) && (i = a.index + a[1].length, o = a.index + a[0].length, (this.__index__ < 0 || i < this.__index__ || i === this.__index__ && o > this.__last_index__) && (this.__schema__ = "mailto:", this.__index__ = i, this.__last_index__ = o)), this.__index__ >= 0 - }, h.prototype.pretest = function(e) { - return this.re.pretest.test(e) - }, h.prototype.testSchemaAt = function(e, t, n) { - return this.__compiled__[t.toLowerCase()] ? this.__compiled__[t.toLowerCase()].validate(e, n, this) : 0 - }, h.prototype.match = function(e) { - var t = 0, - n = []; - this.__index__ >= 0 && this.__text_cache__ === e && (n.push(p(this, t)), t = this.__last_index__); - for (var a = t ? e.slice(t) : e; this.test(a);) n.push(p(this, t)), a = a.slice(this.__last_index__), t += this.__last_index__; - return n.length ? n : null - }, h.prototype.tlds = function(e, t) { - return e = Array.isArray(e) ? e : [e], t ? (this.__tlds__ = this.__tlds__.concat(e).sort().filter((function(e, t, n) { - return e !== n[t - 1] - })).reverse(), u(this), this) : (this.__tlds__ = e.slice(), this.__tlds_replaced__ = !0, u(this), this) - }, h.prototype.normalize = function(e) { - e.schema || (e.url = "http://" + e.url), "mailto:" !== e.schema || /^mailto:/i.test(e.url) || (e.url = "mailto:" + e.url) - }, h.prototype.onCompile = function() {}, e.exports = h - }, 3854: (e, t, n) => { + }) +}, 3588: (e, t) => { + var n; + ! function() { "use strict"; - e.exports = function(e) { - var t = {}; - return t.src_Any = n(8486).source, t.src_Cc = n(8690).source, t.src_Z = n(8382).source, t.src_P = n(4601).source, t.src_ZPCc = [t.src_Z, t.src_P, t.src_Cc].join("|"), t.src_ZCc = [t.src_Z, t.src_Cc].join("|"), t.src_pseudo_letter = "(?:(?![><|]|" + t.src_ZPCc + ")" + t.src_Any + ")", t.src_ip4 = "(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", t.src_auth = "(?:(?:(?!" + t.src_ZCc + "|[@/\\[\\]()]).)+@)?", t.src_port = "(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?", t.src_host_terminator = "(?=$|[><|]|" + t.src_ZPCc + ")(?!-|_|:\\d|\\.-|\\.(?!$|" + t.src_ZPCc + "))", t.src_path = "(?:[/?#](?:(?!" + t.src_ZCc + "|[><|]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!" + t.src_ZCc + "|\\]).)*\\]|\\((?:(?!" + t.src_ZCc + "|[)]).)*\\)|\\{(?:(?!" + t.src_ZCc + '|[}]).)*\\}|\\"(?:(?!' + t.src_ZCc + '|["]).)+\\"|\\\'(?:(?!' + t.src_ZCc + "|[']).)+\\'|\\'(?=" + t.src_pseudo_letter + "|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!" + t.src_ZCc + "|[.]).|" + (e && e["---"] ? "\\-(?!--(?:[^-]|$))(?:-*)|" : "\\-+|") + "\\,(?!" + t.src_ZCc + ").|\\!(?!" + t.src_ZCc + "|[!]).|\\?(?!" + t.src_ZCc + "|[?]).)+|\\/)?", t.src_email_name = '[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*', t.src_xn = "xn--[a-z0-9\\-]{1,59}", t.src_domain_root = "(?:" + t.src_xn + "|" + t.src_pseudo_letter + "{1,63})", t.src_domain = "(?:" + t.src_xn + "|(?:" + t.src_pseudo_letter + ")|(?:" + t.src_pseudo_letter + "(?:-|" + t.src_pseudo_letter + "){0,61}" + t.src_pseudo_letter + "))", t.src_host = "(?:(?:(?:(?:" + t.src_domain + ")\\.)*" + t.src_domain + "))", t.tpl_host_fuzzy = "(?:" + t.src_ip4 + "|(?:(?:(?:" + t.src_domain + ")\\.)+(?:%TLDS%)))", t.tpl_host_no_ip_fuzzy = "(?:(?:(?:" + t.src_domain + ")\\.)+(?:%TLDS%))", t.src_host_strict = t.src_host + t.src_host_terminator, t.tpl_host_fuzzy_strict = t.tpl_host_fuzzy + t.src_host_terminator, t.src_host_port_strict = t.src_host + t.src_port + t.src_host_terminator, t.tpl_host_port_fuzzy_strict = t.tpl_host_fuzzy + t.src_port + t.src_host_terminator, t.tpl_host_port_no_ip_fuzzy_strict = t.tpl_host_no_ip_fuzzy + t.src_port + t.src_host_terminator, t.tpl_host_fuzzy_test = "localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:" + t.src_ZPCc + "|>|$))", t.tpl_email_fuzzy = '(^|[><|]|"|\\(|' + t.src_ZCc + ")(" + t.src_email_name + "@" + t.tpl_host_fuzzy_strict + ")", t.tpl_link_fuzzy = "(^|(?![.:/\\-_@])(?:[$+<=>^`||]|" + t.src_ZPCc + "))((?![$+<=>^`||])" + t.tpl_host_port_fuzzy_strict + t.src_path + ")", t.tpl_link_no_ip_fuzzy = "(^|(?![.:/\\-_@])(?:[$+<=>^`||]|" + t.src_ZPCc + "))((?![$+<=>^`||])" + t.tpl_host_port_no_ip_fuzzy_strict + t.src_path + ")", t - } - }, 7947: e => { - function t(e, t) { - e.onload = function() { - this.onerror = this.onload = null, t(null, e) - }, e.onerror = function() { - this.onerror = this.onload = null, t(new Error("Failed to load " + this.src), e) - } - } + var a = {}.hasOwnProperty; - function n(e, t) { - e.onreadystatechange = function() { - "complete" != this.readyState && "loaded" != this.readyState || (this.onreadystatechange = null, t(null, e)) + function r() { + for (var e = [], t = 0; t < arguments.length; t++) { + var n = arguments[t]; + if (n) { + var i = typeof n; + if ("string" === i || "number" === i) e.push(n); + else if (Array.isArray(n)) e.push(r.apply(null, n)); + else if ("object" === i) + for (var o in n) a.call(n, o) && n[o] && e.push(o) + } } + return e.join(" ") } - e.exports = function(e, a, r) { - var i = document.head || document.getElementsByTagName("head")[0], - o = document.createElement("script"); - "function" == typeof a && (r = a, a = {}), a = a || {}, r = r || function() {}, o.type = a.type || "text/javascript", o.charset = a.charset || "utf8", o.async = !("async" in a) || !!a.async, o.src = e, a.attrs && function(e, t) { - for (var n in t) e.setAttribute(n, t[n]) - }(o, a.attrs), a.text && (o.text = "" + a.text), ("onload" in o ? t : n)(o, r), o.onload || t(o, r), i.appendChild(o) - } - }, 7027: (e, t, n) => { - var a = "object" == typeof n.g && n.g && n.g.Object === Object && n.g, - r = "object" == typeof self && self && self.Object === Object && self, - i = a || r || Function("return this")(); - - function o(e, t) { - for (var n = -1, a = t.length, r = e.length; ++n < a;) e[r + n] = t[n]; - return e - } - var s = Object.prototype, - l = s.hasOwnProperty, - c = s.toString, - u = i.Symbol, - d = s.propertyIsEnumerable, - p = u ? u.isConcatSpreadable : void 0; - - function h(e, t, n, a, r) { - var i = -1, - s = e.length; - for (n || (n = m), r || (r = []); ++i < s;) { - var l = e[i]; - t > 0 && n(l) ? t > 1 ? h(l, t - 1, n, a, r) : o(r, l) : a || (r[r.length] = l) - } + e.exports ? e.exports = r : void 0 === (n = function() { return r - } - - function m(e) { - return f(e) || function(e) { - return function(e) { - return function(e) { - return !!e && "object" == typeof e - }(e) && function(e) { - return null != e && function(e) { - return "number" == typeof e && e > -1 && e % 1 == 0 && e <= 9007199254740991 - }(e.length) && ! function(e) { - var t = function(e) { - var t = typeof e; - return !!e && ("object" == t || "function" == t) - }(e) ? c.call(e) : ""; - return "[object Function]" == t || "[object GeneratorFunction]" == t - }(e) - }(e) - }(e) && l.call(e, "callee") && (!d.call(e, "callee") || "[object Arguments]" == c.call(e)) - }(e) || !!(p && e && e[p]) - } - var f = Array.isArray; - e.exports = function(e) { - return e && e.length ? h(e, 1) : [] - } - }, 4458: e => { - var t = Object.prototype.toString, - n = Array.isArray; - e.exports = function(e) { - return "string" == typeof e || !n(e) && function(e) { - return !!e && "object" == typeof e - }(e) && "[object String]" == t.call(e) - } - }, 7206: (e, t, n) => { - var a = n(4366).Symbol; - e.exports = a - }, 7807: (e, t, n) => { - var a = n(7206), - r = n(3187), - i = n(2778), - o = a ? a.toStringTag : void 0; - e.exports = function(e) { - return null == e ? void 0 === e ? "[object Undefined]" : "[object Null]" : o && o in Object(e) ? r(e) : i(e) - } - }, 4182: (e, t, n) => { - var a = n(9135), - r = /^\s+/; - e.exports = function(e) { - return e ? e.slice(0, a(e) + 1).replace(r, "") : e - } - }, 4891: (e, t, n) => { - var a = "object" == typeof n.g && n.g && n.g.Object === Object && n.g; - e.exports = a - }, 3187: (e, t, n) => { - var a = n(7206), - r = Object.prototype, - i = r.hasOwnProperty, - o = r.toString, - s = a ? a.toStringTag : void 0; - e.exports = function(e) { - var t = i.call(e, s), - n = e[s]; + }.apply(t, [])) || (e.exports = n) + }() +}, 6415: e => { + function t() { + return new DOMException("The request is not allowed", "NotAllowedError") + } + e.exports = async function(e) { + try { + await async function(e) { + if (!navigator.clipboard) throw t(); + return navigator.clipboard.writeText(e) + }(e) + } catch (n) { try { - e[s] = void 0; - var a = !0 - } catch (e) {} - var r = o.call(e); - return a && (t ? e[s] = n : delete e[s]), r - } - }, 2778: e => { - var t = Object.prototype.toString; - e.exports = function(e) { - return t.call(e) - } - }, 4366: (e, t, n) => { - var a = n(4891), - r = "object" == typeof self && self && self.Object === Object && self, - i = a || r || Function("return this")(); - e.exports = i - }, 9135: e => { - var t = /\s/; - e.exports = function(e) { - for (var n = e.length; n-- && t.test(e.charAt(n));); - return n - } - }, 3645: (e, t, n) => { - var a = n(1716), - r = n(9244), - i = n(1666), - o = Math.max, - s = Math.min; - e.exports = function(e, t, n) { - var l, c, u, d, p, h, m = 0, - f = !1, - g = !1, - b = !0; - if ("function" != typeof e) throw new TypeError("Expected a function"); - - function y(t) { - var n = l, - a = c; - return l = c = void 0, m = t, d = e.apply(a, n) - } - - function v(e) { - return m = e, p = setTimeout(_, t), f ? y(e) : d - } - - function k(e) { - var n = e - h; - return void 0 === h || n >= t || n < 0 || g && e - m >= u - } - - function _() { - var e = r(); - if (k(e)) return w(e); - p = setTimeout(_, function(e) { - var n = t - (e - h); - return g ? s(n, u - (e - m)) : n - }(e)) - } - - function w(e) { - return p = void 0, b && l ? y(e) : (l = c = void 0, d) - } - - function S() { - var e = r(), - n = k(e); - if (l = arguments, c = this, h = e, n) { - if (void 0 === p) return v(h); - if (g) return clearTimeout(p), p = setTimeout(_, t), y(h) - } - return void 0 === p && (p = setTimeout(_, t)), d + await async function(e) { + const n = document.createElement("span"); + n.textContent = e, n.style.whiteSpace = "pre", n.style.webkitUserSelect = "auto", n.style.userSelect = "all", document.body.appendChild(n); + const a = window.getSelection(), + r = window.document.createRange(); + a.removeAllRanges(), r.selectNode(n), a.addRange(r); + let i = !1; + try { + i = window.document.execCommand("copy") + } finally { + a.removeAllRanges(), window.document.body.removeChild(n) + } + if (!i) throw t() + }(e) + } catch (e) { + throw e || n || t() } - return t = i(t) || 0, a(n) && (f = !!n.leading, u = (g = "maxWait" in n) ? o(i(n.maxWait) || 0, t) : u, b = "trailing" in n ? !!n.trailing : b), S.cancel = function() { - void 0 !== p && clearTimeout(p), m = 0, l = h = c = p = void 0 - }, S.flush = function() { - return void 0 === p ? d : w(r()) - }, S } - }, 1716: e => { - e.exports = function(e) { - var t = typeof e; - return null != e && ("object" == t || "function" == t) - } - }, 8667: e => { - e.exports = function(e) { - return null != e && "object" == typeof e - } - }, 2570: (e, t, n) => { - var a = n(7807), - r = n(8667); - e.exports = function(e) { - return "symbol" == typeof e || r(e) && "[object Symbol]" == a(e) - } - }, 103: function(e, t, n) { - var a; - e = n.nmd(e), - function() { - var r, i = "Expected a function", - o = "__lodash_hash_undefined__", - s = "__lodash_placeholder__", - l = 32, - c = 128, - u = 1 / 0, - d = 9007199254740991, - p = NaN, - h = 4294967295, - m = [ - ["ary", c], - ["bind", 1], - ["bindKey", 2], - ["curry", 8], - ["curryRight", 16], - ["flip", 512], - ["partial", l], - ["partialRight", 64], - ["rearg", 256] - ], - f = "[object Arguments]", - g = "[object Array]", - b = "[object Boolean]", - y = "[object Date]", - v = "[object Error]", - k = "[object Function]", - _ = "[object GeneratorFunction]", - w = "[object Map]", - S = "[object Number]", - E = "[object Object]", - x = "[object Promise]", - C = "[object RegExp]", - A = "[object Set]", - j = "[object String]", - P = "[object Symbol]", - D = "[object WeakMap]", - T = "[object ArrayBuffer]", - O = "[object DataView]", - M = "[object Float32Array]", - I = "[object Float64Array]", - N = "[object Int8Array]", - z = "[object Int16Array]", - R = "[object Int32Array]", - L = "[object Uint8Array]", - F = "[object Uint8ClampedArray]", - q = "[object Uint16Array]", - B = "[object Uint32Array]", - U = /\b__p \+= '';/g, - H = /\b(__p \+=) '' \+/g, - V = /(__e\(.*?\)|\b__t\)) \+\n'';/g, - W = /&(?:amp|lt|gt|quot|#39);/g, - Y = /[&<>"']/g, - G = RegExp(W.source), - K = RegExp(Y.source), - $ = /<%-([\s\S]+?)%>/g, - J = /<%([\s\S]+?)%>/g, - Z = /<%=([\s\S]+?)%>/g, - Q = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - X = /^\w*$/, - ee = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, - te = /[\\^$.*+?()[\]{}|]/g, - ne = RegExp(te.source), - ae = /^\s+/, - re = /\s/, - ie = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, - oe = /\{\n\/\* \[wrapped with (.+)\] \*/, - se = /,? & /, - le = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, - ce = /[()=,{}\[\]\/\s]/, - ue = /\\(\\)?/g, - de = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, - pe = /\w*$/, - he = /^[-+]0x[0-9a-f]+$/i, - me = /^0b[01]+$/i, - fe = /^\[object .+?Constructor\]$/, - ge = /^0o[0-7]+$/i, - be = /^(?:0|[1-9]\d*)$/, - ye = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, - ve = /($^)/, - ke = /['\n\r\u2028\u2029\\]/g, - _e = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff", - we = "a-z\\xdf-\\xf6\\xf8-\\xff", - Se = "A-Z\\xc0-\\xd6\\xd8-\\xde", - Ee = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", - xe = "[" + Ee + "]", - Ce = "[" + _e + "]", - Ae = "\\d+", - je = "[" + we + "]", - Pe = "[^\\ud800-\\udfff" + Ee + Ae + "\\u2700-\\u27bf" + we + Se + "]", - De = "\\ud83c[\\udffb-\\udfff]", - Te = "[^\\ud800-\\udfff]", - Oe = "(?:\\ud83c[\\udde6-\\uddff]){2}", - Me = "[\\ud800-\\udbff][\\udc00-\\udfff]", - Ie = "[" + Se + "]", - Ne = "(?:" + je + "|" + Pe + ")", - ze = "(?:" + Ie + "|" + Pe + ")", - Re = "(?:['’](?:d|ll|m|re|s|t|ve))?", - Le = "(?:['’](?:D|LL|M|RE|S|T|VE))?", - Fe = "(?:" + Ce + "|" + De + ")?", - qe = "[\\ufe0e\\ufe0f]?", - Be = qe + Fe + "(?:\\u200d(?:" + [Te, Oe, Me].join("|") + ")" + qe + Fe + ")*", - Ue = "(?:" + ["[\\u2700-\\u27bf]", Oe, Me].join("|") + ")" + Be, - He = "(?:" + [Te + Ce + "?", Ce, Oe, Me, "[\\ud800-\\udfff]"].join("|") + ")", - Ve = RegExp("['’]", "g"), - We = RegExp(Ce, "g"), - Ye = RegExp(De + "(?=" + De + ")|" + He + Be, "g"), - Ge = RegExp([Ie + "?" + je + "+" + Re + "(?=" + [xe, Ie, "$"].join("|") + ")", ze + "+" + Le + "(?=" + [xe, Ie + Ne, "$"].join("|") + ")", Ie + "?" + Ne + "+" + Re, Ie + "+" + Le, "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", Ae, Ue].join("|"), "g"), - Ke = RegExp("[\\u200d\\ud800-\\udfff" + _e + "\\ufe0e\\ufe0f]"), - $e = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, - Je = ["Array", "Buffer", "DataView", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Map", "Math", "Object", "Promise", "RegExp", "Set", "String", "Symbol", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "_", "clearTimeout", "isFinite", "parseInt", "setTimeout"], - Ze = -1, - Qe = {}; - Qe[M] = Qe[I] = Qe[N] = Qe[z] = Qe[R] = Qe[L] = Qe[F] = Qe[q] = Qe[B] = !0, Qe[f] = Qe[g] = Qe[T] = Qe[b] = Qe[O] = Qe[y] = Qe[v] = Qe[k] = Qe[w] = Qe[S] = Qe[E] = Qe[C] = Qe[A] = Qe[j] = Qe[D] = !1; - var Xe = {}; - Xe[f] = Xe[g] = Xe[T] = Xe[O] = Xe[b] = Xe[y] = Xe[M] = Xe[I] = Xe[N] = Xe[z] = Xe[R] = Xe[w] = Xe[S] = Xe[E] = Xe[C] = Xe[A] = Xe[j] = Xe[P] = Xe[L] = Xe[F] = Xe[q] = Xe[B] = !0, Xe[v] = Xe[k] = Xe[D] = !1; - var et = { - "\\": "\\", - "'": "'", - "\n": "n", - "\r": "r", - "\u2028": "u2028", - "\u2029": "u2029" - }, - tt = parseFloat, - nt = parseInt, - at = "object" == typeof n.g && n.g && n.g.Object === Object && n.g, - rt = "object" == typeof self && self && self.Object === Object && self, - it = at || rt || Function("return this")(), - ot = t && !t.nodeType && t, - st = ot && e && !e.nodeType && e, - lt = st && st.exports === ot, - ct = lt && at.process, - ut = function() { - try { - return st && st.require && st.require("util").types || ct && ct.binding && ct.binding("util") - } catch (e) {} - }(), - dt = ut && ut.isArrayBuffer, - pt = ut && ut.isDate, - ht = ut && ut.isMap, - mt = ut && ut.isRegExp, - ft = ut && ut.isSet, - gt = ut && ut.isTypedArray; - - function bt(e, t, n) { - switch (n.length) { - case 0: - return e.call(t); - case 1: - return e.call(t, n[0]); - case 2: - return e.call(t, n[0], n[1]); - case 3: - return e.call(t, n[0], n[1], n[2]) - } - return e.apply(t, n) - } - - function yt(e, t, n, a) { - for (var r = -1, i = null == e ? 0 : e.length; ++r < i;) { - var o = e[r]; - t(a, o, n(o), e) - } - return a - } - - function vt(e, t) { - for (var n = -1, a = null == e ? 0 : e.length; ++n < a && !1 !== t(e[n], n, e);); - return e - } - - function kt(e, t) { - for (var n = null == e ? 0 : e.length; n-- && !1 !== t(e[n], n, e);); - return e - } - - function _t(e, t) { - for (var n = -1, a = null == e ? 0 : e.length; ++n < a;) - if (!t(e[n], n, e)) return !1; - return !0 - } - - function wt(e, t) { - for (var n = -1, a = null == e ? 0 : e.length, r = 0, i = []; ++n < a;) { - var o = e[n]; - t(o, n, e) && (i[r++] = o) - } - return i - } - - function St(e, t) { - return !(null == e || !e.length) && Mt(e, t, 0) > -1 - } - - function Et(e, t, n) { - for (var a = -1, r = null == e ? 0 : e.length; ++a < r;) - if (n(t, e[a])) return !0; - return !1 - } - - function xt(e, t) { - for (var n = -1, a = null == e ? 0 : e.length, r = Array(a); ++n < a;) r[n] = t(e[n], n, e); - return r - } - - function Ct(e, t) { - for (var n = -1, a = t.length, r = e.length; ++n < a;) e[r + n] = t[n]; - return e - } - - function At(e, t, n, a) { - var r = -1, - i = null == e ? 0 : e.length; - for (a && i && (n = e[++r]); ++r < i;) n = t(n, e[r], r, e); - return n - } + } +}, 8801: (e, t, n) => { + var a = n(554); - function jt(e, t, n, a) { - var r = null == e ? 0 : e.length; - for (a && r && (n = e[--r]); r--;) n = t(n, e[r], r, e); + function r() { + var e; + try { + e = t.storage.debug + } catch (e) {} + return !e && void 0 !== a && "env" in a && (e = a.env.DEBUG), e + }(t = e.exports = n(2155)).log = function() { + return "object" == typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments) + }, t.formatArgs = function(e) { + var n = this.useColors; + if (e[0] = (n ? "%c" : "") + this.namespace + (n ? " %c" : " ") + e[0] + (n ? "%c " : " ") + "+" + t.humanize(this.diff), n) { + var a = "color: " + this.color; + e.splice(1, 0, a, "color: inherit"); + var r = 0, + i = 0; + e[0].replace(/%[a-zA-Z%]/g, (function(e) { + "%%" !== e && (r++, "%c" === e && (i = r)) + })), e.splice(i, 0, a) + } + }, t.save = function(e) { + try { + null == e ? t.storage.removeItem("debug") : t.storage.debug = e + } catch (e) {} + }, t.load = r, t.useColors = function() { + return !("undefined" == typeof window || !window.process || "renderer" !== window.process.type) || ("undefined" != typeof document && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || "undefined" != typeof window && window.console && (window.console.firebug || window.console.exception && window.console.table) || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || "undefined" != typeof navigator && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)) + }, t.storage = "undefined" != typeof chrome && void 0 !== chrome.storage ? chrome.storage.local : function() { + try { + return window.localStorage + } catch (e) {} + }(), t.colors = ["lightseagreen", "forestgreen", "goldenrod", "dodgerblue", "darkorchid", "crimson"], t.formatters.j = function(e) { + try { + return JSON.stringify(e) + } catch (e) { + return "[UnexpectedJSONParseError]: " + e.message + } + }, t.enable(r()) +}, 2155: (e, t, n) => { + var a; + + function r(e) { + function n() { + if (n.enabled) { + var e = n, + r = +new Date, + i = r - (a || r); + e.diff = i, e.prev = a, e.curr = r, a = r; + for (var o = new Array(arguments.length), s = 0; s < o.length; s++) o[s] = arguments[s]; + o[0] = t.coerce(o[0]), "string" != typeof o[0] && o.unshift("%O"); + var l = 0; + o[0] = o[0].replace(/%([a-zA-Z%])/g, (function(n, a) { + if ("%%" === n) return n; + l++; + var r = t.formatters[a]; + if ("function" == typeof r) { + var i = o[l]; + n = r.call(e, i), o.splice(l, 1), l-- + } return n - } - - function Pt(e, t) { - for (var n = -1, a = null == e ? 0 : e.length; ++n < a;) - if (t(e[n], n, e)) return !0; - return !1 - } - var Dt = Rt("length"); + })), t.formatArgs.call(e, o); + var c = n.log || t.log || console.log.bind(console); + c.apply(e, o) + } + } + return n.namespace = e, n.enabled = t.enabled(e), n.useColors = t.useColors(), n.color = function(e) { + var n, a = 0; + for (n in e) a = (a << 5) - a + e.charCodeAt(n), a |= 0; + return t.colors[Math.abs(a) % t.colors.length] + }(e), "function" == typeof t.init && t.init(n), n + }(t = e.exports = r.debug = r.default = r).coerce = function(e) { + return e instanceof Error ? e.stack || e.message : e + }, t.disable = function() { + t.enable("") + }, t.enable = function(e) { + t.save(e), t.names = [], t.skips = []; + for (var n = ("string" == typeof e ? e : "").split(/[\s,]+/), a = n.length, r = 0; r < a; r++) n[r] && ("-" === (e = n[r].replace(/\*/g, ".*?"))[0] ? t.skips.push(new RegExp("^" + e.substr(1) + "$")) : t.names.push(new RegExp("^" + e + "$"))) + }, t.enabled = function(e) { + var n, a; + for (n = 0, a = t.skips.length; n < a; n++) + if (t.skips[n].test(e)) return !1; + for (n = 0, a = t.names.length; n < a; n++) + if (t.names[n].test(e)) return !0; + return !1 + }, t.humanize = n(2068), t.names = [], t.skips = [], t.formatters = {} +}, 1148: (e, t, n) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.default = function(e, t) { + e.classList ? e.classList.add(t) : (0, r.default)(e, t) || ("string" == typeof e.className ? e.className = e.className + " " + t : e.setAttribute("class", (e.className && e.className.baseVal || "") + " " + t)) + }; + var a, r = (a = n(957)) && a.__esModule ? a : { + default: a + }; + e.exports = t.default +}, 957: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.default = function(e, t) { + return e.classList ? !!t && e.classList.contains(t) : -1 !== (" " + (e.className.baseVal || e.className) + " ").indexOf(" " + t + " ") + }, e.exports = t.default +}, 9154: e => { + "use strict"; + + function t(e, t) { + return e.replace(new RegExp("(^|\\s)" + t + "(?:\\s|$)", "g"), "$1").replace(/\s+/g, " ").replace(/^\s*|\s*$/g, "") + } + e.exports = function(e, n) { + e.classList ? e.classList.remove(n) : "string" == typeof e.className ? e.className = t(e.className, n) : e.setAttribute("class", t(e.className && e.className.baseVal || "", n)) + } +}, 904: function(e, t, n) { + ! function(e) { + "use strict"; - function Tt(e, t, n) { - var a; - return n(e, (function(e, n, r) { - if (t(e, n, r)) return a = n, !1 - })), a - } + function t(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + } - function Ot(e, t, n, a) { - for (var r = e.length, i = n + (a ? 1 : -1); a ? i-- : ++i < r;) - if (t(e[i], i, e)) return i; - return -1 - } + function a(e, t) { + for (var n = 0; t.length > n; n++) { + var a = t[n]; + a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) + } + } - function Mt(e, t, n) { - return t == t ? function(e, t, n) { - for (var a = n - 1, r = e.length; ++a < r;) - if (e[a] === t) return a; - return -1 - }(e, t, n) : Ot(e, Nt, n) - } + function r(e, t, n) { + return t && a(e.prototype, t), n && a(e, n), e + } - function It(e, t, n, a) { - for (var r = n - 1, i = e.length; ++r < i;) - if (a(e[r], t)) return r; - return -1 - } + function i(e) { + return (i = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { + return e.__proto__ || Object.getPrototypeOf(e) + })(e) + } - function Nt(e) { - return e != e - } + function o(e, t) { + return (o = Object.setPrototypeOf || function(e, t) { + return e.__proto__ = t, e + })(e, t) + } - function zt(e, t) { - var n = null == e ? 0 : e.length; - return n ? qt(e, t) / n : p - } + function s() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Date.prototype.toString.call(Reflect.construct(Date, [], (function() {}))), !0 + } catch (e) { + return !1 + } + } - function Rt(e) { - return function(t) { - return null == t ? r : t[e] - } - } + function l(e, t, n) { + return (l = s() ? Reflect.construct : function(e, t, n) { + var a = [null]; + a.push.apply(a, t); + var r = new(Function.bind.apply(e, a)); + return n && o(r, n.prototype), r + }).apply(null, arguments) + } - function Lt(e) { - return function(t) { - return null == e ? r : e[t] - } + function c(e) { + var t = "function" == typeof Map ? new Map : void 0; + return (c = function(e) { + if (null === e || -1 === Function.toString.call(e).indexOf("[native code]")) return e; + if ("function" != typeof e) throw new TypeError("Super expression must either be null or a function"); + if (void 0 !== t) { + if (t.has(e)) return t.get(e); + t.set(e, n) } - function Ft(e, t, n, a, r) { - return r(e, (function(e, r, i) { - n = a ? (a = !1, e) : t(n, e, r, i) - })), n + function n() { + return l(e, arguments, i(this).constructor) } - - function qt(e, t) { - for (var n, a = -1, i = e.length; ++a < i;) { - var o = t(e[a]); - o !== r && (n = n === r ? o : n + o) + return n.prototype = Object.create(e.prototype, { + constructor: { + value: n, + enumerable: !1, + writable: !0, + configurable: !0 } - return n - } + }), o(n, e) + })(e) + } - function Bt(e, t) { - for (var n = -1, a = Array(e); ++n < e;) a[n] = t(n); - return a - } + function u(e, t) { + return !t || "object" != typeof t && "function" != typeof t ? function(e) { + if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return e + }(e) : t + } + var d = "app", + p = "user", + h = "team", + m = "dropboxapi.com", + f = "dropbox.com", + g = { + api: "api", + notify: "bolt", + content: "api-content" + }, + b = {}; - function Ut(e) { - return e ? e.slice(0, sn(e) + 1).replace(ae, "") : e - } + function y(e) { + var t = "000".concat(e.charCodeAt(0).toString(16)).slice(-4); + return "\\u".concat(t) + } + b.accountSetProfilePhoto = function(e) { + return this.request("account/set_profile_photo", e, "user", "api", "rpc") + }, b.authTokenFromOauth1 = function(e) { + return this.request("auth/token/from_oauth1", e, "app", "api", "rpc") + }, b.authTokenRevoke = function() { + return this.request("auth/token/revoke", null, "user", "api", "rpc") + }, b.checkApp = function(e) { + return this.request("check/app", e, "app", "api", "rpc") + }, b.checkUser = function(e) { + return this.request("check/user", e, "user", "api", "rpc") + }, b.contactsDeleteManualContacts = function() { + return this.request("contacts/delete_manual_contacts", null, "user", "api", "rpc") + }, b.contactsDeleteManualContactsBatch = function(e) { + return this.request("contacts/delete_manual_contacts_batch", e, "user", "api", "rpc") + }, b.filePropertiesPropertiesAdd = function(e) { + return this.request("file_properties/properties/add", e, "user", "api", "rpc") + }, b.filePropertiesPropertiesOverwrite = function(e) { + return this.request("file_properties/properties/overwrite", e, "user", "api", "rpc") + }, b.filePropertiesPropertiesRemove = function(e) { + return this.request("file_properties/properties/remove", e, "user", "api", "rpc") + }, b.filePropertiesPropertiesSearch = function(e) { + return this.request("file_properties/properties/search", e, "user", "api", "rpc") + }, b.filePropertiesPropertiesSearchContinue = function(e) { + return this.request("file_properties/properties/search/continue", e, "user", "api", "rpc") + }, b.filePropertiesPropertiesUpdate = function(e) { + return this.request("file_properties/properties/update", e, "user", "api", "rpc") + }, b.filePropertiesTemplatesAddForTeam = function(e) { + return this.request("file_properties/templates/add_for_team", e, "team", "api", "rpc") + }, b.filePropertiesTemplatesAddForUser = function(e) { + return this.request("file_properties/templates/add_for_user", e, "user", "api", "rpc") + }, b.filePropertiesTemplatesGetForTeam = function(e) { + return this.request("file_properties/templates/get_for_team", e, "team", "api", "rpc") + }, b.filePropertiesTemplatesGetForUser = function(e) { + return this.request("file_properties/templates/get_for_user", e, "user", "api", "rpc") + }, b.filePropertiesTemplatesListForTeam = function() { + return this.request("file_properties/templates/list_for_team", null, "team", "api", "rpc") + }, b.filePropertiesTemplatesListForUser = function() { + return this.request("file_properties/templates/list_for_user", null, "user", "api", "rpc") + }, b.filePropertiesTemplatesRemoveForTeam = function(e) { + return this.request("file_properties/templates/remove_for_team", e, "team", "api", "rpc") + }, b.filePropertiesTemplatesRemoveForUser = function(e) { + return this.request("file_properties/templates/remove_for_user", e, "user", "api", "rpc") + }, b.filePropertiesTemplatesUpdateForTeam = function(e) { + return this.request("file_properties/templates/update_for_team", e, "team", "api", "rpc") + }, b.filePropertiesTemplatesUpdateForUser = function(e) { + return this.request("file_properties/templates/update_for_user", e, "user", "api", "rpc") + }, b.fileRequestsCount = function() { + return this.request("file_requests/count", null, "user", "api", "rpc") + }, b.fileRequestsCreate = function(e) { + return this.request("file_requests/create", e, "user", "api", "rpc") + }, b.fileRequestsDelete = function(e) { + return this.request("file_requests/delete", e, "user", "api", "rpc") + }, b.fileRequestsDeleteAllClosed = function() { + return this.request("file_requests/delete_all_closed", null, "user", "api", "rpc") + }, b.fileRequestsGet = function(e) { + return this.request("file_requests/get", e, "user", "api", "rpc") + }, b.fileRequestsListV2 = function(e) { + return this.request("file_requests/list_v2", e, "user", "api", "rpc") + }, b.fileRequestsList = function() { + return this.request("file_requests/list", null, "user", "api", "rpc") + }, b.fileRequestsListContinue = function(e) { + return this.request("file_requests/list/continue", e, "user", "api", "rpc") + }, b.fileRequestsUpdate = function(e) { + return this.request("file_requests/update", e, "user", "api", "rpc") + }, b.filesAlphaGetMetadata = function(e) { + return this.request("files/alpha/get_metadata", e, "user", "api", "rpc") + }, b.filesAlphaUpload = function(e) { + return this.request("files/alpha/upload", e, "user", "content", "upload") + }, b.filesCopyV2 = function(e) { + return this.request("files/copy_v2", e, "user", "api", "rpc") + }, b.filesCopy = function(e) { + return this.request("files/copy", e, "user", "api", "rpc") + }, b.filesCopyBatchV2 = function(e) { + return this.request("files/copy_batch_v2", e, "user", "api", "rpc") + }, b.filesCopyBatch = function(e) { + return this.request("files/copy_batch", e, "user", "api", "rpc") + }, b.filesCopyBatchCheckV2 = function(e) { + return this.request("files/copy_batch/check_v2", e, "user", "api", "rpc") + }, b.filesCopyBatchCheck = function(e) { + return this.request("files/copy_batch/check", e, "user", "api", "rpc") + }, b.filesCopyReferenceGet = function(e) { + return this.request("files/copy_reference/get", e, "user", "api", "rpc") + }, b.filesCopyReferenceSave = function(e) { + return this.request("files/copy_reference/save", e, "user", "api", "rpc") + }, b.filesCreateFolderV2 = function(e) { + return this.request("files/create_folder_v2", e, "user", "api", "rpc") + }, b.filesCreateFolder = function(e) { + return this.request("files/create_folder", e, "user", "api", "rpc") + }, b.filesCreateFolderBatch = function(e) { + return this.request("files/create_folder_batch", e, "user", "api", "rpc") + }, b.filesCreateFolderBatchCheck = function(e) { + return this.request("files/create_folder_batch/check", e, "user", "api", "rpc") + }, b.filesDeleteV2 = function(e) { + return this.request("files/delete_v2", e, "user", "api", "rpc") + }, b.filesDelete = function(e) { + return this.request("files/delete", e, "user", "api", "rpc") + }, b.filesDeleteBatch = function(e) { + return this.request("files/delete_batch", e, "user", "api", "rpc") + }, b.filesDeleteBatchCheck = function(e) { + return this.request("files/delete_batch/check", e, "user", "api", "rpc") + }, b.filesDownload = function(e) { + return this.request("files/download", e, "user", "content", "download") + }, b.filesDownloadZip = function(e) { + return this.request("files/download_zip", e, "user", "content", "download") + }, b.filesExport = function(e) { + return this.request("files/export", e, "user", "content", "download") + }, b.filesGetFileLockBatch = function(e) { + return this.request("files/get_file_lock_batch", e, "user", "api", "rpc") + }, b.filesGetMetadata = function(e) { + return this.request("files/get_metadata", e, "user", "api", "rpc") + }, b.filesGetPreview = function(e) { + return this.request("files/get_preview", e, "user", "content", "download") + }, b.filesGetTemporaryLink = function(e) { + return this.request("files/get_temporary_link", e, "user", "api", "rpc") + }, b.filesGetTemporaryUploadLink = function(e) { + return this.request("files/get_temporary_upload_link", e, "user", "api", "rpc") + }, b.filesGetThumbnail = function(e) { + return this.request("files/get_thumbnail", e, "user", "content", "download") + }, b.filesGetThumbnailV2 = function(e) { + return this.request("files/get_thumbnail_v2", e, "app, user", "content", "download") + }, b.filesGetThumbnailBatch = function(e) { + return this.request("files/get_thumbnail_batch", e, "user", "content", "rpc") + }, b.filesListFolder = function(e) { + return this.request("files/list_folder", e, "user", "api", "rpc") + }, b.filesListFolderContinue = function(e) { + return this.request("files/list_folder/continue", e, "user", "api", "rpc") + }, b.filesListFolderGetLatestCursor = function(e) { + return this.request("files/list_folder/get_latest_cursor", e, "user", "api", "rpc") + }, b.filesListFolderLongpoll = function(e) { + return this.request("files/list_folder/longpoll", e, "noauth", "notify", "rpc") + }, b.filesListRevisions = function(e) { + return this.request("files/list_revisions", e, "user", "api", "rpc") + }, b.filesLockFileBatch = function(e) { + return this.request("files/lock_file_batch", e, "user", "api", "rpc") + }, b.filesMoveV2 = function(e) { + return this.request("files/move_v2", e, "user", "api", "rpc") + }, b.filesMove = function(e) { + return this.request("files/move", e, "user", "api", "rpc") + }, b.filesMoveBatchV2 = function(e) { + return this.request("files/move_batch_v2", e, "user", "api", "rpc") + }, b.filesMoveBatch = function(e) { + return this.request("files/move_batch", e, "user", "api", "rpc") + }, b.filesMoveBatchCheckV2 = function(e) { + return this.request("files/move_batch/check_v2", e, "user", "api", "rpc") + }, b.filesMoveBatchCheck = function(e) { + return this.request("files/move_batch/check", e, "user", "api", "rpc") + }, b.filesPaperCreate = function(e) { + return this.request("files/paper/create", e, "user", "api", "upload") + }, b.filesPaperUpdate = function(e) { + return this.request("files/paper/update", e, "user", "api", "upload") + }, b.filesPermanentlyDelete = function(e) { + return this.request("files/permanently_delete", e, "user", "api", "rpc") + }, b.filesPropertiesAdd = function(e) { + return this.request("files/properties/add", e, "user", "api", "rpc") + }, b.filesPropertiesOverwrite = function(e) { + return this.request("files/properties/overwrite", e, "user", "api", "rpc") + }, b.filesPropertiesRemove = function(e) { + return this.request("files/properties/remove", e, "user", "api", "rpc") + }, b.filesPropertiesTemplateGet = function(e) { + return this.request("files/properties/template/get", e, "user", "api", "rpc") + }, b.filesPropertiesTemplateList = function() { + return this.request("files/properties/template/list", null, "user", "api", "rpc") + }, b.filesPropertiesUpdate = function(e) { + return this.request("files/properties/update", e, "user", "api", "rpc") + }, b.filesRestore = function(e) { + return this.request("files/restore", e, "user", "api", "rpc") + }, b.filesSaveUrl = function(e) { + return this.request("files/save_url", e, "user", "api", "rpc") + }, b.filesSaveUrlCheckJobStatus = function(e) { + return this.request("files/save_url/check_job_status", e, "user", "api", "rpc") + }, b.filesSearch = function(e) { + return this.request("files/search", e, "user", "api", "rpc") + }, b.filesSearchV2 = function(e) { + return this.request("files/search_v2", e, "user", "api", "rpc") + }, b.filesSearchContinueV2 = function(e) { + return this.request("files/search/continue_v2", e, "user", "api", "rpc") + }, b.filesUnlockFileBatch = function(e) { + return this.request("files/unlock_file_batch", e, "user", "api", "rpc") + }, b.filesUpload = function(e) { + return this.request("files/upload", e, "user", "content", "upload") + }, b.filesUploadSessionAppendV2 = function(e) { + return this.request("files/upload_session/append_v2", e, "user", "content", "upload") + }, b.filesUploadSessionAppend = function(e) { + return this.request("files/upload_session/append", e, "user", "content", "upload") + }, b.filesUploadSessionFinish = function(e) { + return this.request("files/upload_session/finish", e, "user", "content", "upload") + }, b.filesUploadSessionFinishBatch = function(e) { + return this.request("files/upload_session/finish_batch", e, "user", "api", "rpc") + }, b.filesUploadSessionFinishBatchCheck = function(e) { + return this.request("files/upload_session/finish_batch/check", e, "user", "api", "rpc") + }, b.filesUploadSessionStart = function(e) { + return this.request("files/upload_session/start", e, "user", "content", "upload") + }, b.paperDocsArchive = function(e) { + return this.request("paper/docs/archive", e, "user", "api", "rpc") + }, b.paperDocsCreate = function(e) { + return this.request("paper/docs/create", e, "user", "api", "upload") + }, b.paperDocsDownload = function(e) { + return this.request("paper/docs/download", e, "user", "api", "download") + }, b.paperDocsFolderUsersList = function(e) { + return this.request("paper/docs/folder_users/list", e, "user", "api", "rpc") + }, b.paperDocsFolderUsersListContinue = function(e) { + return this.request("paper/docs/folder_users/list/continue", e, "user", "api", "rpc") + }, b.paperDocsGetFolderInfo = function(e) { + return this.request("paper/docs/get_folder_info", e, "user", "api", "rpc") + }, b.paperDocsList = function(e) { + return this.request("paper/docs/list", e, "user", "api", "rpc") + }, b.paperDocsListContinue = function(e) { + return this.request("paper/docs/list/continue", e, "user", "api", "rpc") + }, b.paperDocsPermanentlyDelete = function(e) { + return this.request("paper/docs/permanently_delete", e, "user", "api", "rpc") + }, b.paperDocsSharingPolicyGet = function(e) { + return this.request("paper/docs/sharing_policy/get", e, "user", "api", "rpc") + }, b.paperDocsSharingPolicySet = function(e) { + return this.request("paper/docs/sharing_policy/set", e, "user", "api", "rpc") + }, b.paperDocsUpdate = function(e) { + return this.request("paper/docs/update", e, "user", "api", "upload") + }, b.paperDocsUsersAdd = function(e) { + return this.request("paper/docs/users/add", e, "user", "api", "rpc") + }, b.paperDocsUsersList = function(e) { + return this.request("paper/docs/users/list", e, "user", "api", "rpc") + }, b.paperDocsUsersListContinue = function(e) { + return this.request("paper/docs/users/list/continue", e, "user", "api", "rpc") + }, b.paperDocsUsersRemove = function(e) { + return this.request("paper/docs/users/remove", e, "user", "api", "rpc") + }, b.paperFoldersCreate = function(e) { + return this.request("paper/folders/create", e, "user", "api", "rpc") + }, b.sharingAddFileMember = function(e) { + return this.request("sharing/add_file_member", e, "user", "api", "rpc") + }, b.sharingAddFolderMember = function(e) { + return this.request("sharing/add_folder_member", e, "user", "api", "rpc") + }, b.sharingCheckJobStatus = function(e) { + return this.request("sharing/check_job_status", e, "user", "api", "rpc") + }, b.sharingCheckRemoveMemberJobStatus = function(e) { + return this.request("sharing/check_remove_member_job_status", e, "user", "api", "rpc") + }, b.sharingCheckShareJobStatus = function(e) { + return this.request("sharing/check_share_job_status", e, "user", "api", "rpc") + }, b.sharingCreateSharedLink = function(e) { + return this.request("sharing/create_shared_link", e, "user", "api", "rpc") + }, b.sharingCreateSharedLinkWithSettings = function(e) { + return this.request("sharing/create_shared_link_with_settings", e, "user", "api", "rpc") + }, b.sharingGetFileMetadata = function(e) { + return this.request("sharing/get_file_metadata", e, "user", "api", "rpc") + }, b.sharingGetFileMetadataBatch = function(e) { + return this.request("sharing/get_file_metadata/batch", e, "user", "api", "rpc") + }, b.sharingGetFolderMetadata = function(e) { + return this.request("sharing/get_folder_metadata", e, "user", "api", "rpc") + }, b.sharingGetSharedLinkFile = function(e) { + return this.request("sharing/get_shared_link_file", e, "user", "content", "download") + }, b.sharingGetSharedLinkMetadata = function(e) { + return this.request("sharing/get_shared_link_metadata", e, "user", "api", "rpc") + }, b.sharingGetSharedLinks = function(e) { + return this.request("sharing/get_shared_links", e, "user", "api", "rpc") + }, b.sharingListFileMembers = function(e) { + return this.request("sharing/list_file_members", e, "user", "api", "rpc") + }, b.sharingListFileMembersBatch = function(e) { + return this.request("sharing/list_file_members/batch", e, "user", "api", "rpc") + }, b.sharingListFileMembersContinue = function(e) { + return this.request("sharing/list_file_members/continue", e, "user", "api", "rpc") + }, b.sharingListFolderMembers = function(e) { + return this.request("sharing/list_folder_members", e, "user", "api", "rpc") + }, b.sharingListFolderMembersContinue = function(e) { + return this.request("sharing/list_folder_members/continue", e, "user", "api", "rpc") + }, b.sharingListFolders = function(e) { + return this.request("sharing/list_folders", e, "user", "api", "rpc") + }, b.sharingListFoldersContinue = function(e) { + return this.request("sharing/list_folders/continue", e, "user", "api", "rpc") + }, b.sharingListMountableFolders = function(e) { + return this.request("sharing/list_mountable_folders", e, "user", "api", "rpc") + }, b.sharingListMountableFoldersContinue = function(e) { + return this.request("sharing/list_mountable_folders/continue", e, "user", "api", "rpc") + }, b.sharingListReceivedFiles = function(e) { + return this.request("sharing/list_received_files", e, "user", "api", "rpc") + }, b.sharingListReceivedFilesContinue = function(e) { + return this.request("sharing/list_received_files/continue", e, "user", "api", "rpc") + }, b.sharingListSharedLinks = function(e) { + return this.request("sharing/list_shared_links", e, "user", "api", "rpc") + }, b.sharingModifySharedLinkSettings = function(e) { + return this.request("sharing/modify_shared_link_settings", e, "user", "api", "rpc") + }, b.sharingMountFolder = function(e) { + return this.request("sharing/mount_folder", e, "user", "api", "rpc") + }, b.sharingRelinquishFileMembership = function(e) { + return this.request("sharing/relinquish_file_membership", e, "user", "api", "rpc") + }, b.sharingRelinquishFolderMembership = function(e) { + return this.request("sharing/relinquish_folder_membership", e, "user", "api", "rpc") + }, b.sharingRemoveFileMember = function(e) { + return this.request("sharing/remove_file_member", e, "user", "api", "rpc") + }, b.sharingRemoveFileMember2 = function(e) { + return this.request("sharing/remove_file_member_2", e, "user", "api", "rpc") + }, b.sharingRemoveFolderMember = function(e) { + return this.request("sharing/remove_folder_member", e, "user", "api", "rpc") + }, b.sharingRevokeSharedLink = function(e) { + return this.request("sharing/revoke_shared_link", e, "user", "api", "rpc") + }, b.sharingSetAccessInheritance = function(e) { + return this.request("sharing/set_access_inheritance", e, "user", "api", "rpc") + }, b.sharingShareFolder = function(e) { + return this.request("sharing/share_folder", e, "user", "api", "rpc") + }, b.sharingTransferFolder = function(e) { + return this.request("sharing/transfer_folder", e, "user", "api", "rpc") + }, b.sharingUnmountFolder = function(e) { + return this.request("sharing/unmount_folder", e, "user", "api", "rpc") + }, b.sharingUnshareFile = function(e) { + return this.request("sharing/unshare_file", e, "user", "api", "rpc") + }, b.sharingUnshareFolder = function(e) { + return this.request("sharing/unshare_folder", e, "user", "api", "rpc") + }, b.sharingUpdateFileMember = function(e) { + return this.request("sharing/update_file_member", e, "user", "api", "rpc") + }, b.sharingUpdateFolderMember = function(e) { + return this.request("sharing/update_folder_member", e, "user", "api", "rpc") + }, b.sharingUpdateFolderPolicy = function(e) { + return this.request("sharing/update_folder_policy", e, "user", "api", "rpc") + }, b.teamDevicesListMemberDevices = function(e) { + return this.request("team/devices/list_member_devices", e, "team", "api", "rpc") + }, b.teamDevicesListMembersDevices = function(e) { + return this.request("team/devices/list_members_devices", e, "team", "api", "rpc") + }, b.teamDevicesListTeamDevices = function(e) { + return this.request("team/devices/list_team_devices", e, "team", "api", "rpc") + }, b.teamDevicesRevokeDeviceSession = function(e) { + return this.request("team/devices/revoke_device_session", e, "team", "api", "rpc") + }, b.teamDevicesRevokeDeviceSessionBatch = function(e) { + return this.request("team/devices/revoke_device_session_batch", e, "team", "api", "rpc") + }, b.teamFeaturesGetValues = function(e) { + return this.request("team/features/get_values", e, "team", "api", "rpc") + }, b.teamGetInfo = function() { + return this.request("team/get_info", null, "team", "api", "rpc") + }, b.teamGroupsCreate = function(e) { + return this.request("team/groups/create", e, "team", "api", "rpc") + }, b.teamGroupsDelete = function(e) { + return this.request("team/groups/delete", e, "team", "api", "rpc") + }, b.teamGroupsGetInfo = function(e) { + return this.request("team/groups/get_info", e, "team", "api", "rpc") + }, b.teamGroupsJobStatusGet = function(e) { + return this.request("team/groups/job_status/get", e, "team", "api", "rpc") + }, b.teamGroupsList = function(e) { + return this.request("team/groups/list", e, "team", "api", "rpc") + }, b.teamGroupsListContinue = function(e) { + return this.request("team/groups/list/continue", e, "team", "api", "rpc") + }, b.teamGroupsMembersAdd = function(e) { + return this.request("team/groups/members/add", e, "team", "api", "rpc") + }, b.teamGroupsMembersList = function(e) { + return this.request("team/groups/members/list", e, "team", "api", "rpc") + }, b.teamGroupsMembersListContinue = function(e) { + return this.request("team/groups/members/list/continue", e, "team", "api", "rpc") + }, b.teamGroupsMembersRemove = function(e) { + return this.request("team/groups/members/remove", e, "team", "api", "rpc") + }, b.teamGroupsMembersSetAccessType = function(e) { + return this.request("team/groups/members/set_access_type", e, "team", "api", "rpc") + }, b.teamGroupsUpdate = function(e) { + return this.request("team/groups/update", e, "team", "api", "rpc") + }, b.teamLegalHoldsCreatePolicy = function(e) { + return this.request("team/legal_holds/create_policy", e, "team", "api", "rpc") + }, b.teamLegalHoldsGetPolicy = function(e) { + return this.request("team/legal_holds/get_policy", e, "team", "api", "rpc") + }, b.teamLegalHoldsListHeldRevisions = function(e) { + return this.request("team/legal_holds/list_held_revisions", e, "team", "api", "rpc") + }, b.teamLegalHoldsListHeldRevisionsContinue = function(e) { + return this.request("team/legal_holds/list_held_revisions_continue", e, "team", "api", "rpc") + }, b.teamLegalHoldsListPolicies = function(e) { + return this.request("team/legal_holds/list_policies", e, "team", "api", "rpc") + }, b.teamLegalHoldsReleasePolicy = function(e) { + return this.request("team/legal_holds/release_policy", e, "team", "api", "rpc") + }, b.teamLegalHoldsUpdatePolicy = function(e) { + return this.request("team/legal_holds/update_policy", e, "team", "api", "rpc") + }, b.teamLinkedAppsListMemberLinkedApps = function(e) { + return this.request("team/linked_apps/list_member_linked_apps", e, "team", "api", "rpc") + }, b.teamLinkedAppsListMembersLinkedApps = function(e) { + return this.request("team/linked_apps/list_members_linked_apps", e, "team", "api", "rpc") + }, b.teamLinkedAppsListTeamLinkedApps = function(e) { + return this.request("team/linked_apps/list_team_linked_apps", e, "team", "api", "rpc") + }, b.teamLinkedAppsRevokeLinkedApp = function(e) { + return this.request("team/linked_apps/revoke_linked_app", e, "team", "api", "rpc") + }, b.teamLinkedAppsRevokeLinkedAppBatch = function(e) { + return this.request("team/linked_apps/revoke_linked_app_batch", e, "team", "api", "rpc") + }, b.teamMemberSpaceLimitsExcludedUsersAdd = function(e) { + return this.request("team/member_space_limits/excluded_users/add", e, "team", "api", "rpc") + }, b.teamMemberSpaceLimitsExcludedUsersList = function(e) { + return this.request("team/member_space_limits/excluded_users/list", e, "team", "api", "rpc") + }, b.teamMemberSpaceLimitsExcludedUsersListContinue = function(e) { + return this.request("team/member_space_limits/excluded_users/list/continue", e, "team", "api", "rpc") + }, b.teamMemberSpaceLimitsExcludedUsersRemove = function(e) { + return this.request("team/member_space_limits/excluded_users/remove", e, "team", "api", "rpc") + }, b.teamMemberSpaceLimitsGetCustomQuota = function(e) { + return this.request("team/member_space_limits/get_custom_quota", e, "team", "api", "rpc") + }, b.teamMemberSpaceLimitsRemoveCustomQuota = function(e) { + return this.request("team/member_space_limits/remove_custom_quota", e, "team", "api", "rpc") + }, b.teamMemberSpaceLimitsSetCustomQuota = function(e) { + return this.request("team/member_space_limits/set_custom_quota", e, "team", "api", "rpc") + }, b.teamMembersAddV2 = function(e) { + return this.request("team/members/add_v2", e, "team", "api", "rpc") + }, b.teamMembersAdd = function(e) { + return this.request("team/members/add", e, "team", "api", "rpc") + }, b.teamMembersAddJobStatusGetV2 = function(e) { + return this.request("team/members/add/job_status/get_v2", e, "team", "api", "rpc") + }, b.teamMembersAddJobStatusGet = function(e) { + return this.request("team/members/add/job_status/get", e, "team", "api", "rpc") + }, b.teamMembersDeleteProfilePhotoV2 = function(e) { + return this.request("team/members/delete_profile_photo_v2", e, "team", "api", "rpc") + }, b.teamMembersDeleteProfilePhoto = function(e) { + return this.request("team/members/delete_profile_photo", e, "team", "api", "rpc") + }, b.teamMembersGetAvailableTeamMemberRoles = function() { + return this.request("team/members/get_available_team_member_roles", null, "team", "api", "rpc") + }, b.teamMembersGetInfoV2 = function(e) { + return this.request("team/members/get_info_v2", e, "team", "api", "rpc") + }, b.teamMembersGetInfo = function(e) { + return this.request("team/members/get_info", e, "team", "api", "rpc") + }, b.teamMembersListV2 = function(e) { + return this.request("team/members/list_v2", e, "team", "api", "rpc") + }, b.teamMembersList = function(e) { + return this.request("team/members/list", e, "team", "api", "rpc") + }, b.teamMembersListContinueV2 = function(e) { + return this.request("team/members/list/continue_v2", e, "team", "api", "rpc") + }, b.teamMembersListContinue = function(e) { + return this.request("team/members/list/continue", e, "team", "api", "rpc") + }, b.teamMembersMoveFormerMemberFiles = function(e) { + return this.request("team/members/move_former_member_files", e, "team", "api", "rpc") + }, b.teamMembersMoveFormerMemberFilesJobStatusCheck = function(e) { + return this.request("team/members/move_former_member_files/job_status/check", e, "team", "api", "rpc") + }, b.teamMembersRecover = function(e) { + return this.request("team/members/recover", e, "team", "api", "rpc") + }, b.teamMembersRemove = function(e) { + return this.request("team/members/remove", e, "team", "api", "rpc") + }, b.teamMembersRemoveJobStatusGet = function(e) { + return this.request("team/members/remove/job_status/get", e, "team", "api", "rpc") + }, b.teamMembersSecondaryEmailsAdd = function(e) { + return this.request("team/members/secondary_emails/add", e, "team", "api", "rpc") + }, b.teamMembersSecondaryEmailsDelete = function(e) { + return this.request("team/members/secondary_emails/delete", e, "team", "api", "rpc") + }, b.teamMembersSecondaryEmailsResendVerificationEmails = function(e) { + return this.request("team/members/secondary_emails/resend_verification_emails", e, "team", "api", "rpc") + }, b.teamMembersSendWelcomeEmail = function(e) { + return this.request("team/members/send_welcome_email", e, "team", "api", "rpc") + }, b.teamMembersSetAdminPermissionsV2 = function(e) { + return this.request("team/members/set_admin_permissions_v2", e, "team", "api", "rpc") + }, b.teamMembersSetAdminPermissions = function(e) { + return this.request("team/members/set_admin_permissions", e, "team", "api", "rpc") + }, b.teamMembersSetProfileV2 = function(e) { + return this.request("team/members/set_profile_v2", e, "team", "api", "rpc") + }, b.teamMembersSetProfile = function(e) { + return this.request("team/members/set_profile", e, "team", "api", "rpc") + }, b.teamMembersSetProfilePhotoV2 = function(e) { + return this.request("team/members/set_profile_photo_v2", e, "team", "api", "rpc") + }, b.teamMembersSetProfilePhoto = function(e) { + return this.request("team/members/set_profile_photo", e, "team", "api", "rpc") + }, b.teamMembersSuspend = function(e) { + return this.request("team/members/suspend", e, "team", "api", "rpc") + }, b.teamMembersUnsuspend = function(e) { + return this.request("team/members/unsuspend", e, "team", "api", "rpc") + }, b.teamNamespacesList = function(e) { + return this.request("team/namespaces/list", e, "team", "api", "rpc") + }, b.teamNamespacesListContinue = function(e) { + return this.request("team/namespaces/list/continue", e, "team", "api", "rpc") + }, b.teamPropertiesTemplateAdd = function(e) { + return this.request("team/properties/template/add", e, "team", "api", "rpc") + }, b.teamPropertiesTemplateGet = function(e) { + return this.request("team/properties/template/get", e, "team", "api", "rpc") + }, b.teamPropertiesTemplateList = function() { + return this.request("team/properties/template/list", null, "team", "api", "rpc") + }, b.teamPropertiesTemplateUpdate = function(e) { + return this.request("team/properties/template/update", e, "team", "api", "rpc") + }, b.teamReportsGetActivity = function(e) { + return this.request("team/reports/get_activity", e, "team", "api", "rpc") + }, b.teamReportsGetDevices = function(e) { + return this.request("team/reports/get_devices", e, "team", "api", "rpc") + }, b.teamReportsGetMembership = function(e) { + return this.request("team/reports/get_membership", e, "team", "api", "rpc") + }, b.teamReportsGetStorage = function(e) { + return this.request("team/reports/get_storage", e, "team", "api", "rpc") + }, b.teamTeamFolderActivate = function(e) { + return this.request("team/team_folder/activate", e, "team", "api", "rpc") + }, b.teamTeamFolderArchive = function(e) { + return this.request("team/team_folder/archive", e, "team", "api", "rpc") + }, b.teamTeamFolderArchiveCheck = function(e) { + return this.request("team/team_folder/archive/check", e, "team", "api", "rpc") + }, b.teamTeamFolderCreate = function(e) { + return this.request("team/team_folder/create", e, "team", "api", "rpc") + }, b.teamTeamFolderGetInfo = function(e) { + return this.request("team/team_folder/get_info", e, "team", "api", "rpc") + }, b.teamTeamFolderList = function(e) { + return this.request("team/team_folder/list", e, "team", "api", "rpc") + }, b.teamTeamFolderListContinue = function(e) { + return this.request("team/team_folder/list/continue", e, "team", "api", "rpc") + }, b.teamTeamFolderPermanentlyDelete = function(e) { + return this.request("team/team_folder/permanently_delete", e, "team", "api", "rpc") + }, b.teamTeamFolderRename = function(e) { + return this.request("team/team_folder/rename", e, "team", "api", "rpc") + }, b.teamTeamFolderUpdateSyncSettings = function(e) { + return this.request("team/team_folder/update_sync_settings", e, "team", "api", "rpc") + }, b.teamTokenGetAuthenticatedAdmin = function() { + return this.request("team/token/get_authenticated_admin", null, "team", "api", "rpc") + }, b.teamLogGetEvents = function(e) { + return this.request("team_log/get_events", e, "team", "api", "rpc") + }, b.teamLogGetEventsContinue = function(e) { + return this.request("team_log/get_events/continue", e, "team", "api", "rpc") + }, b.usersFeaturesGetValues = function(e) { + return this.request("users/features/get_values", e, "user", "api", "rpc") + }, b.usersGetAccount = function(e) { + return this.request("users/get_account", e, "user", "api", "rpc") + }, b.usersGetAccountBatch = function(e) { + return this.request("users/get_account_batch", e, "user", "api", "rpc") + }, b.usersGetCurrentAccount = function() { + return this.request("users/get_current_account", null, "user", "api", "rpc") + }, b.usersGetSpaceUsage = function() { + return this.request("users/get_space_usage", null, "user", "api", "rpc") + }; + var v = function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : m, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "."; + return t !== m && void 0 !== g[e] && (e = g[e], n = "-"), "https://".concat(e).concat(n).concat(t, "/2/") + }, + k = function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : f; + return e !== f && (e = "meta-".concat(e)), "https://".concat(e, "/oauth2/authorize") + }, + _ = function() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : m, + t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : ".", + n = "api"; + return e !== m && (n = g[n], t = "-"), "https://".concat(n).concat(t).concat(e, "/oauth2/token") + }; - function Ht(e) { - return function(t) { - return e(t) - } - } + function w(e) { + return JSON.stringify(e).replace(/[\u007f-\uffff]/g, y) + } - function Vt(e, t) { - return xt(t, (function(t) { - return e[t] - })) - } + function S(e) { + return new Date(Date.now() + 1e3 * e) + } - function Wt(e, t) { - return e.has(t) - } + function E() { + return "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope || "undefined" != typeof window + } - function Yt(e, t) { - for (var n = -1, a = e.length; ++n < a && Mt(t, e[n], 0) > -1;); - return n - } + function x() { + return "undefined" != typeof window + } - function Gt(e, t) { - for (var n = e.length; n-- && Mt(t, e[n], 0) > -1;); - return n - } + function C(e) { + return e.toString("base64").replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "") + } + var A, T, D, P = function(e) { + ! function(e, t) { + if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function"); + e.prototype = Object.create(t && t.prototype, { + constructor: { + value: e, + writable: !0, + configurable: !0 + } + }), t && o(e, t) + }(l, e); + var n, a, r = (n = l, a = s(), function() { + var e, t = i(n); + if (a) { + var r = i(this).constructor; + e = Reflect.construct(t, arguments, r) + } else e = t.apply(this, arguments); + return u(this, e) + }); - function Kt(e, t) { - for (var n = e.length, a = 0; n--;) e[n] === t && ++a; - return a + function l(e, n, a) { + var i; + return t(this, l), (i = r.call(this, "Response failed with a ".concat(e, " code"))).name = "DropboxResponseError", i.status = e, i.headers = n, i.error = a, i } - var $t = Lt({ - À: "A", - Á: "A", - Â: "A", - Ã: "A", - Ä: "A", - Å: "A", - à: "a", - á: "a", - â: "a", - ã: "a", - ä: "a", - å: "a", - Ç: "C", - ç: "c", - Ð: "D", - ð: "d", - È: "E", - É: "E", - Ê: "E", - Ë: "E", - è: "e", - é: "e", - ê: "e", - ë: "e", - Ì: "I", - Í: "I", - Î: "I", - Ï: "I", - ì: "i", - í: "i", - î: "i", - ï: "i", - Ñ: "N", - ñ: "n", - Ò: "O", - Ó: "O", - Ô: "O", - Õ: "O", - Ö: "O", - Ø: "O", - ò: "o", - ó: "o", - ô: "o", - õ: "o", - ö: "o", - ø: "o", - Ù: "U", - Ú: "U", - Û: "U", - Ü: "U", - ù: "u", - ú: "u", - û: "u", - ü: "u", - Ý: "Y", - ý: "y", - ÿ: "y", - Æ: "Ae", - æ: "ae", - Þ: "Th", - þ: "th", - ß: "ss", - Ā: "A", - Ă: "A", - Ą: "A", - ā: "a", - ă: "a", - ą: "a", - Ć: "C", - Ĉ: "C", - Ċ: "C", - Č: "C", - ć: "c", - ĉ: "c", - ċ: "c", - č: "c", - Ď: "D", - Đ: "D", - ď: "d", - đ: "d", - Ē: "E", - Ĕ: "E", - Ė: "E", - Ę: "E", - Ě: "E", - ē: "e", - ĕ: "e", - ė: "e", - ę: "e", - ě: "e", - Ĝ: "G", - Ğ: "G", - Ġ: "G", - Ģ: "G", - ĝ: "g", - ğ: "g", - ġ: "g", - ģ: "g", - Ĥ: "H", - Ħ: "H", - ĥ: "h", - ħ: "h", - Ĩ: "I", - Ī: "I", - Ĭ: "I", - Į: "I", - İ: "I", - ĩ: "i", - ī: "i", - ĭ: "i", - į: "i", - ı: "i", - Ĵ: "J", - ĵ: "j", - Ķ: "K", - ķ: "k", - ĸ: "k", - Ĺ: "L", - Ļ: "L", - Ľ: "L", - Ŀ: "L", - Ł: "L", - ĺ: "l", - ļ: "l", - ľ: "l", - ŀ: "l", - ł: "l", - Ń: "N", - Ņ: "N", - Ň: "N", - Ŋ: "N", - ń: "n", - ņ: "n", - ň: "n", - ŋ: "n", - Ō: "O", - Ŏ: "O", - Ő: "O", - ō: "o", - ŏ: "o", - ő: "o", - Ŕ: "R", - Ŗ: "R", - Ř: "R", - ŕ: "r", - ŗ: "r", - ř: "r", - Ś: "S", - Ŝ: "S", - Ş: "S", - Š: "S", - ś: "s", - ŝ: "s", - ş: "s", - š: "s", - Ţ: "T", - Ť: "T", - Ŧ: "T", - ţ: "t", - ť: "t", - ŧ: "t", - Ũ: "U", - Ū: "U", - Ŭ: "U", - Ů: "U", - Ű: "U", - Ų: "U", - ũ: "u", - ū: "u", - ŭ: "u", - ů: "u", - ű: "u", - ų: "u", - Ŵ: "W", - ŵ: "w", - Ŷ: "Y", - ŷ: "y", - Ÿ: "Y", - Ź: "Z", - Ż: "Z", - Ž: "Z", - ź: "z", - ż: "z", - ž: "z", - IJ: "IJ", - ij: "ij", - Œ: "Oe", - œ: "oe", - ʼn: "'n", - ſ: "s" - }), - Jt = Lt({ - "&": "&", - "<": "<", - ">": ">", - '"': """, - "'": "'" - }); + return l + }(c(Error)), + j = function e(n, a, r) { + t(this, e), this.status = n, this.headers = a, this.result = r + }; - function Zt(e) { - return "\\" + et[e] + function M(e) { + return e.text().then((function(t) { + var n; + try { + n = JSON.parse(t) + } catch (e) { + n = t } + throw new P(e.status, e.headers, n) + })) + } - function Qt(e) { - return Ke.test(e) + function I(e) { + return e.ok ? e.text().then((function(t) { + var n; + try { + n = JSON.parse(t) + } catch (e) { + n = t } - - function Xt(e) { - var t = -1, - n = Array(e.size); - return e.forEach((function(e, a) { - n[++t] = [a, e] - })), n + return new j(e.status, e.headers, n) + })) : M(e) + } + A = x() ? window.fetch.bind(window) : n(3155), T = x() ? window.crypto || window.msCrypto : n(8090), D = "undefined" == typeof TextEncoder ? n(8751).TextEncoder : TextEncoder; + var O, N = ["legacy", "offline", "online"], + R = ["code", "token"], + z = ["none", "user", "team"], + L = function() { + function e(n) { + t(this, e), this.fetch = (n = n || {}).fetch || A, this.accessToken = n.accessToken, this.accessTokenExpiresAt = n.accessTokenExpiresAt, this.refreshToken = n.refreshToken, this.clientId = n.clientId, this.clientSecret = n.clientSecret, this.domain = n.domain, this.domainDelimiter = n.domainDelimiter } - - function en(e, t) { - return function(n) { - return e(t(n)) + return r(e, [{ + key: "setAccessToken", + value: function(e) { + this.accessToken = e } - } - - function tn(e, t) { - for (var n = -1, a = e.length, r = 0, i = []; ++n < a;) { - var o = e[n]; - o !== t && o !== s || (e[n] = s, i[r++] = n) + }, { + key: "getAccessToken", + value: function() { + return this.accessToken + } + }, { + key: "setClientId", + value: function(e) { + this.clientId = e + } + }, { + key: "getClientId", + value: function() { + return this.clientId + } + }, { + key: "setClientSecret", + value: function(e) { + this.clientSecret = e + } + }, { + key: "getClientSecret", + value: function() { + return this.clientSecret + } + }, { + key: "getRefreshToken", + value: function() { + return this.refreshToken + } + }, { + key: "setRefreshToken", + value: function(e) { + this.refreshToken = e + } + }, { + key: "getAccessTokenExpiresAt", + value: function() { + return this.accessTokenExpiresAt + } + }, { + key: "setAccessTokenExpiresAt", + value: function(e) { + this.accessTokenExpiresAt = e + } + }, { + key: "setCodeVerifier", + value: function(e) { + this.codeVerifier = e + } + }, { + key: "getCodeVerifier", + value: function() { + return this.codeVerifier + } + }, { + key: "generateCodeChallenge", + value: function() { + var e, t = this, + n = (new D).encode(this.codeVerifier); + if (x()) return T.subtle.digest("SHA-256", n).then((function(n) { + var a = btoa(String.fromCharCode.apply(null, new Uint8Array(n))); + e = C(a).substr(0, 128), t.codeChallenge = e + })); + var a = T.createHash("sha256").update(n).digest(); + return e = C(a), this.codeChallenge = e, Promise.resolve() + } + }, { + key: "generatePKCECodes", + value: function() { + var e; + if (x()) { + var t = new Uint8Array(128), + n = T.getRandomValues(t); + e = C(btoa(n)).substr(0, 128) + } else e = C(T.randomBytes(128)).substr(0, 128); + return this.codeVerifier = e, this.generateCodeChallenge() + } + }, { + key: "getAuthenticationUrl", + value: function(e, t) { + var n, a = this, + r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "token", + i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null, + o = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : null, + s = arguments.length > 5 && void 0 !== arguments[5] ? arguments[5] : "none", + l = arguments.length > 6 && void 0 !== arguments[6] && arguments[6], + c = this.getClientId(), + u = k(this.domain); + if (!c) throw Error("A client id is required. You can set the client id using .setClientId()."); + if ("code" !== r && !e) throw Error("A redirect uri is required."); + if (!R.includes(r)) throw Error("Authorization type must be code or token"); + if (i && !N.includes(i)) throw Error("Token Access Type must be legacy, offline, or online"); + if (o && !(o instanceof Array)) throw Error("Scope must be an array of strings"); + if (!z.includes(s)) throw Error("includeGrantedScopes must be none, user, or team"); + return n = "code" === r ? "".concat(u, "?response_type=code&client_id=").concat(c) : "".concat(u, "?response_type=token&client_id=").concat(c), e && (n += "&redirect_uri=".concat(e)), t && (n += "&state=".concat(t)), i && (n += "&token_access_type=".concat(i)), o && (n += "&scope=".concat(o.join(" "))), "none" !== s && (n += "&include_granted_scopes=".concat(s)), l ? this.generatePKCECodes().then((function() { + return n += "&code_challenge_method=S256", n += "&code_challenge=".concat(a.codeChallenge) + })) : Promise.resolve(n) + } + }, { + key: "getAccessTokenFromCode", + value: function(e, t) { + var n = this.getClientId(), + a = this.getClientSecret(); + if (!n) throw Error("A client id is required. You can set the client id using .setClientId()."); + var r = _(this.domain, this.domainDelimiter); + if (r += "?grant_type=authorization_code", r += "&code=".concat(t), r += "&client_id=".concat(n), a) r += "&client_secret=".concat(a); + else { + if (!this.codeVerifier) throw Error("You must use PKCE when generating the authorization URL to not include a client secret"); + r += "&code_verifier=".concat(this.codeVerifier) + } + return e && (r += "&redirect_uri=".concat(e)), this.fetch(r, { + method: "POST", + headers: { + "Content-Type": "application/x-www-form-urlencoded" + } + }).then((function(e) { + return I(e) + })) + } + }, { + key: "checkAndRefreshAccessToken", + value: function() { + var e = this.getRefreshToken() && this.getClientId(), + t = !this.getAccessTokenExpiresAt() || new Date(Date.now() + 3e5) >= this.getAccessTokenExpiresAt(), + n = !this.getAccessToken(); + return (t || n) && e ? this.refreshAccessToken() : Promise.resolve() + } + }, { + key: "refreshAccessToken", + value: function() { + var e = this, + t = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null, + n = _(this.domain, this.domainDelimiter), + a = this.getClientId(), + r = this.getClientSecret(); + if (!a) throw Error("A client id is required. You can set the client id using .setClientId()."); + if (t && !(t instanceof Array)) throw Error("Scope must be an array of strings"); + var i = { + "Content-Type": "application/json" + }; + n += "?grant_type=refresh_token&refresh_token=".concat(this.getRefreshToken()), n += "&client_id=".concat(a), r && (n += "&client_secret=".concat(r)), t && (n += "&scope=".concat(t.join(" "))); + var o = { + method: "POST" + }; + return o.headers = i, this.fetch(n, o).then((function(e) { + return I(e) + })).then((function(t) { + e.setAccessToken(t.result.access_token), e.setAccessTokenExpiresAt(S(t.result.expires_in)) + })) + } + }]), e + }(); + O = "undefined" != typeof window ? window.fetch.bind(window) : n(3155); + var F = "undefined" == typeof btoa ? function(e) { + return Buffer.from(e).toString("base64") + } : btoa; + e.Dropbox = function() { + function e(n) { + t(this, e), this.auth = (n = n || {}).auth ? n.auth : new L(n), this.fetch = n.fetch || O, this.selectUser = n.selectUser, this.selectAdmin = n.selectAdmin, this.pathRoot = n.pathRoot, this.domain = n.domain, this.domainDelimiter = n.domainDelimiter, Object.assign(this, b) + } + return r(e, [{ + key: "request", + value: function(e, t, n, a, r) { + if (n.split(",").length > 1) { + var i = n.replace(" ", "").split(","); + i.includes(p) && this.auth.getAccessToken() ? n = p : i.includes(h) && this.auth.getAccessToken() ? n = h : i.includes(d) && (n = d) + } + switch (r) { + case "rpc": + return this.rpcRequest(e, t, n, a); + case "download": + return this.downloadRequest(e, t, n, a); + case "upload": + return this.uploadRequest(e, t, n, a); + default: + throw Error("Invalid request style: ".concat(r)) } - return i } - - function nn(e) { - var t = -1, - n = Array(e.size); - return e.forEach((function(e) { - n[++t] = e - })), n + }, { + key: "rpcRequest", + value: function(e, t, n, a) { + var r = this; + return this.auth.checkAndRefreshAccessToken().then((function() { + var e, a = { + method: "POST", + body: t ? JSON.stringify(t) : null, + headers: {} + }; + switch (t && (a.headers["Content-Type"] = "application/json"), n) { + case d: + if (!r.auth.clientId || !r.auth.clientSecret) throw Error("A client id and secret is required for this function"); + e = F("".concat(r.auth.clientId, ":").concat(r.auth.clientSecret)), a.headers.Authorization = "Basic ".concat(e); + break; + case h: + case p: + a.headers.Authorization = "Bearer ".concat(r.auth.getAccessToken()); + break; + case "noauth": + break; + default: + throw Error("Unhandled auth type: ".concat(n)) + } + return r.setCommonHeaders(a), a + })).then((function(t) { + return r.fetch(v(a, r.domain, r.domainDelimiter) + e, t) + })).then((function(e) { + return I(e) + })) } - - function an(e) { - var t = -1, - n = Array(e.size); - return e.forEach((function(e) { - n[++t] = [e, e] - })), n + }, { + key: "downloadRequest", + value: function(e, t, n, a) { + var r = this; + return this.auth.checkAndRefreshAccessToken().then((function() { + if (n !== p) throw Error("Unexpected auth type: ".concat(n)); + var e = { + method: "POST", + headers: { + Authorization: "Bearer ".concat(r.auth.getAccessToken()), + "Dropbox-API-Arg": w(t) + } + }; + return r.setCommonHeaders(e), e + })).then((function(t) { + return r.fetch(v(a, r.domain, r.domainDelimiter) + e, t) + })).then((function(e) { + return function(e) { + return e.ok ? new Promise((function(t) { + E() ? e.blob().then((function(e) { + return t(e) + })) : e.buffer().then((function(e) { + return t(e) + })) + })).then((function(t) { + var n = JSON.parse(e.headers.get("dropbox-api-result")); + return E() ? n.fileBlob = t : n.fileBinary = t, new j(e.status, e.headers, n) + })) : M(e) + }(e) + })) } - - function rn(e) { - return Qt(e) ? function(e) { - for (var t = Ye.lastIndex = 0; Ye.test(e);) ++t; - return t - }(e) : Dt(e) + }, { + key: "uploadRequest", + value: function(e, t, n, a) { + var r = this; + return this.auth.checkAndRefreshAccessToken().then((function() { + if (n !== p) throw Error("Unexpected auth type: ".concat(n)); + var e = t.contents; + delete t.contents; + var a = { + body: e, + method: "POST", + headers: { + Authorization: "Bearer ".concat(r.auth.getAccessToken()), + "Content-Type": "application/octet-stream", + "Dropbox-API-Arg": w(t) + } + }; + return r.setCommonHeaders(a), a + })).then((function(t) { + return r.fetch(v(a, r.domain, r.domainDelimiter) + e, t) + })).then((function(e) { + return I(e) + })) } - - function on(e) { - return Qt(e) ? function(e) { - return e.match(Ye) || [] - }(e) : function(e) { - return e.split("") - }(e) + }, { + key: "setCommonHeaders", + value: function(e) { + this.selectUser && (e.headers["Dropbox-API-Select-User"] = this.selectUser), this.selectAdmin && (e.headers["Dropbox-API-Select-Admin"] = this.selectAdmin), this.pathRoot && (e.headers["Dropbox-API-Path-Root"] = this.pathRoot) } + }]), e + }(), e.DropboxAuth = L, e.DropboxResponse = j, e.DropboxResponseError = P, Object.defineProperty(e, "__esModule", { + value: !0 + }) + }(t) +}, 3155: (e, t) => { + "use strict"; + var n = function() { + if ("undefined" != typeof self) return self; + if ("undefined" != typeof window) return window; + if (void 0 !== n) return n; + throw new Error("unable to locate global object") + }(); + e.exports = t = n.fetch, n.fetch && (t.default = n.fetch.bind(n)), t.Headers = n.Headers, t.Request = n.Request, t.Response = n.Response +}, 1908: e => { + "use strict"; + e.exports = function() { + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74)\uDB40\uDC7F|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]\uFE0F|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))|\uD83D\uDC69\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83D\uDC69\u200D[\u2695\u2696\u2708])\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC68(?:\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F/g + } +}, 4305: function(e, t, n) { + var a = n(554); + e.exports = function() { + "use strict"; - function sn(e) { - for (var t = e.length; t-- && re.test(e.charAt(t));); - return t - } - var ln = Lt({ - "&": "&", - "<": "<", - ">": ">", - """: '"', - "'": "'" - }), - cn = function e(t) { - var n, a = (t = null == t ? it : cn.defaults(it.Object(), t, cn.pick(it, Je))).Array, - re = t.Date, - _e = t.Error, - we = t.Function, - Se = t.Math, - Ee = t.Object, - xe = t.RegExp, - Ce = t.String, - Ae = t.TypeError, - je = a.prototype, - Pe = we.prototype, - De = Ee.prototype, - Te = t["__core-js_shared__"], - Oe = Pe.toString, - Me = De.hasOwnProperty, - Ie = 0, - Ne = (n = /[^.]+$/.exec(Te && Te.keys && Te.keys.IE_PROTO || "")) ? "Symbol(src)_1." + n : "", - ze = De.toString, - Re = Oe.call(Ee), - Le = it._, - Fe = xe("^" + Oe.call(Me).replace(te, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), - qe = lt ? t.Buffer : r, - Be = t.Symbol, - Ue = t.Uint8Array, - He = qe ? qe.allocUnsafe : r, - Ye = en(Ee.getPrototypeOf, Ee), - Ke = Ee.create, - et = De.propertyIsEnumerable, - at = je.splice, - rt = Be ? Be.isConcatSpreadable : r, - ot = Be ? Be.iterator : r, - st = Be ? Be.toStringTag : r, - ct = function() { - try { - var e = ci(Ee, "defineProperty"); - return e({}, "", {}), e - } catch (e) {} - }(), - ut = t.clearTimeout !== it.clearTimeout && t.clearTimeout, - Dt = re && re.now !== it.Date.now && re.now, - Lt = t.setTimeout !== it.setTimeout && t.setTimeout, - un = Se.ceil, - dn = Se.floor, - pn = Ee.getOwnPropertySymbols, - hn = qe ? qe.isBuffer : r, - mn = t.isFinite, - fn = je.join, - gn = en(Ee.keys, Ee), - bn = Se.max, - yn = Se.min, - vn = re.now, - kn = t.parseInt, - _n = Se.random, - wn = je.reverse, - Sn = ci(t, "DataView"), - En = ci(t, "Map"), - xn = ci(t, "Promise"), - Cn = ci(t, "Set"), - An = ci(t, "WeakMap"), - jn = ci(Ee, "create"), - Pn = An && new An, - Dn = {}, - Tn = Li(Sn), - On = Li(En), - Mn = Li(xn), - In = Li(Cn), - Nn = Li(An), - zn = Be ? Be.prototype : r, - Rn = zn ? zn.valueOf : r, - Ln = zn ? zn.toString : r; - - function Fn(e) { - if (ns(e) && !Wo(e) && !(e instanceof Hn)) { - if (e instanceof Un) return e; - if (Me.call(e, "__wrapped__")) return Fi(e) - } - return new Un(e) - } - var qn = function() { - function e() {} - return function(t) { - if (!ts(t)) return {}; - if (Ke) return Ke(t); - e.prototype = t; - var n = new e; - return e.prototype = r, n - } - }(); + function e(e) { + return "function" == typeof e + } + var t = Array.isArray ? Array.isArray : function(e) { + return "[object Array]" === Object.prototype.toString.call(e) + }, + r = 0, + i = void 0, + o = void 0, + s = function(e, t) { + m[r] = e, m[r + 1] = t, 2 === (r += 2) && (o ? o(f) : k()) + }; + var l = "undefined" != typeof window ? window : void 0, + c = l || {}, + u = c.MutationObserver || c.WebKitMutationObserver, + d = "undefined" == typeof self && void 0 !== a && "[object process]" === {}.toString.call(a), + p = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel; + + function h() { + var e = setTimeout; + return function() { + return e(f, 1) + } + } + var m = new Array(1e3); - function Bn() {} + function f() { + for (var e = 0; e < r; e += 2)(0, m[e])(m[e + 1]), m[e] = void 0, m[e + 1] = void 0; + r = 0 + } + var g, b, y, v, k = void 0; - function Un(e, t) { - this.__wrapped__ = e, this.__actions__ = [], this.__chain__ = !!t, this.__index__ = 0, this.__values__ = r - } + function _(e, t) { + var n = this, + a = new this.constructor(E); + void 0 === a[S] && z(a); + var r = n._state; + if (r) { + var i = arguments[r - 1]; + s((function() { + return N(r, a, i, n._result) + })) + } else I(n, a, e, t); + return a + } - function Hn(e) { - this.__wrapped__ = e, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = h, this.__views__ = [] - } + function w(e) { + if (e && "object" == typeof e && e.constructor === this) return e; + var t = new this(E); + return D(t, e), t + } + k = d ? function() { + return a.nextTick(f) + } : u ? (b = 0, y = new u(f), v = document.createTextNode(""), y.observe(v, { + characterData: !0 + }), function() { + v.data = b = ++b % 2 + }) : p ? ((g = new MessageChannel).port1.onmessage = f, function() { + return g.port2.postMessage(0) + }) : void 0 === l ? function() { + try { + var e = Function("return this")().require("vertx"); + return void 0 !== (i = e.runOnLoop || e.runOnContext) ? function() { + i(f) + } : h() + } catch (e) { + return h() + } + }() : h(); + var S = Math.random().toString(36).substring(2); - function Vn(e) { - var t = -1, - n = null == e ? 0 : e.length; - for (this.clear(); ++t < n;) { - var a = e[t]; - this.set(a[0], a[1]) - } - } + function E() {} + var x = void 0, + C = { + error: null + }; - function Wn(e) { - var t = -1, - n = null == e ? 0 : e.length; - for (this.clear(); ++t < n;) { - var a = e[t]; - this.set(a[0], a[1]) - } - } + function A(e) { + try { + return e.then + } catch (e) { + return C.error = e, C + } + } - function Yn(e) { - var t = -1, - n = null == e ? 0 : e.length; - for (this.clear(); ++t < n;) { - var a = e[t]; - this.set(a[0], a[1]) + function T(t, n, a) { + n.constructor === t.constructor && a === _ && n.constructor.resolve === w ? function(e, t) { + 1 === t._state ? j(e, t._result) : 2 === t._state ? M(e, t._result) : I(t, void 0, (function(t) { + return D(e, t) + }), (function(t) { + return M(e, t) + })) + }(t, n) : a === C ? (M(t, C.error), C.error = null) : void 0 === a ? j(t, n) : e(a) ? function(e, t, n) { + s((function(e) { + var a = !1, + r = function(e, t, n, a) { + try { + e.call(t, n, a) + } catch (e) { + return e } - } + }(n, t, (function(n) { + a || (a = !0, t !== n ? D(e, n) : j(e, n)) + }), (function(t) { + a || (a = !0, M(e, t)) + }), e._label); + !a && r && (a = !0, M(e, r)) + }), e) + }(t, n, a) : j(t, n) + } - function Gn(e) { - var t = -1, - n = null == e ? 0 : e.length; - for (this.__data__ = new Yn; ++t < n;) this.add(e[t]) - } + function D(e, t) { + var n, a; + e === t ? M(e, new TypeError("You cannot resolve a promise with itself")) : (a = typeof(n = t), null === n || "object" !== a && "function" !== a ? j(e, t) : T(e, t, A(t))) + } - function Kn(e) { - var t = this.__data__ = new Wn(e); - this.size = t.size - } + function P(e) { + e._onerror && e._onerror(e._result), O(e) + } - function $n(e, t) { - var n = Wo(e), - a = !n && Vo(e), - r = !n && !a && $o(e), - i = !n && !a && !r && us(e), - o = n || a || r || i, - s = o ? Bt(e.length, Ce) : [], - l = s.length; - for (var c in e) !t && !Me.call(e, c) || o && ("length" == c || r && ("offset" == c || "parent" == c) || i && ("buffer" == c || "byteLength" == c || "byteOffset" == c) || gi(c, l)) || s.push(c); - return s - } + function j(e, t) { + e._state === x && (e._result = t, e._state = 1, 0 !== e._subscribers.length && s(O, e)) + } - function Jn(e) { - var t = e.length; - return t ? e[Ya(0, t - 1)] : r - } + function M(e, t) { + e._state === x && (e._state = 2, e._result = t, s(P, e)) + } - function Zn(e, t) { - return Mi(Ar(e), oa(t, 0, e.length)) - } + function I(e, t, n, a) { + var r = e._subscribers, + i = r.length; + e._onerror = null, r[i] = t, r[i + 1] = n, r[i + 2] = a, 0 === i && e._state && s(O, e) + } - function Qn(e) { - return Mi(Ar(e)) - } + function O(e) { + var t = e._subscribers, + n = e._state; + if (0 !== t.length) { + for (var a = void 0, r = void 0, i = e._result, o = 0; o < t.length; o += 3) a = t[o], r = t[o + n], a ? N(n, a, r, i) : r(i); + e._subscribers.length = 0 + } + } - function Xn(e, t, n) { - (n !== r && !Bo(e[t], n) || n === r && !(t in e)) && ra(e, t, n) + function N(t, n, a, r) { + var i = e(a), + o = void 0, + s = void 0, + l = void 0, + c = void 0; + if (i) { + if ((o = function(e, t) { + try { + return e(t) + } catch (e) { + return C.error = e, C } + }(a, r)) === C ? (c = !0, s = o.error, o.error = null) : l = !0, n === o) return void M(n, new TypeError("A promises callback cannot return that same promise.")) + } else o = r, l = !0; + n._state !== x || (i && l ? D(n, o) : c ? M(n, s) : 1 === t ? j(n, o) : 2 === t && M(n, o)) + } + var R = 0; - function ea(e, t, n) { - var a = e[t]; - Me.call(e, t) && Bo(a, n) && (n !== r || t in e) || ra(e, t, n) - } + function z(e) { + e[S] = R++, e._state = void 0, e._result = void 0, e._subscribers = [] + } + var L = function() { + function e(e, n) { + this._instanceConstructor = e, this.promise = new e(E), this.promise[S] || z(this.promise), t(n) ? (this.length = n.length, this._remaining = n.length, this._result = new Array(this.length), 0 === this.length ? j(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(n), 0 === this._remaining && j(this.promise, this._result))) : M(this.promise, new Error("Array Methods must be provided an Array")) + } + return e.prototype._enumerate = function(e) { + for (var t = 0; this._state === x && t < e.length; t++) this._eachEntry(e[t], t) + }, e.prototype._eachEntry = function(e, t) { + var n = this._instanceConstructor, + a = n.resolve; + if (a === w) { + var r = A(e); + if (r === _ && e._state !== x) this._settledAt(e._state, t, e._result); + else if ("function" != typeof r) this._remaining--, this._result[t] = e; + else if (n === F) { + var i = new n(E); + T(i, e, r), this._willSettleAt(i, t) + } else this._willSettleAt(new n((function(t) { + return t(e) + })), t) + } else this._willSettleAt(a(e), t) + }, e.prototype._settledAt = function(e, t, n) { + var a = this.promise; + a._state === x && (this._remaining--, 2 === e ? M(a, n) : this._result[t] = n), 0 === this._remaining && j(a, this._result) + }, e.prototype._willSettleAt = function(e, t) { + var n = this; + I(e, void 0, (function(e) { + return n._settledAt(1, t, e) + }), (function(e) { + return n._settledAt(2, t, e) + })) + }, e + }(); + var F = function() { + function e(t) { + this[S] = R++, this._result = this._state = void 0, this._subscribers = [], E !== t && ("function" != typeof t && function() { + throw new TypeError("You must pass a resolver function as the first argument to the promise constructor") + }(), this instanceof e ? function(e, t) { + try { + t((function(t) { + D(e, t) + }), (function(t) { + M(e, t) + })) + } catch (t) { + M(e, t) + } + }(this, t) : function() { + throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.") + }()) + } + return e.prototype.catch = function(e) { + return this.then(null, e) + }, e.prototype.finally = function(e) { + var t = this.constructor; + return this.then((function(n) { + return t.resolve(e()).then((function() { + return n + })) + }), (function(n) { + return t.resolve(e()).then((function() { + throw n + })) + })) + }, e + }(); + return F.prototype.then = _, F.all = function(e) { + return new L(this, e).promise + }, F.race = function(e) { + var n = this; + return t(e) ? new n((function(t, a) { + for (var r = e.length, i = 0; i < r; i++) n.resolve(e[i]).then(t, a) + })) : new n((function(e, t) { + return t(new TypeError("You must pass an array to race.")) + })) + }, F.resolve = w, F.reject = function(e) { + var t = new this(E); + return M(t, e), t + }, F._setScheduler = function(e) { + o = e + }, F._setAsap = function(e) { + s = e + }, F._asap = s, F.polyfill = function() { + var e = void 0; + if (void 0 !== n.g) e = n.g; + else if ("undefined" != typeof self) e = self; + else try { + e = Function("return this")() + } catch (e) { + throw new Error("polyfill failed because global object is unavailable in this environment") + } + var t = e.Promise; + if (t) { + var a = null; + try { + a = Object.prototype.toString.call(t.resolve()) + } catch (e) {} + if ("[object Promise]" === a && !t.cast) return + } + e.Promise = F + }, F.Promise = F, F + }() +}, 9620: e => { + "use strict"; + var t, n = "object" == typeof Reflect ? Reflect : null, + a = n && "function" == typeof n.apply ? n.apply : function(e, t, n) { + return Function.prototype.apply.call(e, t, n) + }; + t = n && "function" == typeof n.ownKeys ? n.ownKeys : Object.getOwnPropertySymbols ? function(e) { + return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e)) + } : function(e) { + return Object.getOwnPropertyNames(e) + }; + var r = Number.isNaN || function(e) { + return e != e + }; - function ta(e, t) { - for (var n = e.length; n--;) - if (Bo(e[n][0], t)) return n; - return -1 - } + function i() { + i.init.call(this) + } + e.exports = i, e.exports.once = function(e, t) { + return new Promise((function(n, a) { + function r(n) { + e.removeListener(t, i), a(n) + } - function na(e, t, n, a) { - return da(e, (function(e, r, i) { - t(a, e, n(e), i) - })), a - } + function i() { + "function" == typeof e.removeListener && e.removeListener("error", r), n([].slice.call(arguments)) + } + f(e, t, i, { + once: !0 + }), "error" !== t && function(e, t, n) { + "function" == typeof e.on && f(e, "error", t, { + once: !0 + }) + }(e, r) + })) + }, i.EventEmitter = i, i.prototype._events = void 0, i.prototype._eventsCount = 0, i.prototype._maxListeners = void 0; + var o = 10; - function aa(e, t) { - return e && jr(t, Os(t), e) - } + function s(e) { + if ("function" != typeof e) throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof e) + } - function ra(e, t, n) { - "__proto__" == t && ct ? ct(e, t, { - configurable: !0, - enumerable: !0, - value: n, - writable: !0 - }) : e[t] = n - } + function l(e) { + return void 0 === e._maxListeners ? i.defaultMaxListeners : e._maxListeners + } - function ia(e, t) { - for (var n = -1, i = t.length, o = a(i), s = null == e; ++n < i;) o[n] = s ? r : As(e, t[n]); - return o - } + function c(e, t, n, a) { + var r, i, o, c; + if (s(n), void 0 === (i = e._events) ? (i = e._events = Object.create(null), e._eventsCount = 0) : (void 0 !== i.newListener && (e.emit("newListener", t, n.listener ? n.listener : n), i = e._events), o = i[t]), void 0 === o) o = i[t] = n, ++e._eventsCount; + else if ("function" == typeof o ? o = i[t] = a ? [n, o] : [o, n] : a ? o.unshift(n) : o.push(n), (r = l(e)) > 0 && o.length > r && !o.warned) { + o.warned = !0; + var u = new Error("Possible EventEmitter memory leak detected. " + o.length + " " + String(t) + " listeners added. Use emitter.setMaxListeners() to increase limit"); + u.name = "MaxListenersExceededWarning", u.emitter = e, u.type = t, u.count = o.length, c = u, console && console.warn && console.warn(c) + } + return e + } - function oa(e, t, n) { - return e == e && (n !== r && (e = e <= n ? e : n), t !== r && (e = e >= t ? e : t)), e - } + function u() { + if (!this.fired) return this.target.removeListener(this.type, this.wrapFn), this.fired = !0, 0 === arguments.length ? this.listener.call(this.target) : this.listener.apply(this.target, arguments) + } - function sa(e, t, n, a, i, o) { - var s, l = 1 & t, - c = 2 & t, - u = 4 & t; - if (n && (s = i ? n(e, a, i, o) : n(e)), s !== r) return s; - if (!ts(e)) return e; - var d = Wo(e); - if (d) { - if (s = function(e) { - var t = e.length, - n = new e.constructor(t); - return t && "string" == typeof e[0] && Me.call(e, "index") && (n.index = e.index, n.input = e.input), n - }(e), !l) return Ar(e, s) - } else { - var p = pi(e), - h = p == k || p == _; - if ($o(e)) return _r(e, l); - if (p == E || p == f || h && !i) { - if (s = c || h ? {} : mi(e), !l) return c ? function(e, t) { - return jr(e, di(e), t) - }(e, function(e, t) { - return e && jr(t, Ms(t), e) - }(s, e)) : function(e, t) { - return jr(e, ui(e), t) - }(e, aa(s, e)) - } else { - if (!Xe[p]) return i ? e : {}; - s = function(e, t, n) { - var a, r = e.constructor; - switch (t) { - case T: - return wr(e); - case b: - case y: - return new r(+e); - case O: - return function(e, t) { - var n = t ? wr(e.buffer) : e.buffer; - return new e.constructor(n, e.byteOffset, e.byteLength) - }(e, n); - case M: - case I: - case N: - case z: - case R: - case L: - case F: - case q: - case B: - return Sr(e, n); - case w: - case A: - return new r; - case S: - case j: - return new r(e); - case C: - return function(e) { - var t = new e.constructor(e.source, pe.exec(e)); - return t.lastIndex = e.lastIndex, t - }(e); - case P: - return a = e, Rn ? Ee(Rn.call(a)) : {} - } - }(e, p, l) - } - } - o || (o = new Kn); - var m = o.get(e); - if (m) return m; - o.set(e, s), ss(e) ? e.forEach((function(a) { - s.add(sa(a, t, n, a, e, o)) - })) : as(e) && e.forEach((function(a, r) { - s.set(r, sa(a, t, n, r, e, o)) - })); - var g = d ? r : (u ? c ? ni : ti : c ? Ms : Os)(e); - return vt(g || e, (function(a, r) { - g && (a = e[r = a]), ea(s, r, sa(a, t, n, r, e, o)) - })), s - } - - function la(e, t, n) { - var a = n.length; - if (null == e) return !a; - for (e = Ee(e); a--;) { - var i = n[a], - o = t[i], - s = e[i]; - if (s === r && !(i in e) || !o(s)) return !1 - } - return !0 - } + function d(e, t, n) { + var a = { + fired: !1, + wrapFn: void 0, + target: e, + type: t, + listener: n + }, + r = u.bind(a); + return r.listener = n, a.wrapFn = r, r + } - function ca(e, t, n) { - if ("function" != typeof e) throw new Ae(i); - return Pi((function() { - e.apply(r, n) - }), t) - } + function p(e, t, n) { + var a = e._events; + if (void 0 === a) return []; + var r = a[t]; + return void 0 === r ? [] : "function" == typeof r ? n ? [r.listener || r] : [r] : n ? function(e) { + for (var t = new Array(e.length), n = 0; n < t.length; ++n) t[n] = e[n].listener || e[n]; + return t + }(r) : m(r, r.length) + } - function ua(e, t, n, a) { - var r = -1, - i = St, - o = !0, - s = e.length, - l = [], - c = t.length; - if (!s) return l; - n && (t = xt(t, Ht(n))), a ? (i = Et, o = !1) : t.length >= 200 && (i = Wt, o = !1, t = new Gn(t)); - e: for (; ++r < s;) { - var u = e[r], - d = null == n ? u : n(u); - if (u = a || 0 !== u ? u : 0, o && d == d) { - for (var p = c; p--;) - if (t[p] === d) continue e; - l.push(u) - } else i(t, d, a) || l.push(u) - } - return l - } - Fn.templateSettings = { - escape: $, - evaluate: J, - interpolate: Z, - variable: "", - imports: { - _: Fn - } - }, Fn.prototype = Bn.prototype, Fn.prototype.constructor = Fn, Un.prototype = qn(Bn.prototype), Un.prototype.constructor = Un, Hn.prototype = qn(Bn.prototype), Hn.prototype.constructor = Hn, Vn.prototype.clear = function() { - this.__data__ = jn ? jn(null) : {}, this.size = 0 - }, Vn.prototype.delete = function(e) { - var t = this.has(e) && delete this.__data__[e]; - return this.size -= t ? 1 : 0, t - }, Vn.prototype.get = function(e) { - var t = this.__data__; - if (jn) { - var n = t[e]; - return n === o ? r : n - } - return Me.call(t, e) ? t[e] : r - }, Vn.prototype.has = function(e) { - var t = this.__data__; - return jn ? t[e] !== r : Me.call(t, e) - }, Vn.prototype.set = function(e, t) { - var n = this.__data__; - return this.size += this.has(e) ? 0 : 1, n[e] = jn && t === r ? o : t, this - }, Wn.prototype.clear = function() { - this.__data__ = [], this.size = 0 - }, Wn.prototype.delete = function(e) { - var t = this.__data__, - n = ta(t, e); - return !(n < 0 || (n == t.length - 1 ? t.pop() : at.call(t, n, 1), --this.size, 0)) - }, Wn.prototype.get = function(e) { - var t = this.__data__, - n = ta(t, e); - return n < 0 ? r : t[n][1] - }, Wn.prototype.has = function(e) { - return ta(this.__data__, e) > -1 - }, Wn.prototype.set = function(e, t) { - var n = this.__data__, - a = ta(n, e); - return a < 0 ? (++this.size, n.push([e, t])) : n[a][1] = t, this - }, Yn.prototype.clear = function() { - this.size = 0, this.__data__ = { - hash: new Vn, - map: new(En || Wn), - string: new Vn - } - }, Yn.prototype.delete = function(e) { - var t = si(this, e).delete(e); - return this.size -= t ? 1 : 0, t - }, Yn.prototype.get = function(e) { - return si(this, e).get(e) - }, Yn.prototype.has = function(e) { - return si(this, e).has(e) - }, Yn.prototype.set = function(e, t) { - var n = si(this, e), - a = n.size; - return n.set(e, t), this.size += n.size == a ? 0 : 1, this - }, Gn.prototype.add = Gn.prototype.push = function(e) { - return this.__data__.set(e, o), this - }, Gn.prototype.has = function(e) { - return this.__data__.has(e) - }, Kn.prototype.clear = function() { - this.__data__ = new Wn, this.size = 0 - }, Kn.prototype.delete = function(e) { - var t = this.__data__, - n = t.delete(e); - return this.size = t.size, n - }, Kn.prototype.get = function(e) { - return this.__data__.get(e) - }, Kn.prototype.has = function(e) { - return this.__data__.has(e) - }, Kn.prototype.set = function(e, t) { - var n = this.__data__; - if (n instanceof Wn) { - var a = n.__data__; - if (!En || a.length < 199) return a.push([e, t]), this.size = ++n.size, this; - n = this.__data__ = new Yn(a) - } - return n.set(e, t), this.size = n.size, this - }; - var da = Tr(va), - pa = Tr(ka, !0); - - function ha(e, t) { - var n = !0; - return da(e, (function(e, a, r) { - return n = !!t(e, a, r) - })), n - } - - function ma(e, t, n) { - for (var a = -1, i = e.length; ++a < i;) { - var o = e[a], - s = t(o); - if (null != s && (l === r ? s == s && !cs(s) : n(s, l))) var l = s, - c = o - } - return c - } + function h(e) { + var t = this._events; + if (void 0 !== t) { + var n = t[e]; + if ("function" == typeof n) return 1; + if (void 0 !== n) return n.length + } + return 0 + } - function fa(e, t) { - var n = []; - return da(e, (function(e, a, r) { - t(e, a, r) && n.push(e) - })), n - } + function m(e, t) { + for (var n = new Array(t), a = 0; a < t; ++a) n[a] = e[a]; + return n + } - function ga(e, t, n, a, r) { - var i = -1, - o = e.length; - for (n || (n = fi), r || (r = []); ++i < o;) { - var s = e[i]; - t > 0 && n(s) ? t > 1 ? ga(s, t - 1, n, a, r) : Ct(r, s) : a || (r[r.length] = s) - } - return r - } - var ba = Or(), - ya = Or(!0); + function f(e, t, n, a) { + if ("function" == typeof e.on) a.once ? e.once(t, n) : e.on(t, n); + else { + if ("function" != typeof e.addEventListener) throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof e); + e.addEventListener(t, (function r(i) { + a.once && e.removeEventListener(t, r), n(i) + })) + } + } + Object.defineProperty(i, "defaultMaxListeners", { + enumerable: !0, + get: function() { + return o + }, + set: function(e) { + if ("number" != typeof e || e < 0 || r(e)) throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + e + "."); + o = e + } + }), i.init = function() { + void 0 !== this._events && this._events !== Object.getPrototypeOf(this)._events || (this._events = Object.create(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0 + }, i.prototype.setMaxListeners = function(e) { + if ("number" != typeof e || e < 0 || r(e)) throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + e + "."); + return this._maxListeners = e, this + }, i.prototype.getMaxListeners = function() { + return l(this) + }, i.prototype.emit = function(e) { + for (var t = [], n = 1; n < arguments.length; n++) t.push(arguments[n]); + var r = "error" === e, + i = this._events; + if (void 0 !== i) r = r && void 0 === i.error; + else if (!r) return !1; + if (r) { + var o; + if (t.length > 0 && (o = t[0]), o instanceof Error) throw o; + var s = new Error("Unhandled error." + (o ? " (" + o.message + ")" : "")); + throw s.context = o, s + } + var l = i[e]; + if (void 0 === l) return !1; + if ("function" == typeof l) a(l, this, t); + else { + var c = l.length, + u = m(l, c); + for (n = 0; n < c; ++n) a(u[n], this, t) + } + return !0 + }, i.prototype.addListener = function(e, t) { + return c(this, e, t, !1) + }, i.prototype.on = i.prototype.addListener, i.prototype.prependListener = function(e, t) { + return c(this, e, t, !0) + }, i.prototype.once = function(e, t) { + return s(t), this.on(e, d(this, e, t)), this + }, i.prototype.prependOnceListener = function(e, t) { + return s(t), this.prependListener(e, d(this, e, t)), this + }, i.prototype.removeListener = function(e, t) { + var n, a, r, i, o; + if (s(t), void 0 === (a = this._events)) return this; + if (void 0 === (n = a[e])) return this; + if (n === t || n.listener === t) 0 == --this._eventsCount ? this._events = Object.create(null) : (delete a[e], a.removeListener && this.emit("removeListener", e, n.listener || t)); + else if ("function" != typeof n) { + for (r = -1, i = n.length - 1; i >= 0; i--) + if (n[i] === t || n[i].listener === t) { + o = n[i].listener, r = i; + break + } if (r < 0) return this; + 0 === r ? n.shift() : function(e, t) { + for (; t + 1 < e.length; t++) e[t] = e[t + 1]; + e.pop() + }(n, r), 1 === n.length && (a[e] = n[0]), void 0 !== a.removeListener && this.emit("removeListener", e, o || t) + } + return this + }, i.prototype.off = i.prototype.removeListener, i.prototype.removeAllListeners = function(e) { + var t, n, a; + if (void 0 === (n = this._events)) return this; + if (void 0 === n.removeListener) return 0 === arguments.length ? (this._events = Object.create(null), this._eventsCount = 0) : void 0 !== n[e] && (0 == --this._eventsCount ? this._events = Object.create(null) : delete n[e]), this; + if (0 === arguments.length) { + var r, i = Object.keys(n); + for (a = 0; a < i.length; ++a) "removeListener" !== (r = i[a]) && this.removeAllListeners(r); + return this.removeAllListeners("removeListener"), this._events = Object.create(null), this._eventsCount = 0, this + } + if ("function" == typeof(t = n[e])) this.removeListener(e, t); + else if (void 0 !== t) + for (a = t.length - 1; a >= 0; a--) this.removeListener(e, t[a]); + return this + }, i.prototype.listeners = function(e) { + return p(this, e, !0) + }, i.prototype.rawListeners = function(e) { + return p(this, e, !1) + }, i.listenerCount = function(e, t) { + return "function" == typeof e.listenerCount ? e.listenerCount(t) : h.call(e, t) + }, i.prototype.listenerCount = h, i.prototype.eventNames = function() { + return this._eventsCount > 0 ? t(this._events) : [] + } +}, 8474: (e, t, n) => { + var a; + ! function() { + "use strict"; + var r = !("undefined" == typeof window || !window.document || !window.document.createElement), + i = { + canUseDOM: r, + canUseWorkers: "undefined" != typeof Worker, + canUseEventListeners: r && !(!window.addEventListener && !window.attachEvent), + canUseViewport: r && !!window.screen + }; + void 0 === (a = function() { + return i + }.call(t, n, t, e)) || (e.exports = a) + }() +}, 9157: (e, t, n) => { + var a = n(9755), + r = n(6648); + void 0 === r.$ && (r.$ = a), void 0 === r.jQuery && (r.jQuery = a), e.exports = a +}, 6648: (e, t, n) => { + "use strict"; + e.exports = function() { + if ("object" == typeof globalThis) return globalThis; + var e; + try { + e = this || new Function("return this")() + } catch (e) { + if ("object" == typeof window) return window; + if ("object" == typeof self) return self; + if (void 0 !== n.g) return n.g + } + return e + }() +}, 3763: e => { + "use strict"; + var t = /([A-Z])/g; + e.exports = function(e) { + return e.replace(t, "-$1").toLowerCase() + } +}, 8154: (e, t, n) => { + "use strict"; + var a = n(3763), + r = /^ms-/; + e.exports = function(e) { + return a(e).replace(r, "-ms-") + } +}, 8830: () => { + ! function() { + "use strict"; - function va(e, t) { - return e && ba(e, t, Os) - } + function e(e) { + var t = !0, + n = !1, + a = null, + r = { + text: !0, + search: !0, + url: !0, + tel: !0, + email: !0, + password: !0, + number: !0, + date: !0, + month: !0, + week: !0, + time: !0, + datetime: !0, + "datetime-local": !0 + }; - function ka(e, t) { - return e && ya(e, t, Os) - } + function i(e) { + return !!(e && e !== document && "HTML" !== e.nodeName && "BODY" !== e.nodeName && "classList" in e && "contains" in e.classList) + } - function _a(e, t) { - return wt(t, (function(t) { - return Qo(e[t]) - })) - } + function o(e) { + e.classList.contains("focus-visible") || (e.classList.add("focus-visible"), e.setAttribute("data-focus-visible-added", "")) + } - function wa(e, t) { - for (var n = 0, a = (t = br(t, e)).length; null != e && n < a;) e = e[Ri(t[n++])]; - return n && n == a ? e : r - } + function s(e) { + t = !1 + } - function Sa(e, t, n) { - var a = t(e); - return Wo(e) ? a : Ct(a, n(e)) - } + function l() { + document.addEventListener("mousemove", c), document.addEventListener("mousedown", c), document.addEventListener("mouseup", c), document.addEventListener("pointermove", c), document.addEventListener("pointerdown", c), document.addEventListener("pointerup", c), document.addEventListener("touchmove", c), document.addEventListener("touchstart", c), document.addEventListener("touchend", c) + } - function Ea(e) { - return null == e ? e === r ? "[object Undefined]" : "[object Null]" : st && st in Ee(e) ? function(e) { - var t = Me.call(e, st), - n = e[st]; - try { - e[st] = r; - var a = !0 - } catch (e) {} - var i = ze.call(e); - return a && (t ? e[st] = n : delete e[st]), i - }(e) : function(e) { - return ze.call(e) - }(e) + function c(e) { + e.target.nodeName && "html" === e.target.nodeName.toLowerCase() || (t = !1, document.removeEventListener("mousemove", c), document.removeEventListener("mousedown", c), document.removeEventListener("mouseup", c), document.removeEventListener("pointermove", c), document.removeEventListener("pointerdown", c), document.removeEventListener("pointerup", c), document.removeEventListener("touchmove", c), document.removeEventListener("touchstart", c), document.removeEventListener("touchend", c)) + } + document.addEventListener("keydown", (function(n) { + n.metaKey || n.altKey || n.ctrlKey || (i(e.activeElement) && o(e.activeElement), t = !0) + }), !0), document.addEventListener("mousedown", s, !0), document.addEventListener("pointerdown", s, !0), document.addEventListener("touchstart", s, !0), document.addEventListener("visibilitychange", (function(e) { + "hidden" === document.visibilityState && (n && (t = !0), l()) + }), !0), l(), e.addEventListener("focus", (function(e) { + var n, a, s; + i(e.target) && (t || (a = (n = e.target).type, "INPUT" === (s = n.tagName) && r[a] && !n.readOnly || "TEXTAREA" === s && !n.readOnly || n.isContentEditable)) && o(e.target) + }), !0), e.addEventListener("blur", (function(e) { + var t; + i(e.target) && (e.target.classList.contains("focus-visible") || e.target.hasAttribute("data-focus-visible-added")) && (n = !0, window.clearTimeout(a), a = window.setTimeout((function() { + n = !1 + }), 100), (t = e.target).hasAttribute("data-focus-visible-added") && (t.classList.remove("focus-visible"), t.removeAttribute("data-focus-visible-added"))) + }), !0), e.nodeType === Node.DOCUMENT_FRAGMENT_NODE && e.host ? e.host.setAttribute("data-js-focus-visible", "") : e.nodeType === Node.DOCUMENT_NODE && (document.documentElement.classList.add("js-focus-visible"), document.documentElement.setAttribute("data-js-focus-visible", "")) + } + if ("undefined" != typeof window && "undefined" != typeof document) { + var t; + window.applyFocusVisiblePolyfill = e; + try { + t = new CustomEvent("focus-visible-polyfill-ready") + } catch (e) { + (t = document.createEvent("CustomEvent")).initCustomEvent("focus-visible-polyfill-ready", !1, !1, {}) + } + window.dispatchEvent(t) + } + "undefined" != typeof document && e(document) + }() +}, 1153: e => { + e.exports && (e.exports = function() { + var e = 3, + t = 4, + n = 12, + a = 13, + r = 16, + i = 17; + + function o(e, t) { + void 0 === t && (t = 0); + var n = e.charCodeAt(t); + if (55296 <= n && n <= 56319 && t < e.length - 1) { + var a = n; + return 56320 <= (r = e.charCodeAt(t + 1)) && r <= 57343 ? 1024 * (a - 55296) + (r - 56320) + 65536 : a + } + if (56320 <= n && n <= 57343 && t >= 1) { + var r = n; + return 55296 <= (a = e.charCodeAt(t - 1)) && a <= 56319 ? 1024 * (a - 55296) + (r - 56320) + 65536 : r + } + return n + } + + function s(o, s, l) { + var c = [o].concat(s).concat([l]), + u = c[c.length - 2], + d = l, + p = c.lastIndexOf(14); + if (p > 1 && c.slice(1, p).every((function(t) { + return t == e + })) && -1 == [e, a, i].indexOf(o)) return 2; + var h = c.lastIndexOf(t); + if (h > 0 && c.slice(1, h).every((function(e) { + return e == t + })) && -1 == [n, t].indexOf(u)) return c.filter((function(e) { + return e == t + })).length % 2 == 1 ? 3 : 4; + if (0 == u && 1 == d) return 0; + if (2 == u || 0 == u || 1 == u) return 14 == d && s.every((function(t) { + return t == e + })) ? 2 : 1; + if (2 == d || 0 == d || 1 == d) return 1; + if (6 == u && (6 == d || 7 == d || 9 == d || 10 == d)) return 0; + if (!(9 != u && 7 != u || 7 != d && 8 != d)) return 0; + if ((10 == u || 8 == u) && 8 == d) return 0; + if (d == e || 15 == d) return 0; + if (5 == d) return 0; + if (u == n) return 0; + var m = -1 != c.indexOf(e) ? c.lastIndexOf(e) - 1 : c.length - 2; + return -1 != [a, i].indexOf(c[m]) && c.slice(m + 1, -1).every((function(t) { + return t == e + })) && 14 == d || 15 == u && -1 != [r, i].indexOf(d) ? 0 : -1 != s.indexOf(t) ? 2 : u == t && d == t ? 0 : 1 + } + + function l(o) { + return 1536 <= o && o <= 1541 || 1757 == o || 1807 == o || 2274 == o || 3406 == o || 69821 == o || 70082 <= o && o <= 70083 || 72250 == o || 72326 <= o && o <= 72329 || 73030 == o ? n : 13 == o ? 0 : 10 == o ? 1 : 0 <= o && o <= 9 || 11 <= o && o <= 12 || 14 <= o && o <= 31 || 127 <= o && o <= 159 || 173 == o || 1564 == o || 6158 == o || 8203 == o || 8206 <= o && o <= 8207 || 8232 == o || 8233 == o || 8234 <= o && o <= 8238 || 8288 <= o && o <= 8292 || 8293 == o || 8294 <= o && o <= 8303 || 55296 <= o && o <= 57343 || 65279 == o || 65520 <= o && o <= 65528 || 65529 <= o && o <= 65531 || 113824 <= o && o <= 113827 || 119155 <= o && o <= 119162 || 917504 == o || 917505 == o || 917506 <= o && o <= 917535 || 917632 <= o && o <= 917759 || 918e3 <= o && o <= 921599 ? 2 : 768 <= o && o <= 879 || 1155 <= o && o <= 1159 || 1160 <= o && o <= 1161 || 1425 <= o && o <= 1469 || 1471 == o || 1473 <= o && o <= 1474 || 1476 <= o && o <= 1477 || 1479 == o || 1552 <= o && o <= 1562 || 1611 <= o && o <= 1631 || 1648 == o || 1750 <= o && o <= 1756 || 1759 <= o && o <= 1764 || 1767 <= o && o <= 1768 || 1770 <= o && o <= 1773 || 1809 == o || 1840 <= o && o <= 1866 || 1958 <= o && o <= 1968 || 2027 <= o && o <= 2035 || 2070 <= o && o <= 2073 || 2075 <= o && o <= 2083 || 2085 <= o && o <= 2087 || 2089 <= o && o <= 2093 || 2137 <= o && o <= 2139 || 2260 <= o && o <= 2273 || 2275 <= o && o <= 2306 || 2362 == o || 2364 == o || 2369 <= o && o <= 2376 || 2381 == o || 2385 <= o && o <= 2391 || 2402 <= o && o <= 2403 || 2433 == o || 2492 == o || 2494 == o || 2497 <= o && o <= 2500 || 2509 == o || 2519 == o || 2530 <= o && o <= 2531 || 2561 <= o && o <= 2562 || 2620 == o || 2625 <= o && o <= 2626 || 2631 <= o && o <= 2632 || 2635 <= o && o <= 2637 || 2641 == o || 2672 <= o && o <= 2673 || 2677 == o || 2689 <= o && o <= 2690 || 2748 == o || 2753 <= o && o <= 2757 || 2759 <= o && o <= 2760 || 2765 == o || 2786 <= o && o <= 2787 || 2810 <= o && o <= 2815 || 2817 == o || 2876 == o || 2878 == o || 2879 == o || 2881 <= o && o <= 2884 || 2893 == o || 2902 == o || 2903 == o || 2914 <= o && o <= 2915 || 2946 == o || 3006 == o || 3008 == o || 3021 == o || 3031 == o || 3072 == o || 3134 <= o && o <= 3136 || 3142 <= o && o <= 3144 || 3146 <= o && o <= 3149 || 3157 <= o && o <= 3158 || 3170 <= o && o <= 3171 || 3201 == o || 3260 == o || 3263 == o || 3266 == o || 3270 == o || 3276 <= o && o <= 3277 || 3285 <= o && o <= 3286 || 3298 <= o && o <= 3299 || 3328 <= o && o <= 3329 || 3387 <= o && o <= 3388 || 3390 == o || 3393 <= o && o <= 3396 || 3405 == o || 3415 == o || 3426 <= o && o <= 3427 || 3530 == o || 3535 == o || 3538 <= o && o <= 3540 || 3542 == o || 3551 == o || 3633 == o || 3636 <= o && o <= 3642 || 3655 <= o && o <= 3662 || 3761 == o || 3764 <= o && o <= 3769 || 3771 <= o && o <= 3772 || 3784 <= o && o <= 3789 || 3864 <= o && o <= 3865 || 3893 == o || 3895 == o || 3897 == o || 3953 <= o && o <= 3966 || 3968 <= o && o <= 3972 || 3974 <= o && o <= 3975 || 3981 <= o && o <= 3991 || 3993 <= o && o <= 4028 || 4038 == o || 4141 <= o && o <= 4144 || 4146 <= o && o <= 4151 || 4153 <= o && o <= 4154 || 4157 <= o && o <= 4158 || 4184 <= o && o <= 4185 || 4190 <= o && o <= 4192 || 4209 <= o && o <= 4212 || 4226 == o || 4229 <= o && o <= 4230 || 4237 == o || 4253 == o || 4957 <= o && o <= 4959 || 5906 <= o && o <= 5908 || 5938 <= o && o <= 5940 || 5970 <= o && o <= 5971 || 6002 <= o && o <= 6003 || 6068 <= o && o <= 6069 || 6071 <= o && o <= 6077 || 6086 == o || 6089 <= o && o <= 6099 || 6109 == o || 6155 <= o && o <= 6157 || 6277 <= o && o <= 6278 || 6313 == o || 6432 <= o && o <= 6434 || 6439 <= o && o <= 6440 || 6450 == o || 6457 <= o && o <= 6459 || 6679 <= o && o <= 6680 || 6683 == o || 6742 == o || 6744 <= o && o <= 6750 || 6752 == o || 6754 == o || 6757 <= o && o <= 6764 || 6771 <= o && o <= 6780 || 6783 == o || 6832 <= o && o <= 6845 || 6846 == o || 6912 <= o && o <= 6915 || 6964 == o || 6966 <= o && o <= 6970 || 6972 == o || 6978 == o || 7019 <= o && o <= 7027 || 7040 <= o && o <= 7041 || 7074 <= o && o <= 7077 || 7080 <= o && o <= 7081 || 7083 <= o && o <= 7085 || 7142 == o || 7144 <= o && o <= 7145 || 7149 == o || 7151 <= o && o <= 7153 || 7212 <= o && o <= 7219 || 7222 <= o && o <= 7223 || 7376 <= o && o <= 7378 || 7380 <= o && o <= 7392 || 7394 <= o && o <= 7400 || 7405 == o || 7412 == o || 7416 <= o && o <= 7417 || 7616 <= o && o <= 7673 || 7675 <= o && o <= 7679 || 8204 == o || 8400 <= o && o <= 8412 || 8413 <= o && o <= 8416 || 8417 == o || 8418 <= o && o <= 8420 || 8421 <= o && o <= 8432 || 11503 <= o && o <= 11505 || 11647 == o || 11744 <= o && o <= 11775 || 12330 <= o && o <= 12333 || 12334 <= o && o <= 12335 || 12441 <= o && o <= 12442 || 42607 == o || 42608 <= o && o <= 42610 || 42612 <= o && o <= 42621 || 42654 <= o && o <= 42655 || 42736 <= o && o <= 42737 || 43010 == o || 43014 == o || 43019 == o || 43045 <= o && o <= 43046 || 43204 <= o && o <= 43205 || 43232 <= o && o <= 43249 || 43302 <= o && o <= 43309 || 43335 <= o && o <= 43345 || 43392 <= o && o <= 43394 || 43443 == o || 43446 <= o && o <= 43449 || 43452 == o || 43493 == o || 43561 <= o && o <= 43566 || 43569 <= o && o <= 43570 || 43573 <= o && o <= 43574 || 43587 == o || 43596 == o || 43644 == o || 43696 == o || 43698 <= o && o <= 43700 || 43703 <= o && o <= 43704 || 43710 <= o && o <= 43711 || 43713 == o || 43756 <= o && o <= 43757 || 43766 == o || 44005 == o || 44008 == o || 44013 == o || 64286 == o || 65024 <= o && o <= 65039 || 65056 <= o && o <= 65071 || 65438 <= o && o <= 65439 || 66045 == o || 66272 == o || 66422 <= o && o <= 66426 || 68097 <= o && o <= 68099 || 68101 <= o && o <= 68102 || 68108 <= o && o <= 68111 || 68152 <= o && o <= 68154 || 68159 == o || 68325 <= o && o <= 68326 || 69633 == o || 69688 <= o && o <= 69702 || 69759 <= o && o <= 69761 || 69811 <= o && o <= 69814 || 69817 <= o && o <= 69818 || 69888 <= o && o <= 69890 || 69927 <= o && o <= 69931 || 69933 <= o && o <= 69940 || 70003 == o || 70016 <= o && o <= 70017 || 70070 <= o && o <= 70078 || 70090 <= o && o <= 70092 || 70191 <= o && o <= 70193 || 70196 == o || 70198 <= o && o <= 70199 || 70206 == o || 70367 == o || 70371 <= o && o <= 70378 || 70400 <= o && o <= 70401 || 70460 == o || 70462 == o || 70464 == o || 70487 == o || 70502 <= o && o <= 70508 || 70512 <= o && o <= 70516 || 70712 <= o && o <= 70719 || 70722 <= o && o <= 70724 || 70726 == o || 70832 == o || 70835 <= o && o <= 70840 || 70842 == o || 70845 == o || 70847 <= o && o <= 70848 || 70850 <= o && o <= 70851 || 71087 == o || 71090 <= o && o <= 71093 || 71100 <= o && o <= 71101 || 71103 <= o && o <= 71104 || 71132 <= o && o <= 71133 || 71219 <= o && o <= 71226 || 71229 == o || 71231 <= o && o <= 71232 || 71339 == o || 71341 == o || 71344 <= o && o <= 71349 || 71351 == o || 71453 <= o && o <= 71455 || 71458 <= o && o <= 71461 || 71463 <= o && o <= 71467 || 72193 <= o && o <= 72198 || 72201 <= o && o <= 72202 || 72243 <= o && o <= 72248 || 72251 <= o && o <= 72254 || 72263 == o || 72273 <= o && o <= 72278 || 72281 <= o && o <= 72283 || 72330 <= o && o <= 72342 || 72344 <= o && o <= 72345 || 72752 <= o && o <= 72758 || 72760 <= o && o <= 72765 || 72767 == o || 72850 <= o && o <= 72871 || 72874 <= o && o <= 72880 || 72882 <= o && o <= 72883 || 72885 <= o && o <= 72886 || 73009 <= o && o <= 73014 || 73018 == o || 73020 <= o && o <= 73021 || 73023 <= o && o <= 73029 || 73031 == o || 92912 <= o && o <= 92916 || 92976 <= o && o <= 92982 || 94095 <= o && o <= 94098 || 113821 <= o && o <= 113822 || 119141 == o || 119143 <= o && o <= 119145 || 119150 <= o && o <= 119154 || 119163 <= o && o <= 119170 || 119173 <= o && o <= 119179 || 119210 <= o && o <= 119213 || 119362 <= o && o <= 119364 || 121344 <= o && o <= 121398 || 121403 <= o && o <= 121452 || 121461 == o || 121476 == o || 121499 <= o && o <= 121503 || 121505 <= o && o <= 121519 || 122880 <= o && o <= 122886 || 122888 <= o && o <= 122904 || 122907 <= o && o <= 122913 || 122915 <= o && o <= 122916 || 122918 <= o && o <= 122922 || 125136 <= o && o <= 125142 || 125252 <= o && o <= 125258 || 917536 <= o && o <= 917631 || 917760 <= o && o <= 917999 ? e : 127462 <= o && o <= 127487 ? t : 2307 == o || 2363 == o || 2366 <= o && o <= 2368 || 2377 <= o && o <= 2380 || 2382 <= o && o <= 2383 || 2434 <= o && o <= 2435 || 2495 <= o && o <= 2496 || 2503 <= o && o <= 2504 || 2507 <= o && o <= 2508 || 2563 == o || 2622 <= o && o <= 2624 || 2691 == o || 2750 <= o && o <= 2752 || 2761 == o || 2763 <= o && o <= 2764 || 2818 <= o && o <= 2819 || 2880 == o || 2887 <= o && o <= 2888 || 2891 <= o && o <= 2892 || 3007 == o || 3009 <= o && o <= 3010 || 3014 <= o && o <= 3016 || 3018 <= o && o <= 3020 || 3073 <= o && o <= 3075 || 3137 <= o && o <= 3140 || 3202 <= o && o <= 3203 || 3262 == o || 3264 <= o && o <= 3265 || 3267 <= o && o <= 3268 || 3271 <= o && o <= 3272 || 3274 <= o && o <= 3275 || 3330 <= o && o <= 3331 || 3391 <= o && o <= 3392 || 3398 <= o && o <= 3400 || 3402 <= o && o <= 3404 || 3458 <= o && o <= 3459 || 3536 <= o && o <= 3537 || 3544 <= o && o <= 3550 || 3570 <= o && o <= 3571 || 3635 == o || 3763 == o || 3902 <= o && o <= 3903 || 3967 == o || 4145 == o || 4155 <= o && o <= 4156 || 4182 <= o && o <= 4183 || 4228 == o || 6070 == o || 6078 <= o && o <= 6085 || 6087 <= o && o <= 6088 || 6435 <= o && o <= 6438 || 6441 <= o && o <= 6443 || 6448 <= o && o <= 6449 || 6451 <= o && o <= 6456 || 6681 <= o && o <= 6682 || 6741 == o || 6743 == o || 6765 <= o && o <= 6770 || 6916 == o || 6965 == o || 6971 == o || 6973 <= o && o <= 6977 || 6979 <= o && o <= 6980 || 7042 == o || 7073 == o || 7078 <= o && o <= 7079 || 7082 == o || 7143 == o || 7146 <= o && o <= 7148 || 7150 == o || 7154 <= o && o <= 7155 || 7204 <= o && o <= 7211 || 7220 <= o && o <= 7221 || 7393 == o || 7410 <= o && o <= 7411 || 7415 == o || 43043 <= o && o <= 43044 || 43047 == o || 43136 <= o && o <= 43137 || 43188 <= o && o <= 43203 || 43346 <= o && o <= 43347 || 43395 == o || 43444 <= o && o <= 43445 || 43450 <= o && o <= 43451 || 43453 <= o && o <= 43456 || 43567 <= o && o <= 43568 || 43571 <= o && o <= 43572 || 43597 == o || 43755 == o || 43758 <= o && o <= 43759 || 43765 == o || 44003 <= o && o <= 44004 || 44006 <= o && o <= 44007 || 44009 <= o && o <= 44010 || 44012 == o || 69632 == o || 69634 == o || 69762 == o || 69808 <= o && o <= 69810 || 69815 <= o && o <= 69816 || 69932 == o || 70018 == o || 70067 <= o && o <= 70069 || 70079 <= o && o <= 70080 || 70188 <= o && o <= 70190 || 70194 <= o && o <= 70195 || 70197 == o || 70368 <= o && o <= 70370 || 70402 <= o && o <= 70403 || 70463 == o || 70465 <= o && o <= 70468 || 70471 <= o && o <= 70472 || 70475 <= o && o <= 70477 || 70498 <= o && o <= 70499 || 70709 <= o && o <= 70711 || 70720 <= o && o <= 70721 || 70725 == o || 70833 <= o && o <= 70834 || 70841 == o || 70843 <= o && o <= 70844 || 70846 == o || 70849 == o || 71088 <= o && o <= 71089 || 71096 <= o && o <= 71099 || 71102 == o || 71216 <= o && o <= 71218 || 71227 <= o && o <= 71228 || 71230 == o || 71340 == o || 71342 <= o && o <= 71343 || 71350 == o || 71456 <= o && o <= 71457 || 71462 == o || 72199 <= o && o <= 72200 || 72249 == o || 72279 <= o && o <= 72280 || 72343 == o || 72751 == o || 72766 == o || 72873 == o || 72881 == o || 72884 == o || 94033 <= o && o <= 94078 || 119142 == o || 119149 == o ? 5 : 4352 <= o && o <= 4447 || 43360 <= o && o <= 43388 ? 6 : 4448 <= o && o <= 4519 || 55216 <= o && o <= 55238 ? 7 : 4520 <= o && o <= 4607 || 55243 <= o && o <= 55291 ? 8 : 44032 == o || 44060 == o || 44088 == o || 44116 == o || 44144 == o || 44172 == o || 44200 == o || 44228 == o || 44256 == o || 44284 == o || 44312 == o || 44340 == o || 44368 == o || 44396 == o || 44424 == o || 44452 == o || 44480 == o || 44508 == o || 44536 == o || 44564 == o || 44592 == o || 44620 == o || 44648 == o || 44676 == o || 44704 == o || 44732 == o || 44760 == o || 44788 == o || 44816 == o || 44844 == o || 44872 == o || 44900 == o || 44928 == o || 44956 == o || 44984 == o || 45012 == o || 45040 == o || 45068 == o || 45096 == o || 45124 == o || 45152 == o || 45180 == o || 45208 == o || 45236 == o || 45264 == o || 45292 == o || 45320 == o || 45348 == o || 45376 == o || 45404 == o || 45432 == o || 45460 == o || 45488 == o || 45516 == o || 45544 == o || 45572 == o || 45600 == o || 45628 == o || 45656 == o || 45684 == o || 45712 == o || 45740 == o || 45768 == o || 45796 == o || 45824 == o || 45852 == o || 45880 == o || 45908 == o || 45936 == o || 45964 == o || 45992 == o || 46020 == o || 46048 == o || 46076 == o || 46104 == o || 46132 == o || 46160 == o || 46188 == o || 46216 == o || 46244 == o || 46272 == o || 46300 == o || 46328 == o || 46356 == o || 46384 == o || 46412 == o || 46440 == o || 46468 == o || 46496 == o || 46524 == o || 46552 == o || 46580 == o || 46608 == o || 46636 == o || 46664 == o || 46692 == o || 46720 == o || 46748 == o || 46776 == o || 46804 == o || 46832 == o || 46860 == o || 46888 == o || 46916 == o || 46944 == o || 46972 == o || 47e3 == o || 47028 == o || 47056 == o || 47084 == o || 47112 == o || 47140 == o || 47168 == o || 47196 == o || 47224 == o || 47252 == o || 47280 == o || 47308 == o || 47336 == o || 47364 == o || 47392 == o || 47420 == o || 47448 == o || 47476 == o || 47504 == o || 47532 == o || 47560 == o || 47588 == o || 47616 == o || 47644 == o || 47672 == o || 47700 == o || 47728 == o || 47756 == o || 47784 == o || 47812 == o || 47840 == o || 47868 == o || 47896 == o || 47924 == o || 47952 == o || 47980 == o || 48008 == o || 48036 == o || 48064 == o || 48092 == o || 48120 == o || 48148 == o || 48176 == o || 48204 == o || 48232 == o || 48260 == o || 48288 == o || 48316 == o || 48344 == o || 48372 == o || 48400 == o || 48428 == o || 48456 == o || 48484 == o || 48512 == o || 48540 == o || 48568 == o || 48596 == o || 48624 == o || 48652 == o || 48680 == o || 48708 == o || 48736 == o || 48764 == o || 48792 == o || 48820 == o || 48848 == o || 48876 == o || 48904 == o || 48932 == o || 48960 == o || 48988 == o || 49016 == o || 49044 == o || 49072 == o || 49100 == o || 49128 == o || 49156 == o || 49184 == o || 49212 == o || 49240 == o || 49268 == o || 49296 == o || 49324 == o || 49352 == o || 49380 == o || 49408 == o || 49436 == o || 49464 == o || 49492 == o || 49520 == o || 49548 == o || 49576 == o || 49604 == o || 49632 == o || 49660 == o || 49688 == o || 49716 == o || 49744 == o || 49772 == o || 49800 == o || 49828 == o || 49856 == o || 49884 == o || 49912 == o || 49940 == o || 49968 == o || 49996 == o || 50024 == o || 50052 == o || 50080 == o || 50108 == o || 50136 == o || 50164 == o || 50192 == o || 50220 == o || 50248 == o || 50276 == o || 50304 == o || 50332 == o || 50360 == o || 50388 == o || 50416 == o || 50444 == o || 50472 == o || 50500 == o || 50528 == o || 50556 == o || 50584 == o || 50612 == o || 50640 == o || 50668 == o || 50696 == o || 50724 == o || 50752 == o || 50780 == o || 50808 == o || 50836 == o || 50864 == o || 50892 == o || 50920 == o || 50948 == o || 50976 == o || 51004 == o || 51032 == o || 51060 == o || 51088 == o || 51116 == o || 51144 == o || 51172 == o || 51200 == o || 51228 == o || 51256 == o || 51284 == o || 51312 == o || 51340 == o || 51368 == o || 51396 == o || 51424 == o || 51452 == o || 51480 == o || 51508 == o || 51536 == o || 51564 == o || 51592 == o || 51620 == o || 51648 == o || 51676 == o || 51704 == o || 51732 == o || 51760 == o || 51788 == o || 51816 == o || 51844 == o || 51872 == o || 51900 == o || 51928 == o || 51956 == o || 51984 == o || 52012 == o || 52040 == o || 52068 == o || 52096 == o || 52124 == o || 52152 == o || 52180 == o || 52208 == o || 52236 == o || 52264 == o || 52292 == o || 52320 == o || 52348 == o || 52376 == o || 52404 == o || 52432 == o || 52460 == o || 52488 == o || 52516 == o || 52544 == o || 52572 == o || 52600 == o || 52628 == o || 52656 == o || 52684 == o || 52712 == o || 52740 == o || 52768 == o || 52796 == o || 52824 == o || 52852 == o || 52880 == o || 52908 == o || 52936 == o || 52964 == o || 52992 == o || 53020 == o || 53048 == o || 53076 == o || 53104 == o || 53132 == o || 53160 == o || 53188 == o || 53216 == o || 53244 == o || 53272 == o || 53300 == o || 53328 == o || 53356 == o || 53384 == o || 53412 == o || 53440 == o || 53468 == o || 53496 == o || 53524 == o || 53552 == o || 53580 == o || 53608 == o || 53636 == o || 53664 == o || 53692 == o || 53720 == o || 53748 == o || 53776 == o || 53804 == o || 53832 == o || 53860 == o || 53888 == o || 53916 == o || 53944 == o || 53972 == o || 54e3 == o || 54028 == o || 54056 == o || 54084 == o || 54112 == o || 54140 == o || 54168 == o || 54196 == o || 54224 == o || 54252 == o || 54280 == o || 54308 == o || 54336 == o || 54364 == o || 54392 == o || 54420 == o || 54448 == o || 54476 == o || 54504 == o || 54532 == o || 54560 == o || 54588 == o || 54616 == o || 54644 == o || 54672 == o || 54700 == o || 54728 == o || 54756 == o || 54784 == o || 54812 == o || 54840 == o || 54868 == o || 54896 == o || 54924 == o || 54952 == o || 54980 == o || 55008 == o || 55036 == o || 55064 == o || 55092 == o || 55120 == o || 55148 == o || 55176 == o ? 9 : 44033 <= o && o <= 44059 || 44061 <= o && o <= 44087 || 44089 <= o && o <= 44115 || 44117 <= o && o <= 44143 || 44145 <= o && o <= 44171 || 44173 <= o && o <= 44199 || 44201 <= o && o <= 44227 || 44229 <= o && o <= 44255 || 44257 <= o && o <= 44283 || 44285 <= o && o <= 44311 || 44313 <= o && o <= 44339 || 44341 <= o && o <= 44367 || 44369 <= o && o <= 44395 || 44397 <= o && o <= 44423 || 44425 <= o && o <= 44451 || 44453 <= o && o <= 44479 || 44481 <= o && o <= 44507 || 44509 <= o && o <= 44535 || 44537 <= o && o <= 44563 || 44565 <= o && o <= 44591 || 44593 <= o && o <= 44619 || 44621 <= o && o <= 44647 || 44649 <= o && o <= 44675 || 44677 <= o && o <= 44703 || 44705 <= o && o <= 44731 || 44733 <= o && o <= 44759 || 44761 <= o && o <= 44787 || 44789 <= o && o <= 44815 || 44817 <= o && o <= 44843 || 44845 <= o && o <= 44871 || 44873 <= o && o <= 44899 || 44901 <= o && o <= 44927 || 44929 <= o && o <= 44955 || 44957 <= o && o <= 44983 || 44985 <= o && o <= 45011 || 45013 <= o && o <= 45039 || 45041 <= o && o <= 45067 || 45069 <= o && o <= 45095 || 45097 <= o && o <= 45123 || 45125 <= o && o <= 45151 || 45153 <= o && o <= 45179 || 45181 <= o && o <= 45207 || 45209 <= o && o <= 45235 || 45237 <= o && o <= 45263 || 45265 <= o && o <= 45291 || 45293 <= o && o <= 45319 || 45321 <= o && o <= 45347 || 45349 <= o && o <= 45375 || 45377 <= o && o <= 45403 || 45405 <= o && o <= 45431 || 45433 <= o && o <= 45459 || 45461 <= o && o <= 45487 || 45489 <= o && o <= 45515 || 45517 <= o && o <= 45543 || 45545 <= o && o <= 45571 || 45573 <= o && o <= 45599 || 45601 <= o && o <= 45627 || 45629 <= o && o <= 45655 || 45657 <= o && o <= 45683 || 45685 <= o && o <= 45711 || 45713 <= o && o <= 45739 || 45741 <= o && o <= 45767 || 45769 <= o && o <= 45795 || 45797 <= o && o <= 45823 || 45825 <= o && o <= 45851 || 45853 <= o && o <= 45879 || 45881 <= o && o <= 45907 || 45909 <= o && o <= 45935 || 45937 <= o && o <= 45963 || 45965 <= o && o <= 45991 || 45993 <= o && o <= 46019 || 46021 <= o && o <= 46047 || 46049 <= o && o <= 46075 || 46077 <= o && o <= 46103 || 46105 <= o && o <= 46131 || 46133 <= o && o <= 46159 || 46161 <= o && o <= 46187 || 46189 <= o && o <= 46215 || 46217 <= o && o <= 46243 || 46245 <= o && o <= 46271 || 46273 <= o && o <= 46299 || 46301 <= o && o <= 46327 || 46329 <= o && o <= 46355 || 46357 <= o && o <= 46383 || 46385 <= o && o <= 46411 || 46413 <= o && o <= 46439 || 46441 <= o && o <= 46467 || 46469 <= o && o <= 46495 || 46497 <= o && o <= 46523 || 46525 <= o && o <= 46551 || 46553 <= o && o <= 46579 || 46581 <= o && o <= 46607 || 46609 <= o && o <= 46635 || 46637 <= o && o <= 46663 || 46665 <= o && o <= 46691 || 46693 <= o && o <= 46719 || 46721 <= o && o <= 46747 || 46749 <= o && o <= 46775 || 46777 <= o && o <= 46803 || 46805 <= o && o <= 46831 || 46833 <= o && o <= 46859 || 46861 <= o && o <= 46887 || 46889 <= o && o <= 46915 || 46917 <= o && o <= 46943 || 46945 <= o && o <= 46971 || 46973 <= o && o <= 46999 || 47001 <= o && o <= 47027 || 47029 <= o && o <= 47055 || 47057 <= o && o <= 47083 || 47085 <= o && o <= 47111 || 47113 <= o && o <= 47139 || 47141 <= o && o <= 47167 || 47169 <= o && o <= 47195 || 47197 <= o && o <= 47223 || 47225 <= o && o <= 47251 || 47253 <= o && o <= 47279 || 47281 <= o && o <= 47307 || 47309 <= o && o <= 47335 || 47337 <= o && o <= 47363 || 47365 <= o && o <= 47391 || 47393 <= o && o <= 47419 || 47421 <= o && o <= 47447 || 47449 <= o && o <= 47475 || 47477 <= o && o <= 47503 || 47505 <= o && o <= 47531 || 47533 <= o && o <= 47559 || 47561 <= o && o <= 47587 || 47589 <= o && o <= 47615 || 47617 <= o && o <= 47643 || 47645 <= o && o <= 47671 || 47673 <= o && o <= 47699 || 47701 <= o && o <= 47727 || 47729 <= o && o <= 47755 || 47757 <= o && o <= 47783 || 47785 <= o && o <= 47811 || 47813 <= o && o <= 47839 || 47841 <= o && o <= 47867 || 47869 <= o && o <= 47895 || 47897 <= o && o <= 47923 || 47925 <= o && o <= 47951 || 47953 <= o && o <= 47979 || 47981 <= o && o <= 48007 || 48009 <= o && o <= 48035 || 48037 <= o && o <= 48063 || 48065 <= o && o <= 48091 || 48093 <= o && o <= 48119 || 48121 <= o && o <= 48147 || 48149 <= o && o <= 48175 || 48177 <= o && o <= 48203 || 48205 <= o && o <= 48231 || 48233 <= o && o <= 48259 || 48261 <= o && o <= 48287 || 48289 <= o && o <= 48315 || 48317 <= o && o <= 48343 || 48345 <= o && o <= 48371 || 48373 <= o && o <= 48399 || 48401 <= o && o <= 48427 || 48429 <= o && o <= 48455 || 48457 <= o && o <= 48483 || 48485 <= o && o <= 48511 || 48513 <= o && o <= 48539 || 48541 <= o && o <= 48567 || 48569 <= o && o <= 48595 || 48597 <= o && o <= 48623 || 48625 <= o && o <= 48651 || 48653 <= o && o <= 48679 || 48681 <= o && o <= 48707 || 48709 <= o && o <= 48735 || 48737 <= o && o <= 48763 || 48765 <= o && o <= 48791 || 48793 <= o && o <= 48819 || 48821 <= o && o <= 48847 || 48849 <= o && o <= 48875 || 48877 <= o && o <= 48903 || 48905 <= o && o <= 48931 || 48933 <= o && o <= 48959 || 48961 <= o && o <= 48987 || 48989 <= o && o <= 49015 || 49017 <= o && o <= 49043 || 49045 <= o && o <= 49071 || 49073 <= o && o <= 49099 || 49101 <= o && o <= 49127 || 49129 <= o && o <= 49155 || 49157 <= o && o <= 49183 || 49185 <= o && o <= 49211 || 49213 <= o && o <= 49239 || 49241 <= o && o <= 49267 || 49269 <= o && o <= 49295 || 49297 <= o && o <= 49323 || 49325 <= o && o <= 49351 || 49353 <= o && o <= 49379 || 49381 <= o && o <= 49407 || 49409 <= o && o <= 49435 || 49437 <= o && o <= 49463 || 49465 <= o && o <= 49491 || 49493 <= o && o <= 49519 || 49521 <= o && o <= 49547 || 49549 <= o && o <= 49575 || 49577 <= o && o <= 49603 || 49605 <= o && o <= 49631 || 49633 <= o && o <= 49659 || 49661 <= o && o <= 49687 || 49689 <= o && o <= 49715 || 49717 <= o && o <= 49743 || 49745 <= o && o <= 49771 || 49773 <= o && o <= 49799 || 49801 <= o && o <= 49827 || 49829 <= o && o <= 49855 || 49857 <= o && o <= 49883 || 49885 <= o && o <= 49911 || 49913 <= o && o <= 49939 || 49941 <= o && o <= 49967 || 49969 <= o && o <= 49995 || 49997 <= o && o <= 50023 || 50025 <= o && o <= 50051 || 50053 <= o && o <= 50079 || 50081 <= o && o <= 50107 || 50109 <= o && o <= 50135 || 50137 <= o && o <= 50163 || 50165 <= o && o <= 50191 || 50193 <= o && o <= 50219 || 50221 <= o && o <= 50247 || 50249 <= o && o <= 50275 || 50277 <= o && o <= 50303 || 50305 <= o && o <= 50331 || 50333 <= o && o <= 50359 || 50361 <= o && o <= 50387 || 50389 <= o && o <= 50415 || 50417 <= o && o <= 50443 || 50445 <= o && o <= 50471 || 50473 <= o && o <= 50499 || 50501 <= o && o <= 50527 || 50529 <= o && o <= 50555 || 50557 <= o && o <= 50583 || 50585 <= o && o <= 50611 || 50613 <= o && o <= 50639 || 50641 <= o && o <= 50667 || 50669 <= o && o <= 50695 || 50697 <= o && o <= 50723 || 50725 <= o && o <= 50751 || 50753 <= o && o <= 50779 || 50781 <= o && o <= 50807 || 50809 <= o && o <= 50835 || 50837 <= o && o <= 50863 || 50865 <= o && o <= 50891 || 50893 <= o && o <= 50919 || 50921 <= o && o <= 50947 || 50949 <= o && o <= 50975 || 50977 <= o && o <= 51003 || 51005 <= o && o <= 51031 || 51033 <= o && o <= 51059 || 51061 <= o && o <= 51087 || 51089 <= o && o <= 51115 || 51117 <= o && o <= 51143 || 51145 <= o && o <= 51171 || 51173 <= o && o <= 51199 || 51201 <= o && o <= 51227 || 51229 <= o && o <= 51255 || 51257 <= o && o <= 51283 || 51285 <= o && o <= 51311 || 51313 <= o && o <= 51339 || 51341 <= o && o <= 51367 || 51369 <= o && o <= 51395 || 51397 <= o && o <= 51423 || 51425 <= o && o <= 51451 || 51453 <= o && o <= 51479 || 51481 <= o && o <= 51507 || 51509 <= o && o <= 51535 || 51537 <= o && o <= 51563 || 51565 <= o && o <= 51591 || 51593 <= o && o <= 51619 || 51621 <= o && o <= 51647 || 51649 <= o && o <= 51675 || 51677 <= o && o <= 51703 || 51705 <= o && o <= 51731 || 51733 <= o && o <= 51759 || 51761 <= o && o <= 51787 || 51789 <= o && o <= 51815 || 51817 <= o && o <= 51843 || 51845 <= o && o <= 51871 || 51873 <= o && o <= 51899 || 51901 <= o && o <= 51927 || 51929 <= o && o <= 51955 || 51957 <= o && o <= 51983 || 51985 <= o && o <= 52011 || 52013 <= o && o <= 52039 || 52041 <= o && o <= 52067 || 52069 <= o && o <= 52095 || 52097 <= o && o <= 52123 || 52125 <= o && o <= 52151 || 52153 <= o && o <= 52179 || 52181 <= o && o <= 52207 || 52209 <= o && o <= 52235 || 52237 <= o && o <= 52263 || 52265 <= o && o <= 52291 || 52293 <= o && o <= 52319 || 52321 <= o && o <= 52347 || 52349 <= o && o <= 52375 || 52377 <= o && o <= 52403 || 52405 <= o && o <= 52431 || 52433 <= o && o <= 52459 || 52461 <= o && o <= 52487 || 52489 <= o && o <= 52515 || 52517 <= o && o <= 52543 || 52545 <= o && o <= 52571 || 52573 <= o && o <= 52599 || 52601 <= o && o <= 52627 || 52629 <= o && o <= 52655 || 52657 <= o && o <= 52683 || 52685 <= o && o <= 52711 || 52713 <= o && o <= 52739 || 52741 <= o && o <= 52767 || 52769 <= o && o <= 52795 || 52797 <= o && o <= 52823 || 52825 <= o && o <= 52851 || 52853 <= o && o <= 52879 || 52881 <= o && o <= 52907 || 52909 <= o && o <= 52935 || 52937 <= o && o <= 52963 || 52965 <= o && o <= 52991 || 52993 <= o && o <= 53019 || 53021 <= o && o <= 53047 || 53049 <= o && o <= 53075 || 53077 <= o && o <= 53103 || 53105 <= o && o <= 53131 || 53133 <= o && o <= 53159 || 53161 <= o && o <= 53187 || 53189 <= o && o <= 53215 || 53217 <= o && o <= 53243 || 53245 <= o && o <= 53271 || 53273 <= o && o <= 53299 || 53301 <= o && o <= 53327 || 53329 <= o && o <= 53355 || 53357 <= o && o <= 53383 || 53385 <= o && o <= 53411 || 53413 <= o && o <= 53439 || 53441 <= o && o <= 53467 || 53469 <= o && o <= 53495 || 53497 <= o && o <= 53523 || 53525 <= o && o <= 53551 || 53553 <= o && o <= 53579 || 53581 <= o && o <= 53607 || 53609 <= o && o <= 53635 || 53637 <= o && o <= 53663 || 53665 <= o && o <= 53691 || 53693 <= o && o <= 53719 || 53721 <= o && o <= 53747 || 53749 <= o && o <= 53775 || 53777 <= o && o <= 53803 || 53805 <= o && o <= 53831 || 53833 <= o && o <= 53859 || 53861 <= o && o <= 53887 || 53889 <= o && o <= 53915 || 53917 <= o && o <= 53943 || 53945 <= o && o <= 53971 || 53973 <= o && o <= 53999 || 54001 <= o && o <= 54027 || 54029 <= o && o <= 54055 || 54057 <= o && o <= 54083 || 54085 <= o && o <= 54111 || 54113 <= o && o <= 54139 || 54141 <= o && o <= 54167 || 54169 <= o && o <= 54195 || 54197 <= o && o <= 54223 || 54225 <= o && o <= 54251 || 54253 <= o && o <= 54279 || 54281 <= o && o <= 54307 || 54309 <= o && o <= 54335 || 54337 <= o && o <= 54363 || 54365 <= o && o <= 54391 || 54393 <= o && o <= 54419 || 54421 <= o && o <= 54447 || 54449 <= o && o <= 54475 || 54477 <= o && o <= 54503 || 54505 <= o && o <= 54531 || 54533 <= o && o <= 54559 || 54561 <= o && o <= 54587 || 54589 <= o && o <= 54615 || 54617 <= o && o <= 54643 || 54645 <= o && o <= 54671 || 54673 <= o && o <= 54699 || 54701 <= o && o <= 54727 || 54729 <= o && o <= 54755 || 54757 <= o && o <= 54783 || 54785 <= o && o <= 54811 || 54813 <= o && o <= 54839 || 54841 <= o && o <= 54867 || 54869 <= o && o <= 54895 || 54897 <= o && o <= 54923 || 54925 <= o && o <= 54951 || 54953 <= o && o <= 54979 || 54981 <= o && o <= 55007 || 55009 <= o && o <= 55035 || 55037 <= o && o <= 55063 || 55065 <= o && o <= 55091 || 55093 <= o && o <= 55119 || 55121 <= o && o <= 55147 || 55149 <= o && o <= 55175 || 55177 <= o && o <= 55203 ? 10 : 9757 == o || 9977 == o || 9994 <= o && o <= 9997 || 127877 == o || 127938 <= o && o <= 127940 || 127943 == o || 127946 <= o && o <= 127948 || 128066 <= o && o <= 128067 || 128070 <= o && o <= 128080 || 128110 == o || 128112 <= o && o <= 128120 || 128124 == o || 128129 <= o && o <= 128131 || 128133 <= o && o <= 128135 || 128170 == o || 128372 <= o && o <= 128373 || 128378 == o || 128400 == o || 128405 <= o && o <= 128406 || 128581 <= o && o <= 128583 || 128587 <= o && o <= 128591 || 128675 == o || 128692 <= o && o <= 128694 || 128704 == o || 128716 == o || 129304 <= o && o <= 129308 || 129310 <= o && o <= 129311 || 129318 == o || 129328 <= o && o <= 129337 || 129341 <= o && o <= 129342 || 129489 <= o && o <= 129501 ? a : 127995 <= o && o <= 127999 ? 14 : 8205 == o ? 15 : 9792 == o || 9794 == o || 9877 <= o && o <= 9878 || 9992 == o || 10084 == o || 127752 == o || 127806 == o || 127859 == o || 127891 == o || 127908 == o || 127912 == o || 127979 == o || 127981 == o || 128139 == o || 128187 <= o && o <= 128188 || 128295 == o || 128300 == o || 128488 == o || 128640 == o || 128658 == o ? r : 128102 <= o && o <= 128105 ? i : 11 + } + return this.nextBreak = function(e, t) { + if (void 0 === t && (t = 0), t < 0) return 0; + if (t >= e.length - 1) return e.length; + for (var n, a, r = l(o(e, t)), i = [], c = t + 1; c < e.length; c++) + if (a = c - 1, !(55296 <= (n = e).charCodeAt(a) && n.charCodeAt(a) <= 56319 && 56320 <= n.charCodeAt(a + 1) && n.charCodeAt(a + 1) <= 57343)) { + var u = l(o(e, c)); + if (s(r, i, u)) return c; + i.push(u) + } return e.length + }, this.splitGraphemes = function(e) { + for (var t, n = [], a = 0; + (t = this.nextBreak(e, a)) < e.length;) n.push(e.slice(a, t)), a = t; + return a < e.length && n.push(e.slice(a)), n + }, this.iterateGraphemes = function(e) { + var t = 0, + n = { + next: function() { + var n, a; + return (a = this.nextBreak(e, t)) < e.length ? (n = e.slice(t, a), t = a, { + value: n, + done: !1 + }) : t < e.length ? (n = e.slice(t), t = e.length, { + value: n, + done: !1 + }) : { + value: void 0, + done: !0 } + }.bind(this) + }; + return "undefined" != typeof Symbol && Symbol.iterator && (n[Symbol.iterator] = function() { + return n + }), n + }, this.countGraphemes = function(e) { + for (var t, n = 0, a = 0; + (t = this.nextBreak(e, a)) < e.length;) a = t, n++; + return a < e.length && n++, n + }, this + }) +}, 9483: (e, t, n) => { + "use strict"; + var a = n(8740), + r = { + childContextTypes: !0, + contextType: !0, + contextTypes: !0, + defaultProps: !0, + displayName: !0, + getDefaultProps: !0, + getDerivedStateFromError: !0, + getDerivedStateFromProps: !0, + mixins: !0, + propTypes: !0, + type: !0 + }, + i = { + name: !0, + length: !0, + prototype: !0, + caller: !0, + callee: !0, + arguments: !0, + arity: !0 + }, + o = { + $$typeof: !0, + compare: !0, + defaultProps: !0, + displayName: !0, + propTypes: !0, + type: !0 + }, + s = {}; + + function l(e) { + return a.isMemo(e) ? o : s[e.$$typeof] || r + } + s[a.ForwardRef] = { + $$typeof: !0, + render: !0, + defaultProps: !0, + displayName: !0, + propTypes: !0 + }; + var c = Object.defineProperty, + u = Object.getOwnPropertyNames, + d = Object.getOwnPropertySymbols, + p = Object.getOwnPropertyDescriptor, + h = Object.getPrototypeOf, + m = Object.prototype; + e.exports = function e(t, n, a) { + if ("string" != typeof n) { + if (m) { + var r = h(n); + r && r !== m && e(t, r, a) + } + var o = u(n); + d && (o = o.concat(d(n))); + for (var s = l(t), f = l(n), g = 0; g < o.length; ++g) { + var b = o[g]; + if (!(i[b] || a && a[b] || f && f[b] || s && s[b])) { + var y = p(n, b); + try { + c(t, b, y) + } catch (e) {} + } + } + return t + } + return t + } +}, 4444: (e, t, n) => { + e.exports = { + parse: n(1018), + stringify: n(1674) + } +}, 3514: (e, t, n) => { + var a = /([\w-]+)|=|(['"])([.\s\S]*?)\2/g, + r = n(8058); + e.exports = function(e) { + var t, n = 0, + i = !0, + o = { + type: "tag", + name: "", + voidElement: !1, + attrs: {}, + children: [] + }; + return e.replace(a, (function(a) { + if ("=" === a) return i = !0, void n++; + i ? 0 === n ? ((r[a] || "/" === e.charAt(e.length - 2)) && (o.voidElement = !0), o.name = a) : (o.attrs[t] = a.replace(/^['"]|['"]$/g, ""), t = void 0) : (t && (o.attrs[t] = t), t = a), n++, i = !1 + })), o + } +}, 1018: (e, t, n) => { + var a = /(?:|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g, + r = n(3514), + i = Object.create ? Object.create(null) : {}; + + function o(e, t, n, a, r) { + var i = t.indexOf("<", a), + o = t.slice(a, -1 === i ? void 0 : i); + /^\s*$/.test(o) && (o = " "), (!r && i > -1 && n + e.length >= 0 || " " !== o) && e.push({ + type: "text", + content: o + }) + } + e.exports = function(e, t) { + t || (t = {}), t.components || (t.components = i); + var n, s = [], + l = -1, + c = [], + u = {}, + d = !1; + return e.replace(a, (function(a, i) { + if (d) { + if (a !== "") return; + d = !1 + } + var p, h = "/" !== a.charAt(1), + m = 0 === a.indexOf("\x3c!--"), + f = i + a.length, + g = e.charAt(f); + h && !m && (l++, "tag" === (n = r(a)).type && t.components[n.name] && (n.type = "component", d = !0), n.voidElement || d || !g || "<" === g || o(n.children, e, l, f, t.ignoreWhitespace), u[n.tagName] = n, 0 === l && s.push(n), (p = c[l - 1]) && p.children.push(n), c[l] = n), (m || !h || n.voidElement) && (m || l--, !d && "<" !== g && g && o(p = -1 === l ? s : c[l].children, e, l, f, t.ignoreWhitespace)) + })), !s.length && e.length && o(s, e, 0, 0, t.ignoreWhitespace), s + } +}, 1674: e => { + function t(e, n) { + switch (n.type) { + case "text": + return e + n.content; + case "tag": + return e += "<" + n.name + (n.attrs ? function(e) { + var t = []; + for (var n in e) t.push(n + '="' + e[n] + '"'); + return t.length ? " " + t.join(" ") : "" + }(n.attrs) : "") + (n.voidElement ? "/>" : ">"), n.voidElement ? e : e + n.children.reduce(t, "") + "" + } + } + e.exports = function(e) { + return e.reduce((function(e, n) { + return e + t("", n) + }), "") + } +}, 1568: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }); + t.default = { + name: "cookie", + lookup: function(e) { + var t = void 0; + if (e.lookupCookie && "undefined" != typeof document) { + var n = function(e) { + for (var t = e + "=", n = document.cookie.split(";"), a = 0; a < n.length; a++) { + for (var r = n[a]; + " " === r.charAt(0);) r = r.substring(1, r.length); + if (0 === r.indexOf(t)) return r.substring(t.length, r.length) + } + return null + }(e.lookupCookie); + n && (t = n) + } + return t + }, + cacheUserLanguage: function(e, t) { + t.lookupCookie && "undefined" != typeof document && function(e, t, n, a) { + var r = void 0; + if (n) { + var i = new Date; + i.setTime(i.getTime() + 60 * n * 1e3), r = "; expires=" + i.toGMTString() + } else r = ""; + a = a ? "domain=" + a + ";" : "", document.cookie = e + "=" + t + r + ";" + a + "path=/" + }(t.lookupCookie, e, t.cookieMinutes, t.cookieDomain) + } + } +}, 6182: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.default = { + name: "htmlTag", + lookup: function(e) { + var t = void 0, + n = e.htmlTag || ("undefined" != typeof document ? document.documentElement : null); + return n && "function" == typeof n.getAttribute && (t = n.getAttribute("lang")), t + } + } +}, 4414: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }); + var n = void 0; + try { + n = "undefined" !== window && null !== window.localStorage; + var a = "i18next.translate.boo"; + window.localStorage.setItem(a, "foo"), window.localStorage.removeItem(a) + } catch (e) { + n = !1 + } + t.default = { + name: "localStorage", + lookup: function(e) { + var t = void 0; + if (e.lookupLocalStorage && n) { + var a = window.localStorage.getItem(e.lookupLocalStorage); + a && (t = a) + } + return t + }, + cacheUserLanguage: function(e, t) { + t.lookupLocalStorage && n && window.localStorage.setItem(t.lookupLocalStorage, e) + } + } +}, 8864: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.default = { + name: "navigator", + lookup: function(e) { + var t = []; + if ("undefined" != typeof navigator) { + if (navigator.languages) + for (var n = 0; n < navigator.languages.length; n++) t.push(navigator.languages[n]); + navigator.userLanguage && t.push(navigator.userLanguage), navigator.language && t.push(navigator.language) + } + return t.length > 0 ? t : void 0 + } + } +}, 1699: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.default = { + name: "path", + lookup: function(e) { + var t = void 0; + if ("undefined" != typeof window) { + var n = window.location.pathname.match(/\/([a-zA-Z-]*)/g); + if (n instanceof Array) + if ("number" == typeof e.lookupFromPathIndex) { + if ("string" != typeof n[e.lookupFromPathIndex]) return; + t = n[e.lookupFromPathIndex].replace("/", "") + } else t = n[0].replace("/", "") + } + return t + } + } +}, 6276: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.default = { + name: "querystring", + lookup: function(e) { + var t = void 0; + if ("undefined" != typeof window) + for (var n = window.location.search.substring(1).split("&"), a = 0; a < n.length; a++) { + var r = n[a].indexOf("="); + r > 0 && n[a].substring(0, r) === e.lookupQuerystring && (t = n[a].substring(r + 1)) + } + return t + } + } +}, 1129: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.default = { + name: "subdomain", + lookup: function(e) { + var t = void 0; + if ("undefined" != typeof window) { + var n = window.location.href.match(/(?:http[s]*\:\/\/)*(.*?)\.(?=[^\/]*\..{2,5})/gi); + n instanceof Array && (t = "number" == typeof e.lookupFromSubdomainIndex ? n[e.lookupFromSubdomainIndex].replace("http://", "").replace("https://", "").replace(".", "") : n[0].replace("http://", "").replace("https://", "").replace(".", "")) + } + return t + } + } +}, 9795: (e, t, n) => { + "use strict"; + var a = function() { + function e(e, t) { + for (var n = 0; n < t.length; n++) { + var a = t[n]; + a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a) + } + } + return function(t, n, a) { + return n && e(t.prototype, n), a && e(t, a), t + } + }(), + r = function(e) { + if (e && e.__esModule) return e; + var t = {}; + if (null != e) + for (var n in e) Object.prototype.hasOwnProperty.call(e, n) && (t[n] = e[n]); + return t.default = e, t + }(n(5655)), + i = p(n(1568)), + o = p(n(6276)), + s = p(n(4414)), + l = p(n(8864)), + c = p(n(6182)), + u = p(n(1699)), + d = p(n(1129)); + + function p(e) { + return e && e.__esModule ? e : { + default: e + } + } - function xa(e, t) { - return e > t + function h(e, t) { + if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function") + } + var m = function() { + function e(t) { + var n = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}; + h(this, e), this.type = "languageDetector", this.detectors = {}, this.init(t, n) + } + return a(e, [{ + key: "init", + value: function(e) { + var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {}, + n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + this.services = e, this.options = r.defaults(t, this.options || {}, { + order: ["querystring", "cookie", "localStorage", "navigator", "htmlTag"], + lookupQuerystring: "lng", + lookupCookie: "i18next", + lookupLocalStorage: "i18nextLng", + caches: ["localStorage"], + excludeCacheFor: ["cimode"] + }), this.options.lookupFromUrlIndex && (this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex), this.i18nOptions = n, this.addDetector(i.default), this.addDetector(o.default), this.addDetector(s.default), this.addDetector(l.default), this.addDetector(c.default), this.addDetector(u.default), this.addDetector(d.default) + } + }, { + key: "addDetector", + value: function(e) { + this.detectors[e.name] = e + } + }, { + key: "detect", + value: function(e) { + var t = this; + e || (e = this.options.order); + var n = []; + e.forEach((function(e) { + if (t.detectors[e]) { + var a = t.detectors[e].lookup(t.options); + a && "string" == typeof a && (a = [a]), a && (n = n.concat(a)) + } + })); + var a = void 0; + if (n.forEach((function(e) { + if (!a) { + var n = t.services.languageUtils.formatLanguageCode(e); + t.services.languageUtils.isWhitelisted(n) && (a = n) } + })), !a) { + var r = this.i18nOptions.fallbackLng; + "string" == typeof r && (r = [r]), r || (r = []), a = "[object Array]" === Object.prototype.toString.apply(r) ? r[0] : r[0] || r.default && r.default[0] + } + return a + } + }, { + key: "cacheUserLanguage", + value: function(e, t) { + var n = this; + t || (t = this.options.caches), t && (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(e) > -1 || t.forEach((function(t) { + n.detectors[t] && n.detectors[t].cacheUserLanguage(e, n.options) + }))) + } + }]), e + }(); + m.type = "languageDetector", t.Z = m +}, 5655: (e, t) => { + "use strict"; + Object.defineProperty(t, "__esModule", { + value: !0 + }), t.defaults = function(e) { + return a.call(r.call(arguments, 1), (function(t) { + if (t) + for (var n in t) void 0 === e[n] && (e[n] = t[n]) + })), e + }, t.extend = function(e) { + return a.call(r.call(arguments, 1), (function(t) { + if (t) + for (var n in t) e[n] = t[n] + })), e + }; + var n = [], + a = n.forEach, + r = n.slice +}, 8726: (e, t, n) => { + var a = n(9795).Z; + e.exports = a, e.exports.default = a +}, 376: e => { + "function" == typeof Object.create ? e.exports = function(e, t) { + e.super_ = t, e.prototype = Object.create(t.prototype, { + constructor: { + value: e, + enumerable: !1, + writable: !0, + configurable: !0 + } + }) + } : e.exports = function(e, t) { + e.super_ = t; + var n = function() {}; + n.prototype = t.prototype, e.prototype = new n, e.prototype.constructor = e + } +}, 2456: e => { + "use strict"; + e.exports = function(e, t, n, a, r, i, o, s) { + if (!e) { + var l; + if (void 0 === t) l = new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."); + else { + var c = [n, a, r, i, o, s], + u = 0; + (l = new Error(t.replace(/%s/g, (function() { + return c[u++] + })))).name = "Invariant Violation" + } + throw l.framesToPop = 1, l + } + } +}, 2755: e => { + "use strict"; + var t = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag, + n = Object.prototype.toString, + a = function(e) { + return !(t && e && "object" == typeof e && Symbol.toStringTag in e) && "[object Arguments]" === n.call(e) + }, + r = function(e) { + return !!a(e) || null !== e && "object" == typeof e && "number" == typeof e.length && e.length >= 0 && "[object Array]" !== n.call(e) && "[object Function]" === n.call(e.callee) + }, + i = function() { + return a(arguments) + }(); + a.isLegacyArguments = r, e.exports = i ? a : r +}, 6738: e => { + "use strict"; + var t = Object.prototype.toString, + n = Function.prototype.toString, + a = /^\s*(?:function)?\*/, + r = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag, + i = Object.getPrototypeOf, + o = function() { + if (!r) return !1; + try { + return Function("return function*() {}")() + } catch (e) {} + }(), + s = o ? i(o) : {}; + e.exports = function(e) { + return "function" == typeof e && (!!a.test(n.call(e)) || (r ? i(e) === s : "[object GeneratorFunction]" === t.call(e))) + } +}, 5430: (e, t, n) => { + n(6866), e.exports = self.fetch.bind(self) +}, 587: (e, t) => { + "use strict"; + var n = Object.assign || function(e) { + for (var t = 1; t < arguments.length; t++) { + var n = arguments[t]; + for (var a in n) Object.prototype.hasOwnProperty.call(n, a) && (e[a] = n[a]) + } + return e + }, + a = { + tName: "t", + i18nName: "i18n", + handleName: "localize", + selectorAttr: "data-i18n", + targetAttr: "i18n-target", + optionsAttr: "i18n-options", + useOptionsAttr: !1, + parseDefaultValueFromContent: !0 + }; + t.default = { + init: function(e, t) { + var r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {}; + + function i(t, a, i) { + if (0 !== a.length) { + var o = "text"; + if (0 === a.indexOf("[")) { + var s = a.split("]"); + a = s[1], o = s[0].substr(1, s[0].length - 1) + } + if (a.indexOf(";") === a.length - 1 && (a = a.substr(0, a.length - 2)), "html" === o) t.html(e.t(a, u(i, t.html()))); + else if ("text" === o) t.text(e.t(a, u(i, t.text()))); + else if ("prepend" === o) t.prepend(e.t(a, u(i, t.html()))); + else if ("append" === o) t.append(e.t(a, u(i, t.html()))); + else if (0 === o.indexOf("data-")) { + var l = o.substr("data-".length), + c = e.t(a, u(i, t.data(l))); + t.data(l, c), t.attr(o, c) + } else t.attr(o, e.t(a, u(i, t.attr(o)))) + } + + function u(e, t) { + return r.parseDefaultValueFromContent ? n({}, e, { + defaultValue: t + }) : e + } + } - function Ca(e, t) { - return null != e && Me.call(e, t) - } + function o(e, a) { + var o = e.attr(r.selectorAttr); + if (o || void 0 === o || !1 === o || (o = e.text() || e.val()), o) { + var s = e, + l = e.data(r.targetAttr); + if (l && (s = e.find(l) || e), a || !0 !== r.useOptionsAttr || (a = e.data(r.optionsAttr)), a = a || {}, o.indexOf(";") >= 0) { + var c = o.split(";"); + t.each(c, (function(e, t) { + "" !== t && i(s, t.trim(), a) + })) + } else i(s, o, a); + if (!0 === r.useOptionsAttr) { + var u = {}; + delete(u = n({ + clone: u + }, a)).lng, e.data(r.optionsAttr, u) + } + } + } - function Aa(e, t) { - return null != e && t in Ee(e) - } + function s(e) { + return this.each((function() { + o(t(this), e), t(this).find("[" + r.selectorAttr + "]").each((function() { + o(t(this), e) + })) + })) + } + r = n({}, a, r), t[r.tName] = e.t.bind(e), t[r.i18nName] = e, t.fn[r.handleName] = s + } + } +}, 7795: (e, t, n) => { + e.exports = n(587).default +}, 7927: (module, exports, __webpack_require__) => { + var process = __webpack_require__(554), + __WEBPACK_AMD_DEFINE_RESULT__; + (function() { + "use strict"; + var ERROR = "input is invalid type", + WINDOW = "object" == typeof window, + root = WINDOW ? window : {}; + root.JS_MD5_NO_WINDOW && (WINDOW = !1); + var WEB_WORKER = !WINDOW && "object" == typeof self, + NODE_JS = !root.JS_MD5_NO_NODE_JS && "object" == typeof process && process.versions && process.versions.node; + NODE_JS ? root = __webpack_require__.g : WEB_WORKER && (root = self); + var COMMON_JS = !root.JS_MD5_NO_COMMON_JS && module.exports, + AMD = __webpack_require__.amdO, + ARRAY_BUFFER = !root.JS_MD5_NO_ARRAY_BUFFER && "undefined" != typeof ArrayBuffer, + HEX_CHARS = "0123456789abcdef".split(""), + EXTRA = [128, 32768, 8388608, -2147483648], + SHIFT = [0, 8, 16, 24], + OUTPUT_TYPES = ["hex", "array", "digest", "buffer", "arrayBuffer", "base64"], + BASE64_ENCODE_CHAR = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), + blocks = [], + buffer8; + if (ARRAY_BUFFER) { + var buffer = new ArrayBuffer(68); + buffer8 = new Uint8Array(buffer), blocks = new Uint32Array(buffer) + }!root.JS_MD5_NO_NODE_JS && Array.isArray || (Array.isArray = function(e) { + return "[object Array]" === Object.prototype.toString.call(e) + }), !ARRAY_BUFFER || !root.JS_MD5_NO_ARRAY_BUFFER_IS_VIEW && ArrayBuffer.isView || (ArrayBuffer.isView = function(e) { + return "object" == typeof e && e.buffer && e.buffer.constructor === ArrayBuffer + }); + var createOutputMethod = function(e) { + return function(t) { + return new Md5(!0).update(t)[e]() + } + }, + createMethod = function() { + var e = createOutputMethod("hex"); + NODE_JS && (e = nodeWrap(e)), e.create = function() { + return new Md5 + }, e.update = function(t) { + return e.create().update(t) + }; + for (var t = 0; t < OUTPUT_TYPES.length; ++t) { + var n = OUTPUT_TYPES[t]; + e[n] = createOutputMethod(n) + } + return e + }, + nodeWrap = function(method) { + var crypto = eval("require('crypto')"), + Buffer = eval("require('buffer').Buffer"), + nodeMethod = function(e) { + if ("string" == typeof e) return crypto.createHash("md5").update(e, "utf8").digest("hex"); + if (null == e) throw ERROR; + return e.constructor === ArrayBuffer && (e = new Uint8Array(e)), Array.isArray(e) || ArrayBuffer.isView(e) || e.constructor === Buffer ? crypto.createHash("md5").update(new Buffer(e)).digest("hex") : method(e) + }; + return nodeMethod + }; - function ja(e, t, n) { - for (var i = n ? Et : St, o = e[0].length, s = e.length, l = s, c = a(s), u = 1 / 0, d = []; l--;) { - var p = e[l]; - l && t && (p = xt(p, Ht(t))), u = yn(p.length, u), c[l] = !n && (t || o >= 120 && p.length >= 120) ? new Gn(l && p) : r - } - p = e[0]; - var h = -1, - m = c[0]; - e: for (; ++h < o && d.length < u;) { - var f = p[h], - g = t ? t(f) : f; - if (f = n || 0 !== f ? f : 0, !(m ? Wt(m, g) : i(d, g, n))) { - for (l = s; --l;) { - var b = c[l]; - if (!(b ? Wt(b, g) : i(e[l], g, n))) continue e - } - m && m.push(g), d.push(f) - } - } - return d - } + function Md5(e) { + if (e) blocks[0] = blocks[16] = blocks[1] = blocks[2] = blocks[3] = blocks[4] = blocks[5] = blocks[6] = blocks[7] = blocks[8] = blocks[9] = blocks[10] = blocks[11] = blocks[12] = blocks[13] = blocks[14] = blocks[15] = 0, this.blocks = blocks, this.buffer8 = buffer8; + else if (ARRAY_BUFFER) { + var t = new ArrayBuffer(68); + this.buffer8 = new Uint8Array(t), this.blocks = new Uint32Array(t) + } else this.blocks = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; + this.h0 = this.h1 = this.h2 = this.h3 = this.start = this.bytes = 0, this.finalized = this.hashed = !1, this.first = !0 + } + Md5.prototype.update = function(e) { + if (!this.finalized) { + var t, n = typeof e; + if ("string" !== n) { + if ("object" !== n) throw ERROR; + if (null === e) throw ERROR; + if (ARRAY_BUFFER && e.constructor === ArrayBuffer) e = new Uint8Array(e); + else if (!(Array.isArray(e) || ARRAY_BUFFER && ArrayBuffer.isView(e))) throw ERROR; + t = !0 + } + for (var a, r, i = 0, o = e.length, s = this.blocks, l = this.buffer8; i < o;) { + if (this.hashed && (this.hashed = !1, s[0] = s[16], s[16] = s[1] = s[2] = s[3] = s[4] = s[5] = s[6] = s[7] = s[8] = s[9] = s[10] = s[11] = s[12] = s[13] = s[14] = s[15] = 0), t) + if (ARRAY_BUFFER) + for (r = this.start; i < o && r < 64; ++i) l[r++] = e[i]; + else + for (r = this.start; i < o && r < 64; ++i) s[r >> 2] |= e[i] << SHIFT[3 & r++]; + else if (ARRAY_BUFFER) + for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? l[r++] = a : a < 2048 ? (l[r++] = 192 | a >> 6, l[r++] = 128 | 63 & a) : a < 55296 || a >= 57344 ? (l[r++] = 224 | a >> 12, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), l[r++] = 240 | a >> 18, l[r++] = 128 | a >> 12 & 63, l[r++] = 128 | a >> 6 & 63, l[r++] = 128 | 63 & a); + else + for (r = this.start; i < o && r < 64; ++i)(a = e.charCodeAt(i)) < 128 ? s[r >> 2] |= a << SHIFT[3 & r++] : a < 2048 ? (s[r >> 2] |= (192 | a >> 6) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : a < 55296 || a >= 57344 ? (s[r >> 2] |= (224 | a >> 12) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]) : (a = 65536 + ((1023 & a) << 10 | 1023 & e.charCodeAt(++i)), s[r >> 2] |= (240 | a >> 18) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 12 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | a >> 6 & 63) << SHIFT[3 & r++], s[r >> 2] |= (128 | 63 & a) << SHIFT[3 & r++]); + this.lastByteIndex = r, this.bytes += r - this.start, r >= 64 ? (this.start = r - 64, this.hash(), this.hashed = !0) : this.start = r + } + return this + } + }, Md5.prototype.finalize = function() { + if (!this.finalized) { + this.finalized = !0; + var e = this.blocks, + t = this.lastByteIndex; + e[t >> 2] |= EXTRA[3 & t], t >= 56 && (this.hashed || this.hash(), e[0] = e[16], e[16] = e[1] = e[2] = e[3] = e[4] = e[5] = e[6] = e[7] = e[8] = e[9] = e[10] = e[11] = e[12] = e[13] = e[14] = e[15] = 0), e[14] = this.bytes << 3, this.hash() + } + }, Md5.prototype.hash = function() { + var e, t, n, a, r, i, o = this.blocks; + this.first ? t = ((t = ((e = ((e = o[0] - 680876937) << 7 | e >>> 25) - 271733879 << 0) ^ (n = ((n = (-271733879 ^ (a = ((a = (-1732584194 ^ 2004318071 & e) + o[1] - 117830708) << 12 | a >>> 20) + e << 0) & (-271733879 ^ e)) + o[2] - 1126478375) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1316259209) << 22 | t >>> 10) + n << 0 : (e = this.h0, t = this.h1, n = this.h2, t = ((t += ((e = ((e += ((a = this.h3) ^ t & (n ^ a)) + o[0] - 680876936) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[1] - 389564586) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[2] + 606105819) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[3] - 1044525330) << 22 | t >>> 10) + n << 0), t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[4] - 176418897) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[5] + 1200080426) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[6] - 1473231341) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[7] - 45705983) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[8] + 1770035416) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[9] - 1958414417) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[10] - 42063) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[11] - 1990404162) << 22 | t >>> 10) + n << 0, t = ((t += ((e = ((e += (a ^ t & (n ^ a)) + o[12] + 1804603682) << 7 | e >>> 25) + t << 0) ^ (n = ((n += (t ^ (a = ((a += (n ^ e & (t ^ n)) + o[13] - 40341101) << 12 | a >>> 20) + e << 0) & (e ^ t)) + o[14] - 1502002290) << 17 | n >>> 15) + a << 0) & (a ^ e)) + o[15] + 1236535329) << 22 | t >>> 10) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[1] - 165796510) << 5 | e >>> 27) + t << 0) ^ t)) + o[6] - 1069501632) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[11] + 643717713) << 14 | n >>> 18) + a << 0) ^ a)) + o[0] - 373897302) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[5] - 701558691) << 5 | e >>> 27) + t << 0) ^ t)) + o[10] + 38016083) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[15] - 660478335) << 14 | n >>> 18) + a << 0) ^ a)) + o[4] - 405537848) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[9] + 568446438) << 5 | e >>> 27) + t << 0) ^ t)) + o[14] - 1019803690) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[3] - 187363961) << 14 | n >>> 18) + a << 0) ^ a)) + o[8] + 1163531501) << 20 | t >>> 12) + n << 0, t = ((t += ((a = ((a += (t ^ n & ((e = ((e += (n ^ a & (t ^ n)) + o[13] - 1444681467) << 5 | e >>> 27) + t << 0) ^ t)) + o[2] - 51403784) << 9 | a >>> 23) + e << 0) ^ e & ((n = ((n += (e ^ t & (a ^ e)) + o[7] + 1735328473) << 14 | n >>> 18) + a << 0) ^ a)) + o[12] - 1926607734) << 20 | t >>> 12) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[5] - 378558) << 4 | e >>> 28) + t << 0)) + o[8] - 2022574463) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[11] + 1839030562) << 16 | n >>> 16) + a << 0)) + o[14] - 35309556) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[1] - 1530992060) << 4 | e >>> 28) + t << 0)) + o[4] + 1272893353) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[7] - 155497632) << 16 | n >>> 16) + a << 0)) + o[10] - 1094730640) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[13] + 681279174) << 4 | e >>> 28) + t << 0)) + o[0] - 358537222) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[3] - 722521979) << 16 | n >>> 16) + a << 0)) + o[6] + 76029189) << 23 | t >>> 9) + n << 0, t = ((t += ((i = (a = ((a += ((r = t ^ n) ^ (e = ((e += (r ^ a) + o[9] - 640364487) << 4 | e >>> 28) + t << 0)) + o[12] - 421815835) << 11 | a >>> 21) + e << 0) ^ e) ^ (n = ((n += (i ^ t) + o[15] + 530742520) << 16 | n >>> 16) + a << 0)) + o[2] - 995338651) << 23 | t >>> 9) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[0] - 198630844) << 6 | e >>> 26) + t << 0) | ~n)) + o[7] + 1126891415) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[14] - 1416354905) << 15 | n >>> 17) + a << 0) | ~e)) + o[5] - 57434055) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[12] + 1700485571) << 6 | e >>> 26) + t << 0) | ~n)) + o[3] - 1894986606) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[10] - 1051523) << 15 | n >>> 17) + a << 0) | ~e)) + o[1] - 2054922799) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[8] + 1873313359) << 6 | e >>> 26) + t << 0) | ~n)) + o[15] - 30611744) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[6] - 1560198380) << 15 | n >>> 17) + a << 0) | ~e)) + o[13] + 1309151649) << 21 | t >>> 11) + n << 0, t = ((t += ((a = ((a += (t ^ ((e = ((e += (n ^ (t | ~a)) + o[4] - 145523070) << 6 | e >>> 26) + t << 0) | ~n)) + o[11] - 1120210379) << 10 | a >>> 22) + e << 0) ^ ((n = ((n += (e ^ (a | ~t)) + o[2] + 718787259) << 15 | n >>> 17) + a << 0) | ~e)) + o[9] - 343485551) << 21 | t >>> 11) + n << 0, this.first ? (this.h0 = e + 1732584193 << 0, this.h1 = t - 271733879 << 0, this.h2 = n - 1732584194 << 0, this.h3 = a + 271733878 << 0, this.first = !1) : (this.h0 = this.h0 + e << 0, this.h1 = this.h1 + t << 0, this.h2 = this.h2 + n << 0, this.h3 = this.h3 + a << 0) + }, Md5.prototype.hex = function() { + this.finalize(); + var e = this.h0, + t = this.h1, + n = this.h2, + a = this.h3; + return HEX_CHARS[e >> 4 & 15] + HEX_CHARS[15 & e] + HEX_CHARS[e >> 12 & 15] + HEX_CHARS[e >> 8 & 15] + HEX_CHARS[e >> 20 & 15] + HEX_CHARS[e >> 16 & 15] + HEX_CHARS[e >> 28 & 15] + HEX_CHARS[e >> 24 & 15] + HEX_CHARS[t >> 4 & 15] + HEX_CHARS[15 & t] + HEX_CHARS[t >> 12 & 15] + HEX_CHARS[t >> 8 & 15] + HEX_CHARS[t >> 20 & 15] + HEX_CHARS[t >> 16 & 15] + HEX_CHARS[t >> 28 & 15] + HEX_CHARS[t >> 24 & 15] + HEX_CHARS[n >> 4 & 15] + HEX_CHARS[15 & n] + HEX_CHARS[n >> 12 & 15] + HEX_CHARS[n >> 8 & 15] + HEX_CHARS[n >> 20 & 15] + HEX_CHARS[n >> 16 & 15] + HEX_CHARS[n >> 28 & 15] + HEX_CHARS[n >> 24 & 15] + HEX_CHARS[a >> 4 & 15] + HEX_CHARS[15 & a] + HEX_CHARS[a >> 12 & 15] + HEX_CHARS[a >> 8 & 15] + HEX_CHARS[a >> 20 & 15] + HEX_CHARS[a >> 16 & 15] + HEX_CHARS[a >> 28 & 15] + HEX_CHARS[a >> 24 & 15] + }, Md5.prototype.toString = Md5.prototype.hex, Md5.prototype.digest = function() { + this.finalize(); + var e = this.h0, + t = this.h1, + n = this.h2, + a = this.h3; + return [255 & e, e >> 8 & 255, e >> 16 & 255, e >> 24 & 255, 255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255] + }, Md5.prototype.array = Md5.prototype.digest, Md5.prototype.arrayBuffer = function() { + this.finalize(); + var e = new ArrayBuffer(16), + t = new Uint32Array(e); + return t[0] = this.h0, t[1] = this.h1, t[2] = this.h2, t[3] = this.h3, e + }, Md5.prototype.buffer = Md5.prototype.arrayBuffer, Md5.prototype.base64 = function() { + for (var e, t, n, a = "", r = this.array(), i = 0; i < 15;) e = r[i++], t = r[i++], n = r[i++], a += BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[63 & (e << 4 | t >>> 4)] + BASE64_ENCODE_CHAR[63 & (t << 2 | n >>> 6)] + BASE64_ENCODE_CHAR[63 & n]; + return e = r[i], a + (BASE64_ENCODE_CHAR[e >>> 2] + BASE64_ENCODE_CHAR[e << 4 & 63] + "==") + }; + var exports = createMethod(); + COMMON_JS ? module.exports = exports : (root.md5 = exports, AMD && (__WEBPACK_AMD_DEFINE_RESULT__ = function() { + return exports + }.call(exports, __webpack_require__, exports, module), void 0 === __WEBPACK_AMD_DEFINE_RESULT__ || (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))) + })() +}, 9229: e => { + function t(e) { + this.message = e + } + t.prototype = new Error, t.prototype.name = "InvalidCharacterError", e.exports = "undefined" != typeof window && window.atob && window.atob.bind(window) || function(e) { + var n = String(e).replace(/=+$/, ""); + if (n.length % 4 == 1) throw new t("'atob' failed: The string to be decoded is not correctly encoded."); + for (var a, r, i = 0, o = 0, s = ""; r = n.charAt(o++); ~r && (a = i % 4 ? 64 * a + r : r, i++ % 4) ? s += String.fromCharCode(255 & a >> (-2 * i & 6)) : 0) r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(r); + return s + } +}, 2099: (e, t, n) => { + var a = n(9229); + e.exports = function(e) { + var t = e.replace(/-/g, "+").replace(/_/g, "/"); + switch (t.length % 4) { + case 0: + break; + case 2: + t += "=="; + break; + case 3: + t += "="; + break; + default: + throw "Illegal base64url string!" + } + try { + return function(e) { + return decodeURIComponent(a(e).replace(/(.)/g, (function(e, t) { + var n = t.charCodeAt(0).toString(16).toUpperCase(); + return n.length < 2 && (n = "0" + n), "%" + n + }))) + }(t) + } catch (e) { + return a(t) + } + } +}, 9623: (e, t, n) => { + "use strict"; + var a = n(2099); - function Pa(e, t, n) { - var a = null == (e = xi(e, t = br(t, e))) ? e : e[Ri(Ji(t))]; - return null == a ? r : bt(a, e, n) - } + function r(e) { + this.message = e + } + r.prototype = new Error, r.prototype.name = "InvalidTokenError", e.exports = function(e, t) { + if ("string" != typeof e) throw new r("Invalid token specified"); + var n = !0 === (t = t || {}).header ? 0 : 1; + try { + return JSON.parse(a(e.split(".")[n])) + } catch (e) { + throw new r("Invalid token specified: " + e.message) + } + }, e.exports.InvalidTokenError = r +}, 6148: (e, t, n) => { + "use strict"; - function Da(e) { - return ns(e) && Ea(e) == f - } + function a(e) { + var t = Array.prototype.slice.call(arguments, 1); + return t.forEach((function(t) { + t && Object.keys(t).forEach((function(n) { + e[n] = t[n] + })) + })), e + } - function Ta(e, t, n, a, i) { - return e === t || (null == e || null == t || !ns(e) && !ns(t) ? e != e && t != t : function(e, t, n, a, i, o) { - var s = Wo(e), - l = Wo(t), - c = s ? g : pi(e), - u = l ? g : pi(t), - d = (c = c == f ? E : c) == E, - p = (u = u == f ? E : u) == E, - h = c == u; - if (h && $o(e)) { - if (!$o(t)) return !1; - s = !0, d = !1 - } - if (h && !d) return o || (o = new Kn), s || us(e) ? Xr(e, t, n, a, i, o) : function(e, t, n, a, r, i, o) { - switch (n) { - case O: - if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1; - e = e.buffer, t = t.buffer; - case T: - return !(e.byteLength != t.byteLength || !i(new Ue(e), new Ue(t))); - case b: - case y: - case S: - return Bo(+e, +t); - case v: - return e.name == t.name && e.message == t.message; - case C: - case j: - return e == t + ""; - case w: - var s = Xt; - case A: - var l = 1 & a; - if (s || (s = nn), e.size != t.size && !l) return !1; - var c = o.get(e); - if (c) return c == t; - a |= 2, o.set(e, t); - var u = Xr(s(e), s(t), a, r, i, o); - return o.delete(e), u; - case P: - if (Rn) return Rn.call(e) == Rn.call(t) - } - return !1 - }(e, t, c, n, a, i, o); - if (!(1 & n)) { - var m = d && Me.call(e, "__wrapped__"), - k = p && Me.call(t, "__wrapped__"); - if (m || k) { - var _ = m ? e.value() : e, - x = k ? t.value() : t; - return o || (o = new Kn), i(_, x, n, a, o) - } - } - return !!h && (o || (o = new Kn), function(e, t, n, a, i, o) { - var s = 1 & n, - l = ti(e), - c = l.length; - if (c != ti(t).length && !s) return !1; - for (var u = c; u--;) { - var d = l[u]; - if (!(s ? d in t : Me.call(t, d))) return !1 - } - var p = o.get(e), - h = o.get(t); - if (p && h) return p == t && h == e; - var m = !0; - o.set(e, t), o.set(t, e); - for (var f = s; ++u < c;) { - var g = e[d = l[u]], - b = t[d]; - if (a) var y = s ? a(b, g, d, t, e, o) : a(g, b, d, e, t, o); - if (!(y === r ? g === b || i(g, b, n, a, o) : y)) { - m = !1; - break - } - f || (f = "constructor" == d) - } - if (m && !f) { - var v = e.constructor, - k = t.constructor; - v == k || !("constructor" in e) || !("constructor" in t) || "function" == typeof v && v instanceof v && "function" == typeof k && k instanceof k || (m = !1) - } - return o.delete(e), o.delete(t), m - }(e, t, n, a, i, o)) - }(e, t, n, a, Ta, i)) - } - - function Oa(e, t, n, a) { - var i = n.length, - o = i, - s = !a; - if (null == e) return !o; - for (e = Ee(e); i--;) { - var l = n[i]; - if (s && l[2] ? l[1] !== e[l[0]] : !(l[0] in e)) return !1 - } - for (; ++i < o;) { - var c = (l = n[i])[0], - u = e[c], - d = l[1]; - if (s && l[2]) { - if (u === r && !(c in e)) return !1 - } else { - var p = new Kn; - if (a) var h = a(u, d, c, e, t, p); - if (!(h === r ? Ta(d, u, 3, a, p) : h)) return !1 - } - } - return !0 - } + function r(e) { + return Object.prototype.toString.call(e) + } - function Ma(e) { - return !(!ts(e) || (t = e, Ne && Ne in t)) && (Qo(e) ? Fe : fe).test(Li(e)); - var t - } + function i(e) { + return "[object Function]" === r(e) + } - function Ia(e) { - return "function" == typeof e ? e : null == e ? rl : "object" == typeof e ? Wo(e) ? Fa(e[0], e[1]) : La(e) : hl(e) - } + function o(e) { + return e.replace(/[.?*+^$[\]\\(){}|-]/g, "\\$&") + } + var s = { + fuzzyLink: !0, + fuzzyEmail: !0, + fuzzyIP: !1 + }, + l = { + "http:": { + validate: function(e, t, n) { + var a = e.slice(t); + return n.re.http || (n.re.http = new RegExp("^\\/\\/" + n.re.src_auth + n.re.src_host_port_strict + n.re.src_path, "i")), n.re.http.test(a) ? a.match(n.re.http)[0].length : 0 + } + }, + "https:": "http:", + "ftp:": "http:", + "//": { + validate: function(e, t, n) { + var a = e.slice(t); + return n.re.no_http || (n.re.no_http = new RegExp("^" + n.re.src_auth + "(?:localhost|(?:(?:" + n.re.src_domain + ")\\.)+" + n.re.src_domain_root + ")" + n.re.src_port + n.re.src_host_terminator + n.re.src_path, "i")), n.re.no_http.test(a) ? t >= 3 && ":" === e[t - 3] || t >= 3 && "/" === e[t - 3] ? 0 : a.match(n.re.no_http)[0].length : 0 + } + }, + "mailto:": { + validate: function(e, t, n) { + var a = e.slice(t); + return n.re.mailto || (n.re.mailto = new RegExp("^" + n.re.src_email_name + "@" + n.re.src_host_strict, "i")), n.re.mailto.test(a) ? a.match(n.re.mailto)[0].length : 0 + } + } + }, + c = "biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|"); - function Na(e) { - if (!_i(e)) return gn(e); - var t = []; - for (var n in Ee(e)) Me.call(e, n) && "constructor" != n && t.push(n); - return t - } + function u(e) { + var t = e.re = n(3854)(e.__opts__), + a = e.__tlds__.slice(); - function za(e, t) { - return e < t - } + function s(e) { + return e.replace("%TLDS%", t.src_tlds) + } + e.onCompile(), e.__tlds_replaced__ || a.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"), a.push(t.src_xn), t.src_tlds = a.join("|"), t.email_fuzzy = RegExp(s(t.tpl_email_fuzzy), "i"), t.link_fuzzy = RegExp(s(t.tpl_link_fuzzy), "i"), t.link_no_ip_fuzzy = RegExp(s(t.tpl_link_no_ip_fuzzy), "i"), t.host_fuzzy_test = RegExp(s(t.tpl_host_fuzzy_test), "i"); + var l = []; - function Ra(e, t) { - var n = -1, - r = Go(e) ? a(e.length) : []; - return da(e, (function(e, a, i) { - r[++n] = t(e, a, i) - })), r - } + function c(e, t) { + throw new Error('(LinkifyIt) Invalid schema "' + e + '": ' + t) + } + e.__compiled__ = {}, Object.keys(e.__schemas__).forEach((function(t) { + var n = e.__schemas__[t]; + if (null !== n) { + var a = { + validate: null, + link: null + }; + if (e.__compiled__[t] = a, "[object Object]" === r(n)) return "[object RegExp]" !== r(n.validate) ? i(n.validate) ? a.validate = n.validate : c(t, n) : a.validate = function(e) { + return function(t, n) { + var a = t.slice(n); + return e.test(a) ? a.match(e)[0].length : 0 + } + }(n.validate), void(i(n.normalize) ? a.normalize = n.normalize : n.normalize ? c(t, n) : a.normalize = function(e, t) { + t.normalize(e) + }); + ! function(e) { + return "[object String]" === r(e) + }(n) ? c(t, n): l.push(t) + } + })), l.forEach((function(t) { + e.__compiled__[e.__schemas__[t]] && (e.__compiled__[t].validate = e.__compiled__[e.__schemas__[t]].validate, e.__compiled__[t].normalize = e.__compiled__[e.__schemas__[t]].normalize) + })), e.__compiled__[""] = { + validate: null, + normalize: function(e, t) { + t.normalize(e) + } + }; + var u = Object.keys(e.__compiled__).filter((function(t) { + return t.length > 0 && e.__compiled__[t] + })).map(o).join("|"); + e.re.schema_test = RegExp("(^|(?!_)(?:[><|]|" + t.src_ZPCc + "))(" + u + ")", "i"), e.re.schema_search = RegExp("(^|(?!_)(?:[><|]|" + t.src_ZPCc + "))(" + u + ")", "ig"), e.re.pretest = RegExp("(" + e.re.schema_test.source + ")|(" + e.re.host_fuzzy_test.source + ")|@", "i"), + function(e) { + e.__index__ = -1, e.__text_cache__ = "" + }(e) + } - function La(e) { - var t = li(e); - return 1 == t.length && t[0][2] ? Si(t[0][0], t[0][1]) : function(n) { - return n === e || Oa(n, e, t) - } - } + function d(e, t) { + var n = e.__index__, + a = e.__last_index__, + r = e.__text_cache__.slice(n, a); + this.schema = e.__schema__.toLowerCase(), this.index = n + t, this.lastIndex = a + t, this.raw = r, this.text = r, this.url = r + } - function Fa(e, t) { - return yi(e) && wi(t) ? Si(Ri(e), t) : function(n) { - var a = As(n, e); - return a === r && a === t ? js(n, e) : Ta(t, a, 3) - } - } + function p(e, t) { + var n = new d(e, t); + return e.__compiled__[n.schema].normalize(n, e), n + } - function qa(e, t, n, a, i) { - e !== t && ba(t, (function(o, s) { - if (i || (i = new Kn), ts(o)) ! function(e, t, n, a, i, o, s) { - var l = Ai(e, n), - c = Ai(t, n), - u = s.get(c); - if (u) Xn(e, n, u); - else { - var d = o ? o(l, c, n + "", e, t, s) : r, - p = d === r; - if (p) { - var h = Wo(c), - m = !h && $o(c), - f = !h && !m && us(c); - d = c, h || m || f ? Wo(l) ? d = l : Ko(l) ? d = Ar(l) : m ? (p = !1, d = _r(c, !0)) : f ? (p = !1, d = Sr(c, !0)) : d = [] : is(c) || Vo(c) ? (d = l, Vo(l) ? d = ys(l) : ts(l) && !Qo(l) || (d = mi(c))) : p = !1 - } - p && (s.set(c, d), i(d, c, a, o, s), s.delete(c)), Xn(e, n, d) - } - }(e, t, s, n, qa, a, i); - else { - var l = a ? a(Ai(e, s), o, s + "", e, t, i) : r; - l === r && (l = o), Xn(e, s, l) - } - }), Ms) - } + function h(e, t) { + if (!(this instanceof h)) return new h(e, t); + var n; + t || (n = e, Object.keys(n || {}).reduce((function(e, t) { + return e || s.hasOwnProperty(t) + }), !1) && (t = e, e = {})), this.__opts__ = a({}, s, t), this.__index__ = -1, this.__last_index__ = -1, this.__schema__ = "", this.__text_cache__ = "", this.__schemas__ = a({}, l, e), this.__compiled__ = {}, this.__tlds__ = c, this.__tlds_replaced__ = !1, this.re = {}, u(this) + } + h.prototype.add = function(e, t) { + return this.__schemas__[e] = t, u(this), this + }, h.prototype.set = function(e) { + return this.__opts__ = a(this.__opts__, e), this + }, h.prototype.test = function(e) { + if (this.__text_cache__ = e, this.__index__ = -1, !e.length) return !1; + var t, n, a, r, i, o, s, l; + if (this.re.schema_test.test(e)) + for ((s = this.re.schema_search).lastIndex = 0; null !== (t = s.exec(e));) + if (r = this.testSchemaAt(e, t[2], s.lastIndex)) { + this.__schema__ = t[2], this.__index__ = t.index + t[1].length, this.__last_index__ = t.index + t[0].length + r; + break + } return this.__opts__.fuzzyLink && this.__compiled__["http:"] && (l = e.search(this.re.host_fuzzy_test)) >= 0 && (this.__index__ < 0 || l < this.__index__) && null !== (n = e.match(this.__opts__.fuzzyIP ? this.re.link_fuzzy : this.re.link_no_ip_fuzzy)) && (i = n.index + n[1].length, (this.__index__ < 0 || i < this.__index__) && (this.__schema__ = "", this.__index__ = i, this.__last_index__ = n.index + n[0].length)), this.__opts__.fuzzyEmail && this.__compiled__["mailto:"] && e.indexOf("@") >= 0 && null !== (a = e.match(this.re.email_fuzzy)) && (i = a.index + a[1].length, o = a.index + a[0].length, (this.__index__ < 0 || i < this.__index__ || i === this.__index__ && o > this.__last_index__) && (this.__schema__ = "mailto:", this.__index__ = i, this.__last_index__ = o)), this.__index__ >= 0 + }, h.prototype.pretest = function(e) { + return this.re.pretest.test(e) + }, h.prototype.testSchemaAt = function(e, t, n) { + return this.__compiled__[t.toLowerCase()] ? this.__compiled__[t.toLowerCase()].validate(e, n, this) : 0 + }, h.prototype.match = function(e) { + var t = 0, + n = []; + this.__index__ >= 0 && this.__text_cache__ === e && (n.push(p(this, t)), t = this.__last_index__); + for (var a = t ? e.slice(t) : e; this.test(a);) n.push(p(this, t)), a = a.slice(this.__last_index__), t += this.__last_index__; + return n.length ? n : null + }, h.prototype.tlds = function(e, t) { + return e = Array.isArray(e) ? e : [e], t ? (this.__tlds__ = this.__tlds__.concat(e).sort().filter((function(e, t, n) { + return e !== n[t - 1] + })).reverse(), u(this), this) : (this.__tlds__ = e.slice(), this.__tlds_replaced__ = !0, u(this), this) + }, h.prototype.normalize = function(e) { + e.schema || (e.url = "http://" + e.url), "mailto:" !== e.schema || /^mailto:/i.test(e.url) || (e.url = "mailto:" + e.url) + }, h.prototype.onCompile = function() {}, e.exports = h +}, 3854: (e, t, n) => { + "use strict"; + e.exports = function(e) { + var t = {}; + return t.src_Any = n(8486).source, t.src_Cc = n(8690).source, t.src_Z = n(8382).source, t.src_P = n(4601).source, t.src_ZPCc = [t.src_Z, t.src_P, t.src_Cc].join("|"), t.src_ZCc = [t.src_Z, t.src_Cc].join("|"), t.src_pseudo_letter = "(?:(?![><|]|" + t.src_ZPCc + ")" + t.src_Any + ")", t.src_ip4 = "(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", t.src_auth = "(?:(?:(?!" + t.src_ZCc + "|[@/\\[\\]()]).)+@)?", t.src_port = "(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?", t.src_host_terminator = "(?=$|[><|]|" + t.src_ZPCc + ")(?!-|_|:\\d|\\.-|\\.(?!$|" + t.src_ZPCc + "))", t.src_path = "(?:[/?#](?:(?!" + t.src_ZCc + "|[><|]|[()[\\]{}.,\"'?!\\-]).|\\[(?:(?!" + t.src_ZCc + "|\\]).)*\\]|\\((?:(?!" + t.src_ZCc + "|[)]).)*\\)|\\{(?:(?!" + t.src_ZCc + '|[}]).)*\\}|\\"(?:(?!' + t.src_ZCc + '|["]).)+\\"|\\\'(?:(?!' + t.src_ZCc + "|[']).)+\\'|\\'(?=" + t.src_pseudo_letter + "|[-]).|\\.{2,4}[a-zA-Z0-9%/]|\\.(?!" + t.src_ZCc + "|[.]).|" + (e && e["---"] ? "\\-(?!--(?:[^-]|$))(?:-*)|" : "\\-+|") + "\\,(?!" + t.src_ZCc + ").|\\!(?!" + t.src_ZCc + "|[!]).|\\?(?!" + t.src_ZCc + "|[?]).)+|\\/)?", t.src_email_name = '[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*', t.src_xn = "xn--[a-z0-9\\-]{1,59}", t.src_domain_root = "(?:" + t.src_xn + "|" + t.src_pseudo_letter + "{1,63})", t.src_domain = "(?:" + t.src_xn + "|(?:" + t.src_pseudo_letter + ")|(?:" + t.src_pseudo_letter + "(?:-|" + t.src_pseudo_letter + "){0,61}" + t.src_pseudo_letter + "))", t.src_host = "(?:(?:(?:(?:" + t.src_domain + ")\\.)*" + t.src_domain + "))", t.tpl_host_fuzzy = "(?:" + t.src_ip4 + "|(?:(?:(?:" + t.src_domain + ")\\.)+(?:%TLDS%)))", t.tpl_host_no_ip_fuzzy = "(?:(?:(?:" + t.src_domain + ")\\.)+(?:%TLDS%))", t.src_host_strict = t.src_host + t.src_host_terminator, t.tpl_host_fuzzy_strict = t.tpl_host_fuzzy + t.src_host_terminator, t.src_host_port_strict = t.src_host + t.src_port + t.src_host_terminator, t.tpl_host_port_fuzzy_strict = t.tpl_host_fuzzy + t.src_port + t.src_host_terminator, t.tpl_host_port_no_ip_fuzzy_strict = t.tpl_host_no_ip_fuzzy + t.src_port + t.src_host_terminator, t.tpl_host_fuzzy_test = "localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:" + t.src_ZPCc + "|>|$))", t.tpl_email_fuzzy = '(^|[><|]|"|\\(|' + t.src_ZCc + ")(" + t.src_email_name + "@" + t.tpl_host_fuzzy_strict + ")", t.tpl_link_fuzzy = "(^|(?![.:/\\-_@])(?:[$+<=>^`||]|" + t.src_ZPCc + "))((?![$+<=>^`||])" + t.tpl_host_port_fuzzy_strict + t.src_path + ")", t.tpl_link_no_ip_fuzzy = "(^|(?![.:/\\-_@])(?:[$+<=>^`||]|" + t.src_ZPCc + "))((?![$+<=>^`||])" + t.tpl_host_port_no_ip_fuzzy_strict + t.src_path + ")", t + } +}, 7947: e => { + function t(e, t) { + e.onload = function() { + this.onerror = this.onload = null, t(null, e) + }, e.onerror = function() { + this.onerror = this.onload = null, t(new Error("Failed to load " + this.src), e) + } + } - function Ba(e, t) { - var n = e.length; - if (n) return gi(t += t < 0 ? n : 0, n) ? e[t] : r - } + function n(e, t) { + e.onreadystatechange = function() { + "complete" != this.readyState && "loaded" != this.readyState || (this.onreadystatechange = null, t(null, e)) + } + } + e.exports = function(e, a, r) { + var i = document.head || document.getElementsByTagName("head")[0], + o = document.createElement("script"); + "function" == typeof a && (r = a, a = {}), a = a || {}, r = r || function() {}, o.type = a.type || "text/javascript", o.charset = a.charset || "utf8", o.async = !("async" in a) || !!a.async, o.src = e, a.attrs && function(e, t) { + for (var n in t) e.setAttribute(n, t[n]) + }(o, a.attrs), a.text && (o.text = "" + a.text), ("onload" in o ? t : n)(o, r), o.onload || t(o, r), i.appendChild(o) + } +}, 7027: (e, t, n) => { + var a = "object" == typeof n.g && n.g && n.g.Object === Object && n.g, + r = "object" == typeof self && self && self.Object === Object && self, + i = a || r || Function("return this")(); + + function o(e, t) { + for (var n = -1, a = t.length, r = e.length; ++n < a;) e[r + n] = t[n]; + return e + } + var s = Object.prototype, + l = s.hasOwnProperty, + c = s.toString, + u = i.Symbol, + d = s.propertyIsEnumerable, + p = u ? u.isConcatSpreadable : void 0; + + function h(e, t, n, a, r) { + var i = -1, + s = e.length; + for (n || (n = m), r || (r = []); ++i < s;) { + var l = e[i]; + t > 0 && n(l) ? t > 1 ? h(l, t - 1, n, a, r) : o(r, l) : a || (r[r.length] = l) + } + return r + } - function Ua(e, t, n) { - t = t.length ? xt(t, (function(e) { - return Wo(e) ? function(t) { - return wa(t, 1 === e.length ? e[0] : e) - } : e - })) : [rl]; - var a = -1; - t = xt(t, Ht(oi())); - var r = Ra(e, (function(e, n, r) { - var i = xt(t, (function(t) { - return t(e) - })); - return { - criteria: i, - index: ++a, - value: e - } - })); - return function(e, t) { - var a = e.length; - for (e.sort((function(e, t) { - return function(e, t, n) { - for (var a = -1, r = e.criteria, i = t.criteria, o = r.length, s = n.length; ++a < o;) { - var l = Er(r[a], i[a]); - if (l) return a >= s ? l : l * ("desc" == n[a] ? -1 : 1) - } - return e.index - t.index - }(e, t, n) - })); a--;) e[a] = e[a].value; - return e - }(r) - } + function m(e) { + return f(e) || function(e) { + return function(e) { + return function(e) { + return !!e && "object" == typeof e + }(e) && function(e) { + return null != e && function(e) { + return "number" == typeof e && e > -1 && e % 1 == 0 && e <= 9007199254740991 + }(e.length) && ! function(e) { + var t = function(e) { + var t = typeof e; + return !!e && ("object" == t || "function" == t) + }(e) ? c.call(e) : ""; + return "[object Function]" == t || "[object GeneratorFunction]" == t + }(e) + }(e) + }(e) && l.call(e, "callee") && (!d.call(e, "callee") || "[object Arguments]" == c.call(e)) + }(e) || !!(p && e && e[p]) + } + var f = Array.isArray; + e.exports = function(e) { + return e && e.length ? h(e, 1) : [] + } +}, 4458: e => { + var t = Object.prototype.toString, + n = Array.isArray; + e.exports = function(e) { + return "string" == typeof e || !n(e) && function(e) { + return !!e && "object" == typeof e + }(e) && "[object String]" == t.call(e) + } +}, 7206: (e, t, n) => { + var a = n(4366).Symbol; + e.exports = a +}, 7807: (e, t, n) => { + var a = n(7206), + r = n(3187), + i = n(2778), + o = a ? a.toStringTag : void 0; + e.exports = function(e) { + return null == e ? void 0 === e ? "[object Undefined]" : "[object Null]" : o && o in Object(e) ? r(e) : i(e) + } +}, 4182: (e, t, n) => { + var a = n(9135), + r = /^\s+/; + e.exports = function(e) { + return e ? e.slice(0, a(e) + 1).replace(r, "") : e + } +}, 4891: (e, t, n) => { + var a = "object" == typeof n.g && n.g && n.g.Object === Object && n.g; + e.exports = a +}, 3187: (e, t, n) => { + var a = n(7206), + r = Object.prototype, + i = r.hasOwnProperty, + o = r.toString, + s = a ? a.toStringTag : void 0; + e.exports = function(e) { + var t = i.call(e, s), + n = e[s]; + try { + e[s] = void 0; + var a = !0 + } catch (e) {} + var r = o.call(e); + return a && (t ? e[s] = n : delete e[s]), r + } +}, 2778: e => { + var t = Object.prototype.toString; + e.exports = function(e) { + return t.call(e) + } +}, 4366: (e, t, n) => { + var a = n(4891), + r = "object" == typeof self && self && self.Object === Object && self, + i = a || r || Function("return this")(); + e.exports = i +}, 9135: e => { + var t = /\s/; + e.exports = function(e) { + for (var n = e.length; n-- && t.test(e.charAt(n));); + return n + } +}, 3645: (e, t, n) => { + var a = n(1716), + r = n(9244), + i = n(1666), + o = Math.max, + s = Math.min; + e.exports = function(e, t, n) { + var l, c, u, d, p, h, m = 0, + f = !1, + g = !1, + b = !0; + if ("function" != typeof e) throw new TypeError("Expected a function"); + + function y(t) { + var n = l, + a = c; + return l = c = void 0, m = t, d = e.apply(a, n) + } - function Ha(e, t, n) { - for (var a = -1, r = t.length, i = {}; ++a < r;) { - var o = t[a], - s = wa(e, o); - n(s, o) && Za(i, br(o, e), s) - } - return i - } + function v(e) { + return m = e, p = setTimeout(_, t), f ? y(e) : d + } - function Va(e, t, n, a) { - var r = a ? It : Mt, - i = -1, - o = t.length, - s = e; - for (e === t && (t = Ar(t)), n && (s = xt(e, Ht(n))); ++i < o;) - for (var l = 0, c = t[i], u = n ? n(c) : c; - (l = r(s, u, l, a)) > -1;) s !== e && at.call(s, l, 1), at.call(e, l, 1); - return e - } + function k(e) { + var n = e - h; + return void 0 === h || n >= t || n < 0 || g && e - m >= u + } - function Wa(e, t) { - for (var n = e ? t.length : 0, a = n - 1; n--;) { - var r = t[n]; - if (n == a || r !== i) { - var i = r; - gi(r) ? at.call(e, r, 1) : cr(e, r) - } - } - return e - } + function _() { + var e = r(); + if (k(e)) return w(e); + p = setTimeout(_, function(e) { + var n = t - (e - h); + return g ? s(n, u - (e - m)) : n + }(e)) + } - function Ya(e, t) { - return e + dn(_n() * (t - e + 1)) - } + function w(e) { + return p = void 0, b && l ? y(e) : (l = c = void 0, d) + } - function Ga(e, t) { - var n = ""; - if (!e || t < 1 || t > d) return n; - do { - t % 2 && (n += e), (t = dn(t / 2)) && (e += e) - } while (t); - return n - } + function S() { + var e = r(), + n = k(e); + if (l = arguments, c = this, h = e, n) { + if (void 0 === p) return v(h); + if (g) return clearTimeout(p), p = setTimeout(_, t), y(h) + } + return void 0 === p && (p = setTimeout(_, t)), d + } + return t = i(t) || 0, a(n) && (f = !!n.leading, u = (g = "maxWait" in n) ? o(i(n.maxWait) || 0, t) : u, b = "trailing" in n ? !!n.trailing : b), S.cancel = function() { + void 0 !== p && clearTimeout(p), m = 0, l = h = c = p = void 0 + }, S.flush = function() { + return void 0 === p ? d : w(r()) + }, S + } +}, 1716: e => { + e.exports = function(e) { + var t = typeof e; + return null != e && ("object" == t || "function" == t) + } +}, 8667: e => { + e.exports = function(e) { + return null != e && "object" == typeof e + } +}, 2570: (e, t, n) => { + var a = n(7807), + r = n(8667); + e.exports = function(e) { + return "symbol" == typeof e || r(e) && "[object Symbol]" == a(e) + } +}, 103: function(e, t, n) { + var a; + e = n.nmd(e), + function() { + var r, i = "Expected a function", + o = "__lodash_hash_undefined__", + s = "__lodash_placeholder__", + l = 32, + c = 128, + u = 1 / 0, + d = 9007199254740991, + p = NaN, + h = 4294967295, + m = [ + ["ary", c], + ["bind", 1], + ["bindKey", 2], + ["curry", 8], + ["curryRight", 16], + ["flip", 512], + ["partial", l], + ["partialRight", 64], + ["rearg", 256] + ], + f = "[object Arguments]", + g = "[object Array]", + b = "[object Boolean]", + y = "[object Date]", + v = "[object Error]", + k = "[object Function]", + _ = "[object GeneratorFunction]", + w = "[object Map]", + S = "[object Number]", + E = "[object Object]", + x = "[object Promise]", + C = "[object RegExp]", + A = "[object Set]", + T = "[object String]", + D = "[object Symbol]", + P = "[object WeakMap]", + j = "[object ArrayBuffer]", + M = "[object DataView]", + I = "[object Float32Array]", + O = "[object Float64Array]", + N = "[object Int8Array]", + R = "[object Int16Array]", + z = "[object Int32Array]", + L = "[object Uint8Array]", + F = "[object Uint8ClampedArray]", + q = "[object Uint16Array]", + B = "[object Uint32Array]", + U = /\b__p \+= '';/g, + H = /\b(__p \+=) '' \+/g, + V = /(__e\(.*?\)|\b__t\)) \+\n'';/g, + W = /&(?:amp|lt|gt|quot|#39);/g, + Y = /[&<>"']/g, + G = RegExp(W.source), + K = RegExp(Y.source), + $ = /<%-([\s\S]+?)%>/g, + J = /<%([\s\S]+?)%>/g, + Z = /<%=([\s\S]+?)%>/g, + Q = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + X = /^\w*$/, + ee = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, + te = /[\\^$.*+?()[\]{}|]/g, + ne = RegExp(te.source), + ae = /^\s+/, + re = /\s/, + ie = /\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/, + oe = /\{\n\/\* \[wrapped with (.+)\] \*/, + se = /,? & /, + le = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g, + ce = /[()=,{}\[\]\/\s]/, + ue = /\\(\\)?/g, + de = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g, + pe = /\w*$/, + he = /^[-+]0x[0-9a-f]+$/i, + me = /^0b[01]+$/i, + fe = /^\[object .+?Constructor\]$/, + ge = /^0o[0-7]+$/i, + be = /^(?:0|[1-9]\d*)$/, + ye = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g, + ve = /($^)/, + ke = /['\n\r\u2028\u2029\\]/g, + _e = "\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff", + we = "a-z\\xdf-\\xf6\\xf8-\\xff", + Se = "A-Z\\xc0-\\xd6\\xd8-\\xde", + Ee = "\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", + xe = "[" + Ee + "]", + Ce = "[" + _e + "]", + Ae = "\\d+", + Te = "[" + we + "]", + De = "[^\\ud800-\\udfff" + Ee + Ae + "\\u2700-\\u27bf" + we + Se + "]", + Pe = "\\ud83c[\\udffb-\\udfff]", + je = "[^\\ud800-\\udfff]", + Me = "(?:\\ud83c[\\udde6-\\uddff]){2}", + Ie = "[\\ud800-\\udbff][\\udc00-\\udfff]", + Oe = "[" + Se + "]", + Ne = "(?:" + Te + "|" + De + ")", + Re = "(?:" + Oe + "|" + De + ")", + ze = "(?:['’](?:d|ll|m|re|s|t|ve))?", + Le = "(?:['’](?:D|LL|M|RE|S|T|VE))?", + Fe = "(?:" + Ce + "|" + Pe + ")?", + qe = "[\\ufe0e\\ufe0f]?", + Be = qe + Fe + "(?:\\u200d(?:" + [je, Me, Ie].join("|") + ")" + qe + Fe + ")*", + Ue = "(?:" + ["[\\u2700-\\u27bf]", Me, Ie].join("|") + ")" + Be, + He = "(?:" + [je + Ce + "?", Ce, Me, Ie, "[\\ud800-\\udfff]"].join("|") + ")", + Ve = RegExp("['’]", "g"), + We = RegExp(Ce, "g"), + Ye = RegExp(Pe + "(?=" + Pe + ")|" + He + Be, "g"), + Ge = RegExp([Oe + "?" + Te + "+" + ze + "(?=" + [xe, Oe, "$"].join("|") + ")", Re + "+" + Le + "(?=" + [xe, Oe + Ne, "$"].join("|") + ")", Oe + "?" + Ne + "+" + ze, Oe + "+" + Le, "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", Ae, Ue].join("|"), "g"), + Ke = RegExp("[\\u200d\\ud800-\\udfff" + _e + "\\ufe0e\\ufe0f]"), + $e = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/, + Je = ["Array", "Buffer", "DataView", "Date", "Error", "Float32Array", "Float64Array", "Function", "Int8Array", "Int16Array", "Int32Array", "Map", "Math", "Object", "Promise", "RegExp", "Set", "String", "Symbol", "TypeError", "Uint8Array", "Uint8ClampedArray", "Uint16Array", "Uint32Array", "WeakMap", "_", "clearTimeout", "isFinite", "parseInt", "setTimeout"], + Ze = -1, + Qe = {}; + Qe[I] = Qe[O] = Qe[N] = Qe[R] = Qe[z] = Qe[L] = Qe[F] = Qe[q] = Qe[B] = !0, Qe[f] = Qe[g] = Qe[j] = Qe[b] = Qe[M] = Qe[y] = Qe[v] = Qe[k] = Qe[w] = Qe[S] = Qe[E] = Qe[C] = Qe[A] = Qe[T] = Qe[P] = !1; + var Xe = {}; + Xe[f] = Xe[g] = Xe[j] = Xe[M] = Xe[b] = Xe[y] = Xe[I] = Xe[O] = Xe[N] = Xe[R] = Xe[z] = Xe[w] = Xe[S] = Xe[E] = Xe[C] = Xe[A] = Xe[T] = Xe[D] = Xe[L] = Xe[F] = Xe[q] = Xe[B] = !0, Xe[v] = Xe[k] = Xe[P] = !1; + var et = { + "\\": "\\", + "'": "'", + "\n": "n", + "\r": "r", + "\u2028": "u2028", + "\u2029": "u2029" + }, + tt = parseFloat, + nt = parseInt, + at = "object" == typeof n.g && n.g && n.g.Object === Object && n.g, + rt = "object" == typeof self && self && self.Object === Object && self, + it = at || rt || Function("return this")(), + ot = t && !t.nodeType && t, + st = ot && e && !e.nodeType && e, + lt = st && st.exports === ot, + ct = lt && at.process, + ut = function() { + try { + return st && st.require && st.require("util").types || ct && ct.binding && ct.binding("util") + } catch (e) {} + }(), + dt = ut && ut.isArrayBuffer, + pt = ut && ut.isDate, + ht = ut && ut.isMap, + mt = ut && ut.isRegExp, + ft = ut && ut.isSet, + gt = ut && ut.isTypedArray; + + function bt(e, t, n) { + switch (n.length) { + case 0: + return e.call(t); + case 1: + return e.call(t, n[0]); + case 2: + return e.call(t, n[0], n[1]); + case 3: + return e.call(t, n[0], n[1], n[2]) + } + return e.apply(t, n) + } - function Ka(e, t) { - return Di(Ei(e, t, rl), e + "") - } + function yt(e, t, n, a) { + for (var r = -1, i = null == e ? 0 : e.length; ++r < i;) { + var o = e[r]; + t(a, o, n(o), e) + } + return a + } - function $a(e) { - return Jn(Bs(e)) - } + function vt(e, t) { + for (var n = -1, a = null == e ? 0 : e.length; ++n < a && !1 !== t(e[n], n, e);); + return e + } - function Ja(e, t) { - var n = Bs(e); - return Mi(n, oa(t, 0, n.length)) - } + function kt(e, t) { + for (var n = null == e ? 0 : e.length; n-- && !1 !== t(e[n], n, e);); + return e + } - function Za(e, t, n, a) { - if (!ts(e)) return e; - for (var i = -1, o = (t = br(t, e)).length, s = o - 1, l = e; null != l && ++i < o;) { - var c = Ri(t[i]), - u = n; - if ("__proto__" === c || "constructor" === c || "prototype" === c) return e; - if (i != s) { - var d = l[c]; - (u = a ? a(d, c, l) : r) === r && (u = ts(d) ? d : gi(t[i + 1]) ? [] : {}) - } - ea(l, c, u), l = l[c] - } - return e - } - var Qa = Pn ? function(e, t) { - return Pn.set(e, t), e - } : rl, - Xa = ct ? function(e, t) { - return ct(e, "toString", { - configurable: !0, - enumerable: !1, - value: tl(t), - writable: !0 - }) - } : rl; + function _t(e, t) { + for (var n = -1, a = null == e ? 0 : e.length; ++n < a;) + if (!t(e[n], n, e)) return !1; + return !0 + } - function er(e) { - return Mi(Bs(e)) - } + function wt(e, t) { + for (var n = -1, a = null == e ? 0 : e.length, r = 0, i = []; ++n < a;) { + var o = e[n]; + t(o, n, e) && (i[r++] = o) + } + return i + } - function tr(e, t, n) { - var r = -1, - i = e.length; - t < 0 && (t = -t > i ? 0 : i + t), (n = n > i ? i : n) < 0 && (n += i), i = t > n ? 0 : n - t >>> 0, t >>>= 0; - for (var o = a(i); ++r < i;) o[r] = e[r + t]; - return o - } + function St(e, t) { + return !(null == e || !e.length) && It(e, t, 0) > -1 + } - function nr(e, t) { - var n; - return da(e, (function(e, a, r) { - return !(n = t(e, a, r)) - })), !!n - } - - function ar(e, t, n) { - var a = 0, - r = null == e ? a : e.length; - if ("number" == typeof t && t == t && r <= 2147483647) { - for (; a < r;) { - var i = a + r >>> 1, - o = e[i]; - null !== o && !cs(o) && (n ? o <= t : o < t) ? a = i + 1 : r = i - } - return r - } - return rr(e, t, rl, n) - } - - function rr(e, t, n, a) { - var i = 0, - o = null == e ? 0 : e.length; - if (0 === o) return 0; - for (var s = (t = n(t)) != t, l = null === t, c = cs(t), u = t === r; i < o;) { - var d = dn((i + o) / 2), - p = n(e[d]), - h = p !== r, - m = null === p, - f = p == p, - g = cs(p); - if (s) var b = a || f; - else b = u ? f && (a || h) : l ? f && h && (a || !m) : c ? f && h && !m && (a || !g) : !m && !g && (a ? p <= t : p < t); - b ? i = d + 1 : o = d - } - return yn(o, 4294967294) - } + function Et(e, t, n) { + for (var a = -1, r = null == e ? 0 : e.length; ++a < r;) + if (n(t, e[a])) return !0; + return !1 + } - function ir(e, t) { - for (var n = -1, a = e.length, r = 0, i = []; ++n < a;) { - var o = e[n], - s = t ? t(o) : o; - if (!n || !Bo(s, l)) { - var l = s; - i[r++] = 0 === o ? 0 : o - } - } - return i - } + function xt(e, t) { + for (var n = -1, a = null == e ? 0 : e.length, r = Array(a); ++n < a;) r[n] = t(e[n], n, e); + return r + } - function or(e) { - return "number" == typeof e ? e : cs(e) ? p : +e - } + function Ct(e, t) { + for (var n = -1, a = t.length, r = e.length; ++n < a;) e[r + n] = t[n]; + return e + } - function sr(e) { - if ("string" == typeof e) return e; - if (Wo(e)) return xt(e, sr) + ""; - if (cs(e)) return Ln ? Ln.call(e) : ""; - var t = e + ""; - return "0" == t && 1 / e == -1 / 0 ? "-0" : t - } + function At(e, t, n, a) { + var r = -1, + i = null == e ? 0 : e.length; + for (a && i && (n = e[++r]); ++r < i;) n = t(n, e[r], r, e); + return n + } - function lr(e, t, n) { - var a = -1, - r = St, - i = e.length, - o = !0, - s = [], - l = s; - if (n) o = !1, r = Et; - else if (i >= 200) { - var c = t ? null : Gr(e); - if (c) return nn(c); - o = !1, r = Wt, l = new Gn - } else l = t ? [] : s; - e: for (; ++a < i;) { - var u = e[a], - d = t ? t(u) : u; - if (u = n || 0 !== u ? u : 0, o && d == d) { - for (var p = l.length; p--;) - if (l[p] === d) continue e; - t && l.push(d), s.push(u) - } else r(l, d, n) || (l !== s && l.push(d), s.push(u)) - } - return s - } + function Tt(e, t, n, a) { + var r = null == e ? 0 : e.length; + for (a && r && (n = e[--r]); r--;) n = t(n, e[r], r, e); + return n + } - function cr(e, t) { - return null == (e = xi(e, t = br(t, e))) || delete e[Ri(Ji(t))] - } + function Dt(e, t) { + for (var n = -1, a = null == e ? 0 : e.length; ++n < a;) + if (t(e[n], n, e)) return !0; + return !1 + } + var Pt = zt("length"); - function ur(e, t, n, a) { - return Za(e, t, n(wa(e, t)), a) - } + function jt(e, t, n) { + var a; + return n(e, (function(e, n, r) { + if (t(e, n, r)) return a = n, !1 + })), a + } - function dr(e, t, n, a) { - for (var r = e.length, i = a ? r : -1; - (a ? i-- : ++i < r) && t(e[i], i, e);); - return n ? tr(e, a ? 0 : i, a ? i + 1 : r) : tr(e, a ? i + 1 : 0, a ? r : i) - } + function Mt(e, t, n, a) { + for (var r = e.length, i = n + (a ? 1 : -1); a ? i-- : ++i < r;) + if (t(e[i], i, e)) return i; + return -1 + } - function pr(e, t) { - var n = e; - return n instanceof Hn && (n = n.value()), At(t, (function(e, t) { - return t.func.apply(t.thisArg, Ct([e], t.args)) - }), n) - } + function It(e, t, n) { + return t == t ? function(e, t, n) { + for (var a = n - 1, r = e.length; ++a < r;) + if (e[a] === t) return a; + return -1 + }(e, t, n) : Mt(e, Nt, n) + } - function hr(e, t, n) { - var r = e.length; - if (r < 2) return r ? lr(e[0]) : []; - for (var i = -1, o = a(r); ++i < r;) - for (var s = e[i], l = -1; ++l < r;) l != i && (o[i] = ua(o[i] || s, e[l], t, n)); - return lr(ga(o, 1), t, n) - } + function Ot(e, t, n, a) { + for (var r = n - 1, i = e.length; ++r < i;) + if (a(e[r], t)) return r; + return -1 + } - function mr(e, t, n) { - for (var a = -1, i = e.length, o = t.length, s = {}; ++a < i;) { - var l = a < o ? t[a] : r; - n(s, e[a], l) - } - return s - } + function Nt(e) { + return e != e + } - function fr(e) { - return Ko(e) ? e : [] - } + function Rt(e, t) { + var n = null == e ? 0 : e.length; + return n ? qt(e, t) / n : p + } - function gr(e) { - return "function" == typeof e ? e : rl - } + function zt(e) { + return function(t) { + return null == t ? r : t[e] + } + } - function br(e, t) { - return Wo(e) ? e : yi(e, t) ? [e] : zi(vs(e)) - } - var yr = Ka; + function Lt(e) { + return function(t) { + return null == e ? r : e[t] + } + } - function vr(e, t, n) { - var a = e.length; - return n = n === r ? a : n, !t && n >= a ? e : tr(e, t, n) - } - var kr = ut || function(e) { - return it.clearTimeout(e) - }; + function Ft(e, t, n, a, r) { + return r(e, (function(e, r, i) { + n = a ? (a = !1, e) : t(n, e, r, i) + })), n + } - function _r(e, t) { - if (t) return e.slice(); - var n = e.length, - a = He ? He(n) : new e.constructor(n); - return e.copy(a), a - } + function qt(e, t) { + for (var n, a = -1, i = e.length; ++a < i;) { + var o = t(e[a]); + o !== r && (n = n === r ? o : n + o) + } + return n + } - function wr(e) { - var t = new e.constructor(e.byteLength); - return new Ue(t).set(new Ue(e)), t - } + function Bt(e, t) { + for (var n = -1, a = Array(e); ++n < e;) a[n] = t(n); + return a + } - function Sr(e, t) { - var n = t ? wr(e.buffer) : e.buffer; - return new e.constructor(n, e.byteOffset, e.length) - } + function Ut(e) { + return e ? e.slice(0, sn(e) + 1).replace(ae, "") : e + } - function Er(e, t) { - if (e !== t) { - var n = e !== r, - a = null === e, - i = e == e, - o = cs(e), - s = t !== r, - l = null === t, - c = t == t, - u = cs(t); - if (!l && !u && !o && e > t || o && s && c && !l && !u || a && s && c || !n && c || !i) return 1; - if (!a && !o && !u && e < t || u && n && i && !a && !o || l && n && i || !s && i || !c) return -1 - } - return 0 - } + function Ht(e) { + return function(t) { + return e(t) + } + } - function xr(e, t, n, r) { - for (var i = -1, o = e.length, s = n.length, l = -1, c = t.length, u = bn(o - s, 0), d = a(c + u), p = !r; ++l < c;) d[l] = t[l]; - for (; ++i < s;)(p || i < o) && (d[n[i]] = e[i]); - for (; u--;) d[l++] = e[i++]; - return d - } + function Vt(e, t) { + return xt(t, (function(t) { + return e[t] + })) + } - function Cr(e, t, n, r) { - for (var i = -1, o = e.length, s = -1, l = n.length, c = -1, u = t.length, d = bn(o - l, 0), p = a(d + u), h = !r; ++i < d;) p[i] = e[i]; - for (var m = i; ++c < u;) p[m + c] = t[c]; - for (; ++s < l;)(h || i < o) && (p[m + n[s]] = e[i++]); - return p - } + function Wt(e, t) { + return e.has(t) + } - function Ar(e, t) { - var n = -1, - r = e.length; - for (t || (t = a(r)); ++n < r;) t[n] = e[n]; - return t - } + function Yt(e, t) { + for (var n = -1, a = e.length; ++n < a && It(t, e[n], 0) > -1;); + return n + } - function jr(e, t, n, a) { - var i = !n; - n || (n = {}); - for (var o = -1, s = t.length; ++o < s;) { - var l = t[o], - c = a ? a(n[l], e[l], l, n, e) : r; - c === r && (c = e[l]), i ? ra(n, l, c) : ea(n, l, c) - } - return n - } + function Gt(e, t) { + for (var n = e.length; n-- && It(t, e[n], 0) > -1;); + return n + } - function Pr(e, t) { - return function(n, a) { - var r = Wo(n) ? yt : na, - i = t ? t() : {}; - return r(n, e, oi(a, 2), i) - } - } + function Kt(e, t) { + for (var n = e.length, a = 0; n--;) e[n] === t && ++a; + return a + } + var $t = Lt({ + À: "A", + Á: "A", + Â: "A", + Ã: "A", + Ä: "A", + Å: "A", + à: "a", + á: "a", + â: "a", + ã: "a", + ä: "a", + å: "a", + Ç: "C", + ç: "c", + Ð: "D", + ð: "d", + È: "E", + É: "E", + Ê: "E", + Ë: "E", + è: "e", + é: "e", + ê: "e", + ë: "e", + Ì: "I", + Í: "I", + Î: "I", + Ï: "I", + ì: "i", + í: "i", + î: "i", + ï: "i", + Ñ: "N", + ñ: "n", + Ò: "O", + Ó: "O", + Ô: "O", + Õ: "O", + Ö: "O", + Ø: "O", + ò: "o", + ó: "o", + ô: "o", + õ: "o", + ö: "o", + ø: "o", + Ù: "U", + Ú: "U", + Û: "U", + Ü: "U", + ù: "u", + ú: "u", + û: "u", + ü: "u", + Ý: "Y", + ý: "y", + ÿ: "y", + Æ: "Ae", + æ: "ae", + Þ: "Th", + þ: "th", + ß: "ss", + Ā: "A", + Ă: "A", + Ą: "A", + ā: "a", + ă: "a", + ą: "a", + Ć: "C", + Ĉ: "C", + Ċ: "C", + Č: "C", + ć: "c", + ĉ: "c", + ċ: "c", + č: "c", + Ď: "D", + Đ: "D", + ď: "d", + đ: "d", + Ē: "E", + Ĕ: "E", + Ė: "E", + Ę: "E", + Ě: "E", + ē: "e", + ĕ: "e", + ė: "e", + ę: "e", + ě: "e", + Ĝ: "G", + Ğ: "G", + Ġ: "G", + Ģ: "G", + ĝ: "g", + ğ: "g", + ġ: "g", + ģ: "g", + Ĥ: "H", + Ħ: "H", + ĥ: "h", + ħ: "h", + Ĩ: "I", + Ī: "I", + Ĭ: "I", + Į: "I", + İ: "I", + ĩ: "i", + ī: "i", + ĭ: "i", + į: "i", + ı: "i", + Ĵ: "J", + ĵ: "j", + Ķ: "K", + ķ: "k", + ĸ: "k", + Ĺ: "L", + Ļ: "L", + Ľ: "L", + Ŀ: "L", + Ł: "L", + ĺ: "l", + ļ: "l", + ľ: "l", + ŀ: "l", + ł: "l", + Ń: "N", + Ņ: "N", + Ň: "N", + Ŋ: "N", + ń: "n", + ņ: "n", + ň: "n", + ŋ: "n", + Ō: "O", + Ŏ: "O", + Ő: "O", + ō: "o", + ŏ: "o", + ő: "o", + Ŕ: "R", + Ŗ: "R", + Ř: "R", + ŕ: "r", + ŗ: "r", + ř: "r", + Ś: "S", + Ŝ: "S", + Ş: "S", + Š: "S", + ś: "s", + ŝ: "s", + ş: "s", + š: "s", + Ţ: "T", + Ť: "T", + Ŧ: "T", + ţ: "t", + ť: "t", + ŧ: "t", + Ũ: "U", + Ū: "U", + Ŭ: "U", + Ů: "U", + Ű: "U", + Ų: "U", + ũ: "u", + ū: "u", + ŭ: "u", + ů: "u", + ű: "u", + ų: "u", + Ŵ: "W", + ŵ: "w", + Ŷ: "Y", + ŷ: "y", + Ÿ: "Y", + Ź: "Z", + Ż: "Z", + Ž: "Z", + ź: "z", + ż: "z", + ž: "z", + IJ: "IJ", + ij: "ij", + Œ: "Oe", + œ: "oe", + ʼn: "'n", + ſ: "s" + }), + Jt = Lt({ + "&": "&", + "<": "<", + ">": ">", + '"': """, + "'": "'" + }); - function Dr(e) { - return Ka((function(t, n) { - var a = -1, - i = n.length, - o = i > 1 ? n[i - 1] : r, - s = i > 2 ? n[2] : r; - for (o = e.length > 3 && "function" == typeof o ? (i--, o) : r, s && bi(n[0], n[1], s) && (o = i < 3 ? r : o, i = 1), t = Ee(t); ++a < i;) { - var l = n[a]; - l && e(t, l, a, o) - } - return t - })) - } + function Zt(e) { + return "\\" + et[e] + } - function Tr(e, t) { - return function(n, a) { - if (null == n) return n; - if (!Go(n)) return e(n, a); - for (var r = n.length, i = t ? r : -1, o = Ee(n); - (t ? i-- : ++i < r) && !1 !== a(o[i], i, o);); - return n - } - } + function Qt(e) { + return Ke.test(e) + } - function Or(e) { - return function(t, n, a) { - for (var r = -1, i = Ee(t), o = a(t), s = o.length; s--;) { - var l = o[e ? s : ++r]; - if (!1 === n(i[l], l, i)) break - } - return t - } - } + function Xt(e) { + var t = -1, + n = Array(e.size); + return e.forEach((function(e, a) { + n[++t] = [a, e] + })), n + } - function Mr(e) { - return function(t) { - var n = Qt(t = vs(t)) ? on(t) : r, - a = n ? n[0] : t.charAt(0), - i = n ? vr(n, 1).join("") : t.slice(1); - return a[e]() + i - } - } + function en(e, t) { + return function(n) { + return e(t(n)) + } + } - function Ir(e) { - return function(t) { - return At(Qs(Vs(t).replace(Ve, "")), e, "") - } - } + function tn(e, t) { + for (var n = -1, a = e.length, r = 0, i = []; ++n < a;) { + var o = e[n]; + o !== t && o !== s || (e[n] = s, i[r++] = n) + } + return i + } - function Nr(e) { - return function() { - var t = arguments; - switch (t.length) { - case 0: - return new e; - case 1: - return new e(t[0]); - case 2: - return new e(t[0], t[1]); - case 3: - return new e(t[0], t[1], t[2]); - case 4: - return new e(t[0], t[1], t[2], t[3]); - case 5: - return new e(t[0], t[1], t[2], t[3], t[4]); - case 6: - return new e(t[0], t[1], t[2], t[3], t[4], t[5]); - case 7: - return new e(t[0], t[1], t[2], t[3], t[4], t[5], t[6]) - } - var n = qn(e.prototype), - a = e.apply(n, t); - return ts(a) ? a : n - } - } + function nn(e) { + var t = -1, + n = Array(e.size); + return e.forEach((function(e) { + n[++t] = e + })), n + } - function zr(e) { - return function(t, n, a) { - var i = Ee(t); - if (!Go(t)) { - var o = oi(n, 3); - t = Os(t), n = function(e) { - return o(i[e], e, i) - } - } - var s = e(t, n, a); - return s > -1 ? i[o ? t[s] : s] : r - } - } + function an(e) { + var t = -1, + n = Array(e.size); + return e.forEach((function(e) { + n[++t] = [e, e] + })), n + } - function Rr(e) { - return ei((function(t) { - var n = t.length, - a = n, - o = Un.prototype.thru; - for (e && t.reverse(); a--;) { - var s = t[a]; - if ("function" != typeof s) throw new Ae(i); - if (o && !l && "wrapper" == ri(s)) var l = new Un([], !0) - } - for (a = l ? a : n; ++a < n;) { - var c = ri(s = t[a]), - u = "wrapper" == c ? ai(s) : r; - l = u && vi(u[0]) && 424 == u[1] && !u[4].length && 1 == u[9] ? l[ri(u[0])].apply(l, u[3]) : 1 == s.length && vi(s) ? l[c]() : l.thru(s) - } - return function() { - var e = arguments, - a = e[0]; - if (l && 1 == e.length && Wo(a)) return l.plant(a).value(); - for (var r = 0, i = n ? t[r].apply(this, e) : a; ++r < n;) i = t[r].call(this, i); - return i - } - })) - } + function rn(e) { + return Qt(e) ? function(e) { + for (var t = Ye.lastIndex = 0; Ye.test(e);) ++t; + return t + }(e) : Pt(e) + } - function Lr(e, t, n, i, o, s, l, u, d, p) { - var h = t & c, - m = 1 & t, - f = 2 & t, - g = 24 & t, - b = 512 & t, - y = f ? r : Nr(e); - return function r() { - for (var c = arguments.length, v = a(c), k = c; k--;) v[k] = arguments[k]; - if (g) var _ = ii(r), - w = Kt(v, _); - if (i && (v = xr(v, i, o, g)), s && (v = Cr(v, s, l, g)), c -= w, g && c < p) { - var S = tn(v, _); - return Wr(e, t, Lr, r.placeholder, n, v, S, u, d, p - c) - } - var E = m ? n : this, - x = f ? E[e] : e; - return c = v.length, u ? v = Ci(v, u) : b && c > 1 && v.reverse(), h && d < c && (v.length = d), this && this !== it && this instanceof r && (x = y || Nr(x)), x.apply(E, v) - } - } + function on(e) { + return Qt(e) ? function(e) { + return e.match(Ye) || [] + }(e) : function(e) { + return e.split("") + }(e) + } - function Fr(e, t) { - return function(n, a) { - return function(e, t, n, a) { - return va(e, (function(e, r, i) { - t(a, n(e), r, i) - })), a - }(n, e, t(a), {}) - } + function sn(e) { + for (var t = e.length; t-- && re.test(e.charAt(t));); + return t + } + var ln = Lt({ + "&": "&", + "<": "<", + ">": ">", + """: '"', + "'": "'" + }), + cn = function e(t) { + var n, a = (t = null == t ? it : cn.defaults(it.Object(), t, cn.pick(it, Je))).Array, + re = t.Date, + _e = t.Error, + we = t.Function, + Se = t.Math, + Ee = t.Object, + xe = t.RegExp, + Ce = t.String, + Ae = t.TypeError, + Te = a.prototype, + De = we.prototype, + Pe = Ee.prototype, + je = t["__core-js_shared__"], + Me = De.toString, + Ie = Pe.hasOwnProperty, + Oe = 0, + Ne = (n = /[^.]+$/.exec(je && je.keys && je.keys.IE_PROTO || "")) ? "Symbol(src)_1." + n : "", + Re = Pe.toString, + ze = Me.call(Ee), + Le = it._, + Fe = xe("^" + Me.call(Ie).replace(te, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"), + qe = lt ? t.Buffer : r, + Be = t.Symbol, + Ue = t.Uint8Array, + He = qe ? qe.allocUnsafe : r, + Ye = en(Ee.getPrototypeOf, Ee), + Ke = Ee.create, + et = Pe.propertyIsEnumerable, + at = Te.splice, + rt = Be ? Be.isConcatSpreadable : r, + ot = Be ? Be.iterator : r, + st = Be ? Be.toStringTag : r, + ct = function() { + try { + var e = ci(Ee, "defineProperty"); + return e({}, "", {}), e + } catch (e) {} + }(), + ut = t.clearTimeout !== it.clearTimeout && t.clearTimeout, + Pt = re && re.now !== it.Date.now && re.now, + Lt = t.setTimeout !== it.setTimeout && t.setTimeout, + un = Se.ceil, + dn = Se.floor, + pn = Ee.getOwnPropertySymbols, + hn = qe ? qe.isBuffer : r, + mn = t.isFinite, + fn = Te.join, + gn = en(Ee.keys, Ee), + bn = Se.max, + yn = Se.min, + vn = re.now, + kn = t.parseInt, + _n = Se.random, + wn = Te.reverse, + Sn = ci(t, "DataView"), + En = ci(t, "Map"), + xn = ci(t, "Promise"), + Cn = ci(t, "Set"), + An = ci(t, "WeakMap"), + Tn = ci(Ee, "create"), + Dn = An && new An, + Pn = {}, + jn = Li(Sn), + Mn = Li(En), + In = Li(xn), + On = Li(Cn), + Nn = Li(An), + Rn = Be ? Be.prototype : r, + zn = Rn ? Rn.valueOf : r, + Ln = Rn ? Rn.toString : r; + + function Fn(e) { + if (ns(e) && !Wo(e) && !(e instanceof Hn)) { + if (e instanceof Un) return e; + if (Ie.call(e, "__wrapped__")) return Fi(e) + } + return new Un(e) + } + var qn = function() { + function e() {} + return function(t) { + if (!ts(t)) return {}; + if (Ke) return Ke(t); + e.prototype = t; + var n = new e; + return e.prototype = r, n } + }(); - function qr(e, t) { - return function(n, a) { - var i; - if (n === r && a === r) return t; - if (n !== r && (i = n), a !== r) { - if (i === r) return a; - "string" == typeof n || "string" == typeof a ? (n = sr(n), a = sr(a)) : (n = or(n), a = or(a)), i = e(n, a) - } - return i - } - } + function Bn() {} - function Br(e) { - return ei((function(t) { - return t = xt(t, Ht(oi())), Ka((function(n) { - var a = this; - return e(t, (function(e) { - return bt(e, a, n) - })) - })) - })) - } + function Un(e, t) { + this.__wrapped__ = e, this.__actions__ = [], this.__chain__ = !!t, this.__index__ = 0, this.__values__ = r + } - function Ur(e, t) { - var n = (t = t === r ? " " : sr(t)).length; - if (n < 2) return n ? Ga(t, e) : t; - var a = Ga(t, un(e / rn(t))); - return Qt(t) ? vr(on(a), 0, e).join("") : a.slice(0, e) - } + function Hn(e) { + this.__wrapped__ = e, this.__actions__ = [], this.__dir__ = 1, this.__filtered__ = !1, this.__iteratees__ = [], this.__takeCount__ = h, this.__views__ = [] + } - function Hr(e) { - return function(t, n, i) { - return i && "number" != typeof i && bi(t, n, i) && (n = i = r), t = ms(t), n === r ? (n = t, t = 0) : n = ms(n), - function(e, t, n, r) { - for (var i = -1, o = bn(un((t - e) / (n || 1)), 0), s = a(o); o--;) s[r ? o : ++i] = e, e += n; - return s - }(t, n, i = i === r ? t < n ? 1 : -1 : ms(i), e) - } + function Vn(e) { + var t = -1, + n = null == e ? 0 : e.length; + for (this.clear(); ++t < n;) { + var a = e[t]; + this.set(a[0], a[1]) } + } - function Vr(e) { - return function(t, n) { - return "string" == typeof t && "string" == typeof n || (t = bs(t), n = bs(n)), e(t, n) - } + function Wn(e) { + var t = -1, + n = null == e ? 0 : e.length; + for (this.clear(); ++t < n;) { + var a = e[t]; + this.set(a[0], a[1]) } + } - function Wr(e, t, n, a, i, o, s, c, u, d) { - var p = 8 & t; - t |= p ? l : 64, 4 & (t &= ~(p ? 64 : l)) || (t &= -4); - var h = [e, t, i, p ? o : r, p ? s : r, p ? r : o, p ? r : s, c, u, d], - m = n.apply(r, h); - return vi(e) && ji(m, h), m.placeholder = a, Ti(m, e, t) + function Yn(e) { + var t = -1, + n = null == e ? 0 : e.length; + for (this.clear(); ++t < n;) { + var a = e[t]; + this.set(a[0], a[1]) } + } - function Yr(e) { - var t = Se[e]; - return function(e, n) { - if (e = bs(e), (n = null == n ? 0 : yn(fs(n), 292)) && mn(e)) { - var a = (vs(e) + "e").split("e"); - return +((a = (vs(t(a[0] + "e" + (+a[1] + n))) + "e").split("e"))[0] + "e" + (+a[1] - n)) - } - return t(e) - } - } - var Gr = Cn && 1 / nn(new Cn([, -0]))[1] == u ? function(e) { - return new Cn(e) - } : cl; + function Gn(e) { + var t = -1, + n = null == e ? 0 : e.length; + for (this.__data__ = new Yn; ++t < n;) this.add(e[t]) + } - function Kr(e) { - return function(t) { - var n = pi(t); - return n == w ? Xt(t) : n == A ? an(t) : function(e, t) { - return xt(t, (function(t) { - return [t, e[t]] - })) - }(t, e(t)) - } - } + function Kn(e) { + var t = this.__data__ = new Wn(e); + this.size = t.size + } - function $r(e, t, n, o, u, d, p, h) { - var m = 2 & t; - if (!m && "function" != typeof e) throw new Ae(i); - var f = o ? o.length : 0; - if (f || (t &= -97, o = u = r), p = p === r ? p : bn(fs(p), 0), h = h === r ? h : fs(h), f -= u ? u.length : 0, 64 & t) { - var g = o, - b = u; - o = u = r - } - var y = m ? r : ai(e), - v = [e, t, n, o, u, g, b, d, p, h]; - if (y && function(e, t) { - var n = e[1], - a = t[1], - r = n | a, - i = r < 131, - o = a == c && 8 == n || a == c && 256 == n && e[7].length <= t[8] || 384 == a && t[7].length <= t[8] && 8 == n; - if (!i && !o) return e; - 1 & a && (e[2] = t[2], r |= 1 & n ? 0 : 4); - var l = t[3]; - if (l) { - var u = e[3]; - e[3] = u ? xr(u, l, t[4]) : l, e[4] = u ? tn(e[3], s) : t[4] - }(l = t[5]) && (u = e[5], e[5] = u ? Cr(u, l, t[6]) : l, e[6] = u ? tn(e[5], s) : t[6]), (l = t[7]) && (e[7] = l), a & c && (e[8] = null == e[8] ? t[8] : yn(e[8], t[8])), null == e[9] && (e[9] = t[9]), e[0] = t[0], e[1] = r - }(v, y), e = v[0], t = v[1], n = v[2], o = v[3], u = v[4], !(h = v[9] = v[9] === r ? m ? 0 : e.length : bn(v[9] - f, 0)) && 24 & t && (t &= -25), t && 1 != t) k = 8 == t || 16 == t ? function(e, t, n) { - var i = Nr(e); - return function o() { - for (var s = arguments.length, l = a(s), c = s, u = ii(o); c--;) l[c] = arguments[c]; - var d = s < 3 && l[0] !== u && l[s - 1] !== u ? [] : tn(l, u); - return (s -= d.length) < n ? Wr(e, t, Lr, o.placeholder, r, l, d, r, r, n - s) : bt(this && this !== it && this instanceof o ? i : e, this, l) - } - }(e, t, h) : t != l && 33 != t || u.length ? Lr.apply(r, v) : function(e, t, n, r) { - var i = 1 & t, - o = Nr(e); - return function t() { - for (var s = -1, l = arguments.length, c = -1, u = r.length, d = a(u + l), p = this && this !== it && this instanceof t ? o : e; ++c < u;) d[c] = r[c]; - for (; l--;) d[c++] = arguments[++s]; - return bt(p, i ? n : this, d) - } - }(e, t, n, o); - else var k = function(e, t, n) { - var a = 1 & t, - r = Nr(e); - return function t() { - return (this && this !== it && this instanceof t ? r : e).apply(a ? n : this, arguments) - } - }(e, t, n); - return Ti((y ? Qa : ji)(k, v), e, t) - } + function $n(e, t) { + var n = Wo(e), + a = !n && Vo(e), + r = !n && !a && $o(e), + i = !n && !a && !r && us(e), + o = n || a || r || i, + s = o ? Bt(e.length, Ce) : [], + l = s.length; + for (var c in e) !t && !Ie.call(e, c) || o && ("length" == c || r && ("offset" == c || "parent" == c) || i && ("buffer" == c || "byteLength" == c || "byteOffset" == c) || gi(c, l)) || s.push(c); + return s + } - function Jr(e, t, n, a) { - return e === r || Bo(e, De[n]) && !Me.call(a, n) ? t : e - } + function Jn(e) { + var t = e.length; + return t ? e[Ya(0, t - 1)] : r + } - function Zr(e, t, n, a, i, o) { - return ts(e) && ts(t) && (o.set(t, e), qa(e, t, r, Zr, o), o.delete(t)), e - } + function Zn(e, t) { + return Ii(Ar(e), oa(t, 0, e.length)) + } - function Qr(e) { - return is(e) ? r : e - } + function Qn(e) { + return Ii(Ar(e)) + } - function Xr(e, t, n, a, i, o) { - var s = 1 & n, - l = e.length, - c = t.length; - if (l != c && !(s && c > l)) return !1; - var u = o.get(e), - d = o.get(t); - if (u && d) return u == t && d == e; - var p = -1, - h = !0, - m = 2 & n ? new Gn : r; - for (o.set(e, t), o.set(t, e); ++p < l;) { - var f = e[p], - g = t[p]; - if (a) var b = s ? a(g, f, p, t, e, o) : a(f, g, p, e, t, o); - if (b !== r) { - if (b) continue; - h = !1; - break - } - if (m) { - if (!Pt(t, (function(e, t) { - if (!Wt(m, t) && (f === e || i(f, e, n, a, o))) return m.push(t) - }))) { - h = !1; - break - } - } else if (f !== g && !i(f, g, n, a, o)) { - h = !1; - break - } - } - return o.delete(e), o.delete(t), h - } + function Xn(e, t, n) { + (n !== r && !Bo(e[t], n) || n === r && !(t in e)) && ra(e, t, n) + } - function ei(e) { - return Di(Ei(e, r, Wi), e + "") - } + function ea(e, t, n) { + var a = e[t]; + Ie.call(e, t) && Bo(a, n) && (n !== r || t in e) || ra(e, t, n) + } - function ti(e) { - return Sa(e, Os, ui) - } + function ta(e, t) { + for (var n = e.length; n--;) + if (Bo(e[n][0], t)) return n; + return -1 + } - function ni(e) { - return Sa(e, Ms, di) - } - var ai = Pn ? function(e) { - return Pn.get(e) - } : cl; + function na(e, t, n, a) { + return da(e, (function(e, r, i) { + t(a, e, n(e), i) + })), a + } - function ri(e) { - for (var t = e.name + "", n = Dn[t], a = Me.call(Dn, t) ? n.length : 0; a--;) { - var r = n[a], - i = r.func; - if (null == i || i == e) return r.name - } - return t - } + function aa(e, t) { + return e && Tr(t, Ms(t), e) + } - function ii(e) { - return (Me.call(Fn, "placeholder") ? Fn : e).placeholder - } + function ra(e, t, n) { + "__proto__" == t && ct ? ct(e, t, { + configurable: !0, + enumerable: !0, + value: n, + writable: !0 + }) : e[t] = n + } - function oi() { - var e = Fn.iteratee || il; - return e = e === il ? Ia : e, arguments.length ? e(arguments[0], arguments[1]) : e - } + function ia(e, t) { + for (var n = -1, i = t.length, o = a(i), s = null == e; ++n < i;) o[n] = s ? r : As(e, t[n]); + return o + } - function si(e, t) { - var n, a, r = e.__data__; - return ("string" == (a = typeof(n = t)) || "number" == a || "symbol" == a || "boolean" == a ? "__proto__" !== n : null === n) ? r["string" == typeof t ? "string" : "hash"] : r.map - } + function oa(e, t, n) { + return e == e && (n !== r && (e = e <= n ? e : n), t !== r && (e = e >= t ? e : t)), e + } - function li(e) { - for (var t = Os(e), n = t.length; n--;) { - var a = t[n], - r = e[a]; - t[n] = [a, r, wi(r)] + function sa(e, t, n, a, i, o) { + var s, l = 1 & t, + c = 2 & t, + u = 4 & t; + if (n && (s = i ? n(e, a, i, o) : n(e)), s !== r) return s; + if (!ts(e)) return e; + var d = Wo(e); + if (d) { + if (s = function(e) { + var t = e.length, + n = new e.constructor(t); + return t && "string" == typeof e[0] && Ie.call(e, "index") && (n.index = e.index, n.input = e.input), n + }(e), !l) return Ar(e, s) + } else { + var p = pi(e), + h = p == k || p == _; + if ($o(e)) return _r(e, l); + if (p == E || p == f || h && !i) { + if (s = c || h ? {} : mi(e), !l) return c ? function(e, t) { + return Tr(e, di(e), t) + }(e, function(e, t) { + return e && Tr(t, Is(t), e) + }(s, e)) : function(e, t) { + return Tr(e, ui(e), t) + }(e, aa(s, e)) + } else { + if (!Xe[p]) return i ? e : {}; + s = function(e, t, n) { + var a, r = e.constructor; + switch (t) { + case j: + return wr(e); + case b: + case y: + return new r(+e); + case M: + return function(e, t) { + var n = t ? wr(e.buffer) : e.buffer; + return new e.constructor(n, e.byteOffset, e.byteLength) + }(e, n); + case I: + case O: + case N: + case R: + case z: + case L: + case F: + case q: + case B: + return Sr(e, n); + case w: + case A: + return new r; + case S: + case T: + return new r(e); + case C: + return function(e) { + var t = new e.constructor(e.source, pe.exec(e)); + return t.lastIndex = e.lastIndex, t + }(e); + case D: + return a = e, zn ? Ee(zn.call(a)) : {} + } + }(e, p, l) } - return t } + o || (o = new Kn); + var m = o.get(e); + if (m) return m; + o.set(e, s), ss(e) ? e.forEach((function(a) { + s.add(sa(a, t, n, a, e, o)) + })) : as(e) && e.forEach((function(a, r) { + s.set(r, sa(a, t, n, r, e, o)) + })); + var g = d ? r : (u ? c ? ni : ti : c ? Is : Ms)(e); + return vt(g || e, (function(a, r) { + g && (a = e[r = a]), ea(s, r, sa(a, t, n, r, e, o)) + })), s + } - function ci(e, t) { - var n = function(e, t) { - return null == e ? r : e[t] - }(e, t); - return Ma(n) ? n : r - } - var ui = pn ? function(e) { - return null == e ? [] : (e = Ee(e), wt(pn(e), (function(t) { - return et.call(e, t) - }))) - } : gl, - di = pn ? function(e) { - for (var t = []; e;) Ct(t, ui(e)), e = Ye(e); - return t - } : gl, - pi = Ea; - - function hi(e, t, n) { - for (var a = -1, r = (t = br(t, e)).length, i = !1; ++a < r;) { - var o = Ri(t[a]); - if (!(i = null != e && n(e, o))) break; - e = e[o] - } - return i || ++a != r ? i : !!(r = null == e ? 0 : e.length) && es(r) && gi(o, r) && (Wo(e) || Vo(e)) + function la(e, t, n) { + var a = n.length; + if (null == e) return !a; + for (e = Ee(e); a--;) { + var i = n[a], + o = t[i], + s = e[i]; + if (s === r && !(i in e) || !o(s)) return !1 } + return !0 + } - function mi(e) { - return "function" != typeof e.constructor || _i(e) ? {} : qn(Ye(e)) - } + function ca(e, t, n) { + if ("function" != typeof e) throw new Ae(i); + return Di((function() { + e.apply(r, n) + }), t) + } - function fi(e) { - return Wo(e) || Vo(e) || !!(rt && e && e[rt]) + function ua(e, t, n, a) { + var r = -1, + i = St, + o = !0, + s = e.length, + l = [], + c = t.length; + if (!s) return l; + n && (t = xt(t, Ht(n))), a ? (i = Et, o = !1) : t.length >= 200 && (i = Wt, o = !1, t = new Gn(t)); + e: for (; ++r < s;) { + var u = e[r], + d = null == n ? u : n(u); + if (u = a || 0 !== u ? u : 0, o && d == d) { + for (var p = c; p--;) + if (t[p] === d) continue e; + l.push(u) + } else i(t, d, a) || l.push(u) } + return l + } + Fn.templateSettings = { + escape: $, + evaluate: J, + interpolate: Z, + variable: "", + imports: { + _: Fn + } + }, Fn.prototype = Bn.prototype, Fn.prototype.constructor = Fn, Un.prototype = qn(Bn.prototype), Un.prototype.constructor = Un, Hn.prototype = qn(Bn.prototype), Hn.prototype.constructor = Hn, Vn.prototype.clear = function() { + this.__data__ = Tn ? Tn(null) : {}, this.size = 0 + }, Vn.prototype.delete = function(e) { + var t = this.has(e) && delete this.__data__[e]; + return this.size -= t ? 1 : 0, t + }, Vn.prototype.get = function(e) { + var t = this.__data__; + if (Tn) { + var n = t[e]; + return n === o ? r : n + } + return Ie.call(t, e) ? t[e] : r + }, Vn.prototype.has = function(e) { + var t = this.__data__; + return Tn ? t[e] !== r : Ie.call(t, e) + }, Vn.prototype.set = function(e, t) { + var n = this.__data__; + return this.size += this.has(e) ? 0 : 1, n[e] = Tn && t === r ? o : t, this + }, Wn.prototype.clear = function() { + this.__data__ = [], this.size = 0 + }, Wn.prototype.delete = function(e) { + var t = this.__data__, + n = ta(t, e); + return !(n < 0 || (n == t.length - 1 ? t.pop() : at.call(t, n, 1), --this.size, 0)) + }, Wn.prototype.get = function(e) { + var t = this.__data__, + n = ta(t, e); + return n < 0 ? r : t[n][1] + }, Wn.prototype.has = function(e) { + return ta(this.__data__, e) > -1 + }, Wn.prototype.set = function(e, t) { + var n = this.__data__, + a = ta(n, e); + return a < 0 ? (++this.size, n.push([e, t])) : n[a][1] = t, this + }, Yn.prototype.clear = function() { + this.size = 0, this.__data__ = { + hash: new Vn, + map: new(En || Wn), + string: new Vn + } + }, Yn.prototype.delete = function(e) { + var t = si(this, e).delete(e); + return this.size -= t ? 1 : 0, t + }, Yn.prototype.get = function(e) { + return si(this, e).get(e) + }, Yn.prototype.has = function(e) { + return si(this, e).has(e) + }, Yn.prototype.set = function(e, t) { + var n = si(this, e), + a = n.size; + return n.set(e, t), this.size += n.size == a ? 0 : 1, this + }, Gn.prototype.add = Gn.prototype.push = function(e) { + return this.__data__.set(e, o), this + }, Gn.prototype.has = function(e) { + return this.__data__.has(e) + }, Kn.prototype.clear = function() { + this.__data__ = new Wn, this.size = 0 + }, Kn.prototype.delete = function(e) { + var t = this.__data__, + n = t.delete(e); + return this.size = t.size, n + }, Kn.prototype.get = function(e) { + return this.__data__.get(e) + }, Kn.prototype.has = function(e) { + return this.__data__.has(e) + }, Kn.prototype.set = function(e, t) { + var n = this.__data__; + if (n instanceof Wn) { + var a = n.__data__; + if (!En || a.length < 199) return a.push([e, t]), this.size = ++n.size, this; + n = this.__data__ = new Yn(a) + } + return n.set(e, t), this.size = n.size, this + }; + var da = jr(va), + pa = jr(ka, !0); - function gi(e, t) { - var n = typeof e; - return !!(t = null == t ? d : t) && ("number" == n || "symbol" != n && be.test(e)) && e > -1 && e % 1 == 0 && e < t - } + function ha(e, t) { + var n = !0; + return da(e, (function(e, a, r) { + return n = !!t(e, a, r) + })), n + } - function bi(e, t, n) { - if (!ts(n)) return !1; - var a = typeof t; - return !!("number" == a ? Go(n) && gi(t, n.length) : "string" == a && t in n) && Bo(n[t], e) + function ma(e, t, n) { + for (var a = -1, i = e.length; ++a < i;) { + var o = e[a], + s = t(o); + if (null != s && (l === r ? s == s && !cs(s) : n(s, l))) var l = s, + c = o } + return c + } + + function fa(e, t) { + var n = []; + return da(e, (function(e, a, r) { + t(e, a, r) && n.push(e) + })), n + } - function yi(e, t) { - if (Wo(e)) return !1; - var n = typeof e; - return !("number" != n && "symbol" != n && "boolean" != n && null != e && !cs(e)) || X.test(e) || !Q.test(e) || null != t && e in Ee(t) + function ga(e, t, n, a, r) { + var i = -1, + o = e.length; + for (n || (n = fi), r || (r = []); ++i < o;) { + var s = e[i]; + t > 0 && n(s) ? t > 1 ? ga(s, t - 1, n, a, r) : Ct(r, s) : a || (r[r.length] = s) } + return r + } + var ba = Mr(), + ya = Mr(!0); - function vi(e) { - var t = ri(e), - n = Fn[t]; - if ("function" != typeof n || !(t in Hn.prototype)) return !1; - if (e === n) return !0; - var a = ai(n); - return !!a && e === a[0] - }(Sn && pi(new Sn(new ArrayBuffer(1))) != O || En && pi(new En) != w || xn && pi(xn.resolve()) != x || Cn && pi(new Cn) != A || An && pi(new An) != D) && (pi = function(e) { - var t = Ea(e), - n = t == E ? e.constructor : r, - a = n ? Li(n) : ""; - if (a) switch (a) { - case Tn: - return O; - case On: - return w; - case Mn: - return x; - case In: - return A; - case Nn: - return D - } - return t - }); - var ki = Te ? Qo : bl; + function va(e, t) { + return e && ba(e, t, Ms) + } - function _i(e) { - var t = e && e.constructor; - return e === ("function" == typeof t && t.prototype || De) - } + function ka(e, t) { + return e && ya(e, t, Ms) + } - function wi(e) { - return e == e && !ts(e) - } + function _a(e, t) { + return wt(t, (function(t) { + return Qo(e[t]) + })) + } - function Si(e, t) { - return function(n) { - return null != n && n[e] === t && (t !== r || e in Ee(n)) - } - } + function wa(e, t) { + for (var n = 0, a = (t = br(t, e)).length; null != e && n < a;) e = e[zi(t[n++])]; + return n && n == a ? e : r + } - function Ei(e, t, n) { - return t = bn(t === r ? e.length - 1 : t, 0), - function() { - for (var r = arguments, i = -1, o = bn(r.length - t, 0), s = a(o); ++i < o;) s[i] = r[t + i]; - i = -1; - for (var l = a(t + 1); ++i < t;) l[i] = r[i]; - return l[t] = n(s), bt(e, this, l) - } - } + function Sa(e, t, n) { + var a = t(e); + return Wo(e) ? a : Ct(a, n(e)) + } - function xi(e, t) { - return t.length < 2 ? e : wa(e, tr(t, 0, -1)) - } + function Ea(e) { + return null == e ? e === r ? "[object Undefined]" : "[object Null]" : st && st in Ee(e) ? function(e) { + var t = Ie.call(e, st), + n = e[st]; + try { + e[st] = r; + var a = !0 + } catch (e) {} + var i = Re.call(e); + return a && (t ? e[st] = n : delete e[st]), i + }(e) : function(e) { + return Re.call(e) + }(e) + } - function Ci(e, t) { - for (var n = e.length, a = yn(t.length, n), i = Ar(e); a--;) { - var o = t[a]; - e[a] = gi(o, n) ? i[o] : r - } - return e - } + function xa(e, t) { + return e > t + } + + function Ca(e, t) { + return null != e && Ie.call(e, t) + } - function Ai(e, t) { - if (("constructor" !== t || "function" != typeof e[t]) && "__proto__" != t) return e[t] + function Aa(e, t) { + return null != e && t in Ee(e) + } + + function Ta(e, t, n) { + for (var i = n ? Et : St, o = e[0].length, s = e.length, l = s, c = a(s), u = 1 / 0, d = []; l--;) { + var p = e[l]; + l && t && (p = xt(p, Ht(t))), u = yn(p.length, u), c[l] = !n && (t || o >= 120 && p.length >= 120) ? new Gn(l && p) : r } - var ji = Oi(Qa), - Pi = Lt || function(e, t) { - return it.setTimeout(e, t) - }, - Di = Oi(Xa); - - function Ti(e, t, n) { - var a = t + ""; - return Di(e, function(e, t) { - var n = t.length; - if (!n) return e; - var a = n - 1; - return t[a] = (n > 1 ? "& " : "") + t[a], t = t.join(n > 2 ? ", " : " "), e.replace(ie, "{\n/* [wrapped with " + t + "] */\n") - }(a, function(e, t) { - return vt(m, (function(n) { - var a = "_." + n[0]; - t & n[1] && !St(e, a) && e.push(a) - })), e.sort() - }(function(e) { - var t = e.match(oe); - return t ? t[1].split(se) : [] - }(a), n))) - } - - function Oi(e) { - var t = 0, - n = 0; - return function() { - var a = vn(), - i = 16 - (a - n); - if (n = a, i > 0) { - if (++t >= 800) return arguments[0] - } else t = 0; - return e.apply(r, arguments) + p = e[0]; + var h = -1, + m = c[0]; + e: for (; ++h < o && d.length < u;) { + var f = p[h], + g = t ? t(f) : f; + if (f = n || 0 !== f ? f : 0, !(m ? Wt(m, g) : i(d, g, n))) { + for (l = s; --l;) { + var b = c[l]; + if (!(b ? Wt(b, g) : i(e[l], g, n))) continue e + } + m && m.push(g), d.push(f) + } + } + return d + } + + function Da(e, t, n) { + var a = null == (e = xi(e, t = br(t, e))) ? e : e[zi(Ji(t))]; + return null == a ? r : bt(a, e, n) + } + + function Pa(e) { + return ns(e) && Ea(e) == f + } + + function ja(e, t, n, a, i) { + return e === t || (null == e || null == t || !ns(e) && !ns(t) ? e != e && t != t : function(e, t, n, a, i, o) { + var s = Wo(e), + l = Wo(t), + c = s ? g : pi(e), + u = l ? g : pi(t), + d = (c = c == f ? E : c) == E, + p = (u = u == f ? E : u) == E, + h = c == u; + if (h && $o(e)) { + if (!$o(t)) return !1; + s = !0, d = !1 + } + if (h && !d) return o || (o = new Kn), s || us(e) ? Xr(e, t, n, a, i, o) : function(e, t, n, a, r, i, o) { + switch (n) { + case M: + if (e.byteLength != t.byteLength || e.byteOffset != t.byteOffset) return !1; + e = e.buffer, t = t.buffer; + case j: + return !(e.byteLength != t.byteLength || !i(new Ue(e), new Ue(t))); + case b: + case y: + case S: + return Bo(+e, +t); + case v: + return e.name == t.name && e.message == t.message; + case C: + case T: + return e == t + ""; + case w: + var s = Xt; + case A: + var l = 1 & a; + if (s || (s = nn), e.size != t.size && !l) return !1; + var c = o.get(e); + if (c) return c == t; + a |= 2, o.set(e, t); + var u = Xr(s(e), s(t), a, r, i, o); + return o.delete(e), u; + case D: + if (zn) return zn.call(e) == zn.call(t) + } + return !1 + }(e, t, c, n, a, i, o); + if (!(1 & n)) { + var m = d && Ie.call(e, "__wrapped__"), + k = p && Ie.call(t, "__wrapped__"); + if (m || k) { + var _ = m ? e.value() : e, + x = k ? t.value() : t; + return o || (o = new Kn), i(_, x, n, a, o) + } } - } - - function Mi(e, t) { - var n = -1, - a = e.length, - i = a - 1; - for (t = t === r ? a : t; ++n < t;) { - var o = Ya(n, i), - s = e[o]; - e[o] = e[n], e[n] = s + return !!h && (o || (o = new Kn), function(e, t, n, a, i, o) { + var s = 1 & n, + l = ti(e), + c = l.length; + if (c != ti(t).length && !s) return !1; + for (var u = c; u--;) { + var d = l[u]; + if (!(s ? d in t : Ie.call(t, d))) return !1 + } + var p = o.get(e), + h = o.get(t); + if (p && h) return p == t && h == e; + var m = !0; + o.set(e, t), o.set(t, e); + for (var f = s; ++u < c;) { + var g = e[d = l[u]], + b = t[d]; + if (a) var y = s ? a(b, g, d, t, e, o) : a(g, b, d, e, t, o); + if (!(y === r ? g === b || i(g, b, n, a, o) : y)) { + m = !1; + break + } + f || (f = "constructor" == d) + } + if (m && !f) { + var v = e.constructor, + k = t.constructor; + v == k || !("constructor" in e) || !("constructor" in t) || "function" == typeof v && v instanceof v && "function" == typeof k && k instanceof k || (m = !1) + } + return o.delete(e), o.delete(t), m + }(e, t, n, a, i, o)) + }(e, t, n, a, ja, i)) + } + + function Ma(e, t, n, a) { + var i = n.length, + o = i, + s = !a; + if (null == e) return !o; + for (e = Ee(e); i--;) { + var l = n[i]; + if (s && l[2] ? l[1] !== e[l[0]] : !(l[0] in e)) return !1 + } + for (; ++i < o;) { + var c = (l = n[i])[0], + u = e[c], + d = l[1]; + if (s && l[2]) { + if (u === r && !(c in e)) return !1 + } else { + var p = new Kn; + if (a) var h = a(u, d, c, e, t, p); + if (!(h === r ? ja(d, u, 3, a, p) : h)) return !1 } - return e.length = t, e } - var Ii, Ni, zi = (Ii = No((function(e) { - var t = []; - return 46 === e.charCodeAt(0) && t.push(""), e.replace(ee, (function(e, n, a, r) { - t.push(a ? r.replace(ue, "$1") : n || e) - })), t - }), (function(e) { - return 500 === Ni.size && Ni.clear(), e - })), Ni = Ii.cache, Ii); + return !0 + } - function Ri(e) { - if ("string" == typeof e || cs(e)) return e; - var t = e + ""; - return "0" == t && 1 / e == -1 / 0 ? "-0" : t - } + function Ia(e) { + return !(!ts(e) || (t = e, Ne && Ne in t)) && (Qo(e) ? Fe : fe).test(Li(e)); + var t + } - function Li(e) { - if (null != e) { - try { - return Oe.call(e) - } catch (e) {} - try { - return e + "" - } catch (e) {} - } - return "" - } + function Oa(e) { + return "function" == typeof e ? e : null == e ? rl : "object" == typeof e ? Wo(e) ? Fa(e[0], e[1]) : La(e) : hl(e) + } - function Fi(e) { - if (e instanceof Hn) return e.clone(); - var t = new Un(e.__wrapped__, e.__chain__); - return t.__actions__ = Ar(e.__actions__), t.__index__ = e.__index__, t.__values__ = e.__values__, t - } - var qi = Ka((function(e, t) { - return Ko(e) ? ua(e, ga(t, 1, Ko, !0)) : [] - })), - Bi = Ka((function(e, t) { - var n = Ji(t); - return Ko(n) && (n = r), Ko(e) ? ua(e, ga(t, 1, Ko, !0), oi(n, 2)) : [] - })), - Ui = Ka((function(e, t) { - var n = Ji(t); - return Ko(n) && (n = r), Ko(e) ? ua(e, ga(t, 1, Ko, !0), r, n) : [] - })); + function Na(e) { + if (!_i(e)) return gn(e); + var t = []; + for (var n in Ee(e)) Ie.call(e, n) && "constructor" != n && t.push(n); + return t + } - function Hi(e, t, n) { - var a = null == e ? 0 : e.length; - if (!a) return -1; - var r = null == n ? 0 : fs(n); - return r < 0 && (r = bn(a + r, 0)), Ot(e, oi(t, 3), r) - } + function Ra(e, t) { + return e < t + } - function Vi(e, t, n) { - var a = null == e ? 0 : e.length; - if (!a) return -1; - var i = a - 1; - return n !== r && (i = fs(n), i = n < 0 ? bn(a + i, 0) : yn(i, a - 1)), Ot(e, oi(t, 3), i, !0) - } + function za(e, t) { + var n = -1, + r = Go(e) ? a(e.length) : []; + return da(e, (function(e, a, i) { + r[++n] = t(e, a, i) + })), r + } - function Wi(e) { - return null != e && e.length ? ga(e, 1) : [] + function La(e) { + var t = li(e); + return 1 == t.length && t[0][2] ? Si(t[0][0], t[0][1]) : function(n) { + return n === e || Ma(n, e, t) } + } - function Yi(e) { - return e && e.length ? e[0] : r + function Fa(e, t) { + return yi(e) && wi(t) ? Si(zi(e), t) : function(n) { + var a = As(n, e); + return a === r && a === t ? Ts(n, e) : ja(t, a, 3) } - var Gi = Ka((function(e) { - var t = xt(e, fr); - return t.length && t[0] === e[0] ? ja(t) : [] - })), - Ki = Ka((function(e) { - var t = Ji(e), - n = xt(e, fr); - return t === Ji(n) ? t = r : n.pop(), n.length && n[0] === e[0] ? ja(n, oi(t, 2)) : [] - })), - $i = Ka((function(e) { - var t = Ji(e), - n = xt(e, fr); - return (t = "function" == typeof t ? t : r) && n.pop(), n.length && n[0] === e[0] ? ja(n, r, t) : [] - })); + } - function Ji(e) { - var t = null == e ? 0 : e.length; - return t ? e[t - 1] : r - } - var Zi = Ka(Qi); + function qa(e, t, n, a, i) { + e !== t && ba(t, (function(o, s) { + if (i || (i = new Kn), ts(o)) ! function(e, t, n, a, i, o, s) { + var l = Ai(e, n), + c = Ai(t, n), + u = s.get(c); + if (u) Xn(e, n, u); + else { + var d = o ? o(l, c, n + "", e, t, s) : r, + p = d === r; + if (p) { + var h = Wo(c), + m = !h && $o(c), + f = !h && !m && us(c); + d = c, h || m || f ? Wo(l) ? d = l : Ko(l) ? d = Ar(l) : m ? (p = !1, d = _r(c, !0)) : f ? (p = !1, d = Sr(c, !0)) : d = [] : is(c) || Vo(c) ? (d = l, Vo(l) ? d = ys(l) : ts(l) && !Qo(l) || (d = mi(c))) : p = !1 + } + p && (s.set(c, d), i(d, c, a, o, s), s.delete(c)), Xn(e, n, d) + } + }(e, t, s, n, qa, a, i); + else { + var l = a ? a(Ai(e, s), o, s + "", e, t, i) : r; + l === r && (l = o), Xn(e, s, l) + } + }), Is) + } - function Qi(e, t) { - return e && e.length && t && t.length ? Va(e, t) : e - } - var Xi = ei((function(e, t) { - var n = null == e ? 0 : e.length, - a = ia(e, t); - return Wa(e, xt(t, (function(e) { - return gi(e, n) ? +e : e - })).sort(Er)), a - })); + function Ba(e, t) { + var n = e.length; + if (n) return gi(t += t < 0 ? n : 0, n) ? e[t] : r + } - function eo(e) { - return null == e ? e : wn.call(e) - } - var to = Ka((function(e) { - return lr(ga(e, 1, Ko, !0)) - })), - no = Ka((function(e) { - var t = Ji(e); - return Ko(t) && (t = r), lr(ga(e, 1, Ko, !0), oi(t, 2)) - })), - ao = Ka((function(e) { - var t = Ji(e); - return t = "function" == typeof t ? t : r, lr(ga(e, 1, Ko, !0), r, t) + function Ua(e, t, n) { + t = t.length ? xt(t, (function(e) { + return Wo(e) ? function(t) { + return wa(t, 1 === e.length ? e[0] : e) + } : e + })) : [rl]; + var a = -1; + t = xt(t, Ht(oi())); + var r = za(e, (function(e, n, r) { + var i = xt(t, (function(t) { + return t(e) })); + return { + criteria: i, + index: ++a, + value: e + } + })); + return function(e, t) { + var a = e.length; + for (e.sort((function(e, t) { + return function(e, t, n) { + for (var a = -1, r = e.criteria, i = t.criteria, o = r.length, s = n.length; ++a < o;) { + var l = Er(r[a], i[a]); + if (l) return a >= s ? l : l * ("desc" == n[a] ? -1 : 1) + } + return e.index - t.index + }(e, t, n) + })); a--;) e[a] = e[a].value; + return e + }(r) + } - function ro(e) { - if (!e || !e.length) return []; - var t = 0; - return e = wt(e, (function(e) { - if (Ko(e)) return t = bn(e.length, t), !0 - })), Bt(t, (function(t) { - return xt(e, Rt(t)) - })) + function Ha(e, t, n) { + for (var a = -1, r = t.length, i = {}; ++a < r;) { + var o = t[a], + s = wa(e, o); + n(s, o) && Za(i, br(o, e), s) } + return i + } - function io(e, t) { - if (!e || !e.length) return []; - var n = ro(e); - return null == t ? n : xt(n, (function(e) { - return bt(t, r, e) - })) - } - var oo = Ka((function(e, t) { - return Ko(e) ? ua(e, t) : [] - })), - so = Ka((function(e) { - return hr(wt(e, Ko)) - })), - lo = Ka((function(e) { - var t = Ji(e); - return Ko(t) && (t = r), hr(wt(e, Ko), oi(t, 2)) - })), - co = Ka((function(e) { - var t = Ji(e); - return t = "function" == typeof t ? t : r, hr(wt(e, Ko), r, t) - })), - uo = Ka(ro), - po = Ka((function(e) { - var t = e.length, - n = t > 1 ? e[t - 1] : r; - return n = "function" == typeof n ? (e.pop(), n) : r, io(e, n) - })); + function Va(e, t, n, a) { + var r = a ? Ot : It, + i = -1, + o = t.length, + s = e; + for (e === t && (t = Ar(t)), n && (s = xt(e, Ht(n))); ++i < o;) + for (var l = 0, c = t[i], u = n ? n(c) : c; + (l = r(s, u, l, a)) > -1;) s !== e && at.call(s, l, 1), at.call(e, l, 1); + return e + } - function ho(e) { - var t = Fn(e); - return t.__chain__ = !0, t + function Wa(e, t) { + for (var n = e ? t.length : 0, a = n - 1; n--;) { + var r = t[n]; + if (n == a || r !== i) { + var i = r; + gi(r) ? at.call(e, r, 1) : cr(e, r) + } } + return e + } - function mo(e, t) { - return t(e) - } - var fo = ei((function(e) { - var t = e.length, - n = t ? e[0] : 0, - a = this.__wrapped__, - i = function(t) { - return ia(t, e) - }; - return !(t > 1 || this.__actions__.length) && a instanceof Hn && gi(n) ? ((a = a.slice(n, +n + (t ? 1 : 0))).__actions__.push({ - func: mo, - args: [i], - thisArg: r - }), new Un(a, this.__chain__).thru((function(e) { - return t && !e.length && e.push(r), e - }))) : this.thru(i) - })), - go = Pr((function(e, t, n) { - Me.call(e, n) ? ++e[n] : ra(e, n, 1) - })), - bo = zr(Hi), - yo = zr(Vi); - - function vo(e, t) { - return (Wo(e) ? vt : da)(e, oi(t, 3)) - } - - function ko(e, t) { - return (Wo(e) ? kt : pa)(e, oi(t, 3)) - } - var _o = Pr((function(e, t, n) { - Me.call(e, n) ? e[n].push(t) : ra(e, n, [t]) - })), - wo = Ka((function(e, t, n) { - var r = -1, - i = "function" == typeof t, - o = Go(e) ? a(e.length) : []; - return da(e, (function(e) { - o[++r] = i ? bt(t, e, n) : Pa(e, t, n) - })), o - })), - So = Pr((function(e, t, n) { - ra(e, n, t) - })); + function Ya(e, t) { + return e + dn(_n() * (t - e + 1)) + } - function Eo(e, t) { - return (Wo(e) ? xt : Ra)(e, oi(t, 3)) - } - var xo = Pr((function(e, t, n) { - e[n ? 0 : 1].push(t) - }), (function() { - return [ - [], - [] - ] - })), - Co = Ka((function(e, t) { - if (null == e) return []; - var n = t.length; - return n > 1 && bi(e, t[0], t[1]) ? t = [] : n > 2 && bi(t[0], t[1], t[2]) && (t = [t[0]]), Ua(e, ga(t, 1), []) - })), - Ao = Dt || function() { - return it.Date.now() - }; + function Ga(e, t) { + var n = ""; + if (!e || t < 1 || t > d) return n; + do { + t % 2 && (n += e), (t = dn(t / 2)) && (e += e) + } while (t); + return n + } - function jo(e, t, n) { - return t = n ? r : t, t = e && null == t ? e.length : t, $r(e, c, r, r, r, r, t) - } + function Ka(e, t) { + return Pi(Ei(e, t, rl), e + "") + } - function Po(e, t) { - var n; - if ("function" != typeof t) throw new Ae(i); - return e = fs(e), - function() { - return --e > 0 && (n = t.apply(this, arguments)), e <= 1 && (t = r), n - } - } - var Do = Ka((function(e, t, n) { - var a = 1; - if (n.length) { - var r = tn(n, ii(Do)); - a |= l - } - return $r(e, a, t, n, r) - })), - To = Ka((function(e, t, n) { - var a = 3; - if (n.length) { - var r = tn(n, ii(To)); - a |= l - } - return $r(t, a, e, n, r) - })); + function $a(e) { + return Jn(Bs(e)) + } - function Oo(e, t, n) { - var a, o, s, l, c, u, d = 0, - p = !1, - h = !1, - m = !0; - if ("function" != typeof e) throw new Ae(i); - - function f(t) { - var n = a, - i = o; - return a = o = r, d = t, l = e.apply(i, n) - } + function Ja(e, t) { + var n = Bs(e); + return Ii(n, oa(t, 0, n.length)) + } - function g(e) { - return d = e, c = Pi(y, t), p ? f(e) : l + function Za(e, t, n, a) { + if (!ts(e)) return e; + for (var i = -1, o = (t = br(t, e)).length, s = o - 1, l = e; null != l && ++i < o;) { + var c = zi(t[i]), + u = n; + if ("__proto__" === c || "constructor" === c || "prototype" === c) return e; + if (i != s) { + var d = l[c]; + (u = a ? a(d, c, l) : r) === r && (u = ts(d) ? d : gi(t[i + 1]) ? [] : {}) } + ea(l, c, u), l = l[c] + } + return e + } + var Qa = Dn ? function(e, t) { + return Dn.set(e, t), e + } : rl, + Xa = ct ? function(e, t) { + return ct(e, "toString", { + configurable: !0, + enumerable: !1, + value: tl(t), + writable: !0 + }) + } : rl; - function b(e) { - var n = e - u; - return u === r || n >= t || n < 0 || h && e - d >= s - } + function er(e) { + return Ii(Bs(e)) + } - function y() { - var e = Ao(); - if (b(e)) return v(e); - c = Pi(y, function(e) { - var n = t - (e - u); - return h ? yn(n, s - (e - d)) : n - }(e)) - } + function tr(e, t, n) { + var r = -1, + i = e.length; + t < 0 && (t = -t > i ? 0 : i + t), (n = n > i ? i : n) < 0 && (n += i), i = t > n ? 0 : n - t >>> 0, t >>>= 0; + for (var o = a(i); ++r < i;) o[r] = e[r + t]; + return o + } - function v(e) { - return c = r, m && a ? f(e) : (a = o = r, l) - } + function nr(e, t) { + var n; + return da(e, (function(e, a, r) { + return !(n = t(e, a, r)) + })), !!n + } - function k() { - var e = Ao(), - n = b(e); - if (a = arguments, o = this, u = e, n) { - if (c === r) return g(u); - if (h) return kr(c), c = Pi(y, t), f(u) - } - return c === r && (c = Pi(y, t)), l + function ar(e, t, n) { + var a = 0, + r = null == e ? a : e.length; + if ("number" == typeof t && t == t && r <= 2147483647) { + for (; a < r;) { + var i = a + r >>> 1, + o = e[i]; + null !== o && !cs(o) && (n ? o <= t : o < t) ? a = i + 1 : r = i } - return t = bs(t) || 0, ts(n) && (p = !!n.leading, s = (h = "maxWait" in n) ? bn(bs(n.maxWait) || 0, t) : s, m = "trailing" in n ? !!n.trailing : m), k.cancel = function() { - c !== r && kr(c), d = 0, a = u = o = c = r - }, k.flush = function() { - return c === r ? l : v(Ao()) - }, k - } - var Mo = Ka((function(e, t) { - return ca(e, 1, t) - })), - Io = Ka((function(e, t, n) { - return ca(e, bs(t) || 0, n) - })); + return r + } + return rr(e, t, rl, n) + } - function No(e, t) { - if ("function" != typeof e || null != t && "function" != typeof t) throw new Ae(i); - var n = function() { - var a = arguments, - r = t ? t.apply(this, a) : a[0], - i = n.cache; - if (i.has(r)) return i.get(r); - var o = e.apply(this, a); - return n.cache = i.set(r, o) || i, o - }; - return n.cache = new(No.Cache || Yn), n + function rr(e, t, n, a) { + var i = 0, + o = null == e ? 0 : e.length; + if (0 === o) return 0; + for (var s = (t = n(t)) != t, l = null === t, c = cs(t), u = t === r; i < o;) { + var d = dn((i + o) / 2), + p = n(e[d]), + h = p !== r, + m = null === p, + f = p == p, + g = cs(p); + if (s) var b = a || f; + else b = u ? f && (a || h) : l ? f && h && (a || !m) : c ? f && h && !m && (a || !g) : !m && !g && (a ? p <= t : p < t); + b ? i = d + 1 : o = d } + return yn(o, 4294967294) + } - function zo(e) { - if ("function" != typeof e) throw new Ae(i); - return function() { - var t = arguments; - switch (t.length) { - case 0: - return !e.call(this); - case 1: - return !e.call(this, t[0]); - case 2: - return !e.call(this, t[0], t[1]); - case 3: - return !e.call(this, t[0], t[1], t[2]) - } - return !e.apply(this, t) + function ir(e, t) { + for (var n = -1, a = e.length, r = 0, i = []; ++n < a;) { + var o = e[n], + s = t ? t(o) : o; + if (!n || !Bo(s, l)) { + var l = s; + i[r++] = 0 === o ? 0 : o } } - No.Cache = Yn; - var Ro = yr((function(e, t) { - var n = (t = 1 == t.length && Wo(t[0]) ? xt(t[0], Ht(oi())) : xt(ga(t, 1), Ht(oi()))).length; - return Ka((function(a) { - for (var r = -1, i = yn(a.length, n); ++r < i;) a[r] = t[r].call(this, a[r]); - return bt(e, this, a) - })) - })), - Lo = Ka((function(e, t) { - var n = tn(t, ii(Lo)); - return $r(e, l, r, t, n) - })), - Fo = Ka((function(e, t) { - var n = tn(t, ii(Fo)); - return $r(e, 64, r, t, n) - })), - qo = ei((function(e, t) { - return $r(e, 256, r, r, r, t) - })); + return i + } - function Bo(e, t) { - return e === t || e != e && t != t - } - var Uo = Vr(xa), - Ho = Vr((function(e, t) { - return e >= t - })), - Vo = Da(function() { - return arguments - }()) ? Da : function(e) { - return ns(e) && Me.call(e, "callee") && !et.call(e, "callee") - }, - Wo = a.isArray, - Yo = dt ? Ht(dt) : function(e) { - return ns(e) && Ea(e) == T - }; + function or(e) { + return "number" == typeof e ? e : cs(e) ? p : +e + } - function Go(e) { - return null != e && es(e.length) && !Qo(e) - } + function sr(e) { + if ("string" == typeof e) return e; + if (Wo(e)) return xt(e, sr) + ""; + if (cs(e)) return Ln ? Ln.call(e) : ""; + var t = e + ""; + return "0" == t && 1 / e == -1 / 0 ? "-0" : t + } + + function lr(e, t, n) { + var a = -1, + r = St, + i = e.length, + o = !0, + s = [], + l = s; + if (n) o = !1, r = Et; + else if (i >= 200) { + var c = t ? null : Gr(e); + if (c) return nn(c); + o = !1, r = Wt, l = new Gn + } else l = t ? [] : s; + e: for (; ++a < i;) { + var u = e[a], + d = t ? t(u) : u; + if (u = n || 0 !== u ? u : 0, o && d == d) { + for (var p = l.length; p--;) + if (l[p] === d) continue e; + t && l.push(d), s.push(u) + } else r(l, d, n) || (l !== s && l.push(d), s.push(u)) + } + return s + } + + function cr(e, t) { + return null == (e = xi(e, t = br(t, e))) || delete e[zi(Ji(t))] + } + + function ur(e, t, n, a) { + return Za(e, t, n(wa(e, t)), a) + } + + function dr(e, t, n, a) { + for (var r = e.length, i = a ? r : -1; + (a ? i-- : ++i < r) && t(e[i], i, e);); + return n ? tr(e, a ? 0 : i, a ? i + 1 : r) : tr(e, a ? i + 1 : 0, a ? r : i) + } + + function pr(e, t) { + var n = e; + return n instanceof Hn && (n = n.value()), At(t, (function(e, t) { + return t.func.apply(t.thisArg, Ct([e], t.args)) + }), n) + } - function Ko(e) { - return ns(e) && Go(e) - } - var $o = hn || bl, - Jo = pt ? Ht(pt) : function(e) { - return ns(e) && Ea(e) == y - }; + function hr(e, t, n) { + var r = e.length; + if (r < 2) return r ? lr(e[0]) : []; + for (var i = -1, o = a(r); ++i < r;) + for (var s = e[i], l = -1; ++l < r;) l != i && (o[i] = ua(o[i] || s, e[l], t, n)); + return lr(ga(o, 1), t, n) + } - function Zo(e) { - if (!ns(e)) return !1; - var t = Ea(e); - return t == v || "[object DOMException]" == t || "string" == typeof e.message && "string" == typeof e.name && !is(e) + function mr(e, t, n) { + for (var a = -1, i = e.length, o = t.length, s = {}; ++a < i;) { + var l = a < o ? t[a] : r; + n(s, e[a], l) } + return s + } - function Qo(e) { - if (!ts(e)) return !1; - var t = Ea(e); - return t == k || t == _ || "[object AsyncFunction]" == t || "[object Proxy]" == t - } + function fr(e) { + return Ko(e) ? e : [] + } - function Xo(e) { - return "number" == typeof e && e == fs(e) - } + function gr(e) { + return "function" == typeof e ? e : rl + } - function es(e) { - return "number" == typeof e && e > -1 && e % 1 == 0 && e <= d - } + function br(e, t) { + return Wo(e) ? e : yi(e, t) ? [e] : Ri(vs(e)) + } + var yr = Ka; - function ts(e) { - var t = typeof e; - return null != e && ("object" == t || "function" == t) - } + function vr(e, t, n) { + var a = e.length; + return n = n === r ? a : n, !t && n >= a ? e : tr(e, t, n) + } + var kr = ut || function(e) { + return it.clearTimeout(e) + }; - function ns(e) { - return null != e && "object" == typeof e - } - var as = ht ? Ht(ht) : function(e) { - return ns(e) && pi(e) == w - }; + function _r(e, t) { + if (t) return e.slice(); + var n = e.length, + a = He ? He(n) : new e.constructor(n); + return e.copy(a), a + } - function rs(e) { - return "number" == typeof e || ns(e) && Ea(e) == S - } + function wr(e) { + var t = new e.constructor(e.byteLength); + return new Ue(t).set(new Ue(e)), t + } - function is(e) { - if (!ns(e) || Ea(e) != E) return !1; - var t = Ye(e); - if (null === t) return !0; - var n = Me.call(t, "constructor") && t.constructor; - return "function" == typeof n && n instanceof n && Oe.call(n) == Re - } - var os = mt ? Ht(mt) : function(e) { - return ns(e) && Ea(e) == C - }, - ss = ft ? Ht(ft) : function(e) { - return ns(e) && pi(e) == A - }; + function Sr(e, t) { + var n = t ? wr(e.buffer) : e.buffer; + return new e.constructor(n, e.byteOffset, e.length) + } - function ls(e) { - return "string" == typeof e || !Wo(e) && ns(e) && Ea(e) == j + function Er(e, t) { + if (e !== t) { + var n = e !== r, + a = null === e, + i = e == e, + o = cs(e), + s = t !== r, + l = null === t, + c = t == t, + u = cs(t); + if (!l && !u && !o && e > t || o && s && c && !l && !u || a && s && c || !n && c || !i) return 1; + if (!a && !o && !u && e < t || u && n && i && !a && !o || l && n && i || !s && i || !c) return -1 } + return 0 + } - function cs(e) { - return "symbol" == typeof e || ns(e) && Ea(e) == P - } - var us = gt ? Ht(gt) : function(e) { - return ns(e) && es(e.length) && !!Qe[Ea(e)] - }, - ds = Vr(za), - ps = Vr((function(e, t) { - return e <= t - })); + function xr(e, t, n, r) { + for (var i = -1, o = e.length, s = n.length, l = -1, c = t.length, u = bn(o - s, 0), d = a(c + u), p = !r; ++l < c;) d[l] = t[l]; + for (; ++i < s;)(p || i < o) && (d[n[i]] = e[i]); + for (; u--;) d[l++] = e[i++]; + return d + } - function hs(e) { - if (!e) return []; - if (Go(e)) return ls(e) ? on(e) : Ar(e); - if (ot && e[ot]) return function(e) { - for (var t, n = []; !(t = e.next()).done;) n.push(t.value); - return n - }(e[ot]()); - var t = pi(e); - return (t == w ? Xt : t == A ? nn : Bs)(e) - } + function Cr(e, t, n, r) { + for (var i = -1, o = e.length, s = -1, l = n.length, c = -1, u = t.length, d = bn(o - l, 0), p = a(d + u), h = !r; ++i < d;) p[i] = e[i]; + for (var m = i; ++c < u;) p[m + c] = t[c]; + for (; ++s < l;)(h || i < o) && (p[m + n[s]] = e[i++]); + return p + } - function ms(e) { - return e ? (e = bs(e)) === u || e === -1 / 0 ? 17976931348623157e292 * (e < 0 ? -1 : 1) : e == e ? e : 0 : 0 === e ? e : 0 - } + function Ar(e, t) { + var n = -1, + r = e.length; + for (t || (t = a(r)); ++n < r;) t[n] = e[n]; + return t + } - function fs(e) { - var t = ms(e), - n = t % 1; - return t == t ? n ? t - n : t : 0 + function Tr(e, t, n, a) { + var i = !n; + n || (n = {}); + for (var o = -1, s = t.length; ++o < s;) { + var l = t[o], + c = a ? a(n[l], e[l], l, n, e) : r; + c === r && (c = e[l]), i ? ra(n, l, c) : ea(n, l, c) } + return n + } - function gs(e) { - return e ? oa(fs(e), 0, h) : 0 + function Dr(e, t) { + return function(n, a) { + var r = Wo(n) ? yt : na, + i = t ? t() : {}; + return r(n, e, oi(a, 2), i) } + } - function bs(e) { - if ("number" == typeof e) return e; - if (cs(e)) return p; - if (ts(e)) { - var t = "function" == typeof e.valueOf ? e.valueOf() : e; - e = ts(t) ? t + "" : t + function Pr(e) { + return Ka((function(t, n) { + var a = -1, + i = n.length, + o = i > 1 ? n[i - 1] : r, + s = i > 2 ? n[2] : r; + for (o = e.length > 3 && "function" == typeof o ? (i--, o) : r, s && bi(n[0], n[1], s) && (o = i < 3 ? r : o, i = 1), t = Ee(t); ++a < i;) { + var l = n[a]; + l && e(t, l, a, o) } - if ("string" != typeof e) return 0 === e ? e : +e; - e = Ut(e); - var n = me.test(e); - return n || ge.test(e) ? nt(e.slice(2), n ? 2 : 8) : he.test(e) ? p : +e - } - - function ys(e) { - return jr(e, Ms(e)) - } - - function vs(e) { - return null == e ? "" : sr(e) - } - var ks = Dr((function(e, t) { - if (_i(t) || Go(t)) jr(t, Os(t), e); - else - for (var n in t) Me.call(t, n) && ea(e, n, t[n]) - })), - _s = Dr((function(e, t) { - jr(t, Ms(t), e) - })), - ws = Dr((function(e, t, n, a) { - jr(t, Ms(t), e, a) - })), - Ss = Dr((function(e, t, n, a) { - jr(t, Os(t), e, a) - })), - Es = ei(ia), - xs = Ka((function(e, t) { - e = Ee(e); - var n = -1, - a = t.length, - i = a > 2 ? t[2] : r; - for (i && bi(t[0], t[1], i) && (a = 1); ++n < a;) - for (var o = t[n], s = Ms(o), l = -1, c = s.length; ++l < c;) { - var u = s[l], - d = e[u]; - (d === r || Bo(d, De[u]) && !Me.call(e, u)) && (e[u] = o[u]) - } - return e - })), - Cs = Ka((function(e) { - return e.push(r, Zr), bt(Ns, r, e) - })); + return t + })) + } - function As(e, t, n) { - var a = null == e ? r : wa(e, t); - return a === r ? n : a + function jr(e, t) { + return function(n, a) { + if (null == n) return n; + if (!Go(n)) return e(n, a); + for (var r = n.length, i = t ? r : -1, o = Ee(n); + (t ? i-- : ++i < r) && !1 !== a(o[i], i, o);); + return n } + } - function js(e, t) { - return null != e && hi(e, t, Aa) + function Mr(e) { + return function(t, n, a) { + for (var r = -1, i = Ee(t), o = a(t), s = o.length; s--;) { + var l = o[e ? s : ++r]; + if (!1 === n(i[l], l, i)) break + } + return t } - var Ps = Fr((function(e, t, n) { - null != t && "function" != typeof t.toString && (t = ze.call(t)), e[t] = n - }), tl(rl)), - Ds = Fr((function(e, t, n) { - null != t && "function" != typeof t.toString && (t = ze.call(t)), Me.call(e, t) ? e[t].push(n) : e[t] = [n] - }), oi), - Ts = Ka(Pa); + } - function Os(e) { - return Go(e) ? $n(e) : Na(e) + function Ir(e) { + return function(t) { + var n = Qt(t = vs(t)) ? on(t) : r, + a = n ? n[0] : t.charAt(0), + i = n ? vr(n, 1).join("") : t.slice(1); + return a[e]() + i } + } - function Ms(e) { - return Go(e) ? $n(e, !0) : function(e) { - if (!ts(e)) return function(e) { - var t = []; - if (null != e) - for (var n in Ee(e)) t.push(n); - return t - }(e); - var t = _i(e), - n = []; - for (var a in e)("constructor" != a || !t && Me.call(e, a)) && n.push(a); - return n - }(e) - } - var Is = Dr((function(e, t, n) { - qa(e, t, n) - })), - Ns = Dr((function(e, t, n, a) { - qa(e, t, n, a) - })), - zs = ei((function(e, t) { - var n = {}; - if (null == e) return n; - var a = !1; - t = xt(t, (function(t) { - return t = br(t, e), a || (a = t.length > 1), t - })), jr(e, ni(e), n), a && (n = sa(n, 7, Qr)); - for (var r = t.length; r--;) cr(n, t[r]); - return n - })), - Rs = ei((function(e, t) { - return null == e ? {} : function(e, t) { - return Ha(e, t, (function(t, n) { - return js(e, n) - })) - }(e, t) - })); - - function Ls(e, t) { - if (null == e) return {}; - var n = xt(ni(e), (function(e) { - return [e] - })); - return t = oi(t), Ha(e, n, (function(e, n) { - return t(e, n[0]) - })) + function Or(e) { + return function(t) { + return At(Qs(Vs(t).replace(Ve, "")), e, "") } - var Fs = Kr(Os), - qs = Kr(Ms); + } - function Bs(e) { - return null == e ? [] : Vt(e, Os(e)) + function Nr(e) { + return function() { + var t = arguments; + switch (t.length) { + case 0: + return new e; + case 1: + return new e(t[0]); + case 2: + return new e(t[0], t[1]); + case 3: + return new e(t[0], t[1], t[2]); + case 4: + return new e(t[0], t[1], t[2], t[3]); + case 5: + return new e(t[0], t[1], t[2], t[3], t[4]); + case 6: + return new e(t[0], t[1], t[2], t[3], t[4], t[5]); + case 7: + return new e(t[0], t[1], t[2], t[3], t[4], t[5], t[6]) + } + var n = qn(e.prototype), + a = e.apply(n, t); + return ts(a) ? a : n } - var Us = Ir((function(e, t, n) { - return t = t.toLowerCase(), e + (n ? Hs(t) : t) - })); + } - function Hs(e) { - return Zs(vs(e).toLowerCase()) - } - - function Vs(e) { - return (e = vs(e)) && e.replace(ye, $t).replace(We, "") - } - var Ws = Ir((function(e, t, n) { - return e + (n ? "-" : "") + t.toLowerCase() - })), - Ys = Ir((function(e, t, n) { - return e + (n ? " " : "") + t.toLowerCase() - })), - Gs = Mr("toLowerCase"), - Ks = Ir((function(e, t, n) { - return e + (n ? "_" : "") + t.toLowerCase() - })), - $s = Ir((function(e, t, n) { - return e + (n ? " " : "") + Zs(t) - })), - Js = Ir((function(e, t, n) { - return e + (n ? " " : "") + t.toUpperCase() - })), - Zs = Mr("toUpperCase"); - - function Qs(e, t, n) { - return e = vs(e), (t = n ? r : t) === r ? function(e) { - return $e.test(e) - }(e) ? function(e) { - return e.match(Ge) || [] - }(e) : function(e) { - return e.match(le) || [] - }(e) : e.match(t) || [] - } - var Xs = Ka((function(e, t) { - try { - return bt(e, r, t) - } catch (e) { - return Zo(e) ? e : new _e(e) + function Rr(e) { + return function(t, n, a) { + var i = Ee(t); + if (!Go(t)) { + var o = oi(n, 3); + t = Ms(t), n = function(e) { + return o(i[e], e, i) } - })), - el = ei((function(e, t) { - return vt(t, (function(t) { - t = Ri(t), ra(e, t, Do(e[t], e)) - })), e - })); + } + var s = e(t, n, a); + return s > -1 ? i[o ? t[s] : s] : r + } + } - function tl(e) { + function zr(e) { + return ei((function(t) { + var n = t.length, + a = n, + o = Un.prototype.thru; + for (e && t.reverse(); a--;) { + var s = t[a]; + if ("function" != typeof s) throw new Ae(i); + if (o && !l && "wrapper" == ri(s)) var l = new Un([], !0) + } + for (a = l ? a : n; ++a < n;) { + var c = ri(s = t[a]), + u = "wrapper" == c ? ai(s) : r; + l = u && vi(u[0]) && 424 == u[1] && !u[4].length && 1 == u[9] ? l[ri(u[0])].apply(l, u[3]) : 1 == s.length && vi(s) ? l[c]() : l.thru(s) + } return function() { - return e + var e = arguments, + a = e[0]; + if (l && 1 == e.length && Wo(a)) return l.plant(a).value(); + for (var r = 0, i = n ? t[r].apply(this, e) : a; ++r < n;) i = t[r].call(this, i); + return i } - } - var nl = Rr(), - al = Rr(!0); + })) + } - function rl(e) { - return e + function Lr(e, t, n, i, o, s, l, u, d, p) { + var h = t & c, + m = 1 & t, + f = 2 & t, + g = 24 & t, + b = 512 & t, + y = f ? r : Nr(e); + return function r() { + for (var c = arguments.length, v = a(c), k = c; k--;) v[k] = arguments[k]; + if (g) var _ = ii(r), + w = Kt(v, _); + if (i && (v = xr(v, i, o, g)), s && (v = Cr(v, s, l, g)), c -= w, g && c < p) { + var S = tn(v, _); + return Wr(e, t, Lr, r.placeholder, n, v, S, u, d, p - c) + } + var E = m ? n : this, + x = f ? E[e] : e; + return c = v.length, u ? v = Ci(v, u) : b && c > 1 && v.reverse(), h && d < c && (v.length = d), this && this !== it && this instanceof r && (x = y || Nr(x)), x.apply(E, v) } + } - function il(e) { - return Ia("function" == typeof e ? e : sa(e, 1)) + function Fr(e, t) { + return function(n, a) { + return function(e, t, n, a) { + return va(e, (function(e, r, i) { + t(a, n(e), r, i) + })), a + }(n, e, t(a), {}) } - var ol = Ka((function(e, t) { - return function(n) { - return Pa(n, e, t) - } - })), - sl = Ka((function(e, t) { - return function(n) { - return Pa(e, n, t) - } - })); + } - function ll(e, t, n) { - var a = Os(t), - r = _a(t, a); - null != n || ts(t) && (r.length || !a.length) || (n = t, t = e, e = this, r = _a(t, Os(t))); - var i = !(ts(n) && "chain" in n && !n.chain), - o = Qo(e); - return vt(r, (function(n) { - var a = t[n]; - e[n] = a, o && (e.prototype[n] = function() { - var t = this.__chain__; - if (i || t) { - var n = e(this.__wrapped__), - r = n.__actions__ = Ar(this.__actions__); - return r.push({ - func: a, - args: arguments, - thisArg: e - }), n.__chain__ = t, n - } - return a.apply(e, Ct([this.value()], arguments)) - }) - })), e + function qr(e, t) { + return function(n, a) { + var i; + if (n === r && a === r) return t; + if (n !== r && (i = n), a !== r) { + if (i === r) return a; + "string" == typeof n || "string" == typeof a ? (n = sr(n), a = sr(a)) : (n = or(n), a = or(a)), i = e(n, a) + } + return i } + } - function cl() {} - var ul = Br(xt), - dl = Br(_t), - pl = Br(Pt); + function Br(e) { + return ei((function(t) { + return t = xt(t, Ht(oi())), Ka((function(n) { + var a = this; + return e(t, (function(e) { + return bt(e, a, n) + })) + })) + })) + } - function hl(e) { - return yi(e) ? Rt(Ri(e)) : function(e) { - return function(t) { - return wa(t, e) - } - }(e) - } - var ml = Hr(), - fl = Hr(!0); + function Ur(e, t) { + var n = (t = t === r ? " " : sr(t)).length; + if (n < 2) return n ? Ga(t, e) : t; + var a = Ga(t, un(e / rn(t))); + return Qt(t) ? vr(on(a), 0, e).join("") : a.slice(0, e) + } - function gl() { - return [] + function Hr(e) { + return function(t, n, i) { + return i && "number" != typeof i && bi(t, n, i) && (n = i = r), t = ms(t), n === r ? (n = t, t = 0) : n = ms(n), + function(e, t, n, r) { + for (var i = -1, o = bn(un((t - e) / (n || 1)), 0), s = a(o); o--;) s[r ? o : ++i] = e, e += n; + return s + }(t, n, i = i === r ? t < n ? 1 : -1 : ms(i), e) } + } - function bl() { - return !1 + function Vr(e) { + return function(t, n) { + return "string" == typeof t && "string" == typeof n || (t = bs(t), n = bs(n)), e(t, n) } - var yl, vl = qr((function(e, t) { - return e + t - }), 0), - kl = Yr("ceil"), - _l = qr((function(e, t) { - return e / t - }), 1), - wl = Yr("floor"), - Sl = qr((function(e, t) { - return e * t - }), 1), - El = Yr("round"), - xl = qr((function(e, t) { - return e - t - }), 0); - return Fn.after = function(e, t) { - if ("function" != typeof t) throw new Ae(i); - return e = fs(e), - function() { - if (--e < 1) return t.apply(this, arguments) - } - }, Fn.ary = jo, Fn.assign = ks, Fn.assignIn = _s, Fn.assignInWith = ws, Fn.assignWith = Ss, Fn.at = Es, Fn.before = Po, Fn.bind = Do, Fn.bindAll = el, Fn.bindKey = To, Fn.castArray = function() { - if (!arguments.length) return []; - var e = arguments[0]; - return Wo(e) ? e : [e] - }, Fn.chain = ho, Fn.chunk = function(e, t, n) { - t = (n ? bi(e, t, n) : t === r) ? 1 : bn(fs(t), 0); - var i = null == e ? 0 : e.length; - if (!i || t < 1) return []; - for (var o = 0, s = 0, l = a(un(i / t)); o < i;) l[s++] = tr(e, o, o += t); - return l - }, Fn.compact = function(e) { - for (var t = -1, n = null == e ? 0 : e.length, a = 0, r = []; ++t < n;) { - var i = e[t]; - i && (r[a++] = i) - } - return r - }, Fn.concat = function() { - var e = arguments.length; - if (!e) return []; - for (var t = a(e - 1), n = arguments[0], r = e; r--;) t[r - 1] = arguments[r]; - return Ct(Wo(n) ? Ar(n) : [n], ga(t, 1)) - }, Fn.cond = function(e) { - var t = null == e ? 0 : e.length, - n = oi(); - return e = t ? xt(e, (function(e) { - if ("function" != typeof e[1]) throw new Ae(i); - return [n(e[0]), e[1]] - })) : [], Ka((function(n) { - for (var a = -1; ++a < t;) { - var r = e[a]; - if (bt(r[0], this, n)) return bt(r[1], this, n) - } - })) - }, Fn.conforms = function(e) { - return function(e) { - var t = Os(e); - return function(n) { - return la(n, e, t) - } - }(sa(e, 1)) - }, Fn.constant = tl, Fn.countBy = go, Fn.create = function(e, t) { - var n = qn(e); - return null == t ? n : aa(n, t) - }, Fn.curry = function e(t, n, a) { - var i = $r(t, 8, r, r, r, r, r, n = a ? r : n); - return i.placeholder = e.placeholder, i - }, Fn.curryRight = function e(t, n, a) { - var i = $r(t, 16, r, r, r, r, r, n = a ? r : n); - return i.placeholder = e.placeholder, i - }, Fn.debounce = Oo, Fn.defaults = xs, Fn.defaultsDeep = Cs, Fn.defer = Mo, Fn.delay = Io, Fn.difference = qi, Fn.differenceBy = Bi, Fn.differenceWith = Ui, Fn.drop = function(e, t, n) { - var a = null == e ? 0 : e.length; - return a ? tr(e, (t = n || t === r ? 1 : fs(t)) < 0 ? 0 : t, a) : [] - }, Fn.dropRight = function(e, t, n) { - var a = null == e ? 0 : e.length; - return a ? tr(e, 0, (t = a - (t = n || t === r ? 1 : fs(t))) < 0 ? 0 : t) : [] - }, Fn.dropRightWhile = function(e, t) { - return e && e.length ? dr(e, oi(t, 3), !0, !0) : [] - }, Fn.dropWhile = function(e, t) { - return e && e.length ? dr(e, oi(t, 3), !0) : [] - }, Fn.fill = function(e, t, n, a) { - var i = null == e ? 0 : e.length; - return i ? (n && "number" != typeof n && bi(e, t, n) && (n = 0, a = i), function(e, t, n, a) { - var i = e.length; - for ((n = fs(n)) < 0 && (n = -n > i ? 0 : i + n), (a = a === r || a > i ? i : fs(a)) < 0 && (a += i), a = n > a ? 0 : gs(a); n < a;) e[n++] = t; - return e - }(e, t, n, a)) : [] - }, Fn.filter = function(e, t) { - return (Wo(e) ? wt : fa)(e, oi(t, 3)) - }, Fn.flatMap = function(e, t) { - return ga(Eo(e, t), 1) - }, Fn.flatMapDeep = function(e, t) { - return ga(Eo(e, t), u) - }, Fn.flatMapDepth = function(e, t, n) { - return n = n === r ? 1 : fs(n), ga(Eo(e, t), n) - }, Fn.flatten = Wi, Fn.flattenDeep = function(e) { - return null != e && e.length ? ga(e, u) : [] - }, Fn.flattenDepth = function(e, t) { - return null != e && e.length ? ga(e, t = t === r ? 1 : fs(t)) : [] - }, Fn.flip = function(e) { - return $r(e, 512) - }, Fn.flow = nl, Fn.flowRight = al, Fn.fromPairs = function(e) { - for (var t = -1, n = null == e ? 0 : e.length, a = {}; ++t < n;) { - var r = e[t]; - a[r[0]] = r[1] - } - return a - }, Fn.functions = function(e) { - return null == e ? [] : _a(e, Os(e)) - }, Fn.functionsIn = function(e) { - return null == e ? [] : _a(e, Ms(e)) - }, Fn.groupBy = _o, Fn.initial = function(e) { - return null != e && e.length ? tr(e, 0, -1) : [] - }, Fn.intersection = Gi, Fn.intersectionBy = Ki, Fn.intersectionWith = $i, Fn.invert = Ps, Fn.invertBy = Ds, Fn.invokeMap = wo, Fn.iteratee = il, Fn.keyBy = So, Fn.keys = Os, Fn.keysIn = Ms, Fn.map = Eo, Fn.mapKeys = function(e, t) { - var n = {}; - return t = oi(t, 3), va(e, (function(e, a, r) { - ra(n, t(e, a, r), e) - })), n - }, Fn.mapValues = function(e, t) { - var n = {}; - return t = oi(t, 3), va(e, (function(e, a, r) { - ra(n, a, t(e, a, r)) - })), n - }, Fn.matches = function(e) { - return La(sa(e, 1)) - }, Fn.matchesProperty = function(e, t) { - return Fa(e, sa(t, 1)) - }, Fn.memoize = No, Fn.merge = Is, Fn.mergeWith = Ns, Fn.method = ol, Fn.methodOf = sl, Fn.mixin = ll, Fn.negate = zo, Fn.nthArg = function(e) { - return e = fs(e), Ka((function(t) { - return Ba(t, e) - })) - }, Fn.omit = zs, Fn.omitBy = function(e, t) { - return Ls(e, zo(oi(t))) - }, Fn.once = function(e) { - return Po(2, e) - }, Fn.orderBy = function(e, t, n, a) { - return null == e ? [] : (Wo(t) || (t = null == t ? [] : [t]), Wo(n = a ? r : n) || (n = null == n ? [] : [n]), Ua(e, t, n)) - }, Fn.over = ul, Fn.overArgs = Ro, Fn.overEvery = dl, Fn.overSome = pl, Fn.partial = Lo, Fn.partialRight = Fo, Fn.partition = xo, Fn.pick = Rs, Fn.pickBy = Ls, Fn.property = hl, Fn.propertyOf = function(e) { - return function(t) { - return null == e ? r : wa(e, t) - } - }, Fn.pull = Zi, Fn.pullAll = Qi, Fn.pullAllBy = function(e, t, n) { - return e && e.length && t && t.length ? Va(e, t, oi(n, 2)) : e - }, Fn.pullAllWith = function(e, t, n) { - return e && e.length && t && t.length ? Va(e, t, r, n) : e - }, Fn.pullAt = Xi, Fn.range = ml, Fn.rangeRight = fl, Fn.rearg = qo, Fn.reject = function(e, t) { - return (Wo(e) ? wt : fa)(e, zo(oi(t, 3))) - }, Fn.remove = function(e, t) { - var n = []; - if (!e || !e.length) return n; - var a = -1, - r = [], - i = e.length; - for (t = oi(t, 3); ++a < i;) { - var o = e[a]; - t(o, a, e) && (n.push(o), r.push(a)) - } - return Wa(e, r), n - }, Fn.rest = function(e, t) { - if ("function" != typeof e) throw new Ae(i); - return Ka(e, t = t === r ? t : fs(t)) - }, Fn.reverse = eo, Fn.sampleSize = function(e, t, n) { - return t = (n ? bi(e, t, n) : t === r) ? 1 : fs(t), (Wo(e) ? Zn : Ja)(e, t) - }, Fn.set = function(e, t, n) { - return null == e ? e : Za(e, t, n) - }, Fn.setWith = function(e, t, n, a) { - return a = "function" == typeof a ? a : r, null == e ? e : Za(e, t, n, a) - }, Fn.shuffle = function(e) { - return (Wo(e) ? Qn : er)(e) - }, Fn.slice = function(e, t, n) { - var a = null == e ? 0 : e.length; - return a ? (n && "number" != typeof n && bi(e, t, n) ? (t = 0, n = a) : (t = null == t ? 0 : fs(t), n = n === r ? a : fs(n)), tr(e, t, n)) : [] - }, Fn.sortBy = Co, Fn.sortedUniq = function(e) { - return e && e.length ? ir(e) : [] - }, Fn.sortedUniqBy = function(e, t) { - return e && e.length ? ir(e, oi(t, 2)) : [] - }, Fn.split = function(e, t, n) { - return n && "number" != typeof n && bi(e, t, n) && (t = n = r), (n = n === r ? h : n >>> 0) ? (e = vs(e)) && ("string" == typeof t || null != t && !os(t)) && !(t = sr(t)) && Qt(e) ? vr(on(e), 0, n) : e.split(t, n) : [] - }, Fn.spread = function(e, t) { - if ("function" != typeof e) throw new Ae(i); - return t = null == t ? 0 : bn(fs(t), 0), Ka((function(n) { - var a = n[t], - r = vr(n, 0, t); - return a && Ct(r, a), bt(e, this, r) - })) - }, Fn.tail = function(e) { - var t = null == e ? 0 : e.length; - return t ? tr(e, 1, t) : [] - }, Fn.take = function(e, t, n) { - return e && e.length ? tr(e, 0, (t = n || t === r ? 1 : fs(t)) < 0 ? 0 : t) : [] - }, Fn.takeRight = function(e, t, n) { - var a = null == e ? 0 : e.length; - return a ? tr(e, (t = a - (t = n || t === r ? 1 : fs(t))) < 0 ? 0 : t, a) : [] - }, Fn.takeRightWhile = function(e, t) { - return e && e.length ? dr(e, oi(t, 3), !1, !0) : [] - }, Fn.takeWhile = function(e, t) { - return e && e.length ? dr(e, oi(t, 3)) : [] - }, Fn.tap = function(e, t) { - return t(e), e - }, Fn.throttle = function(e, t, n) { - var a = !0, - r = !0; - if ("function" != typeof e) throw new Ae(i); - return ts(n) && (a = "leading" in n ? !!n.leading : a, r = "trailing" in n ? !!n.trailing : r), Oo(e, t, { - leading: a, - maxWait: t, - trailing: r - }) - }, Fn.thru = mo, Fn.toArray = hs, Fn.toPairs = Fs, Fn.toPairsIn = qs, Fn.toPath = function(e) { - return Wo(e) ? xt(e, Ri) : cs(e) ? [e] : Ar(zi(vs(e))) - }, Fn.toPlainObject = ys, Fn.transform = function(e, t, n) { - var a = Wo(e), - r = a || $o(e) || us(e); - if (t = oi(t, 4), null == n) { - var i = e && e.constructor; - n = r ? a ? new i : [] : ts(e) && Qo(i) ? qn(Ye(e)) : {} - } - return (r ? vt : va)(e, (function(e, a, r) { - return t(n, e, a, r) - })), n - }, Fn.unary = function(e) { - return jo(e, 1) - }, Fn.union = to, Fn.unionBy = no, Fn.unionWith = ao, Fn.uniq = function(e) { - return e && e.length ? lr(e) : [] - }, Fn.uniqBy = function(e, t) { - return e && e.length ? lr(e, oi(t, 2)) : [] - }, Fn.uniqWith = function(e, t) { - return t = "function" == typeof t ? t : r, e && e.length ? lr(e, r, t) : [] - }, Fn.unset = function(e, t) { - return null == e || cr(e, t) - }, Fn.unzip = ro, Fn.unzipWith = io, Fn.update = function(e, t, n) { - return null == e ? e : ur(e, t, gr(n)) - }, Fn.updateWith = function(e, t, n, a) { - return a = "function" == typeof a ? a : r, null == e ? e : ur(e, t, gr(n), a) - }, Fn.values = Bs, Fn.valuesIn = function(e) { - return null == e ? [] : Vt(e, Ms(e)) - }, Fn.without = oo, Fn.words = Qs, Fn.wrap = function(e, t) { - return Lo(gr(t), e) - }, Fn.xor = so, Fn.xorBy = lo, Fn.xorWith = co, Fn.zip = uo, Fn.zipObject = function(e, t) { - return mr(e || [], t || [], ea) - }, Fn.zipObjectDeep = function(e, t) { - return mr(e || [], t || [], Za) - }, Fn.zipWith = po, Fn.entries = Fs, Fn.entriesIn = qs, Fn.extend = _s, Fn.extendWith = ws, ll(Fn, Fn), Fn.add = vl, Fn.attempt = Xs, Fn.camelCase = Us, Fn.capitalize = Hs, Fn.ceil = kl, Fn.clamp = function(e, t, n) { - return n === r && (n = t, t = r), n !== r && (n = (n = bs(n)) == n ? n : 0), t !== r && (t = (t = bs(t)) == t ? t : 0), oa(bs(e), t, n) - }, Fn.clone = function(e) { - return sa(e, 4) - }, Fn.cloneDeep = function(e) { - return sa(e, 5) - }, Fn.cloneDeepWith = function(e, t) { - return sa(e, 5, t = "function" == typeof t ? t : r) - }, Fn.cloneWith = function(e, t) { - return sa(e, 4, t = "function" == typeof t ? t : r) - }, Fn.conformsTo = function(e, t) { - return null == t || la(e, t, Os(t)) - }, Fn.deburr = Vs, Fn.defaultTo = function(e, t) { - return null == e || e != e ? t : e - }, Fn.divide = _l, Fn.endsWith = function(e, t, n) { - e = vs(e), t = sr(t); - var a = e.length, - i = n = n === r ? a : oa(fs(n), 0, a); - return (n -= t.length) >= 0 && e.slice(n, i) == t - }, Fn.eq = Bo, Fn.escape = function(e) { - return (e = vs(e)) && K.test(e) ? e.replace(Y, Jt) : e - }, Fn.escapeRegExp = function(e) { - return (e = vs(e)) && ne.test(e) ? e.replace(te, "\\$&") : e - }, Fn.every = function(e, t, n) { - var a = Wo(e) ? _t : ha; - return n && bi(e, t, n) && (t = r), a(e, oi(t, 3)) - }, Fn.find = bo, Fn.findIndex = Hi, Fn.findKey = function(e, t) { - return Tt(e, oi(t, 3), va) - }, Fn.findLast = yo, Fn.findLastIndex = Vi, Fn.findLastKey = function(e, t) { - return Tt(e, oi(t, 3), ka) - }, Fn.floor = wl, Fn.forEach = vo, Fn.forEachRight = ko, Fn.forIn = function(e, t) { - return null == e ? e : ba(e, oi(t, 3), Ms) - }, Fn.forInRight = function(e, t) { - return null == e ? e : ya(e, oi(t, 3), Ms) - }, Fn.forOwn = function(e, t) { - return e && va(e, oi(t, 3)) - }, Fn.forOwnRight = function(e, t) { - return e && ka(e, oi(t, 3)) - }, Fn.get = As, Fn.gt = Uo, Fn.gte = Ho, Fn.has = function(e, t) { - return null != e && hi(e, t, Ca) - }, Fn.hasIn = js, Fn.head = Yi, Fn.identity = rl, Fn.includes = function(e, t, n, a) { - e = Go(e) ? e : Bs(e), n = n && !a ? fs(n) : 0; - var r = e.length; - return n < 0 && (n = bn(r + n, 0)), ls(e) ? n <= r && e.indexOf(t, n) > -1 : !!r && Mt(e, t, n) > -1 - }, Fn.indexOf = function(e, t, n) { - var a = null == e ? 0 : e.length; - if (!a) return -1; - var r = null == n ? 0 : fs(n); - return r < 0 && (r = bn(a + r, 0)), Mt(e, t, r) - }, Fn.inRange = function(e, t, n) { - return t = ms(t), n === r ? (n = t, t = 0) : n = ms(n), - function(e, t, n) { - return e >= yn(t, n) && e < bn(t, n) - }(e = bs(e), t, n) - }, Fn.invoke = Ts, Fn.isArguments = Vo, Fn.isArray = Wo, Fn.isArrayBuffer = Yo, Fn.isArrayLike = Go, Fn.isArrayLikeObject = Ko, Fn.isBoolean = function(e) { - return !0 === e || !1 === e || ns(e) && Ea(e) == b - }, Fn.isBuffer = $o, Fn.isDate = Jo, Fn.isElement = function(e) { - return ns(e) && 1 === e.nodeType && !is(e) - }, Fn.isEmpty = function(e) { - if (null == e) return !0; - if (Go(e) && (Wo(e) || "string" == typeof e || "function" == typeof e.splice || $o(e) || us(e) || Vo(e))) return !e.length; - var t = pi(e); - if (t == w || t == A) return !e.size; - if (_i(e)) return !Na(e).length; - for (var n in e) - if (Me.call(e, n)) return !1; - return !0 - }, Fn.isEqual = function(e, t) { - return Ta(e, t) - }, Fn.isEqualWith = function(e, t, n) { - var a = (n = "function" == typeof n ? n : r) ? n(e, t) : r; - return a === r ? Ta(e, t, r, n) : !!a - }, Fn.isError = Zo, Fn.isFinite = function(e) { - return "number" == typeof e && mn(e) - }, Fn.isFunction = Qo, Fn.isInteger = Xo, Fn.isLength = es, Fn.isMap = as, Fn.isMatch = function(e, t) { - return e === t || Oa(e, t, li(t)) - }, Fn.isMatchWith = function(e, t, n) { - return n = "function" == typeof n ? n : r, Oa(e, t, li(t), n) - }, Fn.isNaN = function(e) { - return rs(e) && e != +e - }, Fn.isNative = function(e) { - if (ki(e)) throw new _e("Unsupported core-js use. Try https://npms.io/search?q=ponyfill."); - return Ma(e) - }, Fn.isNil = function(e) { - return null == e - }, Fn.isNull = function(e) { - return null === e - }, Fn.isNumber = rs, Fn.isObject = ts, Fn.isObjectLike = ns, Fn.isPlainObject = is, Fn.isRegExp = os, Fn.isSafeInteger = function(e) { - return Xo(e) && e >= -9007199254740991 && e <= d - }, Fn.isSet = ss, Fn.isString = ls, Fn.isSymbol = cs, Fn.isTypedArray = us, Fn.isUndefined = function(e) { - return e === r - }, Fn.isWeakMap = function(e) { - return ns(e) && pi(e) == D - }, Fn.isWeakSet = function(e) { - return ns(e) && "[object WeakSet]" == Ea(e) - }, Fn.join = function(e, t) { - return null == e ? "" : fn.call(e, t) - }, Fn.kebabCase = Ws, Fn.last = Ji, Fn.lastIndexOf = function(e, t, n) { - var a = null == e ? 0 : e.length; - if (!a) return -1; - var i = a; - return n !== r && (i = (i = fs(n)) < 0 ? bn(a + i, 0) : yn(i, a - 1)), t == t ? function(e, t, n) { - for (var a = n + 1; a--;) - if (e[a] === t) return a; - return a - }(e, t, i) : Ot(e, Nt, i, !0) - }, Fn.lowerCase = Ys, Fn.lowerFirst = Gs, Fn.lt = ds, Fn.lte = ps, Fn.max = function(e) { - return e && e.length ? ma(e, rl, xa) : r - }, Fn.maxBy = function(e, t) { - return e && e.length ? ma(e, oi(t, 2), xa) : r - }, Fn.mean = function(e) { - return zt(e, rl) - }, Fn.meanBy = function(e, t) { - return zt(e, oi(t, 2)) - }, Fn.min = function(e) { - return e && e.length ? ma(e, rl, za) : r - }, Fn.minBy = function(e, t) { - return e && e.length ? ma(e, oi(t, 2), za) : r - }, Fn.stubArray = gl, Fn.stubFalse = bl, Fn.stubObject = function() { - return {} - }, Fn.stubString = function() { - return "" - }, Fn.stubTrue = function() { - return !0 - }, Fn.multiply = Sl, Fn.nth = function(e, t) { - return e && e.length ? Ba(e, fs(t)) : r - }, Fn.noConflict = function() { - return it._ === this && (it._ = Le), this - }, Fn.noop = cl, Fn.now = Ao, Fn.pad = function(e, t, n) { - e = vs(e); - var a = (t = fs(t)) ? rn(e) : 0; - if (!t || a >= t) return e; - var r = (t - a) / 2; - return Ur(dn(r), n) + e + Ur(un(r), n) - }, Fn.padEnd = function(e, t, n) { - e = vs(e); - var a = (t = fs(t)) ? rn(e) : 0; - return t && a < t ? e + Ur(t - a, n) : e - }, Fn.padStart = function(e, t, n) { - e = vs(e); - var a = (t = fs(t)) ? rn(e) : 0; - return t && a < t ? Ur(t - a, n) + e : e - }, Fn.parseInt = function(e, t, n) { - return n || null == t ? t = 0 : t && (t = +t), kn(vs(e).replace(ae, ""), t || 0) - }, Fn.random = function(e, t, n) { - if (n && "boolean" != typeof n && bi(e, t, n) && (t = n = r), n === r && ("boolean" == typeof t ? (n = t, t = r) : "boolean" == typeof e && (n = e, e = r)), e === r && t === r ? (e = 0, t = 1) : (e = ms(e), t === r ? (t = e, e = 0) : t = ms(t)), e > t) { - var a = e; - e = t, t = a - } - if (n || e % 1 || t % 1) { - var i = _n(); - return yn(e + i * (t - e + tt("1e-" + ((i + "").length - 1))), t) - } - return Ya(e, t) - }, Fn.reduce = function(e, t, n) { - var a = Wo(e) ? At : Ft, - r = arguments.length < 3; - return a(e, oi(t, 4), n, r, da) - }, Fn.reduceRight = function(e, t, n) { - var a = Wo(e) ? jt : Ft, - r = arguments.length < 3; - return a(e, oi(t, 4), n, r, pa) - }, Fn.repeat = function(e, t, n) { - return t = (n ? bi(e, t, n) : t === r) ? 1 : fs(t), Ga(vs(e), t) - }, Fn.replace = function() { - var e = arguments, - t = vs(e[0]); - return e.length < 3 ? t : t.replace(e[1], e[2]) - }, Fn.result = function(e, t, n) { - var a = -1, - i = (t = br(t, e)).length; - for (i || (i = 1, e = r); ++a < i;) { - var o = null == e ? r : e[Ri(t[a])]; - o === r && (a = i, o = n), e = Qo(o) ? o.call(e) : o - } - return e - }, Fn.round = El, Fn.runInContext = e, Fn.sample = function(e) { - return (Wo(e) ? Jn : $a)(e) - }, Fn.size = function(e) { - if (null == e) return 0; - if (Go(e)) return ls(e) ? rn(e) : e.length; - var t = pi(e); - return t == w || t == A ? e.size : Na(e).length - }, Fn.snakeCase = Ks, Fn.some = function(e, t, n) { - var a = Wo(e) ? Pt : nr; - return n && bi(e, t, n) && (t = r), a(e, oi(t, 3)) - }, Fn.sortedIndex = function(e, t) { - return ar(e, t) - }, Fn.sortedIndexBy = function(e, t, n) { - return rr(e, t, oi(n, 2)) - }, Fn.sortedIndexOf = function(e, t) { - var n = null == e ? 0 : e.length; - if (n) { - var a = ar(e, t); - if (a < n && Bo(e[a], t)) return a - } - return -1 - }, Fn.sortedLastIndex = function(e, t) { - return ar(e, t, !0) - }, Fn.sortedLastIndexBy = function(e, t, n) { - return rr(e, t, oi(n, 2), !0) - }, Fn.sortedLastIndexOf = function(e, t) { - if (null != e && e.length) { - var n = ar(e, t, !0) - 1; - if (Bo(e[n], t)) return n - } - return -1 - }, Fn.startCase = $s, Fn.startsWith = function(e, t, n) { - return e = vs(e), n = null == n ? 0 : oa(fs(n), 0, e.length), t = sr(t), e.slice(n, n + t.length) == t - }, Fn.subtract = xl, Fn.sum = function(e) { - return e && e.length ? qt(e, rl) : 0 - }, Fn.sumBy = function(e, t) { - return e && e.length ? qt(e, oi(t, 2)) : 0 - }, Fn.template = function(e, t, n) { - var a = Fn.templateSettings; - n && bi(e, t, n) && (t = r), e = vs(e), t = ws({}, t, a, Jr); - var i, o, s = ws({}, t.imports, a.imports, Jr), - l = Os(s), - c = Vt(s, l), - u = 0, - d = t.interpolate || ve, - p = "__p += '", - h = xe((t.escape || ve).source + "|" + d.source + "|" + (d === Z ? de : ve).source + "|" + (t.evaluate || ve).source + "|$", "g"), - m = "//# sourceURL=" + (Me.call(t, "sourceURL") ? (t.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++Ze + "]") + "\n"; - e.replace(h, (function(t, n, a, r, s, l) { - return a || (a = r), p += e.slice(u, l).replace(ke, Zt), n && (i = !0, p += "' +\n__e(" + n + ") +\n'"), s && (o = !0, p += "';\n" + s + ";\n__p += '"), a && (p += "' +\n((__t = (" + a + ")) == null ? '' : __t) +\n'"), u = l + t.length, t - })), p += "';\n"; - var f = Me.call(t, "variable") && t.variable; - if (f) { - if (ce.test(f)) throw new _e("Invalid `variable` option passed into `_.template`") - } else p = "with (obj) {\n" + p + "\n}\n"; - p = (o ? p.replace(U, "") : p).replace(H, "$1").replace(V, "$1;"), p = "function(" + (f || "obj") + ") {\n" + (f ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (i ? ", __e = _.escape" : "") + (o ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + p + "return __p\n}"; - var g = Xs((function() { - return we(l, m + "return " + p).apply(r, c) - })); - if (g.source = p, Zo(g)) throw g; - return g - }, Fn.times = function(e, t) { - if ((e = fs(e)) < 1 || e > d) return []; - var n = h, - a = yn(e, h); - t = oi(t), e -= h; - for (var r = Bt(a, t); ++n < e;) t(n); - return r - }, Fn.toFinite = ms, Fn.toInteger = fs, Fn.toLength = gs, Fn.toLower = function(e) { - return vs(e).toLowerCase() - }, Fn.toNumber = bs, Fn.toSafeInteger = function(e) { - return e ? oa(fs(e), -9007199254740991, d) : 0 === e ? e : 0 - }, Fn.toString = vs, Fn.toUpper = function(e) { - return vs(e).toUpperCase() - }, Fn.trim = function(e, t, n) { - if ((e = vs(e)) && (n || t === r)) return Ut(e); - if (!e || !(t = sr(t))) return e; - var a = on(e), - i = on(t); - return vr(a, Yt(a, i), Gt(a, i) + 1).join("") - }, Fn.trimEnd = function(e, t, n) { - if ((e = vs(e)) && (n || t === r)) return e.slice(0, sn(e) + 1); - if (!e || !(t = sr(t))) return e; - var a = on(e); - return vr(a, 0, Gt(a, on(t)) + 1).join("") - }, Fn.trimStart = function(e, t, n) { - if ((e = vs(e)) && (n || t === r)) return e.replace(ae, ""); - if (!e || !(t = sr(t))) return e; - var a = on(e); - return vr(a, Yt(a, on(t))).join("") - }, Fn.truncate = function(e, t) { - var n = 30, - a = "..."; - if (ts(t)) { - var i = "separator" in t ? t.separator : i; - n = "length" in t ? fs(t.length) : n, a = "omission" in t ? sr(t.omission) : a - } - var o = (e = vs(e)).length; - if (Qt(e)) { - var s = on(e); - o = s.length - } - if (n >= o) return e; - var l = n - rn(a); - if (l < 1) return a; - var c = s ? vr(s, 0, l).join("") : e.slice(0, l); - if (i === r) return c + a; - if (s && (l += c.length - l), os(i)) { - if (e.slice(l).search(i)) { - var u, d = c; - for (i.global || (i = xe(i.source, vs(pe.exec(i)) + "g")), i.lastIndex = 0; u = i.exec(d);) var p = u.index; - c = c.slice(0, p === r ? l : p) - } - } else if (e.indexOf(sr(i), l) != l) { - var h = c.lastIndexOf(i); - h > -1 && (c = c.slice(0, h)) - } - return c + a - }, Fn.unescape = function(e) { - return (e = vs(e)) && G.test(e) ? e.replace(W, ln) : e - }, Fn.uniqueId = function(e) { - var t = ++Ie; - return vs(e) + t - }, Fn.upperCase = Js, Fn.upperFirst = Zs, Fn.each = vo, Fn.eachRight = ko, Fn.first = Yi, ll(Fn, (yl = {}, va(Fn, (function(e, t) { - Me.call(Fn.prototype, t) || (yl[t] = e) - })), yl), { - chain: !1 - }), Fn.VERSION = "4.17.21", vt(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], (function(e) { - Fn[e].placeholder = Fn - })), vt(["drop", "take"], (function(e, t) { - Hn.prototype[e] = function(n) { - n = n === r ? 1 : bn(fs(n), 0); - var a = this.__filtered__ && !t ? new Hn(this) : this.clone(); - return a.__filtered__ ? a.__takeCount__ = yn(n, a.__takeCount__) : a.__views__.push({ - size: yn(n, h), - type: e + (a.__dir__ < 0 ? "Right" : "") - }), a - }, Hn.prototype[e + "Right"] = function(t) { - return this.reverse()[e](t).reverse() - } - })), vt(["filter", "map", "takeWhile"], (function(e, t) { - var n = t + 1, - a = 1 == n || 3 == n; - Hn.prototype[e] = function(e) { - var t = this.clone(); - return t.__iteratees__.push({ - iteratee: oi(e, 3), - type: n - }), t.__filtered__ = t.__filtered__ || a, t - } - })), vt(["head", "last"], (function(e, t) { - var n = "take" + (t ? "Right" : ""); - Hn.prototype[e] = function() { - return this[n](1).value()[0] - } - })), vt(["initial", "tail"], (function(e, t) { - var n = "drop" + (t ? "" : "Right"); - Hn.prototype[e] = function() { - return this.__filtered__ ? new Hn(this) : this[n](1) - } - })), Hn.prototype.compact = function() { - return this.filter(rl) - }, Hn.prototype.find = function(e) { - return this.filter(e).head() - }, Hn.prototype.findLast = function(e) { - return this.reverse().find(e) - }, Hn.prototype.invokeMap = Ka((function(e, t) { - return "function" == typeof e ? new Hn(this) : this.map((function(n) { - return Pa(n, e, t) - })) - })), Hn.prototype.reject = function(e) { - return this.filter(zo(oi(e))) - }, Hn.prototype.slice = function(e, t) { - e = fs(e); - var n = this; - return n.__filtered__ && (e > 0 || t < 0) ? new Hn(n) : (e < 0 ? n = n.takeRight(-e) : e && (n = n.drop(e)), t !== r && (n = (t = fs(t)) < 0 ? n.dropRight(-t) : n.take(t - e)), n) - }, Hn.prototype.takeRightWhile = function(e) { - return this.reverse().takeWhile(e).reverse() - }, Hn.prototype.toArray = function() { - return this.take(h) - }, va(Hn.prototype, (function(e, t) { - var n = /^(?:filter|find|map|reject)|While$/.test(t), - a = /^(?:head|last)$/.test(t), - i = Fn[a ? "take" + ("last" == t ? "Right" : "") : t], - o = a || /^find/.test(t); - i && (Fn.prototype[t] = function() { - var t = this.__wrapped__, - s = a ? [1] : arguments, - l = t instanceof Hn, - c = s[0], - u = l || Wo(t), - d = function(e) { - var t = i.apply(Fn, Ct([e], s)); - return a && p ? t[0] : t - }; - u && n && "function" == typeof c && 1 != c.length && (l = u = !1); - var p = this.__chain__, - h = !!this.__actions__.length, - m = o && !p, - f = l && !h; - if (!o && u) { - t = f ? t : new Hn(this); - var g = e.apply(t, s); - return g.__actions__.push({ - func: mo, - args: [d], - thisArg: r - }), new Un(g, p) - } - return m && f ? e.apply(this, s) : (g = this.thru(d), m ? a ? g.value()[0] : g.value() : g) - }) - })), vt(["pop", "push", "shift", "sort", "splice", "unshift"], (function(e) { - var t = je[e], - n = /^(?:push|sort|unshift)$/.test(e) ? "tap" : "thru", - a = /^(?:pop|shift)$/.test(e); - Fn.prototype[e] = function() { - var e = arguments; - if (a && !this.__chain__) { - var r = this.value(); - return t.apply(Wo(r) ? r : [], e) - } - return this[n]((function(n) { - return t.apply(Wo(n) ? n : [], e) - })) - } - })), va(Hn.prototype, (function(e, t) { - var n = Fn[t]; - if (n) { - var a = n.name + ""; - Me.call(Dn, a) || (Dn[a] = []), Dn[a].push({ - name: t, - func: n - }) - } - })), Dn[Lr(r, 2).name] = [{ - name: "wrapper", - func: r - }], Hn.prototype.clone = function() { - var e = new Hn(this.__wrapped__); - return e.__actions__ = Ar(this.__actions__), e.__dir__ = this.__dir__, e.__filtered__ = this.__filtered__, e.__iteratees__ = Ar(this.__iteratees__), e.__takeCount__ = this.__takeCount__, e.__views__ = Ar(this.__views__), e - }, Hn.prototype.reverse = function() { - if (this.__filtered__) { - var e = new Hn(this); - e.__dir__ = -1, e.__filtered__ = !0 - } else(e = this.clone()).__dir__ *= -1; - return e - }, Hn.prototype.value = function() { - var e = this.__wrapped__.value(), - t = this.__dir__, - n = Wo(e), - a = t < 0, - r = n ? e.length : 0, - i = function(e, t, n) { - for (var a = -1, r = n.length; ++a < r;) { - var i = n[a], - o = i.size; - switch (i.type) { - case "drop": - e += o; - break; - case "dropRight": - t -= o; - break; - case "take": - t = yn(t, e + o); - break; - case "takeRight": - e = bn(e, t - o) - } - } - return { - start: e, - end: t - } - }(0, r, this.__views__), - o = i.start, - s = i.end, - l = s - o, - c = a ? s : o - 1, - u = this.__iteratees__, - d = u.length, - p = 0, - h = yn(l, this.__takeCount__); - if (!n || !a && r == l && h == l) return pr(e, this.__actions__); - var m = []; - e: for (; l-- && p < h;) { - for (var f = -1, g = e[c += t]; ++f < d;) { - var b = u[f], - y = b.iteratee, - v = b.type, - k = y(g); - if (2 == v) g = k; - else if (!k) { - if (1 == v) continue e; - break e - } - } - m[p++] = g - } - return m - }, Fn.prototype.at = fo, Fn.prototype.chain = function() { - return ho(this) - }, Fn.prototype.commit = function() { - return new Un(this.value(), this.__chain__) - }, Fn.prototype.next = function() { - this.__values__ === r && (this.__values__ = hs(this.value())); - var e = this.__index__ >= this.__values__.length; - return { - done: e, - value: e ? r : this.__values__[this.__index__++] - } - }, Fn.prototype.plant = function(e) { - for (var t, n = this; n instanceof Bn;) { - var a = Fi(n); - a.__index__ = 0, a.__values__ = r, t ? i.__wrapped__ = a : t = a; - var i = a; - n = n.__wrapped__ - } - return i.__wrapped__ = e, t - }, Fn.prototype.reverse = function() { - var e = this.__wrapped__; - if (e instanceof Hn) { - var t = e; - return this.__actions__.length && (t = new Hn(this)), (t = t.reverse()).__actions__.push({ - func: mo, - args: [eo], - thisArg: r - }), new Un(t, this.__chain__) + } + + function Wr(e, t, n, a, i, o, s, c, u, d) { + var p = 8 & t; + t |= p ? l : 64, 4 & (t &= ~(p ? 64 : l)) || (t &= -4); + var h = [e, t, i, p ? o : r, p ? s : r, p ? r : o, p ? r : s, c, u, d], + m = n.apply(r, h); + return vi(e) && Ti(m, h), m.placeholder = a, ji(m, e, t) + } + + function Yr(e) { + var t = Se[e]; + return function(e, n) { + if (e = bs(e), (n = null == n ? 0 : yn(fs(n), 292)) && mn(e)) { + var a = (vs(e) + "e").split("e"); + return +((a = (vs(t(a[0] + "e" + (+a[1] + n))) + "e").split("e"))[0] + "e" + (+a[1] - n)) } - return this.thru(eo) - }, Fn.prototype.toJSON = Fn.prototype.valueOf = Fn.prototype.value = function() { - return pr(this.__wrapped__, this.__actions__) - }, Fn.prototype.first = Fn.prototype.head, ot && (Fn.prototype[ot] = function() { - return this - }), Fn - }(); - it._ = cn, (a = function() { - return cn - }.call(t, n, t, e)) === r || (e.exports = a) - }.call(this) - }, 9244: (e, t, n) => { - var a = n(4366); - e.exports = function() { - return a.Date.now() - } - }, 4167: (e, t, n) => { - var a = n(3645), - r = n(1716); - e.exports = function(e, t, n) { - var i = !0, - o = !0; - if ("function" != typeof e) throw new TypeError("Expected a function"); - return r(n) && (i = "leading" in n ? !!n.leading : i, o = "trailing" in n ? !!n.trailing : o), a(e, t, { - leading: i, - maxWait: t, - trailing: o - }) - } - }, 1666: (e, t, n) => { - var a = n(4182), - r = n(1716), - i = n(2570), - o = /^[-+]0x[0-9a-f]+$/i, - s = /^0b[01]+$/i, - l = /^0o[0-7]+$/i, - c = parseInt; - e.exports = function(e) { - if ("number" == typeof e) return e; - if (i(e)) return NaN; - if (r(e)) { - var t = "function" == typeof e.valueOf ? e.valueOf() : e; - e = r(t) ? t + "" : t - } - if ("string" != typeof e) return 0 === e ? e : +e; - e = a(e); - var n = s.test(e); - return n || l.test(e) ? c(e.slice(2), n ? 2 : 8) : o.test(e) ? NaN : +e - } - }, 5135: function(e, t, n) { - var a, r, i, o, s; - o = this, s = function(e) { - var t = !1, - n = !1, - a = "escape years months weeks days hours minutes seconds milliseconds general".split(" "), - r = [{ - type: "seconds", - targets: [{ - type: "minutes", - value: 60 - }, { - type: "hours", - value: 3600 - }, { - type: "days", - value: 86400 - }, { - type: "weeks", - value: 604800 - }, { - type: "months", - value: 2678400 - }, { - type: "years", - value: 31536e3 - }] - }, { - type: "minutes", - targets: [{ - type: "hours", - value: 60 - }, { - type: "days", - value: 1440 - }, { - type: "weeks", - value: 10080 - }, { - type: "months", - value: 44640 - }, { - type: "years", - value: 525600 - }] - }, { - type: "hours", - targets: [{ - type: "days", - value: 24 - }, { - type: "weeks", - value: 168 - }, { - type: "months", - value: 744 - }, { - type: "years", - value: 8760 - }] - }, { - type: "days", - targets: [{ - type: "weeks", - value: 7 - }, { - type: "months", - value: 31 - }, { - type: "years", - value: 365 - }] - }, { - type: "months", - targets: [{ - type: "years", - value: 12 - }] - }]; + return t(e) + } + } + var Gr = Cn && 1 / nn(new Cn([, -0]))[1] == u ? function(e) { + return new Cn(e) + } : cl; - function i(e, t) { - return !(t.length > e.length) && -1 !== e.indexOf(t) - } + function Kr(e) { + return function(t) { + var n = pi(t); + return n == w ? Xt(t) : n == A ? an(t) : function(e, t) { + return xt(t, (function(t) { + return [t, e[t]] + })) + }(t, e(t)) + } + } + + function $r(e, t, n, o, u, d, p, h) { + var m = 2 & t; + if (!m && "function" != typeof e) throw new Ae(i); + var f = o ? o.length : 0; + if (f || (t &= -97, o = u = r), p = p === r ? p : bn(fs(p), 0), h = h === r ? h : fs(h), f -= u ? u.length : 0, 64 & t) { + var g = o, + b = u; + o = u = r + } + var y = m ? r : ai(e), + v = [e, t, n, o, u, g, b, d, p, h]; + if (y && function(e, t) { + var n = e[1], + a = t[1], + r = n | a, + i = r < 131, + o = a == c && 8 == n || a == c && 256 == n && e[7].length <= t[8] || 384 == a && t[7].length <= t[8] && 8 == n; + if (!i && !o) return e; + 1 & a && (e[2] = t[2], r |= 1 & n ? 0 : 4); + var l = t[3]; + if (l) { + var u = e[3]; + e[3] = u ? xr(u, l, t[4]) : l, e[4] = u ? tn(e[3], s) : t[4] + }(l = t[5]) && (u = e[5], e[5] = u ? Cr(u, l, t[6]) : l, e[6] = u ? tn(e[5], s) : t[6]), (l = t[7]) && (e[7] = l), a & c && (e[8] = null == e[8] ? t[8] : yn(e[8], t[8])), null == e[9] && (e[9] = t[9]), e[0] = t[0], e[1] = r + }(v, y), e = v[0], t = v[1], n = v[2], o = v[3], u = v[4], !(h = v[9] = v[9] === r ? m ? 0 : e.length : bn(v[9] - f, 0)) && 24 & t && (t &= -25), t && 1 != t) k = 8 == t || 16 == t ? function(e, t, n) { + var i = Nr(e); + return function o() { + for (var s = arguments.length, l = a(s), c = s, u = ii(o); c--;) l[c] = arguments[c]; + var d = s < 3 && l[0] !== u && l[s - 1] !== u ? [] : tn(l, u); + return (s -= d.length) < n ? Wr(e, t, Lr, o.placeholder, r, l, d, r, r, n - s) : bt(this && this !== it && this instanceof o ? i : e, this, l) + } + }(e, t, h) : t != l && 33 != t || u.length ? Lr.apply(r, v) : function(e, t, n, r) { + var i = 1 & t, + o = Nr(e); + return function t() { + for (var s = -1, l = arguments.length, c = -1, u = r.length, d = a(u + l), p = this && this !== it && this instanceof t ? o : e; ++c < u;) d[c] = r[c]; + for (; l--;) d[c++] = arguments[++s]; + return bt(p, i ? n : this, d) + } + }(e, t, n, o); + else var k = function(e, t, n) { + var a = 1 & t, + r = Nr(e); + return function t() { + return (this && this !== it && this instanceof t ? r : e).apply(a ? n : this, arguments) + } + }(e, t, n); + return ji((y ? Qa : Ti)(k, v), e, t) + } - function o(e) { - for (var t = ""; e;) t += "0", e -= 1; - return t - } + function Jr(e, t, n, a) { + return e === r || Bo(e, Pe[n]) && !Ie.call(a, n) ? t : e + } - function s(e, t, a) { - var r, i, l, c = t.useToLocaleString, - u = t.useGrouping, - d = u && t.grouping.slice(), - p = t.maximumSignificantDigits, - h = t.minimumIntegerDigits || 1, - m = t.fractionDigits || 0, - f = t.groupingSeparator, - g = t.decimalSeparator; - if (c && a) { - var b = { - minimumIntegerDigits: h, - useGrouping: u - }; - if (m && (b.maximumFractionDigits = m, b.minimumFractionDigits = m), p && e > 0 && (b.maximumSignificantDigits = p), !n) { - var y = S({}, t); - y.useGrouping = !1, y.decimalSeparator = ".", e = parseFloat(s(e, y), 10) - } - return e.toLocaleString(a, b) - } - var v = (p ? e.toPrecision(p + 1) : e.toFixed(m + 1)).split("e"); - l = v[1] || "", i = (v = v[0].split("."))[1] || ""; - var k = (r = v[0] || "").length, - _ = i.length, - w = k + _, - E = r + i; - (p && w === p + 1 || !p && _ === m + 1) && ((E = function(e) { - for (var t = e.split("").reverse(), n = 0, a = !0; a && n < t.length;) n ? "9" === t[n] ? t[n] = "0" : (t[n] = (parseInt(t[n], 10) + 1).toString(), a = !1) : (parseInt(t[n], 10) < 5 && (a = !1), t[n] = "0"), n += 1; - return a && t.push("1"), t.reverse().join("") - }(E)).length === w + 1 && (k += 1), _ && (E = E.slice(0, -1)), r = E.slice(0, k), i = E.slice(k)), p && (i = i.replace(/0*$/, "")); - var x = parseInt(l, 10); - x > 0 ? i.length <= x ? (r += i += o(x - i.length), i = "") : (r += i.slice(0, x), i = i.slice(x)) : x < 0 && (i = o(Math.abs(x) - r.length) + r + i, r = "0"), p || ((i = i.slice(0, m)).length < m && (i += o(m - i.length)), r.length < h && (r = o(h - r.length) + r)); - var C, A = ""; - if (u) - for (v = r; v.length;) d.length && (C = d.shift()), A && (A = f + A), A = v.slice(-C) + A, v = v.slice(0, -C); - else A = r; - return i && (A = A + g + i), A - } - - function l(e, t) { - return e.label.length > t.label.length ? -1 : e.label.length < t.label.length ? 1 : 0 - } - - function c(e, t) { - var n = []; - return f(E(t), (function(a) { - if ("_durationLabels" === a.slice(0, 15)) { - var r = a.slice(15).toLowerCase(); - f(E(t[a]), (function(i) { - i.slice(0, 1) === e && n.push({ - type: r, - key: i, - label: t[a][i] - }) - })) + function Zr(e, t, n, a, i, o) { + return ts(e) && ts(t) && (o.set(t, e), qa(e, t, r, Zr, o), o.delete(t)), e } - })), n - } - var u, d = { - durationLabelsStandard: { - S: "millisecond", - SS: "milliseconds", - s: "second", - ss: "seconds", - m: "minute", - mm: "minutes", - h: "hour", - hh: "hours", - d: "day", - dd: "days", - w: "week", - ww: "weeks", - M: "month", - MM: "months", - y: "year", - yy: "years" - }, - durationLabelsShort: { - S: "msec", - SS: "msecs", - s: "sec", - ss: "secs", - m: "min", - mm: "mins", - h: "hr", - hh: "hrs", - d: "dy", - dd: "dys", - w: "wk", - ww: "wks", - M: "mo", - MM: "mos", - y: "yr", - yy: "yrs" - }, - durationTimeTemplates: { - HMS: "h:mm:ss", - HM: "h:mm", - MS: "m:ss" - }, - durationLabelTypes: [{ - type: "standard", - string: "__" - }, { - type: "short", - string: "_" - }], - durationPluralKey: function(e, t, n) { - return 1 === t && null === n ? e : e + e - } - }; - function p(e) { - return "[object Array]" === Object.prototype.toString.call(e) - } + function Qr(e) { + return is(e) ? r : e + } - function h(e) { - return "[object Object]" === Object.prototype.toString.call(e) - } + function Xr(e, t, n, a, i, o) { + var s = 1 & n, + l = e.length, + c = t.length; + if (l != c && !(s && c > l)) return !1; + var u = o.get(e), + d = o.get(t); + if (u && d) return u == t && d == e; + var p = -1, + h = !0, + m = 2 & n ? new Gn : r; + for (o.set(e, t), o.set(t, e); ++p < l;) { + var f = e[p], + g = t[p]; + if (a) var b = s ? a(g, f, p, t, e, o) : a(f, g, p, e, t, o); + if (b !== r) { + if (b) continue; + h = !1; + break + } + if (m) { + if (!Dt(t, (function(e, t) { + if (!Wt(m, t) && (f === e || i(f, e, n, a, o))) return m.push(t) + }))) { + h = !1; + break + } + } else if (f !== g && !i(f, g, n, a, o)) { + h = !1; + break + } + } + return o.delete(e), o.delete(t), h + } - function m(e, t) { - var n, a = 0, - r = e && e.length || 0; - for ("function" != typeof t && (n = t, t = function(e) { - return e === n - }); a < r;) { - if (t(e[a])) return e[a]; - a += 1 - } - } + function ei(e) { + return Pi(Ei(e, r, Wi), e + "") + } - function f(e, t) { - var n = 0, - a = e.length; - if (e && a) - for (; n < a;) { - if (!1 === t(e[n], n)) return; - n += 1 + function ti(e) { + return Sa(e, Ms, ui) } - } - function g(e, t) { - var n = 0, - a = e.length, - r = []; - if (!e || !a) return r; - for (; n < a;) r[n] = t(e[n], n), n += 1; - return r - } + function ni(e) { + return Sa(e, Is, di) + } + var ai = Dn ? function(e) { + return Dn.get(e) + } : cl; - function b(e, t) { - return g(e, (function(e) { - return e[t] - })) - } + function ri(e) { + for (var t = e.name + "", n = Pn[t], a = Ie.call(Pn, t) ? n.length : 0; a--;) { + var r = n[a], + i = r.func; + if (null == i || i == e) return r.name + } + return t + } - function y(e) { - var t = []; - return f(e, (function(e) { - e && t.push(e) - })), t - } + function ii(e) { + return (Ie.call(Fn, "placeholder") ? Fn : e).placeholder + } - function v(e) { - var t = []; - return f(e, (function(e) { - m(t, e) || t.push(e) - })), t - } + function oi() { + var e = Fn.iteratee || il; + return e = e === il ? Oa : e, arguments.length ? e(arguments[0], arguments[1]) : e + } - function k(e, t) { - var n = []; - return f(e, (function(e) { - f(t, (function(t) { - e === t && n.push(e) - })) - })), v(n) - } + function si(e, t) { + var n, a, r = e.__data__; + return ("string" == (a = typeof(n = t)) || "number" == a || "symbol" == a || "boolean" == a ? "__proto__" !== n : null === n) ? r["string" == typeof t ? "string" : "hash"] : r.map + } - function _(e, t) { - var n = []; - return f(e, (function(a, r) { - if (!t(a)) return n = e.slice(r), !1 - })), n - } + function li(e) { + for (var t = Ms(e), n = t.length; n--;) { + var a = t[n], + r = e[a]; + t[n] = [a, r, wi(r)] + } + return t + } - function w(e, t) { - return _(e.slice().reverse(), t).reverse() - } + function ci(e, t) { + var n = function(e, t) { + return null == e ? r : e[t] + }(e, t); + return Ia(n) ? n : r + } + var ui = pn ? function(e) { + return null == e ? [] : (e = Ee(e), wt(pn(e), (function(t) { + return et.call(e, t) + }))) + } : gl, + di = pn ? function(e) { + for (var t = []; e;) Ct(t, ui(e)), e = Ye(e); + return t + } : gl, + pi = Ea; - function S(e, t) { - for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); - return e - } + function hi(e, t, n) { + for (var a = -1, r = (t = br(t, e)).length, i = !1; ++a < r;) { + var o = zi(t[a]); + if (!(i = null != e && n(e, o))) break; + e = e[o] + } + return i || ++a != r ? i : !!(r = null == e ? 0 : e.length) && es(r) && gi(o, r) && (Wo(e) || Vo(e)) + } - function E(e) { - var t = []; - for (var n in e) e.hasOwnProperty(n) && t.push(n); - return t - } + function mi(e) { + return "function" != typeof e.constructor || _i(e) ? {} : qn(Ye(e)) + } - function x(e, t) { - var n = 0, - a = e.length; - if (!e || !a) return !1; - for (; n < a;) { - if (!0 === t(e[n], n)) return !0; - n += 1 - } - return !1 - } + function fi(e) { + return Wo(e) || Vo(e) || !!(rt && e && e[rt]) + } - function C(e) { - var t = []; - return f(e, (function(e) { - t = t.concat(e) - })), t - } + function gi(e, t) { + var n = typeof e; + return !!(t = null == t ? d : t) && ("number" == n || "symbol" != n && be.test(e)) && e > -1 && e % 1 == 0 && e < t + } - function A() { - var e, t = [].slice.call(arguments), - n = {}; - if (f(t, (function(t, a) { - if (!a) { - if (!p(t)) throw "Expected array as the first argument to durationsFormat."; - e = t - } - "string" != typeof t && "function" != typeof t ? "number" != typeof t ? h(t) && S(n, t) : n.precision = t : n.template = t - })), !e || !e.length) return []; - n.returnMomentTypes = !0; - var r = g(e, (function(e) { - return e.format(n) - })), - i = k(a, v(b(C(r), "type"))), - o = n.largest; - return o && (i = i.slice(0, o)), n.returnMomentTypes = !1, n.outputTypes = i, g(e, (function(e) { - return e.format(n) - })) - } + function bi(e, t, n) { + if (!ts(n)) return !1; + var a = typeof t; + return !!("number" == a ? Go(n) && gi(t, n.length) : "string" == a && t in n) && Bo(n[t], e) + } - function j() { - var n = [].slice.call(arguments), - o = S({}, this.format.defaults), - u = this.asMilliseconds(), - C = this.asMonths(); - "function" == typeof this.isValid && !1 === this.isValid() && (u = 0, C = 0); - var A = u < 0, - j = e.duration(Math.abs(u), "milliseconds"), - P = e.duration(Math.abs(C), "months"); - f(n, (function(e) { - "string" != typeof e && "function" != typeof e ? "number" != typeof e ? h(e) && S(o, e) : o.precision = e : o.template = e - })); - var D = { - years: "y", - months: "M", - weeks: "w", - days: "d", - hours: "h", - minutes: "m", - seconds: "s", - milliseconds: "S" - }, - T = { - escape: /\[(.+?)\]/, - years: /\*?[Yy]+/, - months: /\*?M+/, - weeks: /\*?[Ww]+/, - days: /\*?[Dd]+/, - hours: /\*?[Hh]+/, - minutes: /\*?m+/, - seconds: /\*?s+/, - milliseconds: /\*?S+/, - general: /.+?/ - }; - o.types = a; - var O = function(e) { - return m(a, (function(t) { - return T[t].test(e) - })) - }, - M = new RegExp(g(a, (function(e) { - return T[e].source - })).join("|"), "g"); - o.duration = this; - var I = "function" == typeof o.template ? o.template.apply(o) : o.template, - N = o.outputTypes, - z = o.returnMomentTypes, - R = o.largest, - L = []; - N || (p(o.stopTrim) && (o.stopTrim = o.stopTrim.join("")), o.stopTrim && f(o.stopTrim.match(M), (function(e) { - var t = O(e); - "escape" !== t && "general" !== t && L.push(t) - }))); - var F = e.localeData(); - F || (F = {}), f(E(d), (function(e) { - "function" != typeof d[e] ? F["_" + e] || (F["_" + e] = d[e]) : F[e] || (F[e] = d[e]) - })), f(E(F._durationTimeTemplates), (function(e) { - I = I.replace("_" + e + "_", F._durationTimeTemplates[e]) - })); - var q = o.userLocale || e.locale(), - B = o.useLeftUnits, - U = o.usePlural, - H = o.precision, - V = o.forceLength, - W = o.useGrouping, - Y = o.trunc, - G = o.useSignificantDigits && H > 0, - K = G ? o.precision : 0, - $ = K, - J = o.minValue, - Z = !1, - Q = o.maxValue, - X = !1, - ee = o.useToLocaleString, - te = o.groupingSeparator, - ne = o.decimalSeparator, - ae = o.grouping; - ee = ee && t; - var re = o.trim; - p(re) && (re = re.join(" ")), null === re && (R || Q || G) && (re = "all"), null !== re && !0 !== re && "left" !== re && "right" !== re || (re = "large"), !1 === re && (re = ""); - var ie = function(e) { - return e.test(re) - }, - oe = /large/, - se = /small/, - le = /both/, - ce = /mid/, - ue = /^all|[^sm]all/, - de = /final/, - pe = R > 0 || x([oe, le, ue], ie), - he = x([se, le, ue], ie), - me = x([ce, ue], ie), - fe = x([de, ue], ie), - ge = g(I.match(M), (function(e, t) { - var n = O(e); - return "*" === e.slice(0, 1) && (e = e.slice(1), "escape" !== n && "general" !== n && L.push(n)), { - index: t, - length: e.length, - text: "", - token: "escape" === n ? e.replace(T.escape, "$1") : e, - type: "escape" === n || "general" === n ? null : n - } - })), - be = { - index: 0, - length: 0, - token: "", - text: "", - type: null - }, - ye = []; - B && ge.reverse(), f(ge, (function(e) { - if (e.type) return (be.type || be.text) && ye.push(be), void(be = e); - B ? be.text = e.token + be.text : be.text += e.token - })), (be.type || be.text) && ye.push(be), B && ye.reverse(); - var ve = k(a, v(y(b(ye, "type")))); - if (!ve.length) return b(ye, "text").join(""); - ve = g(ve, (function(e, t) { - var n, a = t + 1 === ve.length, - r = !t; - n = "years" === e || "months" === e ? P.as(e) : j.as(e); - var i = Math.floor(n), - s = n - i, - l = m(ye, (function(t) { - return e === t.type - })); - return r && Q && n > Q && (X = !0), a && J && Math.abs(o.duration.as(e)) < J && (Z = !0), r && null === V && l.length > 1 && (V = !0), j.subtract(i, e), P.subtract(i, e), { - rawValue: n, - wholeValue: i, - decimalValue: a ? s : 0, - isSmallest: a, - isLargest: r, - type: e, - tokenLength: l.length + function yi(e, t) { + if (Wo(e)) return !1; + var n = typeof e; + return !("number" != n && "symbol" != n && "boolean" != n && null != e && !cs(e)) || X.test(e) || !Q.test(e) || null != t && e in Ee(t) } - })); - var ke = Y ? Math.floor : Math.round, - _e = function(e, t) { - var n = Math.pow(10, t); - return ke(e * n) / n - }, - we = !1, - Se = !1, - Ee = function(e, t) { - var n = { - useGrouping: W, - groupingSeparator: te, - decimalSeparator: ne, - grouping: ae, - useToLocaleString: ee - }; - return G && (K <= 0 ? (e.rawValue = 0, e.wholeValue = 0, e.decimalValue = 0) : (n.maximumSignificantDigits = K, e.significantDigits = K)), X && !Se && (e.isLargest ? (e.wholeValue = Q, e.decimalValue = 0) : (e.wholeValue = 0, e.decimalValue = 0)), Z && !Se && (e.isSmallest ? (e.wholeValue = J, e.decimalValue = 0) : (e.wholeValue = 0, e.decimalValue = 0)), e.isSmallest || e.significantDigits && e.significantDigits - e.wholeValue.toString().length <= 0 ? H < 0 ? e.value = _e(e.wholeValue, H) : 0 === H ? e.value = ke(e.wholeValue + e.decimalValue) : G ? (e.value = Y ? _e(e.rawValue, K - e.wholeValue.toString().length) : e.rawValue, e.wholeValue && (K -= e.wholeValue.toString().length)) : (n.fractionDigits = H, e.value = Y ? e.wholeValue + _e(e.decimalValue, H) : e.wholeValue + e.decimalValue) : G && e.wholeValue ? (e.value = Math.round(_e(e.wholeValue, e.significantDigits - e.wholeValue.toString().length)), K -= e.wholeValue.toString().length) : e.value = e.wholeValue, e.tokenLength > 1 && (V || we) && (n.minimumIntegerDigits = e.tokenLength, Se && n.maximumSignificantDigits < e.tokenLength && delete n.maximumSignificantDigits), !we && (e.value > 0 || "" === re || m(L, e.type) || m(N, e.type)) && (we = !0), e.formattedValue = s(e.value, n, q), n.useGrouping = !1, n.decimalSeparator = ".", e.formattedValueEn = s(e.value, n, "en"), 2 === e.tokenLength && "milliseconds" === e.type && (e.formattedValueMS = s(e.value, { - minimumIntegerDigits: 3, - useGrouping: !1 - }, "en").slice(0, 2)), e - }; - if ((ve = y(ve = g(ve, Ee))).length > 1) { - var xe = function(e) { - return m(ve, (function(t) { - return t.type === e - })) - }, - Ce = function(e) { - var t = xe(e.type); - t && f(e.targets, (function(e) { - var n = xe(e.type); - n && parseInt(t.formattedValueEn, 10) === e.value && (t.rawValue = 0, t.wholeValue = 0, t.decimalValue = 0, n.rawValue += 1, n.wholeValue += 1, n.decimalValue = 0, n.formattedValueEn = n.wholeValue.toString(), Se = !0) - })) - }; - f(r, Ce) - } - return Se && (we = !1, K = $, ve = y(ve = g(ve, Ee))), !N || X && !o.trim ? (pe && (ve = _(ve, (function(e) { - return !e.isSmallest && !e.wholeValue && !m(L, e.type) - }))), R && ve.length && (ve = ve.slice(0, R)), he && ve.length > 1 && (ve = w(ve, (function(e) { - return !e.wholeValue && !m(L, e.type) && !e.isLargest - }))), me && (ve = y(ve = g(ve, (function(e, t) { - return t > 0 && t < ve.length - 1 && !e.wholeValue ? null : e - })))), !fe || 1 !== ve.length || ve[0].wholeValue || !Y && ve[0].isSmallest && ve[0].rawValue < J || (ve = [])) : ve = y(ve = g(ve, (function(e) { - return m(N, (function(t) { - return e.type === t - })) ? e : null - }))), z ? ve : (f(ye, (function(e) { - var t = D[e.type], - n = m(ve, (function(t) { - return t.type === e.type - })); - if (t && n) { - var a = n.formattedValueEn.split("."); - a[0] = parseInt(a[0], 10), a[1] ? a[1] = parseFloat("0." + a[1], 10) : a[1] = null; - var r = F.durationPluralKey(t, a[0], a[1]), - o = c(t, F), - s = !1, - u = {}; - f(F._durationLabelTypes, (function(t) { - var n = m(o, (function(e) { - return e.type === t.type && e.key === r - })); - n && (u[n.type] = n.label, i(e.text, t.string) && (e.text = e.text.replace(t.string, n.label), s = !0)) - })), U && !s && (o.sort(l), f(o, (function(t) { - return u[t.type] === t.label ? !i(e.text, t.label) && void 0 : i(e.text, t.label) ? (e.text = e.text.replace(t.label, u[t.type]), !1) : void 0 - }))) + + function vi(e) { + var t = ri(e), + n = Fn[t]; + if ("function" != typeof n || !(t in Hn.prototype)) return !1; + if (e === n) return !0; + var a = ai(n); + return !!a && e === a[0] + }(Sn && pi(new Sn(new ArrayBuffer(1))) != M || En && pi(new En) != w || xn && pi(xn.resolve()) != x || Cn && pi(new Cn) != A || An && pi(new An) != P) && (pi = function(e) { + var t = Ea(e), + n = t == E ? e.constructor : r, + a = n ? Li(n) : ""; + if (a) switch (a) { + case jn: + return M; + case Mn: + return w; + case In: + return x; + case On: + return A; + case Nn: + return P + } + return t + }); + var ki = je ? Qo : bl; + + function _i(e) { + var t = e && e.constructor; + return e === ("function" == typeof t && t.prototype || Pe) } - })), (ye = g(ye, (function(e) { - if (!e.type) return e.text; - var t = m(ve, (function(t) { - return t.type === e.type - })); - if (!t) return ""; - var n = ""; - return B && (n += e.text), (A && X || !A && Z) && (n += "< ", X = !1, Z = !1), (A && Z || !A && X) && (n += "> ", X = !1, Z = !1), A && (t.value > 0 || "" === re || m(L, t.type) || m(N, t.type)) && (n += "-", A = !1), "milliseconds" === e.type && t.formattedValueMS ? n += t.formattedValueMS : n += t.formattedValue, B || (n += e.text), n - }))).join("").replace(/(,| |:|\.)*$/, "").replace(/^(,| |:|\.)*/, "")) - } - function P() { - var e = this.duration, - t = function(t) { - return e._data[t] - }, - n = m(this.types, t), - a = function(e, t) { - for (var n = e.length; n -= 1;) - if (t(e[n])) return e[n] - }(this.types, t); - switch (n) { - case "milliseconds": - return "S __"; - case "seconds": - case "minutes": - return "*_MS_"; - case "hours": - return "_HMS_"; - case "days": - if (n === a) return "d __"; - case "weeks": - return n === a ? "w __" : (null === this.trim && (this.trim = "both"), "w __, d __, h __"); - case "months": - if (n === a) return "M __"; - case "years": - return n === a ? "y __" : (null === this.trim && (this.trim = "both"), "y __, M __, d __"); - default: - return null === this.trim && (this.trim = "both"), "y __, d __, h __, m __, s __" - } - } - - function D(e) { - if (!e) throw "Moment Duration Format init cannot find moment instance."; - e.duration.format = A, e.duration.fn.format = j, e.duration.fn.format.defaults = { - trim: null, - stopTrim: null, - largest: null, - maxValue: null, - minValue: null, - precision: 0, - trunc: !1, - forceLength: null, - userLocale: null, - usePlural: !0, - useLeftUnits: !1, - useGrouping: !0, - useSignificantDigits: !1, - template: P, - useToLocaleString: !0, - groupingSeparator: ",", - decimalSeparator: ".", - grouping: [3] - }, e.updateLocale("en", d) - } - return t = !!((u = (u = !0) && function() { - try { - (0).toLocaleString("i") - } catch (e) { - return "RangeError" === e.name - } - return !1 - }()) && (u = (u = (u = u && "1" === 1..toLocaleString("en", { - minimumIntegerDigits: 1 - })) && "01" === 1..toLocaleString("en", { - minimumIntegerDigits: 2 - })) && "001" === 1..toLocaleString("en", { - minimumIntegerDigits: 3 - })) && (u = (u = (u = (u = u && "100" === 99.99.toLocaleString("en", { - maximumFractionDigits: 0, - minimumFractionDigits: 0 - })) && "100.0" === 99.99.toLocaleString("en", { - maximumFractionDigits: 1, - minimumFractionDigits: 1 - })) && "99.99" === 99.99.toLocaleString("en", { - maximumFractionDigits: 2, - minimumFractionDigits: 2 - })) && "99.990" === 99.99.toLocaleString("en", { - maximumFractionDigits: 3, - minimumFractionDigits: 3 - })) && (u = (u = (u = (u = (u = u && "100" === 99.99.toLocaleString("en", { - maximumSignificantDigits: 1 - })) && "100" === 99.99.toLocaleString("en", { - maximumSignificantDigits: 2 - })) && "100" === 99.99.toLocaleString("en", { - maximumSignificantDigits: 3 - })) && "99.99" === 99.99.toLocaleString("en", { - maximumSignificantDigits: 4 - })) && "99.99" === 99.99.toLocaleString("en", { - maximumSignificantDigits: 5 - })) && (u = (u = u && "1,000" === 1e3.toLocaleString("en", { - useGrouping: !0 - })) && "1000" === 1e3.toLocaleString("en", { - useGrouping: !1 - }))), n = t && "3.6" === 3.55.toLocaleString("en", { - useGrouping: !1, - minimumIntegerDigits: 1, - minimumFractionDigits: 1, - maximumFractionDigits: 1 - }), D(e), D - }, r = [n(2083)], void 0 === (i = "function" == typeof(a = s) ? a.apply(t, r) : a) || (e.exports = i), o && (o.momentDurationFormatSetup = o.moment ? s(o.moment) : s) - }, 5902: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("af", { - months: "Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"), - monthsShort: "Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"), - weekdays: "Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"), - weekdaysShort: "Son_Maa_Din_Woe_Don_Vry_Sat".split("_"), - weekdaysMin: "So_Ma_Di_Wo_Do_Vr_Sa".split("_"), - meridiemParse: /vm|nm/i, - isPM: function(e) { - return /^nm$/i.test(e) - }, - meridiem: function(e, t, n) { - return e < 12 ? n ? "vm" : "VM" : n ? "nm" : "NM" - }, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd, D MMMM YYYY HH:mm" - }, - calendar: { - sameDay: "[Vandag om] LT", - nextDay: "[Môre om] LT", - nextWeek: "dddd [om] LT", - lastDay: "[Gister om] LT", - lastWeek: "[Laas] dddd [om] LT", - sameElse: "L" - }, - relativeTime: { - future: "oor %s", - past: "%s gelede", - s: "'n paar sekondes", - ss: "%d sekondes", - m: "'n minuut", - mm: "%d minute", - h: "'n uur", - hh: "%d ure", - d: "'n dag", - dd: "%d dae", - M: "'n maand", - MM: "%d maande", - y: "'n jaar", - yy: "%d jaar" - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function(e) { - return e + (1 === e || 8 === e || e >= 20 ? "ste" : "de") - }, - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 9547: function(e, t, n) { - ! function(e) { - "use strict"; - var t = { - 1: "١", - 2: "٢", - 3: "٣", - 4: "٤", - 5: "٥", - 6: "٦", - 7: "٧", - 8: "٨", - 9: "٩", - 0: "٠" - }, - n = { - "١": "1", - "٢": "2", - "٣": "3", - "٤": "4", - "٥": "5", - "٦": "6", - "٧": "7", - "٨": "8", - "٩": "9", - "٠": "0" - }, - a = function(e) { - return 0 === e ? 0 : 1 === e ? 1 : 2 === e ? 2 : e % 100 >= 3 && e % 100 <= 10 ? 3 : e % 100 >= 11 ? 4 : 5 - }, - r = { - s: ["أقل من ثانية", "ثانية واحدة", ["ثانيتان", "ثانيتين"], "%d ثوان", "%d ثانية", "%d ثانية"], - m: ["أقل من دقيقة", "دقيقة واحدة", ["دقيقتان", "دقيقتين"], "%d دقائق", "%d دقيقة", "%d دقيقة"], - h: ["أقل من ساعة", "ساعة واحدة", ["ساعتان", "ساعتين"], "%d ساعات", "%d ساعة", "%d ساعة"], - d: ["أقل من يوم", "يوم واحد", ["يومان", "يومين"], "%d أيام", "%d يومًا", "%d يوم"], - M: ["أقل من شهر", "شهر واحد", ["شهران", "شهرين"], "%d أشهر", "%d شهرا", "%d شهر"], - y: ["أقل من عام", "عام واحد", ["عامان", "عامين"], "%d أعوام", "%d عامًا", "%d عام"] - }, - i = function(e) { - return function(t, n, i, o) { - var s = a(t), - l = r[e][a(t)]; - return 2 === s && (l = l[n ? 0 : 1]), l.replace(/%d/i, t) + function wi(e) { + return e == e && !ts(e) } - }, - o = ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"]; - e.defineLocale("ar", { - months: o, - monthsShort: o, - weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), - weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"), - weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "D/‏M/‏YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd D MMMM YYYY HH:mm" - }, - meridiemParse: /ص|م/, - isPM: function(e) { - return "م" === e - }, - meridiem: function(e, t, n) { - return e < 12 ? "ص" : "م" - }, - calendar: { - sameDay: "[اليوم عند الساعة] LT", - nextDay: "[غدًا عند الساعة] LT", - nextWeek: "dddd [عند الساعة] LT", - lastDay: "[أمس عند الساعة] LT", - lastWeek: "dddd [عند الساعة] LT", - sameElse: "L" - }, - relativeTime: { - future: "بعد %s", - past: "منذ %s", - s: i("s"), - ss: i("s"), - m: i("m"), - mm: i("m"), - h: i("h"), - hh: i("h"), - d: i("d"), - dd: i("d"), - M: i("M"), - MM: i("M"), - y: i("y"), - yy: i("y") - }, - preparse: function(e) { - return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g, (function(e) { - return n[e] - })).replace(/،/g, ",") - }, - postformat: function(e) { - return e.replace(/\d/g, (function(e) { - return t[e] - })).replace(/,/g, "،") - }, - week: { - dow: 6, - doy: 12 - } - }) - }(n(2083)) - }, 1824: function(e, t, n) { - ! function(e) { - "use strict"; - function t(e, t, n) { - return "m" === n ? t ? "хвіліна" : "хвіліну" : "h" === n ? t ? "гадзіна" : "гадзіну" : e + " " + (a = +e, r = { - ss: t ? "секунда_секунды_секунд" : "секунду_секунды_секунд", - mm: t ? "хвіліна_хвіліны_хвілін" : "хвіліну_хвіліны_хвілін", - hh: t ? "гадзіна_гадзіны_гадзін" : "гадзіну_гадзіны_гадзін", - dd: "дзень_дні_дзён", - MM: "месяц_месяцы_месяцаў", - yy: "год_гады_гадоў" - } [n].split("_"), a % 10 == 1 && a % 100 != 11 ? r[0] : a % 10 >= 2 && a % 10 <= 4 && (a % 100 < 10 || a % 100 >= 20) ? r[1] : r[2]); - var a, r - } - e.defineLocale("be", { - months: { - format: "студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"), - standalone: "студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_") - }, - monthsShort: "студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"), - weekdays: { - format: "нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"), - standalone: "нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"), - isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/ - }, - weekdaysShort: "нд_пн_ат_ср_чц_пт_сб".split("_"), - weekdaysMin: "нд_пн_ат_ср_чц_пт_сб".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY", - LL: "D MMMM YYYY г.", - LLL: "D MMMM YYYY г., HH:mm", - LLLL: "dddd, D MMMM YYYY г., HH:mm" - }, - calendar: { - sameDay: "[Сёння ў] LT", - nextDay: "[Заўтра ў] LT", - lastDay: "[Учора ў] LT", - nextWeek: function() { - return "[У] dddd [ў] LT" - }, - lastWeek: function() { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return "[У мінулую] dddd [ў] LT"; - case 1: - case 2: - case 4: - return "[У мінулы] dddd [ў] LT" + function Si(e, t) { + return function(n) { + return null != n && n[e] === t && (t !== r || e in Ee(n)) } - }, - sameElse: "L" - }, - relativeTime: { - future: "праз %s", - past: "%s таму", - s: "некалькі секунд", - m: t, - mm: t, - h: t, - hh: t, - d: "дзень", - dd: t, - M: "месяц", - MM: t, - y: "год", - yy: t - }, - meridiemParse: /ночы|раніцы|дня|вечара/, - isPM: function(e) { - return /^(дня|вечара)$/.test(e) - }, - meridiem: function(e, t, n) { - return e < 4 ? "ночы" : e < 12 ? "раніцы" : e < 17 ? "дня" : "вечара" - }, - dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, - ordinal: function(e, t) { - switch (t) { - case "M": - case "d": - case "DDD": - case "w": - case "W": - return e % 10 != 2 && e % 10 != 3 || e % 100 == 12 || e % 100 == 13 ? e + "-ы" : e + "-і"; - case "D": - return e + "-га"; - default: - return e } - }, - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 7075: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("bg", { - months: "януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"), - monthsShort: "яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"), - weekdays: "неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"), - weekdaysShort: "нед_пон_вто_сря_чет_пет_съб".split("_"), - weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"), - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "D.MM.YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY H:mm", - LLLL: "dddd, D MMMM YYYY H:mm" - }, - calendar: { - sameDay: "[Днес в] LT", - nextDay: "[Утре в] LT", - nextWeek: "dddd [в] LT", - lastDay: "[Вчера в] LT", - lastWeek: function() { - switch (this.day()) { - case 0: - case 3: - case 6: - return "[Миналата] dddd [в] LT"; - case 1: - case 2: - case 4: - case 5: - return "[Миналия] dddd [в] LT" + + function Ei(e, t, n) { + return t = bn(t === r ? e.length - 1 : t, 0), + function() { + for (var r = arguments, i = -1, o = bn(r.length - t, 0), s = a(o); ++i < o;) s[i] = r[t + i]; + i = -1; + for (var l = a(t + 1); ++i < t;) l[i] = r[i]; + return l[t] = n(s), bt(e, this, l) + } + } + + function xi(e, t) { + return t.length < 2 ? e : wa(e, tr(t, 0, -1)) + } + + function Ci(e, t) { + for (var n = e.length, a = yn(t.length, n), i = Ar(e); a--;) { + var o = t[a]; + e[a] = gi(o, n) ? i[o] : r } - }, - sameElse: "L" - }, - relativeTime: { - future: "след %s", - past: "преди %s", - s: "няколко секунди", - ss: "%d секунди", - m: "минута", - mm: "%d минути", - h: "час", - hh: "%d часа", - d: "ден", - dd: "%d дена", - w: "седмица", - ww: "%d седмици", - M: "месец", - MM: "%d месеца", - y: "година", - yy: "%d години" - }, - dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, - ordinal: function(e) { - var t = e % 10, - n = e % 100; - return 0 === e ? e + "-ев" : 0 === n ? e + "-ен" : n > 10 && n < 20 ? e + "-ти" : 1 === t ? e + "-ви" : 2 === t ? e + "-ри" : 7 === t || 8 === t ? e + "-ми" : e + "-ти" - }, - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 5793: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("ca", { - months: { - standalone: "gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"), - format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"), - isFormat: /D[oD]?(\s)+MMMM/ - }, - monthsShort: "gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"), - monthsParseExact: !0, - weekdays: "diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"), - weekdaysShort: "dg._dl._dt._dc._dj._dv._ds.".split("_"), - weekdaysMin: "dg_dl_dt_dc_dj_dv_ds".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM [de] YYYY", - ll: "D MMM YYYY", - LLL: "D MMMM [de] YYYY [a les] H:mm", - lll: "D MMM YYYY, H:mm", - LLLL: "dddd D MMMM [de] YYYY [a les] H:mm", - llll: "ddd D MMM YYYY, H:mm" - }, - calendar: { - sameDay: function() { - return "[avui a " + (1 !== this.hours() ? "les" : "la") + "] LT" - }, - nextDay: function() { - return "[demà a " + (1 !== this.hours() ? "les" : "la") + "] LT" - }, - nextWeek: function() { - return "dddd [a " + (1 !== this.hours() ? "les" : "la") + "] LT" - }, - lastDay: function() { - return "[ahir a " + (1 !== this.hours() ? "les" : "la") + "] LT" - }, - lastWeek: function() { - return "[el] dddd [passat a " + (1 !== this.hours() ? "les" : "la") + "] LT" - }, - sameElse: "L" - }, - relativeTime: { - future: "d'aquí %s", - past: "fa %s", - s: "uns segons", - ss: "%d segons", - m: "un minut", - mm: "%d minuts", - h: "una hora", - hh: "%d hores", - d: "un dia", - dd: "%d dies", - M: "un mes", - MM: "%d mesos", - y: "un any", - yy: "%d anys" - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function(e, t) { - var n = 1 === e ? "r" : 2 === e ? "n" : 3 === e ? "r" : 4 === e ? "t" : "è"; - return "w" !== t && "W" !== t || (n = "a"), e + n - }, - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 8979: function(e, t, n) { - ! function(e) { - "use strict"; - var t = "leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"), - n = "led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"), - a = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i], - r = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + return e + } - function i(e) { - return e > 1 && e < 5 && 1 != ~~(e / 10) - } + function Ai(e, t) { + if (("constructor" !== t || "function" != typeof e[t]) && "__proto__" != t) return e[t] + } + var Ti = Mi(Qa), + Di = Lt || function(e, t) { + return it.setTimeout(e, t) + }, + Pi = Mi(Xa); + + function ji(e, t, n) { + var a = t + ""; + return Pi(e, function(e, t) { + var n = t.length; + if (!n) return e; + var a = n - 1; + return t[a] = (n > 1 ? "& " : "") + t[a], t = t.join(n > 2 ? ", " : " "), e.replace(ie, "{\n/* [wrapped with " + t + "] */\n") + }(a, function(e, t) { + return vt(m, (function(n) { + var a = "_." + n[0]; + t & n[1] && !St(e, a) && e.push(a) + })), e.sort() + }(function(e) { + var t = e.match(oe); + return t ? t[1].split(se) : [] + }(a), n))) + } + + function Mi(e) { + var t = 0, + n = 0; + return function() { + var a = vn(), + i = 16 - (a - n); + if (n = a, i > 0) { + if (++t >= 800) return arguments[0] + } else t = 0; + return e.apply(r, arguments) + } + } - function o(e, t, n, a) { - var r = e + " "; - switch (n) { - case "s": - return t || a ? "pár sekund" : "pár sekundami"; - case "ss": - return t || a ? r + (i(e) ? "sekundy" : "sekund") : r + "sekundami"; - case "m": - return t ? "minuta" : a ? "minutu" : "minutou"; - case "mm": - return t || a ? r + (i(e) ? "minuty" : "minut") : r + "minutami"; - case "h": - return t ? "hodina" : a ? "hodinu" : "hodinou"; - case "hh": - return t || a ? r + (i(e) ? "hodiny" : "hodin") : r + "hodinami"; - case "d": - return t || a ? "den" : "dnem"; - case "dd": - return t || a ? r + (i(e) ? "dny" : "dní") : r + "dny"; - case "M": - return t || a ? "měsíc" : "měsícem"; - case "MM": - return t || a ? r + (i(e) ? "měsíce" : "měsíců") : r + "měsíci"; - case "y": - return t || a ? "rok" : "rokem"; - case "yy": - return t || a ? r + (i(e) ? "roky" : "let") : r + "lety" - } - } - e.defineLocale("cs", { - months: t, - monthsShort: n, - monthsRegex: r, - monthsShortRegex: r, - monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, - monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, - monthsParse: a, - longMonthsParse: a, - shortMonthsParse: a, - weekdays: "neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"), - weekdaysShort: "ne_po_út_st_čt_pá_so".split("_"), - weekdaysMin: "ne_po_út_st_čt_pá_so".split("_"), - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD.MM.YYYY", - LL: "D. MMMM YYYY", - LLL: "D. MMMM YYYY H:mm", - LLLL: "dddd D. MMMM YYYY H:mm", - l: "D. M. YYYY" - }, - calendar: { - sameDay: "[dnes v] LT", - nextDay: "[zítra v] LT", - nextWeek: function() { - switch (this.day()) { - case 0: - return "[v neděli v] LT"; - case 1: - case 2: - return "[v] dddd [v] LT"; - case 3: - return "[ve středu v] LT"; - case 4: - return "[ve čtvrtek v] LT"; - case 5: - return "[v pátek v] LT"; - case 6: - return "[v sobotu v] LT" + function Ii(e, t) { + var n = -1, + a = e.length, + i = a - 1; + for (t = t === r ? a : t; ++n < t;) { + var o = Ya(n, i), + s = e[o]; + e[o] = e[n], e[n] = s } - }, - lastDay: "[včera v] LT", - lastWeek: function() { - switch (this.day()) { - case 0: - return "[minulou neděli v] LT"; - case 1: - case 2: - return "[minulé] dddd [v] LT"; - case 3: - return "[minulou středu v] LT"; - case 4: - case 5: - return "[minulý] dddd [v] LT"; - case 6: - return "[minulou sobotu v] LT" + return e.length = t, e + } + var Oi, Ni, Ri = (Oi = No((function(e) { + var t = []; + return 46 === e.charCodeAt(0) && t.push(""), e.replace(ee, (function(e, n, a, r) { + t.push(a ? r.replace(ue, "$1") : n || e) + })), t + }), (function(e) { + return 500 === Ni.size && Ni.clear(), e + })), Ni = Oi.cache, Oi); + + function zi(e) { + if ("string" == typeof e || cs(e)) return e; + var t = e + ""; + return "0" == t && 1 / e == -1 / 0 ? "-0" : t + } + + function Li(e) { + if (null != e) { + try { + return Me.call(e) + } catch (e) {} + try { + return e + "" + } catch (e) {} } - }, - sameElse: "L" - }, - relativeTime: { - future: "za %s", - past: "před %s", - s: o, - ss: o, - m: o, - mm: o, - h: o, - hh: o, - d: o, - dd: o, - M: o, - MM: o, - y: o, - yy: o - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 1277: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("da", { - months: "januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"), - monthsShort: "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"), - weekdays: "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"), - weekdaysShort: "søn_man_tir_ons_tor_fre_lør".split("_"), - weekdaysMin: "sø_ma_ti_on_to_fr_lø".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY", - LL: "D. MMMM YYYY", - LLL: "D. MMMM YYYY HH:mm", - LLLL: "dddd [d.] D. MMMM YYYY [kl.] HH:mm" - }, - calendar: { - sameDay: "[i dag kl.] LT", - nextDay: "[i morgen kl.] LT", - nextWeek: "på dddd [kl.] LT", - lastDay: "[i går kl.] LT", - lastWeek: "[i] dddd[s kl.] LT", - sameElse: "L" - }, - relativeTime: { - future: "om %s", - past: "%s siden", - s: "få sekunder", - ss: "%d sekunder", - m: "et minut", - mm: "%d minutter", - h: "en time", - hh: "%d timer", - d: "en dag", - dd: "%d dage", - M: "en måned", - MM: "%d måneder", - y: "et år", - yy: "%d år" - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 1633: function(e, t, n) { - ! function(e) { - "use strict"; + return "" + } - function t(e, t, n, a) { - var r = { - m: ["eine Minute", "einer Minute"], - h: ["eine Stunde", "einer Stunde"], - d: ["ein Tag", "einem Tag"], - dd: [e + " Tage", e + " Tagen"], - w: ["eine Woche", "einer Woche"], - M: ["ein Monat", "einem Monat"], - MM: [e + " Monate", e + " Monaten"], - y: ["ein Jahr", "einem Jahr"], - yy: [e + " Jahre", e + " Jahren"] - }; - return t ? r[n][0] : r[n][1] - } - e.defineLocale("de", { - months: "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"), - monthsShort: "Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"), - monthsParseExact: !0, - weekdays: "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"), - weekdaysShort: "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"), - weekdaysMin: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY", - LL: "D. MMMM YYYY", - LLL: "D. MMMM YYYY HH:mm", - LLLL: "dddd, D. MMMM YYYY HH:mm" - }, - calendar: { - sameDay: "[heute um] LT [Uhr]", - sameElse: "L", - nextDay: "[morgen um] LT [Uhr]", - nextWeek: "dddd [um] LT [Uhr]", - lastDay: "[gestern um] LT [Uhr]", - lastWeek: "[letzten] dddd [um] LT [Uhr]" - }, - relativeTime: { - future: "in %s", - past: "vor %s", - s: "ein paar Sekunden", - ss: "%d Sekunden", - m: t, - mm: "%d Minuten", - h: t, - hh: "%d Stunden", - d: t, - dd: t, - w: t, - ww: "%d Wochen", - M: t, - MM: t, - y: t, - yy: t - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 3122: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("el", { - monthsNominativeEl: "Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"), - monthsGenitiveEl: "Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"), - months: function(e, t) { - return e ? "string" == typeof t && /D/.test(t.substring(0, t.indexOf("MMMM"))) ? this._monthsGenitiveEl[e.month()] : this._monthsNominativeEl[e.month()] : this._monthsNominativeEl - }, - monthsShort: "Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"), - weekdays: "Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"), - weekdaysShort: "Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"), - weekdaysMin: "Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"), - meridiem: function(e, t, n) { - return e > 11 ? n ? "μμ" : "ΜΜ" : n ? "πμ" : "ΠΜ" - }, - isPM: function(e) { - return "μ" === (e + "").toLowerCase()[0] - }, - meridiemParse: /[ΠΜ]\.?Μ?\.?/i, - longDateFormat: { - LT: "h:mm A", - LTS: "h:mm:ss A", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY h:mm A", - LLLL: "dddd, D MMMM YYYY h:mm A" - }, - calendarEl: { - sameDay: "[Σήμερα {}] LT", - nextDay: "[Αύριο {}] LT", - nextWeek: "dddd [{}] LT", - lastDay: "[Χθες {}] LT", - lastWeek: function() { - return 6 === this.day() ? "[το προηγούμενο] dddd [{}] LT" : "[την προηγούμενη] dddd [{}] LT" - }, - sameElse: "L" - }, - calendar: function(e, t) { - var n, a = this._calendarEl[e], - r = t && t.hours(); - return n = a, ("undefined" != typeof Function && n instanceof Function || "[object Function]" === Object.prototype.toString.call(n)) && (a = a.apply(t)), a.replace("{}", r % 12 == 1 ? "στη" : "στις") - }, - relativeTime: { - future: "σε %s", - past: "%s πριν", - s: "λίγα δευτερόλεπτα", - ss: "%d δευτερόλεπτα", - m: "ένα λεπτό", - mm: "%d λεπτά", - h: "μία ώρα", - hh: "%d ώρες", - d: "μία μέρα", - dd: "%d μέρες", - M: "ένας μήνας", - MM: "%d μήνες", - y: "ένας χρόνος", - yy: "%d χρόνια" - }, - dayOfMonthOrdinalParse: /\d{1,2}η/, - ordinal: "%dη", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 4595: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("en-gb", { - months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), - monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), - weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), - weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), - weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd, D MMMM YYYY HH:mm" - }, - calendar: { - sameDay: "[Today at] LT", - nextDay: "[Tomorrow at] LT", - nextWeek: "dddd [at] LT", - lastDay: "[Yesterday at] LT", - lastWeek: "[Last] dddd [at] LT", - sameElse: "L" - }, - relativeTime: { - future: "in %s", - past: "%s ago", - s: "a few seconds", - ss: "%d seconds", - m: "a minute", - mm: "%d minutes", - h: "an hour", - hh: "%d hours", - d: "a day", - dd: "%d days", - M: "a month", - MM: "%d months", - y: "a year", - yy: "%d years" - }, - dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, - ordinal: function(e) { - var t = e % 10; - return e + (1 == ~~(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th") - }, - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 5871: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("eo", { - months: "januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"), - monthsShort: "jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"), - weekdays: "dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"), - weekdaysShort: "dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"), - weekdaysMin: "di_lu_ma_me_ĵa_ve_sa".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY-MM-DD", - LL: "[la] D[-an de] MMMM, YYYY", - LLL: "[la] D[-an de] MMMM, YYYY HH:mm", - LLLL: "dddd[n], [la] D[-an de] MMMM, YYYY HH:mm", - llll: "ddd, [la] D[-an de] MMM, YYYY HH:mm" - }, - meridiemParse: /[ap]\.t\.m/i, - isPM: function(e) { - return "p" === e.charAt(0).toLowerCase() - }, - meridiem: function(e, t, n) { - return e > 11 ? n ? "p.t.m." : "P.T.M." : n ? "a.t.m." : "A.T.M." - }, - calendar: { - sameDay: "[Hodiaŭ je] LT", - nextDay: "[Morgaŭ je] LT", - nextWeek: "dddd[n je] LT", - lastDay: "[Hieraŭ je] LT", - lastWeek: "[pasintan] dddd[n je] LT", - sameElse: "L" - }, - relativeTime: { - future: "post %s", - past: "antaŭ %s", - s: "kelkaj sekundoj", - ss: "%d sekundoj", - m: "unu minuto", - mm: "%d minutoj", - h: "unu horo", - hh: "%d horoj", - d: "unu tago", - dd: "%d tagoj", - M: "unu monato", - MM: "%d monatoj", - y: "unu jaro", - yy: "%d jaroj" - }, - dayOfMonthOrdinalParse: /\d{1,2}a/, - ordinal: "%da", - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 1329: function(e, t, n) { - ! function(e) { - "use strict"; - var t = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), - n = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), - a = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], - r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - e.defineLocale("es-us", { - months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), - monthsShort: function(e, a) { - return e ? /-MMM-/.test(a) ? n[e.month()] : t[e.month()] : t - }, - monthsRegex: r, - monthsShortRegex: r, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: a, - longMonthsParse: a, - shortMonthsParse: a, - weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), - weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), - weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "h:mm A", - LTS: "h:mm:ss A", - L: "MM/DD/YYYY", - LL: "D [de] MMMM [de] YYYY", - LLL: "D [de] MMMM [de] YYYY h:mm A", - LLLL: "dddd, D [de] MMMM [de] YYYY h:mm A" - }, - calendar: { - sameDay: function() { - return "[hoy a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - nextDay: function() { - return "[mañana a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - nextWeek: function() { - return "dddd [a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - lastDay: function() { - return "[ayer a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - lastWeek: function() { - return "[el] dddd [pasado a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - sameElse: "L" - }, - relativeTime: { - future: "en %s", - past: "hace %s", - s: "unos segundos", - ss: "%d segundos", - m: "un minuto", - mm: "%d minutos", - h: "una hora", - hh: "%d horas", - d: "un día", - dd: "%d días", - w: "una semana", - ww: "%d semanas", - M: "un mes", - MM: "%d meses", - y: "un año", - yy: "%d años" - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: "%dº", - week: { - dow: 0, - doy: 6 - } - }) - }(n(2083)) - }, 3548: function(e, t, n) { - ! function(e) { - "use strict"; - var t = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), - n = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), - a = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], - r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; - e.defineLocale("es", { - months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), - monthsShort: function(e, a) { - return e ? /-MMM-/.test(a) ? n[e.month()] : t[e.month()] : t - }, - monthsRegex: r, - monthsShortRegex: r, - monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, - monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, - monthsParse: a, - longMonthsParse: a, - shortMonthsParse: a, - weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), - weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), - weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD/MM/YYYY", - LL: "D [de] MMMM [de] YYYY", - LLL: "D [de] MMMM [de] YYYY H:mm", - LLLL: "dddd, D [de] MMMM [de] YYYY H:mm" - }, - calendar: { - sameDay: function() { - return "[hoy a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - nextDay: function() { - return "[mañana a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - nextWeek: function() { - return "dddd [a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - lastDay: function() { - return "[ayer a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - lastWeek: function() { - return "[el] dddd [pasado a la" + (1 !== this.hours() ? "s" : "") + "] LT" - }, - sameElse: "L" - }, - relativeTime: { - future: "en %s", - past: "hace %s", - s: "unos segundos", - ss: "%d segundos", - m: "un minuto", - mm: "%d minutos", - h: "una hora", - hh: "%d horas", - d: "un día", - dd: "%d días", - w: "una semana", - ww: "%d semanas", - M: "un mes", - MM: "%d meses", - y: "un año", - yy: "%d años" - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: "%dº", - week: { - dow: 1, - doy: 4 - }, - invalidDate: "Fecha inválida" - }) - }(n(2083)) - }, 2132: function(e, t, n) { - ! function(e) { - "use strict"; + function Fi(e) { + if (e instanceof Hn) return e.clone(); + var t = new Un(e.__wrapped__, e.__chain__); + return t.__actions__ = Ar(e.__actions__), t.__index__ = e.__index__, t.__values__ = e.__values__, t + } + var qi = Ka((function(e, t) { + return Ko(e) ? ua(e, ga(t, 1, Ko, !0)) : [] + })), + Bi = Ka((function(e, t) { + var n = Ji(t); + return Ko(n) && (n = r), Ko(e) ? ua(e, ga(t, 1, Ko, !0), oi(n, 2)) : [] + })), + Ui = Ka((function(e, t) { + var n = Ji(t); + return Ko(n) && (n = r), Ko(e) ? ua(e, ga(t, 1, Ko, !0), r, n) : [] + })); - function t(e, t, n, a) { - var r = { - s: ["mõne sekundi", "mõni sekund", "paar sekundit"], - ss: [e + "sekundi", e + "sekundit"], - m: ["ühe minuti", "üks minut"], - mm: [e + " minuti", e + " minutit"], - h: ["ühe tunni", "tund aega", "üks tund"], - hh: [e + " tunni", e + " tundi"], - d: ["ühe päeva", "üks päev"], - M: ["kuu aja", "kuu aega", "üks kuu"], - MM: [e + " kuu", e + " kuud"], - y: ["ühe aasta", "aasta", "üks aasta"], - yy: [e + " aasta", e + " aastat"] - }; - return t ? r[n][2] ? r[n][2] : r[n][1] : a ? r[n][0] : r[n][1] - } - e.defineLocale("et", { - months: "jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"), - monthsShort: "jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"), - weekdays: "pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"), - weekdaysShort: "P_E_T_K_N_R_L".split("_"), - weekdaysMin: "P_E_T_K_N_R_L".split("_"), - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD.MM.YYYY", - LL: "D. MMMM YYYY", - LLL: "D. MMMM YYYY H:mm", - LLLL: "dddd, D. MMMM YYYY H:mm" - }, - calendar: { - sameDay: "[Täna,] LT", - nextDay: "[Homme,] LT", - nextWeek: "[Järgmine] dddd LT", - lastDay: "[Eile,] LT", - lastWeek: "[Eelmine] dddd LT", - sameElse: "L" - }, - relativeTime: { - future: "%s pärast", - past: "%s tagasi", - s: t, - ss: t, - m: t, - mm: t, - h: t, - hh: t, - d: t, - dd: "%d päeva", - M: t, - MM: t, - y: t, - yy: t - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 6316: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("eu", { - months: "urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"), - monthsShort: "urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"), - monthsParseExact: !0, - weekdays: "igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"), - weekdaysShort: "ig._al._ar._az._og._ol._lr.".split("_"), - weekdaysMin: "ig_al_ar_az_og_ol_lr".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY-MM-DD", - LL: "YYYY[ko] MMMM[ren] D[a]", - LLL: "YYYY[ko] MMMM[ren] D[a] HH:mm", - LLLL: "dddd, YYYY[ko] MMMM[ren] D[a] HH:mm", - l: "YYYY-M-D", - ll: "YYYY[ko] MMM D[a]", - lll: "YYYY[ko] MMM D[a] HH:mm", - llll: "ddd, YYYY[ko] MMM D[a] HH:mm" - }, - calendar: { - sameDay: "[gaur] LT[etan]", - nextDay: "[bihar] LT[etan]", - nextWeek: "dddd LT[etan]", - lastDay: "[atzo] LT[etan]", - lastWeek: "[aurreko] dddd LT[etan]", - sameElse: "L" - }, - relativeTime: { - future: "%s barru", - past: "duela %s", - s: "segundo batzuk", - ss: "%d segundo", - m: "minutu bat", - mm: "%d minutu", - h: "ordu bat", - hh: "%d ordu", - d: "egun bat", - dd: "%d egun", - M: "hilabete bat", - MM: "%d hilabete", - y: "urte bat", - yy: "%d urte" - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 2835: function(e, t, n) { - ! function(e) { - "use strict"; - var t = { - 1: "۱", - 2: "۲", - 3: "۳", - 4: "۴", - 5: "۵", - 6: "۶", - 7: "۷", - 8: "۸", - 9: "۹", - 0: "۰" - }, - n = { - "۱": "1", - "۲": "2", - "۳": "3", - "۴": "4", - "۵": "5", - "۶": "6", - "۷": "7", - "۸": "8", - "۹": "9", - "۰": "0" - }; - e.defineLocale("fa", { - months: "ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"), - monthsShort: "ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"), - weekdays: "یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"), - weekdaysShort: "یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"), - weekdaysMin: "ی_د_س_چ_پ_ج_ش".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd, D MMMM YYYY HH:mm" - }, - meridiemParse: /قبل از ظهر|بعد از ظهر/, - isPM: function(e) { - return /بعد از ظهر/.test(e) - }, - meridiem: function(e, t, n) { - return e < 12 ? "قبل از ظهر" : "بعد از ظهر" - }, - calendar: { - sameDay: "[امروز ساعت] LT", - nextDay: "[فردا ساعت] LT", - nextWeek: "dddd [ساعت] LT", - lastDay: "[دیروز ساعت] LT", - lastWeek: "dddd [پیش] [ساعت] LT", - sameElse: "L" - }, - relativeTime: { - future: "در %s", - past: "%s پیش", - s: "چند ثانیه", - ss: "%d ثانیه", - m: "یک دقیقه", - mm: "%d دقیقه", - h: "یک ساعت", - hh: "%d ساعت", - d: "یک روز", - dd: "%d روز", - M: "یک ماه", - MM: "%d ماه", - y: "یک سال", - yy: "%d سال" - }, - preparse: function(e) { - return e.replace(/[۰-۹]/g, (function(e) { - return n[e] - })).replace(/،/g, ",") - }, - postformat: function(e) { - return e.replace(/\d/g, (function(e) { - return t[e] - })).replace(/,/g, "،") - }, - dayOfMonthOrdinalParse: /\d{1,2}م/, - ordinal: "%dم", - week: { - dow: 6, - doy: 12 - } - }) - }(n(2083)) - }, 7941: function(e, t, n) { - ! function(e) { - "use strict"; - var t = "nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "), - n = ["nolla", "yhden", "kahden", "kolmen", "neljän", "viiden", "kuuden", t[7], t[8], t[9]]; + function Hi(e, t, n) { + var a = null == e ? 0 : e.length; + if (!a) return -1; + var r = null == n ? 0 : fs(n); + return r < 0 && (r = bn(a + r, 0)), Mt(e, oi(t, 3), r) + } + + function Vi(e, t, n) { + var a = null == e ? 0 : e.length; + if (!a) return -1; + var i = a - 1; + return n !== r && (i = fs(n), i = n < 0 ? bn(a + i, 0) : yn(i, a - 1)), Mt(e, oi(t, 3), i, !0) + } + + function Wi(e) { + return null != e && e.length ? ga(e, 1) : [] + } + + function Yi(e) { + return e && e.length ? e[0] : r + } + var Gi = Ka((function(e) { + var t = xt(e, fr); + return t.length && t[0] === e[0] ? Ta(t) : [] + })), + Ki = Ka((function(e) { + var t = Ji(e), + n = xt(e, fr); + return t === Ji(n) ? t = r : n.pop(), n.length && n[0] === e[0] ? Ta(n, oi(t, 2)) : [] + })), + $i = Ka((function(e) { + var t = Ji(e), + n = xt(e, fr); + return (t = "function" == typeof t ? t : r) && n.pop(), n.length && n[0] === e[0] ? Ta(n, r, t) : [] + })); + + function Ji(e) { + var t = null == e ? 0 : e.length; + return t ? e[t - 1] : r + } + var Zi = Ka(Qi); + + function Qi(e, t) { + return e && e.length && t && t.length ? Va(e, t) : e + } + var Xi = ei((function(e, t) { + var n = null == e ? 0 : e.length, + a = ia(e, t); + return Wa(e, xt(t, (function(e) { + return gi(e, n) ? +e : e + })).sort(Er)), a + })); - function a(e, a, r, i) { - var o = ""; - switch (r) { - case "s": - return i ? "muutaman sekunnin" : "muutama sekunti"; - case "ss": - o = i ? "sekunnin" : "sekuntia"; - break; - case "m": - return i ? "minuutin" : "minuutti"; - case "mm": - o = i ? "minuutin" : "minuuttia"; - break; - case "h": - return i ? "tunnin" : "tunti"; - case "hh": - o = i ? "tunnin" : "tuntia"; - break; - case "d": - return i ? "päivän" : "päivä"; - case "dd": - o = i ? "päivän" : "päivää"; - break; - case "M": - return i ? "kuukauden" : "kuukausi"; - case "MM": - o = i ? "kuukauden" : "kuukautta"; - break; - case "y": - return i ? "vuoden" : "vuosi"; - case "yy": - o = i ? "vuoden" : "vuotta" - } - return function(e, a) { - return e < 10 ? a ? n[e] : t[e] : e - }(e, i) + " " + o - } - e.defineLocale("fi", { - months: "tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"), - monthsShort: "tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"), - weekdays: "sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"), - weekdaysShort: "su_ma_ti_ke_to_pe_la".split("_"), - weekdaysMin: "su_ma_ti_ke_to_pe_la".split("_"), - longDateFormat: { - LT: "HH.mm", - LTS: "HH.mm.ss", - L: "DD.MM.YYYY", - LL: "Do MMMM[ta] YYYY", - LLL: "Do MMMM[ta] YYYY, [klo] HH.mm", - LLLL: "dddd, Do MMMM[ta] YYYY, [klo] HH.mm", - l: "D.M.YYYY", - ll: "Do MMM YYYY", - lll: "Do MMM YYYY, [klo] HH.mm", - llll: "ddd, Do MMM YYYY, [klo] HH.mm" - }, - calendar: { - sameDay: "[tänään] [klo] LT", - nextDay: "[huomenna] [klo] LT", - nextWeek: "dddd [klo] LT", - lastDay: "[eilen] [klo] LT", - lastWeek: "[viime] dddd[na] [klo] LT", - sameElse: "L" - }, - relativeTime: { - future: "%s päästä", - past: "%s sitten", - s: a, - ss: a, - m: a, - mm: a, - h: a, - hh: a, - d: a, - dd: a, - M: a, - MM: a, - y: a, - yy: a - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 6283: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("fr-ca", { - months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), - monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), - monthsParseExact: !0, - weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), - weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), - weekdaysMin: "di_lu_ma_me_je_ve_sa".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY-MM-DD", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd D MMMM YYYY HH:mm" - }, - calendar: { - sameDay: "[Aujourd’hui à] LT", - nextDay: "[Demain à] LT", - nextWeek: "dddd [à] LT", - lastDay: "[Hier à] LT", - lastWeek: "dddd [dernier à] LT", - sameElse: "L" - }, - relativeTime: { - future: "dans %s", - past: "il y a %s", - s: "quelques secondes", - ss: "%d secondes", - m: "une minute", - mm: "%d minutes", - h: "une heure", - hh: "%d heures", - d: "un jour", - dd: "%d jours", - M: "un mois", - MM: "%d mois", - y: "un an", - yy: "%d ans" - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, - ordinal: function(e, t) { - switch (t) { - default: - return e + (1 === e ? "er" : "e"); - case "w": - case "W": - return e + (1 === e ? "re" : "e") + function eo(e) { + return null == e ? e : wn.call(e) } - } - }) - }(n(2083)) - }, 5745: function(e, t, n) { - ! function(e) { - "use strict"; - var t = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - n = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i]; - e.defineLocale("fr", { - months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), - monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), - monthsRegex: t, - monthsShortRegex: t, - monthsStrictRegex: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, - monthsShortStrictRegex: /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, - monthsParse: n, - longMonthsParse: n, - shortMonthsParse: n, - weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), - weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), - weekdaysMin: "di_lu_ma_me_je_ve_sa".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd D MMMM YYYY HH:mm" - }, - calendar: { - sameDay: "[Aujourd’hui à] LT", - nextDay: "[Demain à] LT", - nextWeek: "dddd [à] LT", - lastDay: "[Hier à] LT", - lastWeek: "dddd [dernier à] LT", - sameElse: "L" - }, - relativeTime: { - future: "dans %s", - past: "il y a %s", - s: "quelques secondes", - ss: "%d secondes", - m: "une minute", - mm: "%d minutes", - h: "une heure", - hh: "%d heures", - d: "un jour", - dd: "%d jours", - w: "une semaine", - ww: "%d semaines", - M: "un mois", - MM: "%d mois", - y: "un an", - yy: "%d ans" - }, - dayOfMonthOrdinalParse: /\d{1,2}(er|)/, - ordinal: function(e, t) { - switch (t) { - case "D": - return e + (1 === e ? "er" : ""); - default: - return e + (1 === e ? "er" : "e"); - case "w": - case "W": - return e + (1 === e ? "re" : "e") + var to = Ka((function(e) { + return lr(ga(e, 1, Ko, !0)) + })), + no = Ka((function(e) { + var t = Ji(e); + return Ko(t) && (t = r), lr(ga(e, 1, Ko, !0), oi(t, 2)) + })), + ao = Ka((function(e) { + var t = Ji(e); + return t = "function" == typeof t ? t : r, lr(ga(e, 1, Ko, !0), r, t) + })); + + function ro(e) { + if (!e || !e.length) return []; + var t = 0; + return e = wt(e, (function(e) { + if (Ko(e)) return t = bn(e.length, t), !0 + })), Bt(t, (function(t) { + return xt(e, zt(t)) + })) } - }, - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 2348: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("gl", { - months: "xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"), - monthsShort: "xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"), - monthsParseExact: !0, - weekdays: "domingo_luns_martes_mércores_xoves_venres_sábado".split("_"), - weekdaysShort: "dom._lun._mar._mér._xov._ven._sáb.".split("_"), - weekdaysMin: "do_lu_ma_mé_xo_ve_sá".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD/MM/YYYY", - LL: "D [de] MMMM [de] YYYY", - LLL: "D [de] MMMM [de] YYYY H:mm", - LLLL: "dddd, D [de] MMMM [de] YYYY H:mm" - }, - calendar: { - sameDay: function() { - return "[hoxe " + (1 !== this.hours() ? "ás" : "á") + "] LT" - }, - nextDay: function() { - return "[mañá " + (1 !== this.hours() ? "ás" : "á") + "] LT" - }, - nextWeek: function() { - return "dddd [" + (1 !== this.hours() ? "ás" : "a") + "] LT" - }, - lastDay: function() { - return "[onte " + (1 !== this.hours() ? "á" : "a") + "] LT" - }, - lastWeek: function() { - return "[o] dddd [pasado " + (1 !== this.hours() ? "ás" : "a") + "] LT" - }, - sameElse: "L" - }, - relativeTime: { - future: function(e) { - return 0 === e.indexOf("un") ? "n" + e : "en " + e - }, - past: "hai %s", - s: "uns segundos", - ss: "%d segundos", - m: "un minuto", - mm: "%d minutos", - h: "unha hora", - hh: "%d horas", - d: "un día", - dd: "%d días", - M: "un mes", - MM: "%d meses", - y: "un ano", - yy: "%d anos" - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: "%dº", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 2844: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("he", { - months: "ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"), - monthsShort: "ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"), - weekdays: "ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"), - weekdaysShort: "א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"), - weekdaysMin: "א_ב_ג_ד_ה_ו_ש".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D [ב]MMMM YYYY", - LLL: "D [ב]MMMM YYYY HH:mm", - LLLL: "dddd, D [ב]MMMM YYYY HH:mm", - l: "D/M/YYYY", - ll: "D MMM YYYY", - lll: "D MMM YYYY HH:mm", - llll: "ddd, D MMM YYYY HH:mm" - }, - calendar: { - sameDay: "[היום ב־]LT", - nextDay: "[מחר ב־]LT", - nextWeek: "dddd [בשעה] LT", - lastDay: "[אתמול ב־]LT", - lastWeek: "[ביום] dddd [האחרון בשעה] LT", - sameElse: "L" - }, - relativeTime: { - future: "בעוד %s", - past: "לפני %s", - s: "מספר שניות", - ss: "%d שניות", - m: "דקה", - mm: "%d דקות", - h: "שעה", - hh: function(e) { - return 2 === e ? "שעתיים" : e + " שעות" - }, - d: "יום", - dd: function(e) { - return 2 === e ? "יומיים" : e + " ימים" - }, - M: "חודש", - MM: function(e) { - return 2 === e ? "חודשיים" : e + " חודשים" - }, - y: "שנה", - yy: function(e) { - return 2 === e ? "שנתיים" : e % 10 == 0 && 10 !== e ? e + " שנה" : e + " שנים" + + function io(e, t) { + if (!e || !e.length) return []; + var n = ro(e); + return null == t ? n : xt(n, (function(e) { + return bt(t, r, e) + })) } - }, - meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, - isPM: function(e) { - return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(e) - }, - meridiem: function(e, t, n) { - return e < 5 ? "לפנות בוקר" : e < 10 ? "בבוקר" : e < 12 ? n ? 'לפנה"צ' : "לפני הצהריים" : e < 18 ? n ? 'אחה"צ' : "אחרי הצהריים" : "בערב" - } - }) - }(n(2083)) - }, 4590: function(e, t, n) { - ! function(e) { - "use strict"; + var oo = Ka((function(e, t) { + return Ko(e) ? ua(e, t) : [] + })), + so = Ka((function(e) { + return hr(wt(e, Ko)) + })), + lo = Ka((function(e) { + var t = Ji(e); + return Ko(t) && (t = r), hr(wt(e, Ko), oi(t, 2)) + })), + co = Ka((function(e) { + var t = Ji(e); + return t = "function" == typeof t ? t : r, hr(wt(e, Ko), r, t) + })), + uo = Ka(ro), + po = Ka((function(e) { + var t = e.length, + n = t > 1 ? e[t - 1] : r; + return n = "function" == typeof n ? (e.pop(), n) : r, io(e, n) + })); - function t(e, t, n) { - var a = e + " "; - switch (n) { - case "ss": - return a + (1 === e ? "sekunda" : 2 === e || 3 === e || 4 === e ? "sekunde" : "sekundi"); - case "m": - return t ? "jedna minuta" : "jedne minute"; - case "mm": - return a + (1 === e ? "minuta" : 2 === e || 3 === e || 4 === e ? "minute" : "minuta"); - case "h": - return t ? "jedan sat" : "jednog sata"; - case "hh": - return a + (1 === e ? "sat" : 2 === e || 3 === e || 4 === e ? "sata" : "sati"); - case "dd": - return a + (1 === e ? "dan" : "dana"); - case "MM": - return a + (1 === e ? "mjesec" : 2 === e || 3 === e || 4 === e ? "mjeseca" : "mjeseci"); - case "yy": - return a + (1 === e ? "godina" : 2 === e || 3 === e || 4 === e ? "godine" : "godina") - } - } - e.defineLocale("hr", { - months: { - format: "siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"), - standalone: "siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_") - }, - monthsShort: "sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"), - monthsParseExact: !0, - weekdays: "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"), - weekdaysShort: "ned._pon._uto._sri._čet._pet._sub.".split("_"), - weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD.MM.YYYY", - LL: "Do MMMM YYYY", - LLL: "Do MMMM YYYY H:mm", - LLLL: "dddd, Do MMMM YYYY H:mm" - }, - calendar: { - sameDay: "[danas u] LT", - nextDay: "[sutra u] LT", - nextWeek: function() { - switch (this.day()) { - case 0: - return "[u] [nedjelju] [u] LT"; - case 3: - return "[u] [srijedu] [u] LT"; - case 6: - return "[u] [subotu] [u] LT"; - case 1: - case 2: - case 4: - case 5: - return "[u] dddd [u] LT" + function ho(e) { + var t = Fn(e); + return t.__chain__ = !0, t + } + + function mo(e, t) { + return t(e) + } + var fo = ei((function(e) { + var t = e.length, + n = t ? e[0] : 0, + a = this.__wrapped__, + i = function(t) { + return ia(t, e) + }; + return !(t > 1 || this.__actions__.length) && a instanceof Hn && gi(n) ? ((a = a.slice(n, +n + (t ? 1 : 0))).__actions__.push({ + func: mo, + args: [i], + thisArg: r + }), new Un(a, this.__chain__).thru((function(e) { + return t && !e.length && e.push(r), e + }))) : this.thru(i) + })), + go = Dr((function(e, t, n) { + Ie.call(e, n) ? ++e[n] : ra(e, n, 1) + })), + bo = Rr(Hi), + yo = Rr(Vi); + + function vo(e, t) { + return (Wo(e) ? vt : da)(e, oi(t, 3)) + } + + function ko(e, t) { + return (Wo(e) ? kt : pa)(e, oi(t, 3)) + } + var _o = Dr((function(e, t, n) { + Ie.call(e, n) ? e[n].push(t) : ra(e, n, [t]) + })), + wo = Ka((function(e, t, n) { + var r = -1, + i = "function" == typeof t, + o = Go(e) ? a(e.length) : []; + return da(e, (function(e) { + o[++r] = i ? bt(t, e, n) : Da(e, t, n) + })), o + })), + So = Dr((function(e, t, n) { + ra(e, n, t) + })); + + function Eo(e, t) { + return (Wo(e) ? xt : za)(e, oi(t, 3)) + } + var xo = Dr((function(e, t, n) { + e[n ? 0 : 1].push(t) + }), (function() { + return [ + [], + [] + ] + })), + Co = Ka((function(e, t) { + if (null == e) return []; + var n = t.length; + return n > 1 && bi(e, t[0], t[1]) ? t = [] : n > 2 && bi(t[0], t[1], t[2]) && (t = [t[0]]), Ua(e, ga(t, 1), []) + })), + Ao = Pt || function() { + return it.Date.now() + }; + + function To(e, t, n) { + return t = n ? r : t, t = e && null == t ? e.length : t, $r(e, c, r, r, r, r, t) + } + + function Do(e, t) { + var n; + if ("function" != typeof t) throw new Ae(i); + return e = fs(e), + function() { + return --e > 0 && (n = t.apply(this, arguments)), e <= 1 && (t = r), n + } + } + var Po = Ka((function(e, t, n) { + var a = 1; + if (n.length) { + var r = tn(n, ii(Po)); + a |= l + } + return $r(e, a, t, n, r) + })), + jo = Ka((function(e, t, n) { + var a = 3; + if (n.length) { + var r = tn(n, ii(jo)); + a |= l + } + return $r(t, a, e, n, r) + })); + + function Mo(e, t, n) { + var a, o, s, l, c, u, d = 0, + p = !1, + h = !1, + m = !0; + if ("function" != typeof e) throw new Ae(i); + + function f(t) { + var n = a, + i = o; + return a = o = r, d = t, l = e.apply(i, n) } - }, - lastDay: "[jučer u] LT", - lastWeek: function() { - switch (this.day()) { - case 0: - return "[prošlu] [nedjelju] [u] LT"; - case 3: - return "[prošlu] [srijedu] [u] LT"; - case 6: - return "[prošle] [subote] [u] LT"; - case 1: - case 2: - case 4: - case 5: - return "[prošli] dddd [u] LT" + + function g(e) { + return d = e, c = Di(y, t), p ? f(e) : l } - }, - sameElse: "L" - }, - relativeTime: { - future: "za %s", - past: "prije %s", - s: "par sekundi", - ss: t, - m: t, - mm: t, - h: t, - hh: t, - d: "dan", - dd: t, - M: "mjesec", - MM: t, - y: "godinu", - yy: t - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 6941: function(e, t, n) { - ! function(e) { - "use strict"; - var t = "vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" "); - function n(e, t, n, a) { - var r = e; - switch (n) { - case "s": - return a || t ? "néhány másodperc" : "néhány másodperce"; - case "ss": - return r + (a || t) ? " másodperc" : " másodperce"; - case "m": - return "egy" + (a || t ? " perc" : " perce"); - case "mm": - return r + (a || t ? " perc" : " perce"); - case "h": - return "egy" + (a || t ? " óra" : " órája"); - case "hh": - return r + (a || t ? " óra" : " órája"); - case "d": - return "egy" + (a || t ? " nap" : " napja"); - case "dd": - return r + (a || t ? " nap" : " napja"); - case "M": - return "egy" + (a || t ? " hónap" : " hónapja"); - case "MM": - return r + (a || t ? " hónap" : " hónapja"); - case "y": - return "egy" + (a || t ? " év" : " éve"); - case "yy": - return r + (a || t ? " év" : " éve") - } - return "" - } + function b(e) { + var n = e - u; + return u === r || n >= t || n < 0 || h && e - d >= s + } - function a(e) { - return (e ? "" : "[múlt] ") + "[" + t[this.day()] + "] LT[-kor]" - } - e.defineLocale("hu", { - months: "január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"), - monthsShort: "jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"), - monthsParseExact: !0, - weekdays: "vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"), - weekdaysShort: "vas_hét_kedd_sze_csüt_pén_szo".split("_"), - weekdaysMin: "v_h_k_sze_cs_p_szo".split("_"), - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "YYYY.MM.DD.", - LL: "YYYY. MMMM D.", - LLL: "YYYY. MMMM D. H:mm", - LLLL: "YYYY. MMMM D., dddd H:mm" - }, - meridiemParse: /de|du/i, - isPM: function(e) { - return "u" === e.charAt(1).toLowerCase() - }, - meridiem: function(e, t, n) { - return e < 12 ? !0 === n ? "de" : "DE" : !0 === n ? "du" : "DU" - }, - calendar: { - sameDay: "[ma] LT[-kor]", - nextDay: "[holnap] LT[-kor]", - nextWeek: function() { - return a.call(this, !0) - }, - lastDay: "[tegnap] LT[-kor]", - lastWeek: function() { - return a.call(this, !1) - }, - sameElse: "L" - }, - relativeTime: { - future: "%s múlva", - past: "%s", - s: n, - ss: n, - m: n, - mm: n, - h: n, - hh: n, - d: n, - dd: n, - M: n, - MM: n, - y: n, - yy: n - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 1638: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("hy-am", { - months: { - format: "հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"), - standalone: "հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_") - }, - monthsShort: "հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"), - weekdays: "կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"), - weekdaysShort: "կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"), - weekdaysMin: "կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY", - LL: "D MMMM YYYY թ.", - LLL: "D MMMM YYYY թ., HH:mm", - LLLL: "dddd, D MMMM YYYY թ., HH:mm" - }, - calendar: { - sameDay: "[այսօր] LT", - nextDay: "[վաղը] LT", - lastDay: "[երեկ] LT", - nextWeek: function() { - return "dddd [օրը ժամը] LT" - }, - lastWeek: function() { - return "[անցած] dddd [օրը ժամը] LT" - }, - sameElse: "L" - }, - relativeTime: { - future: "%s հետո", - past: "%s առաջ", - s: "մի քանի վայրկյան", - ss: "%d վայրկյան", - m: "րոպե", - mm: "%d րոպե", - h: "ժամ", - hh: "%d ժամ", - d: "օր", - dd: "%d օր", - M: "ամիս", - MM: "%d ամիս", - y: "տարի", - yy: "%d տարի" - }, - meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, - isPM: function(e) { - return /^(ցերեկվա|երեկոյան)$/.test(e) - }, - meridiem: function(e) { - return e < 4 ? "գիշերվա" : e < 12 ? "առավոտվա" : e < 17 ? "ցերեկվա" : "երեկոյան" - }, - dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, - ordinal: function(e, t) { - switch (t) { - case "DDD": - case "w": - case "W": - case "DDDo": - return 1 === e ? e + "-ին" : e + "-րդ"; - default: + function y() { + var e = Ao(); + if (b(e)) return v(e); + c = Di(y, function(e) { + var n = t - (e - u); + return h ? yn(n, s - (e - d)) : n + }(e)) + } + + function v(e) { + return c = r, m && a ? f(e) : (a = o = r, l) + } + + function k() { + var e = Ao(), + n = b(e); + if (a = arguments, o = this, u = e, n) { + if (c === r) return g(u); + if (h) return kr(c), c = Di(y, t), f(u) + } + return c === r && (c = Di(y, t)), l + } + return t = bs(t) || 0, ts(n) && (p = !!n.leading, s = (h = "maxWait" in n) ? bn(bs(n.maxWait) || 0, t) : s, m = "trailing" in n ? !!n.trailing : m), k.cancel = function() { + c !== r && kr(c), d = 0, a = u = o = c = r + }, k.flush = function() { + return c === r ? l : v(Ao()) + }, k + } + var Io = Ka((function(e, t) { + return ca(e, 1, t) + })), + Oo = Ka((function(e, t, n) { + return ca(e, bs(t) || 0, n) + })); + + function No(e, t) { + if ("function" != typeof e || null != t && "function" != typeof t) throw new Ae(i); + var n = function() { + var a = arguments, + r = t ? t.apply(this, a) : a[0], + i = n.cache; + if (i.has(r)) return i.get(r); + var o = e.apply(this, a); + return n.cache = i.set(r, o) || i, o + }; + return n.cache = new(No.Cache || Yn), n + } + + function Ro(e) { + if ("function" != typeof e) throw new Ae(i); + return function() { + var t = arguments; + switch (t.length) { + case 0: + return !e.call(this); + case 1: + return !e.call(this, t[0]); + case 2: + return !e.call(this, t[0], t[1]); + case 3: + return !e.call(this, t[0], t[1], t[2]) + } + return !e.apply(this, t) + } + } + No.Cache = Yn; + var zo = yr((function(e, t) { + var n = (t = 1 == t.length && Wo(t[0]) ? xt(t[0], Ht(oi())) : xt(ga(t, 1), Ht(oi()))).length; + return Ka((function(a) { + for (var r = -1, i = yn(a.length, n); ++r < i;) a[r] = t[r].call(this, a[r]); + return bt(e, this, a) + })) + })), + Lo = Ka((function(e, t) { + var n = tn(t, ii(Lo)); + return $r(e, l, r, t, n) + })), + Fo = Ka((function(e, t) { + var n = tn(t, ii(Fo)); + return $r(e, 64, r, t, n) + })), + qo = ei((function(e, t) { + return $r(e, 256, r, r, r, t) + })); + + function Bo(e, t) { + return e === t || e != e && t != t + } + var Uo = Vr(xa), + Ho = Vr((function(e, t) { + return e >= t + })), + Vo = Pa(function() { + return arguments + }()) ? Pa : function(e) { + return ns(e) && Ie.call(e, "callee") && !et.call(e, "callee") + }, + Wo = a.isArray, + Yo = dt ? Ht(dt) : function(e) { + return ns(e) && Ea(e) == j + }; + + function Go(e) { + return null != e && es(e.length) && !Qo(e) + } + + function Ko(e) { + return ns(e) && Go(e) + } + var $o = hn || bl, + Jo = pt ? Ht(pt) : function(e) { + return ns(e) && Ea(e) == y + }; + + function Zo(e) { + if (!ns(e)) return !1; + var t = Ea(e); + return t == v || "[object DOMException]" == t || "string" == typeof e.message && "string" == typeof e.name && !is(e) + } + + function Qo(e) { + if (!ts(e)) return !1; + var t = Ea(e); + return t == k || t == _ || "[object AsyncFunction]" == t || "[object Proxy]" == t + } + + function Xo(e) { + return "number" == typeof e && e == fs(e) + } + + function es(e) { + return "number" == typeof e && e > -1 && e % 1 == 0 && e <= d + } + + function ts(e) { + var t = typeof e; + return null != e && ("object" == t || "function" == t) + } + + function ns(e) { + return null != e && "object" == typeof e + } + var as = ht ? Ht(ht) : function(e) { + return ns(e) && pi(e) == w + }; + + function rs(e) { + return "number" == typeof e || ns(e) && Ea(e) == S + } + + function is(e) { + if (!ns(e) || Ea(e) != E) return !1; + var t = Ye(e); + if (null === t) return !0; + var n = Ie.call(t, "constructor") && t.constructor; + return "function" == typeof n && n instanceof n && Me.call(n) == ze + } + var os = mt ? Ht(mt) : function(e) { + return ns(e) && Ea(e) == C + }, + ss = ft ? Ht(ft) : function(e) { + return ns(e) && pi(e) == A + }; + + function ls(e) { + return "string" == typeof e || !Wo(e) && ns(e) && Ea(e) == T + } + + function cs(e) { + return "symbol" == typeof e || ns(e) && Ea(e) == D + } + var us = gt ? Ht(gt) : function(e) { + return ns(e) && es(e.length) && !!Qe[Ea(e)] + }, + ds = Vr(Ra), + ps = Vr((function(e, t) { + return e <= t + })); + + function hs(e) { + if (!e) return []; + if (Go(e)) return ls(e) ? on(e) : Ar(e); + if (ot && e[ot]) return function(e) { + for (var t, n = []; !(t = e.next()).done;) n.push(t.value); + return n + }(e[ot]()); + var t = pi(e); + return (t == w ? Xt : t == A ? nn : Bs)(e) + } + + function ms(e) { + return e ? (e = bs(e)) === u || e === -1 / 0 ? 17976931348623157e292 * (e < 0 ? -1 : 1) : e == e ? e : 0 : 0 === e ? e : 0 + } + + function fs(e) { + var t = ms(e), + n = t % 1; + return t == t ? n ? t - n : t : 0 + } + + function gs(e) { + return e ? oa(fs(e), 0, h) : 0 + } + + function bs(e) { + if ("number" == typeof e) return e; + if (cs(e)) return p; + if (ts(e)) { + var t = "function" == typeof e.valueOf ? e.valueOf() : e; + e = ts(t) ? t + "" : t + } + if ("string" != typeof e) return 0 === e ? e : +e; + e = Ut(e); + var n = me.test(e); + return n || ge.test(e) ? nt(e.slice(2), n ? 2 : 8) : he.test(e) ? p : +e + } + + function ys(e) { + return Tr(e, Is(e)) + } + + function vs(e) { + return null == e ? "" : sr(e) + } + var ks = Pr((function(e, t) { + if (_i(t) || Go(t)) Tr(t, Ms(t), e); + else + for (var n in t) Ie.call(t, n) && ea(e, n, t[n]) + })), + _s = Pr((function(e, t) { + Tr(t, Is(t), e) + })), + ws = Pr((function(e, t, n, a) { + Tr(t, Is(t), e, a) + })), + Ss = Pr((function(e, t, n, a) { + Tr(t, Ms(t), e, a) + })), + Es = ei(ia), + xs = Ka((function(e, t) { + e = Ee(e); + var n = -1, + a = t.length, + i = a > 2 ? t[2] : r; + for (i && bi(t[0], t[1], i) && (a = 1); ++n < a;) + for (var o = t[n], s = Is(o), l = -1, c = s.length; ++l < c;) { + var u = s[l], + d = e[u]; + (d === r || Bo(d, Pe[u]) && !Ie.call(e, u)) && (e[u] = o[u]) + } return e + })), + Cs = Ka((function(e) { + return e.push(r, Zr), bt(Ns, r, e) + })); + + function As(e, t, n) { + var a = null == e ? r : wa(e, t); + return a === r ? n : a } - }, - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 5651: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("id", { - months: "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"), - monthsShort: "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"), - weekdays: "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"), - weekdaysShort: "Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"), - weekdaysMin: "Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"), - longDateFormat: { - LT: "HH.mm", - LTS: "HH.mm.ss", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY [pukul] HH.mm", - LLLL: "dddd, D MMMM YYYY [pukul] HH.mm" - }, - meridiemParse: /pagi|siang|sore|malam/, - meridiemHour: function(e, t) { - return 12 === e && (e = 0), "pagi" === t ? e : "siang" === t ? e >= 11 ? e : e + 12 : "sore" === t || "malam" === t ? e + 12 : void 0 - }, - meridiem: function(e, t, n) { - return e < 11 ? "pagi" : e < 15 ? "siang" : e < 19 ? "sore" : "malam" - }, - calendar: { - sameDay: "[Hari ini pukul] LT", - nextDay: "[Besok pukul] LT", - nextWeek: "dddd [pukul] LT", - lastDay: "[Kemarin pukul] LT", - lastWeek: "dddd [lalu pukul] LT", - sameElse: "L" - }, - relativeTime: { - future: "dalam %s", - past: "%s yang lalu", - s: "beberapa detik", - ss: "%d detik", - m: "semenit", - mm: "%d menit", - h: "sejam", - hh: "%d jam", - d: "sehari", - dd: "%d hari", - M: "sebulan", - MM: "%d bulan", - y: "setahun", - yy: "%d tahun" - }, - week: { - dow: 0, - doy: 6 - } - }) - }(n(2083)) - }, 2821: function(e, t, n) { - ! function(e) { - "use strict"; - function t(e) { - return e % 100 == 11 || e % 10 != 1 - } + function Ts(e, t) { + return null != e && hi(e, t, Aa) + } + var Ds = Fr((function(e, t, n) { + null != t && "function" != typeof t.toString && (t = Re.call(t)), e[t] = n + }), tl(rl)), + Ps = Fr((function(e, t, n) { + null != t && "function" != typeof t.toString && (t = Re.call(t)), Ie.call(e, t) ? e[t].push(n) : e[t] = [n] + }), oi), + js = Ka(Da); - function n(e, n, a, r) { - var i = e + " "; - switch (a) { - case "s": - return n || r ? "nokkrar sekúndur" : "nokkrum sekúndum"; - case "ss": - return t(e) ? i + (n || r ? "sekúndur" : "sekúndum") : i + "sekúnda"; - case "m": - return n ? "mínúta" : "mínútu"; - case "mm": - return t(e) ? i + (n || r ? "mínútur" : "mínútum") : n ? i + "mínúta" : i + "mínútu"; - case "hh": - return t(e) ? i + (n || r ? "klukkustundir" : "klukkustundum") : i + "klukkustund"; - case "d": - return n ? "dagur" : r ? "dag" : "degi"; - case "dd": - return t(e) ? n ? i + "dagar" : i + (r ? "daga" : "dögum") : n ? i + "dagur" : i + (r ? "dag" : "degi"); - case "M": - return n ? "mánuður" : r ? "mánuð" : "mánuði"; - case "MM": - return t(e) ? n ? i + "mánuðir" : i + (r ? "mánuði" : "mánuðum") : n ? i + "mánuður" : i + (r ? "mánuð" : "mánuði"); - case "y": - return n || r ? "ár" : "ári"; - case "yy": - return t(e) ? i + (n || r ? "ár" : "árum") : i + (n || r ? "ár" : "ári") - } - } - e.defineLocale("is", { - months: "janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"), - monthsShort: "jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"), - weekdays: "sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"), - weekdaysShort: "sun_mán_þri_mið_fim_fös_lau".split("_"), - weekdaysMin: "Su_Má_Þr_Mi_Fi_Fö_La".split("_"), - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD.MM.YYYY", - LL: "D. MMMM YYYY", - LLL: "D. MMMM YYYY [kl.] H:mm", - LLLL: "dddd, D. MMMM YYYY [kl.] H:mm" - }, - calendar: { - sameDay: "[í dag kl.] LT", - nextDay: "[á morgun kl.] LT", - nextWeek: "dddd [kl.] LT", - lastDay: "[í gær kl.] LT", - lastWeek: "[síðasta] dddd [kl.] LT", - sameElse: "L" - }, - relativeTime: { - future: "eftir %s", - past: "fyrir %s síðan", - s: n, - ss: n, - m: n, - mm: n, - h: "klukkustund", - hh: n, - d: n, - dd: n, - M: n, - MM: n, - y: n, - yy: n - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 7974: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("it", { - months: "gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"), - monthsShort: "gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"), - weekdays: "domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"), - weekdaysShort: "dom_lun_mar_mer_gio_ven_sab".split("_"), - weekdaysMin: "do_lu_ma_me_gi_ve_sa".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd D MMMM YYYY HH:mm" - }, - calendar: { - sameDay: function() { - return "[Oggi a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" - }, - nextDay: function() { - return "[Domani a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" - }, - nextWeek: function() { - return "dddd [a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" - }, - lastDay: function() { - return "[Ieri a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" - }, - lastWeek: function() { - return 0 === this.day() ? "[La scorsa] dddd [a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" : "[Lo scorso] dddd [a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" - }, - sameElse: "L" - }, - relativeTime: { - future: "tra %s", - past: "%s fa", - s: "alcuni secondi", - ss: "%d secondi", - m: "un minuto", - mm: "%d minuti", - h: "un'ora", - hh: "%d ore", - d: "un giorno", - dd: "%d giorni", - w: "una settimana", - ww: "%d settimane", - M: "un mese", - MM: "%d mesi", - y: "un anno", - yy: "%d anni" - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: "%dº", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 8806: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("ja", { - eras: [{ - since: "2019-05-01", - offset: 1, - name: "令和", - narrow: "㋿", - abbr: "R" + function Ms(e) { + return Go(e) ? $n(e) : Na(e) + } + + function Is(e) { + return Go(e) ? $n(e, !0) : function(e) { + if (!ts(e)) return function(e) { + var t = []; + if (null != e) + for (var n in Ee(e)) t.push(n); + return t + }(e); + var t = _i(e), + n = []; + for (var a in e)("constructor" != a || !t && Ie.call(e, a)) && n.push(a); + return n + }(e) + } + var Os = Pr((function(e, t, n) { + qa(e, t, n) + })), + Ns = Pr((function(e, t, n, a) { + qa(e, t, n, a) + })), + Rs = ei((function(e, t) { + var n = {}; + if (null == e) return n; + var a = !1; + t = xt(t, (function(t) { + return t = br(t, e), a || (a = t.length > 1), t + })), Tr(e, ni(e), n), a && (n = sa(n, 7, Qr)); + for (var r = t.length; r--;) cr(n, t[r]); + return n + })), + zs = ei((function(e, t) { + return null == e ? {} : function(e, t) { + return Ha(e, t, (function(t, n) { + return Ts(e, n) + })) + }(e, t) + })); + + function Ls(e, t) { + if (null == e) return {}; + var n = xt(ni(e), (function(e) { + return [e] + })); + return t = oi(t), Ha(e, n, (function(e, n) { + return t(e, n[0]) + })) + } + var Fs = Kr(Ms), + qs = Kr(Is); + + function Bs(e) { + return null == e ? [] : Vt(e, Ms(e)) + } + var Us = Or((function(e, t, n) { + return t = t.toLowerCase(), e + (n ? Hs(t) : t) + })); + + function Hs(e) { + return Zs(vs(e).toLowerCase()) + } + + function Vs(e) { + return (e = vs(e)) && e.replace(ye, $t).replace(We, "") + } + var Ws = Or((function(e, t, n) { + return e + (n ? "-" : "") + t.toLowerCase() + })), + Ys = Or((function(e, t, n) { + return e + (n ? " " : "") + t.toLowerCase() + })), + Gs = Ir("toLowerCase"), + Ks = Or((function(e, t, n) { + return e + (n ? "_" : "") + t.toLowerCase() + })), + $s = Or((function(e, t, n) { + return e + (n ? " " : "") + Zs(t) + })), + Js = Or((function(e, t, n) { + return e + (n ? " " : "") + t.toUpperCase() + })), + Zs = Ir("toUpperCase"); + + function Qs(e, t, n) { + return e = vs(e), (t = n ? r : t) === r ? function(e) { + return $e.test(e) + }(e) ? function(e) { + return e.match(Ge) || [] + }(e) : function(e) { + return e.match(le) || [] + }(e) : e.match(t) || [] + } + var Xs = Ka((function(e, t) { + try { + return bt(e, r, t) + } catch (e) { + return Zo(e) ? e : new _e(e) + } + })), + el = ei((function(e, t) { + return vt(t, (function(t) { + t = zi(t), ra(e, t, Po(e[t], e)) + })), e + })); + + function tl(e) { + return function() { + return e + } + } + var nl = zr(), + al = zr(!0); + + function rl(e) { + return e + } + + function il(e) { + return Oa("function" == typeof e ? e : sa(e, 1)) + } + var ol = Ka((function(e, t) { + return function(n) { + return Da(n, e, t) + } + })), + sl = Ka((function(e, t) { + return function(n) { + return Da(e, n, t) + } + })); + + function ll(e, t, n) { + var a = Ms(t), + r = _a(t, a); + null != n || ts(t) && (r.length || !a.length) || (n = t, t = e, e = this, r = _a(t, Ms(t))); + var i = !(ts(n) && "chain" in n && !n.chain), + o = Qo(e); + return vt(r, (function(n) { + var a = t[n]; + e[n] = a, o && (e.prototype[n] = function() { + var t = this.__chain__; + if (i || t) { + var n = e(this.__wrapped__), + r = n.__actions__ = Ar(this.__actions__); + return r.push({ + func: a, + args: arguments, + thisArg: e + }), n.__chain__ = t, n + } + return a.apply(e, Ct([this.value()], arguments)) + }) + })), e + } + + function cl() {} + var ul = Br(xt), + dl = Br(_t), + pl = Br(Dt); + + function hl(e) { + return yi(e) ? zt(zi(e)) : function(e) { + return function(t) { + return wa(t, e) + } + }(e) + } + var ml = Hr(), + fl = Hr(!0); + + function gl() { + return [] + } + + function bl() { + return !1 + } + var yl, vl = qr((function(e, t) { + return e + t + }), 0), + kl = Yr("ceil"), + _l = qr((function(e, t) { + return e / t + }), 1), + wl = Yr("floor"), + Sl = qr((function(e, t) { + return e * t + }), 1), + El = Yr("round"), + xl = qr((function(e, t) { + return e - t + }), 0); + return Fn.after = function(e, t) { + if ("function" != typeof t) throw new Ae(i); + return e = fs(e), + function() { + if (--e < 1) return t.apply(this, arguments) + } + }, Fn.ary = To, Fn.assign = ks, Fn.assignIn = _s, Fn.assignInWith = ws, Fn.assignWith = Ss, Fn.at = Es, Fn.before = Do, Fn.bind = Po, Fn.bindAll = el, Fn.bindKey = jo, Fn.castArray = function() { + if (!arguments.length) return []; + var e = arguments[0]; + return Wo(e) ? e : [e] + }, Fn.chain = ho, Fn.chunk = function(e, t, n) { + t = (n ? bi(e, t, n) : t === r) ? 1 : bn(fs(t), 0); + var i = null == e ? 0 : e.length; + if (!i || t < 1) return []; + for (var o = 0, s = 0, l = a(un(i / t)); o < i;) l[s++] = tr(e, o, o += t); + return l + }, Fn.compact = function(e) { + for (var t = -1, n = null == e ? 0 : e.length, a = 0, r = []; ++t < n;) { + var i = e[t]; + i && (r[a++] = i) + } + return r + }, Fn.concat = function() { + var e = arguments.length; + if (!e) return []; + for (var t = a(e - 1), n = arguments[0], r = e; r--;) t[r - 1] = arguments[r]; + return Ct(Wo(n) ? Ar(n) : [n], ga(t, 1)) + }, Fn.cond = function(e) { + var t = null == e ? 0 : e.length, + n = oi(); + return e = t ? xt(e, (function(e) { + if ("function" != typeof e[1]) throw new Ae(i); + return [n(e[0]), e[1]] + })) : [], Ka((function(n) { + for (var a = -1; ++a < t;) { + var r = e[a]; + if (bt(r[0], this, n)) return bt(r[1], this, n) + } + })) + }, Fn.conforms = function(e) { + return function(e) { + var t = Ms(e); + return function(n) { + return la(n, e, t) + } + }(sa(e, 1)) + }, Fn.constant = tl, Fn.countBy = go, Fn.create = function(e, t) { + var n = qn(e); + return null == t ? n : aa(n, t) + }, Fn.curry = function e(t, n, a) { + var i = $r(t, 8, r, r, r, r, r, n = a ? r : n); + return i.placeholder = e.placeholder, i + }, Fn.curryRight = function e(t, n, a) { + var i = $r(t, 16, r, r, r, r, r, n = a ? r : n); + return i.placeholder = e.placeholder, i + }, Fn.debounce = Mo, Fn.defaults = xs, Fn.defaultsDeep = Cs, Fn.defer = Io, Fn.delay = Oo, Fn.difference = qi, Fn.differenceBy = Bi, Fn.differenceWith = Ui, Fn.drop = function(e, t, n) { + var a = null == e ? 0 : e.length; + return a ? tr(e, (t = n || t === r ? 1 : fs(t)) < 0 ? 0 : t, a) : [] + }, Fn.dropRight = function(e, t, n) { + var a = null == e ? 0 : e.length; + return a ? tr(e, 0, (t = a - (t = n || t === r ? 1 : fs(t))) < 0 ? 0 : t) : [] + }, Fn.dropRightWhile = function(e, t) { + return e && e.length ? dr(e, oi(t, 3), !0, !0) : [] + }, Fn.dropWhile = function(e, t) { + return e && e.length ? dr(e, oi(t, 3), !0) : [] + }, Fn.fill = function(e, t, n, a) { + var i = null == e ? 0 : e.length; + return i ? (n && "number" != typeof n && bi(e, t, n) && (n = 0, a = i), function(e, t, n, a) { + var i = e.length; + for ((n = fs(n)) < 0 && (n = -n > i ? 0 : i + n), (a = a === r || a > i ? i : fs(a)) < 0 && (a += i), a = n > a ? 0 : gs(a); n < a;) e[n++] = t; + return e + }(e, t, n, a)) : [] + }, Fn.filter = function(e, t) { + return (Wo(e) ? wt : fa)(e, oi(t, 3)) + }, Fn.flatMap = function(e, t) { + return ga(Eo(e, t), 1) + }, Fn.flatMapDeep = function(e, t) { + return ga(Eo(e, t), u) + }, Fn.flatMapDepth = function(e, t, n) { + return n = n === r ? 1 : fs(n), ga(Eo(e, t), n) + }, Fn.flatten = Wi, Fn.flattenDeep = function(e) { + return null != e && e.length ? ga(e, u) : [] + }, Fn.flattenDepth = function(e, t) { + return null != e && e.length ? ga(e, t = t === r ? 1 : fs(t)) : [] + }, Fn.flip = function(e) { + return $r(e, 512) + }, Fn.flow = nl, Fn.flowRight = al, Fn.fromPairs = function(e) { + for (var t = -1, n = null == e ? 0 : e.length, a = {}; ++t < n;) { + var r = e[t]; + a[r[0]] = r[1] + } + return a + }, Fn.functions = function(e) { + return null == e ? [] : _a(e, Ms(e)) + }, Fn.functionsIn = function(e) { + return null == e ? [] : _a(e, Is(e)) + }, Fn.groupBy = _o, Fn.initial = function(e) { + return null != e && e.length ? tr(e, 0, -1) : [] + }, Fn.intersection = Gi, Fn.intersectionBy = Ki, Fn.intersectionWith = $i, Fn.invert = Ds, Fn.invertBy = Ps, Fn.invokeMap = wo, Fn.iteratee = il, Fn.keyBy = So, Fn.keys = Ms, Fn.keysIn = Is, Fn.map = Eo, Fn.mapKeys = function(e, t) { + var n = {}; + return t = oi(t, 3), va(e, (function(e, a, r) { + ra(n, t(e, a, r), e) + })), n + }, Fn.mapValues = function(e, t) { + var n = {}; + return t = oi(t, 3), va(e, (function(e, a, r) { + ra(n, a, t(e, a, r)) + })), n + }, Fn.matches = function(e) { + return La(sa(e, 1)) + }, Fn.matchesProperty = function(e, t) { + return Fa(e, sa(t, 1)) + }, Fn.memoize = No, Fn.merge = Os, Fn.mergeWith = Ns, Fn.method = ol, Fn.methodOf = sl, Fn.mixin = ll, Fn.negate = Ro, Fn.nthArg = function(e) { + return e = fs(e), Ka((function(t) { + return Ba(t, e) + })) + }, Fn.omit = Rs, Fn.omitBy = function(e, t) { + return Ls(e, Ro(oi(t))) + }, Fn.once = function(e) { + return Do(2, e) + }, Fn.orderBy = function(e, t, n, a) { + return null == e ? [] : (Wo(t) || (t = null == t ? [] : [t]), Wo(n = a ? r : n) || (n = null == n ? [] : [n]), Ua(e, t, n)) + }, Fn.over = ul, Fn.overArgs = zo, Fn.overEvery = dl, Fn.overSome = pl, Fn.partial = Lo, Fn.partialRight = Fo, Fn.partition = xo, Fn.pick = zs, Fn.pickBy = Ls, Fn.property = hl, Fn.propertyOf = function(e) { + return function(t) { + return null == e ? r : wa(e, t) + } + }, Fn.pull = Zi, Fn.pullAll = Qi, Fn.pullAllBy = function(e, t, n) { + return e && e.length && t && t.length ? Va(e, t, oi(n, 2)) : e + }, Fn.pullAllWith = function(e, t, n) { + return e && e.length && t && t.length ? Va(e, t, r, n) : e + }, Fn.pullAt = Xi, Fn.range = ml, Fn.rangeRight = fl, Fn.rearg = qo, Fn.reject = function(e, t) { + return (Wo(e) ? wt : fa)(e, Ro(oi(t, 3))) + }, Fn.remove = function(e, t) { + var n = []; + if (!e || !e.length) return n; + var a = -1, + r = [], + i = e.length; + for (t = oi(t, 3); ++a < i;) { + var o = e[a]; + t(o, a, e) && (n.push(o), r.push(a)) + } + return Wa(e, r), n + }, Fn.rest = function(e, t) { + if ("function" != typeof e) throw new Ae(i); + return Ka(e, t = t === r ? t : fs(t)) + }, Fn.reverse = eo, Fn.sampleSize = function(e, t, n) { + return t = (n ? bi(e, t, n) : t === r) ? 1 : fs(t), (Wo(e) ? Zn : Ja)(e, t) + }, Fn.set = function(e, t, n) { + return null == e ? e : Za(e, t, n) + }, Fn.setWith = function(e, t, n, a) { + return a = "function" == typeof a ? a : r, null == e ? e : Za(e, t, n, a) + }, Fn.shuffle = function(e) { + return (Wo(e) ? Qn : er)(e) + }, Fn.slice = function(e, t, n) { + var a = null == e ? 0 : e.length; + return a ? (n && "number" != typeof n && bi(e, t, n) ? (t = 0, n = a) : (t = null == t ? 0 : fs(t), n = n === r ? a : fs(n)), tr(e, t, n)) : [] + }, Fn.sortBy = Co, Fn.sortedUniq = function(e) { + return e && e.length ? ir(e) : [] + }, Fn.sortedUniqBy = function(e, t) { + return e && e.length ? ir(e, oi(t, 2)) : [] + }, Fn.split = function(e, t, n) { + return n && "number" != typeof n && bi(e, t, n) && (t = n = r), (n = n === r ? h : n >>> 0) ? (e = vs(e)) && ("string" == typeof t || null != t && !os(t)) && !(t = sr(t)) && Qt(e) ? vr(on(e), 0, n) : e.split(t, n) : [] + }, Fn.spread = function(e, t) { + if ("function" != typeof e) throw new Ae(i); + return t = null == t ? 0 : bn(fs(t), 0), Ka((function(n) { + var a = n[t], + r = vr(n, 0, t); + return a && Ct(r, a), bt(e, this, r) + })) + }, Fn.tail = function(e) { + var t = null == e ? 0 : e.length; + return t ? tr(e, 1, t) : [] + }, Fn.take = function(e, t, n) { + return e && e.length ? tr(e, 0, (t = n || t === r ? 1 : fs(t)) < 0 ? 0 : t) : [] + }, Fn.takeRight = function(e, t, n) { + var a = null == e ? 0 : e.length; + return a ? tr(e, (t = a - (t = n || t === r ? 1 : fs(t))) < 0 ? 0 : t, a) : [] + }, Fn.takeRightWhile = function(e, t) { + return e && e.length ? dr(e, oi(t, 3), !1, !0) : [] + }, Fn.takeWhile = function(e, t) { + return e && e.length ? dr(e, oi(t, 3)) : [] + }, Fn.tap = function(e, t) { + return t(e), e + }, Fn.throttle = function(e, t, n) { + var a = !0, + r = !0; + if ("function" != typeof e) throw new Ae(i); + return ts(n) && (a = "leading" in n ? !!n.leading : a, r = "trailing" in n ? !!n.trailing : r), Mo(e, t, { + leading: a, + maxWait: t, + trailing: r + }) + }, Fn.thru = mo, Fn.toArray = hs, Fn.toPairs = Fs, Fn.toPairsIn = qs, Fn.toPath = function(e) { + return Wo(e) ? xt(e, zi) : cs(e) ? [e] : Ar(Ri(vs(e))) + }, Fn.toPlainObject = ys, Fn.transform = function(e, t, n) { + var a = Wo(e), + r = a || $o(e) || us(e); + if (t = oi(t, 4), null == n) { + var i = e && e.constructor; + n = r ? a ? new i : [] : ts(e) && Qo(i) ? qn(Ye(e)) : {} + } + return (r ? vt : va)(e, (function(e, a, r) { + return t(n, e, a, r) + })), n + }, Fn.unary = function(e) { + return To(e, 1) + }, Fn.union = to, Fn.unionBy = no, Fn.unionWith = ao, Fn.uniq = function(e) { + return e && e.length ? lr(e) : [] + }, Fn.uniqBy = function(e, t) { + return e && e.length ? lr(e, oi(t, 2)) : [] + }, Fn.uniqWith = function(e, t) { + return t = "function" == typeof t ? t : r, e && e.length ? lr(e, r, t) : [] + }, Fn.unset = function(e, t) { + return null == e || cr(e, t) + }, Fn.unzip = ro, Fn.unzipWith = io, Fn.update = function(e, t, n) { + return null == e ? e : ur(e, t, gr(n)) + }, Fn.updateWith = function(e, t, n, a) { + return a = "function" == typeof a ? a : r, null == e ? e : ur(e, t, gr(n), a) + }, Fn.values = Bs, Fn.valuesIn = function(e) { + return null == e ? [] : Vt(e, Is(e)) + }, Fn.without = oo, Fn.words = Qs, Fn.wrap = function(e, t) { + return Lo(gr(t), e) + }, Fn.xor = so, Fn.xorBy = lo, Fn.xorWith = co, Fn.zip = uo, Fn.zipObject = function(e, t) { + return mr(e || [], t || [], ea) + }, Fn.zipObjectDeep = function(e, t) { + return mr(e || [], t || [], Za) + }, Fn.zipWith = po, Fn.entries = Fs, Fn.entriesIn = qs, Fn.extend = _s, Fn.extendWith = ws, ll(Fn, Fn), Fn.add = vl, Fn.attempt = Xs, Fn.camelCase = Us, Fn.capitalize = Hs, Fn.ceil = kl, Fn.clamp = function(e, t, n) { + return n === r && (n = t, t = r), n !== r && (n = (n = bs(n)) == n ? n : 0), t !== r && (t = (t = bs(t)) == t ? t : 0), oa(bs(e), t, n) + }, Fn.clone = function(e) { + return sa(e, 4) + }, Fn.cloneDeep = function(e) { + return sa(e, 5) + }, Fn.cloneDeepWith = function(e, t) { + return sa(e, 5, t = "function" == typeof t ? t : r) + }, Fn.cloneWith = function(e, t) { + return sa(e, 4, t = "function" == typeof t ? t : r) + }, Fn.conformsTo = function(e, t) { + return null == t || la(e, t, Ms(t)) + }, Fn.deburr = Vs, Fn.defaultTo = function(e, t) { + return null == e || e != e ? t : e + }, Fn.divide = _l, Fn.endsWith = function(e, t, n) { + e = vs(e), t = sr(t); + var a = e.length, + i = n = n === r ? a : oa(fs(n), 0, a); + return (n -= t.length) >= 0 && e.slice(n, i) == t + }, Fn.eq = Bo, Fn.escape = function(e) { + return (e = vs(e)) && K.test(e) ? e.replace(Y, Jt) : e + }, Fn.escapeRegExp = function(e) { + return (e = vs(e)) && ne.test(e) ? e.replace(te, "\\$&") : e + }, Fn.every = function(e, t, n) { + var a = Wo(e) ? _t : ha; + return n && bi(e, t, n) && (t = r), a(e, oi(t, 3)) + }, Fn.find = bo, Fn.findIndex = Hi, Fn.findKey = function(e, t) { + return jt(e, oi(t, 3), va) + }, Fn.findLast = yo, Fn.findLastIndex = Vi, Fn.findLastKey = function(e, t) { + return jt(e, oi(t, 3), ka) + }, Fn.floor = wl, Fn.forEach = vo, Fn.forEachRight = ko, Fn.forIn = function(e, t) { + return null == e ? e : ba(e, oi(t, 3), Is) + }, Fn.forInRight = function(e, t) { + return null == e ? e : ya(e, oi(t, 3), Is) + }, Fn.forOwn = function(e, t) { + return e && va(e, oi(t, 3)) + }, Fn.forOwnRight = function(e, t) { + return e && ka(e, oi(t, 3)) + }, Fn.get = As, Fn.gt = Uo, Fn.gte = Ho, Fn.has = function(e, t) { + return null != e && hi(e, t, Ca) + }, Fn.hasIn = Ts, Fn.head = Yi, Fn.identity = rl, Fn.includes = function(e, t, n, a) { + e = Go(e) ? e : Bs(e), n = n && !a ? fs(n) : 0; + var r = e.length; + return n < 0 && (n = bn(r + n, 0)), ls(e) ? n <= r && e.indexOf(t, n) > -1 : !!r && It(e, t, n) > -1 + }, Fn.indexOf = function(e, t, n) { + var a = null == e ? 0 : e.length; + if (!a) return -1; + var r = null == n ? 0 : fs(n); + return r < 0 && (r = bn(a + r, 0)), It(e, t, r) + }, Fn.inRange = function(e, t, n) { + return t = ms(t), n === r ? (n = t, t = 0) : n = ms(n), + function(e, t, n) { + return e >= yn(t, n) && e < bn(t, n) + }(e = bs(e), t, n) + }, Fn.invoke = js, Fn.isArguments = Vo, Fn.isArray = Wo, Fn.isArrayBuffer = Yo, Fn.isArrayLike = Go, Fn.isArrayLikeObject = Ko, Fn.isBoolean = function(e) { + return !0 === e || !1 === e || ns(e) && Ea(e) == b + }, Fn.isBuffer = $o, Fn.isDate = Jo, Fn.isElement = function(e) { + return ns(e) && 1 === e.nodeType && !is(e) + }, Fn.isEmpty = function(e) { + if (null == e) return !0; + if (Go(e) && (Wo(e) || "string" == typeof e || "function" == typeof e.splice || $o(e) || us(e) || Vo(e))) return !e.length; + var t = pi(e); + if (t == w || t == A) return !e.size; + if (_i(e)) return !Na(e).length; + for (var n in e) + if (Ie.call(e, n)) return !1; + return !0 + }, Fn.isEqual = function(e, t) { + return ja(e, t) + }, Fn.isEqualWith = function(e, t, n) { + var a = (n = "function" == typeof n ? n : r) ? n(e, t) : r; + return a === r ? ja(e, t, r, n) : !!a + }, Fn.isError = Zo, Fn.isFinite = function(e) { + return "number" == typeof e && mn(e) + }, Fn.isFunction = Qo, Fn.isInteger = Xo, Fn.isLength = es, Fn.isMap = as, Fn.isMatch = function(e, t) { + return e === t || Ma(e, t, li(t)) + }, Fn.isMatchWith = function(e, t, n) { + return n = "function" == typeof n ? n : r, Ma(e, t, li(t), n) + }, Fn.isNaN = function(e) { + return rs(e) && e != +e + }, Fn.isNative = function(e) { + if (ki(e)) throw new _e("Unsupported core-js use. Try https://npms.io/search?q=ponyfill."); + return Ia(e) + }, Fn.isNil = function(e) { + return null == e + }, Fn.isNull = function(e) { + return null === e + }, Fn.isNumber = rs, Fn.isObject = ts, Fn.isObjectLike = ns, Fn.isPlainObject = is, Fn.isRegExp = os, Fn.isSafeInteger = function(e) { + return Xo(e) && e >= -9007199254740991 && e <= d + }, Fn.isSet = ss, Fn.isString = ls, Fn.isSymbol = cs, Fn.isTypedArray = us, Fn.isUndefined = function(e) { + return e === r + }, Fn.isWeakMap = function(e) { + return ns(e) && pi(e) == P + }, Fn.isWeakSet = function(e) { + return ns(e) && "[object WeakSet]" == Ea(e) + }, Fn.join = function(e, t) { + return null == e ? "" : fn.call(e, t) + }, Fn.kebabCase = Ws, Fn.last = Ji, Fn.lastIndexOf = function(e, t, n) { + var a = null == e ? 0 : e.length; + if (!a) return -1; + var i = a; + return n !== r && (i = (i = fs(n)) < 0 ? bn(a + i, 0) : yn(i, a - 1)), t == t ? function(e, t, n) { + for (var a = n + 1; a--;) + if (e[a] === t) return a; + return a + }(e, t, i) : Mt(e, Nt, i, !0) + }, Fn.lowerCase = Ys, Fn.lowerFirst = Gs, Fn.lt = ds, Fn.lte = ps, Fn.max = function(e) { + return e && e.length ? ma(e, rl, xa) : r + }, Fn.maxBy = function(e, t) { + return e && e.length ? ma(e, oi(t, 2), xa) : r + }, Fn.mean = function(e) { + return Rt(e, rl) + }, Fn.meanBy = function(e, t) { + return Rt(e, oi(t, 2)) + }, Fn.min = function(e) { + return e && e.length ? ma(e, rl, Ra) : r + }, Fn.minBy = function(e, t) { + return e && e.length ? ma(e, oi(t, 2), Ra) : r + }, Fn.stubArray = gl, Fn.stubFalse = bl, Fn.stubObject = function() { + return {} + }, Fn.stubString = function() { + return "" + }, Fn.stubTrue = function() { + return !0 + }, Fn.multiply = Sl, Fn.nth = function(e, t) { + return e && e.length ? Ba(e, fs(t)) : r + }, Fn.noConflict = function() { + return it._ === this && (it._ = Le), this + }, Fn.noop = cl, Fn.now = Ao, Fn.pad = function(e, t, n) { + e = vs(e); + var a = (t = fs(t)) ? rn(e) : 0; + if (!t || a >= t) return e; + var r = (t - a) / 2; + return Ur(dn(r), n) + e + Ur(un(r), n) + }, Fn.padEnd = function(e, t, n) { + e = vs(e); + var a = (t = fs(t)) ? rn(e) : 0; + return t && a < t ? e + Ur(t - a, n) : e + }, Fn.padStart = function(e, t, n) { + e = vs(e); + var a = (t = fs(t)) ? rn(e) : 0; + return t && a < t ? Ur(t - a, n) + e : e + }, Fn.parseInt = function(e, t, n) { + return n || null == t ? t = 0 : t && (t = +t), kn(vs(e).replace(ae, ""), t || 0) + }, Fn.random = function(e, t, n) { + if (n && "boolean" != typeof n && bi(e, t, n) && (t = n = r), n === r && ("boolean" == typeof t ? (n = t, t = r) : "boolean" == typeof e && (n = e, e = r)), e === r && t === r ? (e = 0, t = 1) : (e = ms(e), t === r ? (t = e, e = 0) : t = ms(t)), e > t) { + var a = e; + e = t, t = a + } + if (n || e % 1 || t % 1) { + var i = _n(); + return yn(e + i * (t - e + tt("1e-" + ((i + "").length - 1))), t) + } + return Ya(e, t) + }, Fn.reduce = function(e, t, n) { + var a = Wo(e) ? At : Ft, + r = arguments.length < 3; + return a(e, oi(t, 4), n, r, da) + }, Fn.reduceRight = function(e, t, n) { + var a = Wo(e) ? Tt : Ft, + r = arguments.length < 3; + return a(e, oi(t, 4), n, r, pa) + }, Fn.repeat = function(e, t, n) { + return t = (n ? bi(e, t, n) : t === r) ? 1 : fs(t), Ga(vs(e), t) + }, Fn.replace = function() { + var e = arguments, + t = vs(e[0]); + return e.length < 3 ? t : t.replace(e[1], e[2]) + }, Fn.result = function(e, t, n) { + var a = -1, + i = (t = br(t, e)).length; + for (i || (i = 1, e = r); ++a < i;) { + var o = null == e ? r : e[zi(t[a])]; + o === r && (a = i, o = n), e = Qo(o) ? o.call(e) : o + } + return e + }, Fn.round = El, Fn.runInContext = e, Fn.sample = function(e) { + return (Wo(e) ? Jn : $a)(e) + }, Fn.size = function(e) { + if (null == e) return 0; + if (Go(e)) return ls(e) ? rn(e) : e.length; + var t = pi(e); + return t == w || t == A ? e.size : Na(e).length + }, Fn.snakeCase = Ks, Fn.some = function(e, t, n) { + var a = Wo(e) ? Dt : nr; + return n && bi(e, t, n) && (t = r), a(e, oi(t, 3)) + }, Fn.sortedIndex = function(e, t) { + return ar(e, t) + }, Fn.sortedIndexBy = function(e, t, n) { + return rr(e, t, oi(n, 2)) + }, Fn.sortedIndexOf = function(e, t) { + var n = null == e ? 0 : e.length; + if (n) { + var a = ar(e, t); + if (a < n && Bo(e[a], t)) return a + } + return -1 + }, Fn.sortedLastIndex = function(e, t) { + return ar(e, t, !0) + }, Fn.sortedLastIndexBy = function(e, t, n) { + return rr(e, t, oi(n, 2), !0) + }, Fn.sortedLastIndexOf = function(e, t) { + if (null != e && e.length) { + var n = ar(e, t, !0) - 1; + if (Bo(e[n], t)) return n + } + return -1 + }, Fn.startCase = $s, Fn.startsWith = function(e, t, n) { + return e = vs(e), n = null == n ? 0 : oa(fs(n), 0, e.length), t = sr(t), e.slice(n, n + t.length) == t + }, Fn.subtract = xl, Fn.sum = function(e) { + return e && e.length ? qt(e, rl) : 0 + }, Fn.sumBy = function(e, t) { + return e && e.length ? qt(e, oi(t, 2)) : 0 + }, Fn.template = function(e, t, n) { + var a = Fn.templateSettings; + n && bi(e, t, n) && (t = r), e = vs(e), t = ws({}, t, a, Jr); + var i, o, s = ws({}, t.imports, a.imports, Jr), + l = Ms(s), + c = Vt(s, l), + u = 0, + d = t.interpolate || ve, + p = "__p += '", + h = xe((t.escape || ve).source + "|" + d.source + "|" + (d === Z ? de : ve).source + "|" + (t.evaluate || ve).source + "|$", "g"), + m = "//# sourceURL=" + (Ie.call(t, "sourceURL") ? (t.sourceURL + "").replace(/\s/g, " ") : "lodash.templateSources[" + ++Ze + "]") + "\n"; + e.replace(h, (function(t, n, a, r, s, l) { + return a || (a = r), p += e.slice(u, l).replace(ke, Zt), n && (i = !0, p += "' +\n__e(" + n + ") +\n'"), s && (o = !0, p += "';\n" + s + ";\n__p += '"), a && (p += "' +\n((__t = (" + a + ")) == null ? '' : __t) +\n'"), u = l + t.length, t + })), p += "';\n"; + var f = Ie.call(t, "variable") && t.variable; + if (f) { + if (ce.test(f)) throw new _e("Invalid `variable` option passed into `_.template`") + } else p = "with (obj) {\n" + p + "\n}\n"; + p = (o ? p.replace(U, "") : p).replace(H, "$1").replace(V, "$1;"), p = "function(" + (f || "obj") + ") {\n" + (f ? "" : "obj || (obj = {});\n") + "var __t, __p = ''" + (i ? ", __e = _.escape" : "") + (o ? ", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n" : ";\n") + p + "return __p\n}"; + var g = Xs((function() { + return we(l, m + "return " + p).apply(r, c) + })); + if (g.source = p, Zo(g)) throw g; + return g + }, Fn.times = function(e, t) { + if ((e = fs(e)) < 1 || e > d) return []; + var n = h, + a = yn(e, h); + t = oi(t), e -= h; + for (var r = Bt(a, t); ++n < e;) t(n); + return r + }, Fn.toFinite = ms, Fn.toInteger = fs, Fn.toLength = gs, Fn.toLower = function(e) { + return vs(e).toLowerCase() + }, Fn.toNumber = bs, Fn.toSafeInteger = function(e) { + return e ? oa(fs(e), -9007199254740991, d) : 0 === e ? e : 0 + }, Fn.toString = vs, Fn.toUpper = function(e) { + return vs(e).toUpperCase() + }, Fn.trim = function(e, t, n) { + if ((e = vs(e)) && (n || t === r)) return Ut(e); + if (!e || !(t = sr(t))) return e; + var a = on(e), + i = on(t); + return vr(a, Yt(a, i), Gt(a, i) + 1).join("") + }, Fn.trimEnd = function(e, t, n) { + if ((e = vs(e)) && (n || t === r)) return e.slice(0, sn(e) + 1); + if (!e || !(t = sr(t))) return e; + var a = on(e); + return vr(a, 0, Gt(a, on(t)) + 1).join("") + }, Fn.trimStart = function(e, t, n) { + if ((e = vs(e)) && (n || t === r)) return e.replace(ae, ""); + if (!e || !(t = sr(t))) return e; + var a = on(e); + return vr(a, Yt(a, on(t))).join("") + }, Fn.truncate = function(e, t) { + var n = 30, + a = "..."; + if (ts(t)) { + var i = "separator" in t ? t.separator : i; + n = "length" in t ? fs(t.length) : n, a = "omission" in t ? sr(t.omission) : a + } + var o = (e = vs(e)).length; + if (Qt(e)) { + var s = on(e); + o = s.length + } + if (n >= o) return e; + var l = n - rn(a); + if (l < 1) return a; + var c = s ? vr(s, 0, l).join("") : e.slice(0, l); + if (i === r) return c + a; + if (s && (l += c.length - l), os(i)) { + if (e.slice(l).search(i)) { + var u, d = c; + for (i.global || (i = xe(i.source, vs(pe.exec(i)) + "g")), i.lastIndex = 0; u = i.exec(d);) var p = u.index; + c = c.slice(0, p === r ? l : p) + } + } else if (e.indexOf(sr(i), l) != l) { + var h = c.lastIndexOf(i); + h > -1 && (c = c.slice(0, h)) + } + return c + a + }, Fn.unescape = function(e) { + return (e = vs(e)) && G.test(e) ? e.replace(W, ln) : e + }, Fn.uniqueId = function(e) { + var t = ++Oe; + return vs(e) + t + }, Fn.upperCase = Js, Fn.upperFirst = Zs, Fn.each = vo, Fn.eachRight = ko, Fn.first = Yi, ll(Fn, (yl = {}, va(Fn, (function(e, t) { + Ie.call(Fn.prototype, t) || (yl[t] = e) + })), yl), { + chain: !1 + }), Fn.VERSION = "4.17.21", vt(["bind", "bindKey", "curry", "curryRight", "partial", "partialRight"], (function(e) { + Fn[e].placeholder = Fn + })), vt(["drop", "take"], (function(e, t) { + Hn.prototype[e] = function(n) { + n = n === r ? 1 : bn(fs(n), 0); + var a = this.__filtered__ && !t ? new Hn(this) : this.clone(); + return a.__filtered__ ? a.__takeCount__ = yn(n, a.__takeCount__) : a.__views__.push({ + size: yn(n, h), + type: e + (a.__dir__ < 0 ? "Right" : "") + }), a + }, Hn.prototype[e + "Right"] = function(t) { + return this.reverse()[e](t).reverse() + } + })), vt(["filter", "map", "takeWhile"], (function(e, t) { + var n = t + 1, + a = 1 == n || 3 == n; + Hn.prototype[e] = function(e) { + var t = this.clone(); + return t.__iteratees__.push({ + iteratee: oi(e, 3), + type: n + }), t.__filtered__ = t.__filtered__ || a, t + } + })), vt(["head", "last"], (function(e, t) { + var n = "take" + (t ? "Right" : ""); + Hn.prototype[e] = function() { + return this[n](1).value()[0] + } + })), vt(["initial", "tail"], (function(e, t) { + var n = "drop" + (t ? "" : "Right"); + Hn.prototype[e] = function() { + return this.__filtered__ ? new Hn(this) : this[n](1) + } + })), Hn.prototype.compact = function() { + return this.filter(rl) + }, Hn.prototype.find = function(e) { + return this.filter(e).head() + }, Hn.prototype.findLast = function(e) { + return this.reverse().find(e) + }, Hn.prototype.invokeMap = Ka((function(e, t) { + return "function" == typeof e ? new Hn(this) : this.map((function(n) { + return Da(n, e, t) + })) + })), Hn.prototype.reject = function(e) { + return this.filter(Ro(oi(e))) + }, Hn.prototype.slice = function(e, t) { + e = fs(e); + var n = this; + return n.__filtered__ && (e > 0 || t < 0) ? new Hn(n) : (e < 0 ? n = n.takeRight(-e) : e && (n = n.drop(e)), t !== r && (n = (t = fs(t)) < 0 ? n.dropRight(-t) : n.take(t - e)), n) + }, Hn.prototype.takeRightWhile = function(e) { + return this.reverse().takeWhile(e).reverse() + }, Hn.prototype.toArray = function() { + return this.take(h) + }, va(Hn.prototype, (function(e, t) { + var n = /^(?:filter|find|map|reject)|While$/.test(t), + a = /^(?:head|last)$/.test(t), + i = Fn[a ? "take" + ("last" == t ? "Right" : "") : t], + o = a || /^find/.test(t); + i && (Fn.prototype[t] = function() { + var t = this.__wrapped__, + s = a ? [1] : arguments, + l = t instanceof Hn, + c = s[0], + u = l || Wo(t), + d = function(e) { + var t = i.apply(Fn, Ct([e], s)); + return a && p ? t[0] : t + }; + u && n && "function" == typeof c && 1 != c.length && (l = u = !1); + var p = this.__chain__, + h = !!this.__actions__.length, + m = o && !p, + f = l && !h; + if (!o && u) { + t = f ? t : new Hn(this); + var g = e.apply(t, s); + return g.__actions__.push({ + func: mo, + args: [d], + thisArg: r + }), new Un(g, p) + } + return m && f ? e.apply(this, s) : (g = this.thru(d), m ? a ? g.value()[0] : g.value() : g) + }) + })), vt(["pop", "push", "shift", "sort", "splice", "unshift"], (function(e) { + var t = Te[e], + n = /^(?:push|sort|unshift)$/.test(e) ? "tap" : "thru", + a = /^(?:pop|shift)$/.test(e); + Fn.prototype[e] = function() { + var e = arguments; + if (a && !this.__chain__) { + var r = this.value(); + return t.apply(Wo(r) ? r : [], e) + } + return this[n]((function(n) { + return t.apply(Wo(n) ? n : [], e) + })) + } + })), va(Hn.prototype, (function(e, t) { + var n = Fn[t]; + if (n) { + var a = n.name + ""; + Ie.call(Pn, a) || (Pn[a] = []), Pn[a].push({ + name: t, + func: n + }) + } + })), Pn[Lr(r, 2).name] = [{ + name: "wrapper", + func: r + }], Hn.prototype.clone = function() { + var e = new Hn(this.__wrapped__); + return e.__actions__ = Ar(this.__actions__), e.__dir__ = this.__dir__, e.__filtered__ = this.__filtered__, e.__iteratees__ = Ar(this.__iteratees__), e.__takeCount__ = this.__takeCount__, e.__views__ = Ar(this.__views__), e + }, Hn.prototype.reverse = function() { + if (this.__filtered__) { + var e = new Hn(this); + e.__dir__ = -1, e.__filtered__ = !0 + } else(e = this.clone()).__dir__ *= -1; + return e + }, Hn.prototype.value = function() { + var e = this.__wrapped__.value(), + t = this.__dir__, + n = Wo(e), + a = t < 0, + r = n ? e.length : 0, + i = function(e, t, n) { + for (var a = -1, r = n.length; ++a < r;) { + var i = n[a], + o = i.size; + switch (i.type) { + case "drop": + e += o; + break; + case "dropRight": + t -= o; + break; + case "take": + t = yn(t, e + o); + break; + case "takeRight": + e = bn(e, t - o) + } + } + return { + start: e, + end: t + } + }(0, r, this.__views__), + o = i.start, + s = i.end, + l = s - o, + c = a ? s : o - 1, + u = this.__iteratees__, + d = u.length, + p = 0, + h = yn(l, this.__takeCount__); + if (!n || !a && r == l && h == l) return pr(e, this.__actions__); + var m = []; + e: for (; l-- && p < h;) { + for (var f = -1, g = e[c += t]; ++f < d;) { + var b = u[f], + y = b.iteratee, + v = b.type, + k = y(g); + if (2 == v) g = k; + else if (!k) { + if (1 == v) continue e; + break e + } + } + m[p++] = g + } + return m + }, Fn.prototype.at = fo, Fn.prototype.chain = function() { + return ho(this) + }, Fn.prototype.commit = function() { + return new Un(this.value(), this.__chain__) + }, Fn.prototype.next = function() { + this.__values__ === r && (this.__values__ = hs(this.value())); + var e = this.__index__ >= this.__values__.length; + return { + done: e, + value: e ? r : this.__values__[this.__index__++] + } + }, Fn.prototype.plant = function(e) { + for (var t, n = this; n instanceof Bn;) { + var a = Fi(n); + a.__index__ = 0, a.__values__ = r, t ? i.__wrapped__ = a : t = a; + var i = a; + n = n.__wrapped__ + } + return i.__wrapped__ = e, t + }, Fn.prototype.reverse = function() { + var e = this.__wrapped__; + if (e instanceof Hn) { + var t = e; + return this.__actions__.length && (t = new Hn(this)), (t = t.reverse()).__actions__.push({ + func: mo, + args: [eo], + thisArg: r + }), new Un(t, this.__chain__) + } + return this.thru(eo) + }, Fn.prototype.toJSON = Fn.prototype.valueOf = Fn.prototype.value = function() { + return pr(this.__wrapped__, this.__actions__) + }, Fn.prototype.first = Fn.prototype.head, ot && (Fn.prototype[ot] = function() { + return this + }), Fn + }(); + it._ = cn, (a = function() { + return cn + }.call(t, n, t, e)) === r || (e.exports = a) + }.call(this) +}, 9244: (e, t, n) => { + var a = n(4366); + e.exports = function() { + return a.Date.now() + } +}, 4167: (e, t, n) => { + var a = n(3645), + r = n(1716); + e.exports = function(e, t, n) { + var i = !0, + o = !0; + if ("function" != typeof e) throw new TypeError("Expected a function"); + return r(n) && (i = "leading" in n ? !!n.leading : i, o = "trailing" in n ? !!n.trailing : o), a(e, t, { + leading: i, + maxWait: t, + trailing: o + }) + } +}, 1666: (e, t, n) => { + var a = n(4182), + r = n(1716), + i = n(2570), + o = /^[-+]0x[0-9a-f]+$/i, + s = /^0b[01]+$/i, + l = /^0o[0-7]+$/i, + c = parseInt; + e.exports = function(e) { + if ("number" == typeof e) return e; + if (i(e)) return NaN; + if (r(e)) { + var t = "function" == typeof e.valueOf ? e.valueOf() : e; + e = r(t) ? t + "" : t + } + if ("string" != typeof e) return 0 === e ? e : +e; + e = a(e); + var n = s.test(e); + return n || l.test(e) ? c(e.slice(2), n ? 2 : 8) : o.test(e) ? NaN : +e + } +}, 5135: function(e, t, n) { + var a, r, i, o, s; + o = this, s = function(e) { + var t = !1, + n = !1, + a = "escape years months weeks days hours minutes seconds milliseconds general".split(" "), + r = [{ + type: "seconds", + targets: [{ + type: "minutes", + value: 60 + }, { + type: "hours", + value: 3600 + }, { + type: "days", + value: 86400 + }, { + type: "weeks", + value: 604800 + }, { + type: "months", + value: 2678400 }, { - since: "1989-01-08", - until: "2019-04-30", - offset: 1, - name: "平成", - narrow: "㍻", - abbr: "H" + type: "years", + value: 31536e3 + }] + }, { + type: "minutes", + targets: [{ + type: "hours", + value: 60 + }, { + type: "days", + value: 1440 + }, { + type: "weeks", + value: 10080 + }, { + type: "months", + value: 44640 }, { - since: "1926-12-25", - until: "1989-01-07", - offset: 1, - name: "昭和", - narrow: "㍼", - abbr: "S" + type: "years", + value: 525600 + }] + }, { + type: "hours", + targets: [{ + type: "days", + value: 24 + }, { + type: "weeks", + value: 168 }, { - since: "1912-07-30", - until: "1926-12-24", - offset: 1, - name: "大正", - narrow: "㍽", - abbr: "T" + type: "months", + value: 744 }, { - since: "1873-01-01", - until: "1912-07-29", - offset: 6, - name: "明治", - narrow: "㍾", - abbr: "M" + type: "years", + value: 8760 + }] + }, { + type: "days", + targets: [{ + type: "weeks", + value: 7 }, { - since: "0001-01-01", - until: "1873-12-31", - offset: 1, - name: "西暦", - narrow: "AD", - abbr: "AD" + type: "months", + value: 31 }, { - since: "0000-12-31", - until: -1 / 0, - offset: 1, - name: "紀元前", - narrow: "BC", - abbr: "BC" - }], - eraYearOrdinalRegex: /(元|\d+)年/, - eraYearOrdinalParse: function(e, t) { - return "元" === t[1] ? 1 : parseInt(t[1] || e, 10) - }, - months: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), - monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), - weekdays: "日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"), - weekdaysShort: "日_月_火_水_木_金_土".split("_"), - weekdaysMin: "日_月_火_水_木_金_土".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY/MM/DD", - LL: "YYYY年M月D日", - LLL: "YYYY年M月D日 HH:mm", - LLLL: "YYYY年M月D日 dddd HH:mm", - l: "YYYY/MM/DD", - ll: "YYYY年M月D日", - lll: "YYYY年M月D日 HH:mm", - llll: "YYYY年M月D日(ddd) HH:mm" - }, - meridiemParse: /午前|午後/i, - isPM: function(e) { - return "午後" === e - }, - meridiem: function(e, t, n) { - return e < 12 ? "午前" : "午後" - }, - calendar: { - sameDay: "[今日] LT", - nextDay: "[明日] LT", - nextWeek: function(e) { - return e.week() !== this.week() ? "[来週]dddd LT" : "dddd LT" - }, - lastDay: "[昨日] LT", - lastWeek: function(e) { - return this.week() !== e.week() ? "[先週]dddd LT" : "dddd LT" - }, - sameElse: "L" - }, - dayOfMonthOrdinalParse: /\d{1,2}日/, - ordinal: function(e, t) { - switch (t) { - case "y": - return 1 === e ? "元年" : e + "年"; - case "d": - case "D": - case "DDD": - return e + "日"; - default: - return e - } - }, - relativeTime: { - future: "%s後", - past: "%s前", - s: "数秒", - ss: "%d秒", - m: "1分", - mm: "%d分", - h: "1時間", - hh: "%d時間", - d: "1日", - dd: "%d日", - M: "1ヶ月", - MM: "%dヶ月", - y: "1年", - yy: "%d年" - } - }) - }(n(2083)) - }, 794: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("ko", { - months: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"), - monthsShort: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"), - weekdays: "일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"), - weekdaysShort: "일_월_화_수_목_금_토".split("_"), - weekdaysMin: "일_월_화_수_목_금_토".split("_"), - longDateFormat: { - LT: "A h:mm", - LTS: "A h:mm:ss", - L: "YYYY.MM.DD.", - LL: "YYYY년 MMMM D일", - LLL: "YYYY년 MMMM D일 A h:mm", - LLLL: "YYYY년 MMMM D일 dddd A h:mm", - l: "YYYY.MM.DD.", - ll: "YYYY년 MMMM D일", - lll: "YYYY년 MMMM D일 A h:mm", - llll: "YYYY년 MMMM D일 dddd A h:mm" - }, - calendar: { - sameDay: "오늘 LT", - nextDay: "내일 LT", - nextWeek: "dddd LT", - lastDay: "어제 LT", - lastWeek: "지난주 dddd LT", - sameElse: "L" - }, - relativeTime: { - future: "%s 후", - past: "%s 전", - s: "몇 초", - ss: "%d초", - m: "1분", - mm: "%d분", - h: "한 시간", - hh: "%d시간", - d: "하루", - dd: "%d일", - M: "한 달", - MM: "%d달", - y: "일 년", - yy: "%d년" - }, - dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, - ordinal: function(e, t) { - switch (t) { - case "d": - case "D": - case "DDD": - return e + "일"; - case "M": - return e + "월"; - case "w": - case "W": - return e + "주"; - default: - return e - } - }, - meridiemParse: /오전|오후/, - isPM: function(e) { - return "오후" === e - }, - meridiem: function(e, t, n) { - return e < 12 ? "오전" : "오후" - } - }) - }(n(2083)) - }, 8004: function(e, t, n) { - ! function(e) { - "use strict"; - var t = { - ss: "sekundė_sekundžių_sekundes", - m: "minutė_minutės_minutę", - mm: "minutės_minučių_minutes", - h: "valanda_valandos_valandą", - hh: "valandos_valandų_valandas", - d: "diena_dienos_dieną", - dd: "dienos_dienų_dienas", - M: "mėnuo_mėnesio_mėnesį", - MM: "mėnesiai_mėnesių_mėnesius", - y: "metai_metų_metus", - yy: "metai_metų_metus" - }; + type: "years", + value: 365 + }] + }, { + type: "months", + targets: [{ + type: "years", + value: 12 + }] + }]; - function n(e, t, n, a) { - return t ? r(n)[0] : a ? r(n)[1] : r(n)[2] - } + function i(e, t) { + return !(t.length > e.length) && -1 !== e.indexOf(t) + } - function a(e) { - return e % 10 == 0 || e > 10 && e < 20 - } + function o(e) { + for (var t = ""; e;) t += "0", e -= 1; + return t + } - function r(e) { - return t[e].split("_") - } + function s(e, t, a) { + var r, i, l, c = t.useToLocaleString, + u = t.useGrouping, + d = u && t.grouping.slice(), + p = t.maximumSignificantDigits, + h = t.minimumIntegerDigits || 1, + m = t.fractionDigits || 0, + f = t.groupingSeparator, + g = t.decimalSeparator; + if (c && a) { + var b = { + minimumIntegerDigits: h, + useGrouping: u + }; + if (m && (b.maximumFractionDigits = m, b.minimumFractionDigits = m), p && e > 0 && (b.maximumSignificantDigits = p), !n) { + var y = S({}, t); + y.useGrouping = !1, y.decimalSeparator = ".", e = parseFloat(s(e, y), 10) + } + return e.toLocaleString(a, b) + } + var v = (p ? e.toPrecision(p + 1) : e.toFixed(m + 1)).split("e"); + l = v[1] || "", i = (v = v[0].split("."))[1] || ""; + var k = (r = v[0] || "").length, + _ = i.length, + w = k + _, + E = r + i; + (p && w === p + 1 || !p && _ === m + 1) && ((E = function(e) { + for (var t = e.split("").reverse(), n = 0, a = !0; a && n < t.length;) n ? "9" === t[n] ? t[n] = "0" : (t[n] = (parseInt(t[n], 10) + 1).toString(), a = !1) : (parseInt(t[n], 10) < 5 && (a = !1), t[n] = "0"), n += 1; + return a && t.push("1"), t.reverse().join("") + }(E)).length === w + 1 && (k += 1), _ && (E = E.slice(0, -1)), r = E.slice(0, k), i = E.slice(k)), p && (i = i.replace(/0*$/, "")); + var x = parseInt(l, 10); + x > 0 ? i.length <= x ? (r += i += o(x - i.length), i = "") : (r += i.slice(0, x), i = i.slice(x)) : x < 0 && (i = o(Math.abs(x) - r.length) + r + i, r = "0"), p || ((i = i.slice(0, m)).length < m && (i += o(m - i.length)), r.length < h && (r = o(h - r.length) + r)); + var C, A = ""; + if (u) + for (v = r; v.length;) d.length && (C = d.shift()), A && (A = f + A), A = v.slice(-C) + A, v = v.slice(0, -C); + else A = r; + return i && (A = A + g + i), A + } - function i(e, t, i, o) { - var s = e + " "; - return 1 === e ? s + n(0, t, i[0], o) : t ? s + (a(e) ? r(i)[1] : r(i)[0]) : o ? s + r(i)[1] : s + (a(e) ? r(i)[1] : r(i)[2]) - } - e.defineLocale("lt", { - months: { - format: "sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"), - standalone: "sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"), - isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ - }, - monthsShort: "sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"), - weekdays: { - format: "sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"), - standalone: "sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"), - isFormat: /dddd HH:mm/ - }, - weekdaysShort: "Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"), - weekdaysMin: "S_P_A_T_K_Pn_Š".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY-MM-DD", - LL: "YYYY [m.] MMMM D [d.]", - LLL: "YYYY [m.] MMMM D [d.], HH:mm [val.]", - LLLL: "YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]", - l: "YYYY-MM-DD", - ll: "YYYY [m.] MMMM D [d.]", - lll: "YYYY [m.] MMMM D [d.], HH:mm [val.]", - llll: "YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]" - }, - calendar: { - sameDay: "[Šiandien] LT", - nextDay: "[Rytoj] LT", - nextWeek: "dddd LT", - lastDay: "[Vakar] LT", - lastWeek: "[Praėjusį] dddd LT", - sameElse: "L" - }, - relativeTime: { - future: "po %s", - past: "prieš %s", - s: function(e, t, n, a) { - return t ? "kelios sekundės" : a ? "kelių sekundžių" : "kelias sekundes" - }, - ss: i, - m: n, - mm: i, - h: n, - hh: i, - d: n, - dd: i, - M: n, - MM: i, - y: n, - yy: i - }, - dayOfMonthOrdinalParse: /\d{1,2}-oji/, - ordinal: function(e) { - return e + "-oji" - }, - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 9297: function(e, t, n) { - ! function(e) { - "use strict"; - var t = { - ss: "sekundes_sekundēm_sekunde_sekundes".split("_"), - m: "minūtes_minūtēm_minūte_minūtes".split("_"), - mm: "minūtes_minūtēm_minūte_minūtes".split("_"), - h: "stundas_stundām_stunda_stundas".split("_"), - hh: "stundas_stundām_stunda_stundas".split("_"), - d: "dienas_dienām_diena_dienas".split("_"), - dd: "dienas_dienām_diena_dienas".split("_"), - M: "mēneša_mēnešiem_mēnesis_mēneši".split("_"), - MM: "mēneša_mēnešiem_mēnesis_mēneši".split("_"), - y: "gada_gadiem_gads_gadi".split("_"), - yy: "gada_gadiem_gads_gadi".split("_") - }; + function l(e, t) { + return e.label.length > t.label.length ? -1 : e.label.length < t.label.length ? 1 : 0 + } - function n(e, t, n) { - return n ? t % 10 == 1 && t % 100 != 11 ? e[2] : e[3] : t % 10 == 1 && t % 100 != 11 ? e[0] : e[1] + function c(e, t) { + var n = []; + return f(E(t), (function(a) { + if ("_durationLabels" === a.slice(0, 15)) { + var r = a.slice(15).toLowerCase(); + f(E(t[a]), (function(i) { + i.slice(0, 1) === e && n.push({ + type: r, + key: i, + label: t[a][i] + }) + })) + } + })), n + } + var u, d = { + durationLabelsStandard: { + S: "millisecond", + SS: "milliseconds", + s: "second", + ss: "seconds", + m: "minute", + mm: "minutes", + h: "hour", + hh: "hours", + d: "day", + dd: "days", + w: "week", + ww: "weeks", + M: "month", + MM: "months", + y: "year", + yy: "years" + }, + durationLabelsShort: { + S: "msec", + SS: "msecs", + s: "sec", + ss: "secs", + m: "min", + mm: "mins", + h: "hr", + hh: "hrs", + d: "dy", + dd: "dys", + w: "wk", + ww: "wks", + M: "mo", + MM: "mos", + y: "yr", + yy: "yrs" + }, + durationTimeTemplates: { + HMS: "h:mm:ss", + HM: "h:mm", + MS: "m:ss" + }, + durationLabelTypes: [{ + type: "standard", + string: "__" + }, { + type: "short", + string: "_" + }], + durationPluralKey: function(e, t, n) { + return 1 === t && null === n ? e : e + e } + }; - function a(e, a, r) { - return e + " " + n(t[r], e, a) - } + function p(e) { + return "[object Array]" === Object.prototype.toString.call(e) + } - function r(e, a, r) { - return n(t[r], e, a) - } - e.defineLocale("lv", { - months: "janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"), - monthsShort: "jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"), - weekdays: "svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"), - weekdaysShort: "Sv_P_O_T_C_Pk_S".split("_"), - weekdaysMin: "Sv_P_O_T_C_Pk_S".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY.", - LL: "YYYY. [gada] D. MMMM", - LLL: "YYYY. [gada] D. MMMM, HH:mm", - LLLL: "YYYY. [gada] D. MMMM, dddd, HH:mm" - }, - calendar: { - sameDay: "[Šodien pulksten] LT", - nextDay: "[Rīt pulksten] LT", - nextWeek: "dddd [pulksten] LT", - lastDay: "[Vakar pulksten] LT", - lastWeek: "[Pagājušā] dddd [pulksten] LT", - sameElse: "L" - }, - relativeTime: { - future: "pēc %s", - past: "pirms %s", - s: function(e, t) { - return t ? "dažas sekundes" : "dažām sekundēm" - }, - ss: a, - m: r, - mm: a, - h: r, - hh: a, - d: r, - dd: a, - M: r, - MM: a, - y: r, - yy: a - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 3998: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("ml", { - months: "ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"), - monthsShort: "ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"), - monthsParseExact: !0, - weekdays: "ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"), - weekdaysShort: "ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"), - weekdaysMin: "ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"), - longDateFormat: { - LT: "A h:mm -നു", - LTS: "A h:mm:ss -നു", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY, A h:mm -നു", - LLLL: "dddd, D MMMM YYYY, A h:mm -നു" - }, - calendar: { - sameDay: "[ഇന്ന്] LT", - nextDay: "[നാളെ] LT", - nextWeek: "dddd, LT", - lastDay: "[ഇന്നലെ] LT", - lastWeek: "[കഴിഞ്ഞ] dddd, LT", - sameElse: "L" - }, - relativeTime: { - future: "%s കഴിഞ്ഞ്", - past: "%s മുൻപ്", - s: "അൽപ നിമിഷങ്ങൾ", - ss: "%d സെക്കൻഡ്", - m: "ഒരു മിനിറ്റ്", - mm: "%d മിനിറ്റ്", - h: "ഒരു മണിക്കൂർ", - hh: "%d മണിക്കൂർ", - d: "ഒരു ദിവസം", - dd: "%d ദിവസം", - M: "ഒരു മാസം", - MM: "%d മാസം", - y: "ഒരു വർഷം", - yy: "%d വർഷം" - }, - meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, - meridiemHour: function(e, t) { - return 12 === e && (e = 0), "രാത്രി" === t && e >= 4 || "ഉച്ച കഴിഞ്ഞ്" === t || "വൈകുന്നേരം" === t ? e + 12 : e - }, - meridiem: function(e, t, n) { - return e < 4 ? "രാത്രി" : e < 12 ? "രാവിലെ" : e < 17 ? "ഉച്ച കഴിഞ്ഞ്" : e < 20 ? "വൈകുന്നേരം" : "രാത്രി" - } - }) - }(n(2083)) - }, 4989: function(e, t, n) { - ! function(e) { - "use strict"; + function h(e) { + return "[object Object]" === Object.prototype.toString.call(e) + } - function t(e, t, n, a) { - switch (n) { - case "s": - return t ? "хэдхэн секунд" : "хэдхэн секундын"; - case "ss": - return e + (t ? " секунд" : " секундын"); - case "m": - case "mm": - return e + (t ? " минут" : " минутын"); - case "h": - case "hh": - return e + (t ? " цаг" : " цагийн"); - case "d": - case "dd": - return e + (t ? " өдөр" : " өдрийн"); - case "M": - case "MM": - return e + (t ? " сар" : " сарын"); - case "y": - case "yy": - return e + (t ? " жил" : " жилийн"); - default: - return e - } + function m(e, t) { + var n, a = 0, + r = e && e.length || 0; + for ("function" != typeof t && (n = t, t = function(e) { + return e === n + }); a < r;) { + if (t(e[a])) return e[a]; + a += 1 } - e.defineLocale("mn", { - months: "Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"), - monthsShort: "1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"), - monthsParseExact: !0, - weekdays: "Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"), - weekdaysShort: "Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"), - weekdaysMin: "Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY-MM-DD", - LL: "YYYY оны MMMMын D", - LLL: "YYYY оны MMMMын D HH:mm", - LLLL: "dddd, YYYY оны MMMMын D HH:mm" - }, - meridiemParse: /ҮӨ|ҮХ/i, - isPM: function(e) { - return "ҮХ" === e - }, - meridiem: function(e, t, n) { - return e < 12 ? "ҮӨ" : "ҮХ" - }, - calendar: { - sameDay: "[Өнөөдөр] LT", - nextDay: "[Маргааш] LT", - nextWeek: "[Ирэх] dddd LT", - lastDay: "[Өчигдөр] LT", - lastWeek: "[Өнгөрсөн] dddd LT", - sameElse: "L" - }, - relativeTime: { - future: "%s дараа", - past: "%s өмнө", - s: t, - ss: t, - m: t, - mm: t, - h: t, - hh: t, - d: t, - dd: t, - M: t, - MM: t, - y: t, - yy: t - }, - dayOfMonthOrdinalParse: /\d{1,2} өдөр/, - ordinal: function(e, t) { - switch (t) { - case "d": - case "D": - case "DDD": - return e + " өдөр"; - default: - return e - } - } - }) - }(n(2083)) - }, 7590: function(e, t, n) { - ! function(e) { - "use strict"; - var t = { - 1: "१", - 2: "२", - 3: "३", - 4: "४", - 5: "५", - 6: "६", - 7: "७", - 8: "८", - 9: "९", - 0: "०" - }, - n = { - "१": "1", - "२": "2", - "३": "3", - "४": "4", - "५": "5", - "६": "6", - "७": "7", - "८": "8", - "९": "9", - "०": "0" - }; + } - function a(e, t, n, a) { - var r = ""; - if (t) switch (n) { - case "s": - r = "काही सेकंद"; - break; - case "ss": - r = "%d सेकंद"; - break; - case "m": - r = "एक मिनिट"; - break; - case "mm": - r = "%d मिनिटे"; - break; - case "h": - r = "एक तास"; - break; - case "hh": - r = "%d तास"; - break; - case "d": - r = "एक दिवस"; - break; - case "dd": - r = "%d दिवस"; - break; - case "M": - r = "एक महिना"; - break; - case "MM": - r = "%d महिने"; - break; - case "y": - r = "एक वर्ष"; - break; - case "yy": - r = "%d वर्षे" - } else switch (n) { - case "s": - r = "काही सेकंदां"; - break; - case "ss": - r = "%d सेकंदां"; - break; - case "m": - r = "एका मिनिटा"; - break; - case "mm": - r = "%d मिनिटां"; - break; - case "h": - r = "एका तासा"; - break; - case "hh": - r = "%d तासां"; - break; - case "d": - r = "एका दिवसा"; - break; - case "dd": - r = "%d दिवसां"; - break; - case "M": - r = "एका महिन्या"; - break; - case "MM": - r = "%d महिन्यां"; - break; - case "y": - r = "एका वर्षा"; - break; - case "yy": - r = "%d वर्षां" - } - return r.replace(/%d/i, e) - } - e.defineLocale("mr", { - months: "जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"), - monthsShort: "जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"), - monthsParseExact: !0, - weekdays: "रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"), - weekdaysShort: "रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"), - weekdaysMin: "र_सो_मं_बु_गु_शु_श".split("_"), - longDateFormat: { - LT: "A h:mm वाजता", - LTS: "A h:mm:ss वाजता", - L: "DD/MM/YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY, A h:mm वाजता", - LLLL: "dddd, D MMMM YYYY, A h:mm वाजता" - }, - calendar: { - sameDay: "[आज] LT", - nextDay: "[उद्या] LT", - nextWeek: "dddd, LT", - lastDay: "[काल] LT", - lastWeek: "[मागील] dddd, LT", - sameElse: "L" - }, - relativeTime: { - future: "%sमध्ये", - past: "%sपूर्वी", - s: a, - ss: a, - m: a, - mm: a, - h: a, - hh: a, - d: a, - dd: a, - M: a, - MM: a, - y: a, - yy: a - }, - preparse: function(e) { - return e.replace(/[१२३४५६७८९०]/g, (function(e) { - return n[e] - })) - }, - postformat: function(e) { - return e.replace(/\d/g, (function(e) { - return t[e] - })) - }, - meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, - meridiemHour: function(e, t) { - return 12 === e && (e = 0), "पहाटे" === t || "सकाळी" === t ? e : "दुपारी" === t || "सायंकाळी" === t || "रात्री" === t ? e >= 12 ? e : e + 12 : void 0 - }, - meridiem: function(e, t, n) { - return e >= 0 && e < 6 ? "पहाटे" : e < 12 ? "सकाळी" : e < 17 ? "दुपारी" : e < 20 ? "सायंकाळी" : "रात्री" - }, - week: { - dow: 0, - doy: 6 - } - }) - }(n(2083)) - }, 3895: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("nb", { - months: "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"), - monthsShort: "jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"), - monthsParseExact: !0, - weekdays: "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"), - weekdaysShort: "sø._ma._ti._on._to._fr._lø.".split("_"), - weekdaysMin: "sø_ma_ti_on_to_fr_lø".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY", - LL: "D. MMMM YYYY", - LLL: "D. MMMM YYYY [kl.] HH:mm", - LLLL: "dddd D. MMMM YYYY [kl.] HH:mm" - }, - calendar: { - sameDay: "[i dag kl.] LT", - nextDay: "[i morgen kl.] LT", - nextWeek: "dddd [kl.] LT", - lastDay: "[i går kl.] LT", - lastWeek: "[forrige] dddd [kl.] LT", - sameElse: "L" - }, - relativeTime: { - future: "om %s", - past: "%s siden", - s: "noen sekunder", - ss: "%d sekunder", - m: "ett minutt", - mm: "%d minutter", - h: "en time", - hh: "%d timer", - d: "en dag", - dd: "%d dager", - w: "en uke", - ww: "%d uker", - M: "en måned", - MM: "%d måneder", - y: "ett år", - yy: "%d år" - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 2009: function(e, t, n) { - ! function(e) { - "use strict"; - var t = "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"), - n = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"), - a = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i], - r = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; - e.defineLocale("nl", { - months: "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"), - monthsShort: function(e, a) { - return e ? /-MMM-/.test(a) ? n[e.month()] : t[e.month()] : t - }, - monthsRegex: r, - monthsShortRegex: r, - monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, - monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, - monthsParse: a, - longMonthsParse: a, - shortMonthsParse: a, - weekdays: "zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"), - weekdaysShort: "zo._ma._di._wo._do._vr._za.".split("_"), - weekdaysMin: "zo_ma_di_wo_do_vr_za".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD-MM-YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd D MMMM YYYY HH:mm" - }, - calendar: { - sameDay: "[vandaag om] LT", - nextDay: "[morgen om] LT", - nextWeek: "dddd [om] LT", - lastDay: "[gisteren om] LT", - lastWeek: "[afgelopen] dddd [om] LT", - sameElse: "L" - }, - relativeTime: { - future: "over %s", - past: "%s geleden", - s: "een paar seconden", - ss: "%d seconden", - m: "één minuut", - mm: "%d minuten", - h: "één uur", - hh: "%d uur", - d: "één dag", - dd: "%d dagen", - w: "één week", - ww: "%d weken", - M: "één maand", - MM: "%d maanden", - y: "één jaar", - yy: "%d jaar" - }, - dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, - ordinal: function(e) { - return e + (1 === e || 8 === e || e >= 20 ? "ste" : "de") - }, - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 3800: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("oc-lnc", { - months: { - standalone: "genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"), - format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"), - isFormat: /D[oD]?(\s)+MMMM/ - }, - monthsShort: "gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"), - monthsParseExact: !0, - weekdays: "dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"), - weekdaysShort: "dg._dl._dm._dc._dj._dv._ds.".split("_"), - weekdaysMin: "dg_dl_dm_dc_dj_dv_ds".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM [de] YYYY", - ll: "D MMM YYYY", - LLL: "D MMMM [de] YYYY [a] H:mm", - lll: "D MMM YYYY, H:mm", - LLLL: "dddd D MMMM [de] YYYY [a] H:mm", - llll: "ddd D MMM YYYY, H:mm" - }, - calendar: { - sameDay: "[uèi a] LT", - nextDay: "[deman a] LT", - nextWeek: "dddd [a] LT", - lastDay: "[ièr a] LT", - lastWeek: "dddd [passat a] LT", - sameElse: "L" - }, - relativeTime: { - future: "d'aquí %s", - past: "fa %s", - s: "unas segondas", - ss: "%d segondas", - m: "una minuta", - mm: "%d minutas", - h: "una ora", - hh: "%d oras", - d: "un jorn", - dd: "%d jorns", - M: "un mes", - MM: "%d meses", - y: "un an", - yy: "%d ans" - }, - dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, - ordinal: function(e, t) { - var n = 1 === e ? "r" : 2 === e ? "n" : 3 === e ? "r" : 4 === e ? "t" : "è"; - return "w" !== t && "W" !== t || (n = "a"), e + n - }, - week: { - dow: 1, - doy: 4 + function f(e, t) { + var n = 0, + a = e.length; + if (e && a) + for (; n < a;) { + if (!1 === t(e[n], n)) return; + n += 1 } - }) - }(n(2083)) - }, 5737: function(e, t, n) { - ! function(e) { - "use strict"; - var t = "styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"), - n = "stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"), - a = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i]; + } + + function g(e, t) { + var n = 0, + a = e.length, + r = []; + if (!e || !a) return r; + for (; n < a;) r[n] = t(e[n], n), n += 1; + return r + } + + function b(e, t) { + return g(e, (function(e) { + return e[t] + })) + } + + function y(e) { + var t = []; + return f(e, (function(e) { + e && t.push(e) + })), t + } + + function v(e) { + var t = []; + return f(e, (function(e) { + m(t, e) || t.push(e) + })), t + } + + function k(e, t) { + var n = []; + return f(e, (function(e) { + f(t, (function(t) { + e === t && n.push(e) + })) + })), v(n) + } + + function _(e, t) { + var n = []; + return f(e, (function(a, r) { + if (!t(a)) return n = e.slice(r), !1 + })), n + } + + function w(e, t) { + return _(e.slice().reverse(), t).reverse() + } + + function S(e, t) { + for (var n in t) t.hasOwnProperty(n) && (e[n] = t[n]); + return e + } + + function E(e) { + var t = []; + for (var n in e) e.hasOwnProperty(n) && t.push(n); + return t + } - function r(e) { - return e % 10 < 5 && e % 10 > 1 && ~~(e / 10) % 10 != 1 + function x(e, t) { + var n = 0, + a = e.length; + if (!e || !a) return !1; + for (; n < a;) { + if (!0 === t(e[n], n)) return !0; + n += 1 } + return !1 + } - function i(e, t, n) { - var a = e + " "; - switch (n) { - case "ss": - return a + (r(e) ? "sekundy" : "sekund"); - case "m": - return t ? "minuta" : "minutę"; - case "mm": - return a + (r(e) ? "minuty" : "minut"); - case "h": - return t ? "godzina" : "godzinę"; - case "hh": - return a + (r(e) ? "godziny" : "godzin"); - case "ww": - return a + (r(e) ? "tygodnie" : "tygodni"); - case "MM": - return a + (r(e) ? "miesiące" : "miesięcy"); - case "yy": - return a + (r(e) ? "lata" : "lat") - } - } - e.defineLocale("pl", { - months: function(e, a) { - return e ? /D MMMM/.test(a) ? n[e.month()] : t[e.month()] : t - }, - monthsShort: "sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"), - monthsParse: a, - longMonthsParse: a, - shortMonthsParse: a, - weekdays: "niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"), - weekdaysShort: "ndz_pon_wt_śr_czw_pt_sob".split("_"), - weekdaysMin: "Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd, D MMMM YYYY HH:mm" - }, - calendar: { - sameDay: "[Dziś o] LT", - nextDay: "[Jutro o] LT", - nextWeek: function() { - switch (this.day()) { - case 0: - return "[W niedzielę o] LT"; - case 2: - return "[We wtorek o] LT"; - case 3: - return "[W środę o] LT"; - case 6: - return "[W sobotę o] LT"; - default: - return "[W] dddd [o] LT" - } - }, - lastDay: "[Wczoraj o] LT", - lastWeek: function() { - switch (this.day()) { - case 0: - return "[W zeszłą niedzielę o] LT"; - case 3: - return "[W zeszłą środę o] LT"; - case 6: - return "[W zeszłą sobotę o] LT"; - default: - return "[W zeszły] dddd [o] LT" - } - }, - sameElse: "L" - }, - relativeTime: { - future: "za %s", - past: "%s temu", - s: "kilka sekund", - ss: i, - m: i, - mm: i, - h: i, - hh: i, - d: "1 dzień", - dd: "%d dni", - w: "tydzień", - ww: i, - M: "miesiąc", - MM: i, - y: "rok", - yy: i - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 665: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("pt-br", { - months: "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"), - monthsShort: "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"), - weekdays: "domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"), - weekdaysShort: "dom_seg_ter_qua_qui_sex_sáb".split("_"), - weekdaysMin: "do_2ª_3ª_4ª_5ª_6ª_sá".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D [de] MMMM [de] YYYY", - LLL: "D [de] MMMM [de] YYYY [às] HH:mm", - LLLL: "dddd, D [de] MMMM [de] YYYY [às] HH:mm" - }, - calendar: { - sameDay: "[Hoje às] LT", - nextDay: "[Amanhã às] LT", - nextWeek: "dddd [às] LT", - lastDay: "[Ontem às] LT", - lastWeek: function() { - return 0 === this.day() || 6 === this.day() ? "[Último] dddd [às] LT" : "[Última] dddd [às] LT" - }, - sameElse: "L" - }, - relativeTime: { - future: "em %s", - past: "há %s", - s: "poucos segundos", - ss: "%d segundos", - m: "um minuto", - mm: "%d minutos", - h: "uma hora", - hh: "%d horas", - d: "um dia", - dd: "%d dias", - M: "um mês", - MM: "%d meses", - y: "um ano", - yy: "%d anos" - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: "%dº", - invalidDate: "Data inválida" - }) - }(n(2083)) - }, 7170: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("pt", { - months: "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"), - monthsShort: "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"), - weekdays: "Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"), - weekdaysShort: "Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"), - weekdaysMin: "Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D [de] MMMM [de] YYYY", - LLL: "D [de] MMMM [de] YYYY HH:mm", - LLLL: "dddd, D [de] MMMM [de] YYYY HH:mm" - }, - calendar: { - sameDay: "[Hoje às] LT", - nextDay: "[Amanhã às] LT", - nextWeek: "dddd [às] LT", - lastDay: "[Ontem às] LT", - lastWeek: function() { - return 0 === this.day() || 6 === this.day() ? "[Último] dddd [às] LT" : "[Última] dddd [às] LT" - }, - sameElse: "L" - }, - relativeTime: { - future: "em %s", - past: "há %s", - s: "segundos", - ss: "%d segundos", - m: "um minuto", - mm: "%d minutos", - h: "uma hora", - hh: "%d horas", - d: "um dia", - dd: "%d dias", - w: "uma semana", - ww: "%d semanas", - M: "um mês", - MM: "%d meses", - y: "um ano", - yy: "%d anos" - }, - dayOfMonthOrdinalParse: /\d{1,2}º/, - ordinal: "%dº", - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 4374: function(e, t, n) { - ! function(e) { - "use strict"; + function C(e) { + var t = []; + return f(e, (function(e) { + t = t.concat(e) + })), t + } - function t(e, t, n) { - var a = " "; - return (e % 100 >= 20 || e >= 100 && e % 100 == 0) && (a = " de "), e + a + { - ss: "secunde", - mm: "minute", - hh: "ore", - dd: "zile", - ww: "săptămâni", - MM: "luni", - yy: "ani" - } [n] - } - e.defineLocale("ro", { - months: "ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"), - monthsShort: "ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"), - monthsParseExact: !0, - weekdays: "duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"), - weekdaysShort: "Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"), - weekdaysMin: "Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"), - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD.MM.YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY H:mm", - LLLL: "dddd, D MMMM YYYY H:mm" - }, - calendar: { - sameDay: "[azi la] LT", - nextDay: "[mâine la] LT", - nextWeek: "dddd [la] LT", - lastDay: "[ieri la] LT", - lastWeek: "[fosta] dddd [la] LT", - sameElse: "L" - }, - relativeTime: { - future: "peste %s", - past: "%s în urmă", - s: "câteva secunde", - ss: t, - m: "un minut", - mm: t, - h: "o oră", - hh: t, - d: "o zi", - dd: t, - w: "o săptămână", - ww: t, - M: "o lună", - MM: t, - y: "un an", - yy: t - }, - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 8669: function(e, t, n) { - ! function(e) { - "use strict"; + function A() { + var e, t = [].slice.call(arguments), + n = {}; + if (f(t, (function(t, a) { + if (!a) { + if (!p(t)) throw "Expected array as the first argument to durationsFormat."; + e = t + } + "string" != typeof t && "function" != typeof t ? "number" != typeof t ? h(t) && S(n, t) : n.precision = t : n.template = t + })), !e || !e.length) return []; + n.returnMomentTypes = !0; + var r = g(e, (function(e) { + return e.format(n) + })), + i = k(a, v(b(C(r), "type"))), + o = n.largest; + return o && (i = i.slice(0, o)), n.returnMomentTypes = !1, n.outputTypes = i, g(e, (function(e) { + return e.format(n) + })) + } - function t(e, t, n) { - return "m" === n ? t ? "минута" : "минуту" : e + " " + (a = +e, r = { - ss: t ? "секунда_секунды_секунд" : "секунду_секунды_секунд", - mm: t ? "минута_минуты_минут" : "минуту_минуты_минут", - hh: "час_часа_часов", - dd: "день_дня_дней", - ww: "неделя_недели_недель", - MM: "месяц_месяца_месяцев", - yy: "год_года_лет" - } [n].split("_"), a % 10 == 1 && a % 100 != 11 ? r[0] : a % 10 >= 2 && a % 10 <= 4 && (a % 100 < 10 || a % 100 >= 20) ? r[1] : r[2]); - var a, r - } - var n = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; - e.defineLocale("ru", { - months: { - format: "января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"), - standalone: "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_") - }, - monthsShort: { - format: "янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"), - standalone: "янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_") - }, - weekdays: { - standalone: "воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"), - format: "воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"), - isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/ - }, - weekdaysShort: "вс_пн_вт_ср_чт_пт_сб".split("_"), - weekdaysMin: "вс_пн_вт_ср_чт_пт_сб".split("_"), - monthsParse: n, - longMonthsParse: n, - shortMonthsParse: n, - monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, - monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, - monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD.MM.YYYY", - LL: "D MMMM YYYY г.", - LLL: "D MMMM YYYY г., H:mm", - LLLL: "dddd, D MMMM YYYY г., H:mm" - }, - calendar: { - sameDay: "[Сегодня, в] LT", - nextDay: "[Завтра, в] LT", - lastDay: "[Вчера, в] LT", - nextWeek: function(e) { - if (e.week() === this.week()) return 2 === this.day() ? "[Во] dddd, [в] LT" : "[В] dddd, [в] LT"; - switch (this.day()) { - case 0: - return "[В следующее] dddd, [в] LT"; - case 1: - case 2: - case 4: - return "[В следующий] dddd, [в] LT"; - case 3: - case 5: - case 6: - return "[В следующую] dddd, [в] LT" - } - }, - lastWeek: function(e) { - if (e.week() === this.week()) return 2 === this.day() ? "[Во] dddd, [в] LT" : "[В] dddd, [в] LT"; - switch (this.day()) { - case 0: - return "[В прошлое] dddd, [в] LT"; - case 1: - case 2: - case 4: - return "[В прошлый] dddd, [в] LT"; - case 3: - case 5: - case 6: - return "[В прошлую] dddd, [в] LT" - } - }, - sameElse: "L" - }, - relativeTime: { - future: "через %s", - past: "%s назад", - s: "несколько секунд", - ss: t, - m: t, - mm: t, - h: "час", - hh: t, - d: "день", - dd: t, - w: "неделя", - ww: t, - M: "месяц", - MM: t, - y: "год", - yy: t - }, - meridiemParse: /ночи|утра|дня|вечера/i, - isPM: function(e) { - return /^(дня|вечера)$/.test(e) - }, - meridiem: function(e, t, n) { - return e < 4 ? "ночи" : e < 12 ? "утра" : e < 17 ? "дня" : "вечера" + function T() { + var n = [].slice.call(arguments), + o = S({}, this.format.defaults), + u = this.asMilliseconds(), + C = this.asMonths(); + "function" == typeof this.isValid && !1 === this.isValid() && (u = 0, C = 0); + var A = u < 0, + T = e.duration(Math.abs(u), "milliseconds"), + D = e.duration(Math.abs(C), "months"); + f(n, (function(e) { + "string" != typeof e && "function" != typeof e ? "number" != typeof e ? h(e) && S(o, e) : o.precision = e : o.template = e + })); + var P = { + years: "y", + months: "M", + weeks: "w", + days: "d", + hours: "h", + minutes: "m", + seconds: "s", + milliseconds: "S" + }, + j = { + escape: /\[(.+?)\]/, + years: /\*?[Yy]+/, + months: /\*?M+/, + weeks: /\*?[Ww]+/, + days: /\*?[Dd]+/, + hours: /\*?[Hh]+/, + minutes: /\*?m+/, + seconds: /\*?s+/, + milliseconds: /\*?S+/, + general: /.+?/ + }; + o.types = a; + var M = function(e) { + return m(a, (function(t) { + return j[t].test(e) + })) }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, - ordinal: function(e, t) { - switch (t) { - case "M": - case "d": - case "DDD": - return e + "-й"; - case "D": - return e + "-го"; - case "w": - case "W": - return e + "-я"; - default: - return e + I = new RegExp(g(a, (function(e) { + return j[e].source + })).join("|"), "g"); + o.duration = this; + var O = "function" == typeof o.template ? o.template.apply(o) : o.template, + N = o.outputTypes, + R = o.returnMomentTypes, + z = o.largest, + L = []; + N || (p(o.stopTrim) && (o.stopTrim = o.stopTrim.join("")), o.stopTrim && f(o.stopTrim.match(I), (function(e) { + var t = M(e); + "escape" !== t && "general" !== t && L.push(t) + }))); + var F = e.localeData(); + F || (F = {}), f(E(d), (function(e) { + "function" != typeof d[e] ? F["_" + e] || (F["_" + e] = d[e]) : F[e] || (F[e] = d[e]) + })), f(E(F._durationTimeTemplates), (function(e) { + O = O.replace("_" + e + "_", F._durationTimeTemplates[e]) + })); + var q = o.userLocale || e.locale(), + B = o.useLeftUnits, + U = o.usePlural, + H = o.precision, + V = o.forceLength, + W = o.useGrouping, + Y = o.trunc, + G = o.useSignificantDigits && H > 0, + K = G ? o.precision : 0, + $ = K, + J = o.minValue, + Z = !1, + Q = o.maxValue, + X = !1, + ee = o.useToLocaleString, + te = o.groupingSeparator, + ne = o.decimalSeparator, + ae = o.grouping; + ee = ee && t; + var re = o.trim; + p(re) && (re = re.join(" ")), null === re && (z || Q || G) && (re = "all"), null !== re && !0 !== re && "left" !== re && "right" !== re || (re = "large"), !1 === re && (re = ""); + var ie = function(e) { + return e.test(re) + }, + oe = /large/, + se = /small/, + le = /both/, + ce = /mid/, + ue = /^all|[^sm]all/, + de = /final/, + pe = z > 0 || x([oe, le, ue], ie), + he = x([se, le, ue], ie), + me = x([ce, ue], ie), + fe = x([de, ue], ie), + ge = g(O.match(I), (function(e, t) { + var n = M(e); + return "*" === e.slice(0, 1) && (e = e.slice(1), "escape" !== n && "general" !== n && L.push(n)), { + index: t, + length: e.length, + text: "", + token: "escape" === n ? e.replace(j.escape, "$1") : e, + type: "escape" === n || "general" === n ? null : n } - }, - week: { - dow: 1, - doy: 4 + })), + be = { + index: 0, + length: 0, + token: "", + text: "", + type: null + }, + ye = []; + B && ge.reverse(), f(ge, (function(e) { + if (e.type) return (be.type || be.text) && ye.push(be), void(be = e); + B ? be.text = e.token + be.text : be.text += e.token + })), (be.type || be.text) && ye.push(be), B && ye.reverse(); + var ve = k(a, v(y(b(ye, "type")))); + if (!ve.length) return b(ye, "text").join(""); + ve = g(ve, (function(e, t) { + var n, a = t + 1 === ve.length, + r = !t; + n = "years" === e || "months" === e ? D.as(e) : T.as(e); + var i = Math.floor(n), + s = n - i, + l = m(ye, (function(t) { + return e === t.type + })); + return r && Q && n > Q && (X = !0), a && J && Math.abs(o.duration.as(e)) < J && (Z = !0), r && null === V && l.length > 1 && (V = !0), T.subtract(i, e), D.subtract(i, e), { + rawValue: n, + wholeValue: i, + decimalValue: a ? s : 0, + isSmallest: a, + isLargest: r, + type: e, + tokenLength: l.length } - }) - }(n(2083)) - }, 4299: function(e, t, n) { - ! function(e) { - "use strict"; - var t = "január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"), - n = "jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"); + })); + var ke = Y ? Math.floor : Math.round, + _e = function(e, t) { + var n = Math.pow(10, t); + return ke(e * n) / n + }, + we = !1, + Se = !1, + Ee = function(e, t) { + var n = { + useGrouping: W, + groupingSeparator: te, + decimalSeparator: ne, + grouping: ae, + useToLocaleString: ee + }; + return G && (K <= 0 ? (e.rawValue = 0, e.wholeValue = 0, e.decimalValue = 0) : (n.maximumSignificantDigits = K, e.significantDigits = K)), X && !Se && (e.isLargest ? (e.wholeValue = Q, e.decimalValue = 0) : (e.wholeValue = 0, e.decimalValue = 0)), Z && !Se && (e.isSmallest ? (e.wholeValue = J, e.decimalValue = 0) : (e.wholeValue = 0, e.decimalValue = 0)), e.isSmallest || e.significantDigits && e.significantDigits - e.wholeValue.toString().length <= 0 ? H < 0 ? e.value = _e(e.wholeValue, H) : 0 === H ? e.value = ke(e.wholeValue + e.decimalValue) : G ? (e.value = Y ? _e(e.rawValue, K - e.wholeValue.toString().length) : e.rawValue, e.wholeValue && (K -= e.wholeValue.toString().length)) : (n.fractionDigits = H, e.value = Y ? e.wholeValue + _e(e.decimalValue, H) : e.wholeValue + e.decimalValue) : G && e.wholeValue ? (e.value = Math.round(_e(e.wholeValue, e.significantDigits - e.wholeValue.toString().length)), K -= e.wholeValue.toString().length) : e.value = e.wholeValue, e.tokenLength > 1 && (V || we) && (n.minimumIntegerDigits = e.tokenLength, Se && n.maximumSignificantDigits < e.tokenLength && delete n.maximumSignificantDigits), !we && (e.value > 0 || "" === re || m(L, e.type) || m(N, e.type)) && (we = !0), e.formattedValue = s(e.value, n, q), n.useGrouping = !1, n.decimalSeparator = ".", e.formattedValueEn = s(e.value, n, "en"), 2 === e.tokenLength && "milliseconds" === e.type && (e.formattedValueMS = s(e.value, { + minimumIntegerDigits: 3, + useGrouping: !1 + }, "en").slice(0, 2)), e + }; + if ((ve = y(ve = g(ve, Ee))).length > 1) { + var xe = function(e) { + return m(ve, (function(t) { + return t.type === e + })) + }, + Ce = function(e) { + var t = xe(e.type); + t && f(e.targets, (function(e) { + var n = xe(e.type); + n && parseInt(t.formattedValueEn, 10) === e.value && (t.rawValue = 0, t.wholeValue = 0, t.decimalValue = 0, n.rawValue += 1, n.wholeValue += 1, n.decimalValue = 0, n.formattedValueEn = n.wholeValue.toString(), Se = !0) + })) + }; + f(r, Ce) + } + return Se && (we = !1, K = $, ve = y(ve = g(ve, Ee))), !N || X && !o.trim ? (pe && (ve = _(ve, (function(e) { + return !e.isSmallest && !e.wholeValue && !m(L, e.type) + }))), z && ve.length && (ve = ve.slice(0, z)), he && ve.length > 1 && (ve = w(ve, (function(e) { + return !e.wholeValue && !m(L, e.type) && !e.isLargest + }))), me && (ve = y(ve = g(ve, (function(e, t) { + return t > 0 && t < ve.length - 1 && !e.wholeValue ? null : e + })))), !fe || 1 !== ve.length || ve[0].wholeValue || !Y && ve[0].isSmallest && ve[0].rawValue < J || (ve = [])) : ve = y(ve = g(ve, (function(e) { + return m(N, (function(t) { + return e.type === t + })) ? e : null + }))), R ? ve : (f(ye, (function(e) { + var t = P[e.type], + n = m(ve, (function(t) { + return t.type === e.type + })); + if (t && n) { + var a = n.formattedValueEn.split("."); + a[0] = parseInt(a[0], 10), a[1] ? a[1] = parseFloat("0." + a[1], 10) : a[1] = null; + var r = F.durationPluralKey(t, a[0], a[1]), + o = c(t, F), + s = !1, + u = {}; + f(F._durationLabelTypes, (function(t) { + var n = m(o, (function(e) { + return e.type === t.type && e.key === r + })); + n && (u[n.type] = n.label, i(e.text, t.string) && (e.text = e.text.replace(t.string, n.label), s = !0)) + })), U && !s && (o.sort(l), f(o, (function(t) { + return u[t.type] === t.label ? !i(e.text, t.label) && void 0 : i(e.text, t.label) ? (e.text = e.text.replace(t.label, u[t.type]), !1) : void 0 + }))) + } + })), (ye = g(ye, (function(e) { + if (!e.type) return e.text; + var t = m(ve, (function(t) { + return t.type === e.type + })); + if (!t) return ""; + var n = ""; + return B && (n += e.text), (A && X || !A && Z) && (n += "< ", X = !1, Z = !1), (A && Z || !A && X) && (n += "> ", X = !1, Z = !1), A && (t.value > 0 || "" === re || m(L, t.type) || m(N, t.type)) && (n += "-", A = !1), "milliseconds" === e.type && t.formattedValueMS ? n += t.formattedValueMS : n += t.formattedValue, B || (n += e.text), n + }))).join("").replace(/(,| |:|\.)*$/, "").replace(/^(,| |:|\.)*/, "")) + } - function a(e) { - return e > 1 && e < 5 + function D() { + var e = this.duration, + t = function(t) { + return e._data[t] + }, + n = m(this.types, t), + a = function(e, t) { + for (var n = e.length; n -= 1;) + if (t(e[n])) return e[n] + }(this.types, t); + switch (n) { + case "milliseconds": + return "S __"; + case "seconds": + case "minutes": + return "*_MS_"; + case "hours": + return "_HMS_"; + case "days": + if (n === a) return "d __"; + case "weeks": + return n === a ? "w __" : (null === this.trim && (this.trim = "both"), "w __, d __, h __"); + case "months": + if (n === a) return "M __"; + case "years": + return n === a ? "y __" : (null === this.trim && (this.trim = "both"), "y __, M __, d __"); + default: + return null === this.trim && (this.trim = "both"), "y __, d __, h __, m __, s __" } + } - function r(e, t, n, r) { - var i = e + " "; - switch (n) { - case "s": - return t || r ? "pár sekúnd" : "pár sekundami"; - case "ss": - return t || r ? i + (a(e) ? "sekundy" : "sekúnd") : i + "sekundami"; - case "m": - return t ? "minúta" : r ? "minútu" : "minútou"; - case "mm": - return t || r ? i + (a(e) ? "minúty" : "minút") : i + "minútami"; - case "h": - return t ? "hodina" : r ? "hodinu" : "hodinou"; - case "hh": - return t || r ? i + (a(e) ? "hodiny" : "hodín") : i + "hodinami"; - case "d": - return t || r ? "deň" : "dňom"; - case "dd": - return t || r ? i + (a(e) ? "dni" : "dní") : i + "dňami"; - case "M": - return t || r ? "mesiac" : "mesiacom"; - case "MM": - return t || r ? i + (a(e) ? "mesiace" : "mesiacov") : i + "mesiacmi"; - case "y": - return t || r ? "rok" : "rokom"; - case "yy": - return t || r ? i + (a(e) ? "roky" : "rokov") : i + "rokmi" - } + function P(e) { + if (!e) throw "Moment Duration Format init cannot find moment instance."; + e.duration.format = A, e.duration.fn.format = T, e.duration.fn.format.defaults = { + trim: null, + stopTrim: null, + largest: null, + maxValue: null, + minValue: null, + precision: 0, + trunc: !1, + forceLength: null, + userLocale: null, + usePlural: !0, + useLeftUnits: !1, + useGrouping: !0, + useSignificantDigits: !1, + template: D, + useToLocaleString: !0, + groupingSeparator: ",", + decimalSeparator: ".", + grouping: [3] + }, e.updateLocale("en", d) + } + return t = !!((u = (u = !0) && function() { + try { + (0).toLocaleString("i") + } catch (e) { + return "RangeError" === e.name } - e.defineLocale("sk", { - months: t, - monthsShort: n, - weekdays: "nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"), - weekdaysShort: "ne_po_ut_st_št_pi_so".split("_"), - weekdaysMin: "ne_po_ut_st_št_pi_so".split("_"), - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD.MM.YYYY", - LL: "D. MMMM YYYY", - LLL: "D. MMMM YYYY H:mm", - LLLL: "dddd D. MMMM YYYY H:mm" - }, - calendar: { - sameDay: "[dnes o] LT", - nextDay: "[zajtra o] LT", - nextWeek: function() { - switch (this.day()) { - case 0: - return "[v nedeľu o] LT"; - case 1: - case 2: - return "[v] dddd [o] LT"; - case 3: - return "[v stredu o] LT"; - case 4: - return "[vo štvrtok o] LT"; - case 5: - return "[v piatok o] LT"; - case 6: - return "[v sobotu o] LT" - } - }, - lastDay: "[včera o] LT", - lastWeek: function() { - switch (this.day()) { - case 0: - return "[minulú nedeľu o] LT"; - case 1: - case 2: - case 4: - case 5: - return "[minulý] dddd [o] LT"; - case 3: - return "[minulú stredu o] LT"; - case 6: - return "[minulú sobotu o] LT" - } - }, - sameElse: "L" - }, - relativeTime: { - future: "za %s", - past: "pred %s", - s: r, - ss: r, - m: r, - mm: r, - h: r, - hh: r, - d: r, - dd: r, - M: r, - MM: r, - y: r, - yy: r - }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 4 + return !1 + }()) && (u = (u = (u = u && "1" === 1..toLocaleString("en", { + minimumIntegerDigits: 1 + })) && "01" === 1..toLocaleString("en", { + minimumIntegerDigits: 2 + })) && "001" === 1..toLocaleString("en", { + minimumIntegerDigits: 3 + })) && (u = (u = (u = (u = u && "100" === 99.99.toLocaleString("en", { + maximumFractionDigits: 0, + minimumFractionDigits: 0 + })) && "100.0" === 99.99.toLocaleString("en", { + maximumFractionDigits: 1, + minimumFractionDigits: 1 + })) && "99.99" === 99.99.toLocaleString("en", { + maximumFractionDigits: 2, + minimumFractionDigits: 2 + })) && "99.990" === 99.99.toLocaleString("en", { + maximumFractionDigits: 3, + minimumFractionDigits: 3 + })) && (u = (u = (u = (u = (u = u && "100" === 99.99.toLocaleString("en", { + maximumSignificantDigits: 1 + })) && "100" === 99.99.toLocaleString("en", { + maximumSignificantDigits: 2 + })) && "100" === 99.99.toLocaleString("en", { + maximumSignificantDigits: 3 + })) && "99.99" === 99.99.toLocaleString("en", { + maximumSignificantDigits: 4 + })) && "99.99" === 99.99.toLocaleString("en", { + maximumSignificantDigits: 5 + })) && (u = (u = u && "1,000" === 1e3.toLocaleString("en", { + useGrouping: !0 + })) && "1000" === 1e3.toLocaleString("en", { + useGrouping: !1 + }))), n = t && "3.6" === 3.55.toLocaleString("en", { + useGrouping: !1, + minimumIntegerDigits: 1, + minimumFractionDigits: 1, + maximumFractionDigits: 1 + }), P(e), P + }, r = [n(2083)], void 0 === (i = "function" == typeof(a = s) ? a.apply(t, r) : a) || (e.exports = i), o && (o.momentDurationFormatSetup = o.moment ? s(o.moment) : s) +}, 5902: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("af", { + months: "Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"), + monthsShort: "Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"), + weekdays: "Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"), + weekdaysShort: "Son_Maa_Din_Woe_Don_Vry_Sat".split("_"), + weekdaysMin: "So_Ma_Di_Wo_Do_Vr_Sa".split("_"), + meridiemParse: /vm|nm/i, + isPM: function(e) { + return /^nm$/i.test(e) + }, + meridiem: function(e, t, n) { + return e < 12 ? n ? "vm" : "VM" : n ? "nm" : "NM" + }, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd, D MMMM YYYY HH:mm" + }, + calendar: { + sameDay: "[Vandag om] LT", + nextDay: "[Môre om] LT", + nextWeek: "dddd [om] LT", + lastDay: "[Gister om] LT", + lastWeek: "[Laas] dddd [om] LT", + sameElse: "L" + }, + relativeTime: { + future: "oor %s", + past: "%s gelede", + s: "'n paar sekondes", + ss: "%d sekondes", + m: "'n minuut", + mm: "%d minute", + h: "'n uur", + hh: "%d ure", + d: "'n dag", + dd: "%d dae", + M: "'n maand", + MM: "%d maande", + y: "'n jaar", + yy: "%d jaar" + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function(e) { + return e + (1 === e || 8 === e || e >= 20 ? "ste" : "de") + }, + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 9547: function(e, t, n) { + ! function(e) { + "use strict"; + var t = { + 1: "١", + 2: "٢", + 3: "٣", + 4: "٤", + 5: "٥", + 6: "٦", + 7: "٧", + 8: "٨", + 9: "٩", + 0: "٠" + }, + n = { + "١": "1", + "٢": "2", + "٣": "3", + "٤": "4", + "٥": "5", + "٦": "6", + "٧": "7", + "٨": "8", + "٩": "9", + "٠": "0" + }, + a = function(e) { + return 0 === e ? 0 : 1 === e ? 1 : 2 === e ? 2 : e % 100 >= 3 && e % 100 <= 10 ? 3 : e % 100 >= 11 ? 4 : 5 + }, + r = { + s: ["أقل من ثانية", "ثانية واحدة", ["ثانيتان", "ثانيتين"], "%d ثوان", "%d ثانية", "%d ثانية"], + m: ["أقل من دقيقة", "دقيقة واحدة", ["دقيقتان", "دقيقتين"], "%d دقائق", "%d دقيقة", "%d دقيقة"], + h: ["أقل من ساعة", "ساعة واحدة", ["ساعتان", "ساعتين"], "%d ساعات", "%d ساعة", "%d ساعة"], + d: ["أقل من يوم", "يوم واحد", ["يومان", "يومين"], "%d أيام", "%d يومًا", "%d يوم"], + M: ["أقل من شهر", "شهر واحد", ["شهران", "شهرين"], "%d أشهر", "%d شهرا", "%d شهر"], + y: ["أقل من عام", "عام واحد", ["عامان", "عامين"], "%d أعوام", "%d عامًا", "%d عام"] + }, + i = function(e) { + return function(t, n, i, o) { + var s = a(t), + l = r[e][a(t)]; + return 2 === s && (l = l[n ? 0 : 1]), l.replace(/%d/i, t) } - }) - }(n(2083)) - }, 6705: function(e, t, n) { - ! function(e) { - "use strict"; + }, + o = ["يناير", "فبراير", "مارس", "أبريل", "مايو", "يونيو", "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"]; + e.defineLocale("ar", { + months: o, + monthsShort: o, + weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"), + weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"), + weekdaysMin: "ح_ن_ث_ر_خ_ج_س".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "D/‏M/‏YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd D MMMM YYYY HH:mm" + }, + meridiemParse: /ص|م/, + isPM: function(e) { + return "م" === e + }, + meridiem: function(e, t, n) { + return e < 12 ? "ص" : "م" + }, + calendar: { + sameDay: "[اليوم عند الساعة] LT", + nextDay: "[غدًا عند الساعة] LT", + nextWeek: "dddd [عند الساعة] LT", + lastDay: "[أمس عند الساعة] LT", + lastWeek: "dddd [عند الساعة] LT", + sameElse: "L" + }, + relativeTime: { + future: "بعد %s", + past: "منذ %s", + s: i("s"), + ss: i("s"), + m: i("m"), + mm: i("m"), + h: i("h"), + hh: i("h"), + d: i("d"), + dd: i("d"), + M: i("M"), + MM: i("M"), + y: i("y"), + yy: i("y") + }, + preparse: function(e) { + return e.replace(/[١٢٣٤٥٦٧٨٩٠]/g, (function(e) { + return n[e] + })).replace(/،/g, ",") + }, + postformat: function(e) { + return e.replace(/\d/g, (function(e) { + return t[e] + })).replace(/,/g, "،") + }, + week: { + dow: 6, + doy: 12 + } + }) + }(n(2083)) +}, 1824: function(e, t, n) { + ! function(e) { + "use strict"; - function t(e, t, n, a) { - var r = e + " "; - switch (n) { - case "s": - return t || a ? "nekaj sekund" : "nekaj sekundami"; - case "ss": - return r + (1 === e ? t ? "sekundo" : "sekundi" : 2 === e ? t || a ? "sekundi" : "sekundah" : e < 5 ? t || a ? "sekunde" : "sekundah" : "sekund"); - case "m": - return t ? "ena minuta" : "eno minuto"; - case "mm": - return r + (1 === e ? t ? "minuta" : "minuto" : 2 === e ? t || a ? "minuti" : "minutama" : e < 5 ? t || a ? "minute" : "minutami" : t || a ? "minut" : "minutami"); - case "h": - return t ? "ena ura" : "eno uro"; - case "hh": - return r + (1 === e ? t ? "ura" : "uro" : 2 === e ? t || a ? "uri" : "urama" : e < 5 ? t || a ? "ure" : "urami" : t || a ? "ur" : "urami"); - case "d": - return t || a ? "en dan" : "enim dnem"; - case "dd": - return r + (1 === e ? t || a ? "dan" : "dnem" : 2 === e ? t || a ? "dni" : "dnevoma" : t || a ? "dni" : "dnevi"); + function t(e, t, n) { + return "m" === n ? t ? "хвіліна" : "хвіліну" : "h" === n ? t ? "гадзіна" : "гадзіну" : e + " " + (a = +e, r = { + ss: t ? "секунда_секунды_секунд" : "секунду_секунды_секунд", + mm: t ? "хвіліна_хвіліны_хвілін" : "хвіліну_хвіліны_хвілін", + hh: t ? "гадзіна_гадзіны_гадзін" : "гадзіну_гадзіны_гадзін", + dd: "дзень_дні_дзён", + MM: "месяц_месяцы_месяцаў", + yy: "год_гады_гадоў" + } [n].split("_"), a % 10 == 1 && a % 100 != 11 ? r[0] : a % 10 >= 2 && a % 10 <= 4 && (a % 100 < 10 || a % 100 >= 20) ? r[1] : r[2]); + var a, r + } + e.defineLocale("be", { + months: { + format: "студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_"), + standalone: "студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_") + }, + monthsShort: "студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"), + weekdays: { + format: "нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_"), + standalone: "нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"), + isFormat: /\[ ?[Ууў] ?(?:мінулую|наступную)? ?\] ?dddd/ + }, + weekdaysShort: "нд_пн_ат_ср_чц_пт_сб".split("_"), + weekdaysMin: "нд_пн_ат_ср_чц_пт_сб".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY", + LL: "D MMMM YYYY г.", + LLL: "D MMMM YYYY г., HH:mm", + LLLL: "dddd, D MMMM YYYY г., HH:mm" + }, + calendar: { + sameDay: "[Сёння ў] LT", + nextDay: "[Заўтра ў] LT", + lastDay: "[Учора ў] LT", + nextWeek: function() { + return "[У] dddd [ў] LT" + }, + lastWeek: function() { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return "[У мінулую] dddd [ў] LT"; + case 1: + case 2: + case 4: + return "[У мінулы] dddd [ў] LT" + } + }, + sameElse: "L" + }, + relativeTime: { + future: "праз %s", + past: "%s таму", + s: "некалькі секунд", + m: t, + mm: t, + h: t, + hh: t, + d: "дзень", + dd: t, + M: "месяц", + MM: t, + y: "год", + yy: t + }, + meridiemParse: /ночы|раніцы|дня|вечара/, + isPM: function(e) { + return /^(дня|вечара)$/.test(e) + }, + meridiem: function(e, t, n) { + return e < 4 ? "ночы" : e < 12 ? "раніцы" : e < 17 ? "дня" : "вечара" + }, + dayOfMonthOrdinalParse: /\d{1,2}-(і|ы|га)/, + ordinal: function(e, t) { + switch (t) { case "M": - return t || a ? "en mesec" : "enim mesecem"; - case "MM": - return r + (1 === e ? t || a ? "mesec" : "mesecem" : 2 === e ? t || a ? "meseca" : "mesecema" : e < 5 ? t || a ? "mesece" : "meseci" : t || a ? "mesecev" : "meseci"); - case "y": - return t || a ? "eno leto" : "enim letom"; - case "yy": - return r + (1 === e ? t || a ? "leto" : "letom" : 2 === e ? t || a ? "leti" : "letoma" : e < 5 ? t || a ? "leta" : "leti" : t || a ? "let" : "leti") - } - } - e.defineLocale("sl", { - months: "januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"), - monthsShort: "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"), - monthsParseExact: !0, - weekdays: "nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"), - weekdaysShort: "ned._pon._tor._sre._čet._pet._sob.".split("_"), - weekdaysMin: "ne_po_to_sr_če_pe_so".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "DD. MM. YYYY", - LL: "D. MMMM YYYY", - LLL: "D. MMMM YYYY H:mm", - LLLL: "dddd, D. MMMM YYYY H:mm" + case "d": + case "DDD": + case "w": + case "W": + return e % 10 != 2 && e % 10 != 3 || e % 100 == 12 || e % 100 == 13 ? e + "-ы" : e + "-і"; + case "D": + return e + "-га"; + default: + return e + } + }, + week: { + dow: 1, + doy: 7 + } + }) + }(n(2083)) +}, 7075: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("bg", { + months: "януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"), + monthsShort: "яну_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"), + weekdays: "неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"), + weekdaysShort: "нед_пон_вто_сря_чет_пет_съб".split("_"), + weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"), + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "D.MM.YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY H:mm", + LLLL: "dddd, D MMMM YYYY H:mm" + }, + calendar: { + sameDay: "[Днес в] LT", + nextDay: "[Утре в] LT", + nextWeek: "dddd [в] LT", + lastDay: "[Вчера в] LT", + lastWeek: function() { + switch (this.day()) { + case 0: + case 3: + case 6: + return "[Миналата] dddd [в] LT"; + case 1: + case 2: + case 4: + case 5: + return "[Миналия] dddd [в] LT" + } }, - calendar: { - sameDay: "[danes ob] LT", - nextDay: "[jutri ob] LT", - nextWeek: function() { - switch (this.day()) { - case 0: - return "[v] [nedeljo] [ob] LT"; - case 3: - return "[v] [sredo] [ob] LT"; - case 6: - return "[v] [soboto] [ob] LT"; - case 1: - case 2: - case 4: - case 5: - return "[v] dddd [ob] LT" - } - }, - lastDay: "[včeraj ob] LT", - lastWeek: function() { - switch (this.day()) { - case 0: - return "[prejšnjo] [nedeljo] [ob] LT"; - case 3: - return "[prejšnjo] [sredo] [ob] LT"; - case 6: - return "[prejšnjo] [soboto] [ob] LT"; - case 1: - case 2: - case 4: - case 5: - return "[prejšnji] dddd [ob] LT" - } - }, - sameElse: "L" + sameElse: "L" + }, + relativeTime: { + future: "след %s", + past: "преди %s", + s: "няколко секунди", + ss: "%d секунди", + m: "минута", + mm: "%d минути", + h: "час", + hh: "%d часа", + d: "ден", + dd: "%d дена", + w: "седмица", + ww: "%d седмици", + M: "месец", + MM: "%d месеца", + y: "година", + yy: "%d години" + }, + dayOfMonthOrdinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/, + ordinal: function(e) { + var t = e % 10, + n = e % 100; + return 0 === e ? e + "-ев" : 0 === n ? e + "-ен" : n > 10 && n < 20 ? e + "-ти" : 1 === t ? e + "-ви" : 2 === t ? e + "-ри" : 7 === t || 8 === t ? e + "-ми" : e + "-ти" + }, + week: { + dow: 1, + doy: 7 + } + }) + }(n(2083)) +}, 5793: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("ca", { + months: { + standalone: "gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"), + format: "de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre".split("_"), + isFormat: /D[oD]?(\s)+MMMM/ + }, + monthsShort: "gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.".split("_"), + monthsParseExact: !0, + weekdays: "diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"), + weekdaysShort: "dg._dl._dt._dc._dj._dv._ds.".split("_"), + weekdaysMin: "dg_dl_dt_dc_dj_dv_ds".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD/MM/YYYY", + LL: "D MMMM [de] YYYY", + ll: "D MMM YYYY", + LLL: "D MMMM [de] YYYY [a les] H:mm", + lll: "D MMM YYYY, H:mm", + LLLL: "dddd D MMMM [de] YYYY [a les] H:mm", + llll: "ddd D MMM YYYY, H:mm" + }, + calendar: { + sameDay: function() { + return "[avui a " + (1 !== this.hours() ? "les" : "la") + "] LT" }, - relativeTime: { - future: "čez %s", - past: "pred %s", - s: t, - ss: t, - m: t, - mm: t, - h: t, - hh: t, - d: t, - dd: t, - M: t, - MM: t, - y: t, - yy: t + nextDay: function() { + return "[demà a " + (1 !== this.hours() ? "les" : "la") + "] LT" }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 9557: function(e, t, n) { - ! function(e) { - "use strict"; - var t = { - words: { - ss: ["sekunda", "sekunde", "sekundi"], - m: ["jedan minut", "jedne minute"], - mm: ["minut", "minute", "minuta"], - h: ["jedan sat", "jednog sata"], - hh: ["sat", "sata", "sati"], - dd: ["dan", "dana", "dana"], - MM: ["mesec", "meseca", "meseci"], - yy: ["godina", "godine", "godina"] + nextWeek: function() { + return "dddd [a " + (1 !== this.hours() ? "les" : "la") + "] LT" }, - correctGrammaticalCase: function(e, t) { - return 1 === e ? t[0] : e >= 2 && e <= 4 ? t[1] : t[2] + lastDay: function() { + return "[ahir a " + (1 !== this.hours() ? "les" : "la") + "] LT" }, - translate: function(e, n, a) { - var r = t.words[a]; - return 1 === a.length ? n ? r[0] : r[1] : e + " " + t.correctGrammaticalCase(e, r) - } - }; - e.defineLocale("sr", { - months: "januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"), - monthsShort: "jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"), - monthsParseExact: !0, - weekdays: "nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"), - weekdaysShort: "ned._pon._uto._sre._čet._pet._sub.".split("_"), - weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"), - weekdaysParseExact: !0, - longDateFormat: { - LT: "H:mm", - LTS: "H:mm:ss", - L: "D. M. YYYY.", - LL: "D. MMMM YYYY.", - LLL: "D. MMMM YYYY. H:mm", - LLLL: "dddd, D. MMMM YYYY. H:mm" + lastWeek: function() { + return "[el] dddd [passat a " + (1 !== this.hours() ? "les" : "la") + "] LT" }, - calendar: { - sameDay: "[danas u] LT", - nextDay: "[sutra u] LT", - nextWeek: function() { - switch (this.day()) { - case 0: - return "[u] [nedelju] [u] LT"; - case 3: - return "[u] [sredu] [u] LT"; - case 6: - return "[u] [subotu] [u] LT"; - case 1: - case 2: - case 4: - case 5: - return "[u] dddd [u] LT" - } - }, - lastDay: "[juče u] LT", - lastWeek: function() { - return ["[prošle] [nedelje] [u] LT", "[prošlog] [ponedeljka] [u] LT", "[prošlog] [utorka] [u] LT", "[prošle] [srede] [u] LT", "[prošlog] [četvrtka] [u] LT", "[prošlog] [petka] [u] LT", "[prošle] [subote] [u] LT"][this.day()] - }, - sameElse: "L" + sameElse: "L" + }, + relativeTime: { + future: "d'aquí %s", + past: "fa %s", + s: "uns segons", + ss: "%d segons", + m: "un minut", + mm: "%d minuts", + h: "una hora", + hh: "%d hores", + d: "un dia", + dd: "%d dies", + M: "un mes", + MM: "%d mesos", + y: "un any", + yy: "%d anys" + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function(e, t) { + var n = 1 === e ? "r" : 2 === e ? "n" : 3 === e ? "r" : 4 === e ? "t" : "è"; + return "w" !== t && "W" !== t || (n = "a"), e + n + }, + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 8979: function(e, t, n) { + ! function(e) { + "use strict"; + var t = "leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"), + n = "led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_"), + a = [/^led/i, /^úno/i, /^bře/i, /^dub/i, /^kvě/i, /^(čvn|červen$|června)/i, /^(čvc|červenec|července)/i, /^srp/i, /^zář/i, /^říj/i, /^lis/i, /^pro/i], + r = /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i; + + function i(e) { + return e > 1 && e < 5 && 1 != ~~(e / 10) + } + + function o(e, t, n, a) { + var r = e + " "; + switch (n) { + case "s": + return t || a ? "pár sekund" : "pár sekundami"; + case "ss": + return t || a ? r + (i(e) ? "sekundy" : "sekund") : r + "sekundami"; + case "m": + return t ? "minuta" : a ? "minutu" : "minutou"; + case "mm": + return t || a ? r + (i(e) ? "minuty" : "minut") : r + "minutami"; + case "h": + return t ? "hodina" : a ? "hodinu" : "hodinou"; + case "hh": + return t || a ? r + (i(e) ? "hodiny" : "hodin") : r + "hodinami"; + case "d": + return t || a ? "den" : "dnem"; + case "dd": + return t || a ? r + (i(e) ? "dny" : "dní") : r + "dny"; + case "M": + return t || a ? "měsíc" : "měsícem"; + case "MM": + return t || a ? r + (i(e) ? "měsíce" : "měsíců") : r + "měsíci"; + case "y": + return t || a ? "rok" : "rokem"; + case "yy": + return t || a ? r + (i(e) ? "roky" : "let") : r + "lety" + } + } + e.defineLocale("cs", { + months: t, + monthsShort: n, + monthsRegex: r, + monthsShortRegex: r, + monthsStrictRegex: /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i, + monthsShortStrictRegex: /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i, + monthsParse: a, + longMonthsParse: a, + shortMonthsParse: a, + weekdays: "neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"), + weekdaysShort: "ne_po_út_st_čt_pá_so".split("_"), + weekdaysMin: "ne_po_út_st_čt_pá_so".split("_"), + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD.MM.YYYY", + LL: "D. MMMM YYYY", + LLL: "D. MMMM YYYY H:mm", + LLLL: "dddd D. MMMM YYYY H:mm", + l: "D. M. YYYY" + }, + calendar: { + sameDay: "[dnes v] LT", + nextDay: "[zítra v] LT", + nextWeek: function() { + switch (this.day()) { + case 0: + return "[v neděli v] LT"; + case 1: + case 2: + return "[v] dddd [v] LT"; + case 3: + return "[ve středu v] LT"; + case 4: + return "[ve čtvrtek v] LT"; + case 5: + return "[v pátek v] LT"; + case 6: + return "[v sobotu v] LT" + } }, - relativeTime: { - future: "za %s", - past: "pre %s", - s: "nekoliko sekundi", - ss: t.translate, - m: t.translate, - mm: t.translate, - h: t.translate, - hh: t.translate, - d: "dan", - dd: t.translate, - M: "mesec", - MM: t.translate, - y: "godinu", - yy: t.translate + lastDay: "[včera v] LT", + lastWeek: function() { + switch (this.day()) { + case 0: + return "[minulou neděli v] LT"; + case 1: + case 2: + return "[minulé] dddd [v] LT"; + case 3: + return "[minulou středu v] LT"; + case 4: + case 5: + return "[minulý] dddd [v] LT"; + case 6: + return "[minulou sobotu v] LT" + } }, - dayOfMonthOrdinalParse: /\d{1,2}\./, - ordinal: "%d.", - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 3497: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("sv", { - months: "januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"), - monthsShort: "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"), - weekdays: "söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"), - weekdaysShort: "sön_mån_tis_ons_tor_fre_lör".split("_"), - weekdaysMin: "sö_må_ti_on_to_fr_lö".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY-MM-DD", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY [kl.] HH:mm", - LLLL: "dddd D MMMM YYYY [kl.] HH:mm", - lll: "D MMM YYYY HH:mm", - llll: "ddd D MMM YYYY HH:mm" + sameElse: "L" + }, + relativeTime: { + future: "za %s", + past: "před %s", + s: o, + ss: o, + m: o, + mm: o, + h: o, + hh: o, + d: o, + dd: o, + M: o, + MM: o, + y: o, + yy: o + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 1277: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("da", { + months: "januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"), + monthsShort: "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"), + weekdays: "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"), + weekdaysShort: "søn_man_tir_ons_tor_fre_lør".split("_"), + weekdaysMin: "sø_ma_ti_on_to_fr_lø".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY", + LL: "D. MMMM YYYY", + LLL: "D. MMMM YYYY HH:mm", + LLLL: "dddd [d.] D. MMMM YYYY [kl.] HH:mm" + }, + calendar: { + sameDay: "[i dag kl.] LT", + nextDay: "[i morgen kl.] LT", + nextWeek: "på dddd [kl.] LT", + lastDay: "[i går kl.] LT", + lastWeek: "[i] dddd[s kl.] LT", + sameElse: "L" + }, + relativeTime: { + future: "om %s", + past: "%s siden", + s: "få sekunder", + ss: "%d sekunder", + m: "et minut", + mm: "%d minutter", + h: "en time", + hh: "%d timer", + d: "en dag", + dd: "%d dage", + M: "en måned", + MM: "%d måneder", + y: "et år", + yy: "%d år" + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 1633: function(e, t, n) { + ! function(e) { + "use strict"; + + function t(e, t, n, a) { + var r = { + m: ["eine Minute", "einer Minute"], + h: ["eine Stunde", "einer Stunde"], + d: ["ein Tag", "einem Tag"], + dd: [e + " Tage", e + " Tagen"], + w: ["eine Woche", "einer Woche"], + M: ["ein Monat", "einem Monat"], + MM: [e + " Monate", e + " Monaten"], + y: ["ein Jahr", "einem Jahr"], + yy: [e + " Jahre", e + " Jahren"] + }; + return t ? r[n][0] : r[n][1] + } + e.defineLocale("de", { + months: "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"), + monthsShort: "Jan._Feb._März_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.".split("_"), + monthsParseExact: !0, + weekdays: "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"), + weekdaysShort: "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"), + weekdaysMin: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY", + LL: "D. MMMM YYYY", + LLL: "D. MMMM YYYY HH:mm", + LLLL: "dddd, D. MMMM YYYY HH:mm" + }, + calendar: { + sameDay: "[heute um] LT [Uhr]", + sameElse: "L", + nextDay: "[morgen um] LT [Uhr]", + nextWeek: "dddd [um] LT [Uhr]", + lastDay: "[gestern um] LT [Uhr]", + lastWeek: "[letzten] dddd [um] LT [Uhr]" + }, + relativeTime: { + future: "in %s", + past: "vor %s", + s: "ein paar Sekunden", + ss: "%d Sekunden", + m: t, + mm: "%d Minuten", + h: t, + hh: "%d Stunden", + d: t, + dd: t, + w: t, + ww: "%d Wochen", + M: t, + MM: t, + y: t, + yy: t + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 3122: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("el", { + monthsNominativeEl: "Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"), + monthsGenitiveEl: "Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"), + months: function(e, t) { + return e ? "string" == typeof t && /D/.test(t.substring(0, t.indexOf("MMMM"))) ? this._monthsGenitiveEl[e.month()] : this._monthsNominativeEl[e.month()] : this._monthsNominativeEl + }, + monthsShort: "Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"), + weekdays: "Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"), + weekdaysShort: "Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"), + weekdaysMin: "Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"), + meridiem: function(e, t, n) { + return e > 11 ? n ? "μμ" : "ΜΜ" : n ? "πμ" : "ΠΜ" + }, + isPM: function(e) { + return "μ" === (e + "").toLowerCase()[0] + }, + meridiemParse: /[ΠΜ]\.?Μ?\.?/i, + longDateFormat: { + LT: "h:mm A", + LTS: "h:mm:ss A", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY h:mm A", + LLLL: "dddd, D MMMM YYYY h:mm A" + }, + calendarEl: { + sameDay: "[Σήμερα {}] LT", + nextDay: "[Αύριο {}] LT", + nextWeek: "dddd [{}] LT", + lastDay: "[Χθες {}] LT", + lastWeek: function() { + return 6 === this.day() ? "[το προηγούμενο] dddd [{}] LT" : "[την προηγούμενη] dddd [{}] LT" + }, + sameElse: "L" + }, + calendar: function(e, t) { + var n, a = this._calendarEl[e], + r = t && t.hours(); + return n = a, ("undefined" != typeof Function && n instanceof Function || "[object Function]" === Object.prototype.toString.call(n)) && (a = a.apply(t)), a.replace("{}", r % 12 == 1 ? "στη" : "στις") + }, + relativeTime: { + future: "σε %s", + past: "%s πριν", + s: "λίγα δευτερόλεπτα", + ss: "%d δευτερόλεπτα", + m: "ένα λεπτό", + mm: "%d λεπτά", + h: "μία ώρα", + hh: "%d ώρες", + d: "μία μέρα", + dd: "%d μέρες", + M: "ένας μήνας", + MM: "%d μήνες", + y: "ένας χρόνος", + yy: "%d χρόνια" + }, + dayOfMonthOrdinalParse: /\d{1,2}η/, + ordinal: "%dη", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 4595: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("en-gb", { + months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), + monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), + weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), + weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), + weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd, D MMMM YYYY HH:mm" + }, + calendar: { + sameDay: "[Today at] LT", + nextDay: "[Tomorrow at] LT", + nextWeek: "dddd [at] LT", + lastDay: "[Yesterday at] LT", + lastWeek: "[Last] dddd [at] LT", + sameElse: "L" + }, + relativeTime: { + future: "in %s", + past: "%s ago", + s: "a few seconds", + ss: "%d seconds", + m: "a minute", + mm: "%d minutes", + h: "an hour", + hh: "%d hours", + d: "a day", + dd: "%d days", + M: "a month", + MM: "%d months", + y: "a year", + yy: "%d years" + }, + dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, + ordinal: function(e) { + var t = e % 10; + return e + (1 == ~~(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th") + }, + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 5871: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("eo", { + months: "januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"), + monthsShort: "jan_feb_mart_apr_maj_jun_jul_aŭg_sept_okt_nov_dec".split("_"), + weekdays: "dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato".split("_"), + weekdaysShort: "dim_lun_mard_merk_ĵaŭ_ven_sab".split("_"), + weekdaysMin: "di_lu_ma_me_ĵa_ve_sa".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY-MM-DD", + LL: "[la] D[-an de] MMMM, YYYY", + LLL: "[la] D[-an de] MMMM, YYYY HH:mm", + LLLL: "dddd[n], [la] D[-an de] MMMM, YYYY HH:mm", + llll: "ddd, [la] D[-an de] MMM, YYYY HH:mm" + }, + meridiemParse: /[ap]\.t\.m/i, + isPM: function(e) { + return "p" === e.charAt(0).toLowerCase() + }, + meridiem: function(e, t, n) { + return e > 11 ? n ? "p.t.m." : "P.T.M." : n ? "a.t.m." : "A.T.M." + }, + calendar: { + sameDay: "[Hodiaŭ je] LT", + nextDay: "[Morgaŭ je] LT", + nextWeek: "dddd[n je] LT", + lastDay: "[Hieraŭ je] LT", + lastWeek: "[pasintan] dddd[n je] LT", + sameElse: "L" + }, + relativeTime: { + future: "post %s", + past: "antaŭ %s", + s: "kelkaj sekundoj", + ss: "%d sekundoj", + m: "unu minuto", + mm: "%d minutoj", + h: "unu horo", + hh: "%d horoj", + d: "unu tago", + dd: "%d tagoj", + M: "unu monato", + MM: "%d monatoj", + y: "unu jaro", + yy: "%d jaroj" + }, + dayOfMonthOrdinalParse: /\d{1,2}a/, + ordinal: "%da", + week: { + dow: 1, + doy: 7 + } + }) + }(n(2083)) +}, 1329: function(e, t, n) { + ! function(e) { + "use strict"; + var t = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), + n = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), + a = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], + r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + e.defineLocale("es-us", { + months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), + monthsShort: function(e, a) { + return e ? /-MMM-/.test(a) ? n[e.month()] : t[e.month()] : t + }, + monthsRegex: r, + monthsShortRegex: r, + monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: a, + longMonthsParse: a, + shortMonthsParse: a, + weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), + weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), + weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "h:mm A", + LTS: "h:mm:ss A", + L: "MM/DD/YYYY", + LL: "D [de] MMMM [de] YYYY", + LLL: "D [de] MMMM [de] YYYY h:mm A", + LLLL: "dddd, D [de] MMMM [de] YYYY h:mm A" + }, + calendar: { + sameDay: function() { + return "[hoy a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - calendar: { - sameDay: "[Idag] LT", - nextDay: "[Imorgon] LT", - lastDay: "[Igår] LT", - nextWeek: "[På] dddd LT", - lastWeek: "[I] dddd[s] LT", - sameElse: "L" + nextDay: function() { + return "[mañana a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - relativeTime: { - future: "om %s", - past: "för %s sedan", - s: "några sekunder", - ss: "%d sekunder", - m: "en minut", - mm: "%d minuter", - h: "en timme", - hh: "%d timmar", - d: "en dag", - dd: "%d dagar", - M: "en månad", - MM: "%d månader", - y: "ett år", - yy: "%d år" + nextWeek: function() { + return "dddd [a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, - ordinal: function(e) { - var t = e % 10; - return e + (1 == ~~(e % 100 / 10) ? ":e" : 1 === t || 2 === t ? ":a" : ":e") + lastDay: function() { + return "[ayer a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 7612: function(e, t, n) { - ! function(e) { - "use strict"; - var t = { - 1: "'inci", - 5: "'inci", - 8: "'inci", - 70: "'inci", - 80: "'inci", - 2: "'nci", - 7: "'nci", - 20: "'nci", - 50: "'nci", - 3: "'üncü", - 4: "'üncü", - 100: "'üncü", - 6: "'ncı", - 9: "'uncu", - 10: "'uncu", - 30: "'uncu", - 60: "'ıncı", - 90: "'ıncı" - }; - e.defineLocale("tr", { - months: "Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"), - monthsShort: "Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"), - weekdays: "Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"), - weekdaysShort: "Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"), - weekdaysMin: "Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"), - meridiem: function(e, t, n) { - return e < 12 ? n ? "öö" : "ÖÖ" : n ? "ös" : "ÖS" + lastWeek: function() { + return "[el] dddd [pasado a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - meridiemParse: /öö|ÖÖ|ös|ÖS/, - isPM: function(e) { - return "ös" === e || "ÖS" === e + sameElse: "L" + }, + relativeTime: { + future: "en %s", + past: "hace %s", + s: "unos segundos", + ss: "%d segundos", + m: "un minuto", + mm: "%d minutos", + h: "una hora", + hh: "%d horas", + d: "un día", + dd: "%d días", + w: "una semana", + ww: "%d semanas", + M: "un mes", + MM: "%d meses", + y: "un año", + yy: "%d años" + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: "%dº", + week: { + dow: 0, + doy: 6 + } + }) + }(n(2083)) +}, 3548: function(e, t, n) { + ! function(e) { + "use strict"; + var t = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"), + n = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_"), + a = [/^ene/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i], + r = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i; + e.defineLocale("es", { + months: "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"), + monthsShort: function(e, a) { + return e ? /-MMM-/.test(a) ? n[e.month()] : t[e.month()] : t + }, + monthsRegex: r, + monthsShortRegex: r, + monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i, + monthsShortStrictRegex: /^(ene\.?|feb\.?|mar\.?|abr\.?|may\.?|jun\.?|jul\.?|ago\.?|sep\.?|oct\.?|nov\.?|dic\.?)/i, + monthsParse: a, + longMonthsParse: a, + shortMonthsParse: a, + weekdays: "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"), + weekdaysShort: "dom._lun._mar._mié._jue._vie._sáb.".split("_"), + weekdaysMin: "do_lu_ma_mi_ju_vi_sá".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD/MM/YYYY", + LL: "D [de] MMMM [de] YYYY", + LLL: "D [de] MMMM [de] YYYY H:mm", + LLLL: "dddd, D [de] MMMM [de] YYYY H:mm" + }, + calendar: { + sameDay: function() { + return "[hoy a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY", - LL: "D MMMM YYYY", - LLL: "D MMMM YYYY HH:mm", - LLLL: "dddd, D MMMM YYYY HH:mm" + nextDay: function() { + return "[mañana a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - calendar: { - sameDay: "[bugün saat] LT", - nextDay: "[yarın saat] LT", - nextWeek: "[gelecek] dddd [saat] LT", - lastDay: "[dün] LT", - lastWeek: "[geçen] dddd [saat] LT", - sameElse: "L" + nextWeek: function() { + return "dddd [a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - relativeTime: { - future: "%s sonra", - past: "%s önce", - s: "birkaç saniye", - ss: "%d saniye", - m: "bir dakika", - mm: "%d dakika", - h: "bir saat", - hh: "%d saat", - d: "bir gün", - dd: "%d gün", - w: "bir hafta", - ww: "%d hafta", - M: "bir ay", - MM: "%d ay", - y: "bir yıl", - yy: "%d yıl" + lastDay: function() { + return "[ayer a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - ordinal: function(e, n) { - switch (n) { - case "d": - case "D": - case "Do": - case "DD": - return e; - default: - if (0 === e) return e + "'ıncı"; - var a = e % 10; - return e + (t[a] || t[e % 100 - a] || t[e >= 100 ? 100 : null]) - } + lastWeek: function() { + return "[el] dddd [pasado a la" + (1 !== this.hours() ? "s" : "") + "] LT" }, - week: { - dow: 1, - doy: 7 - } - }) - }(n(2083)) - }, 6608: function(e, t, n) { - ! function(e) { - "use strict"; + sameElse: "L" + }, + relativeTime: { + future: "en %s", + past: "hace %s", + s: "unos segundos", + ss: "%d segundos", + m: "un minuto", + mm: "%d minutos", + h: "una hora", + hh: "%d horas", + d: "un día", + dd: "%d días", + w: "una semana", + ww: "%d semanas", + M: "un mes", + MM: "%d meses", + y: "un año", + yy: "%d años" + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: "%dº", + week: { + dow: 1, + doy: 4 + }, + invalidDate: "Fecha inválida" + }) + }(n(2083)) +}, 2132: function(e, t, n) { + ! function(e) { + "use strict"; - function t(e, t, n) { - return "m" === n ? t ? "хвилина" : "хвилину" : "h" === n ? t ? "година" : "годину" : e + " " + (a = +e, r = { - ss: t ? "секунда_секунди_секунд" : "секунду_секунди_секунд", - mm: t ? "хвилина_хвилини_хвилин" : "хвилину_хвилини_хвилин", - hh: t ? "година_години_годин" : "годину_години_годин", - dd: "день_дні_днів", - MM: "місяць_місяці_місяців", - yy: "рік_роки_років" - } [n].split("_"), a % 10 == 1 && a % 100 != 11 ? r[0] : a % 10 >= 2 && a % 10 <= 4 && (a % 100 < 10 || a % 100 >= 20) ? r[1] : r[2]); - var a, r + function t(e, t, n, a) { + var r = { + s: ["mõne sekundi", "mõni sekund", "paar sekundit"], + ss: [e + "sekundi", e + "sekundit"], + m: ["ühe minuti", "üks minut"], + mm: [e + " minuti", e + " minutit"], + h: ["ühe tunni", "tund aega", "üks tund"], + hh: [e + " tunni", e + " tundi"], + d: ["ühe päeva", "üks päev"], + M: ["kuu aja", "kuu aega", "üks kuu"], + MM: [e + " kuu", e + " kuud"], + y: ["ühe aasta", "aasta", "üks aasta"], + yy: [e + " aasta", e + " aastat"] + }; + return t ? r[n][2] ? r[n][2] : r[n][1] : a ? r[n][0] : r[n][1] + } + e.defineLocale("et", { + months: "jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"), + monthsShort: "jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"), + weekdays: "pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"), + weekdaysShort: "P_E_T_K_N_R_L".split("_"), + weekdaysMin: "P_E_T_K_N_R_L".split("_"), + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD.MM.YYYY", + LL: "D. MMMM YYYY", + LLL: "D. MMMM YYYY H:mm", + LLLL: "dddd, D. MMMM YYYY H:mm" + }, + calendar: { + sameDay: "[Täna,] LT", + nextDay: "[Homme,] LT", + nextWeek: "[Järgmine] dddd LT", + lastDay: "[Eile,] LT", + lastWeek: "[Eelmine] dddd LT", + sameElse: "L" + }, + relativeTime: { + future: "%s pärast", + past: "%s tagasi", + s: t, + ss: t, + m: t, + mm: t, + h: t, + hh: t, + d: t, + dd: "%d päeva", + M: t, + MM: t, + y: t, + yy: t + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 6316: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("eu", { + months: "urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"), + monthsShort: "urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"), + monthsParseExact: !0, + weekdays: "igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"), + weekdaysShort: "ig._al._ar._az._og._ol._lr.".split("_"), + weekdaysMin: "ig_al_ar_az_og_ol_lr".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY-MM-DD", + LL: "YYYY[ko] MMMM[ren] D[a]", + LLL: "YYYY[ko] MMMM[ren] D[a] HH:mm", + LLLL: "dddd, YYYY[ko] MMMM[ren] D[a] HH:mm", + l: "YYYY-M-D", + ll: "YYYY[ko] MMM D[a]", + lll: "YYYY[ko] MMM D[a] HH:mm", + llll: "ddd, YYYY[ko] MMM D[a] HH:mm" + }, + calendar: { + sameDay: "[gaur] LT[etan]", + nextDay: "[bihar] LT[etan]", + nextWeek: "dddd LT[etan]", + lastDay: "[atzo] LT[etan]", + lastWeek: "[aurreko] dddd LT[etan]", + sameElse: "L" + }, + relativeTime: { + future: "%s barru", + past: "duela %s", + s: "segundo batzuk", + ss: "%d segundo", + m: "minutu bat", + mm: "%d minutu", + h: "ordu bat", + hh: "%d ordu", + d: "egun bat", + dd: "%d egun", + M: "hilabete bat", + MM: "%d hilabete", + y: "urte bat", + yy: "%d urte" + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 7 + } + }) + }(n(2083)) +}, 2835: function(e, t, n) { + ! function(e) { + "use strict"; + var t = { + 1: "۱", + 2: "۲", + 3: "۳", + 4: "۴", + 5: "۵", + 6: "۶", + 7: "۷", + 8: "۸", + 9: "۹", + 0: "۰" + }, + n = { + "۱": "1", + "۲": "2", + "۳": "3", + "۴": "4", + "۵": "5", + "۶": "6", + "۷": "7", + "۸": "8", + "۹": "9", + "۰": "0" + }; + e.defineLocale("fa", { + months: "ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"), + monthsShort: "ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"), + weekdays: "یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"), + weekdaysShort: "یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"), + weekdaysMin: "ی_د_س_چ_پ_ج_ش".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd, D MMMM YYYY HH:mm" + }, + meridiemParse: /قبل از ظهر|بعد از ظهر/, + isPM: function(e) { + return /بعد از ظهر/.test(e) + }, + meridiem: function(e, t, n) { + return e < 12 ? "قبل از ظهر" : "بعد از ظهر" + }, + calendar: { + sameDay: "[امروز ساعت] LT", + nextDay: "[فردا ساعت] LT", + nextWeek: "dddd [ساعت] LT", + lastDay: "[دیروز ساعت] LT", + lastWeek: "dddd [پیش] [ساعت] LT", + sameElse: "L" + }, + relativeTime: { + future: "در %s", + past: "%s پیش", + s: "چند ثانیه", + ss: "%d ثانیه", + m: "یک دقیقه", + mm: "%d دقیقه", + h: "یک ساعت", + hh: "%d ساعت", + d: "یک روز", + dd: "%d روز", + M: "یک ماه", + MM: "%d ماه", + y: "یک سال", + yy: "%d سال" + }, + preparse: function(e) { + return e.replace(/[۰-۹]/g, (function(e) { + return n[e] + })).replace(/،/g, ",") + }, + postformat: function(e) { + return e.replace(/\d/g, (function(e) { + return t[e] + })).replace(/,/g, "،") + }, + dayOfMonthOrdinalParse: /\d{1,2}م/, + ordinal: "%dم", + week: { + dow: 6, + doy: 12 } + }) + }(n(2083)) +}, 7941: function(e, t, n) { + ! function(e) { + "use strict"; + var t = "nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" "), + n = ["nolla", "yhden", "kahden", "kolmen", "neljän", "viiden", "kuuden", t[7], t[8], t[9]]; - function n(e) { - return function() { - return e + "о" + (11 === this.hours() ? "б" : "") + "] LT" + function a(e, a, r, i) { + var o = ""; + switch (r) { + case "s": + return i ? "muutaman sekunnin" : "muutama sekunti"; + case "ss": + o = i ? "sekunnin" : "sekuntia"; + break; + case "m": + return i ? "minuutin" : "minuutti"; + case "mm": + o = i ? "minuutin" : "minuuttia"; + break; + case "h": + return i ? "tunnin" : "tunti"; + case "hh": + o = i ? "tunnin" : "tuntia"; + break; + case "d": + return i ? "päivän" : "päivä"; + case "dd": + o = i ? "päivän" : "päivää"; + break; + case "M": + return i ? "kuukauden" : "kuukausi"; + case "MM": + o = i ? "kuukauden" : "kuukautta"; + break; + case "y": + return i ? "vuoden" : "vuosi"; + case "yy": + o = i ? "vuoden" : "vuotta" + } + return function(e, a) { + return e < 10 ? a ? n[e] : t[e] : e + }(e, i) + " " + o + } + e.defineLocale("fi", { + months: "tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"), + monthsShort: "tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"), + weekdays: "sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"), + weekdaysShort: "su_ma_ti_ke_to_pe_la".split("_"), + weekdaysMin: "su_ma_ti_ke_to_pe_la".split("_"), + longDateFormat: { + LT: "HH.mm", + LTS: "HH.mm.ss", + L: "DD.MM.YYYY", + LL: "Do MMMM[ta] YYYY", + LLL: "Do MMMM[ta] YYYY, [klo] HH.mm", + LLLL: "dddd, Do MMMM[ta] YYYY, [klo] HH.mm", + l: "D.M.YYYY", + ll: "Do MMM YYYY", + lll: "Do MMM YYYY, [klo] HH.mm", + llll: "ddd, Do MMM YYYY, [klo] HH.mm" + }, + calendar: { + sameDay: "[tänään] [klo] LT", + nextDay: "[huomenna] [klo] LT", + nextWeek: "dddd [klo] LT", + lastDay: "[eilen] [klo] LT", + lastWeek: "[viime] dddd[na] [klo] LT", + sameElse: "L" + }, + relativeTime: { + future: "%s päästä", + past: "%s sitten", + s: a, + ss: a, + m: a, + mm: a, + h: a, + hh: a, + d: a, + dd: a, + M: a, + MM: a, + y: a, + yy: a + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 6283: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("fr-ca", { + months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), + monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), + monthsParseExact: !0, + weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), + weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), + weekdaysMin: "di_lu_ma_me_je_ve_sa".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY-MM-DD", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd D MMMM YYYY HH:mm" + }, + calendar: { + sameDay: "[Aujourd’hui à] LT", + nextDay: "[Demain à] LT", + nextWeek: "dddd [à] LT", + lastDay: "[Hier à] LT", + lastWeek: "dddd [dernier à] LT", + sameElse: "L" + }, + relativeTime: { + future: "dans %s", + past: "il y a %s", + s: "quelques secondes", + ss: "%d secondes", + m: "une minute", + mm: "%d minutes", + h: "une heure", + hh: "%d heures", + d: "un jour", + dd: "%d jours", + M: "un mois", + MM: "%d mois", + y: "un an", + yy: "%d ans" + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|e)/, + ordinal: function(e, t) { + switch (t) { + default: + return e + (1 === e ? "er" : "e"); + case "w": + case "W": + return e + (1 === e ? "re" : "e") } } - e.defineLocale("uk", { - months: { - format: "січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"), - standalone: "січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_") - }, - monthsShort: "січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"), - weekdays: function(e, t) { - var n = { - nominative: "неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"), - accusative: "неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"), - genitive: "неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_") - }; - return !0 === e ? n.nominative.slice(1, 7).concat(n.nominative.slice(0, 1)) : e ? n[/(\[[ВвУу]\]) ?dddd/.test(t) ? "accusative" : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(t) ? "genitive" : "nominative"][e.day()] : n.nominative - }, - weekdaysShort: "нд_пн_вт_ср_чт_пт_сб".split("_"), - weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD.MM.YYYY", - LL: "D MMMM YYYY р.", - LLL: "D MMMM YYYY р., HH:mm", - LLLL: "dddd, D MMMM YYYY р., HH:mm" - }, - calendar: { - sameDay: n("[Сьогодні "), - nextDay: n("[Завтра "), - lastDay: n("[Вчора "), - nextWeek: n("[У] dddd ["), - lastWeek: function() { - switch (this.day()) { - case 0: - case 3: - case 5: - case 6: - return n("[Минулої] dddd [").call(this); - case 1: - case 2: - case 4: - return n("[Минулого] dddd [").call(this) - } - }, - sameElse: "L" + }) + }(n(2083)) +}, 5745: function(e, t, n) { + ! function(e) { + "use strict"; + var t = /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?|janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + n = [/^janv/i, /^févr/i, /^mars/i, /^avr/i, /^mai/i, /^juin/i, /^juil/i, /^août/i, /^sept/i, /^oct/i, /^nov/i, /^déc/i]; + e.defineLocale("fr", { + months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"), + monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"), + monthsRegex: t, + monthsShortRegex: t, + monthsStrictRegex: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/i, + monthsShortStrictRegex: /(janv\.?|févr\.?|mars|avr\.?|mai|juin|juil\.?|août|sept\.?|oct\.?|nov\.?|déc\.?)/i, + monthsParse: n, + longMonthsParse: n, + shortMonthsParse: n, + weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"), + weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"), + weekdaysMin: "di_lu_ma_me_je_ve_sa".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd D MMMM YYYY HH:mm" + }, + calendar: { + sameDay: "[Aujourd’hui à] LT", + nextDay: "[Demain à] LT", + nextWeek: "dddd [à] LT", + lastDay: "[Hier à] LT", + lastWeek: "dddd [dernier à] LT", + sameElse: "L" + }, + relativeTime: { + future: "dans %s", + past: "il y a %s", + s: "quelques secondes", + ss: "%d secondes", + m: "une minute", + mm: "%d minutes", + h: "une heure", + hh: "%d heures", + d: "un jour", + dd: "%d jours", + w: "une semaine", + ww: "%d semaines", + M: "un mois", + MM: "%d mois", + y: "un an", + yy: "%d ans" + }, + dayOfMonthOrdinalParse: /\d{1,2}(er|)/, + ordinal: function(e, t) { + switch (t) { + case "D": + return e + (1 === e ? "er" : ""); + default: + return e + (1 === e ? "er" : "e"); + case "w": + case "W": + return e + (1 === e ? "re" : "e") + } + }, + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 2348: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("gl", { + months: "xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro".split("_"), + monthsShort: "xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.".split("_"), + monthsParseExact: !0, + weekdays: "domingo_luns_martes_mércores_xoves_venres_sábado".split("_"), + weekdaysShort: "dom._lun._mar._mér._xov._ven._sáb.".split("_"), + weekdaysMin: "do_lu_ma_mé_xo_ve_sá".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD/MM/YYYY", + LL: "D [de] MMMM [de] YYYY", + LLL: "D [de] MMMM [de] YYYY H:mm", + LLLL: "dddd, D [de] MMMM [de] YYYY H:mm" + }, + calendar: { + sameDay: function() { + return "[hoxe " + (1 !== this.hours() ? "ás" : "á") + "] LT" }, - relativeTime: { - future: "за %s", - past: "%s тому", - s: "декілька секунд", - ss: t, - m: t, - mm: t, - h: "годину", - hh: t, - d: "день", - dd: t, - M: "місяць", - MM: t, - y: "рік", - yy: t + nextDay: function() { + return "[mañá " + (1 !== this.hours() ? "ás" : "á") + "] LT" }, - meridiemParse: /ночі|ранку|дня|вечора/, - isPM: function(e) { - return /^(дня|вечора)$/.test(e) + nextWeek: function() { + return "dddd [" + (1 !== this.hours() ? "ás" : "a") + "] LT" }, - meridiem: function(e, t, n) { - return e < 4 ? "ночі" : e < 12 ? "ранку" : e < 17 ? "дня" : "вечора" + lastDay: function() { + return "[onte " + (1 !== this.hours() ? "á" : "a") + "] LT" }, - dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, - ordinal: function(e, t) { - switch (t) { - case "M": - case "d": - case "DDD": - case "w": - case "W": - return e + "-й"; - case "D": - return e + "-го"; - default: - return e - } + lastWeek: function() { + return "[o] dddd [pasado " + (1 !== this.hours() ? "ás" : "a") + "] LT" }, - week: { - dow: 1, - doy: 7 + sameElse: "L" + }, + relativeTime: { + future: function(e) { + return 0 === e.indexOf("un") ? "n" + e : "en " + e + }, + past: "hai %s", + s: "uns segundos", + ss: "%d segundos", + m: "un minuto", + mm: "%d minutos", + h: "unha hora", + hh: "%d horas", + d: "un día", + dd: "%d días", + M: "un mes", + MM: "%d meses", + y: "un ano", + yy: "%d anos" + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: "%dº", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 2844: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("he", { + months: "ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"), + monthsShort: "ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"), + weekdays: "ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"), + weekdaysShort: "א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"), + weekdaysMin: "א_ב_ג_ד_ה_ו_ש".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D [ב]MMMM YYYY", + LLL: "D [ב]MMMM YYYY HH:mm", + LLLL: "dddd, D [ב]MMMM YYYY HH:mm", + l: "D/M/YYYY", + ll: "D MMM YYYY", + lll: "D MMM YYYY HH:mm", + llll: "ddd, D MMM YYYY HH:mm" + }, + calendar: { + sameDay: "[היום ב־]LT", + nextDay: "[מחר ב־]LT", + nextWeek: "dddd [בשעה] LT", + lastDay: "[אתמול ב־]LT", + lastWeek: "[ביום] dddd [האחרון בשעה] LT", + sameElse: "L" + }, + relativeTime: { + future: "בעוד %s", + past: "לפני %s", + s: "מספר שניות", + ss: "%d שניות", + m: "דקה", + mm: "%d דקות", + h: "שעה", + hh: function(e) { + return 2 === e ? "שעתיים" : e + " שעות" + }, + d: "יום", + dd: function(e) { + return 2 === e ? "יומיים" : e + " ימים" + }, + M: "חודש", + MM: function(e) { + return 2 === e ? "חודשיים" : e + " חודשים" + }, + y: "שנה", + yy: function(e) { + return 2 === e ? "שנתיים" : e % 10 == 0 && 10 !== e ? e + " שנה" : e + " שנים" } - }) - }(n(2083)) - }, 8858: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("vi", { - months: "tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"), - monthsShort: "Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"), - monthsParseExact: !0, - weekdays: "chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"), - weekdaysShort: "CN_T2_T3_T4_T5_T6_T7".split("_"), - weekdaysMin: "CN_T2_T3_T4_T5_T6_T7".split("_"), - weekdaysParseExact: !0, - meridiemParse: /sa|ch/i, - isPM: function(e) { - return /^ch$/i.test(e) + }, + meridiemParse: /אחה"צ|לפנה"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i, + isPM: function(e) { + return /^(אחה"צ|אחרי הצהריים|בערב)$/.test(e) + }, + meridiem: function(e, t, n) { + return e < 5 ? "לפנות בוקר" : e < 10 ? "בבוקר" : e < 12 ? n ? 'לפנה"צ' : "לפני הצהריים" : e < 18 ? n ? 'אחה"צ' : "אחרי הצהריים" : "בערב" + } + }) + }(n(2083)) +}, 4590: function(e, t, n) { + ! function(e) { + "use strict"; + + function t(e, t, n) { + var a = e + " "; + switch (n) { + case "ss": + return a + (1 === e ? "sekunda" : 2 === e || 3 === e || 4 === e ? "sekunde" : "sekundi"); + case "m": + return t ? "jedna minuta" : "jedne minute"; + case "mm": + return a + (1 === e ? "minuta" : 2 === e || 3 === e || 4 === e ? "minute" : "minuta"); + case "h": + return t ? "jedan sat" : "jednog sata"; + case "hh": + return a + (1 === e ? "sat" : 2 === e || 3 === e || 4 === e ? "sata" : "sati"); + case "dd": + return a + (1 === e ? "dan" : "dana"); + case "MM": + return a + (1 === e ? "mjesec" : 2 === e || 3 === e || 4 === e ? "mjeseca" : "mjeseci"); + case "yy": + return a + (1 === e ? "godina" : 2 === e || 3 === e || 4 === e ? "godine" : "godina") + } + } + e.defineLocale("hr", { + months: { + format: "siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca".split("_"), + standalone: "siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_") + }, + monthsShort: "sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"), + monthsParseExact: !0, + weekdays: "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"), + weekdaysShort: "ned._pon._uto._sri._čet._pet._sub.".split("_"), + weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD.MM.YYYY", + LL: "Do MMMM YYYY", + LLL: "Do MMMM YYYY H:mm", + LLLL: "dddd, Do MMMM YYYY H:mm" + }, + calendar: { + sameDay: "[danas u] LT", + nextDay: "[sutra u] LT", + nextWeek: function() { + switch (this.day()) { + case 0: + return "[u] [nedjelju] [u] LT"; + case 3: + return "[u] [srijedu] [u] LT"; + case 6: + return "[u] [subotu] [u] LT"; + case 1: + case 2: + case 4: + case 5: + return "[u] dddd [u] LT" + } }, - meridiem: function(e, t, n) { - return e < 12 ? n ? "sa" : "SA" : n ? "ch" : "CH" + lastDay: "[jučer u] LT", + lastWeek: function() { + switch (this.day()) { + case 0: + return "[prošlu] [nedjelju] [u] LT"; + case 3: + return "[prošlu] [srijedu] [u] LT"; + case 6: + return "[prošle] [subote] [u] LT"; + case 1: + case 2: + case 4: + case 5: + return "[prošli] dddd [u] LT" + } }, - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "DD/MM/YYYY", - LL: "D MMMM [năm] YYYY", - LLL: "D MMMM [năm] YYYY HH:mm", - LLLL: "dddd, D MMMM [năm] YYYY HH:mm", - l: "DD/M/YYYY", - ll: "D MMM YYYY", - lll: "D MMM YYYY HH:mm", - llll: "ddd, D MMM YYYY HH:mm" + sameElse: "L" + }, + relativeTime: { + future: "za %s", + past: "prije %s", + s: "par sekundi", + ss: t, + m: t, + mm: t, + h: t, + hh: t, + d: "dan", + dd: t, + M: "mjesec", + MM: t, + y: "godinu", + yy: t + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 7 + } + }) + }(n(2083)) +}, 6941: function(e, t, n) { + ! function(e) { + "use strict"; + var t = "vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton".split(" "); + + function n(e, t, n, a) { + var r = e; + switch (n) { + case "s": + return a || t ? "néhány másodperc" : "néhány másodperce"; + case "ss": + return r + (a || t) ? " másodperc" : " másodperce"; + case "m": + return "egy" + (a || t ? " perc" : " perce"); + case "mm": + return r + (a || t ? " perc" : " perce"); + case "h": + return "egy" + (a || t ? " óra" : " órája"); + case "hh": + return r + (a || t ? " óra" : " órája"); + case "d": + return "egy" + (a || t ? " nap" : " napja"); + case "dd": + return r + (a || t ? " nap" : " napja"); + case "M": + return "egy" + (a || t ? " hónap" : " hónapja"); + case "MM": + return r + (a || t ? " hónap" : " hónapja"); + case "y": + return "egy" + (a || t ? " év" : " éve"); + case "yy": + return r + (a || t ? " év" : " éve") + } + return "" + } + + function a(e) { + return (e ? "" : "[múlt] ") + "[" + t[this.day()] + "] LT[-kor]" + } + e.defineLocale("hu", { + months: "január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"), + monthsShort: "jan._feb._márc._ápr._máj._jún._júl._aug._szept._okt._nov._dec.".split("_"), + monthsParseExact: !0, + weekdays: "vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"), + weekdaysShort: "vas_hét_kedd_sze_csüt_pén_szo".split("_"), + weekdaysMin: "v_h_k_sze_cs_p_szo".split("_"), + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "YYYY.MM.DD.", + LL: "YYYY. MMMM D.", + LLL: "YYYY. MMMM D. H:mm", + LLLL: "YYYY. MMMM D., dddd H:mm" + }, + meridiemParse: /de|du/i, + isPM: function(e) { + return "u" === e.charAt(1).toLowerCase() + }, + meridiem: function(e, t, n) { + return e < 12 ? !0 === n ? "de" : "DE" : !0 === n ? "du" : "DU" + }, + calendar: { + sameDay: "[ma] LT[-kor]", + nextDay: "[holnap] LT[-kor]", + nextWeek: function() { + return a.call(this, !0) }, - calendar: { - sameDay: "[Hôm nay lúc] LT", - nextDay: "[Ngày mai lúc] LT", - nextWeek: "dddd [tuần tới lúc] LT", - lastDay: "[Hôm qua lúc] LT", - lastWeek: "dddd [tuần trước lúc] LT", - sameElse: "L" + lastDay: "[tegnap] LT[-kor]", + lastWeek: function() { + return a.call(this, !1) }, - relativeTime: { - future: "%s tới", - past: "%s trước", - s: "vài giây", - ss: "%d giây", - m: "một phút", - mm: "%d phút", - h: "một giờ", - hh: "%d giờ", - d: "một ngày", - dd: "%d ngày", - w: "một tuần", - ww: "%d tuần", - M: "một tháng", - MM: "%d tháng", - y: "một năm", - yy: "%d năm" + sameElse: "L" + }, + relativeTime: { + future: "%s múlva", + past: "%s", + s: n, + ss: n, + m: n, + mm: n, + h: n, + hh: n, + d: n, + dd: n, + M: n, + MM: n, + y: n, + yy: n + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 1638: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("hy-am", { + months: { + format: "հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի".split("_"), + standalone: "հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր".split("_") + }, + monthsShort: "հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ".split("_"), + weekdays: "կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ".split("_"), + weekdaysShort: "կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"), + weekdaysMin: "կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY", + LL: "D MMMM YYYY թ.", + LLL: "D MMMM YYYY թ., HH:mm", + LLLL: "dddd, D MMMM YYYY թ., HH:mm" + }, + calendar: { + sameDay: "[այսօր] LT", + nextDay: "[վաղը] LT", + lastDay: "[երեկ] LT", + nextWeek: function() { + return "dddd [օրը ժամը] LT" }, - dayOfMonthOrdinalParse: /\d{1,2}/, - ordinal: function(e) { - return e + lastWeek: function() { + return "[անցած] dddd [օրը ժամը] LT" }, - week: { - dow: 1, - doy: 4 + sameElse: "L" + }, + relativeTime: { + future: "%s հետո", + past: "%s առաջ", + s: "մի քանի վայրկյան", + ss: "%d վայրկյան", + m: "րոպե", + mm: "%d րոպե", + h: "ժամ", + hh: "%d ժամ", + d: "օր", + dd: "%d օր", + M: "ամիս", + MM: "%d ամիս", + y: "տարի", + yy: "%d տարի" + }, + meridiemParse: /գիշերվա|առավոտվա|ցերեկվա|երեկոյան/, + isPM: function(e) { + return /^(ցերեկվա|երեկոյան)$/.test(e) + }, + meridiem: function(e) { + return e < 4 ? "գիշերվա" : e < 12 ? "առավոտվա" : e < 17 ? "ցերեկվա" : "երեկոյան" + }, + dayOfMonthOrdinalParse: /\d{1,2}|\d{1,2}-(ին|րդ)/, + ordinal: function(e, t) { + switch (t) { + case "DDD": + case "w": + case "W": + case "DDDo": + return 1 === e ? e + "-ին" : e + "-րդ"; + default: + return e } - }) - }(n(2083)) - }, 670: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("zh-cn", { - months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), - monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), - weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), - weekdaysShort: "周日_周一_周二_周三_周四_周五_周六".split("_"), - weekdaysMin: "日_一_二_三_四_五_六".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY/MM/DD", - LL: "YYYY年M月D日", - LLL: "YYYY年M月D日Ah点mm分", - LLLL: "YYYY年M月D日ddddAh点mm分", - l: "YYYY/M/D", - ll: "YYYY年M月D日", - lll: "YYYY年M月D日 HH:mm", - llll: "YYYY年M月D日dddd HH:mm" - }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function(e, t) { - return 12 === e && (e = 0), "凌晨" === t || "早上" === t || "上午" === t ? e : "下午" === t || "晚上" === t ? e + 12 : e >= 11 ? e : e + 12 - }, - meridiem: function(e, t, n) { - var a = 100 * e + t; - return a < 600 ? "凌晨" : a < 900 ? "早上" : a < 1130 ? "上午" : a < 1230 ? "中午" : a < 1800 ? "下午" : "晚上" - }, - calendar: { - sameDay: "[今天]LT", - nextDay: "[明天]LT", - nextWeek: function(e) { - return e.week() !== this.week() ? "[下]dddLT" : "[本]dddLT" - }, - lastDay: "[昨天]LT", - lastWeek: function(e) { - return this.week() !== e.week() ? "[上]dddLT" : "[本]dddLT" - }, - sameElse: "L" - }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, - ordinal: function(e, t) { - switch (t) { - case "d": - case "D": - case "DDD": - return e + "日"; - case "M": - return e + "月"; - case "w": - case "W": - return e + "周"; - default: - return e - } + }, + week: { + dow: 1, + doy: 7 + } + }) + }(n(2083)) +}, 5651: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("id", { + months: "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"), + monthsShort: "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des".split("_"), + weekdays: "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"), + weekdaysShort: "Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"), + weekdaysMin: "Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"), + longDateFormat: { + LT: "HH.mm", + LTS: "HH.mm.ss", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY [pukul] HH.mm", + LLLL: "dddd, D MMMM YYYY [pukul] HH.mm" + }, + meridiemParse: /pagi|siang|sore|malam/, + meridiemHour: function(e, t) { + return 12 === e && (e = 0), "pagi" === t ? e : "siang" === t ? e >= 11 ? e : e + 12 : "sore" === t || "malam" === t ? e + 12 : void 0 + }, + meridiem: function(e, t, n) { + return e < 11 ? "pagi" : e < 15 ? "siang" : e < 19 ? "sore" : "malam" + }, + calendar: { + sameDay: "[Hari ini pukul] LT", + nextDay: "[Besok pukul] LT", + nextWeek: "dddd [pukul] LT", + lastDay: "[Kemarin pukul] LT", + lastWeek: "dddd [lalu pukul] LT", + sameElse: "L" + }, + relativeTime: { + future: "dalam %s", + past: "%s yang lalu", + s: "beberapa detik", + ss: "%d detik", + m: "semenit", + mm: "%d menit", + h: "sejam", + hh: "%d jam", + d: "sehari", + dd: "%d hari", + M: "sebulan", + MM: "%d bulan", + y: "setahun", + yy: "%d tahun" + }, + week: { + dow: 0, + doy: 6 + } + }) + }(n(2083)) +}, 2821: function(e, t, n) { + ! function(e) { + "use strict"; + + function t(e) { + return e % 100 == 11 || e % 10 != 1 + } + + function n(e, n, a, r) { + var i = e + " "; + switch (a) { + case "s": + return n || r ? "nokkrar sekúndur" : "nokkrum sekúndum"; + case "ss": + return t(e) ? i + (n || r ? "sekúndur" : "sekúndum") : i + "sekúnda"; + case "m": + return n ? "mínúta" : "mínútu"; + case "mm": + return t(e) ? i + (n || r ? "mínútur" : "mínútum") : n ? i + "mínúta" : i + "mínútu"; + case "hh": + return t(e) ? i + (n || r ? "klukkustundir" : "klukkustundum") : i + "klukkustund"; + case "d": + return n ? "dagur" : r ? "dag" : "degi"; + case "dd": + return t(e) ? n ? i + "dagar" : i + (r ? "daga" : "dögum") : n ? i + "dagur" : i + (r ? "dag" : "degi"); + case "M": + return n ? "mánuður" : r ? "mánuð" : "mánuði"; + case "MM": + return t(e) ? n ? i + "mánuðir" : i + (r ? "mánuði" : "mánuðum") : n ? i + "mánuður" : i + (r ? "mánuð" : "mánuði"); + case "y": + return n || r ? "ár" : "ári"; + case "yy": + return t(e) ? i + (n || r ? "ár" : "árum") : i + (n || r ? "ár" : "ári") + } + } + e.defineLocale("is", { + months: "janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"), + monthsShort: "jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"), + weekdays: "sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"), + weekdaysShort: "sun_mán_þri_mið_fim_fös_lau".split("_"), + weekdaysMin: "Su_Má_Þr_Mi_Fi_Fö_La".split("_"), + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD.MM.YYYY", + LL: "D. MMMM YYYY", + LLL: "D. MMMM YYYY [kl.] H:mm", + LLLL: "dddd, D. MMMM YYYY [kl.] H:mm" + }, + calendar: { + sameDay: "[í dag kl.] LT", + nextDay: "[á morgun kl.] LT", + nextWeek: "dddd [kl.] LT", + lastDay: "[í gær kl.] LT", + lastWeek: "[síðasta] dddd [kl.] LT", + sameElse: "L" + }, + relativeTime: { + future: "eftir %s", + past: "fyrir %s síðan", + s: n, + ss: n, + m: n, + mm: n, + h: "klukkustund", + hh: n, + d: n, + dd: n, + M: n, + MM: n, + y: n, + yy: n + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 7974: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("it", { + months: "gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"), + monthsShort: "gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"), + weekdays: "domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato".split("_"), + weekdaysShort: "dom_lun_mar_mer_gio_ven_sab".split("_"), + weekdaysMin: "do_lu_ma_me_gi_ve_sa".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd D MMMM YYYY HH:mm" + }, + calendar: { + sameDay: function() { + return "[Oggi a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" }, - relativeTime: { - future: "%s后", - past: "%s前", - s: "几秒", - ss: "%d 秒", - m: "1 分钟", - mm: "%d 分钟", - h: "1 小时", - hh: "%d 小时", - d: "1 天", - dd: "%d 天", - w: "1 周", - ww: "%d 周", - M: "1 个月", - MM: "%d 个月", - y: "1 年", - yy: "%d 年" + nextDay: function() { + return "[Domani a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" }, - week: { - dow: 1, - doy: 4 - } - }) - }(n(2083)) - }, 3520: function(e, t, n) { - ! function(e) { - "use strict"; - e.defineLocale("zh-tw", { - months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), - monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), - weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), - weekdaysShort: "週日_週一_週二_週三_週四_週五_週六".split("_"), - weekdaysMin: "日_一_二_三_四_五_六".split("_"), - longDateFormat: { - LT: "HH:mm", - LTS: "HH:mm:ss", - L: "YYYY/MM/DD", - LL: "YYYY年M月D日", - LLL: "YYYY年M月D日 HH:mm", - LLLL: "YYYY年M月D日dddd HH:mm", - l: "YYYY/M/D", - ll: "YYYY年M月D日", - lll: "YYYY年M月D日 HH:mm", - llll: "YYYY年M月D日dddd HH:mm" + nextWeek: function() { + return "dddd [a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" }, - meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, - meridiemHour: function(e, t) { - return 12 === e && (e = 0), "凌晨" === t || "早上" === t || "上午" === t ? e : "中午" === t ? e >= 11 ? e : e + 12 : "下午" === t || "晚上" === t ? e + 12 : void 0 + lastDay: function() { + return "[Ieri a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" }, - meridiem: function(e, t, n) { - var a = 100 * e + t; - return a < 600 ? "凌晨" : a < 900 ? "早上" : a < 1130 ? "上午" : a < 1230 ? "中午" : a < 1800 ? "下午" : "晚上" + lastWeek: function() { + return 0 === this.day() ? "[La scorsa] dddd [a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" : "[Lo scorso] dddd [a" + (this.hours() > 1 ? "lle " : 0 === this.hours() ? " " : "ll'") + "]LT" }, - calendar: { - sameDay: "[今天] LT", - nextDay: "[明天] LT", - nextWeek: "[下]dddd LT", - lastDay: "[昨天] LT", - lastWeek: "[上]dddd LT", - sameElse: "L" + sameElse: "L" + }, + relativeTime: { + future: "tra %s", + past: "%s fa", + s: "alcuni secondi", + ss: "%d secondi", + m: "un minuto", + mm: "%d minuti", + h: "un'ora", + hh: "%d ore", + d: "un giorno", + dd: "%d giorni", + w: "una settimana", + ww: "%d settimane", + M: "un mese", + MM: "%d mesi", + y: "un anno", + yy: "%d anni" + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: "%dº", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 8806: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("ja", { + eras: [{ + since: "2019-05-01", + offset: 1, + name: "令和", + narrow: "㋿", + abbr: "R" + }, { + since: "1989-01-08", + until: "2019-04-30", + offset: 1, + name: "平成", + narrow: "㍻", + abbr: "H" + }, { + since: "1926-12-25", + until: "1989-01-07", + offset: 1, + name: "昭和", + narrow: "㍼", + abbr: "S" + }, { + since: "1912-07-30", + until: "1926-12-24", + offset: 1, + name: "大正", + narrow: "㍽", + abbr: "T" + }, { + since: "1873-01-01", + until: "1912-07-29", + offset: 6, + name: "明治", + narrow: "㍾", + abbr: "M" + }, { + since: "0001-01-01", + until: "1873-12-31", + offset: 1, + name: "西暦", + narrow: "AD", + abbr: "AD" + }, { + since: "0000-12-31", + until: -1 / 0, + offset: 1, + name: "紀元前", + narrow: "BC", + abbr: "BC" + }], + eraYearOrdinalRegex: /(元|\d+)年/, + eraYearOrdinalParse: function(e, t) { + return "元" === t[1] ? 1 : parseInt(t[1] || e, 10) + }, + months: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), + monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), + weekdays: "日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"), + weekdaysShort: "日_月_火_水_木_金_土".split("_"), + weekdaysMin: "日_月_火_水_木_金_土".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY/MM/DD", + LL: "YYYY年M月D日", + LLL: "YYYY年M月D日 HH:mm", + LLLL: "YYYY年M月D日 dddd HH:mm", + l: "YYYY/MM/DD", + ll: "YYYY年M月D日", + lll: "YYYY年M月D日 HH:mm", + llll: "YYYY年M月D日(ddd) HH:mm" + }, + meridiemParse: /午前|午後/i, + isPM: function(e) { + return "午後" === e + }, + meridiem: function(e, t, n) { + return e < 12 ? "午前" : "午後" + }, + calendar: { + sameDay: "[今日] LT", + nextDay: "[明日] LT", + nextWeek: function(e) { + return e.week() !== this.week() ? "[来週]dddd LT" : "dddd LT" }, - dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, - ordinal: function(e, t) { - switch (t) { - case "d": - case "D": - case "DDD": - return e + "日"; - case "M": - return e + "月"; - case "w": - case "W": - return e + "週"; - default: - return e - } + lastDay: "[昨日] LT", + lastWeek: function(e) { + return this.week() !== e.week() ? "[先週]dddd LT" : "dddd LT" }, - relativeTime: { - future: "%s後", - past: "%s前", - s: "幾秒", - ss: "%d 秒", - m: "1 分鐘", - mm: "%d 分鐘", - h: "1 小時", - hh: "%d 小時", - d: "1 天", - dd: "%d 天", - M: "1 個月", - MM: "%d 個月", - y: "1 年", - yy: "%d 年" + sameElse: "L" + }, + dayOfMonthOrdinalParse: /\d{1,2}日/, + ordinal: function(e, t) { + switch (t) { + case "y": + return 1 === e ? "元年" : e + "年"; + case "d": + case "D": + case "DDD": + return e + "日"; + default: + return e } - }) - }(n(2083)) - }, 2083: function(e, t, n) { - (e = n.nmd(e)).exports = function() { - "use strict"; - var t, n; + }, + relativeTime: { + future: "%s後", + past: "%s前", + s: "数秒", + ss: "%d秒", + m: "1分", + mm: "%d分", + h: "1時間", + hh: "%d時間", + d: "1日", + dd: "%d日", + M: "1ヶ月", + MM: "%dヶ月", + y: "1年", + yy: "%d年" + } + }) + }(n(2083)) +}, 794: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("ko", { + months: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"), + monthsShort: "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"), + weekdays: "일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"), + weekdaysShort: "일_월_화_수_목_금_토".split("_"), + weekdaysMin: "일_월_화_수_목_금_토".split("_"), + longDateFormat: { + LT: "A h:mm", + LTS: "A h:mm:ss", + L: "YYYY.MM.DD.", + LL: "YYYY년 MMMM D일", + LLL: "YYYY년 MMMM D일 A h:mm", + LLLL: "YYYY년 MMMM D일 dddd A h:mm", + l: "YYYY.MM.DD.", + ll: "YYYY년 MMMM D일", + lll: "YYYY년 MMMM D일 A h:mm", + llll: "YYYY년 MMMM D일 dddd A h:mm" + }, + calendar: { + sameDay: "오늘 LT", + nextDay: "내일 LT", + nextWeek: "dddd LT", + lastDay: "어제 LT", + lastWeek: "지난주 dddd LT", + sameElse: "L" + }, + relativeTime: { + future: "%s 후", + past: "%s 전", + s: "몇 초", + ss: "%d초", + m: "1분", + mm: "%d분", + h: "한 시간", + hh: "%d시간", + d: "하루", + dd: "%d일", + M: "한 달", + MM: "%d달", + y: "일 년", + yy: "%d년" + }, + dayOfMonthOrdinalParse: /\d{1,2}(일|월|주)/, + ordinal: function(e, t) { + switch (t) { + case "d": + case "D": + case "DDD": + return e + "일"; + case "M": + return e + "월"; + case "w": + case "W": + return e + "주"; + default: + return e + } + }, + meridiemParse: /오전|오후/, + isPM: function(e) { + return "오후" === e + }, + meridiem: function(e, t, n) { + return e < 12 ? "오전" : "오후" + } + }) + }(n(2083)) +}, 8004: function(e, t, n) { + ! function(e) { + "use strict"; + var t = { + ss: "sekundė_sekundžių_sekundes", + m: "minutė_minutės_minutę", + mm: "minutės_minučių_minutes", + h: "valanda_valandos_valandą", + hh: "valandos_valandų_valandas", + d: "diena_dienos_dieną", + dd: "dienos_dienų_dienas", + M: "mėnuo_mėnesio_mėnesį", + MM: "mėnesiai_mėnesių_mėnesius", + y: "metai_metų_metus", + yy: "metai_metų_metus" + }; - function a() { - return t.apply(null, arguments) + function n(e, t, n, a) { + return t ? r(n)[0] : a ? r(n)[1] : r(n)[2] + } + + function a(e) { + return e % 10 == 0 || e > 10 && e < 20 + } + + function r(e) { + return t[e].split("_") + } + + function i(e, t, i, o) { + var s = e + " "; + return 1 === e ? s + n(0, t, i[0], o) : t ? s + (a(e) ? r(i)[1] : r(i)[0]) : o ? s + r(i)[1] : s + (a(e) ? r(i)[1] : r(i)[2]) + } + e.defineLocale("lt", { + months: { + format: "sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"), + standalone: "sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis".split("_"), + isFormat: /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?|MMMM?(\[[^\[\]]*\]|\s)+D[oD]?/ + }, + monthsShort: "sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"), + weekdays: { + format: "sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį".split("_"), + standalone: "sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_"), + isFormat: /dddd HH:mm/ + }, + weekdaysShort: "Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"), + weekdaysMin: "S_P_A_T_K_Pn_Š".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY-MM-DD", + LL: "YYYY [m.] MMMM D [d.]", + LLL: "YYYY [m.] MMMM D [d.], HH:mm [val.]", + LLLL: "YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]", + l: "YYYY-MM-DD", + ll: "YYYY [m.] MMMM D [d.]", + lll: "YYYY [m.] MMMM D [d.], HH:mm [val.]", + llll: "YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]" + }, + calendar: { + sameDay: "[Šiandien] LT", + nextDay: "[Rytoj] LT", + nextWeek: "dddd LT", + lastDay: "[Vakar] LT", + lastWeek: "[Praėjusį] dddd LT", + sameElse: "L" + }, + relativeTime: { + future: "po %s", + past: "prieš %s", + s: function(e, t, n, a) { + return t ? "kelios sekundės" : a ? "kelių sekundžių" : "kelias sekundes" + }, + ss: i, + m: n, + mm: i, + h: n, + hh: i, + d: n, + dd: i, + M: n, + MM: i, + y: n, + yy: i + }, + dayOfMonthOrdinalParse: /\d{1,2}-oji/, + ordinal: function(e) { + return e + "-oji" + }, + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 9297: function(e, t, n) { + ! function(e) { + "use strict"; + var t = { + ss: "sekundes_sekundēm_sekunde_sekundes".split("_"), + m: "minūtes_minūtēm_minūte_minūtes".split("_"), + mm: "minūtes_minūtēm_minūte_minūtes".split("_"), + h: "stundas_stundām_stunda_stundas".split("_"), + hh: "stundas_stundām_stunda_stundas".split("_"), + d: "dienas_dienām_diena_dienas".split("_"), + dd: "dienas_dienām_diena_dienas".split("_"), + M: "mēneša_mēnešiem_mēnesis_mēneši".split("_"), + MM: "mēneša_mēnešiem_mēnesis_mēneši".split("_"), + y: "gada_gadiem_gads_gadi".split("_"), + yy: "gada_gadiem_gads_gadi".split("_") + }; + + function n(e, t, n) { + return n ? t % 10 == 1 && t % 100 != 11 ? e[2] : e[3] : t % 10 == 1 && t % 100 != 11 ? e[0] : e[1] + } + + function a(e, a, r) { + return e + " " + n(t[r], e, a) + } + + function r(e, a, r) { + return n(t[r], e, a) + } + e.defineLocale("lv", { + months: "janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"), + monthsShort: "jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"), + weekdays: "svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"), + weekdaysShort: "Sv_P_O_T_C_Pk_S".split("_"), + weekdaysMin: "Sv_P_O_T_C_Pk_S".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY.", + LL: "YYYY. [gada] D. MMMM", + LLL: "YYYY. [gada] D. MMMM, HH:mm", + LLLL: "YYYY. [gada] D. MMMM, dddd, HH:mm" + }, + calendar: { + sameDay: "[Šodien pulksten] LT", + nextDay: "[Rīt pulksten] LT", + nextWeek: "dddd [pulksten] LT", + lastDay: "[Vakar pulksten] LT", + lastWeek: "[Pagājušā] dddd [pulksten] LT", + sameElse: "L" + }, + relativeTime: { + future: "pēc %s", + past: "pirms %s", + s: function(e, t) { + return t ? "dažas sekundes" : "dažām sekundēm" + }, + ss: a, + m: r, + mm: a, + h: r, + hh: a, + d: r, + dd: a, + M: r, + MM: a, + y: r, + yy: a + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 + } + }) + }(n(2083)) +}, 3998: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("ml", { + months: "ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"), + monthsShort: "ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"), + monthsParseExact: !0, + weekdays: "ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"), + weekdaysShort: "ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"), + weekdaysMin: "ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ".split("_"), + longDateFormat: { + LT: "A h:mm -നു", + LTS: "A h:mm:ss -നു", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY, A h:mm -നു", + LLLL: "dddd, D MMMM YYYY, A h:mm -നു" + }, + calendar: { + sameDay: "[ഇന്ന്] LT", + nextDay: "[നാളെ] LT", + nextWeek: "dddd, LT", + lastDay: "[ഇന്നലെ] LT", + lastWeek: "[കഴിഞ്ഞ] dddd, LT", + sameElse: "L" + }, + relativeTime: { + future: "%s കഴിഞ്ഞ്", + past: "%s മുൻപ്", + s: "അൽപ നിമിഷങ്ങൾ", + ss: "%d സെക്കൻഡ്", + m: "ഒരു മിനിറ്റ്", + mm: "%d മിനിറ്റ്", + h: "ഒരു മണിക്കൂർ", + hh: "%d മണിക്കൂർ", + d: "ഒരു ദിവസം", + dd: "%d ദിവസം", + M: "ഒരു മാസം", + MM: "%d മാസം", + y: "ഒരു വർഷം", + yy: "%d വർഷം" + }, + meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i, + meridiemHour: function(e, t) { + return 12 === e && (e = 0), "രാത്രി" === t && e >= 4 || "ഉച്ച കഴിഞ്ഞ്" === t || "വൈകുന്നേരം" === t ? e + 12 : e + }, + meridiem: function(e, t, n) { + return e < 4 ? "രാത്രി" : e < 12 ? "രാവിലെ" : e < 17 ? "ഉച്ച കഴിഞ്ഞ്" : e < 20 ? "വൈകുന്നേരം" : "രാത്രി" + } + }) + }(n(2083)) +}, 4989: function(e, t, n) { + ! function(e) { + "use strict"; + + function t(e, t, n, a) { + switch (n) { + case "s": + return t ? "хэдхэн секунд" : "хэдхэн секундын"; + case "ss": + return e + (t ? " секунд" : " секундын"); + case "m": + case "mm": + return e + (t ? " минут" : " минутын"); + case "h": + case "hh": + return e + (t ? " цаг" : " цагийн"); + case "d": + case "dd": + return e + (t ? " өдөр" : " өдрийн"); + case "M": + case "MM": + return e + (t ? " сар" : " сарын"); + case "y": + case "yy": + return e + (t ? " жил" : " жилийн"); + default: + return e } + } + e.defineLocale("mn", { + months: "Нэгдүгээр сар_Хоёрдугаар сар_Гуравдугаар сар_Дөрөвдүгээр сар_Тавдугаар сар_Зургадугаар сар_Долдугаар сар_Наймдугаар сар_Есдүгээр сар_Аравдугаар сар_Арван нэгдүгээр сар_Арван хоёрдугаар сар".split("_"), + monthsShort: "1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар".split("_"), + monthsParseExact: !0, + weekdays: "Ням_Даваа_Мягмар_Лхагва_Пүрэв_Баасан_Бямба".split("_"), + weekdaysShort: "Ням_Дав_Мяг_Лха_Пүр_Баа_Бям".split("_"), + weekdaysMin: "Ня_Да_Мя_Лх_Пү_Ба_Бя".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY-MM-DD", + LL: "YYYY оны MMMMын D", + LLL: "YYYY оны MMMMын D HH:mm", + LLLL: "dddd, YYYY оны MMMMын D HH:mm" + }, + meridiemParse: /ҮӨ|ҮХ/i, + isPM: function(e) { + return "ҮХ" === e + }, + meridiem: function(e, t, n) { + return e < 12 ? "ҮӨ" : "ҮХ" + }, + calendar: { + sameDay: "[Өнөөдөр] LT", + nextDay: "[Маргааш] LT", + nextWeek: "[Ирэх] dddd LT", + lastDay: "[Өчигдөр] LT", + lastWeek: "[Өнгөрсөн] dddd LT", + sameElse: "L" + }, + relativeTime: { + future: "%s дараа", + past: "%s өмнө", + s: t, + ss: t, + m: t, + mm: t, + h: t, + hh: t, + d: t, + dd: t, + M: t, + MM: t, + y: t, + yy: t + }, + dayOfMonthOrdinalParse: /\d{1,2} өдөр/, + ordinal: function(e, t) { + switch (t) { + case "d": + case "D": + case "DDD": + return e + " өдөр"; + default: + return e + } + } + }) + }(n(2083)) +}, 7590: function(e, t, n) { + ! function(e) { + "use strict"; + var t = { + 1: "१", + 2: "२", + 3: "३", + 4: "४", + 5: "५", + 6: "६", + 7: "७", + 8: "८", + 9: "९", + 0: "०" + }, + n = { + "१": "1", + "२": "2", + "३": "3", + "४": "4", + "५": "5", + "६": "6", + "७": "7", + "८": "8", + "९": "9", + "०": "0" + }; - function r(e) { - return e instanceof Array || "[object Array]" === Object.prototype.toString.call(e) + function a(e, t, n, a) { + var r = ""; + if (t) switch (n) { + case "s": + r = "काही सेकंद"; + break; + case "ss": + r = "%d सेकंद"; + break; + case "m": + r = "एक मिनिट"; + break; + case "mm": + r = "%d मिनिटे"; + break; + case "h": + r = "एक तास"; + break; + case "hh": + r = "%d तास"; + break; + case "d": + r = "एक दिवस"; + break; + case "dd": + r = "%d दिवस"; + break; + case "M": + r = "एक महिना"; + break; + case "MM": + r = "%d महिने"; + break; + case "y": + r = "एक वर्ष"; + break; + case "yy": + r = "%d वर्षे" + } else switch (n) { + case "s": + r = "काही सेकंदां"; + break; + case "ss": + r = "%d सेकंदां"; + break; + case "m": + r = "एका मिनिटा"; + break; + case "mm": + r = "%d मिनिटां"; + break; + case "h": + r = "एका तासा"; + break; + case "hh": + r = "%d तासां"; + break; + case "d": + r = "एका दिवसा"; + break; + case "dd": + r = "%d दिवसां"; + break; + case "M": + r = "एका महिन्या"; + break; + case "MM": + r = "%d महिन्यां"; + break; + case "y": + r = "एका वर्षा"; + break; + case "yy": + r = "%d वर्षां" + } + return r.replace(/%d/i, e) + } + e.defineLocale("mr", { + months: "जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"), + monthsShort: "जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"), + monthsParseExact: !0, + weekdays: "रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"), + weekdaysShort: "रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"), + weekdaysMin: "र_सो_मं_बु_गु_शु_श".split("_"), + longDateFormat: { + LT: "A h:mm वाजता", + LTS: "A h:mm:ss वाजता", + L: "DD/MM/YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY, A h:mm वाजता", + LLLL: "dddd, D MMMM YYYY, A h:mm वाजता" + }, + calendar: { + sameDay: "[आज] LT", + nextDay: "[उद्या] LT", + nextWeek: "dddd, LT", + lastDay: "[काल] LT", + lastWeek: "[मागील] dddd, LT", + sameElse: "L" + }, + relativeTime: { + future: "%sमध्ये", + past: "%sपूर्वी", + s: a, + ss: a, + m: a, + mm: a, + h: a, + hh: a, + d: a, + dd: a, + M: a, + MM: a, + y: a, + yy: a + }, + preparse: function(e) { + return e.replace(/[१२३४५६७८९०]/g, (function(e) { + return n[e] + })) + }, + postformat: function(e) { + return e.replace(/\d/g, (function(e) { + return t[e] + })) + }, + meridiemParse: /पहाटे|सकाळी|दुपारी|सायंकाळी|रात्री/, + meridiemHour: function(e, t) { + return 12 === e && (e = 0), "पहाटे" === t || "सकाळी" === t ? e : "दुपारी" === t || "सायंकाळी" === t || "रात्री" === t ? e >= 12 ? e : e + 12 : void 0 + }, + meridiem: function(e, t, n) { + return e >= 0 && e < 6 ? "पहाटे" : e < 12 ? "सकाळी" : e < 17 ? "दुपारी" : e < 20 ? "सायंकाळी" : "रात्री" + }, + week: { + dow: 0, + doy: 6 } - - function i(e) { - return null != e && "[object Object]" === Object.prototype.toString.call(e) + }) + }(n(2083)) +}, 3895: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("nb", { + months: "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"), + monthsShort: "jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.".split("_"), + monthsParseExact: !0, + weekdays: "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"), + weekdaysShort: "sø._ma._ti._on._to._fr._lø.".split("_"), + weekdaysMin: "sø_ma_ti_on_to_fr_lø".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY", + LL: "D. MMMM YYYY", + LLL: "D. MMMM YYYY [kl.] HH:mm", + LLLL: "dddd D. MMMM YYYY [kl.] HH:mm" + }, + calendar: { + sameDay: "[i dag kl.] LT", + nextDay: "[i morgen kl.] LT", + nextWeek: "dddd [kl.] LT", + lastDay: "[i går kl.] LT", + lastWeek: "[forrige] dddd [kl.] LT", + sameElse: "L" + }, + relativeTime: { + future: "om %s", + past: "%s siden", + s: "noen sekunder", + ss: "%d sekunder", + m: "ett minutt", + mm: "%d minutter", + h: "en time", + hh: "%d timer", + d: "en dag", + dd: "%d dager", + w: "en uke", + ww: "%d uker", + M: "en måned", + MM: "%d måneder", + y: "ett år", + yy: "%d år" + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 } - - function o(e, t) { - return Object.prototype.hasOwnProperty.call(e, t) + }) + }(n(2083)) +}, 2009: function(e, t, n) { + ! function(e) { + "use strict"; + var t = "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"), + n = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"), + a = [/^jan/i, /^feb/i, /^maart|mrt.?$/i, /^apr/i, /^mei$/i, /^jun[i.]?$/i, /^jul[i.]?$/i, /^aug/i, /^sep/i, /^okt/i, /^nov/i, /^dec/i], + r = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\.?|feb\.?|mrt\.?|apr\.?|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i; + e.defineLocale("nl", { + months: "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"), + monthsShort: function(e, a) { + return e ? /-MMM-/.test(a) ? n[e.month()] : t[e.month()] : t + }, + monthsRegex: r, + monthsShortRegex: r, + monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i, + monthsShortStrictRegex: /^(jan\.?|feb\.?|mrt\.?|apr\.?|mei|ju[nl]\.?|aug\.?|sep\.?|okt\.?|nov\.?|dec\.?)/i, + monthsParse: a, + longMonthsParse: a, + shortMonthsParse: a, + weekdays: "zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"), + weekdaysShort: "zo._ma._di._wo._do._vr._za.".split("_"), + weekdaysMin: "zo_ma_di_wo_do_vr_za".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD-MM-YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd D MMMM YYYY HH:mm" + }, + calendar: { + sameDay: "[vandaag om] LT", + nextDay: "[morgen om] LT", + nextWeek: "dddd [om] LT", + lastDay: "[gisteren om] LT", + lastWeek: "[afgelopen] dddd [om] LT", + sameElse: "L" + }, + relativeTime: { + future: "over %s", + past: "%s geleden", + s: "een paar seconden", + ss: "%d seconden", + m: "één minuut", + mm: "%d minuten", + h: "één uur", + hh: "%d uur", + d: "één dag", + dd: "%d dagen", + w: "één week", + ww: "%d weken", + M: "één maand", + MM: "%d maanden", + y: "één jaar", + yy: "%d jaar" + }, + dayOfMonthOrdinalParse: /\d{1,2}(ste|de)/, + ordinal: function(e) { + return e + (1 === e || 8 === e || e >= 20 ? "ste" : "de") + }, + week: { + dow: 1, + doy: 4 } - - function s(e) { - if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(e).length; - var t; - for (t in e) - if (o(e, t)) return !1; - return !0 + }) + }(n(2083)) +}, 3800: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("oc-lnc", { + months: { + standalone: "genièr_febrièr_març_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre".split("_"), + format: "de genièr_de febrièr_de març_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre".split("_"), + isFormat: /D[oD]?(\s)+MMMM/ + }, + monthsShort: "gen._febr._març_abr._mai_junh_julh._ago._set._oct._nov._dec.".split("_"), + monthsParseExact: !0, + weekdays: "dimenge_diluns_dimars_dimècres_dijòus_divendres_dissabte".split("_"), + weekdaysShort: "dg._dl._dm._dc._dj._dv._ds.".split("_"), + weekdaysMin: "dg_dl_dm_dc_dj_dv_ds".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD/MM/YYYY", + LL: "D MMMM [de] YYYY", + ll: "D MMM YYYY", + LLL: "D MMMM [de] YYYY [a] H:mm", + lll: "D MMM YYYY, H:mm", + LLLL: "dddd D MMMM [de] YYYY [a] H:mm", + llll: "ddd D MMM YYYY, H:mm" + }, + calendar: { + sameDay: "[uèi a] LT", + nextDay: "[deman a] LT", + nextWeek: "dddd [a] LT", + lastDay: "[ièr a] LT", + lastWeek: "dddd [passat a] LT", + sameElse: "L" + }, + relativeTime: { + future: "d'aquí %s", + past: "fa %s", + s: "unas segondas", + ss: "%d segondas", + m: "una minuta", + mm: "%d minutas", + h: "una ora", + hh: "%d oras", + d: "un jorn", + dd: "%d jorns", + M: "un mes", + MM: "%d meses", + y: "un an", + yy: "%d ans" + }, + dayOfMonthOrdinalParse: /\d{1,2}(r|n|t|è|a)/, + ordinal: function(e, t) { + var n = 1 === e ? "r" : 2 === e ? "n" : 3 === e ? "r" : 4 === e ? "t" : "è"; + return "w" !== t && "W" !== t || (n = "a"), e + n + }, + week: { + dow: 1, + doy: 4 } + }) + }(n(2083)) +}, 5737: function(e, t, n) { + ! function(e) { + "use strict"; + var t = "styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"), + n = "stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_"), + a = [/^sty/i, /^lut/i, /^mar/i, /^kwi/i, /^maj/i, /^cze/i, /^lip/i, /^sie/i, /^wrz/i, /^paź/i, /^lis/i, /^gru/i]; - function l(e) { - return void 0 === e - } + function r(e) { + return e % 10 < 5 && e % 10 > 1 && ~~(e / 10) % 10 != 1 + } - function c(e) { - return "number" == typeof e || "[object Number]" === Object.prototype.toString.call(e) + function i(e, t, n) { + var a = e + " "; + switch (n) { + case "ss": + return a + (r(e) ? "sekundy" : "sekund"); + case "m": + return t ? "minuta" : "minutę"; + case "mm": + return a + (r(e) ? "minuty" : "minut"); + case "h": + return t ? "godzina" : "godzinę"; + case "hh": + return a + (r(e) ? "godziny" : "godzin"); + case "ww": + return a + (r(e) ? "tygodnie" : "tygodni"); + case "MM": + return a + (r(e) ? "miesiące" : "miesięcy"); + case "yy": + return a + (r(e) ? "lata" : "lat") + } + } + e.defineLocale("pl", { + months: function(e, a) { + return e ? /D MMMM/.test(a) ? n[e.month()] : t[e.month()] : t + }, + monthsShort: "sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"), + monthsParse: a, + longMonthsParse: a, + shortMonthsParse: a, + weekdays: "niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"), + weekdaysShort: "ndz_pon_wt_śr_czw_pt_sob".split("_"), + weekdaysMin: "Nd_Pn_Wt_Śr_Cz_Pt_So".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd, D MMMM YYYY HH:mm" + }, + calendar: { + sameDay: "[Dziś o] LT", + nextDay: "[Jutro o] LT", + nextWeek: function() { + switch (this.day()) { + case 0: + return "[W niedzielę o] LT"; + case 2: + return "[We wtorek o] LT"; + case 3: + return "[W środę o] LT"; + case 6: + return "[W sobotę o] LT"; + default: + return "[W] dddd [o] LT" + } + }, + lastDay: "[Wczoraj o] LT", + lastWeek: function() { + switch (this.day()) { + case 0: + return "[W zeszłą niedzielę o] LT"; + case 3: + return "[W zeszłą środę o] LT"; + case 6: + return "[W zeszłą sobotę o] LT"; + default: + return "[W zeszły] dddd [o] LT" + } + }, + sameElse: "L" + }, + relativeTime: { + future: "za %s", + past: "%s temu", + s: "kilka sekund", + ss: i, + m: i, + mm: i, + h: i, + hh: i, + d: "1 dzień", + dd: "%d dni", + w: "tydzień", + ww: i, + M: "miesiąc", + MM: i, + y: "rok", + yy: i + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 } - - function u(e) { - return e instanceof Date || "[object Date]" === Object.prototype.toString.call(e) + }) + }(n(2083)) +}, 665: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("pt-br", { + months: "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"), + monthsShort: "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"), + weekdays: "domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"), + weekdaysShort: "dom_seg_ter_qua_qui_sex_sáb".split("_"), + weekdaysMin: "do_2ª_3ª_4ª_5ª_6ª_sá".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D [de] MMMM [de] YYYY", + LLL: "D [de] MMMM [de] YYYY [às] HH:mm", + LLLL: "dddd, D [de] MMMM [de] YYYY [às] HH:mm" + }, + calendar: { + sameDay: "[Hoje às] LT", + nextDay: "[Amanhã às] LT", + nextWeek: "dddd [às] LT", + lastDay: "[Ontem às] LT", + lastWeek: function() { + return 0 === this.day() || 6 === this.day() ? "[Último] dddd [às] LT" : "[Última] dddd [às] LT" + }, + sameElse: "L" + }, + relativeTime: { + future: "em %s", + past: "há %s", + s: "poucos segundos", + ss: "%d segundos", + m: "um minuto", + mm: "%d minutos", + h: "uma hora", + hh: "%d horas", + d: "um dia", + dd: "%d dias", + M: "um mês", + MM: "%d meses", + y: "um ano", + yy: "%d anos" + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: "%dº", + invalidDate: "Data inválida" + }) + }(n(2083)) +}, 7170: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("pt", { + months: "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"), + monthsShort: "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"), + weekdays: "Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado".split("_"), + weekdaysShort: "Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"), + weekdaysMin: "Do_2ª_3ª_4ª_5ª_6ª_Sá".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D [de] MMMM [de] YYYY", + LLL: "D [de] MMMM [de] YYYY HH:mm", + LLLL: "dddd, D [de] MMMM [de] YYYY HH:mm" + }, + calendar: { + sameDay: "[Hoje às] LT", + nextDay: "[Amanhã às] LT", + nextWeek: "dddd [às] LT", + lastDay: "[Ontem às] LT", + lastWeek: function() { + return 0 === this.day() || 6 === this.day() ? "[Último] dddd [às] LT" : "[Última] dddd [às] LT" + }, + sameElse: "L" + }, + relativeTime: { + future: "em %s", + past: "há %s", + s: "segundos", + ss: "%d segundos", + m: "um minuto", + mm: "%d minutos", + h: "uma hora", + hh: "%d horas", + d: "um dia", + dd: "%d dias", + w: "uma semana", + ww: "%d semanas", + M: "um mês", + MM: "%d meses", + y: "um ano", + yy: "%d anos" + }, + dayOfMonthOrdinalParse: /\d{1,2}º/, + ordinal: "%dº", + week: { + dow: 1, + doy: 4 } + }) + }(n(2083)) +}, 4374: function(e, t, n) { + ! function(e) { + "use strict"; - function d(e, t) { - var n, a = []; - for (n = 0; n < e.length; ++n) a.push(t(e[n], n)); - return a + function t(e, t, n) { + var a = " "; + return (e % 100 >= 20 || e >= 100 && e % 100 == 0) && (a = " de "), e + a + { + ss: "secunde", + mm: "minute", + hh: "ore", + dd: "zile", + ww: "săptămâni", + MM: "luni", + yy: "ani" + } [n] + } + e.defineLocale("ro", { + months: "ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"), + monthsShort: "ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"), + monthsParseExact: !0, + weekdays: "duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"), + weekdaysShort: "Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"), + weekdaysMin: "Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"), + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD.MM.YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY H:mm", + LLLL: "dddd, D MMMM YYYY H:mm" + }, + calendar: { + sameDay: "[azi la] LT", + nextDay: "[mâine la] LT", + nextWeek: "dddd [la] LT", + lastDay: "[ieri la] LT", + lastWeek: "[fosta] dddd [la] LT", + sameElse: "L" + }, + relativeTime: { + future: "peste %s", + past: "%s în urmă", + s: "câteva secunde", + ss: t, + m: "un minut", + mm: t, + h: "o oră", + hh: t, + d: "o zi", + dd: t, + w: "o săptămână", + ww: t, + M: "o lună", + MM: t, + y: "un an", + yy: t + }, + week: { + dow: 1, + doy: 7 } + }) + }(n(2083)) +}, 8669: function(e, t, n) { + ! function(e) { + "use strict"; - function p(e, t) { - for (var n in t) o(t, n) && (e[n] = t[n]); - return o(t, "toString") && (e.toString = t.toString), o(t, "valueOf") && (e.valueOf = t.valueOf), e - } - - function h(e, t, n, a) { - return Et(e, t, n, a, !0).utc() - } - - function m(e) { - return null == e._pf && (e._pf = { - empty: !1, - unusedTokens: [], - unusedInput: [], - overflow: -2, - charsLeftOver: 0, - nullInput: !1, - invalidEra: null, - invalidMonth: null, - invalidFormat: !1, - userInvalidated: !1, - iso: !1, - parsedDateParts: [], - era: null, - meridiem: null, - rfc2822: !1, - weekdayMismatch: !1 - }), e._pf - } - - function f(e) { - if (null == e._isValid) { - var t = m(e), - a = n.call(t.parsedDateParts, (function(e) { - return null != e - })), - r = !isNaN(e._d.getTime()) && t.overflow < 0 && !t.empty && !t.invalidEra && !t.invalidMonth && !t.invalidWeekday && !t.weekdayMismatch && !t.nullInput && !t.invalidFormat && !t.userInvalidated && (!t.meridiem || t.meridiem && a); - if (e._strict && (r = r && 0 === t.charsLeftOver && 0 === t.unusedTokens.length && void 0 === t.bigHour), null != Object.isFrozen && Object.isFrozen(e)) return r; - e._isValid = r + function t(e, t, n) { + return "m" === n ? t ? "минута" : "минуту" : e + " " + (a = +e, r = { + ss: t ? "секунда_секунды_секунд" : "секунду_секунды_секунд", + mm: t ? "минута_минуты_минут" : "минуту_минуты_минут", + hh: "час_часа_часов", + dd: "день_дня_дней", + ww: "неделя_недели_недель", + MM: "месяц_месяца_месяцев", + yy: "год_года_лет" + } [n].split("_"), a % 10 == 1 && a % 100 != 11 ? r[0] : a % 10 >= 2 && a % 10 <= 4 && (a % 100 < 10 || a % 100 >= 20) ? r[1] : r[2]); + var a, r + } + var n = [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[йя]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i]; + e.defineLocale("ru", { + months: { + format: "января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_"), + standalone: "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_") + }, + monthsShort: { + format: "янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.".split("_"), + standalone: "янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.".split("_") + }, + weekdays: { + standalone: "воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"), + format: "воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_"), + isFormat: /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?] ?dddd/ + }, + weekdaysShort: "вс_пн_вт_ср_чт_пт_сб".split("_"), + weekdaysMin: "вс_пн_вт_ср_чт_пт_сб".split("_"), + monthsParse: n, + longMonthsParse: n, + shortMonthsParse: n, + monthsRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + monthsShortRegex: /^(январ[ья]|янв\.?|феврал[ья]|февр?\.?|марта?|мар\.?|апрел[ья]|апр\.?|ма[йя]|июн[ья]|июн\.?|июл[ья]|июл\.?|августа?|авг\.?|сентябр[ья]|сент?\.?|октябр[ья]|окт\.?|ноябр[ья]|нояб?\.?|декабр[ья]|дек\.?)/i, + monthsStrictRegex: /^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i, + monthsShortStrictRegex: /^(янв\.|февр?\.|мар[т.]|апр\.|ма[яй]|июн[ья.]|июл[ья.]|авг\.|сент?\.|окт\.|нояб?\.|дек\.)/i, + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD.MM.YYYY", + LL: "D MMMM YYYY г.", + LLL: "D MMMM YYYY г., H:mm", + LLLL: "dddd, D MMMM YYYY г., H:mm" + }, + calendar: { + sameDay: "[Сегодня, в] LT", + nextDay: "[Завтра, в] LT", + lastDay: "[Вчера, в] LT", + nextWeek: function(e) { + if (e.week() === this.week()) return 2 === this.day() ? "[Во] dddd, [в] LT" : "[В] dddd, [в] LT"; + switch (this.day()) { + case 0: + return "[В следующее] dddd, [в] LT"; + case 1: + case 2: + case 4: + return "[В следующий] dddd, [в] LT"; + case 3: + case 5: + case 6: + return "[В следующую] dddd, [в] LT" + } + }, + lastWeek: function(e) { + if (e.week() === this.week()) return 2 === this.day() ? "[Во] dddd, [в] LT" : "[В] dddd, [в] LT"; + switch (this.day()) { + case 0: + return "[В прошлое] dddd, [в] LT"; + case 1: + case 2: + case 4: + return "[В прошлый] dddd, [в] LT"; + case 3: + case 5: + case 6: + return "[В прошлую] dddd, [в] LT" + } + }, + sameElse: "L" + }, + relativeTime: { + future: "через %s", + past: "%s назад", + s: "несколько секунд", + ss: t, + m: t, + mm: t, + h: "час", + hh: t, + d: "день", + dd: t, + w: "неделя", + ww: t, + M: "месяц", + MM: t, + y: "год", + yy: t + }, + meridiemParse: /ночи|утра|дня|вечера/i, + isPM: function(e) { + return /^(дня|вечера)$/.test(e) + }, + meridiem: function(e, t, n) { + return e < 4 ? "ночи" : e < 12 ? "утра" : e < 17 ? "дня" : "вечера" + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го|я)/, + ordinal: function(e, t) { + switch (t) { + case "M": + case "d": + case "DDD": + return e + "-й"; + case "D": + return e + "-го"; + case "w": + case "W": + return e + "-я"; + default: + return e } - return e._isValid - } - - function g(e) { - var t = h(NaN); - return null != e ? p(m(t), e) : m(t).userInvalidated = !0, t + }, + week: { + dow: 1, + doy: 4 } - n = Array.prototype.some ? Array.prototype.some : function(e) { - var t, n = Object(this), - a = n.length >>> 0; - for (t = 0; t < a; t++) - if (t in n && e.call(this, n[t], t, n)) return !0; - return !1 - }; - var b = a.momentProperties = [], - y = !1; + }) + }(n(2083)) +}, 4299: function(e, t, n) { + ! function(e) { + "use strict"; + var t = "január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"), + n = "jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"); - function v(e, t) { - var n, a, r; - if (l(t._isAMomentObject) || (e._isAMomentObject = t._isAMomentObject), l(t._i) || (e._i = t._i), l(t._f) || (e._f = t._f), l(t._l) || (e._l = t._l), l(t._strict) || (e._strict = t._strict), l(t._tzm) || (e._tzm = t._tzm), l(t._isUTC) || (e._isUTC = t._isUTC), l(t._offset) || (e._offset = t._offset), l(t._pf) || (e._pf = m(t)), l(t._locale) || (e._locale = t._locale), b.length > 0) - for (n = 0; n < b.length; n++) l(r = t[a = b[n]]) || (e[a] = r); - return e - } + function a(e) { + return e > 1 && e < 5 + } - function k(e) { - v(this, e), this._d = new Date(null != e._d ? e._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === y && (y = !0, a.updateOffset(this), y = !1) + function r(e, t, n, r) { + var i = e + " "; + switch (n) { + case "s": + return t || r ? "pár sekúnd" : "pár sekundami"; + case "ss": + return t || r ? i + (a(e) ? "sekundy" : "sekúnd") : i + "sekundami"; + case "m": + return t ? "minúta" : r ? "minútu" : "minútou"; + case "mm": + return t || r ? i + (a(e) ? "minúty" : "minút") : i + "minútami"; + case "h": + return t ? "hodina" : r ? "hodinu" : "hodinou"; + case "hh": + return t || r ? i + (a(e) ? "hodiny" : "hodín") : i + "hodinami"; + case "d": + return t || r ? "deň" : "dňom"; + case "dd": + return t || r ? i + (a(e) ? "dni" : "dní") : i + "dňami"; + case "M": + return t || r ? "mesiac" : "mesiacom"; + case "MM": + return t || r ? i + (a(e) ? "mesiace" : "mesiacov") : i + "mesiacmi"; + case "y": + return t || r ? "rok" : "rokom"; + case "yy": + return t || r ? i + (a(e) ? "roky" : "rokov") : i + "rokmi" + } + } + e.defineLocale("sk", { + months: t, + monthsShort: n, + weekdays: "nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"), + weekdaysShort: "ne_po_ut_st_št_pi_so".split("_"), + weekdaysMin: "ne_po_ut_st_št_pi_so".split("_"), + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD.MM.YYYY", + LL: "D. MMMM YYYY", + LLL: "D. MMMM YYYY H:mm", + LLLL: "dddd D. MMMM YYYY H:mm" + }, + calendar: { + sameDay: "[dnes o] LT", + nextDay: "[zajtra o] LT", + nextWeek: function() { + switch (this.day()) { + case 0: + return "[v nedeľu o] LT"; + case 1: + case 2: + return "[v] dddd [o] LT"; + case 3: + return "[v stredu o] LT"; + case 4: + return "[vo štvrtok o] LT"; + case 5: + return "[v piatok o] LT"; + case 6: + return "[v sobotu o] LT" + } + }, + lastDay: "[včera o] LT", + lastWeek: function() { + switch (this.day()) { + case 0: + return "[minulú nedeľu o] LT"; + case 1: + case 2: + case 4: + case 5: + return "[minulý] dddd [o] LT"; + case 3: + return "[minulú stredu o] LT"; + case 6: + return "[minulú sobotu o] LT" + } + }, + sameElse: "L" + }, + relativeTime: { + future: "za %s", + past: "pred %s", + s: r, + ss: r, + m: r, + mm: r, + h: r, + hh: r, + d: r, + dd: r, + M: r, + MM: r, + y: r, + yy: r + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 4 } + }) + }(n(2083)) +}, 6705: function(e, t, n) { + ! function(e) { + "use strict"; - function _(e) { - return e instanceof k || null != e && null != e._isAMomentObject + function t(e, t, n, a) { + var r = e + " "; + switch (n) { + case "s": + return t || a ? "nekaj sekund" : "nekaj sekundami"; + case "ss": + return r + (1 === e ? t ? "sekundo" : "sekundi" : 2 === e ? t || a ? "sekundi" : "sekundah" : e < 5 ? t || a ? "sekunde" : "sekundah" : "sekund"); + case "m": + return t ? "ena minuta" : "eno minuto"; + case "mm": + return r + (1 === e ? t ? "minuta" : "minuto" : 2 === e ? t || a ? "minuti" : "minutama" : e < 5 ? t || a ? "minute" : "minutami" : t || a ? "minut" : "minutami"); + case "h": + return t ? "ena ura" : "eno uro"; + case "hh": + return r + (1 === e ? t ? "ura" : "uro" : 2 === e ? t || a ? "uri" : "urama" : e < 5 ? t || a ? "ure" : "urami" : t || a ? "ur" : "urami"); + case "d": + return t || a ? "en dan" : "enim dnem"; + case "dd": + return r + (1 === e ? t || a ? "dan" : "dnem" : 2 === e ? t || a ? "dni" : "dnevoma" : t || a ? "dni" : "dnevi"); + case "M": + return t || a ? "en mesec" : "enim mesecem"; + case "MM": + return r + (1 === e ? t || a ? "mesec" : "mesecem" : 2 === e ? t || a ? "meseca" : "mesecema" : e < 5 ? t || a ? "mesece" : "meseci" : t || a ? "mesecev" : "meseci"); + case "y": + return t || a ? "eno leto" : "enim letom"; + case "yy": + return r + (1 === e ? t || a ? "leto" : "letom" : 2 === e ? t || a ? "leti" : "letoma" : e < 5 ? t || a ? "leta" : "leti" : t || a ? "let" : "leti") + } + } + e.defineLocale("sl", { + months: "januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"), + monthsShort: "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"), + monthsParseExact: !0, + weekdays: "nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"), + weekdaysShort: "ned._pon._tor._sre._čet._pet._sob.".split("_"), + weekdaysMin: "ne_po_to_sr_če_pe_so".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "DD. MM. YYYY", + LL: "D. MMMM YYYY", + LLL: "D. MMMM YYYY H:mm", + LLLL: "dddd, D. MMMM YYYY H:mm" + }, + calendar: { + sameDay: "[danes ob] LT", + nextDay: "[jutri ob] LT", + nextWeek: function() { + switch (this.day()) { + case 0: + return "[v] [nedeljo] [ob] LT"; + case 3: + return "[v] [sredo] [ob] LT"; + case 6: + return "[v] [soboto] [ob] LT"; + case 1: + case 2: + case 4: + case 5: + return "[v] dddd [ob] LT" + } + }, + lastDay: "[včeraj ob] LT", + lastWeek: function() { + switch (this.day()) { + case 0: + return "[prejšnjo] [nedeljo] [ob] LT"; + case 3: + return "[prejšnjo] [sredo] [ob] LT"; + case 6: + return "[prejšnjo] [soboto] [ob] LT"; + case 1: + case 2: + case 4: + case 5: + return "[prejšnji] dddd [ob] LT" + } + }, + sameElse: "L" + }, + relativeTime: { + future: "čez %s", + past: "pred %s", + s: t, + ss: t, + m: t, + mm: t, + h: t, + hh: t, + d: t, + dd: t, + M: t, + MM: t, + y: t, + yy: t + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 7 } - - function w(e) { - !1 === a.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + e) + }) + }(n(2083)) +}, 9557: function(e, t, n) { + ! function(e) { + "use strict"; + var t = { + words: { + ss: ["sekunda", "sekunde", "sekundi"], + m: ["jedan minut", "jedne minute"], + mm: ["minut", "minute", "minuta"], + h: ["jedan sat", "jednog sata"], + hh: ["sat", "sata", "sati"], + dd: ["dan", "dana", "dana"], + MM: ["mesec", "meseca", "meseci"], + yy: ["godina", "godine", "godina"] + }, + correctGrammaticalCase: function(e, t) { + return 1 === e ? t[0] : e >= 2 && e <= 4 ? t[1] : t[2] + }, + translate: function(e, n, a) { + var r = t.words[a]; + return 1 === a.length ? n ? r[0] : r[1] : e + " " + t.correctGrammaticalCase(e, r) } - - function S(e, t) { - var n = !0; - return p((function() { - if (null != a.deprecationHandler && a.deprecationHandler(null, e), n) { - var r, i, s, l = []; - for (i = 0; i < arguments.length; i++) { - if (r = "", "object" == typeof arguments[i]) { - for (s in r += "\n[" + i + "] ", arguments[0]) o(arguments[0], s) && (r += s + ": " + arguments[0][s] + ", "); - r = r.slice(0, -2) - } else r = arguments[i]; - l.push(r) - } - w(e + "\nArguments: " + Array.prototype.slice.call(l).join("") + "\n" + (new Error).stack), n = !1 + }; + e.defineLocale("sr", { + months: "januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar".split("_"), + monthsShort: "jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.".split("_"), + monthsParseExact: !0, + weekdays: "nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota".split("_"), + weekdaysShort: "ned._pon._uto._sre._čet._pet._sub.".split("_"), + weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"), + weekdaysParseExact: !0, + longDateFormat: { + LT: "H:mm", + LTS: "H:mm:ss", + L: "D. M. YYYY.", + LL: "D. MMMM YYYY.", + LLL: "D. MMMM YYYY. H:mm", + LLLL: "dddd, D. MMMM YYYY. H:mm" + }, + calendar: { + sameDay: "[danas u] LT", + nextDay: "[sutra u] LT", + nextWeek: function() { + switch (this.day()) { + case 0: + return "[u] [nedelju] [u] LT"; + case 3: + return "[u] [sredu] [u] LT"; + case 6: + return "[u] [subotu] [u] LT"; + case 1: + case 2: + case 4: + case 5: + return "[u] dddd [u] LT" } - return t.apply(this, arguments) - }), t) - } - var E, x = {}; - - function C(e, t) { - null != a.deprecationHandler && a.deprecationHandler(e, t), x[e] || (w(t), x[e] = !0) + }, + lastDay: "[juče u] LT", + lastWeek: function() { + return ["[prošle] [nedelje] [u] LT", "[prošlog] [ponedeljka] [u] LT", "[prošlog] [utorka] [u] LT", "[prošle] [srede] [u] LT", "[prošlog] [četvrtka] [u] LT", "[prošlog] [petka] [u] LT", "[prošle] [subote] [u] LT"][this.day()] + }, + sameElse: "L" + }, + relativeTime: { + future: "za %s", + past: "pre %s", + s: "nekoliko sekundi", + ss: t.translate, + m: t.translate, + mm: t.translate, + h: t.translate, + hh: t.translate, + d: "dan", + dd: t.translate, + M: "mesec", + MM: t.translate, + y: "godinu", + yy: t.translate + }, + dayOfMonthOrdinalParse: /\d{1,2}\./, + ordinal: "%d.", + week: { + dow: 1, + doy: 7 } - - function A(e) { - return "undefined" != typeof Function && e instanceof Function || "[object Function]" === Object.prototype.toString.call(e) + }) + }(n(2083)) +}, 3497: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("sv", { + months: "januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"), + monthsShort: "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"), + weekdays: "söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"), + weekdaysShort: "sön_mån_tis_ons_tor_fre_lör".split("_"), + weekdaysMin: "sö_må_ti_on_to_fr_lö".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY-MM-DD", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY [kl.] HH:mm", + LLLL: "dddd D MMMM YYYY [kl.] HH:mm", + lll: "D MMM YYYY HH:mm", + llll: "ddd D MMM YYYY HH:mm" + }, + calendar: { + sameDay: "[Idag] LT", + nextDay: "[Imorgon] LT", + lastDay: "[Igår] LT", + nextWeek: "[På] dddd LT", + lastWeek: "[I] dddd[s] LT", + sameElse: "L" + }, + relativeTime: { + future: "om %s", + past: "för %s sedan", + s: "några sekunder", + ss: "%d sekunder", + m: "en minut", + mm: "%d minuter", + h: "en timme", + hh: "%d timmar", + d: "en dag", + dd: "%d dagar", + M: "en månad", + MM: "%d månader", + y: "ett år", + yy: "%d år" + }, + dayOfMonthOrdinalParse: /\d{1,2}(\:e|\:a)/, + ordinal: function(e) { + var t = e % 10; + return e + (1 == ~~(e % 100 / 10) ? ":e" : 1 === t || 2 === t ? ":a" : ":e") + }, + week: { + dow: 1, + doy: 4 } - - function j(e, t) { - var n, a = p({}, e); - for (n in t) o(t, n) && (i(e[n]) && i(t[n]) ? (a[n] = {}, p(a[n], e[n]), p(a[n], t[n])) : null != t[n] ? a[n] = t[n] : delete a[n]); - for (n in e) o(e, n) && !o(t, n) && i(e[n]) && (a[n] = p({}, a[n])); - return a + }) + }(n(2083)) +}, 7612: function(e, t, n) { + ! function(e) { + "use strict"; + var t = { + 1: "'inci", + 5: "'inci", + 8: "'inci", + 70: "'inci", + 80: "'inci", + 2: "'nci", + 7: "'nci", + 20: "'nci", + 50: "'nci", + 3: "'üncü", + 4: "'üncü", + 100: "'üncü", + 6: "'ncı", + 9: "'uncu", + 10: "'uncu", + 30: "'uncu", + 60: "'ıncı", + 90: "'ıncı" + }; + e.defineLocale("tr", { + months: "Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"), + monthsShort: "Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"), + weekdays: "Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"), + weekdaysShort: "Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"), + weekdaysMin: "Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"), + meridiem: function(e, t, n) { + return e < 12 ? n ? "öö" : "ÖÖ" : n ? "ös" : "ÖS" + }, + meridiemParse: /öö|ÖÖ|ös|ÖS/, + isPM: function(e) { + return "ös" === e || "ÖS" === e + }, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY", + LL: "D MMMM YYYY", + LLL: "D MMMM YYYY HH:mm", + LLLL: "dddd, D MMMM YYYY HH:mm" + }, + calendar: { + sameDay: "[bugün saat] LT", + nextDay: "[yarın saat] LT", + nextWeek: "[gelecek] dddd [saat] LT", + lastDay: "[dün] LT", + lastWeek: "[geçen] dddd [saat] LT", + sameElse: "L" + }, + relativeTime: { + future: "%s sonra", + past: "%s önce", + s: "birkaç saniye", + ss: "%d saniye", + m: "bir dakika", + mm: "%d dakika", + h: "bir saat", + hh: "%d saat", + d: "bir gün", + dd: "%d gün", + w: "bir hafta", + ww: "%d hafta", + M: "bir ay", + MM: "%d ay", + y: "bir yıl", + yy: "%d yıl" + }, + ordinal: function(e, n) { + switch (n) { + case "d": + case "D": + case "Do": + case "DD": + return e; + default: + if (0 === e) return e + "'ıncı"; + var a = e % 10; + return e + (t[a] || t[e % 100 - a] || t[e >= 100 ? 100 : null]) + } + }, + week: { + dow: 1, + doy: 7 } + }) + }(n(2083)) +}, 6608: function(e, t, n) { + ! function(e) { + "use strict"; - function P(e) { - null != e && this.set(e) - } - a.suppressDeprecationWarnings = !1, a.deprecationHandler = null, E = Object.keys ? Object.keys : function(e) { - var t, n = []; - for (t in e) o(e, t) && n.push(t); - return n - }; + function t(e, t, n) { + return "m" === n ? t ? "хвилина" : "хвилину" : "h" === n ? t ? "година" : "годину" : e + " " + (a = +e, r = { + ss: t ? "секунда_секунди_секунд" : "секунду_секунди_секунд", + mm: t ? "хвилина_хвилини_хвилин" : "хвилину_хвилини_хвилин", + hh: t ? "година_години_годин" : "годину_години_годин", + dd: "день_дні_днів", + MM: "місяць_місяці_місяців", + yy: "рік_роки_років" + } [n].split("_"), a % 10 == 1 && a % 100 != 11 ? r[0] : a % 10 >= 2 && a % 10 <= 4 && (a % 100 < 10 || a % 100 >= 20) ? r[1] : r[2]); + var a, r + } - function D(e, t, n) { - var a = "" + Math.abs(e), - r = t - a.length; - return (e >= 0 ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, r)).toString().substr(1) + a - } - var T = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, - O = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, - M = {}, - I = {}; - - function N(e, t, n, a) { - var r = a; - "string" == typeof a && (r = function() { - return this[a]() - }), e && (I[e] = r), t && (I[t[0]] = function() { - return D(r.apply(this, arguments), t[1], t[2]) - }), n && (I[n] = function() { - return this.localeData().ordinal(r.apply(this, arguments), e) - }) + function n(e) { + return function() { + return e + "о" + (11 === this.hours() ? "б" : "") + "] LT" } - - function z(e, t) { - return e.isValid() ? (t = R(t, e.localeData()), M[t] = M[t] || function(e) { - var t, n, a, r = e.match(T); - for (t = 0, n = r.length; t < n; t++) I[r[t]] ? r[t] = I[r[t]] : r[t] = (a = r[t]).match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, ""); - return function(t) { - var a, i = ""; - for (a = 0; a < n; a++) i += A(r[a]) ? r[a].call(t, e) : r[a]; - return i + } + e.defineLocale("uk", { + months: { + format: "січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_"), + standalone: "січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_") + }, + monthsShort: "січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"), + weekdays: function(e, t) { + var n = { + nominative: "неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"), + accusative: "неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"), + genitive: "неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_") + }; + return !0 === e ? n.nominative.slice(1, 7).concat(n.nominative.slice(0, 1)) : e ? n[/(\[[ВвУу]\]) ?dddd/.test(t) ? "accusative" : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(t) ? "genitive" : "nominative"][e.day()] : n.nominative + }, + weekdaysShort: "нд_пн_вт_ср_чт_пт_сб".split("_"), + weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD.MM.YYYY", + LL: "D MMMM YYYY р.", + LLL: "D MMMM YYYY р., HH:mm", + LLLL: "dddd, D MMMM YYYY р., HH:mm" + }, + calendar: { + sameDay: n("[Сьогодні "), + nextDay: n("[Завтра "), + lastDay: n("[Вчора "), + nextWeek: n("[У] dddd ["), + lastWeek: function() { + switch (this.day()) { + case 0: + case 3: + case 5: + case 6: + return n("[Минулої] dddd [").call(this); + case 1: + case 2: + case 4: + return n("[Минулого] dddd [").call(this) } - }(t), M[t](e)) : e.localeData().invalidDate() - } - - function R(e, t) { - var n = 5; - - function a(e) { - return t.longDateFormat(e) || e + }, + sameElse: "L" + }, + relativeTime: { + future: "за %s", + past: "%s тому", + s: "декілька секунд", + ss: t, + m: t, + mm: t, + h: "годину", + hh: t, + d: "день", + dd: t, + M: "місяць", + MM: t, + y: "рік", + yy: t + }, + meridiemParse: /ночі|ранку|дня|вечора/, + isPM: function(e) { + return /^(дня|вечора)$/.test(e) + }, + meridiem: function(e, t, n) { + return e < 4 ? "ночі" : e < 12 ? "ранку" : e < 17 ? "дня" : "вечора" + }, + dayOfMonthOrdinalParse: /\d{1,2}-(й|го)/, + ordinal: function(e, t) { + switch (t) { + case "M": + case "d": + case "DDD": + case "w": + case "W": + return e + "-й"; + case "D": + return e + "-го"; + default: + return e } - for (O.lastIndex = 0; n >= 0 && O.test(e);) e = e.replace(O, a), O.lastIndex = 0, n -= 1; + }, + week: { + dow: 1, + doy: 7 + } + }) + }(n(2083)) +}, 8858: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("vi", { + months: "tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"), + monthsShort: "Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12".split("_"), + monthsParseExact: !0, + weekdays: "chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"), + weekdaysShort: "CN_T2_T3_T4_T5_T6_T7".split("_"), + weekdaysMin: "CN_T2_T3_T4_T5_T6_T7".split("_"), + weekdaysParseExact: !0, + meridiemParse: /sa|ch/i, + isPM: function(e) { + return /^ch$/i.test(e) + }, + meridiem: function(e, t, n) { + return e < 12 ? n ? "sa" : "SA" : n ? "ch" : "CH" + }, + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "DD/MM/YYYY", + LL: "D MMMM [năm] YYYY", + LLL: "D MMMM [năm] YYYY HH:mm", + LLLL: "dddd, D MMMM [năm] YYYY HH:mm", + l: "DD/M/YYYY", + ll: "D MMM YYYY", + lll: "D MMM YYYY HH:mm", + llll: "ddd, D MMM YYYY HH:mm" + }, + calendar: { + sameDay: "[Hôm nay lúc] LT", + nextDay: "[Ngày mai lúc] LT", + nextWeek: "dddd [tuần tới lúc] LT", + lastDay: "[Hôm qua lúc] LT", + lastWeek: "dddd [tuần trước lúc] LT", + sameElse: "L" + }, + relativeTime: { + future: "%s tới", + past: "%s trước", + s: "vài giây", + ss: "%d giây", + m: "một phút", + mm: "%d phút", + h: "một giờ", + hh: "%d giờ", + d: "một ngày", + dd: "%d ngày", + w: "một tuần", + ww: "%d tuần", + M: "một tháng", + MM: "%d tháng", + y: "một năm", + yy: "%d năm" + }, + dayOfMonthOrdinalParse: /\d{1,2}/, + ordinal: function(e) { return e + }, + week: { + dow: 1, + doy: 4 } - var L = {}; - - function F(e, t) { - var n = e.toLowerCase(); - L[n] = L[n + "s"] = L[t] = e + }) + }(n(2083)) +}, 670: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("zh-cn", { + months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), + monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), + weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), + weekdaysShort: "周日_周一_周二_周三_周四_周五_周六".split("_"), + weekdaysMin: "日_一_二_三_四_五_六".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY/MM/DD", + LL: "YYYY年M月D日", + LLL: "YYYY年M月D日Ah点mm分", + LLLL: "YYYY年M月D日ddddAh点mm分", + l: "YYYY/M/D", + ll: "YYYY年M月D日", + lll: "YYYY年M月D日 HH:mm", + llll: "YYYY年M月D日dddd HH:mm" + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function(e, t) { + return 12 === e && (e = 0), "凌晨" === t || "早上" === t || "上午" === t ? e : "下午" === t || "晚上" === t ? e + 12 : e >= 11 ? e : e + 12 + }, + meridiem: function(e, t, n) { + var a = 100 * e + t; + return a < 600 ? "凌晨" : a < 900 ? "早上" : a < 1130 ? "上午" : a < 1230 ? "中午" : a < 1800 ? "下午" : "晚上" + }, + calendar: { + sameDay: "[今天]LT", + nextDay: "[明天]LT", + nextWeek: function(e) { + return e.week() !== this.week() ? "[下]dddLT" : "[本]dddLT" + }, + lastDay: "[昨天]LT", + lastWeek: function(e) { + return this.week() !== e.week() ? "[上]dddLT" : "[本]dddLT" + }, + sameElse: "L" + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/, + ordinal: function(e, t) { + switch (t) { + case "d": + case "D": + case "DDD": + return e + "日"; + case "M": + return e + "月"; + case "w": + case "W": + return e + "周"; + default: + return e + } + }, + relativeTime: { + future: "%s后", + past: "%s前", + s: "几秒", + ss: "%d 秒", + m: "1 分钟", + mm: "%d 分钟", + h: "1 小时", + hh: "%d 小时", + d: "1 天", + dd: "%d 天", + w: "1 周", + ww: "%d 周", + M: "1 个月", + MM: "%d 个月", + y: "1 年", + yy: "%d 年" + }, + week: { + dow: 1, + doy: 4 } - - function q(e) { - return "string" == typeof e ? L[e] || L[e.toLowerCase()] : void 0 + }) + }(n(2083)) +}, 3520: function(e, t, n) { + ! function(e) { + "use strict"; + e.defineLocale("zh-tw", { + months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"), + monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"), + weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"), + weekdaysShort: "週日_週一_週二_週三_週四_週五_週六".split("_"), + weekdaysMin: "日_一_二_三_四_五_六".split("_"), + longDateFormat: { + LT: "HH:mm", + LTS: "HH:mm:ss", + L: "YYYY/MM/DD", + LL: "YYYY年M月D日", + LLL: "YYYY年M月D日 HH:mm", + LLLL: "YYYY年M月D日dddd HH:mm", + l: "YYYY/M/D", + ll: "YYYY年M月D日", + lll: "YYYY年M月D日 HH:mm", + llll: "YYYY年M月D日dddd HH:mm" + }, + meridiemParse: /凌晨|早上|上午|中午|下午|晚上/, + meridiemHour: function(e, t) { + return 12 === e && (e = 0), "凌晨" === t || "早上" === t || "上午" === t ? e : "中午" === t ? e >= 11 ? e : e + 12 : "下午" === t || "晚上" === t ? e + 12 : void 0 + }, + meridiem: function(e, t, n) { + var a = 100 * e + t; + return a < 600 ? "凌晨" : a < 900 ? "早上" : a < 1130 ? "上午" : a < 1230 ? "中午" : a < 1800 ? "下午" : "晚上" + }, + calendar: { + sameDay: "[今天] LT", + nextDay: "[明天] LT", + nextWeek: "[下]dddd LT", + lastDay: "[昨天] LT", + lastWeek: "[上]dddd LT", + sameElse: "L" + }, + dayOfMonthOrdinalParse: /\d{1,2}(日|月|週)/, + ordinal: function(e, t) { + switch (t) { + case "d": + case "D": + case "DDD": + return e + "日"; + case "M": + return e + "月"; + case "w": + case "W": + return e + "週"; + default: + return e + } + }, + relativeTime: { + future: "%s後", + past: "%s前", + s: "幾秒", + ss: "%d 秒", + m: "1 分鐘", + mm: "%d 分鐘", + h: "1 小時", + hh: "%d 小時", + d: "1 天", + dd: "%d 天", + M: "1 個月", + MM: "%d 個月", + y: "1 年", + yy: "%d 年" } + }) + }(n(2083)) +}, 2083: function(e, t, n) { + (e = n.nmd(e)).exports = function() { + "use strict"; + var t, n; - function B(e) { - var t, n, a = {}; - for (n in e) o(e, n) && (t = q(n)) && (a[t] = e[n]); - return a - } - var U = {}; + function a() { + return t.apply(null, arguments) + } - function H(e, t) { - U[e] = t - } + function r(e) { + return e instanceof Array || "[object Array]" === Object.prototype.toString.call(e) + } - function V(e) { - return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 - } + function i(e) { + return null != e && "[object Object]" === Object.prototype.toString.call(e) + } - function W(e) { - return e < 0 ? Math.ceil(e) || 0 : Math.floor(e) - } + function o(e, t) { + return Object.prototype.hasOwnProperty.call(e, t) + } - function Y(e) { - var t = +e, - n = 0; - return 0 !== t && isFinite(t) && (n = W(t)), n - } + function s(e) { + if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(e).length; + var t; + for (t in e) + if (o(e, t)) return !1; + return !0 + } - function G(e, t) { - return function(n) { - return null != n ? ($(this, e, n), a.updateOffset(this, t), this) : K(this, e) - } - } + function l(e) { + return void 0 === e + } - function K(e, t) { - return e.isValid() ? e._d["get" + (e._isUTC ? "UTC" : "") + t]() : NaN - } + function c(e) { + return "number" == typeof e || "[object Number]" === Object.prototype.toString.call(e) + } - function $(e, t, n) { - e.isValid() && !isNaN(n) && ("FullYear" === t && V(e.year()) && 1 === e.month() && 29 === e.date() ? (n = Y(n), e._d["set" + (e._isUTC ? "UTC" : "") + t](n, e.month(), _e(n, e.month()))) : e._d["set" + (e._isUTC ? "UTC" : "") + t](n)) - } - var J, Z = /\d/, - Q = /\d\d/, - X = /\d{3}/, - ee = /\d{4}/, - te = /[+-]?\d{6}/, - ne = /\d\d?/, - ae = /\d\d\d\d?/, - re = /\d\d\d\d\d\d?/, - ie = /\d{1,3}/, - oe = /\d{1,4}/, - se = /[+-]?\d{1,6}/, - le = /\d+/, - ce = /[+-]?\d+/, - ue = /Z|[+-]\d\d:?\d\d/gi, - de = /Z|[+-]\d\d(?::?\d\d)?/gi, - pe = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; + function u(e) { + return e instanceof Date || "[object Date]" === Object.prototype.toString.call(e) + } - function he(e, t, n) { - J[e] = A(t) ? t : function(e, a) { - return e && n ? n : t - } - } + function d(e, t) { + var n, a = []; + for (n = 0; n < e.length; ++n) a.push(t(e[n], n)); + return a + } - function me(e, t) { - return o(J, e) ? J[e](t._strict, t._locale) : new RegExp(fe(e.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, (function(e, t, n, a, r) { - return t || n || a || r - })))) - } + function p(e, t) { + for (var n in t) o(t, n) && (e[n] = t[n]); + return o(t, "toString") && (e.toString = t.toString), o(t, "valueOf") && (e.valueOf = t.valueOf), e + } - function fe(e) { - return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") - } - J = {}; - var ge = {}; + function h(e, t, n, a) { + return Et(e, t, n, a, !0).utc() + } - function be(e, t) { - var n, a = t; - for ("string" == typeof e && (e = [e]), c(t) && (a = function(e, n) { - n[t] = Y(e) - }), n = 0; n < e.length; n++) ge[e[n]] = a - } + function m(e) { + return null == e._pf && (e._pf = { + empty: !1, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: !1, + invalidEra: null, + invalidMonth: null, + invalidFormat: !1, + userInvalidated: !1, + iso: !1, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: !1, + weekdayMismatch: !1 + }), e._pf + } - function ye(e, t) { - be(e, (function(e, n, a, r) { - a._w = a._w || {}, t(e, a._w, a, r) - })) + function f(e) { + if (null == e._isValid) { + var t = m(e), + a = n.call(t.parsedDateParts, (function(e) { + return null != e + })), + r = !isNaN(e._d.getTime()) && t.overflow < 0 && !t.empty && !t.invalidEra && !t.invalidMonth && !t.invalidWeekday && !t.weekdayMismatch && !t.nullInput && !t.invalidFormat && !t.userInvalidated && (!t.meridiem || t.meridiem && a); + if (e._strict && (r = r && 0 === t.charsLeftOver && 0 === t.unusedTokens.length && void 0 === t.bigHour), null != Object.isFrozen && Object.isFrozen(e)) return r; + e._isValid = r } + return e._isValid + } - function ve(e, t, n) { - null != t && o(ge, e) && ge[e](t, n._a, n, e) - } - var ke; + function g(e) { + var t = h(NaN); + return null != e ? p(m(t), e) : m(t).userInvalidated = !0, t + } + n = Array.prototype.some ? Array.prototype.some : function(e) { + var t, n = Object(this), + a = n.length >>> 0; + for (t = 0; t < a; t++) + if (t in n && e.call(this, n[t], t, n)) return !0; + return !1 + }; + var b = a.momentProperties = [], + y = !1; - function _e(e, t) { - if (isNaN(e) || isNaN(t)) return NaN; - var n, a = (t % (n = 12) + n) % n; - return e += (t - a) / 12, 1 === a ? V(e) ? 29 : 28 : 31 - a % 7 % 2 - } - ke = Array.prototype.indexOf ? Array.prototype.indexOf : function(e) { - var t; - for (t = 0; t < this.length; ++t) - if (this[t] === e) return t; - return -1 - }, N("M", ["MM", 2], "Mo", (function() { - return this.month() + 1 - })), N("MMM", 0, 0, (function(e) { - return this.localeData().monthsShort(this, e) - })), N("MMMM", 0, 0, (function(e) { - return this.localeData().months(this, e) - })), F("month", "M"), H("month", 8), he("M", ne), he("MM", ne, Q), he("MMM", (function(e, t) { - return t.monthsShortRegex(e) - })), he("MMMM", (function(e, t) { - return t.monthsRegex(e) - })), be(["M", "MM"], (function(e, t) { - t[1] = Y(e) - 1 - })), be(["MMM", "MMMM"], (function(e, t, n, a) { - var r = n._locale.monthsParse(e, a, n._strict); - null != r ? t[1] = r : m(n).invalidMonth = e - })); - var we = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), - Se = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), - Ee = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, - xe = pe, - Ce = pe; + function v(e, t) { + var n, a, r; + if (l(t._isAMomentObject) || (e._isAMomentObject = t._isAMomentObject), l(t._i) || (e._i = t._i), l(t._f) || (e._f = t._f), l(t._l) || (e._l = t._l), l(t._strict) || (e._strict = t._strict), l(t._tzm) || (e._tzm = t._tzm), l(t._isUTC) || (e._isUTC = t._isUTC), l(t._offset) || (e._offset = t._offset), l(t._pf) || (e._pf = m(t)), l(t._locale) || (e._locale = t._locale), b.length > 0) + for (n = 0; n < b.length; n++) l(r = t[a = b[n]]) || (e[a] = r); + return e + } - function Ae(e, t, n) { - var a, r, i, o = e.toLocaleLowerCase(); - if (!this._monthsParse) - for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], a = 0; a < 12; ++a) i = h([2e3, a]), this._shortMonthsParse[a] = this.monthsShort(i, "").toLocaleLowerCase(), this._longMonthsParse[a] = this.months(i, "").toLocaleLowerCase(); - return n ? "MMM" === t ? -1 !== (r = ke.call(this._shortMonthsParse, o)) ? r : null : -1 !== (r = ke.call(this._longMonthsParse, o)) ? r : null : "MMM" === t ? -1 !== (r = ke.call(this._shortMonthsParse, o)) || -1 !== (r = ke.call(this._longMonthsParse, o)) ? r : null : -1 !== (r = ke.call(this._longMonthsParse, o)) || -1 !== (r = ke.call(this._shortMonthsParse, o)) ? r : null - } + function k(e) { + v(this, e), this._d = new Date(null != e._d ? e._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), !1 === y && (y = !0, a.updateOffset(this), y = !1) + } - function je(e, t) { - var n; - if (!e.isValid()) return e; - if ("string" == typeof t) - if (/^\d+$/.test(t)) t = Y(t); - else if (!c(t = e.localeData().monthsParse(t))) return e; - return n = Math.min(e.date(), _e(e.year(), t)), e._d["set" + (e._isUTC ? "UTC" : "") + "Month"](t, n), e - } + function _(e) { + return e instanceof k || null != e && null != e._isAMomentObject + } - function Pe(e) { - return null != e ? (je(this, e), a.updateOffset(this, !0), this) : K(this, "Month") - } + function w(e) { + !1 === a.suppressDeprecationWarnings && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + e) + } - function De() { - function e(e, t) { - return t.length - e.length + function S(e, t) { + var n = !0; + return p((function() { + if (null != a.deprecationHandler && a.deprecationHandler(null, e), n) { + var r, i, s, l = []; + for (i = 0; i < arguments.length; i++) { + if (r = "", "object" == typeof arguments[i]) { + for (s in r += "\n[" + i + "] ", arguments[0]) o(arguments[0], s) && (r += s + ": " + arguments[0][s] + ", "); + r = r.slice(0, -2) + } else r = arguments[i]; + l.push(r) + } + w(e + "\nArguments: " + Array.prototype.slice.call(l).join("") + "\n" + (new Error).stack), n = !1 } - var t, n, a = [], - r = [], - i = []; - for (t = 0; t < 12; t++) n = h([2e3, t]), a.push(this.monthsShort(n, "")), r.push(this.months(n, "")), i.push(this.months(n, "")), i.push(this.monthsShort(n, "")); - for (a.sort(e), r.sort(e), i.sort(e), t = 0; t < 12; t++) a[t] = fe(a[t]), r[t] = fe(r[t]); - for (t = 0; t < 24; t++) i[t] = fe(i[t]); - this._monthsRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + a.join("|") + ")", "i") - } + return t.apply(this, arguments) + }), t) + } + var E, x = {}; - function Te(e) { - return V(e) ? 366 : 365 - } - N("Y", 0, 0, (function() { - var e = this.year(); - return e <= 9999 ? D(e, 4) : "+" + e - })), N(0, ["YY", 2], 0, (function() { - return this.year() % 100 - })), N(0, ["YYYY", 4], 0, "year"), N(0, ["YYYYY", 5], 0, "year"), N(0, ["YYYYYY", 6, !0], 0, "year"), F("year", "y"), H("year", 1), he("Y", ce), he("YY", ne, Q), he("YYYY", oe, ee), he("YYYYY", se, te), he("YYYYYY", se, te), be(["YYYYY", "YYYYYY"], 0), be("YYYY", (function(e, t) { - t[0] = 2 === e.length ? a.parseTwoDigitYear(e) : Y(e) - })), be("YY", (function(e, t) { - t[0] = a.parseTwoDigitYear(e) - })), be("Y", (function(e, t) { - t[0] = parseInt(e, 10) - })), a.parseTwoDigitYear = function(e) { - return Y(e) + (Y(e) > 68 ? 1900 : 2e3) - }; - var Oe = G("FullYear", !0); + function C(e, t) { + null != a.deprecationHandler && a.deprecationHandler(e, t), x[e] || (w(t), x[e] = !0) + } - function Me(e, t, n, a, r, i, o) { - var s; - return e < 100 && e >= 0 ? (s = new Date(e + 400, t, n, a, r, i, o), isFinite(s.getFullYear()) && s.setFullYear(e)) : s = new Date(e, t, n, a, r, i, o), s - } + function A(e) { + return "undefined" != typeof Function && e instanceof Function || "[object Function]" === Object.prototype.toString.call(e) + } - function Ie(e) { - var t, n; - return e < 100 && e >= 0 ? ((n = Array.prototype.slice.call(arguments))[0] = e + 400, t = new Date(Date.UTC.apply(null, n)), isFinite(t.getUTCFullYear()) && t.setUTCFullYear(e)) : t = new Date(Date.UTC.apply(null, arguments)), t - } + function T(e, t) { + var n, a = p({}, e); + for (n in t) o(t, n) && (i(e[n]) && i(t[n]) ? (a[n] = {}, p(a[n], e[n]), p(a[n], t[n])) : null != t[n] ? a[n] = t[n] : delete a[n]); + for (n in e) o(e, n) && !o(t, n) && i(e[n]) && (a[n] = p({}, a[n])); + return a + } - function Ne(e, t, n) { - var a = 7 + t - n; - return -(7 + Ie(e, 0, a).getUTCDay() - t) % 7 + a - 1 - } + function D(e) { + null != e && this.set(e) + } + a.suppressDeprecationWarnings = !1, a.deprecationHandler = null, E = Object.keys ? Object.keys : function(e) { + var t, n = []; + for (t in e) o(e, t) && n.push(t); + return n + }; - function ze(e, t, n, a, r) { - var i, o, s = 1 + 7 * (t - 1) + (7 + n - a) % 7 + Ne(e, a, r); - return s <= 0 ? o = Te(i = e - 1) + s : s > Te(e) ? (i = e + 1, o = s - Te(e)) : (i = e, o = s), { - year: i, - dayOfYear: o - } - } + function P(e, t, n) { + var a = "" + Math.abs(e), + r = t - a.length; + return (e >= 0 ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, r)).toString().substr(1) + a + } + var j = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + M = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + I = {}, + O = {}; + + function N(e, t, n, a) { + var r = a; + "string" == typeof a && (r = function() { + return this[a]() + }), e && (O[e] = r), t && (O[t[0]] = function() { + return P(r.apply(this, arguments), t[1], t[2]) + }), n && (O[n] = function() { + return this.localeData().ordinal(r.apply(this, arguments), e) + }) + } - function Re(e, t, n) { - var a, r, i = Ne(e.year(), t, n), - o = Math.floor((e.dayOfYear() - i - 1) / 7) + 1; - return o < 1 ? a = o + Le(r = e.year() - 1, t, n) : o > Le(e.year(), t, n) ? (a = o - Le(e.year(), t, n), r = e.year() + 1) : (r = e.year(), a = o), { - week: a, - year: r + function R(e, t) { + return e.isValid() ? (t = z(t, e.localeData()), I[t] = I[t] || function(e) { + var t, n, a, r = e.match(j); + for (t = 0, n = r.length; t < n; t++) O[r[t]] ? r[t] = O[r[t]] : r[t] = (a = r[t]).match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, ""); + return function(t) { + var a, i = ""; + for (a = 0; a < n; a++) i += A(r[a]) ? r[a].call(t, e) : r[a]; + return i } - } + }(t), I[t](e)) : e.localeData().invalidDate() + } + + function z(e, t) { + var n = 5; - function Le(e, t, n) { - var a = Ne(e, t, n), - r = Ne(e + 1, t, n); - return (Te(e) - a + r) / 7 + function a(e) { + return t.longDateFormat(e) || e } - N("w", ["ww", 2], "wo", "week"), N("W", ["WW", 2], "Wo", "isoWeek"), F("week", "w"), F("isoWeek", "W"), H("week", 5), H("isoWeek", 5), he("w", ne), he("ww", ne, Q), he("W", ne), he("WW", ne, Q), ye(["w", "ww", "W", "WW"], (function(e, t, n, a) { - t[a.substr(0, 1)] = Y(e) - })); + for (M.lastIndex = 0; n >= 0 && M.test(e);) e = e.replace(M, a), M.lastIndex = 0, n -= 1; + return e + } + var L = {}; - function Fe(e, t) { - return e.slice(t, 7).concat(e.slice(0, t)) - } - N("d", 0, "do", "day"), N("dd", 0, 0, (function(e) { - return this.localeData().weekdaysMin(this, e) - })), N("ddd", 0, 0, (function(e) { - return this.localeData().weekdaysShort(this, e) - })), N("dddd", 0, 0, (function(e) { - return this.localeData().weekdays(this, e) - })), N("e", 0, 0, "weekday"), N("E", 0, 0, "isoWeekday"), F("day", "d"), F("weekday", "e"), F("isoWeekday", "E"), H("day", 11), H("weekday", 11), H("isoWeekday", 11), he("d", ne), he("e", ne), he("E", ne), he("dd", (function(e, t) { - return t.weekdaysMinRegex(e) - })), he("ddd", (function(e, t) { - return t.weekdaysShortRegex(e) - })), he("dddd", (function(e, t) { - return t.weekdaysRegex(e) - })), ye(["dd", "ddd", "dddd"], (function(e, t, n, a) { - var r = n._locale.weekdaysParse(e, a, n._strict); - null != r ? t.d = r : m(n).invalidWeekday = e - })), ye(["d", "e", "E"], (function(e, t, n, a) { - t[a] = Y(e) - })); - var qe = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), - Be = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), - Ue = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), - He = pe, - Ve = pe, - We = pe; + function F(e, t) { + var n = e.toLowerCase(); + L[n] = L[n + "s"] = L[t] = e + } - function Ye(e, t, n) { - var a, r, i, o = e.toLocaleLowerCase(); - if (!this._weekdaysParse) - for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], a = 0; a < 7; ++a) i = h([2e3, 1]).day(a), this._minWeekdaysParse[a] = this.weekdaysMin(i, "").toLocaleLowerCase(), this._shortWeekdaysParse[a] = this.weekdaysShort(i, "").toLocaleLowerCase(), this._weekdaysParse[a] = this.weekdays(i, "").toLocaleLowerCase(); - return n ? "dddd" === t ? -1 !== (r = ke.call(this._weekdaysParse, o)) ? r : null : "ddd" === t ? -1 !== (r = ke.call(this._shortWeekdaysParse, o)) ? r : null : -1 !== (r = ke.call(this._minWeekdaysParse, o)) ? r : null : "dddd" === t ? -1 !== (r = ke.call(this._weekdaysParse, o)) || -1 !== (r = ke.call(this._shortWeekdaysParse, o)) || -1 !== (r = ke.call(this._minWeekdaysParse, o)) ? r : null : "ddd" === t ? -1 !== (r = ke.call(this._shortWeekdaysParse, o)) || -1 !== (r = ke.call(this._weekdaysParse, o)) || -1 !== (r = ke.call(this._minWeekdaysParse, o)) ? r : null : -1 !== (r = ke.call(this._minWeekdaysParse, o)) || -1 !== (r = ke.call(this._weekdaysParse, o)) || -1 !== (r = ke.call(this._shortWeekdaysParse, o)) ? r : null - } + function q(e) { + return "string" == typeof e ? L[e] || L[e.toLowerCase()] : void 0 + } - function Ge() { - function e(e, t) { - return t.length - e.length - } - var t, n, a, r, i, o = [], - s = [], - l = [], - c = []; - for (t = 0; t < 7; t++) n = h([2e3, 1]).day(t), a = fe(this.weekdaysMin(n, "")), r = fe(this.weekdaysShort(n, "")), i = fe(this.weekdays(n, "")), o.push(a), s.push(r), l.push(i), c.push(a), c.push(r), c.push(i); - o.sort(e), s.sort(e), l.sort(e), c.sort(e), this._weekdaysRegex = new RegExp("^(" + c.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + l.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + s.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + o.join("|") + ")", "i") - } + function B(e) { + var t, n, a = {}; + for (n in e) o(e, n) && (t = q(n)) && (a[t] = e[n]); + return a + } + var U = {}; - function Ke() { - return this.hours() % 12 || 12 - } + function H(e, t) { + U[e] = t + } - function $e(e, t) { - N(e, 0, 0, (function() { - return this.localeData().meridiem(this.hours(), this.minutes(), t) - })) - } + function V(e) { + return e % 4 == 0 && e % 100 != 0 || e % 400 == 0 + } - function Je(e, t) { - return t._meridiemParse - } - N("H", ["HH", 2], 0, "hour"), N("h", ["hh", 2], 0, Ke), N("k", ["kk", 2], 0, (function() { - return this.hours() || 24 - })), N("hmm", 0, 0, (function() { - return "" + Ke.apply(this) + D(this.minutes(), 2) - })), N("hmmss", 0, 0, (function() { - return "" + Ke.apply(this) + D(this.minutes(), 2) + D(this.seconds(), 2) - })), N("Hmm", 0, 0, (function() { - return "" + this.hours() + D(this.minutes(), 2) - })), N("Hmmss", 0, 0, (function() { - return "" + this.hours() + D(this.minutes(), 2) + D(this.seconds(), 2) - })), $e("a", !0), $e("A", !1), F("hour", "h"), H("hour", 13), he("a", Je), he("A", Je), he("H", ne), he("h", ne), he("k", ne), he("HH", ne, Q), he("hh", ne, Q), he("kk", ne, Q), he("hmm", ae), he("hmmss", re), he("Hmm", ae), he("Hmmss", re), be(["H", "HH"], 3), be(["k", "kk"], (function(e, t, n) { - var a = Y(e); - t[3] = 24 === a ? 0 : a - })), be(["a", "A"], (function(e, t, n) { - n._isPm = n._locale.isPM(e), n._meridiem = e - })), be(["h", "hh"], (function(e, t, n) { - t[3] = Y(e), m(n).bigHour = !0 - })), be("hmm", (function(e, t, n) { - var a = e.length - 2; - t[3] = Y(e.substr(0, a)), t[4] = Y(e.substr(a)), m(n).bigHour = !0 - })), be("hmmss", (function(e, t, n) { - var a = e.length - 4, - r = e.length - 2; - t[3] = Y(e.substr(0, a)), t[4] = Y(e.substr(a, 2)), t[5] = Y(e.substr(r)), m(n).bigHour = !0 - })), be("Hmm", (function(e, t, n) { - var a = e.length - 2; - t[3] = Y(e.substr(0, a)), t[4] = Y(e.substr(a)) - })), be("Hmmss", (function(e, t, n) { - var a = e.length - 4, - r = e.length - 2; - t[3] = Y(e.substr(0, a)), t[4] = Y(e.substr(a, 2)), t[5] = Y(e.substr(r)) - })); - var Ze = G("Hours", !0); - var Qe, Xe = { - calendar: { - sameDay: "[Today at] LT", - nextDay: "[Tomorrow at] LT", - nextWeek: "dddd [at] LT", - lastDay: "[Yesterday at] LT", - lastWeek: "[Last] dddd [at] LT", - sameElse: "L" - }, - longDateFormat: { - LTS: "h:mm:ss A", - LT: "h:mm A", - L: "MM/DD/YYYY", - LL: "MMMM D, YYYY", - LLL: "MMMM D, YYYY h:mm A", - LLLL: "dddd, MMMM D, YYYY h:mm A" - }, - invalidDate: "Invalid date", - ordinal: "%d", - dayOfMonthOrdinalParse: /\d{1,2}/, - relativeTime: { - future: "in %s", - past: "%s ago", - s: "a few seconds", - ss: "%d seconds", - m: "a minute", - mm: "%d minutes", - h: "an hour", - hh: "%d hours", - d: "a day", - dd: "%d days", - w: "a week", - ww: "%d weeks", - M: "a month", - MM: "%d months", - y: "a year", - yy: "%d years" - }, - months: we, - monthsShort: Se, - week: { - dow: 0, - doy: 6 - }, - weekdays: qe, - weekdaysMin: Ue, - weekdaysShort: Be, - meridiemParse: /[ap]\.?m?\.?/i - }, - et = {}, - tt = {}; + function W(e) { + return e < 0 ? Math.ceil(e) || 0 : Math.floor(e) + } - function nt(e, t) { - var n, a = Math.min(e.length, t.length); - for (n = 0; n < a; n += 1) - if (e[n] !== t[n]) return n; - return a - } + function Y(e) { + var t = +e, + n = 0; + return 0 !== t && isFinite(t) && (n = W(t)), n + } - function at(e) { - return e ? e.toLowerCase().replace("_", "-") : e + function G(e, t) { + return function(n) { + return null != n ? ($(this, e, n), a.updateOffset(this, t), this) : K(this, e) } + } - function rt(t) { - var n = null; - if (void 0 === et[t] && e && e.exports) try { - n = Qe._abbr, Object(function() { - var e = new Error("Cannot find module 'undefined'"); - throw e.code = "MODULE_NOT_FOUND", e - }()), it(n) - } catch (e) { - et[t] = null - } - return et[t] - } + function K(e, t) { + return e.isValid() ? e._d["get" + (e._isUTC ? "UTC" : "") + t]() : NaN + } - function it(e, t) { - var n; - return e && ((n = l(t) ? st(e) : ot(e, t)) ? Qe = n : "undefined" != typeof console && console.warn && console.warn("Locale " + e + " not found. Did you forget to load it?")), Qe._abbr - } + function $(e, t, n) { + e.isValid() && !isNaN(n) && ("FullYear" === t && V(e.year()) && 1 === e.month() && 29 === e.date() ? (n = Y(n), e._d["set" + (e._isUTC ? "UTC" : "") + t](n, e.month(), _e(n, e.month()))) : e._d["set" + (e._isUTC ? "UTC" : "") + t](n)) + } + var J, Z = /\d/, + Q = /\d\d/, + X = /\d{3}/, + ee = /\d{4}/, + te = /[+-]?\d{6}/, + ne = /\d\d?/, + ae = /\d\d\d\d?/, + re = /\d\d\d\d\d\d?/, + ie = /\d{1,3}/, + oe = /\d{1,4}/, + se = /[+-]?\d{1,6}/, + le = /\d+/, + ce = /[+-]?\d+/, + ue = /Z|[+-]\d\d:?\d\d/gi, + de = /Z|[+-]\d\d(?::?\d\d)?/gi, + pe = /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; - function ot(e, t) { - if (null !== t) { - var n, a = Xe; - if (t.abbr = e, null != et[e]) C("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), a = et[e]._config; - else if (null != t.parentLocale) - if (null != et[t.parentLocale]) a = et[t.parentLocale]._config; - else { - if (null == (n = rt(t.parentLocale))) return tt[t.parentLocale] || (tt[t.parentLocale] = []), tt[t.parentLocale].push({ - name: e, - config: t - }), null; - a = n._config - } return et[e] = new P(j(a, t)), tt[e] && tt[e].forEach((function(e) { - ot(e.name, e.config) - })), it(e), et[e] - } - return delete et[e], null + function he(e, t, n) { + J[e] = A(t) ? t : function(e, a) { + return e && n ? n : t } + } - function st(e) { - var t; - if (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e) return Qe; - if (!r(e)) { - if (t = rt(e)) return t; - e = [e] - } - return function(e) { - for (var t, n, a, r, i = 0; i < e.length;) { - for (t = (r = at(e[i]).split("-")).length, n = (n = at(e[i + 1])) ? n.split("-") : null; t > 0;) { - if (a = rt(r.slice(0, t).join("-"))) return a; - if (n && n.length >= t && nt(r, n) >= t - 1) break; - t-- - } - i++ - } - return Qe - }(e) - } + function me(e, t) { + return o(J, e) ? J[e](t._strict, t._locale) : new RegExp(fe(e.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, (function(e, t, n, a, r) { + return t || n || a || r + })))) + } - function lt(e) { - var t, n = e._a; - return n && -2 === m(e).overflow && (t = n[1] < 0 || n[1] > 11 ? 1 : n[2] < 1 || n[2] > _e(n[0], n[1]) ? 2 : n[3] < 0 || n[3] > 24 || 24 === n[3] && (0 !== n[4] || 0 !== n[5] || 0 !== n[6]) ? 3 : n[4] < 0 || n[4] > 59 ? 4 : n[5] < 0 || n[5] > 59 ? 5 : n[6] < 0 || n[6] > 999 ? 6 : -1, m(e)._overflowDayOfYear && (t < 0 || t > 2) && (t = 2), m(e)._overflowWeeks && -1 === t && (t = 7), m(e)._overflowWeekday && -1 === t && (t = 8), m(e).overflow = t), e - } - var ct = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - ut = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, - dt = /Z|[+-]\d\d(?::?\d\d)?/, - pt = [ - ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], - ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], - ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], - ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], - ["YYYY-DDD", /\d{4}-\d{3}/], - ["YYYY-MM", /\d{4}-\d\d/, !1], - ["YYYYYYMMDD", /[+-]\d{10}/], - ["YYYYMMDD", /\d{8}/], - ["GGGG[W]WWE", /\d{4}W\d{3}/], - ["GGGG[W]WW", /\d{4}W\d{2}/, !1], - ["YYYYDDD", /\d{7}/], - ["YYYYMM", /\d{6}/, !1], - ["YYYY", /\d{4}/, !1] - ], - ht = [ - ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], - ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], - ["HH:mm:ss", /\d\d:\d\d:\d\d/], - ["HH:mm", /\d\d:\d\d/], - ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], - ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], - ["HHmmss", /\d\d\d\d\d\d/], - ["HHmm", /\d\d\d\d/], - ["HH", /\d\d/] - ], - mt = /^\/?Date\((-?\d+)/i, - ft = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, - gt = { - UT: 0, - GMT: 0, - EDT: -240, - EST: -300, - CDT: -300, - CST: -360, - MDT: -360, - MST: -420, - PDT: -420, - PST: -480 - }; + function fe(e) { + return e.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&") + } + J = {}; + var ge = {}; - function bt(e) { - var t, n, a, r, i, o, s = e._i, - l = ct.exec(s) || ut.exec(s); - if (l) { - for (m(e).iso = !0, t = 0, n = pt.length; t < n; t++) - if (pt[t][1].exec(l[1])) { - r = pt[t][0], a = !1 !== pt[t][2]; - break - } if (null == r) return void(e._isValid = !1); - if (l[3]) { - for (t = 0, n = ht.length; t < n; t++) - if (ht[t][1].exec(l[3])) { - i = (l[2] || " ") + ht[t][0]; - break - } if (null == i) return void(e._isValid = !1) - } - if (!a && null != i) return void(e._isValid = !1); - if (l[4]) { - if (!dt.exec(l[4])) return void(e._isValid = !1); - o = "Z" - } - e._f = r + (i || "") + (o || ""), wt(e) - } else e._isValid = !1 - } - - function yt(e) { - var t = parseInt(e, 10); - return t <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t - } - - function vt(e) { - var t, n, a, r, i, o, s, l, c = ft.exec(e._i.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "")); - if (c) { - if (n = c[4], a = c[3], r = c[2], i = c[5], o = c[6], s = c[7], l = [yt(n), Se.indexOf(a), parseInt(r, 10), parseInt(i, 10), parseInt(o, 10)], s && l.push(parseInt(s, 10)), t = l, ! function(e, t, n) { - return !e || Be.indexOf(e) === new Date(t[0], t[1], t[2]).getDay() || (m(n).weekdayMismatch = !0, n._isValid = !1, !1) - }(c[1], t, e)) return; - e._a = t, e._tzm = function(e, t, n) { - if (e) return gt[e]; - if (t) return 0; - var a = parseInt(n, 10), - r = a % 100; - return (a - r) / 100 * 60 + r - }(c[8], c[9], c[10]), e._d = Ie.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), m(e).rfc2822 = !0 - } else e._isValid = !1 - } - - function kt(e, t, n) { - return null != e ? e : null != t ? t : n - } - - function _t(e) { - var t, n, r, i, o, s = []; - if (!e._d) { - for (r = function(e) { - var t = new Date(a.now()); - return e._useUTC ? [t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()] : [t.getFullYear(), t.getMonth(), t.getDate()] - }(e), e._w && null == e._a[2] && null == e._a[1] && function(e) { - var t, n, a, r, i, o, s, l, c; - null != (t = e._w).GG || null != t.W || null != t.E ? (i = 1, o = 4, n = kt(t.GG, e._a[0], Re(xt(), 1, 4).year), a = kt(t.W, 1), ((r = kt(t.E, 1)) < 1 || r > 7) && (l = !0)) : (i = e._locale._week.dow, o = e._locale._week.doy, c = Re(xt(), i, o), n = kt(t.gg, e._a[0], c.year), a = kt(t.w, c.week), null != t.d ? ((r = t.d) < 0 || r > 6) && (l = !0) : null != t.e ? (r = t.e + i, (t.e < 0 || t.e > 6) && (l = !0)) : r = i), a < 1 || a > Le(n, i, o) ? m(e)._overflowWeeks = !0 : null != l ? m(e)._overflowWeekday = !0 : (s = ze(n, a, r, i, o), e._a[0] = s.year, e._dayOfYear = s.dayOfYear) - }(e), null != e._dayOfYear && (o = kt(e._a[0], r[0]), (e._dayOfYear > Te(o) || 0 === e._dayOfYear) && (m(e)._overflowDayOfYear = !0), n = Ie(o, 0, e._dayOfYear), e._a[1] = n.getUTCMonth(), e._a[2] = n.getUTCDate()), t = 0; t < 3 && null == e._a[t]; ++t) e._a[t] = s[t] = r[t]; - for (; t < 7; t++) e._a[t] = s[t] = null == e._a[t] ? 2 === t ? 1 : 0 : e._a[t]; - 24 === e._a[3] && 0 === e._a[4] && 0 === e._a[5] && 0 === e._a[6] && (e._nextDay = !0, e._a[3] = 0), e._d = (e._useUTC ? Ie : Me).apply(null, s), i = e._useUTC ? e._d.getUTCDay() : e._d.getDay(), null != e._tzm && e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay && (e._a[3] = 24), e._w && void 0 !== e._w.d && e._w.d !== i && (m(e).weekdayMismatch = !0) - } - } - - function wt(e) { - if (e._f !== a.ISO_8601) - if (e._f !== a.RFC_2822) { - e._a = [], m(e).empty = !0; - var t, n, r, i, o, s, l = "" + e._i, - c = l.length, - u = 0; - for (r = R(e._f, e._locale).match(T) || [], t = 0; t < r.length; t++) i = r[t], (n = (l.match(me(i, e)) || [])[0]) && ((o = l.substr(0, l.indexOf(n))).length > 0 && m(e).unusedInput.push(o), l = l.slice(l.indexOf(n) + n.length), u += n.length), I[i] ? (n ? m(e).empty = !1 : m(e).unusedTokens.push(i), ve(i, n, e)) : e._strict && !n && m(e).unusedTokens.push(i); - m(e).charsLeftOver = c - u, l.length > 0 && m(e).unusedInput.push(l), e._a[3] <= 12 && !0 === m(e).bigHour && e._a[3] > 0 && (m(e).bigHour = void 0), m(e).parsedDateParts = e._a.slice(0), m(e).meridiem = e._meridiem, e._a[3] = function(e, t, n) { - var a; - return null == n ? t : null != e.meridiemHour ? e.meridiemHour(t, n) : null != e.isPM ? ((a = e.isPM(n)) && t < 12 && (t += 12), a || 12 !== t || (t = 0), t) : t - }(e._locale, e._a[3], e._meridiem), null !== (s = m(e).era) && (e._a[0] = e._locale.erasConvertYear(s, e._a[0])), _t(e), lt(e) - } else vt(e); - else bt(e) - } - - function St(e) { - var t = e._i, - n = e._f; - return e._locale = e._locale || st(e._l), null === t || void 0 === n && "" === t ? g({ - nullInput: !0 - }) : ("string" == typeof t && (e._i = t = e._locale.preparse(t)), _(t) ? new k(lt(t)) : (u(t) ? e._d = t : r(n) ? function(e) { - var t, n, a, r, i, o, s = !1; - if (0 === e._f.length) return m(e).invalidFormat = !0, void(e._d = new Date(NaN)); - for (r = 0; r < e._f.length; r++) i = 0, o = !1, t = v({}, e), null != e._useUTC && (t._useUTC = e._useUTC), t._f = e._f[r], wt(t), f(t) && (o = !0), i += m(t).charsLeftOver, i += 10 * m(t).unusedTokens.length, m(t).score = i, s ? i < a && (a = i, n = t) : (null == a || i < a || o) && (a = i, n = t, o && (s = !0)); - p(e, n || t) - }(e) : n ? wt(e) : function(e) { - var t = e._i; - l(t) ? e._d = new Date(a.now()) : u(t) ? e._d = new Date(t.valueOf()) : "string" == typeof t ? function(e) { - var t = mt.exec(e._i); - null === t ? (bt(e), !1 === e._isValid && (delete e._isValid, vt(e), !1 === e._isValid && (delete e._isValid, e._strict ? e._isValid = !1 : a.createFromInputFallback(e)))) : e._d = new Date(+t[1]) - }(e) : r(t) ? (e._a = d(t.slice(0), (function(e) { - return parseInt(e, 10) - })), _t(e)) : i(t) ? function(e) { - if (!e._d) { - var t = B(e._i), - n = void 0 === t.day ? t.date : t.day; - e._a = d([t.year, t.month, n, t.hour, t.minute, t.second, t.millisecond], (function(e) { - return e && parseInt(e, 10) - })), _t(e) - } - }(e) : c(t) ? e._d = new Date(t) : a.createFromInputFallback(e) - }(e), f(e) || (e._d = null), e)) - } - - function Et(e, t, n, a, o) { - var l = {}; - return !0 !== t && !1 !== t || (a = t, t = void 0), !0 !== n && !1 !== n || (a = n, n = void 0), (i(e) && s(e) || r(e) && 0 === e.length) && (e = void 0), l._isAMomentObject = !0, l._useUTC = l._isUTC = o, l._l = n, l._i = e, l._f = t, l._strict = a, - function(e) { - var t = new k(lt(St(e))); - return t._nextDay && (t.add(1, "d"), t._nextDay = void 0), t - }(l) - } + function be(e, t) { + var n, a = t; + for ("string" == typeof e && (e = [e]), c(t) && (a = function(e, n) { + n[t] = Y(e) + }), n = 0; n < e.length; n++) ge[e[n]] = a + } - function xt(e, t, n, a) { - return Et(e, t, n, a, !1) - } - a.createFromInputFallback = S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", (function(e) { - e._d = new Date(e._i + (e._useUTC ? " UTC" : "")) - })), a.ISO_8601 = function() {}, a.RFC_2822 = function() {}; - var Ct = S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", (function() { - var e = xt.apply(null, arguments); - return this.isValid() && e.isValid() ? e < this ? this : e : g() - })), - At = S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", (function() { - var e = xt.apply(null, arguments); - return this.isValid() && e.isValid() ? e > this ? this : e : g() - })); + function ye(e, t) { + be(e, (function(e, n, a, r) { + a._w = a._w || {}, t(e, a._w, a, r) + })) + } - function jt(e, t) { - var n, a; - if (1 === t.length && r(t[0]) && (t = t[0]), !t.length) return xt(); - for (n = t[0], a = 1; a < t.length; ++a) t[a].isValid() && !t[a][e](n) || (n = t[a]); - return n - } - var Pt = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; - - function Dt(e) { - var t = B(e), - n = t.year || 0, - a = t.quarter || 0, - r = t.month || 0, - i = t.week || t.isoWeek || 0, - s = t.day || 0, - l = t.hour || 0, - c = t.minute || 0, - u = t.second || 0, - d = t.millisecond || 0; - this._isValid = function(e) { - var t, n, a = !1; - for (t in e) - if (o(e, t) && (-1 === ke.call(Pt, t) || null != e[t] && isNaN(e[t]))) return !1; - for (n = 0; n < Pt.length; ++n) - if (e[Pt[n]]) { - if (a) return !1; - parseFloat(e[Pt[n]]) !== Y(e[Pt[n]]) && (a = !0) - } return !0 - }(t), this._milliseconds = +d + 1e3 * u + 6e4 * c + 1e3 * l * 60 * 60, this._days = +s + 7 * i, this._months = +r + 3 * a + 12 * n, this._data = {}, this._locale = st(), this._bubble() - } - - function Tt(e) { - return e instanceof Dt - } - - function Ot(e) { - return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e) - } - - function Mt(e, t) { - N(e, 0, 0, (function() { - var e = this.utcOffset(), - n = "+"; - return e < 0 && (e = -e, n = "-"), n + D(~~(e / 60), 2) + t + D(~~e % 60, 2) - })) - } - Mt("Z", ":"), Mt("ZZ", ""), he("Z", de), he("ZZ", de), be(["Z", "ZZ"], (function(e, t, n) { - n._useUTC = !0, n._tzm = Nt(de, e) - })); - var It = /([\+\-]|\d\d)/gi; + function ve(e, t, n) { + null != t && o(ge, e) && ge[e](t, n._a, n, e) + } + var ke; + + function _e(e, t) { + if (isNaN(e) || isNaN(t)) return NaN; + var n, a = (t % (n = 12) + n) % n; + return e += (t - a) / 12, 1 === a ? V(e) ? 29 : 28 : 31 - a % 7 % 2 + } + ke = Array.prototype.indexOf ? Array.prototype.indexOf : function(e) { + var t; + for (t = 0; t < this.length; ++t) + if (this[t] === e) return t; + return -1 + }, N("M", ["MM", 2], "Mo", (function() { + return this.month() + 1 + })), N("MMM", 0, 0, (function(e) { + return this.localeData().monthsShort(this, e) + })), N("MMMM", 0, 0, (function(e) { + return this.localeData().months(this, e) + })), F("month", "M"), H("month", 8), he("M", ne), he("MM", ne, Q), he("MMM", (function(e, t) { + return t.monthsShortRegex(e) + })), he("MMMM", (function(e, t) { + return t.monthsRegex(e) + })), be(["M", "MM"], (function(e, t) { + t[1] = Y(e) - 1 + })), be(["MMM", "MMMM"], (function(e, t, n, a) { + var r = n._locale.monthsParse(e, a, n._strict); + null != r ? t[1] = r : m(n).invalidMonth = e + })); + var we = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), + Se = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), + Ee = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + xe = pe, + Ce = pe; + + function Ae(e, t, n) { + var a, r, i, o = e.toLocaleLowerCase(); + if (!this._monthsParse) + for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], a = 0; a < 12; ++a) i = h([2e3, a]), this._shortMonthsParse[a] = this.monthsShort(i, "").toLocaleLowerCase(), this._longMonthsParse[a] = this.months(i, "").toLocaleLowerCase(); + return n ? "MMM" === t ? -1 !== (r = ke.call(this._shortMonthsParse, o)) ? r : null : -1 !== (r = ke.call(this._longMonthsParse, o)) ? r : null : "MMM" === t ? -1 !== (r = ke.call(this._shortMonthsParse, o)) || -1 !== (r = ke.call(this._longMonthsParse, o)) ? r : null : -1 !== (r = ke.call(this._longMonthsParse, o)) || -1 !== (r = ke.call(this._shortMonthsParse, o)) ? r : null + } + + function Te(e, t) { + var n; + if (!e.isValid()) return e; + if ("string" == typeof t) + if (/^\d+$/.test(t)) t = Y(t); + else if (!c(t = e.localeData().monthsParse(t))) return e; + return n = Math.min(e.date(), _e(e.year(), t)), e._d["set" + (e._isUTC ? "UTC" : "") + "Month"](t, n), e + } - function Nt(e, t) { - var n, a, r = (t || "").match(e); - return null === r ? null : 0 === (a = 60 * (n = ((r[r.length - 1] || []) + "").match(It) || ["-", 0, 0])[1] + Y(n[2])) ? 0 : "+" === n[0] ? a : -a - } + function De(e) { + return null != e ? (Te(this, e), a.updateOffset(this, !0), this) : K(this, "Month") + } - function zt(e, t) { - var n, r; - return t._isUTC ? (n = t.clone(), r = (_(e) || u(e) ? e.valueOf() : xt(e).valueOf()) - n.valueOf(), n._d.setTime(n._d.valueOf() + r), a.updateOffset(n, !1), n) : xt(e).local() + function Pe() { + function e(e, t) { + return t.length - e.length } + var t, n, a = [], + r = [], + i = []; + for (t = 0; t < 12; t++) n = h([2e3, t]), a.push(this.monthsShort(n, "")), r.push(this.months(n, "")), i.push(this.months(n, "")), i.push(this.monthsShort(n, "")); + for (a.sort(e), r.sort(e), i.sort(e), t = 0; t < 12; t++) a[t] = fe(a[t]), r[t] = fe(r[t]); + for (t = 0; t < 24; t++) i[t] = fe(i[t]); + this._monthsRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + r.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + a.join("|") + ")", "i") + } + + function je(e) { + return V(e) ? 366 : 365 + } + N("Y", 0, 0, (function() { + var e = this.year(); + return e <= 9999 ? P(e, 4) : "+" + e + })), N(0, ["YY", 2], 0, (function() { + return this.year() % 100 + })), N(0, ["YYYY", 4], 0, "year"), N(0, ["YYYYY", 5], 0, "year"), N(0, ["YYYYYY", 6, !0], 0, "year"), F("year", "y"), H("year", 1), he("Y", ce), he("YY", ne, Q), he("YYYY", oe, ee), he("YYYYY", se, te), he("YYYYYY", se, te), be(["YYYYY", "YYYYYY"], 0), be("YYYY", (function(e, t) { + t[0] = 2 === e.length ? a.parseTwoDigitYear(e) : Y(e) + })), be("YY", (function(e, t) { + t[0] = a.parseTwoDigitYear(e) + })), be("Y", (function(e, t) { + t[0] = parseInt(e, 10) + })), a.parseTwoDigitYear = function(e) { + return Y(e) + (Y(e) > 68 ? 1900 : 2e3) + }; + var Me = G("FullYear", !0); - function Rt(e) { - return -Math.round(e._d.getTimezoneOffset()) - } + function Ie(e, t, n, a, r, i, o) { + var s; + return e < 100 && e >= 0 ? (s = new Date(e + 400, t, n, a, r, i, o), isFinite(s.getFullYear()) && s.setFullYear(e)) : s = new Date(e, t, n, a, r, i, o), s + } - function Lt() { - return !!this.isValid() && this._isUTC && 0 === this._offset - } - a.updateOffset = function() {}; - var Ft = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, - qt = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + function Oe(e) { + var t, n; + return e < 100 && e >= 0 ? ((n = Array.prototype.slice.call(arguments))[0] = e + 400, t = new Date(Date.UTC.apply(null, n)), isFinite(t.getUTCFullYear()) && t.setUTCFullYear(e)) : t = new Date(Date.UTC.apply(null, arguments)), t + } - function Bt(e, t) { - var n, a, r, i, s, l, u = e, - d = null; - return Tt(e) ? u = { - ms: e._milliseconds, - d: e._days, - M: e._months - } : c(e) || !isNaN(+e) ? (u = {}, t ? u[t] = +e : u.milliseconds = +e) : (d = Ft.exec(e)) ? (n = "-" === d[1] ? -1 : 1, u = { - y: 0, - d: Y(d[2]) * n, - h: Y(d[3]) * n, - m: Y(d[4]) * n, - s: Y(d[5]) * n, - ms: Y(Ot(1e3 * d[6])) * n - }) : (d = qt.exec(e)) ? (n = "-" === d[1] ? -1 : 1, u = { - y: Ut(d[2], n), - M: Ut(d[3], n), - w: Ut(d[4], n), - d: Ut(d[5], n), - h: Ut(d[6], n), - m: Ut(d[7], n), - s: Ut(d[8], n) - }) : null == u ? u = {} : "object" == typeof u && ("from" in u || "to" in u) && (i = xt(u.from), s = xt(u.to), r = i.isValid() && s.isValid() ? (s = zt(s, i), i.isBefore(s) ? l = Ht(i, s) : ((l = Ht(s, i)).milliseconds = -l.milliseconds, l.months = -l.months), l) : { - milliseconds: 0, - months: 0 - }, (u = {}).ms = r.milliseconds, u.M = r.months), a = new Dt(u), Tt(e) && o(e, "_locale") && (a._locale = e._locale), Tt(e) && o(e, "_isValid") && (a._isValid = e._isValid), a - } - - function Ut(e, t) { - var n = e && parseFloat(e.replace(",", ".")); - return (isNaN(n) ? 0 : n) * t - } - - function Ht(e, t) { - var n = {}; - return n.months = t.month() - e.month() + 12 * (t.year() - e.year()), e.clone().add(n.months, "M").isAfter(t) && --n.months, n.milliseconds = +t - +e.clone().add(n.months, "M"), n - } + function Ne(e, t, n) { + var a = 7 + t - n; + return -(7 + Oe(e, 0, a).getUTCDay() - t) % 7 + a - 1 + } - function Vt(e, t) { - return function(n, a) { - var r; - return null === a || isNaN(+a) || (C(t, "moment()." + t + "(period, number) is deprecated. Please use moment()." + t + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), r = n, n = a, a = r), Wt(this, Bt(n, a), e), this - } + function Re(e, t, n, a, r) { + var i, o, s = 1 + 7 * (t - 1) + (7 + n - a) % 7 + Ne(e, a, r); + return s <= 0 ? o = je(i = e - 1) + s : s > je(e) ? (i = e + 1, o = s - je(e)) : (i = e, o = s), { + year: i, + dayOfYear: o } + } - function Wt(e, t, n, r) { - var i = t._milliseconds, - o = Ot(t._days), - s = Ot(t._months); - e.isValid() && (r = null == r || r, s && je(e, K(e, "Month") + s * n), o && $(e, "Date", K(e, "Date") + o * n), i && e._d.setTime(e._d.valueOf() + i * n), r && a.updateOffset(e, o || s)) + function ze(e, t, n) { + var a, r, i = Ne(e.year(), t, n), + o = Math.floor((e.dayOfYear() - i - 1) / 7) + 1; + return o < 1 ? a = o + Le(r = e.year() - 1, t, n) : o > Le(e.year(), t, n) ? (a = o - Le(e.year(), t, n), r = e.year() + 1) : (r = e.year(), a = o), { + week: a, + year: r } - Bt.fn = Dt.prototype, Bt.invalid = function() { - return Bt(NaN) - }; - var Yt = Vt(1, "add"), - Gt = Vt(-1, "subtract"); + } - function Kt(e) { - return "string" == typeof e || e instanceof String - } + function Le(e, t, n) { + var a = Ne(e, t, n), + r = Ne(e + 1, t, n); + return (je(e) - a + r) / 7 + } + N("w", ["ww", 2], "wo", "week"), N("W", ["WW", 2], "Wo", "isoWeek"), F("week", "w"), F("isoWeek", "W"), H("week", 5), H("isoWeek", 5), he("w", ne), he("ww", ne, Q), he("W", ne), he("WW", ne, Q), ye(["w", "ww", "W", "WW"], (function(e, t, n, a) { + t[a.substr(0, 1)] = Y(e) + })); - function $t(e) { - return _(e) || u(e) || Kt(e) || c(e) || function(e) { - var t = r(e), - n = !1; - return t && (n = 0 === e.filter((function(t) { - return !c(t) && Kt(e) - })).length), t && n - }(e) || function(e) { - var t, n, a = i(e) && !s(e), - r = !1, - l = ["years", "year", "y", "months", "month", "M", "days", "day", "d", "dates", "date", "D", "hours", "hour", "h", "minutes", "minute", "m", "seconds", "second", "s", "milliseconds", "millisecond", "ms"]; - for (t = 0; t < l.length; t += 1) n = l[t], r = r || o(e, n); - return a && r - }(e) || null == e - } + function Fe(e, t) { + return e.slice(t, 7).concat(e.slice(0, t)) + } + N("d", 0, "do", "day"), N("dd", 0, 0, (function(e) { + return this.localeData().weekdaysMin(this, e) + })), N("ddd", 0, 0, (function(e) { + return this.localeData().weekdaysShort(this, e) + })), N("dddd", 0, 0, (function(e) { + return this.localeData().weekdays(this, e) + })), N("e", 0, 0, "weekday"), N("E", 0, 0, "isoWeekday"), F("day", "d"), F("weekday", "e"), F("isoWeekday", "E"), H("day", 11), H("weekday", 11), H("isoWeekday", 11), he("d", ne), he("e", ne), he("E", ne), he("dd", (function(e, t) { + return t.weekdaysMinRegex(e) + })), he("ddd", (function(e, t) { + return t.weekdaysShortRegex(e) + })), he("dddd", (function(e, t) { + return t.weekdaysRegex(e) + })), ye(["dd", "ddd", "dddd"], (function(e, t, n, a) { + var r = n._locale.weekdaysParse(e, a, n._strict); + null != r ? t.d = r : m(n).invalidWeekday = e + })), ye(["d", "e", "E"], (function(e, t, n, a) { + t[a] = Y(e) + })); + var qe = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), + Be = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), + Ue = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), + He = pe, + Ve = pe, + We = pe; - function Jt(e) { - var t, n = i(e) && !s(e), - a = !1, - r = ["sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse"]; - for (t = 0; t < r.length; t += 1) a = a || o(e, r[t]); - return n && a - } + function Ye(e, t, n) { + var a, r, i, o = e.toLocaleLowerCase(); + if (!this._weekdaysParse) + for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], a = 0; a < 7; ++a) i = h([2e3, 1]).day(a), this._minWeekdaysParse[a] = this.weekdaysMin(i, "").toLocaleLowerCase(), this._shortWeekdaysParse[a] = this.weekdaysShort(i, "").toLocaleLowerCase(), this._weekdaysParse[a] = this.weekdays(i, "").toLocaleLowerCase(); + return n ? "dddd" === t ? -1 !== (r = ke.call(this._weekdaysParse, o)) ? r : null : "ddd" === t ? -1 !== (r = ke.call(this._shortWeekdaysParse, o)) ? r : null : -1 !== (r = ke.call(this._minWeekdaysParse, o)) ? r : null : "dddd" === t ? -1 !== (r = ke.call(this._weekdaysParse, o)) || -1 !== (r = ke.call(this._shortWeekdaysParse, o)) || -1 !== (r = ke.call(this._minWeekdaysParse, o)) ? r : null : "ddd" === t ? -1 !== (r = ke.call(this._shortWeekdaysParse, o)) || -1 !== (r = ke.call(this._weekdaysParse, o)) || -1 !== (r = ke.call(this._minWeekdaysParse, o)) ? r : null : -1 !== (r = ke.call(this._minWeekdaysParse, o)) || -1 !== (r = ke.call(this._weekdaysParse, o)) || -1 !== (r = ke.call(this._shortWeekdaysParse, o)) ? r : null + } - function Zt(e, t) { - if (e.date() < t.date()) return -Zt(t, e); - var n = 12 * (t.year() - e.year()) + (t.month() - e.month()), - a = e.clone().add(n, "months"); - return -(n + (t - a < 0 ? (t - a) / (a - e.clone().add(n - 1, "months")) : (t - a) / (e.clone().add(n + 1, "months") - a))) || 0 + function Ge() { + function e(e, t) { + return t.length - e.length } + var t, n, a, r, i, o = [], + s = [], + l = [], + c = []; + for (t = 0; t < 7; t++) n = h([2e3, 1]).day(t), a = fe(this.weekdaysMin(n, "")), r = fe(this.weekdaysShort(n, "")), i = fe(this.weekdays(n, "")), o.push(a), s.push(r), l.push(i), c.push(a), c.push(r), c.push(i); + o.sort(e), s.sort(e), l.sort(e), c.sort(e), this._weekdaysRegex = new RegExp("^(" + c.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + l.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + s.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + o.join("|") + ")", "i") + } - function Qt(e) { - var t; - return void 0 === e ? this._locale._abbr : (null != (t = st(e)) && (this._locale = t), this) - } - a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; - var Xt = S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", (function(e) { - return void 0 === e ? this.localeData() : this.locale(e) - })); + function Ke() { + return this.hours() % 12 || 12 + } - function en() { - return this._locale - } - var tn = 1e3, - nn = 6e4, - an = 36e5, - rn = 126227808e5; + function $e(e, t) { + N(e, 0, 0, (function() { + return this.localeData().meridiem(this.hours(), this.minutes(), t) + })) + } - function on(e, t) { - return (e % t + t) % t - } + function Je(e, t) { + return t._meridiemParse + } + N("H", ["HH", 2], 0, "hour"), N("h", ["hh", 2], 0, Ke), N("k", ["kk", 2], 0, (function() { + return this.hours() || 24 + })), N("hmm", 0, 0, (function() { + return "" + Ke.apply(this) + P(this.minutes(), 2) + })), N("hmmss", 0, 0, (function() { + return "" + Ke.apply(this) + P(this.minutes(), 2) + P(this.seconds(), 2) + })), N("Hmm", 0, 0, (function() { + return "" + this.hours() + P(this.minutes(), 2) + })), N("Hmmss", 0, 0, (function() { + return "" + this.hours() + P(this.minutes(), 2) + P(this.seconds(), 2) + })), $e("a", !0), $e("A", !1), F("hour", "h"), H("hour", 13), he("a", Je), he("A", Je), he("H", ne), he("h", ne), he("k", ne), he("HH", ne, Q), he("hh", ne, Q), he("kk", ne, Q), he("hmm", ae), he("hmmss", re), he("Hmm", ae), he("Hmmss", re), be(["H", "HH"], 3), be(["k", "kk"], (function(e, t, n) { + var a = Y(e); + t[3] = 24 === a ? 0 : a + })), be(["a", "A"], (function(e, t, n) { + n._isPm = n._locale.isPM(e), n._meridiem = e + })), be(["h", "hh"], (function(e, t, n) { + t[3] = Y(e), m(n).bigHour = !0 + })), be("hmm", (function(e, t, n) { + var a = e.length - 2; + t[3] = Y(e.substr(0, a)), t[4] = Y(e.substr(a)), m(n).bigHour = !0 + })), be("hmmss", (function(e, t, n) { + var a = e.length - 4, + r = e.length - 2; + t[3] = Y(e.substr(0, a)), t[4] = Y(e.substr(a, 2)), t[5] = Y(e.substr(r)), m(n).bigHour = !0 + })), be("Hmm", (function(e, t, n) { + var a = e.length - 2; + t[3] = Y(e.substr(0, a)), t[4] = Y(e.substr(a)) + })), be("Hmmss", (function(e, t, n) { + var a = e.length - 4, + r = e.length - 2; + t[3] = Y(e.substr(0, a)), t[4] = Y(e.substr(a, 2)), t[5] = Y(e.substr(r)) + })); + var Ze = G("Hours", !0); + var Qe, Xe = { + calendar: { + sameDay: "[Today at] LT", + nextDay: "[Tomorrow at] LT", + nextWeek: "dddd [at] LT", + lastDay: "[Yesterday at] LT", + lastWeek: "[Last] dddd [at] LT", + sameElse: "L" + }, + longDateFormat: { + LTS: "h:mm:ss A", + LT: "h:mm A", + L: "MM/DD/YYYY", + LL: "MMMM D, YYYY", + LLL: "MMMM D, YYYY h:mm A", + LLLL: "dddd, MMMM D, YYYY h:mm A" + }, + invalidDate: "Invalid date", + ordinal: "%d", + dayOfMonthOrdinalParse: /\d{1,2}/, + relativeTime: { + future: "in %s", + past: "%s ago", + s: "a few seconds", + ss: "%d seconds", + m: "a minute", + mm: "%d minutes", + h: "an hour", + hh: "%d hours", + d: "a day", + dd: "%d days", + w: "a week", + ww: "%d weeks", + M: "a month", + MM: "%d months", + y: "a year", + yy: "%d years" + }, + months: we, + monthsShort: Se, + week: { + dow: 0, + doy: 6 + }, + weekdays: qe, + weekdaysMin: Ue, + weekdaysShort: Be, + meridiemParse: /[ap]\.?m?\.?/i + }, + et = {}, + tt = {}; - function sn(e, t, n) { - return e < 100 && e >= 0 ? new Date(e + 400, t, n) - rn : new Date(e, t, n).valueOf() - } + function nt(e, t) { + var n, a = Math.min(e.length, t.length); + for (n = 0; n < a; n += 1) + if (e[n] !== t[n]) return n; + return a + } - function ln(e, t, n) { - return e < 100 && e >= 0 ? Date.UTC(e + 400, t, n) - rn : Date.UTC(e, t, n) - } + function at(e) { + return e ? e.toLowerCase().replace("_", "-") : e + } - function cn(e, t) { - return t.erasAbbrRegex(e) + function rt(t) { + var n = null; + if (void 0 === et[t] && e && e.exports) try { + n = Qe._abbr, Object(function() { + var e = new Error("Cannot find module 'undefined'"); + throw e.code = "MODULE_NOT_FOUND", e + }()), it(n) + } catch (e) { + et[t] = null } + return et[t] + } - function un() { - var e, t, n = [], - a = [], - r = [], - i = [], - o = this.eras(); - for (e = 0, t = o.length; e < t; ++e) a.push(fe(o[e].name)), n.push(fe(o[e].abbr)), r.push(fe(o[e].narrow)), i.push(fe(o[e].name)), i.push(fe(o[e].abbr)), i.push(fe(o[e].narrow)); - this._erasRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._erasNameRegex = new RegExp("^(" + a.join("|") + ")", "i"), this._erasAbbrRegex = new RegExp("^(" + n.join("|") + ")", "i"), this._erasNarrowRegex = new RegExp("^(" + r.join("|") + ")", "i") - } + function it(e, t) { + var n; + return e && ((n = l(t) ? st(e) : ot(e, t)) ? Qe = n : "undefined" != typeof console && console.warn && console.warn("Locale " + e + " not found. Did you forget to load it?")), Qe._abbr + } - function dn(e, t) { - N(0, [e, e.length], 0, t) + function ot(e, t) { + if (null !== t) { + var n, a = Xe; + if (t.abbr = e, null != et[e]) C("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), a = et[e]._config; + else if (null != t.parentLocale) + if (null != et[t.parentLocale]) a = et[t.parentLocale]._config; + else { + if (null == (n = rt(t.parentLocale))) return tt[t.parentLocale] || (tt[t.parentLocale] = []), tt[t.parentLocale].push({ + name: e, + config: t + }), null; + a = n._config + } return et[e] = new D(T(a, t)), tt[e] && tt[e].forEach((function(e) { + ot(e.name, e.config) + })), it(e), et[e] } + return delete et[e], null + } - function pn(e, t, n, a, r) { - var i; - return null == e ? Re(this, a, r).year : (t > (i = Le(e, a, r)) && (t = i), hn.call(this, e, t, n, a, r)) - } - - function hn(e, t, n, a, r) { - var i = ze(e, t, n, a, r), - o = Ie(i.year, 0, i.dayOfYear); - return this.year(o.getUTCFullYear()), this.month(o.getUTCMonth()), this.date(o.getUTCDate()), this - } - N("N", 0, 0, "eraAbbr"), N("NN", 0, 0, "eraAbbr"), N("NNN", 0, 0, "eraAbbr"), N("NNNN", 0, 0, "eraName"), N("NNNNN", 0, 0, "eraNarrow"), N("y", ["y", 1], "yo", "eraYear"), N("y", ["yy", 2], 0, "eraYear"), N("y", ["yyy", 3], 0, "eraYear"), N("y", ["yyyy", 4], 0, "eraYear"), he("N", cn), he("NN", cn), he("NNN", cn), he("NNNN", (function(e, t) { - return t.erasNameRegex(e) - })), he("NNNNN", (function(e, t) { - return t.erasNarrowRegex(e) - })), be(["N", "NN", "NNN", "NNNN", "NNNNN"], (function(e, t, n, a) { - var r = n._locale.erasParse(e, a, n._strict); - r ? m(n).era = r : m(n).invalidEra = e - })), he("y", le), he("yy", le), he("yyy", le), he("yyyy", le), he("yo", (function(e, t) { - return t._eraYearOrdinalRegex || le - })), be(["y", "yy", "yyy", "yyyy"], 0), be(["yo"], (function(e, t, n, a) { - var r; - n._locale._eraYearOrdinalRegex && (r = e.match(n._locale._eraYearOrdinalRegex)), n._locale.eraYearOrdinalParse ? t[0] = n._locale.eraYearOrdinalParse(e, r) : t[0] = parseInt(e, 10) - })), N(0, ["gg", 2], 0, (function() { - return this.weekYear() % 100 - })), N(0, ["GG", 2], 0, (function() { - return this.isoWeekYear() % 100 - })), dn("gggg", "weekYear"), dn("ggggg", "weekYear"), dn("GGGG", "isoWeekYear"), dn("GGGGG", "isoWeekYear"), F("weekYear", "gg"), F("isoWeekYear", "GG"), H("weekYear", 1), H("isoWeekYear", 1), he("G", ce), he("g", ce), he("GG", ne, Q), he("gg", ne, Q), he("GGGG", oe, ee), he("gggg", oe, ee), he("GGGGG", se, te), he("ggggg", se, te), ye(["gggg", "ggggg", "GGGG", "GGGGG"], (function(e, t, n, a) { - t[a.substr(0, 2)] = Y(e) - })), ye(["gg", "GG"], (function(e, t, n, r) { - t[r] = a.parseTwoDigitYear(e) - })), N("Q", 0, "Qo", "quarter"), F("quarter", "Q"), H("quarter", 7), he("Q", Z), be("Q", (function(e, t) { - t[1] = 3 * (Y(e) - 1) - })), N("D", ["DD", 2], "Do", "date"), F("date", "D"), H("date", 9), he("D", ne), he("DD", ne, Q), he("Do", (function(e, t) { - return e ? t._dayOfMonthOrdinalParse || t._ordinalParse : t._dayOfMonthOrdinalParseLenient - })), be(["D", "DD"], 2), be("Do", (function(e, t) { - t[2] = Y(e.match(ne)[0]) - })); - var mn = G("Date", !0); - N("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), F("dayOfYear", "DDD"), H("dayOfYear", 4), he("DDD", ie), he("DDDD", X), be(["DDD", "DDDD"], (function(e, t, n) { - n._dayOfYear = Y(e) - })), N("m", ["mm", 2], 0, "minute"), F("minute", "m"), H("minute", 14), he("m", ne), he("mm", ne, Q), be(["m", "mm"], 4); - var fn = G("Minutes", !1); - N("s", ["ss", 2], 0, "second"), F("second", "s"), H("second", 15), he("s", ne), he("ss", ne, Q), be(["s", "ss"], 5); - var gn, bn, yn = G("Seconds", !1); - for (N("S", 0, 0, (function() { - return ~~(this.millisecond() / 100) - })), N(0, ["SS", 2], 0, (function() { - return ~~(this.millisecond() / 10) - })), N(0, ["SSS", 3], 0, "millisecond"), N(0, ["SSSS", 4], 0, (function() { - return 10 * this.millisecond() - })), N(0, ["SSSSS", 5], 0, (function() { - return 100 * this.millisecond() - })), N(0, ["SSSSSS", 6], 0, (function() { - return 1e3 * this.millisecond() - })), N(0, ["SSSSSSS", 7], 0, (function() { - return 1e4 * this.millisecond() - })), N(0, ["SSSSSSSS", 8], 0, (function() { - return 1e5 * this.millisecond() - })), N(0, ["SSSSSSSSS", 9], 0, (function() { - return 1e6 * this.millisecond() - })), F("millisecond", "ms"), H("millisecond", 16), he("S", ie, Z), he("SS", ie, Q), he("SSS", ie, X), gn = "SSSS"; gn.length <= 9; gn += "S") he(gn, le); - - function vn(e, t) { - t[6] = Y(1e3 * ("0." + e)) - } - for (gn = "S"; gn.length <= 9; gn += "S") be(gn, vn); - bn = G("Milliseconds", !1), N("z", 0, 0, "zoneAbbr"), N("zz", 0, 0, "zoneName"); - var kn = k.prototype; - - function _n(e) { - return e + function st(e) { + var t; + if (e && e._locale && e._locale._abbr && (e = e._locale._abbr), !e) return Qe; + if (!r(e)) { + if (t = rt(e)) return t; + e = [e] } - kn.add = Yt, kn.calendar = function(e, t) { - 1 === arguments.length && (arguments[0] ? $t(arguments[0]) ? (e = arguments[0], t = void 0) : Jt(arguments[0]) && (t = arguments[0], e = void 0) : (e = void 0, t = void 0)); - var n = e || xt(), - r = zt(n, this).startOf("day"), - i = a.calendarFormat(this, r) || "sameElse", - o = t && (A(t[i]) ? t[i].call(this, n) : t[i]); - return this.format(o || this.localeData().calendar(i, this, xt(n))) - }, kn.clone = function() { - return new k(this) - }, kn.diff = function(e, t, n) { - var a, r, i; - if (!this.isValid()) return NaN; - if (!(a = zt(e, this)).isValid()) return NaN; - switch (r = 6e4 * (a.utcOffset() - this.utcOffset()), t = q(t)) { - case "year": - i = Zt(this, a) / 12; - break; - case "month": - i = Zt(this, a); - break; - case "quarter": - i = Zt(this, a) / 3; - break; - case "second": - i = (this - a) / 1e3; - break; - case "minute": - i = (this - a) / 6e4; - break; - case "hour": - i = (this - a) / 36e5; - break; - case "day": - i = (this - a - r) / 864e5; - break; - case "week": - i = (this - a - r) / 6048e5; - break; - default: - i = this - a - } - return n ? i : W(i) - }, kn.endOf = function(e) { - var t, n; - if (void 0 === (e = q(e)) || "millisecond" === e || !this.isValid()) return this; - switch (n = this._isUTC ? ln : sn, e) { - case "year": - t = n(this.year() + 1, 0, 1) - 1; - break; - case "quarter": - t = n(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; - break; - case "month": - t = n(this.year(), this.month() + 1, 1) - 1; - break; - case "week": - t = n(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; - break; - case "isoWeek": - t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; - break; - case "day": - case "date": - t = n(this.year(), this.month(), this.date() + 1) - 1; - break; - case "hour": - t = this._d.valueOf(), t += an - on(t + (this._isUTC ? 0 : this.utcOffset() * nn), an) - 1; - break; - case "minute": - t = this._d.valueOf(), t += nn - on(t, nn) - 1; - break; - case "second": - t = this._d.valueOf(), t += tn - on(t, tn) - 1 - } - return this._d.setTime(t), a.updateOffset(this, !0), this - }, kn.format = function(e) { - e || (e = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat); - var t = z(this, e); - return this.localeData().postformat(t) - }, kn.from = function(e, t) { - return this.isValid() && (_(e) && e.isValid() || xt(e).isValid()) ? Bt({ - to: this, - from: e - }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() - }, kn.fromNow = function(e) { - return this.from(xt(), e) - }, kn.to = function(e, t) { - return this.isValid() && (_(e) && e.isValid() || xt(e).isValid()) ? Bt({ - from: this, - to: e - }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() - }, kn.toNow = function(e) { - return this.to(xt(), e) - }, kn.get = function(e) { - return A(this[e = q(e)]) ? this[e]() : this - }, kn.invalidAt = function() { - return m(this).overflow - }, kn.isAfter = function(e, t) { - var n = _(e) ? e : xt(e); - return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = q(t) || "millisecond") ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(t).valueOf()) - }, kn.isBefore = function(e, t) { - var n = _(e) ? e : xt(e); - return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = q(t) || "millisecond") ? this.valueOf() < n.valueOf() : this.clone().endOf(t).valueOf() < n.valueOf()) - }, kn.isBetween = function(e, t, n, a) { - var r = _(e) ? e : xt(e), - i = _(t) ? t : xt(t); - return !!(this.isValid() && r.isValid() && i.isValid()) && ("(" === (a = a || "()")[0] ? this.isAfter(r, n) : !this.isBefore(r, n)) && (")" === a[1] ? this.isBefore(i, n) : !this.isAfter(i, n)) - }, kn.isSame = function(e, t) { - var n, a = _(e) ? e : xt(e); - return !(!this.isValid() || !a.isValid()) && ("millisecond" === (t = q(t) || "millisecond") ? this.valueOf() === a.valueOf() : (n = a.valueOf(), this.clone().startOf(t).valueOf() <= n && n <= this.clone().endOf(t).valueOf())) - }, kn.isSameOrAfter = function(e, t) { - return this.isSame(e, t) || this.isAfter(e, t) - }, kn.isSameOrBefore = function(e, t) { - return this.isSame(e, t) || this.isBefore(e, t) - }, kn.isValid = function() { - return f(this) - }, kn.lang = Xt, kn.locale = Qt, kn.localeData = en, kn.max = At, kn.min = Ct, kn.parsingFlags = function() { - return p({}, m(this)) - }, kn.set = function(e, t) { - if ("object" == typeof e) { - var n, a = function(e) { - var t, n = []; - for (t in e) o(e, t) && n.push({ - unit: t, - priority: U[t] - }); - return n.sort((function(e, t) { - return e.priority - t.priority - })), n - }(e = B(e)); - for (n = 0; n < a.length; n++) this[a[n].unit](e[a[n].unit]) - } else if (A(this[e = q(e)])) return this[e](t); - return this - }, kn.startOf = function(e) { - var t, n; - if (void 0 === (e = q(e)) || "millisecond" === e || !this.isValid()) return this; - switch (n = this._isUTC ? ln : sn, e) { - case "year": - t = n(this.year(), 0, 1); - break; - case "quarter": - t = n(this.year(), this.month() - this.month() % 3, 1); - break; - case "month": - t = n(this.year(), this.month(), 1); - break; - case "week": - t = n(this.year(), this.month(), this.date() - this.weekday()); - break; - case "isoWeek": - t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); - break; - case "day": - case "date": - t = n(this.year(), this.month(), this.date()); - break; - case "hour": - t = this._d.valueOf(), t -= on(t + (this._isUTC ? 0 : this.utcOffset() * nn), an); - break; - case "minute": - t = this._d.valueOf(), t -= on(t, nn); - break; - case "second": - t = this._d.valueOf(), t -= on(t, tn) - } - return this._d.setTime(t), a.updateOffset(this, !0), this - }, kn.subtract = Gt, kn.toArray = function() { - var e = this; - return [e.year(), e.month(), e.date(), e.hour(), e.minute(), e.second(), e.millisecond()] - }, kn.toObject = function() { - var e = this; - return { - years: e.year(), - months: e.month(), - date: e.date(), - hours: e.hours(), - minutes: e.minutes(), - seconds: e.seconds(), - milliseconds: e.milliseconds() - } - }, kn.toDate = function() { - return new Date(this.valueOf()) - }, kn.toISOString = function(e) { - if (!this.isValid()) return null; - var t = !0 !== e, - n = t ? this.clone().utc() : this; - return n.year() < 0 || n.year() > 9999 ? z(n, t ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ") : A(Date.prototype.toISOString) ? t ? this.toDate().toISOString() : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().replace("Z", z(n, "Z")) : z(n, t ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ") - }, kn.inspect = function() { - if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; - var e, t, n, a = "moment", - r = ""; - return this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", r = "Z"), e = "[" + a + '("]', t = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", "-MM-DD[T]HH:mm:ss.SSS", n = r + '[")]', this.format(e + t + "-MM-DD[T]HH:mm:ss.SSS" + n) - }, "undefined" != typeof Symbol && null != Symbol.for && (kn[Symbol.for("nodejs.util.inspect.custom")] = function() { - return "Moment<" + this.format() + ">" - }), kn.toJSON = function() { - return this.isValid() ? this.toISOString() : null - }, kn.toString = function() { - return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") - }, kn.unix = function() { - return Math.floor(this.valueOf() / 1e3) - }, kn.valueOf = function() { - return this._d.valueOf() - 6e4 * (this._offset || 0) - }, kn.creationData = function() { - return { - input: this._i, - format: this._f, - locale: this._locale, - isUTC: this._isUTC, - strict: this._strict - } - }, kn.eraName = function() { - var e, t, n, a = this.localeData().eras(); - for (e = 0, t = a.length; e < t; ++e) { - if (n = this.clone().startOf("day").valueOf(), a[e].since <= n && n <= a[e].until) return a[e].name; - if (a[e].until <= n && n <= a[e].since) return a[e].name - } - return "" - }, kn.eraNarrow = function() { - var e, t, n, a = this.localeData().eras(); - for (e = 0, t = a.length; e < t; ++e) { - if (n = this.clone().startOf("day").valueOf(), a[e].since <= n && n <= a[e].until) return a[e].narrow; - if (a[e].until <= n && n <= a[e].since) return a[e].narrow - } - return "" - }, kn.eraAbbr = function() { - var e, t, n, a = this.localeData().eras(); - for (e = 0, t = a.length; e < t; ++e) { - if (n = this.clone().startOf("day").valueOf(), a[e].since <= n && n <= a[e].until) return a[e].abbr; - if (a[e].until <= n && n <= a[e].since) return a[e].abbr - } - return "" - }, kn.eraYear = function() { - var e, t, n, r, i = this.localeData().eras(); - for (e = 0, t = i.length; e < t; ++e) - if (n = i[e].since <= i[e].until ? 1 : -1, r = this.clone().startOf("day").valueOf(), i[e].since <= r && r <= i[e].until || i[e].until <= r && r <= i[e].since) return (this.year() - a(i[e].since).year()) * n + i[e].offset; - return this.year() - }, kn.year = Oe, kn.isLeapYear = function() { - return V(this.year()) - }, kn.weekYear = function(e) { - return pn.call(this, e, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) - }, kn.isoWeekYear = function(e) { - return pn.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4) - }, kn.quarter = kn.quarters = function(e) { - return null == e ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (e - 1) + this.month() % 3) - }, kn.month = Pe, kn.daysInMonth = function() { - return _e(this.year(), this.month()) - }, kn.week = kn.weeks = function(e) { - var t = this.localeData().week(this); - return null == e ? t : this.add(7 * (e - t), "d") - }, kn.isoWeek = kn.isoWeeks = function(e) { - var t = Re(this, 1, 4).week; - return null == e ? t : this.add(7 * (e - t), "d") - }, kn.weeksInYear = function() { - var e = this.localeData()._week; - return Le(this.year(), e.dow, e.doy) - }, kn.weeksInWeekYear = function() { - var e = this.localeData()._week; - return Le(this.weekYear(), e.dow, e.doy) - }, kn.isoWeeksInYear = function() { - return Le(this.year(), 1, 4) - }, kn.isoWeeksInISOWeekYear = function() { - return Le(this.isoWeekYear(), 1, 4) - }, kn.date = mn, kn.day = kn.days = function(e) { - if (!this.isValid()) return null != e ? this : NaN; - var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - return null != e ? (e = function(e, t) { - return "string" != typeof e ? e : isNaN(e) ? "number" == typeof(e = t.weekdaysParse(e)) ? e : null : parseInt(e, 10) - }(e, this.localeData()), this.add(e - t, "d")) : t - }, kn.weekday = function(e) { - if (!this.isValid()) return null != e ? this : NaN; - var t = (this.day() + 7 - this.localeData()._week.dow) % 7; - return null == e ? t : this.add(e - t, "d") - }, kn.isoWeekday = function(e) { - if (!this.isValid()) return null != e ? this : NaN; - if (null != e) { - var t = function(e, t) { - return "string" == typeof e ? t.weekdaysParse(e) % 7 || 7 : isNaN(e) ? null : e - }(e, this.localeData()); - return this.day(this.day() % 7 ? t : t - 7) - } - return this.day() || 7 - }, kn.dayOfYear = function(e) { - var t = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; - return null == e ? t : this.add(e - t, "d") - }, kn.hour = kn.hours = Ze, kn.minute = kn.minutes = fn, kn.second = kn.seconds = yn, kn.millisecond = kn.milliseconds = bn, kn.utcOffset = function(e, t, n) { - var r, i = this._offset || 0; - if (!this.isValid()) return null != e ? this : NaN; - if (null != e) { - if ("string" == typeof e) { - if (null === (e = Nt(de, e))) return this - } else Math.abs(e) < 16 && !n && (e *= 60); - return !this._isUTC && t && (r = Rt(this)), this._offset = e, this._isUTC = !0, null != r && this.add(r, "m"), i !== e && (!t || this._changeInProgress ? Wt(this, Bt(e - i, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this - } - return this._isUTC ? i : Rt(this) - }, kn.utc = function(e) { - return this.utcOffset(0, e) - }, kn.local = function(e) { - return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e && this.subtract(Rt(this), "m")), this - }, kn.parseZone = function() { - if (null != this._tzm) this.utcOffset(this._tzm, !1, !0); - else if ("string" == typeof this._i) { - var e = Nt(ue, this._i); - null != e ? this.utcOffset(e) : this.utcOffset(0, !0) + return function(e) { + for (var t, n, a, r, i = 0; i < e.length;) { + for (t = (r = at(e[i]).split("-")).length, n = (n = at(e[i + 1])) ? n.split("-") : null; t > 0;) { + if (a = rt(r.slice(0, t).join("-"))) return a; + if (n && n.length >= t && nt(r, n) >= t - 1) break; + t-- + } + i++ } - return this - }, kn.hasAlignedHourOffset = function(e) { - return !!this.isValid() && (e = e ? xt(e).utcOffset() : 0, (this.utcOffset() - e) % 60 == 0) - }, kn.isDST = function() { - return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() - }, kn.isLocal = function() { - return !!this.isValid() && !this._isUTC - }, kn.isUtcOffset = function() { - return !!this.isValid() && this._isUTC - }, kn.isUtc = Lt, kn.isUTC = Lt, kn.zoneAbbr = function() { - return this._isUTC ? "UTC" : "" - }, kn.zoneName = function() { - return this._isUTC ? "Coordinated Universal Time" : "" - }, kn.dates = S("dates accessor is deprecated. Use date instead.", mn), kn.months = S("months accessor is deprecated. Use month instead", Pe), kn.years = S("years accessor is deprecated. Use year instead", Oe), kn.zone = S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", (function(e, t) { - return null != e ? ("string" != typeof e && (e = -e), this.utcOffset(e, t), this) : -this.utcOffset() - })), kn.isDSTShifted = S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", (function() { - if (!l(this._isDSTShifted)) return this._isDSTShifted; - var e, t = {}; - return v(t, this), (t = St(t))._a ? (e = t._isUTC ? h(t._a) : xt(t._a), this._isDSTShifted = this.isValid() && function(e, t, n) { - var a, r = Math.min(e.length, t.length), - i = Math.abs(e.length - t.length), - o = 0; - for (a = 0; a < r; a++)(n && e[a] !== t[a] || !n && Y(e[a]) !== Y(t[a])) && o++; - return o + i - }(t._a, e.toArray()) > 0) : this._isDSTShifted = !1, this._isDSTShifted - })); - var wn = P.prototype; - - function Sn(e, t, n, a) { - var r = st(), - i = h().set(a, t); - return r[n](i, e) - } + return Qe + }(e) + } - function En(e, t, n) { - if (c(e) && (t = e, e = void 0), e = e || "", null != t) return Sn(e, t, n, "month"); - var a, r = []; - for (a = 0; a < 12; a++) r[a] = Sn(e, a, n, "month"); - return r - } + function lt(e) { + var t, n = e._a; + return n && -2 === m(e).overflow && (t = n[1] < 0 || n[1] > 11 ? 1 : n[2] < 1 || n[2] > _e(n[0], n[1]) ? 2 : n[3] < 0 || n[3] > 24 || 24 === n[3] && (0 !== n[4] || 0 !== n[5] || 0 !== n[6]) ? 3 : n[4] < 0 || n[4] > 59 ? 4 : n[5] < 0 || n[5] > 59 ? 5 : n[6] < 0 || n[6] > 999 ? 6 : -1, m(e)._overflowDayOfYear && (t < 0 || t > 2) && (t = 2), m(e)._overflowWeeks && -1 === t && (t = 7), m(e)._overflowWeekday && -1 === t && (t = 8), m(e).overflow = t), e + } + var ct = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + ut = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + dt = /Z|[+-]\d\d(?::?\d\d)?/, + pt = [ + ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], + ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], + ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], + ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], + ["YYYY-DDD", /\d{4}-\d{3}/], + ["YYYY-MM", /\d{4}-\d\d/, !1], + ["YYYYYYMMDD", /[+-]\d{10}/], + ["YYYYMMDD", /\d{8}/], + ["GGGG[W]WWE", /\d{4}W\d{3}/], + ["GGGG[W]WW", /\d{4}W\d{2}/, !1], + ["YYYYDDD", /\d{7}/], + ["YYYYMM", /\d{6}/, !1], + ["YYYY", /\d{4}/, !1] + ], + ht = [ + ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], + ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], + ["HH:mm:ss", /\d\d:\d\d:\d\d/], + ["HH:mm", /\d\d:\d\d/], + ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], + ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], + ["HHmmss", /\d\d\d\d\d\d/], + ["HHmm", /\d\d\d\d/], + ["HH", /\d\d/] + ], + mt = /^\/?Date\((-?\d+)/i, + ft = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + gt = { + UT: 0, + GMT: 0, + EDT: -240, + EST: -300, + CDT: -300, + CST: -360, + MDT: -360, + MST: -420, + PDT: -420, + PST: -480 + }; - function xn(e, t, n, a) { - "boolean" == typeof e ? (c(t) && (n = t, t = void 0), t = t || "") : (n = t = e, e = !1, c(t) && (n = t, t = void 0), t = t || ""); - var r, i = st(), - o = e ? i._week.dow : 0, - s = []; - if (null != n) return Sn(t, (n + o) % 7, a, "day"); - for (r = 0; r < 7; r++) s[r] = Sn(t, (r + o) % 7, a, "day"); - return s - } - wn.calendar = function(e, t, n) { - var a = this._calendar[e] || this._calendar.sameElse; - return A(a) ? a.call(t, n) : a - }, wn.longDateFormat = function(e) { - var t = this._longDateFormat[e], - n = this._longDateFormat[e.toUpperCase()]; - return t || !n ? t : (this._longDateFormat[e] = n.match(T).map((function(e) { - return "MMMM" === e || "MM" === e || "DD" === e || "dddd" === e ? e.slice(1) : e - })).join(""), this._longDateFormat[e]) - }, wn.invalidDate = function() { - return this._invalidDate - }, wn.ordinal = function(e) { - return this._ordinal.replace("%d", e) - }, wn.preparse = _n, wn.postformat = _n, wn.relativeTime = function(e, t, n, a) { - var r = this._relativeTime[n]; - return A(r) ? r(e, t, n, a) : r.replace(/%d/i, e) - }, wn.pastFuture = function(e, t) { - var n = this._relativeTime[e > 0 ? "future" : "past"]; - return A(n) ? n(t) : n.replace(/%s/i, t) - }, wn.set = function(e) { - var t, n; - for (n in e) o(e, n) && (A(t = e[n]) ? this[n] = t : this["_" + n] = t); - this._config = e, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source) - }, wn.eras = function(e, t) { - var n, r, i, o = this._eras || st("en")._eras; - for (n = 0, r = o.length; n < r; ++n) switch ("string" == typeof o[n].since && (i = a(o[n].since).startOf("day"), o[n].since = i.valueOf()), typeof o[n].until) { - case "undefined": - o[n].until = 1 / 0; - break; - case "string": - i = a(o[n].until).startOf("day").valueOf(), o[n].until = i.valueOf() + function bt(e) { + var t, n, a, r, i, o, s = e._i, + l = ct.exec(s) || ut.exec(s); + if (l) { + for (m(e).iso = !0, t = 0, n = pt.length; t < n; t++) + if (pt[t][1].exec(l[1])) { + r = pt[t][0], a = !1 !== pt[t][2]; + break + } if (null == r) return void(e._isValid = !1); + if (l[3]) { + for (t = 0, n = ht.length; t < n; t++) + if (ht[t][1].exec(l[3])) { + i = (l[2] || " ") + ht[t][0]; + break + } if (null == i) return void(e._isValid = !1) } - return o - }, wn.erasParse = function(e, t, n) { - var a, r, i, o, s, l = this.eras(); - for (e = e.toUpperCase(), a = 0, r = l.length; a < r; ++a) - if (i = l[a].name.toUpperCase(), o = l[a].abbr.toUpperCase(), s = l[a].narrow.toUpperCase(), n) switch (t) { - case "N": - case "NN": - case "NNN": - if (o === e) return l[a]; - break; - case "NNNN": - if (i === e) return l[a]; - break; - case "NNNNN": - if (s === e) return l[a] - } else if ([i, o, s].indexOf(e) >= 0) return l[a] - }, wn.erasConvertYear = function(e, t) { - var n = e.since <= e.until ? 1 : -1; - return void 0 === t ? a(e.since).year() : a(e.since).year() + (t - e.offset) * n - }, wn.erasAbbrRegex = function(e) { - return o(this, "_erasAbbrRegex") || un.call(this), e ? this._erasAbbrRegex : this._erasRegex - }, wn.erasNameRegex = function(e) { - return o(this, "_erasNameRegex") || un.call(this), e ? this._erasNameRegex : this._erasRegex - }, wn.erasNarrowRegex = function(e) { - return o(this, "_erasNarrowRegex") || un.call(this), e ? this._erasNarrowRegex : this._erasRegex - }, wn.months = function(e, t) { - return e ? r(this._months) ? this._months[e.month()] : this._months[(this._months.isFormat || Ee).test(t) ? "format" : "standalone"][e.month()] : r(this._months) ? this._months : this._months.standalone - }, wn.monthsShort = function(e, t) { - return e ? r(this._monthsShort) ? this._monthsShort[e.month()] : this._monthsShort[Ee.test(t) ? "format" : "standalone"][e.month()] : r(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone - }, wn.monthsParse = function(e, t, n) { - var a, r, i; - if (this._monthsParseExact) return Ae.call(this, e, t, n); - for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), a = 0; a < 12; a++) { - if (r = h([2e3, a]), n && !this._longMonthsParse[a] && (this._longMonthsParse[a] = new RegExp("^" + this.months(r, "").replace(".", "") + "$", "i"), this._shortMonthsParse[a] = new RegExp("^" + this.monthsShort(r, "").replace(".", "") + "$", "i")), n || this._monthsParse[a] || (i = "^" + this.months(r, "") + "|^" + this.monthsShort(r, ""), this._monthsParse[a] = new RegExp(i.replace(".", ""), "i")), n && "MMMM" === t && this._longMonthsParse[a].test(e)) return a; - if (n && "MMM" === t && this._shortMonthsParse[a].test(e)) return a; - if (!n && this._monthsParse[a].test(e)) return a - } - }, wn.monthsRegex = function(e) { - return this._monthsParseExact ? (o(this, "_monthsRegex") || De.call(this), e ? this._monthsStrictRegex : this._monthsRegex) : (o(this, "_monthsRegex") || (this._monthsRegex = Ce), this._monthsStrictRegex && e ? this._monthsStrictRegex : this._monthsRegex) - }, wn.monthsShortRegex = function(e) { - return this._monthsParseExact ? (o(this, "_monthsRegex") || De.call(this), e ? this._monthsShortStrictRegex : this._monthsShortRegex) : (o(this, "_monthsShortRegex") || (this._monthsShortRegex = xe), this._monthsShortStrictRegex && e ? this._monthsShortStrictRegex : this._monthsShortRegex) - }, wn.week = function(e) { - return Re(e, this._week.dow, this._week.doy).week - }, wn.firstDayOfYear = function() { - return this._week.doy - }, wn.firstDayOfWeek = function() { - return this._week.dow - }, wn.weekdays = function(e, t) { - var n = r(this._weekdays) ? this._weekdays : this._weekdays[e && !0 !== e && this._weekdays.isFormat.test(t) ? "format" : "standalone"]; - return !0 === e ? Fe(n, this._week.dow) : e ? n[e.day()] : n - }, wn.weekdaysMin = function(e) { - return !0 === e ? Fe(this._weekdaysMin, this._week.dow) : e ? this._weekdaysMin[e.day()] : this._weekdaysMin - }, wn.weekdaysShort = function(e) { - return !0 === e ? Fe(this._weekdaysShort, this._week.dow) : e ? this._weekdaysShort[e.day()] : this._weekdaysShort - }, wn.weekdaysParse = function(e, t, n) { - var a, r, i; - if (this._weekdaysParseExact) return Ye.call(this, e, t, n); - for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), a = 0; a < 7; a++) { - if (r = h([2e3, 1]).day(a), n && !this._fullWeekdaysParse[a] && (this._fullWeekdaysParse[a] = new RegExp("^" + this.weekdays(r, "").replace(".", "\\.?") + "$", "i"), this._shortWeekdaysParse[a] = new RegExp("^" + this.weekdaysShort(r, "").replace(".", "\\.?") + "$", "i"), this._minWeekdaysParse[a] = new RegExp("^" + this.weekdaysMin(r, "").replace(".", "\\.?") + "$", "i")), this._weekdaysParse[a] || (i = "^" + this.weekdays(r, "") + "|^" + this.weekdaysShort(r, "") + "|^" + this.weekdaysMin(r, ""), this._weekdaysParse[a] = new RegExp(i.replace(".", ""), "i")), n && "dddd" === t && this._fullWeekdaysParse[a].test(e)) return a; - if (n && "ddd" === t && this._shortWeekdaysParse[a].test(e)) return a; - if (n && "dd" === t && this._minWeekdaysParse[a].test(e)) return a; - if (!n && this._weekdaysParse[a].test(e)) return a - } - }, wn.weekdaysRegex = function(e) { - return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || Ge.call(this), e ? this._weekdaysStrictRegex : this._weekdaysRegex) : (o(this, "_weekdaysRegex") || (this._weekdaysRegex = He), this._weekdaysStrictRegex && e ? this._weekdaysStrictRegex : this._weekdaysRegex) - }, wn.weekdaysShortRegex = function(e) { - return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || Ge.call(this), e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (o(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = Ve), this._weekdaysShortStrictRegex && e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) - }, wn.weekdaysMinRegex = function(e) { - return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || Ge.call(this), e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (o(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = We), this._weekdaysMinStrictRegex && e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) - }, wn.isPM = function(e) { - return "p" === (e + "").toLowerCase().charAt(0) - }, wn.meridiem = function(e, t, n) { - return e > 11 ? n ? "pm" : "PM" : n ? "am" : "AM" - }, it("en", { - eras: [{ - since: "0001-01-01", - until: 1 / 0, - offset: 1, - name: "Anno Domini", - narrow: "AD", - abbr: "AD" - }, { - since: "0000-12-31", - until: -1 / 0, - offset: 1, - name: "Before Christ", - narrow: "BC", - abbr: "BC" - }], - dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal: function(e) { - var t = e % 10; - return e + (1 === Y(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th") + if (!a && null != i) return void(e._isValid = !1); + if (l[4]) { + if (!dt.exec(l[4])) return void(e._isValid = !1); + o = "Z" } - }), a.lang = S("moment.lang is deprecated. Use moment.locale instead.", it), a.langData = S("moment.langData is deprecated. Use moment.localeData instead.", st); - var Cn = Math.abs; + e._f = r + (i || "") + (o || ""), wt(e) + } else e._isValid = !1 + } - function An(e, t, n, a) { - var r = Bt(t, n); - return e._milliseconds += a * r._milliseconds, e._days += a * r._days, e._months += a * r._months, e._bubble() - } + function yt(e) { + var t = parseInt(e, 10); + return t <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t + } - function jn(e) { - return e < 0 ? Math.floor(e) : Math.ceil(e) - } + function vt(e) { + var t, n, a, r, i, o, s, l, c = ft.exec(e._i.replace(/\([^)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace(/\s\s*$/, "")); + if (c) { + if (n = c[4], a = c[3], r = c[2], i = c[5], o = c[6], s = c[7], l = [yt(n), Se.indexOf(a), parseInt(r, 10), parseInt(i, 10), parseInt(o, 10)], s && l.push(parseInt(s, 10)), t = l, ! function(e, t, n) { + return !e || Be.indexOf(e) === new Date(t[0], t[1], t[2]).getDay() || (m(n).weekdayMismatch = !0, n._isValid = !1, !1) + }(c[1], t, e)) return; + e._a = t, e._tzm = function(e, t, n) { + if (e) return gt[e]; + if (t) return 0; + var a = parseInt(n, 10), + r = a % 100; + return (a - r) / 100 * 60 + r + }(c[8], c[9], c[10]), e._d = Oe.apply(null, e._a), e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), m(e).rfc2822 = !0 + } else e._isValid = !1 + } - function Pn(e) { - return 4800 * e / 146097 - } + function kt(e, t, n) { + return null != e ? e : null != t ? t : n + } - function Dn(e) { - return 146097 * e / 4800 + function _t(e) { + var t, n, r, i, o, s = []; + if (!e._d) { + for (r = function(e) { + var t = new Date(a.now()); + return e._useUTC ? [t.getUTCFullYear(), t.getUTCMonth(), t.getUTCDate()] : [t.getFullYear(), t.getMonth(), t.getDate()] + }(e), e._w && null == e._a[2] && null == e._a[1] && function(e) { + var t, n, a, r, i, o, s, l, c; + null != (t = e._w).GG || null != t.W || null != t.E ? (i = 1, o = 4, n = kt(t.GG, e._a[0], ze(xt(), 1, 4).year), a = kt(t.W, 1), ((r = kt(t.E, 1)) < 1 || r > 7) && (l = !0)) : (i = e._locale._week.dow, o = e._locale._week.doy, c = ze(xt(), i, o), n = kt(t.gg, e._a[0], c.year), a = kt(t.w, c.week), null != t.d ? ((r = t.d) < 0 || r > 6) && (l = !0) : null != t.e ? (r = t.e + i, (t.e < 0 || t.e > 6) && (l = !0)) : r = i), a < 1 || a > Le(n, i, o) ? m(e)._overflowWeeks = !0 : null != l ? m(e)._overflowWeekday = !0 : (s = Re(n, a, r, i, o), e._a[0] = s.year, e._dayOfYear = s.dayOfYear) + }(e), null != e._dayOfYear && (o = kt(e._a[0], r[0]), (e._dayOfYear > je(o) || 0 === e._dayOfYear) && (m(e)._overflowDayOfYear = !0), n = Oe(o, 0, e._dayOfYear), e._a[1] = n.getUTCMonth(), e._a[2] = n.getUTCDate()), t = 0; t < 3 && null == e._a[t]; ++t) e._a[t] = s[t] = r[t]; + for (; t < 7; t++) e._a[t] = s[t] = null == e._a[t] ? 2 === t ? 1 : 0 : e._a[t]; + 24 === e._a[3] && 0 === e._a[4] && 0 === e._a[5] && 0 === e._a[6] && (e._nextDay = !0, e._a[3] = 0), e._d = (e._useUTC ? Oe : Ie).apply(null, s), i = e._useUTC ? e._d.getUTCDay() : e._d.getDay(), null != e._tzm && e._d.setUTCMinutes(e._d.getUTCMinutes() - e._tzm), e._nextDay && (e._a[3] = 24), e._w && void 0 !== e._w.d && e._w.d !== i && (m(e).weekdayMismatch = !0) } + } - function Tn(e) { - return function() { - return this.as(e) - } - } - var On = Tn("ms"), - Mn = Tn("s"), - In = Tn("m"), - Nn = Tn("h"), - zn = Tn("d"), - Rn = Tn("w"), - Ln = Tn("M"), - Fn = Tn("Q"), - qn = Tn("y"); + function wt(e) { + if (e._f !== a.ISO_8601) + if (e._f !== a.RFC_2822) { + e._a = [], m(e).empty = !0; + var t, n, r, i, o, s, l = "" + e._i, + c = l.length, + u = 0; + for (r = z(e._f, e._locale).match(j) || [], t = 0; t < r.length; t++) i = r[t], (n = (l.match(me(i, e)) || [])[0]) && ((o = l.substr(0, l.indexOf(n))).length > 0 && m(e).unusedInput.push(o), l = l.slice(l.indexOf(n) + n.length), u += n.length), O[i] ? (n ? m(e).empty = !1 : m(e).unusedTokens.push(i), ve(i, n, e)) : e._strict && !n && m(e).unusedTokens.push(i); + m(e).charsLeftOver = c - u, l.length > 0 && m(e).unusedInput.push(l), e._a[3] <= 12 && !0 === m(e).bigHour && e._a[3] > 0 && (m(e).bigHour = void 0), m(e).parsedDateParts = e._a.slice(0), m(e).meridiem = e._meridiem, e._a[3] = function(e, t, n) { + var a; + return null == n ? t : null != e.meridiemHour ? e.meridiemHour(t, n) : null != e.isPM ? ((a = e.isPM(n)) && t < 12 && (t += 12), a || 12 !== t || (t = 0), t) : t + }(e._locale, e._a[3], e._meridiem), null !== (s = m(e).era) && (e._a[0] = e._locale.erasConvertYear(s, e._a[0])), _t(e), lt(e) + } else vt(e); + else bt(e) + } + + function St(e) { + var t = e._i, + n = e._f; + return e._locale = e._locale || st(e._l), null === t || void 0 === n && "" === t ? g({ + nullInput: !0 + }) : ("string" == typeof t && (e._i = t = e._locale.preparse(t)), _(t) ? new k(lt(t)) : (u(t) ? e._d = t : r(n) ? function(e) { + var t, n, a, r, i, o, s = !1; + if (0 === e._f.length) return m(e).invalidFormat = !0, void(e._d = new Date(NaN)); + for (r = 0; r < e._f.length; r++) i = 0, o = !1, t = v({}, e), null != e._useUTC && (t._useUTC = e._useUTC), t._f = e._f[r], wt(t), f(t) && (o = !0), i += m(t).charsLeftOver, i += 10 * m(t).unusedTokens.length, m(t).score = i, s ? i < a && (a = i, n = t) : (null == a || i < a || o) && (a = i, n = t, o && (s = !0)); + p(e, n || t) + }(e) : n ? wt(e) : function(e) { + var t = e._i; + l(t) ? e._d = new Date(a.now()) : u(t) ? e._d = new Date(t.valueOf()) : "string" == typeof t ? function(e) { + var t = mt.exec(e._i); + null === t ? (bt(e), !1 === e._isValid && (delete e._isValid, vt(e), !1 === e._isValid && (delete e._isValid, e._strict ? e._isValid = !1 : a.createFromInputFallback(e)))) : e._d = new Date(+t[1]) + }(e) : r(t) ? (e._a = d(t.slice(0), (function(e) { + return parseInt(e, 10) + })), _t(e)) : i(t) ? function(e) { + if (!e._d) { + var t = B(e._i), + n = void 0 === t.day ? t.date : t.day; + e._a = d([t.year, t.month, n, t.hour, t.minute, t.second, t.millisecond], (function(e) { + return e && parseInt(e, 10) + })), _t(e) + } + }(e) : c(t) ? e._d = new Date(t) : a.createFromInputFallback(e) + }(e), f(e) || (e._d = null), e)) + } + + function Et(e, t, n, a, o) { + var l = {}; + return !0 !== t && !1 !== t || (a = t, t = void 0), !0 !== n && !1 !== n || (a = n, n = void 0), (i(e) && s(e) || r(e) && 0 === e.length) && (e = void 0), l._isAMomentObject = !0, l._useUTC = l._isUTC = o, l._l = n, l._i = e, l._f = t, l._strict = a, + function(e) { + var t = new k(lt(St(e))); + return t._nextDay && (t.add(1, "d"), t._nextDay = void 0), t + }(l) + } - function Bn(e) { - return function() { - return this.isValid() ? this._data[e] : NaN - } - } - var Un = Bn("milliseconds"), - Hn = Bn("seconds"), - Vn = Bn("minutes"), - Wn = Bn("hours"), - Yn = Bn("days"), - Gn = Bn("months"), - Kn = Bn("years"); - var $n = Math.round, - Jn = { - ss: 44, - s: 45, - m: 45, - h: 22, - d: 26, - w: null, - M: 11 - }; + function xt(e, t, n, a) { + return Et(e, t, n, a, !1) + } + a.createFromInputFallback = S("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", (function(e) { + e._d = new Date(e._i + (e._useUTC ? " UTC" : "")) + })), a.ISO_8601 = function() {}, a.RFC_2822 = function() {}; + var Ct = S("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", (function() { + var e = xt.apply(null, arguments); + return this.isValid() && e.isValid() ? e < this ? this : e : g() + })), + At = S("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", (function() { + var e = xt.apply(null, arguments); + return this.isValid() && e.isValid() ? e > this ? this : e : g() + })); - function Zn(e, t, n, a, r) { - return r.relativeTime(t || 1, !!n, e, a) - } - var Qn = Math.abs; - - function Xn(e) { - return (e > 0) - (e < 0) || +e - } - - function ea() { - if (!this.isValid()) return this.localeData().invalidDate(); - var e, t, n, a, r, i, o, s, l = Qn(this._milliseconds) / 1e3, - c = Qn(this._days), - u = Qn(this._months), - d = this.asSeconds(); - return d ? (e = W(l / 60), t = W(e / 60), l %= 60, e %= 60, n = W(u / 12), u %= 12, a = l ? l.toFixed(3).replace(/\.?0+$/, "") : "", r = d < 0 ? "-" : "", i = Xn(this._months) !== Xn(d) ? "-" : "", o = Xn(this._days) !== Xn(d) ? "-" : "", s = Xn(this._milliseconds) !== Xn(d) ? "-" : "", r + "P" + (n ? i + n + "Y" : "") + (u ? i + u + "M" : "") + (c ? o + c + "D" : "") + (t || e || l ? "T" : "") + (t ? s + t + "H" : "") + (e ? s + e + "M" : "") + (l ? s + a + "S" : "")) : "P0D" - } - var ta = Dt.prototype; - return ta.isValid = function() { - return this._isValid - }, ta.abs = function() { - var e = this._data; - return this._milliseconds = Cn(this._milliseconds), this._days = Cn(this._days), this._months = Cn(this._months), e.milliseconds = Cn(e.milliseconds), e.seconds = Cn(e.seconds), e.minutes = Cn(e.minutes), e.hours = Cn(e.hours), e.months = Cn(e.months), e.years = Cn(e.years), this - }, ta.add = function(e, t) { - return An(this, e, t, 1) - }, ta.subtract = function(e, t) { - return An(this, e, t, -1) - }, ta.as = function(e) { - if (!this.isValid()) return NaN; - var t, n, a = this._milliseconds; - if ("month" === (e = q(e)) || "quarter" === e || "year" === e) switch (t = this._days + a / 864e5, n = this._months + Pn(t), e) { - case "month": - return n; - case "quarter": - return n / 3; - case "year": - return n / 12 - } else switch (t = this._days + Math.round(Dn(this._months)), e) { - case "week": - return t / 7 + a / 6048e5; - case "day": - return t + a / 864e5; - case "hour": - return 24 * t + a / 36e5; - case "minute": - return 1440 * t + a / 6e4; - case "second": - return 86400 * t + a / 1e3; - case "millisecond": - return Math.floor(864e5 * t) + a; - default: - throw new Error("Unknown unit " + e) - } - }, ta.asMilliseconds = On, ta.asSeconds = Mn, ta.asMinutes = In, ta.asHours = Nn, ta.asDays = zn, ta.asWeeks = Rn, ta.asMonths = Ln, ta.asQuarters = Fn, ta.asYears = qn, ta.valueOf = function() { - return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * Y(this._months / 12) : NaN - }, ta._bubble = function() { - var e, t, n, a, r, i = this._milliseconds, - o = this._days, - s = this._months, - l = this._data; - return i >= 0 && o >= 0 && s >= 0 || i <= 0 && o <= 0 && s <= 0 || (i += 864e5 * jn(Dn(s) + o), o = 0, s = 0), l.milliseconds = i % 1e3, e = W(i / 1e3), l.seconds = e % 60, t = W(e / 60), l.minutes = t % 60, n = W(t / 60), l.hours = n % 24, o += W(n / 24), s += r = W(Pn(o)), o -= jn(Dn(r)), a = W(s / 12), s %= 12, l.days = o, l.months = s, l.years = a, this - }, ta.clone = function() { - return Bt(this) - }, ta.get = function(e) { - return e = q(e), this.isValid() ? this[e + "s"]() : NaN - }, ta.milliseconds = Un, ta.seconds = Hn, ta.minutes = Vn, ta.hours = Wn, ta.days = Yn, ta.weeks = function() { - return W(this.days() / 7) - }, ta.months = Gn, ta.years = Kn, ta.humanize = function(e, t) { - if (!this.isValid()) return this.localeData().invalidDate(); - var n, a, r = !1, - i = Jn; - return "object" == typeof e && (t = e, e = !1), "boolean" == typeof e && (r = e), "object" == typeof t && (i = Object.assign({}, Jn, t), null != t.s && null == t.ss && (i.ss = t.s - 1)), a = function(e, t, n, a) { - var r = Bt(e).abs(), - i = $n(r.as("s")), - o = $n(r.as("m")), - s = $n(r.as("h")), - l = $n(r.as("d")), - c = $n(r.as("M")), - u = $n(r.as("w")), - d = $n(r.as("y")), - p = i <= n.ss && ["s", i] || i < n.s && ["ss", i] || o <= 1 && ["m"] || o < n.m && ["mm", o] || s <= 1 && ["h"] || s < n.h && ["hh", s] || l <= 1 && ["d"] || l < n.d && ["dd", l]; - return null != n.w && (p = p || u <= 1 && ["w"] || u < n.w && ["ww", u]), (p = p || c <= 1 && ["M"] || c < n.M && ["MM", c] || d <= 1 && ["y"] || ["yy", d])[2] = t, p[3] = +e > 0, p[4] = a, Zn.apply(null, p) - }(this, !r, i, n = this.localeData()), r && (a = n.pastFuture(+this, a)), n.postformat(a) - }, ta.toISOString = ea, ta.toString = ea, ta.toJSON = ea, ta.locale = Qt, ta.localeData = en, ta.toIsoString = S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", ea), ta.lang = Xt, N("X", 0, 0, "unix"), N("x", 0, 0, "valueOf"), he("x", ce), he("X", /[+-]?\d+(\.\d{1,3})?/), be("X", (function(e, t, n) { - n._d = new Date(1e3 * parseFloat(e)) - })), be("x", (function(e, t, n) { - n._d = new Date(Y(e)) - })), a.version = "2.29.1", t = xt, a.fn = kn, a.min = function() { - return jt("isBefore", [].slice.call(arguments, 0)) - }, a.max = function() { - return jt("isAfter", [].slice.call(arguments, 0)) - }, a.now = function() { - return Date.now ? Date.now() : +new Date - }, a.utc = h, a.unix = function(e) { - return xt(1e3 * e) - }, a.months = function(e, t) { - return En(e, t, "months") - }, a.isDate = u, a.locale = it, a.invalid = g, a.duration = Bt, a.isMoment = _, a.weekdays = function(e, t, n) { - return xn(e, t, n, "weekdays") - }, a.parseZone = function() { - return xt.apply(null, arguments).parseZone() - }, a.localeData = st, a.isDuration = Tt, a.monthsShort = function(e, t) { - return En(e, t, "monthsShort") - }, a.weekdaysMin = function(e, t, n) { - return xn(e, t, n, "weekdaysMin") - }, a.defineLocale = ot, a.updateLocale = function(e, t) { - if (null != t) { - var n, a, r = Xe; - null != et[e] && null != et[e].parentLocale ? et[e].set(j(et[e]._config, t)) : (null != (a = rt(e)) && (r = a._config), t = j(r, t), null == a && (t.abbr = e), (n = new P(t)).parentLocale = et[e], et[e] = n), it(e) - } else null != et[e] && (null != et[e].parentLocale ? (et[e] = et[e].parentLocale, e === it() && it(e)) : null != et[e] && delete et[e]); - return et[e] - }, a.locales = function() { - return E(et) - }, a.weekdaysShort = function(e, t, n) { - return xn(e, t, n, "weekdaysShort") - }, a.normalizeUnits = q, a.relativeTimeRounding = function(e) { - return void 0 === e ? $n : "function" == typeof e && ($n = e, !0) - }, a.relativeTimeThreshold = function(e, t) { - return void 0 !== Jn[e] && (void 0 === t ? Jn[e] : (Jn[e] = t, "s" === e && (Jn.ss = t - 1), !0)) - }, a.calendarFormat = function(e, t) { - var n = e.diff(t, "days", !0); - return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse" - }, a.prototype = kn, a.HTML5_FMT = { - DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", - DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", - DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", - DATE: "YYYY-MM-DD", - TIME: "HH:mm", - TIME_SECONDS: "HH:mm:ss", - TIME_MS: "HH:mm:ss.SSS", - WEEK: "GGGG-[W]WW", - MONTH: "YYYY-MM" - }, a - }() - }, 2068: e => { - var t = 1e3, - n = 60 * t, - a = 60 * n, - r = 24 * a; + function Tt(e, t) { + var n, a; + if (1 === t.length && r(t[0]) && (t = t[0]), !t.length) return xt(); + for (n = t[0], a = 1; a < t.length; ++a) t[a].isValid() && !t[a][e](n) || (n = t[a]); + return n + } + var Dt = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; + + function Pt(e) { + var t = B(e), + n = t.year || 0, + a = t.quarter || 0, + r = t.month || 0, + i = t.week || t.isoWeek || 0, + s = t.day || 0, + l = t.hour || 0, + c = t.minute || 0, + u = t.second || 0, + d = t.millisecond || 0; + this._isValid = function(e) { + var t, n, a = !1; + for (t in e) + if (o(e, t) && (-1 === ke.call(Dt, t) || null != e[t] && isNaN(e[t]))) return !1; + for (n = 0; n < Dt.length; ++n) + if (e[Dt[n]]) { + if (a) return !1; + parseFloat(e[Dt[n]]) !== Y(e[Dt[n]]) && (a = !0) + } return !0 + }(t), this._milliseconds = +d + 1e3 * u + 6e4 * c + 1e3 * l * 60 * 60, this._days = +s + 7 * i, this._months = +r + 3 * a + 12 * n, this._data = {}, this._locale = st(), this._bubble() + } - function i(e, t, n) { - if (!(e < t)) return e < 1.5 * t ? Math.floor(e / t) + " " + n : Math.ceil(e / t) + " " + n + "s" - } - e.exports = function(e, o) { - o = o || {}; - var s, l = typeof e; - if ("string" === l && e.length > 0) return function(e) { - if (!((e = String(e)).length > 100)) { - var i = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e); - if (i) { - var o = parseFloat(i[1]); - switch ((i[2] || "ms").toLowerCase()) { - case "years": - case "year": - case "yrs": - case "yr": - case "y": - return 315576e5 * o; - case "days": - case "day": - case "d": - return o * r; - case "hours": - case "hour": - case "hrs": - case "hr": - case "h": - return o * a; - case "minutes": - case "minute": - case "mins": - case "min": - case "m": - return o * n; - case "seconds": - case "second": - case "secs": - case "sec": - case "s": - return o * t; - case "milliseconds": - case "millisecond": - case "msecs": - case "msec": - case "ms": - return o; - default: - return - } - } - } - }(e); - if ("number" === l && !1 === isNaN(e)) return o.long ? i(s = e, r, "day") || i(s, a, "hour") || i(s, n, "minute") || i(s, t, "second") || s + " ms" : function(e) { - return e >= r ? Math.round(e / r) + "d" : e >= a ? Math.round(e / a) + "h" : e >= n ? Math.round(e / n) + "m" : e >= t ? Math.round(e / t) + "s" : e + "ms" - }(e); - throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(e)) + function jt(e) { + return e instanceof Pt } - }, 5535: e => { - "use strict"; - var t = Object.getOwnPropertySymbols, - n = Object.prototype.hasOwnProperty, - a = Object.prototype.propertyIsEnumerable; - function r(e) { - if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined"); - return Object(e) + function Mt(e) { + return e < 0 ? -1 * Math.round(-1 * e) : Math.round(e) } - e.exports = function() { - try { - if (!Object.assign) return !1; - var e = new String("abc"); - if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) return !1; - for (var t = {}, n = 0; n < 10; n++) t["_" + String.fromCharCode(n)] = n; - if ("0123456789" !== Object.getOwnPropertyNames(t).map((function(e) { - return t[e] - })).join("")) return !1; - var a = {}; - return "abcdefghijklmnopqrst".split("").forEach((function(e) { - a[e] = e - })), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, a)).join("") - } catch (e) { - return !1 - } - }() ? Object.assign : function(e, i) { - for (var o, s, l = r(e), c = 1; c < arguments.length; c++) { - for (var u in o = Object(arguments[c])) n.call(o, u) && (l[u] = o[u]); - if (t) { - s = t(o); - for (var d = 0; d < s.length; d++) a.call(o, s[d]) && (l[s[d]] = o[s[d]]) - } + + function It(e, t) { + N(e, 0, 0, (function() { + var e = this.utcOffset(), + n = "+"; + return e < 0 && (e = -e, n = "-"), n + P(~~(e / 60), 2) + t + P(~~e % 60, 2) + })) + } + It("Z", ":"), It("ZZ", ""), he("Z", de), he("ZZ", de), be(["Z", "ZZ"], (function(e, t, n) { + n._useUTC = !0, n._tzm = Nt(de, e) + })); + var Ot = /([\+\-]|\d\d)/gi; + + function Nt(e, t) { + var n, a, r = (t || "").match(e); + return null === r ? null : 0 === (a = 60 * (n = ((r[r.length - 1] || []) + "").match(Ot) || ["-", 0, 0])[1] + Y(n[2])) ? 0 : "+" === n[0] ? a : -a + } + + function Rt(e, t) { + var n, r; + return t._isUTC ? (n = t.clone(), r = (_(e) || u(e) ? e.valueOf() : xt(e).valueOf()) - n.valueOf(), n._d.setTime(n._d.valueOf() + r), a.updateOffset(n, !1), n) : xt(e).local() + } + + function zt(e) { + return -Math.round(e._d.getTimezoneOffset()) + } + + function Lt() { + return !!this.isValid() && this._isUTC && 0 === this._offset + } + a.updateOffset = function() {}; + var Ft = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + qt = /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + + function Bt(e, t) { + var n, a, r, i, s, l, u = e, + d = null; + return jt(e) ? u = { + ms: e._milliseconds, + d: e._days, + M: e._months + } : c(e) || !isNaN(+e) ? (u = {}, t ? u[t] = +e : u.milliseconds = +e) : (d = Ft.exec(e)) ? (n = "-" === d[1] ? -1 : 1, u = { + y: 0, + d: Y(d[2]) * n, + h: Y(d[3]) * n, + m: Y(d[4]) * n, + s: Y(d[5]) * n, + ms: Y(Mt(1e3 * d[6])) * n + }) : (d = qt.exec(e)) ? (n = "-" === d[1] ? -1 : 1, u = { + y: Ut(d[2], n), + M: Ut(d[3], n), + w: Ut(d[4], n), + d: Ut(d[5], n), + h: Ut(d[6], n), + m: Ut(d[7], n), + s: Ut(d[8], n) + }) : null == u ? u = {} : "object" == typeof u && ("from" in u || "to" in u) && (i = xt(u.from), s = xt(u.to), r = i.isValid() && s.isValid() ? (s = Rt(s, i), i.isBefore(s) ? l = Ht(i, s) : ((l = Ht(s, i)).milliseconds = -l.milliseconds, l.months = -l.months), l) : { + milliseconds: 0, + months: 0 + }, (u = {}).ms = r.milliseconds, u.M = r.months), a = new Pt(u), jt(e) && o(e, "_locale") && (a._locale = e._locale), jt(e) && o(e, "_isValid") && (a._isValid = e._isValid), a + } + + function Ut(e, t) { + var n = e && parseFloat(e.replace(",", ".")); + return (isNaN(n) ? 0 : n) * t + } + + function Ht(e, t) { + var n = {}; + return n.months = t.month() - e.month() + 12 * (t.year() - e.year()), e.clone().add(n.months, "M").isAfter(t) && --n.months, n.milliseconds = +t - +e.clone().add(n.months, "M"), n + } + + function Vt(e, t) { + return function(n, a) { + var r; + return null === a || isNaN(+a) || (C(t, "moment()." + t + "(period, number) is deprecated. Please use moment()." + t + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), r = n, n = a, a = r), Wt(this, Bt(n, a), e), this } - return l } - }, 554: e => { - var t, n, a = e.exports = {}; - function r() { - throw new Error("setTimeout has not been defined") + function Wt(e, t, n, r) { + var i = t._milliseconds, + o = Mt(t._days), + s = Mt(t._months); + e.isValid() && (r = null == r || r, s && Te(e, K(e, "Month") + s * n), o && $(e, "Date", K(e, "Date") + o * n), i && e._d.setTime(e._d.valueOf() + i * n), r && a.updateOffset(e, o || s)) } + Bt.fn = Pt.prototype, Bt.invalid = function() { + return Bt(NaN) + }; + var Yt = Vt(1, "add"), + Gt = Vt(-1, "subtract"); - function i() { - throw new Error("clearTimeout has not been defined") + function Kt(e) { + return "string" == typeof e || e instanceof String + } + + function $t(e) { + return _(e) || u(e) || Kt(e) || c(e) || function(e) { + var t = r(e), + n = !1; + return t && (n = 0 === e.filter((function(t) { + return !c(t) && Kt(e) + })).length), t && n + }(e) || function(e) { + var t, n, a = i(e) && !s(e), + r = !1, + l = ["years", "year", "y", "months", "month", "M", "days", "day", "d", "dates", "date", "D", "hours", "hour", "h", "minutes", "minute", "m", "seconds", "second", "s", "milliseconds", "millisecond", "ms"]; + for (t = 0; t < l.length; t += 1) n = l[t], r = r || o(e, n); + return a && r + }(e) || null == e } - function o(e) { - if (t === setTimeout) return setTimeout(e, 0); - if ((t === r || !t) && setTimeout) return t = setTimeout, setTimeout(e, 0); - try { - return t(e, 0) - } catch (n) { - try { - return t.call(null, e, 0) - } catch (n) { - return t.call(this, e, 0) - } - } - }! function() { - try { - t = "function" == typeof setTimeout ? setTimeout : r - } catch (e) { - t = r - } - try { - n = "function" == typeof clearTimeout ? clearTimeout : i - } catch (e) { - n = i - } - }(); - var s, l = [], - c = !1, - u = -1; + function Jt(e) { + var t, n = i(e) && !s(e), + a = !1, + r = ["sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse"]; + for (t = 0; t < r.length; t += 1) a = a || o(e, r[t]); + return n && a + } - function d() { - c && s && (c = !1, s.length ? l = s.concat(l) : u = -1, l.length && p()) + function Zt(e, t) { + if (e.date() < t.date()) return -Zt(t, e); + var n = 12 * (t.year() - e.year()) + (t.month() - e.month()), + a = e.clone().add(n, "months"); + return -(n + (t - a < 0 ? (t - a) / (a - e.clone().add(n - 1, "months")) : (t - a) / (e.clone().add(n + 1, "months") - a))) || 0 } - function p() { - if (!c) { - var e = o(d); - c = !0; - for (var t = l.length; t;) { - for (s = l, l = []; ++u < t;) s && s[u].run(); - u = -1, t = l.length - } - s = null, c = !1, - function(e) { - if (n === clearTimeout) return clearTimeout(e); - if ((n === i || !n) && clearTimeout) return n = clearTimeout, clearTimeout(e); - try { - n(e) - } catch (t) { - try { - return n.call(null, e) - } catch (t) { - return n.call(this, e) - } - } - }(e) - } + function Qt(e) { + var t; + return void 0 === e ? this._locale._abbr : (null != (t = st(e)) && (this._locale = t), this) } + a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; + var Xt = S("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", (function(e) { + return void 0 === e ? this.localeData() : this.locale(e) + })); - function h(e, t) { - this.fun = e, this.array = t + function en() { + return this._locale } + var tn = 1e3, + nn = 6e4, + an = 36e5, + rn = 126227808e5; - function m() {} - a.nextTick = function(e) { - var t = new Array(arguments.length - 1); - if (arguments.length > 1) - for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; - l.push(new h(e, t)), 1 !== l.length || c || o(p) - }, h.prototype.run = function() { - this.fun.apply(null, this.array) - }, a.title = "browser", a.browser = !0, a.env = {}, a.argv = [], a.version = "", a.versions = {}, a.on = m, a.addListener = m, a.once = m, a.off = m, a.removeListener = m, a.removeAllListeners = m, a.emit = m, a.prependListener = m, a.prependOnceListener = m, a.listeners = function(e) { - return [] - }, a.binding = function(e) { - throw new Error("process.binding is not supported") - }, a.cwd = function() { - return "/" - }, a.chdir = function(e) { - throw new Error("process.chdir is not supported") - }, a.umask = function() { - return 0 + function on(e, t) { + return (e % t + t) % t } - }, 9739: (e, t, n) => { - "use strict"; - var a = n(6669); - function r() {} + function sn(e, t, n) { + return e < 100 && e >= 0 ? new Date(e + 400, t, n) - rn : new Date(e, t, n).valueOf() + } - function i() {} - i.resetWarningCache = r, e.exports = function() { - function e(e, t, n, r, i, o) { - if (o !== a) { - var s = new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types"); - throw s.name = "Invariant Violation", s - } - } + function ln(e, t, n) { + return e < 100 && e >= 0 ? Date.UTC(e + 400, t, n) - rn : Date.UTC(e, t, n) + } - function t() { - return e - } - e.isRequired = e; - var n = { - array: e, - bool: e, - func: e, - number: e, - object: e, - string: e, - symbol: e, - any: e, - arrayOf: t, - element: e, - elementType: e, - instanceOf: t, - node: e, - objectOf: t, - oneOf: t, - oneOfType: t, - shape: t, - exact: t, - checkPropTypes: i, - resetWarningCache: r - }; - return n.PropTypes = n, n + function cn(e, t) { + return t.erasAbbrRegex(e) } - }, 7329: (e, t, n) => { - e.exports = n(9739)() - }, 6669: e => { - "use strict"; - e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED" - }, 2494: e => { - "use strict"; - e.exports = function(e) { - var t = ""; - return function e(n) { - if ("string" == typeof n || "number" == typeof n) t += n; - else if (Array.isArray(n)) n.forEach((function(t) { - return e(t) - })); - else if (n && n.props) { - var a = n.props.children; - Array.isArray(a) ? a.forEach((function(t) { - return e(t) - })) : e(a) - } - }(e), t + + function un() { + var e, t, n = [], + a = [], + r = [], + i = [], + o = this.eras(); + for (e = 0, t = o.length; e < t; ++e) a.push(fe(o[e].name)), n.push(fe(o[e].abbr)), r.push(fe(o[e].narrow)), i.push(fe(o[e].name)), i.push(fe(o[e].abbr)), i.push(fe(o[e].narrow)); + this._erasRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._erasNameRegex = new RegExp("^(" + a.join("|") + ")", "i"), this._erasAbbrRegex = new RegExp("^(" + n.join("|") + ")", "i"), this._erasNarrowRegex = new RegExp("^(" + r.join("|") + ")", "i") } - }, 4534: (e, t, n) => { - "use strict"; - var a = n(2684), - r = n(5535), - i = n(7525); - function o(e) { - for (var t = "https://reactjs.org/docs/error-decoder.html?invariant=" + e, n = 1; n < arguments.length; n++) t += "&args[]=" + encodeURIComponent(arguments[n]); - return "Minified React error #" + e + "; visit " + t + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings." + function dn(e, t) { + N(0, [e, e.length], 0, t) } - if (!a) throw Error(o(227)); - var s = null, - l = {}; - - function c() { - if (s) - for (var e in l) { - var t = l[e], - n = s.indexOf(e); - if (!(-1 < n)) throw Error(o(96, e)); - if (!d[n]) { - if (!t.extractEvents) throw Error(o(97, e)); - for (var a in d[n] = t, n = t.eventTypes) { - var r = void 0, - i = n[a], - c = t, - h = a; - if (p.hasOwnProperty(h)) throw Error(o(99, h)); - p[h] = i; - var m = i.phasedRegistrationNames; - if (m) { - for (r in m) m.hasOwnProperty(r) && u(m[r], c, h); - r = !0 - } else i.registrationName ? (u(i.registrationName, c, h), r = !0) : r = !1; - if (!r) throw Error(o(98, a, e)) - } - } - } + + function pn(e, t, n, a, r) { + var i; + return null == e ? ze(this, a, r).year : (t > (i = Le(e, a, r)) && (t = i), hn.call(this, e, t, n, a, r)) + } + + function hn(e, t, n, a, r) { + var i = Re(e, t, n, a, r), + o = Oe(i.year, 0, i.dayOfYear); + return this.year(o.getUTCFullYear()), this.month(o.getUTCMonth()), this.date(o.getUTCDate()), this + } + N("N", 0, 0, "eraAbbr"), N("NN", 0, 0, "eraAbbr"), N("NNN", 0, 0, "eraAbbr"), N("NNNN", 0, 0, "eraName"), N("NNNNN", 0, 0, "eraNarrow"), N("y", ["y", 1], "yo", "eraYear"), N("y", ["yy", 2], 0, "eraYear"), N("y", ["yyy", 3], 0, "eraYear"), N("y", ["yyyy", 4], 0, "eraYear"), he("N", cn), he("NN", cn), he("NNN", cn), he("NNNN", (function(e, t) { + return t.erasNameRegex(e) + })), he("NNNNN", (function(e, t) { + return t.erasNarrowRegex(e) + })), be(["N", "NN", "NNN", "NNNN", "NNNNN"], (function(e, t, n, a) { + var r = n._locale.erasParse(e, a, n._strict); + r ? m(n).era = r : m(n).invalidEra = e + })), he("y", le), he("yy", le), he("yyy", le), he("yyyy", le), he("yo", (function(e, t) { + return t._eraYearOrdinalRegex || le + })), be(["y", "yy", "yyy", "yyyy"], 0), be(["yo"], (function(e, t, n, a) { + var r; + n._locale._eraYearOrdinalRegex && (r = e.match(n._locale._eraYearOrdinalRegex)), n._locale.eraYearOrdinalParse ? t[0] = n._locale.eraYearOrdinalParse(e, r) : t[0] = parseInt(e, 10) + })), N(0, ["gg", 2], 0, (function() { + return this.weekYear() % 100 + })), N(0, ["GG", 2], 0, (function() { + return this.isoWeekYear() % 100 + })), dn("gggg", "weekYear"), dn("ggggg", "weekYear"), dn("GGGG", "isoWeekYear"), dn("GGGGG", "isoWeekYear"), F("weekYear", "gg"), F("isoWeekYear", "GG"), H("weekYear", 1), H("isoWeekYear", 1), he("G", ce), he("g", ce), he("GG", ne, Q), he("gg", ne, Q), he("GGGG", oe, ee), he("gggg", oe, ee), he("GGGGG", se, te), he("ggggg", se, te), ye(["gggg", "ggggg", "GGGG", "GGGGG"], (function(e, t, n, a) { + t[a.substr(0, 2)] = Y(e) + })), ye(["gg", "GG"], (function(e, t, n, r) { + t[r] = a.parseTwoDigitYear(e) + })), N("Q", 0, "Qo", "quarter"), F("quarter", "Q"), H("quarter", 7), he("Q", Z), be("Q", (function(e, t) { + t[1] = 3 * (Y(e) - 1) + })), N("D", ["DD", 2], "Do", "date"), F("date", "D"), H("date", 9), he("D", ne), he("DD", ne, Q), he("Do", (function(e, t) { + return e ? t._dayOfMonthOrdinalParse || t._ordinalParse : t._dayOfMonthOrdinalParseLenient + })), be(["D", "DD"], 2), be("Do", (function(e, t) { + t[2] = Y(e.match(ne)[0]) + })); + var mn = G("Date", !0); + N("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), F("dayOfYear", "DDD"), H("dayOfYear", 4), he("DDD", ie), he("DDDD", X), be(["DDD", "DDDD"], (function(e, t, n) { + n._dayOfYear = Y(e) + })), N("m", ["mm", 2], 0, "minute"), F("minute", "m"), H("minute", 14), he("m", ne), he("mm", ne, Q), be(["m", "mm"], 4); + var fn = G("Minutes", !1); + N("s", ["ss", 2], 0, "second"), F("second", "s"), H("second", 15), he("s", ne), he("ss", ne, Q), be(["s", "ss"], 5); + var gn, bn, yn = G("Seconds", !1); + for (N("S", 0, 0, (function() { + return ~~(this.millisecond() / 100) + })), N(0, ["SS", 2], 0, (function() { + return ~~(this.millisecond() / 10) + })), N(0, ["SSS", 3], 0, "millisecond"), N(0, ["SSSS", 4], 0, (function() { + return 10 * this.millisecond() + })), N(0, ["SSSSS", 5], 0, (function() { + return 100 * this.millisecond() + })), N(0, ["SSSSSS", 6], 0, (function() { + return 1e3 * this.millisecond() + })), N(0, ["SSSSSSS", 7], 0, (function() { + return 1e4 * this.millisecond() + })), N(0, ["SSSSSSSS", 8], 0, (function() { + return 1e5 * this.millisecond() + })), N(0, ["SSSSSSSSS", 9], 0, (function() { + return 1e6 * this.millisecond() + })), F("millisecond", "ms"), H("millisecond", 16), he("S", ie, Z), he("SS", ie, Q), he("SSS", ie, X), gn = "SSSS"; gn.length <= 9; gn += "S") he(gn, le); + + function vn(e, t) { + t[6] = Y(1e3 * ("0." + e)) + } + for (gn = "S"; gn.length <= 9; gn += "S") be(gn, vn); + bn = G("Milliseconds", !1), N("z", 0, 0, "zoneAbbr"), N("zz", 0, 0, "zoneName"); + var kn = k.prototype; + + function _n(e) { + return e } + kn.add = Yt, kn.calendar = function(e, t) { + 1 === arguments.length && (arguments[0] ? $t(arguments[0]) ? (e = arguments[0], t = void 0) : Jt(arguments[0]) && (t = arguments[0], e = void 0) : (e = void 0, t = void 0)); + var n = e || xt(), + r = Rt(n, this).startOf("day"), + i = a.calendarFormat(this, r) || "sameElse", + o = t && (A(t[i]) ? t[i].call(this, n) : t[i]); + return this.format(o || this.localeData().calendar(i, this, xt(n))) + }, kn.clone = function() { + return new k(this) + }, kn.diff = function(e, t, n) { + var a, r, i; + if (!this.isValid()) return NaN; + if (!(a = Rt(e, this)).isValid()) return NaN; + switch (r = 6e4 * (a.utcOffset() - this.utcOffset()), t = q(t)) { + case "year": + i = Zt(this, a) / 12; + break; + case "month": + i = Zt(this, a); + break; + case "quarter": + i = Zt(this, a) / 3; + break; + case "second": + i = (this - a) / 1e3; + break; + case "minute": + i = (this - a) / 6e4; + break; + case "hour": + i = (this - a) / 36e5; + break; + case "day": + i = (this - a - r) / 864e5; + break; + case "week": + i = (this - a - r) / 6048e5; + break; + default: + i = this - a + } + return n ? i : W(i) + }, kn.endOf = function(e) { + var t, n; + if (void 0 === (e = q(e)) || "millisecond" === e || !this.isValid()) return this; + switch (n = this._isUTC ? ln : sn, e) { + case "year": + t = n(this.year() + 1, 0, 1) - 1; + break; + case "quarter": + t = n(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; + break; + case "month": + t = n(this.year(), this.month() + 1, 1) - 1; + break; + case "week": + t = n(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; + break; + case "isoWeek": + t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; + break; + case "day": + case "date": + t = n(this.year(), this.month(), this.date() + 1) - 1; + break; + case "hour": + t = this._d.valueOf(), t += an - on(t + (this._isUTC ? 0 : this.utcOffset() * nn), an) - 1; + break; + case "minute": + t = this._d.valueOf(), t += nn - on(t, nn) - 1; + break; + case "second": + t = this._d.valueOf(), t += tn - on(t, tn) - 1 + } + return this._d.setTime(t), a.updateOffset(this, !0), this + }, kn.format = function(e) { + e || (e = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat); + var t = R(this, e); + return this.localeData().postformat(t) + }, kn.from = function(e, t) { + return this.isValid() && (_(e) && e.isValid() || xt(e).isValid()) ? Bt({ + to: this, + from: e + }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() + }, kn.fromNow = function(e) { + return this.from(xt(), e) + }, kn.to = function(e, t) { + return this.isValid() && (_(e) && e.isValid() || xt(e).isValid()) ? Bt({ + from: this, + to: e + }).locale(this.locale()).humanize(!t) : this.localeData().invalidDate() + }, kn.toNow = function(e) { + return this.to(xt(), e) + }, kn.get = function(e) { + return A(this[e = q(e)]) ? this[e]() : this + }, kn.invalidAt = function() { + return m(this).overflow + }, kn.isAfter = function(e, t) { + var n = _(e) ? e : xt(e); + return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = q(t) || "millisecond") ? this.valueOf() > n.valueOf() : n.valueOf() < this.clone().startOf(t).valueOf()) + }, kn.isBefore = function(e, t) { + var n = _(e) ? e : xt(e); + return !(!this.isValid() || !n.isValid()) && ("millisecond" === (t = q(t) || "millisecond") ? this.valueOf() < n.valueOf() : this.clone().endOf(t).valueOf() < n.valueOf()) + }, kn.isBetween = function(e, t, n, a) { + var r = _(e) ? e : xt(e), + i = _(t) ? t : xt(t); + return !!(this.isValid() && r.isValid() && i.isValid()) && ("(" === (a = a || "()")[0] ? this.isAfter(r, n) : !this.isBefore(r, n)) && (")" === a[1] ? this.isBefore(i, n) : !this.isAfter(i, n)) + }, kn.isSame = function(e, t) { + var n, a = _(e) ? e : xt(e); + return !(!this.isValid() || !a.isValid()) && ("millisecond" === (t = q(t) || "millisecond") ? this.valueOf() === a.valueOf() : (n = a.valueOf(), this.clone().startOf(t).valueOf() <= n && n <= this.clone().endOf(t).valueOf())) + }, kn.isSameOrAfter = function(e, t) { + return this.isSame(e, t) || this.isAfter(e, t) + }, kn.isSameOrBefore = function(e, t) { + return this.isSame(e, t) || this.isBefore(e, t) + }, kn.isValid = function() { + return f(this) + }, kn.lang = Xt, kn.locale = Qt, kn.localeData = en, kn.max = At, kn.min = Ct, kn.parsingFlags = function() { + return p({}, m(this)) + }, kn.set = function(e, t) { + if ("object" == typeof e) { + var n, a = function(e) { + var t, n = []; + for (t in e) o(e, t) && n.push({ + unit: t, + priority: U[t] + }); + return n.sort((function(e, t) { + return e.priority - t.priority + })), n + }(e = B(e)); + for (n = 0; n < a.length; n++) this[a[n].unit](e[a[n].unit]) + } else if (A(this[e = q(e)])) return this[e](t); + return this + }, kn.startOf = function(e) { + var t, n; + if (void 0 === (e = q(e)) || "millisecond" === e || !this.isValid()) return this; + switch (n = this._isUTC ? ln : sn, e) { + case "year": + t = n(this.year(), 0, 1); + break; + case "quarter": + t = n(this.year(), this.month() - this.month() % 3, 1); + break; + case "month": + t = n(this.year(), this.month(), 1); + break; + case "week": + t = n(this.year(), this.month(), this.date() - this.weekday()); + break; + case "isoWeek": + t = n(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); + break; + case "day": + case "date": + t = n(this.year(), this.month(), this.date()); + break; + case "hour": + t = this._d.valueOf(), t -= on(t + (this._isUTC ? 0 : this.utcOffset() * nn), an); + break; + case "minute": + t = this._d.valueOf(), t -= on(t, nn); + break; + case "second": + t = this._d.valueOf(), t -= on(t, tn) + } + return this._d.setTime(t), a.updateOffset(this, !0), this + }, kn.subtract = Gt, kn.toArray = function() { + var e = this; + return [e.year(), e.month(), e.date(), e.hour(), e.minute(), e.second(), e.millisecond()] + }, kn.toObject = function() { + var e = this; + return { + years: e.year(), + months: e.month(), + date: e.date(), + hours: e.hours(), + minutes: e.minutes(), + seconds: e.seconds(), + milliseconds: e.milliseconds() + } + }, kn.toDate = function() { + return new Date(this.valueOf()) + }, kn.toISOString = function(e) { + if (!this.isValid()) return null; + var t = !0 !== e, + n = t ? this.clone().utc() : this; + return n.year() < 0 || n.year() > 9999 ? R(n, t ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ") : A(Date.prototype.toISOString) ? t ? this.toDate().toISOString() : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().replace("Z", R(n, "Z")) : R(n, t ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ") + }, kn.inspect = function() { + if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; + var e, t, n, a = "moment", + r = ""; + return this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", r = "Z"), e = "[" + a + '("]', t = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", "-MM-DD[T]HH:mm:ss.SSS", n = r + '[")]', this.format(e + t + "-MM-DD[T]HH:mm:ss.SSS" + n) + }, "undefined" != typeof Symbol && null != Symbol.for && (kn[Symbol.for("nodejs.util.inspect.custom")] = function() { + return "Moment<" + this.format() + ">" + }), kn.toJSON = function() { + return this.isValid() ? this.toISOString() : null + }, kn.toString = function() { + return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ") + }, kn.unix = function() { + return Math.floor(this.valueOf() / 1e3) + }, kn.valueOf = function() { + return this._d.valueOf() - 6e4 * (this._offset || 0) + }, kn.creationData = function() { + return { + input: this._i, + format: this._f, + locale: this._locale, + isUTC: this._isUTC, + strict: this._strict + } + }, kn.eraName = function() { + var e, t, n, a = this.localeData().eras(); + for (e = 0, t = a.length; e < t; ++e) { + if (n = this.clone().startOf("day").valueOf(), a[e].since <= n && n <= a[e].until) return a[e].name; + if (a[e].until <= n && n <= a[e].since) return a[e].name + } + return "" + }, kn.eraNarrow = function() { + var e, t, n, a = this.localeData().eras(); + for (e = 0, t = a.length; e < t; ++e) { + if (n = this.clone().startOf("day").valueOf(), a[e].since <= n && n <= a[e].until) return a[e].narrow; + if (a[e].until <= n && n <= a[e].since) return a[e].narrow + } + return "" + }, kn.eraAbbr = function() { + var e, t, n, a = this.localeData().eras(); + for (e = 0, t = a.length; e < t; ++e) { + if (n = this.clone().startOf("day").valueOf(), a[e].since <= n && n <= a[e].until) return a[e].abbr; + if (a[e].until <= n && n <= a[e].since) return a[e].abbr + } + return "" + }, kn.eraYear = function() { + var e, t, n, r, i = this.localeData().eras(); + for (e = 0, t = i.length; e < t; ++e) + if (n = i[e].since <= i[e].until ? 1 : -1, r = this.clone().startOf("day").valueOf(), i[e].since <= r && r <= i[e].until || i[e].until <= r && r <= i[e].since) return (this.year() - a(i[e].since).year()) * n + i[e].offset; + return this.year() + }, kn.year = Me, kn.isLeapYear = function() { + return V(this.year()) + }, kn.weekYear = function(e) { + return pn.call(this, e, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy) + }, kn.isoWeekYear = function(e) { + return pn.call(this, e, this.isoWeek(), this.isoWeekday(), 1, 4) + }, kn.quarter = kn.quarters = function(e) { + return null == e ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (e - 1) + this.month() % 3) + }, kn.month = De, kn.daysInMonth = function() { + return _e(this.year(), this.month()) + }, kn.week = kn.weeks = function(e) { + var t = this.localeData().week(this); + return null == e ? t : this.add(7 * (e - t), "d") + }, kn.isoWeek = kn.isoWeeks = function(e) { + var t = ze(this, 1, 4).week; + return null == e ? t : this.add(7 * (e - t), "d") + }, kn.weeksInYear = function() { + var e = this.localeData()._week; + return Le(this.year(), e.dow, e.doy) + }, kn.weeksInWeekYear = function() { + var e = this.localeData()._week; + return Le(this.weekYear(), e.dow, e.doy) + }, kn.isoWeeksInYear = function() { + return Le(this.year(), 1, 4) + }, kn.isoWeeksInISOWeekYear = function() { + return Le(this.isoWeekYear(), 1, 4) + }, kn.date = mn, kn.day = kn.days = function(e) { + if (!this.isValid()) return null != e ? this : NaN; + var t = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + return null != e ? (e = function(e, t) { + return "string" != typeof e ? e : isNaN(e) ? "number" == typeof(e = t.weekdaysParse(e)) ? e : null : parseInt(e, 10) + }(e, this.localeData()), this.add(e - t, "d")) : t + }, kn.weekday = function(e) { + if (!this.isValid()) return null != e ? this : NaN; + var t = (this.day() + 7 - this.localeData()._week.dow) % 7; + return null == e ? t : this.add(e - t, "d") + }, kn.isoWeekday = function(e) { + if (!this.isValid()) return null != e ? this : NaN; + if (null != e) { + var t = function(e, t) { + return "string" == typeof e ? t.weekdaysParse(e) % 7 || 7 : isNaN(e) ? null : e + }(e, this.localeData()); + return this.day(this.day() % 7 ? t : t - 7) + } + return this.day() || 7 + }, kn.dayOfYear = function(e) { + var t = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; + return null == e ? t : this.add(e - t, "d") + }, kn.hour = kn.hours = Ze, kn.minute = kn.minutes = fn, kn.second = kn.seconds = yn, kn.millisecond = kn.milliseconds = bn, kn.utcOffset = function(e, t, n) { + var r, i = this._offset || 0; + if (!this.isValid()) return null != e ? this : NaN; + if (null != e) { + if ("string" == typeof e) { + if (null === (e = Nt(de, e))) return this + } else Math.abs(e) < 16 && !n && (e *= 60); + return !this._isUTC && t && (r = zt(this)), this._offset = e, this._isUTC = !0, null != r && this.add(r, "m"), i !== e && (!t || this._changeInProgress ? Wt(this, Bt(e - i, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this + } + return this._isUTC ? i : zt(this) + }, kn.utc = function(e) { + return this.utcOffset(0, e) + }, kn.local = function(e) { + return this._isUTC && (this.utcOffset(0, e), this._isUTC = !1, e && this.subtract(zt(this), "m")), this + }, kn.parseZone = function() { + if (null != this._tzm) this.utcOffset(this._tzm, !1, !0); + else if ("string" == typeof this._i) { + var e = Nt(ue, this._i); + null != e ? this.utcOffset(e) : this.utcOffset(0, !0) + } + return this + }, kn.hasAlignedHourOffset = function(e) { + return !!this.isValid() && (e = e ? xt(e).utcOffset() : 0, (this.utcOffset() - e) % 60 == 0) + }, kn.isDST = function() { + return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset() + }, kn.isLocal = function() { + return !!this.isValid() && !this._isUTC + }, kn.isUtcOffset = function() { + return !!this.isValid() && this._isUTC + }, kn.isUtc = Lt, kn.isUTC = Lt, kn.zoneAbbr = function() { + return this._isUTC ? "UTC" : "" + }, kn.zoneName = function() { + return this._isUTC ? "Coordinated Universal Time" : "" + }, kn.dates = S("dates accessor is deprecated. Use date instead.", mn), kn.months = S("months accessor is deprecated. Use month instead", De), kn.years = S("years accessor is deprecated. Use year instead", Me), kn.zone = S("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", (function(e, t) { + return null != e ? ("string" != typeof e && (e = -e), this.utcOffset(e, t), this) : -this.utcOffset() + })), kn.isDSTShifted = S("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", (function() { + if (!l(this._isDSTShifted)) return this._isDSTShifted; + var e, t = {}; + return v(t, this), (t = St(t))._a ? (e = t._isUTC ? h(t._a) : xt(t._a), this._isDSTShifted = this.isValid() && function(e, t, n) { + var a, r = Math.min(e.length, t.length), + i = Math.abs(e.length - t.length), + o = 0; + for (a = 0; a < r; a++)(n && e[a] !== t[a] || !n && Y(e[a]) !== Y(t[a])) && o++; + return o + i + }(t._a, e.toArray()) > 0) : this._isDSTShifted = !1, this._isDSTShifted + })); + var wn = D.prototype; - function u(e, t, n) { - if (h[e]) throw Error(o(100, e)); - h[e] = t, m[e] = t.eventTypes[n].dependencies + function Sn(e, t, n, a) { + var r = st(), + i = h().set(a, t); + return r[n](i, e) } - var d = [], - p = {}, - h = {}, - m = {}; - function f(e, t, n, a, r, i, o, s, l) { - var c = Array.prototype.slice.call(arguments, 3); - try { - t.apply(n, c) - } catch (e) { - this.onError(e) - } + function En(e, t, n) { + if (c(e) && (t = e, e = void 0), e = e || "", null != t) return Sn(e, t, n, "month"); + var a, r = []; + for (a = 0; a < 12; a++) r[a] = Sn(e, a, n, "month"); + return r } - var g = !1, - b = null, - y = !1, - v = null, - k = { - onError: function(e) { - g = !0, b = e - } - }; - function _(e, t, n, a, r, i, o, s, l) { - g = !1, b = null, f.apply(k, arguments) + function xn(e, t, n, a) { + "boolean" == typeof e ? (c(t) && (n = t, t = void 0), t = t || "") : (n = t = e, e = !1, c(t) && (n = t, t = void 0), t = t || ""); + var r, i = st(), + o = e ? i._week.dow : 0, + s = []; + if (null != n) return Sn(t, (n + o) % 7, a, "day"); + for (r = 0; r < 7; r++) s[r] = Sn(t, (r + o) % 7, a, "day"); + return s } - var w = null, - S = null, - E = null; + wn.calendar = function(e, t, n) { + var a = this._calendar[e] || this._calendar.sameElse; + return A(a) ? a.call(t, n) : a + }, wn.longDateFormat = function(e) { + var t = this._longDateFormat[e], + n = this._longDateFormat[e.toUpperCase()]; + return t || !n ? t : (this._longDateFormat[e] = n.match(j).map((function(e) { + return "MMMM" === e || "MM" === e || "DD" === e || "dddd" === e ? e.slice(1) : e + })).join(""), this._longDateFormat[e]) + }, wn.invalidDate = function() { + return this._invalidDate + }, wn.ordinal = function(e) { + return this._ordinal.replace("%d", e) + }, wn.preparse = _n, wn.postformat = _n, wn.relativeTime = function(e, t, n, a) { + var r = this._relativeTime[n]; + return A(r) ? r(e, t, n, a) : r.replace(/%d/i, e) + }, wn.pastFuture = function(e, t) { + var n = this._relativeTime[e > 0 ? "future" : "past"]; + return A(n) ? n(t) : n.replace(/%s/i, t) + }, wn.set = function(e) { + var t, n; + for (n in e) o(e, n) && (A(t = e[n]) ? this[n] = t : this["_" + n] = t); + this._config = e, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source) + }, wn.eras = function(e, t) { + var n, r, i, o = this._eras || st("en")._eras; + for (n = 0, r = o.length; n < r; ++n) switch ("string" == typeof o[n].since && (i = a(o[n].since).startOf("day"), o[n].since = i.valueOf()), typeof o[n].until) { + case "undefined": + o[n].until = 1 / 0; + break; + case "string": + i = a(o[n].until).startOf("day").valueOf(), o[n].until = i.valueOf() + } + return o + }, wn.erasParse = function(e, t, n) { + var a, r, i, o, s, l = this.eras(); + for (e = e.toUpperCase(), a = 0, r = l.length; a < r; ++a) + if (i = l[a].name.toUpperCase(), o = l[a].abbr.toUpperCase(), s = l[a].narrow.toUpperCase(), n) switch (t) { + case "N": + case "NN": + case "NNN": + if (o === e) return l[a]; + break; + case "NNNN": + if (i === e) return l[a]; + break; + case "NNNNN": + if (s === e) return l[a] + } else if ([i, o, s].indexOf(e) >= 0) return l[a] + }, wn.erasConvertYear = function(e, t) { + var n = e.since <= e.until ? 1 : -1; + return void 0 === t ? a(e.since).year() : a(e.since).year() + (t - e.offset) * n + }, wn.erasAbbrRegex = function(e) { + return o(this, "_erasAbbrRegex") || un.call(this), e ? this._erasAbbrRegex : this._erasRegex + }, wn.erasNameRegex = function(e) { + return o(this, "_erasNameRegex") || un.call(this), e ? this._erasNameRegex : this._erasRegex + }, wn.erasNarrowRegex = function(e) { + return o(this, "_erasNarrowRegex") || un.call(this), e ? this._erasNarrowRegex : this._erasRegex + }, wn.months = function(e, t) { + return e ? r(this._months) ? this._months[e.month()] : this._months[(this._months.isFormat || Ee).test(t) ? "format" : "standalone"][e.month()] : r(this._months) ? this._months : this._months.standalone + }, wn.monthsShort = function(e, t) { + return e ? r(this._monthsShort) ? this._monthsShort[e.month()] : this._monthsShort[Ee.test(t) ? "format" : "standalone"][e.month()] : r(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone + }, wn.monthsParse = function(e, t, n) { + var a, r, i; + if (this._monthsParseExact) return Ae.call(this, e, t, n); + for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), a = 0; a < 12; a++) { + if (r = h([2e3, a]), n && !this._longMonthsParse[a] && (this._longMonthsParse[a] = new RegExp("^" + this.months(r, "").replace(".", "") + "$", "i"), this._shortMonthsParse[a] = new RegExp("^" + this.monthsShort(r, "").replace(".", "") + "$", "i")), n || this._monthsParse[a] || (i = "^" + this.months(r, "") + "|^" + this.monthsShort(r, ""), this._monthsParse[a] = new RegExp(i.replace(".", ""), "i")), n && "MMMM" === t && this._longMonthsParse[a].test(e)) return a; + if (n && "MMM" === t && this._shortMonthsParse[a].test(e)) return a; + if (!n && this._monthsParse[a].test(e)) return a + } + }, wn.monthsRegex = function(e) { + return this._monthsParseExact ? (o(this, "_monthsRegex") || Pe.call(this), e ? this._monthsStrictRegex : this._monthsRegex) : (o(this, "_monthsRegex") || (this._monthsRegex = Ce), this._monthsStrictRegex && e ? this._monthsStrictRegex : this._monthsRegex) + }, wn.monthsShortRegex = function(e) { + return this._monthsParseExact ? (o(this, "_monthsRegex") || Pe.call(this), e ? this._monthsShortStrictRegex : this._monthsShortRegex) : (o(this, "_monthsShortRegex") || (this._monthsShortRegex = xe), this._monthsShortStrictRegex && e ? this._monthsShortStrictRegex : this._monthsShortRegex) + }, wn.week = function(e) { + return ze(e, this._week.dow, this._week.doy).week + }, wn.firstDayOfYear = function() { + return this._week.doy + }, wn.firstDayOfWeek = function() { + return this._week.dow + }, wn.weekdays = function(e, t) { + var n = r(this._weekdays) ? this._weekdays : this._weekdays[e && !0 !== e && this._weekdays.isFormat.test(t) ? "format" : "standalone"]; + return !0 === e ? Fe(n, this._week.dow) : e ? n[e.day()] : n + }, wn.weekdaysMin = function(e) { + return !0 === e ? Fe(this._weekdaysMin, this._week.dow) : e ? this._weekdaysMin[e.day()] : this._weekdaysMin + }, wn.weekdaysShort = function(e) { + return !0 === e ? Fe(this._weekdaysShort, this._week.dow) : e ? this._weekdaysShort[e.day()] : this._weekdaysShort + }, wn.weekdaysParse = function(e, t, n) { + var a, r, i; + if (this._weekdaysParseExact) return Ye.call(this, e, t, n); + for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), a = 0; a < 7; a++) { + if (r = h([2e3, 1]).day(a), n && !this._fullWeekdaysParse[a] && (this._fullWeekdaysParse[a] = new RegExp("^" + this.weekdays(r, "").replace(".", "\\.?") + "$", "i"), this._shortWeekdaysParse[a] = new RegExp("^" + this.weekdaysShort(r, "").replace(".", "\\.?") + "$", "i"), this._minWeekdaysParse[a] = new RegExp("^" + this.weekdaysMin(r, "").replace(".", "\\.?") + "$", "i")), this._weekdaysParse[a] || (i = "^" + this.weekdays(r, "") + "|^" + this.weekdaysShort(r, "") + "|^" + this.weekdaysMin(r, ""), this._weekdaysParse[a] = new RegExp(i.replace(".", ""), "i")), n && "dddd" === t && this._fullWeekdaysParse[a].test(e)) return a; + if (n && "ddd" === t && this._shortWeekdaysParse[a].test(e)) return a; + if (n && "dd" === t && this._minWeekdaysParse[a].test(e)) return a; + if (!n && this._weekdaysParse[a].test(e)) return a + } + }, wn.weekdaysRegex = function(e) { + return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || Ge.call(this), e ? this._weekdaysStrictRegex : this._weekdaysRegex) : (o(this, "_weekdaysRegex") || (this._weekdaysRegex = He), this._weekdaysStrictRegex && e ? this._weekdaysStrictRegex : this._weekdaysRegex) + }, wn.weekdaysShortRegex = function(e) { + return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || Ge.call(this), e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (o(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = Ve), this._weekdaysShortStrictRegex && e ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) + }, wn.weekdaysMinRegex = function(e) { + return this._weekdaysParseExact ? (o(this, "_weekdaysRegex") || Ge.call(this), e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (o(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = We), this._weekdaysMinStrictRegex && e ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) + }, wn.isPM = function(e) { + return "p" === (e + "").toLowerCase().charAt(0) + }, wn.meridiem = function(e, t, n) { + return e > 11 ? n ? "pm" : "PM" : n ? "am" : "AM" + }, it("en", { + eras: [{ + since: "0001-01-01", + until: 1 / 0, + offset: 1, + name: "Anno Domini", + narrow: "AD", + abbr: "AD" + }, { + since: "0000-12-31", + until: -1 / 0, + offset: 1, + name: "Before Christ", + narrow: "BC", + abbr: "BC" + }], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function(e) { + var t = e % 10; + return e + (1 === Y(e % 100 / 10) ? "th" : 1 === t ? "st" : 2 === t ? "nd" : 3 === t ? "rd" : "th") + } + }), a.lang = S("moment.lang is deprecated. Use moment.locale instead.", it), a.langData = S("moment.langData is deprecated. Use moment.localeData instead.", st); + var Cn = Math.abs; - function x(e, t, n) { - var a = e.type || "unknown-event"; - e.currentTarget = E(n), - function(e, t, n, a, r, i, s, l, c) { - if (_.apply(this, arguments), g) { - if (!g) throw Error(o(198)); - var u = b; - g = !1, b = null, y || (y = !0, v = u) - } - }(a, t, void 0, e), e.currentTarget = null + function An(e, t, n, a) { + var r = Bt(t, n); + return e._milliseconds += a * r._milliseconds, e._days += a * r._days, e._months += a * r._months, e._bubble() } - function C(e, t) { - if (null == t) throw Error(o(30)); - return null == e ? t : Array.isArray(e) ? Array.isArray(t) ? (e.push.apply(e, t), e) : (e.push(t), e) : Array.isArray(t) ? [e].concat(t) : [e, t] + function Tn(e) { + return e < 0 ? Math.floor(e) : Math.ceil(e) } - function A(e, t, n) { - Array.isArray(e) ? e.forEach(t, n) : e && t.call(n, e) + function Dn(e) { + return 4800 * e / 146097 } - var j = null; - function P(e) { - if (e) { - var t = e._dispatchListeners, - n = e._dispatchInstances; - if (Array.isArray(t)) - for (var a = 0; a < t.length && !e.isPropagationStopped(); a++) x(e, t[a], n[a]); - else t && x(e, t, n); - e._dispatchListeners = null, e._dispatchInstances = null, e.isPersistent() || e.constructor.release(e) - } + function Pn(e) { + return 146097 * e / 4800 } - function D(e) { - if (null !== e && (j = C(j, e)), e = j, j = null, e) { - if (A(e, P), j) throw Error(o(95)); - if (y) throw e = v, y = !1, v = null, e + function jn(e) { + return function() { + return this.as(e) } } - var T = { - injectEventPluginOrder: function(e) { - if (s) throw Error(o(101)); - s = Array.prototype.slice.call(e), c() - }, - injectEventPluginsByName: function(e) { - var t, n = !1; - for (t in e) - if (e.hasOwnProperty(t)) { - var a = e[t]; - if (!l.hasOwnProperty(t) || l[t] !== a) { - if (l[t]) throw Error(o(102, t)); - l[t] = a, n = !0 - } - } n && c() - } - }; + var Mn = jn("ms"), + In = jn("s"), + On = jn("m"), + Nn = jn("h"), + Rn = jn("d"), + zn = jn("w"), + Ln = jn("M"), + Fn = jn("Q"), + qn = jn("y"); - function O(e, t) { - var n = e.stateNode; - if (!n) return null; - var a = w(n); - if (!a) return null; - n = a[t]; - e: switch (t) { - case "onClick": - case "onClickCapture": - case "onDoubleClick": - case "onDoubleClickCapture": - case "onMouseDown": - case "onMouseDownCapture": - case "onMouseMove": - case "onMouseMoveCapture": - case "onMouseUp": - case "onMouseUpCapture": - (a = !a.disabled) || (a = !("button" === (e = e.type) || "input" === e || "select" === e || "textarea" === e)), e = !a; - break e; + function Bn(e) { + return function() { + return this.isValid() ? this._data[e] : NaN + } + } + var Un = Bn("milliseconds"), + Hn = Bn("seconds"), + Vn = Bn("minutes"), + Wn = Bn("hours"), + Yn = Bn("days"), + Gn = Bn("months"), + Kn = Bn("years"); + var $n = Math.round, + Jn = { + ss: 44, + s: 45, + m: 45, + h: 22, + d: 26, + w: null, + M: 11 + }; + + function Zn(e, t, n, a, r) { + return r.relativeTime(t || 1, !!n, e, a) + } + var Qn = Math.abs; + + function Xn(e) { + return (e > 0) - (e < 0) || +e + } + + function ea() { + if (!this.isValid()) return this.localeData().invalidDate(); + var e, t, n, a, r, i, o, s, l = Qn(this._milliseconds) / 1e3, + c = Qn(this._days), + u = Qn(this._months), + d = this.asSeconds(); + return d ? (e = W(l / 60), t = W(e / 60), l %= 60, e %= 60, n = W(u / 12), u %= 12, a = l ? l.toFixed(3).replace(/\.?0+$/, "") : "", r = d < 0 ? "-" : "", i = Xn(this._months) !== Xn(d) ? "-" : "", o = Xn(this._days) !== Xn(d) ? "-" : "", s = Xn(this._milliseconds) !== Xn(d) ? "-" : "", r + "P" + (n ? i + n + "Y" : "") + (u ? i + u + "M" : "") + (c ? o + c + "D" : "") + (t || e || l ? "T" : "") + (t ? s + t + "H" : "") + (e ? s + e + "M" : "") + (l ? s + a + "S" : "")) : "P0D" + } + var ta = Pt.prototype; + return ta.isValid = function() { + return this._isValid + }, ta.abs = function() { + var e = this._data; + return this._milliseconds = Cn(this._milliseconds), this._days = Cn(this._days), this._months = Cn(this._months), e.milliseconds = Cn(e.milliseconds), e.seconds = Cn(e.seconds), e.minutes = Cn(e.minutes), e.hours = Cn(e.hours), e.months = Cn(e.months), e.years = Cn(e.years), this + }, ta.add = function(e, t) { + return An(this, e, t, 1) + }, ta.subtract = function(e, t) { + return An(this, e, t, -1) + }, ta.as = function(e) { + if (!this.isValid()) return NaN; + var t, n, a = this._milliseconds; + if ("month" === (e = q(e)) || "quarter" === e || "year" === e) switch (t = this._days + a / 864e5, n = this._months + Dn(t), e) { + case "month": + return n; + case "quarter": + return n / 3; + case "year": + return n / 12 + } else switch (t = this._days + Math.round(Pn(this._months)), e) { + case "week": + return t / 7 + a / 6048e5; + case "day": + return t + a / 864e5; + case "hour": + return 24 * t + a / 36e5; + case "minute": + return 1440 * t + a / 6e4; + case "second": + return 86400 * t + a / 1e3; + case "millisecond": + return Math.floor(864e5 * t) + a; default: - e = !1 + throw new Error("Unknown unit " + e) + } + }, ta.asMilliseconds = Mn, ta.asSeconds = In, ta.asMinutes = On, ta.asHours = Nn, ta.asDays = Rn, ta.asWeeks = zn, ta.asMonths = Ln, ta.asQuarters = Fn, ta.asYears = qn, ta.valueOf = function() { + return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * Y(this._months / 12) : NaN + }, ta._bubble = function() { + var e, t, n, a, r, i = this._milliseconds, + o = this._days, + s = this._months, + l = this._data; + return i >= 0 && o >= 0 && s >= 0 || i <= 0 && o <= 0 && s <= 0 || (i += 864e5 * Tn(Pn(s) + o), o = 0, s = 0), l.milliseconds = i % 1e3, e = W(i / 1e3), l.seconds = e % 60, t = W(e / 60), l.minutes = t % 60, n = W(t / 60), l.hours = n % 24, o += W(n / 24), s += r = W(Dn(o)), o -= Tn(Pn(r)), a = W(s / 12), s %= 12, l.days = o, l.months = s, l.years = a, this + }, ta.clone = function() { + return Bt(this) + }, ta.get = function(e) { + return e = q(e), this.isValid() ? this[e + "s"]() : NaN + }, ta.milliseconds = Un, ta.seconds = Hn, ta.minutes = Vn, ta.hours = Wn, ta.days = Yn, ta.weeks = function() { + return W(this.days() / 7) + }, ta.months = Gn, ta.years = Kn, ta.humanize = function(e, t) { + if (!this.isValid()) return this.localeData().invalidDate(); + var n, a, r = !1, + i = Jn; + return "object" == typeof e && (t = e, e = !1), "boolean" == typeof e && (r = e), "object" == typeof t && (i = Object.assign({}, Jn, t), null != t.s && null == t.ss && (i.ss = t.s - 1)), a = function(e, t, n, a) { + var r = Bt(e).abs(), + i = $n(r.as("s")), + o = $n(r.as("m")), + s = $n(r.as("h")), + l = $n(r.as("d")), + c = $n(r.as("M")), + u = $n(r.as("w")), + d = $n(r.as("y")), + p = i <= n.ss && ["s", i] || i < n.s && ["ss", i] || o <= 1 && ["m"] || o < n.m && ["mm", o] || s <= 1 && ["h"] || s < n.h && ["hh", s] || l <= 1 && ["d"] || l < n.d && ["dd", l]; + return null != n.w && (p = p || u <= 1 && ["w"] || u < n.w && ["ww", u]), (p = p || c <= 1 && ["M"] || c < n.M && ["MM", c] || d <= 1 && ["y"] || ["yy", d])[2] = t, p[3] = +e > 0, p[4] = a, Zn.apply(null, p) + }(this, !r, i, n = this.localeData()), r && (a = n.pastFuture(+this, a)), n.postformat(a) + }, ta.toISOString = ea, ta.toString = ea, ta.toJSON = ea, ta.locale = Qt, ta.localeData = en, ta.toIsoString = S("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", ea), ta.lang = Xt, N("X", 0, 0, "unix"), N("x", 0, 0, "valueOf"), he("x", ce), he("X", /[+-]?\d+(\.\d{1,3})?/), be("X", (function(e, t, n) { + n._d = new Date(1e3 * parseFloat(e)) + })), be("x", (function(e, t, n) { + n._d = new Date(Y(e)) + })), a.version = "2.29.1", t = xt, a.fn = kn, a.min = function() { + return Tt("isBefore", [].slice.call(arguments, 0)) + }, a.max = function() { + return Tt("isAfter", [].slice.call(arguments, 0)) + }, a.now = function() { + return Date.now ? Date.now() : +new Date + }, a.utc = h, a.unix = function(e) { + return xt(1e3 * e) + }, a.months = function(e, t) { + return En(e, t, "months") + }, a.isDate = u, a.locale = it, a.invalid = g, a.duration = Bt, a.isMoment = _, a.weekdays = function(e, t, n) { + return xn(e, t, n, "weekdays") + }, a.parseZone = function() { + return xt.apply(null, arguments).parseZone() + }, a.localeData = st, a.isDuration = jt, a.monthsShort = function(e, t) { + return En(e, t, "monthsShort") + }, a.weekdaysMin = function(e, t, n) { + return xn(e, t, n, "weekdaysMin") + }, a.defineLocale = ot, a.updateLocale = function(e, t) { + if (null != t) { + var n, a, r = Xe; + null != et[e] && null != et[e].parentLocale ? et[e].set(T(et[e]._config, t)) : (null != (a = rt(e)) && (r = a._config), t = T(r, t), null == a && (t.abbr = e), (n = new D(t)).parentLocale = et[e], et[e] = n), it(e) + } else null != et[e] && (null != et[e].parentLocale ? (et[e] = et[e].parentLocale, e === it() && it(e)) : null != et[e] && delete et[e]); + return et[e] + }, a.locales = function() { + return E(et) + }, a.weekdaysShort = function(e, t, n) { + return xn(e, t, n, "weekdaysShort") + }, a.normalizeUnits = q, a.relativeTimeRounding = function(e) { + return void 0 === e ? $n : "function" == typeof e && ($n = e, !0) + }, a.relativeTimeThreshold = function(e, t) { + return void 0 !== Jn[e] && (void 0 === t ? Jn[e] : (Jn[e] = t, "s" === e && (Jn.ss = t - 1), !0)) + }, a.calendarFormat = function(e, t) { + var n = e.diff(t, "days", !0); + return n < -6 ? "sameElse" : n < -1 ? "lastWeek" : n < 0 ? "lastDay" : n < 1 ? "sameDay" : n < 2 ? "nextDay" : n < 7 ? "nextWeek" : "sameElse" + }, a.prototype = kn, a.HTML5_FMT = { + DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", + DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", + DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", + DATE: "YYYY-MM-DD", + TIME: "HH:mm", + TIME_SECONDS: "HH:mm:ss", + TIME_MS: "HH:mm:ss.SSS", + WEEK: "GGGG-[W]WW", + MONTH: "YYYY-MM" + }, a + }() +}, 2068: e => { + var t = 1e3, + n = 60 * t, + a = 60 * n, + r = 24 * a; + + function i(e, t, n) { + if (!(e < t)) return e < 1.5 * t ? Math.floor(e / t) + " " + n : Math.ceil(e / t) + " " + n + "s" + } + e.exports = function(e, o) { + o = o || {}; + var s, l = typeof e; + if ("string" === l && e.length > 0) return function(e) { + if (!((e = String(e)).length > 100)) { + var i = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e); + if (i) { + var o = parseFloat(i[1]); + switch ((i[2] || "ms").toLowerCase()) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return 315576e5 * o; + case "days": + case "day": + case "d": + return o * r; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return o * a; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return o * n; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return o * t; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return o; + default: + return + } + } } - if (e) return null; - if (n && "function" != typeof n) throw Error(o(231, t, typeof n)); - return n + }(e); + if ("number" === l && !1 === isNaN(e)) return o.long ? i(s = e, r, "day") || i(s, a, "hour") || i(s, n, "minute") || i(s, t, "second") || s + " ms" : function(e) { + return e >= r ? Math.round(e / r) + "d" : e >= a ? Math.round(e / a) + "h" : e >= n ? Math.round(e / n) + "m" : e >= t ? Math.round(e / t) + "s" : e + "ms" + }(e); + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(e)) + } +}, 5535: e => { + "use strict"; + var t = Object.getOwnPropertySymbols, + n = Object.prototype.hasOwnProperty, + a = Object.prototype.propertyIsEnumerable; + + function r(e) { + if (null == e) throw new TypeError("Object.assign cannot be called with null or undefined"); + return Object(e) + } + e.exports = function() { + try { + if (!Object.assign) return !1; + var e = new String("abc"); + if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) return !1; + for (var t = {}, n = 0; n < 10; n++) t["_" + String.fromCharCode(n)] = n; + if ("0123456789" !== Object.getOwnPropertyNames(t).map((function(e) { + return t[e] + })).join("")) return !1; + var a = {}; + return "abcdefghijklmnopqrst".split("").forEach((function(e) { + a[e] = e + })), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, a)).join("") + } catch (e) { + return !1 } - var M = a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; - M.hasOwnProperty("ReactCurrentDispatcher") || (M.ReactCurrentDispatcher = { - current: null - }), M.hasOwnProperty("ReactCurrentBatchConfig") || (M.ReactCurrentBatchConfig = { - suspense: null - }); - var I = /^(.*)[\\\/]/, - N = "function" == typeof Symbol && Symbol.for, - z = N ? Symbol.for("react.element") : 60103, - R = N ? Symbol.for("react.portal") : 60106, - L = N ? Symbol.for("react.fragment") : 60107, - F = N ? Symbol.for("react.strict_mode") : 60108, - q = N ? Symbol.for("react.profiler") : 60114, - B = N ? Symbol.for("react.provider") : 60109, - U = N ? Symbol.for("react.context") : 60110, - H = N ? Symbol.for("react.concurrent_mode") : 60111, - V = N ? Symbol.for("react.forward_ref") : 60112, - W = N ? Symbol.for("react.suspense") : 60113, - Y = N ? Symbol.for("react.suspense_list") : 60120, - G = N ? Symbol.for("react.memo") : 60115, - K = N ? Symbol.for("react.lazy") : 60116; - N && Symbol.for("react.fundamental"), N && Symbol.for("react.responder"), N && Symbol.for("react.scope"); - var $ = "function" == typeof Symbol && Symbol.iterator; - - function J(e) { - return null === e || "object" != typeof e ? null : "function" == typeof(e = $ && e[$] || e["@@iterator"]) ? e : null - } - - function Z(e) { - if (null == e) return null; - if ("function" == typeof e) return e.displayName || e.name || null; - if ("string" == typeof e) return e; - switch (e) { - case L: - return "Fragment"; - case R: - return "Portal"; - case q: - return "Profiler"; - case F: - return "StrictMode"; - case W: - return "Suspense"; - case Y: - return "SuspenseList" - } - if ("object" == typeof e) switch (e.$$typeof) { - case U: - return "Context.Consumer"; - case B: - return "Context.Provider"; - case V: - var t = e.render; - return t = t.displayName || t.name || "", e.displayName || ("" !== t ? "ForwardRef(" + t + ")" : "ForwardRef"); - case G: - return Z(e.type); - case K: - if (e = 1 === e._status ? e._result : null) return Z(e) + }() ? Object.assign : function(e, i) { + for (var o, s, l = r(e), c = 1; c < arguments.length; c++) { + for (var u in o = Object(arguments[c])) n.call(o, u) && (l[u] = o[u]); + if (t) { + s = t(o); + for (var d = 0; d < s.length; d++) a.call(o, s[d]) && (l[s[d]] = o[s[d]]) } - return null } + return l + } +}, 554: e => { + var t, n, a = e.exports = {}; - function Q(e) { - var t = ""; - do { - e: switch (e.tag) { - case 3: - case 4: - case 6: - case 7: - case 10: - case 9: - var n = ""; - break e; - default: - var a = e._debugOwner, - r = e._debugSource, - i = Z(e.type); - n = null, a && (n = Z(a.type)), a = i, i = "", r ? i = " (at " + r.fileName.replace(I, "") + ":" + r.lineNumber + ")" : n && (i = " (created by " + n + ")"), n = "\n in " + (a || "Unknown") + i - } - t += n, - e = e.return - } while (e); - return t - } - var X = !("undefined" == typeof window || void 0 === window.document || void 0 === window.document.createElement), - ee = null, - te = null, - ne = null; + function r() { + throw new Error("setTimeout has not been defined") + } + + function i() { + throw new Error("clearTimeout has not been defined") + } - function ae(e) { - if (e = S(e)) { - if ("function" != typeof ee) throw Error(o(280)); - var t = w(e.stateNode); - ee(e.stateNode, e.type, t) + function o(e) { + if (t === setTimeout) return setTimeout(e, 0); + if ((t === r || !t) && setTimeout) return t = setTimeout, setTimeout(e, 0); + try { + return t(e, 0) + } catch (n) { + try { + return t.call(null, e, 0) + } catch (n) { + return t.call(this, e, 0) } } - - function re(e) { - te ? ne ? ne.push(e) : ne = [e] : te = e + }! function() { + try { + t = "function" == typeof setTimeout ? setTimeout : r + } catch (e) { + t = r } - - function ie() { - if (te) { - var e = te, - t = ne; - if (ne = te = null, ae(e), t) - for (e = 0; e < t.length; e++) ae(t[e]) - } + try { + n = "function" == typeof clearTimeout ? clearTimeout : i + } catch (e) { + n = i } + }(); + var s, l = [], + c = !1, + u = -1; - function oe(e, t) { - return e(t) - } + function d() { + c && s && (c = !1, s.length ? l = s.concat(l) : u = -1, l.length && p()) + } - function se(e, t, n, a) { - return e(t, n, a) + function p() { + if (!c) { + var e = o(d); + c = !0; + for (var t = l.length; t;) { + for (s = l, l = []; ++u < t;) s && s[u].run(); + u = -1, t = l.length + } + s = null, c = !1, + function(e) { + if (n === clearTimeout) return clearTimeout(e); + if ((n === i || !n) && clearTimeout) return n = clearTimeout, clearTimeout(e); + try { + n(e) + } catch (t) { + try { + return n.call(null, e) + } catch (t) { + return n.call(this, e) + } + } + }(e) } + } - function le() {} - var ce = oe, - ue = !1, - de = !1; + function h(e, t) { + this.fun = e, this.array = t + } - function pe() { - null === te && null === ne || (le(), ie()) - } - new Map; - var he = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, - me = Object.prototype.hasOwnProperty, - fe = {}, - ge = {}; - - function be(e, t, n, a, r, i) { - this.acceptsBooleans = 2 === t || 3 === t || 4 === t, this.attributeName = a, this.attributeNamespace = r, this.mustUseProperty = n, this.propertyName = e, this.type = t, this.sanitizeURL = i - } - var ye = {}; - "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e) { - ye[e] = new be(e, 0, !1, e, null, !1) - })), [ - ["acceptCharset", "accept-charset"], - ["className", "class"], - ["htmlFor", "for"], - ["httpEquiv", "http-equiv"] - ].forEach((function(e) { - var t = e[0]; - ye[t] = new be(t, 1, !1, e[1], null, !1) - })), ["contentEditable", "draggable", "spellCheck", "value"].forEach((function(e) { - ye[e] = new be(e, 2, !1, e.toLowerCase(), null, !1) - })), ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach((function(e) { - ye[e] = new be(e, 2, !1, e, null, !1) - })), "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e) { - ye[e] = new be(e, 3, !1, e.toLowerCase(), null, !1) - })), ["checked", "multiple", "muted", "selected"].forEach((function(e) { - ye[e] = new be(e, 3, !0, e, null, !1) - })), ["capture", "download"].forEach((function(e) { - ye[e] = new be(e, 4, !1, e, null, !1) - })), ["cols", "rows", "size", "span"].forEach((function(e) { - ye[e] = new be(e, 6, !1, e, null, !1) - })), ["rowSpan", "start"].forEach((function(e) { - ye[e] = new be(e, 5, !1, e.toLowerCase(), null, !1) - })); - var ve = /[\-:]([a-z])/g; + function m() {} + a.nextTick = function(e) { + var t = new Array(arguments.length - 1); + if (arguments.length > 1) + for (var n = 1; n < arguments.length; n++) t[n - 1] = arguments[n]; + l.push(new h(e, t)), 1 !== l.length || c || o(p) + }, h.prototype.run = function() { + this.fun.apply(null, this.array) + }, a.title = "browser", a.browser = !0, a.env = {}, a.argv = [], a.version = "", a.versions = {}, a.on = m, a.addListener = m, a.once = m, a.off = m, a.removeListener = m, a.removeAllListeners = m, a.emit = m, a.prependListener = m, a.prependOnceListener = m, a.listeners = function(e) { + return [] + }, a.binding = function(e) { + throw new Error("process.binding is not supported") + }, a.cwd = function() { + return "/" + }, a.chdir = function(e) { + throw new Error("process.chdir is not supported") + }, a.umask = function() { + return 0 + } +}, 9739: (e, t, n) => { + "use strict"; + var a = n(6669); - function ke(e) { - return e[1].toUpperCase() - } + function r() {} - function _e(e) { - switch (typeof e) { - case "boolean": - case "number": - case "object": - case "string": - case "undefined": - return e; - default: - return "" + function i() {} + i.resetWarningCache = r, e.exports = function() { + function e(e, t, n, r, i, o) { + if (o !== a) { + var s = new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types"); + throw s.name = "Invariant Violation", s } } - function we(e, t, n, a) { - var r = ye.hasOwnProperty(t) ? ye[t] : null; - (null !== r ? 0 === r.type : !a && 2 < t.length && ("o" === t[0] || "O" === t[0]) && ("n" === t[1] || "N" === t[1])) || (function(e, t, n, a) { - if (null == t || function(e, t, n, a) { - if (null !== n && 0 === n.type) return !1; - switch (typeof t) { - case "function": - case "symbol": - return !0; - case "boolean": - return !a && (null !== n ? !n.acceptsBooleans : "data-" !== (e = e.toLowerCase().slice(0, 5)) && "aria-" !== e); - default: - return !1 - } - }(e, t, n, a)) return !0; - if (a) return !1; - if (null !== n) switch (n.type) { - case 3: - return !t; - case 4: - return !1 === t; - case 5: - return isNaN(t); - case 6: - return isNaN(t) || 1 > t + function t() { + return e + } + e.isRequired = e; + var n = { + array: e, + bool: e, + func: e, + number: e, + object: e, + string: e, + symbol: e, + any: e, + arrayOf: t, + element: e, + elementType: e, + instanceOf: t, + node: e, + objectOf: t, + oneOf: t, + oneOfType: t, + shape: t, + exact: t, + checkPropTypes: i, + resetWarningCache: r + }; + return n.PropTypes = n, n + } +}, 7329: (e, t, n) => { + e.exports = n(9739)() +}, 6669: e => { + "use strict"; + e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED" +}, 2494: e => { + "use strict"; + e.exports = function(e) { + var t = ""; + return function e(n) { + if ("string" == typeof n || "number" == typeof n) t += n; + else if (Array.isArray(n)) n.forEach((function(t) { + return e(t) + })); + else if (n && n.props) { + var a = n.props.children; + Array.isArray(a) ? a.forEach((function(t) { + return e(t) + })) : e(a) + } + }(e), t + } +}, 4534: (e, t, n) => { + "use strict"; + var a = n(2684), + r = n(5535), + i = n(7525); + + function o(e) { + for (var t = "https://reactjs.org/docs/error-decoder.html?invariant=" + e, n = 1; n < arguments.length; n++) t += "&args[]=" + encodeURIComponent(arguments[n]); + return "Minified React error #" + e + "; visit " + t + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings." + } + if (!a) throw Error(o(227)); + var s = null, + l = {}; + + function c() { + if (s) + for (var e in l) { + var t = l[e], + n = s.indexOf(e); + if (!(-1 < n)) throw Error(o(96, e)); + if (!d[n]) { + if (!t.extractEvents) throw Error(o(97, e)); + for (var a in d[n] = t, n = t.eventTypes) { + var r = void 0, + i = n[a], + c = t, + h = a; + if (p.hasOwnProperty(h)) throw Error(o(99, h)); + p[h] = i; + var m = i.phasedRegistrationNames; + if (m) { + for (r in m) m.hasOwnProperty(r) && u(m[r], c, h); + r = !0 + } else i.registrationName ? (u(i.registrationName, c, h), r = !0) : r = !1; + if (!r) throw Error(o(98, a, e)) + } } - return !1 - }(t, n, r, a) && (n = null), a || null === r ? function(e) { - return !!me.call(ge, e) || !me.call(fe, e) && (he.test(e) ? ge[e] = !0 : (fe[e] = !0, !1)) - }(t) && (null === n ? e.removeAttribute(t) : e.setAttribute(t, "" + n)) : r.mustUseProperty ? e[r.propertyName] = null === n ? 3 !== r.type && "" : n : (t = r.attributeName, a = r.attributeNamespace, null === n ? e.removeAttribute(t) : (n = 3 === (r = r.type) || 4 === r && !0 === n ? "" : "" + n, a ? e.setAttributeNS(a, t, n) : e.setAttribute(t, n)))) + } + } + + function u(e, t, n) { + if (h[e]) throw Error(o(100, e)); + h[e] = t, m[e] = t.eventTypes[n].dependencies + } + var d = [], + p = {}, + h = {}, + m = {}; + + function f(e, t, n, a, r, i, o, s, l) { + var c = Array.prototype.slice.call(arguments, 3); + try { + t.apply(n, c) + } catch (e) { + this.onError(e) } + } + var g = !1, + b = null, + y = !1, + v = null, + k = { + onError: function(e) { + g = !0, b = e + } + }; - function Se(e) { - var t = e.type; - return (e = e.nodeName) && "input" === e.toLowerCase() && ("checkbox" === t || "radio" === t) + function _(e, t, n, a, r, i, o, s, l) { + g = !1, b = null, f.apply(k, arguments) + } + var w = null, + S = null, + E = null; + + function x(e, t, n) { + var a = e.type || "unknown-event"; + e.currentTarget = E(n), + function(e, t, n, a, r, i, s, l, c) { + if (_.apply(this, arguments), g) { + if (!g) throw Error(o(198)); + var u = b; + g = !1, b = null, y || (y = !0, v = u) + } + }(a, t, void 0, e), e.currentTarget = null + } + + function C(e, t) { + if (null == t) throw Error(o(30)); + return null == e ? t : Array.isArray(e) ? Array.isArray(t) ? (e.push.apply(e, t), e) : (e.push(t), e) : Array.isArray(t) ? [e].concat(t) : [e, t] + } + + function A(e, t, n) { + Array.isArray(e) ? e.forEach(t, n) : e && t.call(n, e) + } + var T = null; + + function D(e) { + if (e) { + var t = e._dispatchListeners, + n = e._dispatchInstances; + if (Array.isArray(t)) + for (var a = 0; a < t.length && !e.isPropagationStopped(); a++) x(e, t[a], n[a]); + else t && x(e, t, n); + e._dispatchListeners = null, e._dispatchInstances = null, e.isPersistent() || e.constructor.release(e) } + } - function Ee(e) { - e._valueTracker || (e._valueTracker = function(e) { - var t = Se(e) ? "checked" : "value", - n = Object.getOwnPropertyDescriptor(e.constructor.prototype, t), - a = "" + e[t]; - if (!e.hasOwnProperty(t) && void 0 !== n && "function" == typeof n.get && "function" == typeof n.set) { - var r = n.get, - i = n.set; - return Object.defineProperty(e, t, { - configurable: !0, - get: function() { - return r.call(this) - }, - set: function(e) { - a = "" + e, i.call(this, e) - } - }), Object.defineProperty(e, t, { - enumerable: n.enumerable - }), { - getValue: function() { - return a - }, - setValue: function(e) { - a = "" + e - }, - stopTracking: function() { - e._valueTracker = null, delete e[t] - } - } - } - }(e)) + function P(e) { + if (null !== e && (T = C(T, e)), e = T, T = null, e) { + if (A(e, D), T) throw Error(o(95)); + if (y) throw e = v, y = !1, v = null, e + } + } + var j = { + injectEventPluginOrder: function(e) { + if (s) throw Error(o(101)); + s = Array.prototype.slice.call(e), c() + }, + injectEventPluginsByName: function(e) { + var t, n = !1; + for (t in e) + if (e.hasOwnProperty(t)) { + var a = e[t]; + if (!l.hasOwnProperty(t) || l[t] !== a) { + if (l[t]) throw Error(o(102, t)); + l[t] = a, n = !0 + } + } n && c() } + }; + + function M(e, t) { + var n = e.stateNode; + if (!n) return null; + var a = w(n); + if (!a) return null; + n = a[t]; + e: switch (t) { + case "onClick": + case "onClickCapture": + case "onDoubleClick": + case "onDoubleClickCapture": + case "onMouseDown": + case "onMouseDownCapture": + case "onMouseMove": + case "onMouseMoveCapture": + case "onMouseUp": + case "onMouseUpCapture": + (a = !a.disabled) || (a = !("button" === (e = e.type) || "input" === e || "select" === e || "textarea" === e)), e = !a; + break e; + default: + e = !1 + } + if (e) return null; + if (n && "function" != typeof n) throw Error(o(231, t, typeof n)); + return n + } + var I = a.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + I.hasOwnProperty("ReactCurrentDispatcher") || (I.ReactCurrentDispatcher = { + current: null + }), I.hasOwnProperty("ReactCurrentBatchConfig") || (I.ReactCurrentBatchConfig = { + suspense: null + }); + var O = /^(.*)[\\\/]/, + N = "function" == typeof Symbol && Symbol.for, + R = N ? Symbol.for("react.element") : 60103, + z = N ? Symbol.for("react.portal") : 60106, + L = N ? Symbol.for("react.fragment") : 60107, + F = N ? Symbol.for("react.strict_mode") : 60108, + q = N ? Symbol.for("react.profiler") : 60114, + B = N ? Symbol.for("react.provider") : 60109, + U = N ? Symbol.for("react.context") : 60110, + H = N ? Symbol.for("react.concurrent_mode") : 60111, + V = N ? Symbol.for("react.forward_ref") : 60112, + W = N ? Symbol.for("react.suspense") : 60113, + Y = N ? Symbol.for("react.suspense_list") : 60120, + G = N ? Symbol.for("react.memo") : 60115, + K = N ? Symbol.for("react.lazy") : 60116; + N && Symbol.for("react.fundamental"), N && Symbol.for("react.responder"), N && Symbol.for("react.scope"); + var $ = "function" == typeof Symbol && Symbol.iterator; + + function J(e) { + return null === e || "object" != typeof e ? null : "function" == typeof(e = $ && e[$] || e["@@iterator"]) ? e : null + } + + function Z(e) { + if (null == e) return null; + if ("function" == typeof e) return e.displayName || e.name || null; + if ("string" == typeof e) return e; + switch (e) { + case L: + return "Fragment"; + case z: + return "Portal"; + case q: + return "Profiler"; + case F: + return "StrictMode"; + case W: + return "Suspense"; + case Y: + return "SuspenseList" + } + if ("object" == typeof e) switch (e.$$typeof) { + case U: + return "Context.Consumer"; + case B: + return "Context.Provider"; + case V: + var t = e.render; + return t = t.displayName || t.name || "", e.displayName || ("" !== t ? "ForwardRef(" + t + ")" : "ForwardRef"); + case G: + return Z(e.type); + case K: + if (e = 1 === e._status ? e._result : null) return Z(e) + } + return null + } + + function Q(e) { + var t = ""; + do { + e: switch (e.tag) { + case 3: + case 4: + case 6: + case 7: + case 10: + case 9: + var n = ""; + break e; + default: + var a = e._debugOwner, + r = e._debugSource, + i = Z(e.type); + n = null, a && (n = Z(a.type)), a = i, i = "", r ? i = " (at " + r.fileName.replace(O, "") + ":" + r.lineNumber + ")" : n && (i = " (created by " + n + ")"), n = "\n in " + (a || "Unknown") + i + } + t += n, + e = e.return + } while (e); + return t + } + var X = !("undefined" == typeof window || void 0 === window.document || void 0 === window.document.createElement), + ee = null, + te = null, + ne = null; - function xe(e) { - if (!e) return !1; - var t = e._valueTracker; - if (!t) return !0; - var n = t.getValue(), - a = ""; - return e && (a = Se(e) ? e.checked ? "true" : "false" : e.value), (e = a) !== n && (t.setValue(e), !0) - } - - function Ce(e, t) { - var n = t.checked; - return r({}, t, { - defaultChecked: void 0, - defaultValue: void 0, - value: void 0, - checked: null != n ? n : e._wrapperState.initialChecked - }) + function ae(e) { + if (e = S(e)) { + if ("function" != typeof ee) throw Error(o(280)); + var t = w(e.stateNode); + ee(e.stateNode, e.type, t) } + } - function Ae(e, t) { - var n = null == t.defaultValue ? "" : t.defaultValue, - a = null != t.checked ? t.checked : t.defaultChecked; - n = _e(null != t.value ? t.value : n), e._wrapperState = { - initialChecked: a, - initialValue: n, - controlled: "checkbox" === t.type || "radio" === t.type ? null != t.checked : null != t.value - } - } + function re(e) { + te ? ne ? ne.push(e) : ne = [e] : te = e + } - function je(e, t) { - null != (t = t.checked) && we(e, "checked", t, !1) + function ie() { + if (te) { + var e = te, + t = ne; + if (ne = te = null, ae(e), t) + for (e = 0; e < t.length; e++) ae(t[e]) } + } - function Pe(e, t) { - je(e, t); - var n = _e(t.value), - a = t.type; - if (null != n) "number" === a ? (0 === n && "" === e.value || e.value != n) && (e.value = "" + n) : e.value !== "" + n && (e.value = "" + n); - else if ("submit" === a || "reset" === a) return void e.removeAttribute("value"); - t.hasOwnProperty("value") ? Te(e, t.type, n) : t.hasOwnProperty("defaultValue") && Te(e, t.type, _e(t.defaultValue)), null == t.checked && null != t.defaultChecked && (e.defaultChecked = !!t.defaultChecked) - } + function oe(e, t) { + return e(t) + } - function De(e, t, n) { - if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) { - var a = t.type; - if (!("submit" !== a && "reset" !== a || void 0 !== t.value && null !== t.value)) return; - t = "" + e._wrapperState.initialValue, n || t === e.value || (e.value = t), e.defaultValue = t - } - "" !== (n = e.name) && (e.name = ""), e.defaultChecked = !e.defaultChecked, e.defaultChecked = !!e._wrapperState.initialChecked, "" !== n && (e.name = n) - } + function se(e, t, n, a) { + return e(t, n, a) + } - function Te(e, t, n) { - "number" === t && e.ownerDocument.activeElement === e || (null == n ? e.defaultValue = "" + e._wrapperState.initialValue : e.defaultValue !== "" + n && (e.defaultValue = "" + n)) - } + function le() {} + var ce = oe, + ue = !1, + de = !1; - function Oe(e, t) { - return e = r({ - children: void 0 - }, t), (t = function(e) { - var t = ""; - return a.Children.forEach(e, (function(e) { - null != e && (t += e) - })), t - }(t.children)) && (e.children = t), e + function pe() { + null === te && null === ne || (le(), ie()) + } + new Map; + var he = /^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/, + me = Object.prototype.hasOwnProperty, + fe = {}, + ge = {}; + + function be(e, t, n, a, r, i) { + this.acceptsBooleans = 2 === t || 3 === t || 4 === t, this.attributeName = a, this.attributeNamespace = r, this.mustUseProperty = n, this.propertyName = e, this.type = t, this.sanitizeURL = i + } + var ye = {}; + "children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e) { + ye[e] = new be(e, 0, !1, e, null, !1) + })), [ + ["acceptCharset", "accept-charset"], + ["className", "class"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"] + ].forEach((function(e) { + var t = e[0]; + ye[t] = new be(t, 1, !1, e[1], null, !1) + })), ["contentEditable", "draggable", "spellCheck", "value"].forEach((function(e) { + ye[e] = new be(e, 2, !1, e.toLowerCase(), null, !1) + })), ["autoReverse", "externalResourcesRequired", "focusable", "preserveAlpha"].forEach((function(e) { + ye[e] = new be(e, 2, !1, e, null, !1) + })), "allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e) { + ye[e] = new be(e, 3, !1, e.toLowerCase(), null, !1) + })), ["checked", "multiple", "muted", "selected"].forEach((function(e) { + ye[e] = new be(e, 3, !0, e, null, !1) + })), ["capture", "download"].forEach((function(e) { + ye[e] = new be(e, 4, !1, e, null, !1) + })), ["cols", "rows", "size", "span"].forEach((function(e) { + ye[e] = new be(e, 6, !1, e, null, !1) + })), ["rowSpan", "start"].forEach((function(e) { + ye[e] = new be(e, 5, !1, e.toLowerCase(), null, !1) + })); + var ve = /[\-:]([a-z])/g; + + function ke(e) { + return e[1].toUpperCase() + } + + function _e(e) { + switch (typeof e) { + case "boolean": + case "number": + case "object": + case "string": + case "undefined": + return e; + default: + return "" } + } - function Me(e, t, n, a) { - if (e = e.options, t) { - t = {}; - for (var r = 0; r < n.length; r++) t["$" + n[r]] = !0; - for (n = 0; n < e.length; n++) r = t.hasOwnProperty("$" + e[n].value), e[n].selected !== r && (e[n].selected = r), r && a && (e[n].defaultSelected = !0) - } else { - for (n = "" + _e(n), t = null, r = 0; r < e.length; r++) { - if (e[r].value === n) return e[r].selected = !0, void(a && (e[r].defaultSelected = !0)); - null !== t || e[r].disabled || (t = e[r]) - } - null !== t && (t.selected = !0) + function we(e, t, n, a) { + var r = ye.hasOwnProperty(t) ? ye[t] : null; + (null !== r ? 0 === r.type : !a && 2 < t.length && ("o" === t[0] || "O" === t[0]) && ("n" === t[1] || "N" === t[1])) || (function(e, t, n, a) { + if (null == t || function(e, t, n, a) { + if (null !== n && 0 === n.type) return !1; + switch (typeof t) { + case "function": + case "symbol": + return !0; + case "boolean": + return !a && (null !== n ? !n.acceptsBooleans : "data-" !== (e = e.toLowerCase().slice(0, 5)) && "aria-" !== e); + default: + return !1 + } + }(e, t, n, a)) return !0; + if (a) return !1; + if (null !== n) switch (n.type) { + case 3: + return !t; + case 4: + return !1 === t; + case 5: + return isNaN(t); + case 6: + return isNaN(t) || 1 > t } - } + return !1 + }(t, n, r, a) && (n = null), a || null === r ? function(e) { + return !!me.call(ge, e) || !me.call(fe, e) && (he.test(e) ? ge[e] = !0 : (fe[e] = !0, !1)) + }(t) && (null === n ? e.removeAttribute(t) : e.setAttribute(t, "" + n)) : r.mustUseProperty ? e[r.propertyName] = null === n ? 3 !== r.type && "" : n : (t = r.attributeName, a = r.attributeNamespace, null === n ? e.removeAttribute(t) : (n = 3 === (r = r.type) || 4 === r && !0 === n ? "" : "" + n, a ? e.setAttributeNS(a, t, n) : e.setAttribute(t, n)))) + } - function Ie(e, t) { - if (null != t.dangerouslySetInnerHTML) throw Error(o(91)); - return r({}, t, { - value: void 0, - defaultValue: void 0, - children: "" + e._wrapperState.initialValue - }) - } + function Se(e) { + var t = e.type; + return (e = e.nodeName) && "input" === e.toLowerCase() && ("checkbox" === t || "radio" === t) + } - function Ne(e, t) { - var n = t.value; - if (null == n) { - if (n = t.defaultValue, null != (t = t.children)) { - if (null != n) throw Error(o(92)); - if (Array.isArray(t)) { - if (!(1 >= t.length)) throw Error(o(93)); - t = t[0] + function Ee(e) { + e._valueTracker || (e._valueTracker = function(e) { + var t = Se(e) ? "checked" : "value", + n = Object.getOwnPropertyDescriptor(e.constructor.prototype, t), + a = "" + e[t]; + if (!e.hasOwnProperty(t) && void 0 !== n && "function" == typeof n.get && "function" == typeof n.set) { + var r = n.get, + i = n.set; + return Object.defineProperty(e, t, { + configurable: !0, + get: function() { + return r.call(this) + }, + set: function(e) { + a = "" + e, i.call(this, e) + } + }), Object.defineProperty(e, t, { + enumerable: n.enumerable + }), { + getValue: function() { + return a + }, + setValue: function(e) { + a = "" + e + }, + stopTracking: function() { + e._valueTracker = null, delete e[t] } - n = t } - null == n && (n = "") - } - e._wrapperState = { - initialValue: _e(n) } + }(e)) + } + + function xe(e) { + if (!e) return !1; + var t = e._valueTracker; + if (!t) return !0; + var n = t.getValue(), + a = ""; + return e && (a = Se(e) ? e.checked ? "true" : "false" : e.value), (e = a) !== n && (t.setValue(e), !0) + } + + function Ce(e, t) { + var n = t.checked; + return r({}, t, { + defaultChecked: void 0, + defaultValue: void 0, + value: void 0, + checked: null != n ? n : e._wrapperState.initialChecked + }) + } + + function Ae(e, t) { + var n = null == t.defaultValue ? "" : t.defaultValue, + a = null != t.checked ? t.checked : t.defaultChecked; + n = _e(null != t.value ? t.value : n), e._wrapperState = { + initialChecked: a, + initialValue: n, + controlled: "checkbox" === t.type || "radio" === t.type ? null != t.checked : null != t.value } + } + + function Te(e, t) { + null != (t = t.checked) && we(e, "checked", t, !1) + } + + function De(e, t) { + Te(e, t); + var n = _e(t.value), + a = t.type; + if (null != n) "number" === a ? (0 === n && "" === e.value || e.value != n) && (e.value = "" + n) : e.value !== "" + n && (e.value = "" + n); + else if ("submit" === a || "reset" === a) return void e.removeAttribute("value"); + t.hasOwnProperty("value") ? je(e, t.type, n) : t.hasOwnProperty("defaultValue") && je(e, t.type, _e(t.defaultValue)), null == t.checked && null != t.defaultChecked && (e.defaultChecked = !!t.defaultChecked) + } - function ze(e, t) { - var n = _e(t.value), - a = _e(t.defaultValue); - null != n && ((n = "" + n) !== e.value && (e.value = n), null == t.defaultValue && e.defaultValue !== n && (e.defaultValue = n)), null != a && (e.defaultValue = "" + a) + function Pe(e, t, n) { + if (t.hasOwnProperty("value") || t.hasOwnProperty("defaultValue")) { + var a = t.type; + if (!("submit" !== a && "reset" !== a || void 0 !== t.value && null !== t.value)) return; + t = "" + e._wrapperState.initialValue, n || t === e.value || (e.value = t), e.defaultValue = t } + "" !== (n = e.name) && (e.name = ""), e.defaultChecked = !e.defaultChecked, e.defaultChecked = !!e._wrapperState.initialChecked, "" !== n && (e.name = n) + } - function Re(e) { - var t = e.textContent; - t === e._wrapperState.initialValue && "" !== t && null !== t && (e.value = t) - } - "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e) { - var t = e.replace(ve, ke); - ye[t] = new be(t, 1, !1, e, null, !1) - })), "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e) { - var t = e.replace(ve, ke); - ye[t] = new be(t, 1, !1, e, "http://www.w3.org/1999/xlink", !1) - })), ["xml:base", "xml:lang", "xml:space"].forEach((function(e) { - var t = e.replace(ve, ke); - ye[t] = new be(t, 1, !1, e, "http://www.w3.org/XML/1998/namespace", !1) - })), ["tabIndex", "crossOrigin"].forEach((function(e) { - ye[e] = new be(e, 1, !1, e.toLowerCase(), null, !1) - })), ye.xlinkHref = new be("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0), ["src", "href", "action", "formAction"].forEach((function(e) { - ye[e] = new be(e, 1, !1, e.toLowerCase(), null, !0) - })); - var Le = "http://www.w3.org/1999/xhtml"; + function je(e, t, n) { + "number" === t && e.ownerDocument.activeElement === e || (null == n ? e.defaultValue = "" + e._wrapperState.initialValue : e.defaultValue !== "" + n && (e.defaultValue = "" + n)) + } - function Fe(e) { - switch (e) { - case "svg": - return "http://www.w3.org/2000/svg"; - case "math": - return "http://www.w3.org/1998/Math/MathML"; - default: - return "http://www.w3.org/1999/xhtml" + function Me(e, t) { + return e = r({ + children: void 0 + }, t), (t = function(e) { + var t = ""; + return a.Children.forEach(e, (function(e) { + null != e && (t += e) + })), t + }(t.children)) && (e.children = t), e + } + + function Ie(e, t, n, a) { + if (e = e.options, t) { + t = {}; + for (var r = 0; r < n.length; r++) t["$" + n[r]] = !0; + for (n = 0; n < e.length; n++) r = t.hasOwnProperty("$" + e[n].value), e[n].selected !== r && (e[n].selected = r), r && a && (e[n].defaultSelected = !0) + } else { + for (n = "" + _e(n), t = null, r = 0; r < e.length; r++) { + if (e[r].value === n) return e[r].selected = !0, void(a && (e[r].defaultSelected = !0)); + null !== t || e[r].disabled || (t = e[r]) } + null !== t && (t.selected = !0) } + } - function qe(e, t) { - return null == e || "http://www.w3.org/1999/xhtml" === e ? Fe(t) : "http://www.w3.org/2000/svg" === e && "foreignObject" === t ? "http://www.w3.org/1999/xhtml" : e - } - var Be, Ue, He = (Ue = function(e, t) { - if ("http://www.w3.org/2000/svg" !== e.namespaceURI || "innerHTML" in e) e.innerHTML = t; - else { - for ((Be = Be || document.createElement("div")).innerHTML = "" + t.valueOf().toString() + "", t = Be.firstChild; e.firstChild;) e.removeChild(e.firstChild); - for (; t.firstChild;) e.appendChild(t.firstChild) - } - }, "undefined" != typeof MSApp && MSApp.execUnsafeLocalFunction ? function(e, t, n, a) { - MSApp.execUnsafeLocalFunction((function() { - return Ue(e, t) - })) - } : Ue); + function Oe(e, t) { + if (null != t.dangerouslySetInnerHTML) throw Error(o(91)); + return r({}, t, { + value: void 0, + defaultValue: void 0, + children: "" + e._wrapperState.initialValue + }) + } - function Ve(e, t) { - if (t) { - var n = e.firstChild; - if (n && n === e.lastChild && 3 === n.nodeType) return void(n.nodeValue = t) + function Ne(e, t) { + var n = t.value; + if (null == n) { + if (n = t.defaultValue, null != (t = t.children)) { + if (null != n) throw Error(o(92)); + if (Array.isArray(t)) { + if (!(1 >= t.length)) throw Error(o(93)); + t = t[0] + } + n = t } - e.textContent = t + null == n && (n = "") + } + e._wrapperState = { + initialValue: _e(n) } + } - function We(e, t) { - var n = {}; - return n[e.toLowerCase()] = t.toLowerCase(), n["Webkit" + e] = "webkit" + t, n["Moz" + e] = "moz" + t, n - } - var Ye = { - animationend: We("Animation", "AnimationEnd"), - animationiteration: We("Animation", "AnimationIteration"), - animationstart: We("Animation", "AnimationStart"), - transitionend: We("Transition", "TransitionEnd") - }, - Ge = {}, - Ke = {}; - - function $e(e) { - if (Ge[e]) return Ge[e]; - if (!Ye[e]) return e; - var t, n = Ye[e]; - for (t in n) - if (n.hasOwnProperty(t) && t in Ke) return Ge[e] = n[t]; - return e + function Re(e, t) { + var n = _e(t.value), + a = _e(t.defaultValue); + null != n && ((n = "" + n) !== e.value && (e.value = n), null == t.defaultValue && e.defaultValue !== n && (e.defaultValue = n)), null != a && (e.defaultValue = "" + a) + } + + function ze(e) { + var t = e.textContent; + t === e._wrapperState.initialValue && "" !== t && null !== t && (e.value = t) + } + "accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e) { + var t = e.replace(ve, ke); + ye[t] = new be(t, 1, !1, e, null, !1) + })), "xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e) { + var t = e.replace(ve, ke); + ye[t] = new be(t, 1, !1, e, "http://www.w3.org/1999/xlink", !1) + })), ["xml:base", "xml:lang", "xml:space"].forEach((function(e) { + var t = e.replace(ve, ke); + ye[t] = new be(t, 1, !1, e, "http://www.w3.org/XML/1998/namespace", !1) + })), ["tabIndex", "crossOrigin"].forEach((function(e) { + ye[e] = new be(e, 1, !1, e.toLowerCase(), null, !1) + })), ye.xlinkHref = new be("xlinkHref", 1, !1, "xlink:href", "http://www.w3.org/1999/xlink", !0), ["src", "href", "action", "formAction"].forEach((function(e) { + ye[e] = new be(e, 1, !1, e.toLowerCase(), null, !0) + })); + var Le = "http://www.w3.org/1999/xhtml"; + + function Fe(e) { + switch (e) { + case "svg": + return "http://www.w3.org/2000/svg"; + case "math": + return "http://www.w3.org/1998/Math/MathML"; + default: + return "http://www.w3.org/1999/xhtml" } - X && (Ke = document.createElement("div").style, "AnimationEvent" in window || (delete Ye.animationend.animation, delete Ye.animationiteration.animation, delete Ye.animationstart.animation), "TransitionEvent" in window || delete Ye.transitionend.transition); - var Je = $e("animationend"), - Ze = $e("animationiteration"), - Qe = $e("animationstart"), - Xe = $e("transitionend"), - et = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "); - - function tt(e) { - var t = e, - n = e; - if (e.alternate) - for (; t.return;) t = t.return; - else { - e = t; - do { - 0 != (1026 & (t = e).effectTag) && (n = t.return), e = t.return - } while (e) - } - return 3 === t.tag ? n : null + } + + function qe(e, t) { + return null == e || "http://www.w3.org/1999/xhtml" === e ? Fe(t) : "http://www.w3.org/2000/svg" === e && "foreignObject" === t ? "http://www.w3.org/1999/xhtml" : e + } + var Be, Ue, He = (Ue = function(e, t) { + if ("http://www.w3.org/2000/svg" !== e.namespaceURI || "innerHTML" in e) e.innerHTML = t; + else { + for ((Be = Be || document.createElement("div")).innerHTML = "" + t.valueOf().toString() + "", t = Be.firstChild; e.firstChild;) e.removeChild(e.firstChild); + for (; t.firstChild;) e.appendChild(t.firstChild) + } + }, "undefined" != typeof MSApp && MSApp.execUnsafeLocalFunction ? function(e, t, n, a) { + MSApp.execUnsafeLocalFunction((function() { + return Ue(e, t) + })) + } : Ue); + + function Ve(e, t) { + if (t) { + var n = e.firstChild; + if (n && n === e.lastChild && 3 === n.nodeType) return void(n.nodeValue = t) } + e.textContent = t + } - function nt(e) { - if (13 === e.tag) { - var t = e.memoizedState; - if (null === t && null !== (e = e.alternate) && (t = e.memoizedState), null !== t) return t.dehydrated - } - return null + function We(e, t) { + var n = {}; + return n[e.toLowerCase()] = t.toLowerCase(), n["Webkit" + e] = "webkit" + t, n["Moz" + e] = "moz" + t, n + } + var Ye = { + animationend: We("Animation", "AnimationEnd"), + animationiteration: We("Animation", "AnimationIteration"), + animationstart: We("Animation", "AnimationStart"), + transitionend: We("Transition", "TransitionEnd") + }, + Ge = {}, + Ke = {}; + + function $e(e) { + if (Ge[e]) return Ge[e]; + if (!Ye[e]) return e; + var t, n = Ye[e]; + for (t in n) + if (n.hasOwnProperty(t) && t in Ke) return Ge[e] = n[t]; + return e + } + X && (Ke = document.createElement("div").style, "AnimationEvent" in window || (delete Ye.animationend.animation, delete Ye.animationiteration.animation, delete Ye.animationstart.animation), "TransitionEvent" in window || delete Ye.transitionend.transition); + var Je = $e("animationend"), + Ze = $e("animationiteration"), + Qe = $e("animationstart"), + Xe = $e("transitionend"), + et = "abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting".split(" "); + + function tt(e) { + var t = e, + n = e; + if (e.alternate) + for (; t.return;) t = t.return; + else { + e = t; + do { + 0 != (1026 & (t = e).effectTag) && (n = t.return), e = t.return + } while (e) } + return 3 === t.tag ? n : null + } - function at(e) { - if (tt(e) !== e) throw Error(o(188)) - } - - function rt(e) { - if (e = function(e) { - var t = e.alternate; - if (!t) { - if (null === (t = tt(e))) throw Error(o(188)); - return t !== e ? null : e - } - for (var n = e, a = t;;) { - var r = n.return; - if (null === r) break; - var i = r.alternate; - if (null === i) { - if (null !== (a = r.return)) { - n = a; - continue - } - break + function nt(e) { + if (13 === e.tag) { + var t = e.memoizedState; + if (null === t && null !== (e = e.alternate) && (t = e.memoizedState), null !== t) return t.dehydrated + } + return null + } + + function at(e) { + if (tt(e) !== e) throw Error(o(188)) + } + + function rt(e) { + if (e = function(e) { + var t = e.alternate; + if (!t) { + if (null === (t = tt(e))) throw Error(o(188)); + return t !== e ? null : e + } + for (var n = e, a = t;;) { + var r = n.return; + if (null === r) break; + var i = r.alternate; + if (null === i) { + if (null !== (a = r.return)) { + n = a; + continue } - if (r.child === i.child) { - for (i = r.child; i;) { - if (i === n) return at(r), e; - if (i === a) return at(r), t; - i = i.sibling + break + } + if (r.child === i.child) { + for (i = r.child; i;) { + if (i === n) return at(r), e; + if (i === a) return at(r), t; + i = i.sibling + } + throw Error(o(188)) + } + if (n.return !== a.return) n = r, a = i; + else { + for (var s = !1, l = r.child; l;) { + if (l === n) { + s = !0, n = r, a = i; + break + } + if (l === a) { + s = !0, a = r, n = i; + break } - throw Error(o(188)) + l = l.sibling } - if (n.return !== a.return) n = r, a = i; - else { - for (var s = !1, l = r.child; l;) { + if (!s) { + for (l = i.child; l;) { if (l === n) { - s = !0, n = r, a = i; + s = !0, n = i, a = r; break } if (l === a) { - s = !0, a = r, n = i; + s = !0, a = i, n = r; break } l = l.sibling } - if (!s) { - for (l = i.child; l;) { - if (l === n) { - s = !0, n = i, a = r; - break - } - if (l === a) { - s = !0, a = i, n = r; - break - } - l = l.sibling - } - if (!s) throw Error(o(189)) - } + if (!s) throw Error(o(189)) } - if (n.alternate !== a) throw Error(o(190)) - } - if (3 !== n.tag) throw Error(o(188)); - return n.stateNode.current === n ? e : t - }(e), !e) return null; - for (var t = e;;) { - if (5 === t.tag || 6 === t.tag) return t; - if (t.child) t.child.return = t, t = t.child; - else { - if (t === e) break; - for (; !t.sibling;) { - if (!t.return || t.return === e) return null; - t = t.return } - t.sibling.return = t.return, t = t.sibling + if (n.alternate !== a) throw Error(o(190)) + } + if (3 !== n.tag) throw Error(o(188)); + return n.stateNode.current === n ? e : t + }(e), !e) return null; + for (var t = e;;) { + if (5 === t.tag || 6 === t.tag) return t; + if (t.child) t.child.return = t, t = t.child; + else { + if (t === e) break; + for (; !t.sibling;) { + if (!t.return || t.return === e) return null; + t = t.return } + t.sibling.return = t.return, t = t.sibling } - return null } - var it, ot, st, lt = !1, - ct = [], - ut = null, - dt = null, - pt = null, - ht = new Map, - mt = new Map, - ft = [], - gt = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "), - bt = "focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" "); - - function yt(e, t, n, a) { - return { - blockedOn: e, - topLevelType: t, - eventSystemFlags: 32 | n, - nativeEvent: a - } + return null + } + var it, ot, st, lt = !1, + ct = [], + ut = null, + dt = null, + pt = null, + ht = new Map, + mt = new Map, + ft = [], + gt = "mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit".split(" "), + bt = "focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture".split(" "); + + function yt(e, t, n, a) { + return { + blockedOn: e, + topLevelType: t, + eventSystemFlags: 32 | n, + nativeEvent: a } + } - function vt(e, t) { - switch (e) { - case "focus": - case "blur": - ut = null; - break; - case "dragenter": - case "dragleave": - dt = null; - break; - case "mouseover": - case "mouseout": - pt = null; - break; - case "pointerover": - case "pointerout": - ht.delete(t.pointerId); - break; - case "gotpointercapture": - case "lostpointercapture": - mt.delete(t.pointerId) - } + function vt(e, t) { + switch (e) { + case "focus": + case "blur": + ut = null; + break; + case "dragenter": + case "dragleave": + dt = null; + break; + case "mouseover": + case "mouseout": + pt = null; + break; + case "pointerover": + case "pointerout": + ht.delete(t.pointerId); + break; + case "gotpointercapture": + case "lostpointercapture": + mt.delete(t.pointerId) } + } - function kt(e, t, n, a, r) { - return null === e || e.nativeEvent !== r ? (e = yt(t, n, a, r), null !== t && null !== (t = pa(t)) && ot(t), e) : (e.eventSystemFlags |= a, e) - } + function kt(e, t, n, a, r) { + return null === e || e.nativeEvent !== r ? (e = yt(t, n, a, r), null !== t && null !== (t = pa(t)) && ot(t), e) : (e.eventSystemFlags |= a, e) + } - function _t(e) { - var t = da(e.target); - if (null !== t) { - var n = tt(t); - if (null !== n) - if (13 === (t = n.tag)) { - if (null !== (t = nt(n))) return e.blockedOn = t, void i.unstable_runWithPriority(e.priority, (function() { - st(n) - })) - } else if (3 === t && n.stateNode.hydrate) return void(e.blockedOn = 3 === n.tag ? n.stateNode.containerInfo : null) - } - e.blockedOn = null + function _t(e) { + var t = da(e.target); + if (null !== t) { + var n = tt(t); + if (null !== n) + if (13 === (t = n.tag)) { + if (null !== (t = nt(n))) return e.blockedOn = t, void i.unstable_runWithPriority(e.priority, (function() { + st(n) + })) + } else if (3 === t && n.stateNode.hydrate) return void(e.blockedOn = 3 === n.tag ? n.stateNode.containerInfo : null) } + e.blockedOn = null + } - function wt(e) { - if (null !== e.blockedOn) return !1; - var t = Tn(e.topLevelType, e.eventSystemFlags, e.nativeEvent); - if (null !== t) { - var n = pa(t); - return null !== n && ot(n), e.blockedOn = t, !1 - } - return !0 + function wt(e) { + if (null !== e.blockedOn) return !1; + var t = jn(e.topLevelType, e.eventSystemFlags, e.nativeEvent); + if (null !== t) { + var n = pa(t); + return null !== n && ot(n), e.blockedOn = t, !1 } + return !0 + } - function St(e, t, n) { - wt(e) && n.delete(t) - } + function St(e, t, n) { + wt(e) && n.delete(t) + } - function Et() { - for (lt = !1; 0 < ct.length;) { - var e = ct[0]; - if (null !== e.blockedOn) { - null !== (e = pa(e.blockedOn)) && it(e); - break - } - var t = Tn(e.topLevelType, e.eventSystemFlags, e.nativeEvent); - null !== t ? e.blockedOn = t : ct.shift() + function Et() { + for (lt = !1; 0 < ct.length;) { + var e = ct[0]; + if (null !== e.blockedOn) { + null !== (e = pa(e.blockedOn)) && it(e); + break } - null !== ut && wt(ut) && (ut = null), null !== dt && wt(dt) && (dt = null), null !== pt && wt(pt) && (pt = null), ht.forEach(St), mt.forEach(St) + var t = jn(e.topLevelType, e.eventSystemFlags, e.nativeEvent); + null !== t ? e.blockedOn = t : ct.shift() } + null !== ut && wt(ut) && (ut = null), null !== dt && wt(dt) && (dt = null), null !== pt && wt(pt) && (pt = null), ht.forEach(St), mt.forEach(St) + } - function xt(e, t) { - e.blockedOn === t && (e.blockedOn = null, lt || (lt = !0, i.unstable_scheduleCallback(i.unstable_NormalPriority, Et))) - } + function xt(e, t) { + e.blockedOn === t && (e.blockedOn = null, lt || (lt = !0, i.unstable_scheduleCallback(i.unstable_NormalPriority, Et))) + } - function Ct(e) { - function t(t) { - return xt(t, e) - } - if (0 < ct.length) { - xt(ct[0], e); - for (var n = 1; n < ct.length; n++) { - var a = ct[n]; - a.blockedOn === e && (a.blockedOn = null) - } - } - for (null !== ut && xt(ut, e), null !== dt && xt(dt, e), null !== pt && xt(pt, e), ht.forEach(t), mt.forEach(t), n = 0; n < ft.length; n++)(a = ft[n]).blockedOn === e && (a.blockedOn = null); - for (; 0 < ft.length && null === (n = ft[0]).blockedOn;) _t(n), null === n.blockedOn && ft.shift() + function Ct(e) { + function t(t) { + return xt(t, e) } - - function At(e) { - return (e = e.target || e.srcElement || window).correspondingUseElement && (e = e.correspondingUseElement), 3 === e.nodeType ? e.parentNode : e + if (0 < ct.length) { + xt(ct[0], e); + for (var n = 1; n < ct.length; n++) { + var a = ct[n]; + a.blockedOn === e && (a.blockedOn = null) + } } + for (null !== ut && xt(ut, e), null !== dt && xt(dt, e), null !== pt && xt(pt, e), ht.forEach(t), mt.forEach(t), n = 0; n < ft.length; n++)(a = ft[n]).blockedOn === e && (a.blockedOn = null); + for (; 0 < ft.length && null === (n = ft[0]).blockedOn;) _t(n), null === n.blockedOn && ft.shift() + } - function jt(e) { - do { - e = e.return - } while (e && 5 !== e.tag); - return e || null - } + function At(e) { + return (e = e.target || e.srcElement || window).correspondingUseElement && (e = e.correspondingUseElement), 3 === e.nodeType ? e.parentNode : e + } - function Pt(e, t, n) { - (t = O(e, n.dispatchConfig.phasedRegistrationNames[t])) && (n._dispatchListeners = C(n._dispatchListeners, t), n._dispatchInstances = C(n._dispatchInstances, e)) - } + function Tt(e) { + do { + e = e.return + } while (e && 5 !== e.tag); + return e || null + } - function Dt(e) { - if (e && e.dispatchConfig.phasedRegistrationNames) { - for (var t = e._targetInst, n = []; t;) n.push(t), t = jt(t); - for (t = n.length; 0 < t--;) Pt(n[t], "captured", e); - for (t = 0; t < n.length; t++) Pt(n[t], "bubbled", e) - } - } + function Dt(e, t, n) { + (t = M(e, n.dispatchConfig.phasedRegistrationNames[t])) && (n._dispatchListeners = C(n._dispatchListeners, t), n._dispatchInstances = C(n._dispatchInstances, e)) + } - function Tt(e, t, n) { - e && n && n.dispatchConfig.registrationName && (t = O(e, n.dispatchConfig.registrationName)) && (n._dispatchListeners = C(n._dispatchListeners, t), n._dispatchInstances = C(n._dispatchInstances, e)) + function Pt(e) { + if (e && e.dispatchConfig.phasedRegistrationNames) { + for (var t = e._targetInst, n = []; t;) n.push(t), t = Tt(t); + for (t = n.length; 0 < t--;) Dt(n[t], "captured", e); + for (t = 0; t < n.length; t++) Dt(n[t], "bubbled", e) } + } - function Ot(e) { - e && e.dispatchConfig.registrationName && Tt(e._targetInst, null, e) - } + function jt(e, t, n) { + e && n && n.dispatchConfig.registrationName && (t = M(e, n.dispatchConfig.registrationName)) && (n._dispatchListeners = C(n._dispatchListeners, t), n._dispatchInstances = C(n._dispatchInstances, e)) + } - function Mt(e) { - A(e, Dt) - } + function Mt(e) { + e && e.dispatchConfig.registrationName && jt(e._targetInst, null, e) + } - function It() { - return !0 - } + function It(e) { + A(e, Pt) + } - function Nt() { - return !1 - } + function Ot() { + return !0 + } - function zt(e, t, n, a) { - for (var r in this.dispatchConfig = e, this._targetInst = t, this.nativeEvent = n, e = this.constructor.Interface) e.hasOwnProperty(r) && ((t = e[r]) ? this[r] = t(n) : "target" === r ? this.target = a : this[r] = n[r]); - return this.isDefaultPrevented = (null != n.defaultPrevented ? n.defaultPrevented : !1 === n.returnValue) ? It : Nt, this.isPropagationStopped = Nt, this - } + function Nt() { + return !1 + } - function Rt(e, t, n, a) { - if (this.eventPool.length) { - var r = this.eventPool.pop(); - return this.call(r, e, t, n, a), r - } - return new this(e, t, n, a) - } + function Rt(e, t, n, a) { + for (var r in this.dispatchConfig = e, this._targetInst = t, this.nativeEvent = n, e = this.constructor.Interface) e.hasOwnProperty(r) && ((t = e[r]) ? this[r] = t(n) : "target" === r ? this.target = a : this[r] = n[r]); + return this.isDefaultPrevented = (null != n.defaultPrevented ? n.defaultPrevented : !1 === n.returnValue) ? Ot : Nt, this.isPropagationStopped = Nt, this + } - function Lt(e) { - if (!(e instanceof this)) throw Error(o(279)); - e.destructor(), 10 > this.eventPool.length && this.eventPool.push(e) + function zt(e, t, n, a) { + if (this.eventPool.length) { + var r = this.eventPool.pop(); + return this.call(r, e, t, n, a), r } + return new this(e, t, n, a) + } - function Ft(e) { - e.eventPool = [], e.getPooled = Rt, e.release = Lt - } - r(zt.prototype, { - preventDefault: function() { - this.defaultPrevented = !0; - var e = this.nativeEvent; - e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e.returnValue && (e.returnValue = !1), this.isDefaultPrevented = It) - }, - stopPropagation: function() { - var e = this.nativeEvent; - e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e.cancelBubble && (e.cancelBubble = !0), this.isPropagationStopped = It) - }, - persist: function() { - this.isPersistent = It - }, - isPersistent: Nt, - destructor: function() { - var e, t = this.constructor.Interface; - for (e in t) this[e] = null; - this.nativeEvent = this._targetInst = this.dispatchConfig = null, this.isPropagationStopped = this.isDefaultPrevented = Nt, this._dispatchInstances = this._dispatchListeners = null - } - }), zt.Interface = { - type: null, - target: null, - currentTarget: function() { - return null - }, - eventPhase: null, - bubbles: null, - cancelable: null, - timeStamp: function(e) { - return e.timeStamp || Date.now() - }, - defaultPrevented: null, - isTrusted: null - }, zt.extend = function(e) { - function t() {} + function Lt(e) { + if (!(e instanceof this)) throw Error(o(279)); + e.destructor(), 10 > this.eventPool.length && this.eventPool.push(e) + } - function n() { - return a.apply(this, arguments) - } - var a = this; - t.prototype = a.prototype; - var i = new t; - return r(i, n.prototype), n.prototype = i, n.prototype.constructor = n, n.Interface = r({}, a.Interface, e), n.extend = a.extend, Ft(n), n - }, Ft(zt); - var qt = zt.extend({ - animationName: null, - elapsedTime: null, - pseudoElement: null - }), - Bt = zt.extend({ - clipboardData: function(e) { - return "clipboardData" in e ? e.clipboardData : window.clipboardData - } - }), - Ut = zt.extend({ - view: null, - detail: null - }), - Ht = Ut.extend({ - relatedTarget: null - }); + function Ft(e) { + e.eventPool = [], e.getPooled = zt, e.release = Lt + } + r(Rt.prototype, { + preventDefault: function() { + this.defaultPrevented = !0; + var e = this.nativeEvent; + e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e.returnValue && (e.returnValue = !1), this.isDefaultPrevented = Ot) + }, + stopPropagation: function() { + var e = this.nativeEvent; + e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e.cancelBubble && (e.cancelBubble = !0), this.isPropagationStopped = Ot) + }, + persist: function() { + this.isPersistent = Ot + }, + isPersistent: Nt, + destructor: function() { + var e, t = this.constructor.Interface; + for (e in t) this[e] = null; + this.nativeEvent = this._targetInst = this.dispatchConfig = null, this.isPropagationStopped = this.isDefaultPrevented = Nt, this._dispatchInstances = this._dispatchListeners = null + } + }), Rt.Interface = { + type: null, + target: null, + currentTarget: function() { + return null + }, + eventPhase: null, + bubbles: null, + cancelable: null, + timeStamp: function(e) { + return e.timeStamp || Date.now() + }, + defaultPrevented: null, + isTrusted: null + }, Rt.extend = function(e) { + function t() {} + + function n() { + return a.apply(this, arguments) + } + var a = this; + t.prototype = a.prototype; + var i = new t; + return r(i, n.prototype), n.prototype = i, n.prototype.constructor = n, n.Interface = r({}, a.Interface, e), n.extend = a.extend, Ft(n), n + }, Ft(Rt); + var qt = Rt.extend({ + animationName: null, + elapsedTime: null, + pseudoElement: null + }), + Bt = Rt.extend({ + clipboardData: function(e) { + return "clipboardData" in e ? e.clipboardData : window.clipboardData + } + }), + Ut = Rt.extend({ + view: null, + detail: null + }), + Ht = Ut.extend({ + relatedTarget: null + }); - function Vt(e) { - var t = e.keyCode; - return "charCode" in e ? 0 === (e = e.charCode) && 13 === t && (e = 13) : e = t, 10 === e && (e = 13), 32 <= e || 13 === e ? e : 0 - } - var Wt = { - Esc: "Escape", - Spacebar: " ", - Left: "ArrowLeft", - Up: "ArrowUp", - Right: "ArrowRight", - Down: "ArrowDown", - Del: "Delete", - Win: "OS", - Menu: "ContextMenu", - Apps: "ContextMenu", - Scroll: "ScrollLock", - MozPrintableKey: "Unidentified" - }, - Yt = { - 8: "Backspace", - 9: "Tab", - 12: "Clear", - 13: "Enter", - 16: "Shift", - 17: "Control", - 18: "Alt", - 19: "Pause", - 20: "CapsLock", - 27: "Escape", - 32: " ", - 33: "PageUp", - 34: "PageDown", - 35: "End", - 36: "Home", - 37: "ArrowLeft", - 38: "ArrowUp", - 39: "ArrowRight", - 40: "ArrowDown", - 45: "Insert", - 46: "Delete", - 112: "F1", - 113: "F2", - 114: "F3", - 115: "F4", - 116: "F5", - 117: "F6", - 118: "F7", - 119: "F8", - 120: "F9", - 121: "F10", - 122: "F11", - 123: "F12", - 144: "NumLock", - 145: "ScrollLock", - 224: "Meta" - }, - Gt = { - Alt: "altKey", - Control: "ctrlKey", - Meta: "metaKey", - Shift: "shiftKey" - }; + function Vt(e) { + var t = e.keyCode; + return "charCode" in e ? 0 === (e = e.charCode) && 13 === t && (e = 13) : e = t, 10 === e && (e = 13), 32 <= e || 13 === e ? e : 0 + } + var Wt = { + Esc: "Escape", + Spacebar: " ", + Left: "ArrowLeft", + Up: "ArrowUp", + Right: "ArrowRight", + Down: "ArrowDown", + Del: "Delete", + Win: "OS", + Menu: "ContextMenu", + Apps: "ContextMenu", + Scroll: "ScrollLock", + MozPrintableKey: "Unidentified" + }, + Yt = { + 8: "Backspace", + 9: "Tab", + 12: "Clear", + 13: "Enter", + 16: "Shift", + 17: "Control", + 18: "Alt", + 19: "Pause", + 20: "CapsLock", + 27: "Escape", + 32: " ", + 33: "PageUp", + 34: "PageDown", + 35: "End", + 36: "Home", + 37: "ArrowLeft", + 38: "ArrowUp", + 39: "ArrowRight", + 40: "ArrowDown", + 45: "Insert", + 46: "Delete", + 112: "F1", + 113: "F2", + 114: "F3", + 115: "F4", + 116: "F5", + 117: "F6", + 118: "F7", + 119: "F8", + 120: "F9", + 121: "F10", + 122: "F11", + 123: "F12", + 144: "NumLock", + 145: "ScrollLock", + 224: "Meta" + }, + Gt = { + Alt: "altKey", + Control: "ctrlKey", + Meta: "metaKey", + Shift: "shiftKey" + }; - function Kt(e) { - var t = this.nativeEvent; - return t.getModifierState ? t.getModifierState(e) : !!(e = Gt[e]) && !!t[e] - } + function Kt(e) { + var t = this.nativeEvent; + return t.getModifierState ? t.getModifierState(e) : !!(e = Gt[e]) && !!t[e] + } - function $t() { - return Kt - } - for (var Jt = Ut.extend({ - key: function(e) { - if (e.key) { - var t = Wt[e.key] || e.key; - if ("Unidentified" !== t) return t - } - return "keypress" === e.type ? 13 === (e = Vt(e)) ? "Enter" : String.fromCharCode(e) : "keydown" === e.type || "keyup" === e.type ? Yt[e.keyCode] || "Unidentified" : "" - }, - location: null, - ctrlKey: null, - shiftKey: null, - altKey: null, - metaKey: null, - repeat: null, - locale: null, - getModifierState: $t, - charCode: function(e) { - return "keypress" === e.type ? Vt(e) : 0 - }, - keyCode: function(e) { - return "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0 - }, - which: function(e) { - return "keypress" === e.type ? Vt(e) : "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0 - } - }), Zt = 0, Qt = 0, Xt = !1, en = !1, tn = Ut.extend({ - screenX: null, - screenY: null, - clientX: null, - clientY: null, - pageX: null, - pageY: null, - ctrlKey: null, - shiftKey: null, - altKey: null, - metaKey: null, - getModifierState: $t, - button: null, - buttons: null, - relatedTarget: function(e) { - return e.relatedTarget || (e.fromElement === e.srcElement ? e.toElement : e.fromElement) - }, - movementX: function(e) { - if ("movementX" in e) return e.movementX; - var t = Zt; - return Zt = e.screenX, Xt ? "mousemove" === e.type ? e.screenX - t : 0 : (Xt = !0, 0) - }, - movementY: function(e) { - if ("movementY" in e) return e.movementY; - var t = Qt; - return Qt = e.screenY, en ? "mousemove" === e.type ? e.screenY - t : 0 : (en = !0, 0) - } - }), nn = tn.extend({ - pointerId: null, - width: null, - height: null, - pressure: null, - tangentialPressure: null, - tiltX: null, - tiltY: null, - twist: null, - pointerType: null, - isPrimary: null - }), an = tn.extend({ - dataTransfer: null - }), rn = Ut.extend({ - touches: null, - targetTouches: null, - changedTouches: null, - altKey: null, - metaKey: null, - ctrlKey: null, - shiftKey: null, - getModifierState: $t - }), on = zt.extend({ - propertyName: null, - elapsedTime: null, - pseudoElement: null - }), sn = tn.extend({ - deltaX: function(e) { - return "deltaX" in e ? e.deltaX : "wheelDeltaX" in e ? -e.wheelDeltaX : 0 - }, - deltaY: function(e) { - return "deltaY" in e ? e.deltaY : "wheelDeltaY" in e ? -e.wheelDeltaY : "wheelDelta" in e ? -e.wheelDelta : 0 - }, - deltaZ: null, - deltaMode: null - }), ln = [ - ["blur", "blur", 0], - ["cancel", "cancel", 0], - ["click", "click", 0], - ["close", "close", 0], - ["contextmenu", "contextMenu", 0], - ["copy", "copy", 0], - ["cut", "cut", 0], - ["auxclick", "auxClick", 0], - ["dblclick", "doubleClick", 0], - ["dragend", "dragEnd", 0], - ["dragstart", "dragStart", 0], - ["drop", "drop", 0], - ["focus", "focus", 0], - ["input", "input", 0], - ["invalid", "invalid", 0], - ["keydown", "keyDown", 0], - ["keypress", "keyPress", 0], - ["keyup", "keyUp", 0], - ["mousedown", "mouseDown", 0], - ["mouseup", "mouseUp", 0], - ["paste", "paste", 0], - ["pause", "pause", 0], - ["play", "play", 0], - ["pointercancel", "pointerCancel", 0], - ["pointerdown", "pointerDown", 0], - ["pointerup", "pointerUp", 0], - ["ratechange", "rateChange", 0], - ["reset", "reset", 0], - ["seeked", "seeked", 0], - ["submit", "submit", 0], - ["touchcancel", "touchCancel", 0], - ["touchend", "touchEnd", 0], - ["touchstart", "touchStart", 0], - ["volumechange", "volumeChange", 0], - ["drag", "drag", 1], - ["dragenter", "dragEnter", 1], - ["dragexit", "dragExit", 1], - ["dragleave", "dragLeave", 1], - ["dragover", "dragOver", 1], - ["mousemove", "mouseMove", 1], - ["mouseout", "mouseOut", 1], - ["mouseover", "mouseOver", 1], - ["pointermove", "pointerMove", 1], - ["pointerout", "pointerOut", 1], - ["pointerover", "pointerOver", 1], - ["scroll", "scroll", 1], - ["toggle", "toggle", 1], - ["touchmove", "touchMove", 1], - ["wheel", "wheel", 1], - ["abort", "abort", 2], - [Je, "animationEnd", 2], - [Ze, "animationIteration", 2], - [Qe, "animationStart", 2], - ["canplay", "canPlay", 2], - ["canplaythrough", "canPlayThrough", 2], - ["durationchange", "durationChange", 2], - ["emptied", "emptied", 2], - ["encrypted", "encrypted", 2], - ["ended", "ended", 2], - ["error", "error", 2], - ["gotpointercapture", "gotPointerCapture", 2], - ["load", "load", 2], - ["loadeddata", "loadedData", 2], - ["loadedmetadata", "loadedMetadata", 2], - ["loadstart", "loadStart", 2], - ["lostpointercapture", "lostPointerCapture", 2], - ["playing", "playing", 2], - ["progress", "progress", 2], - ["seeking", "seeking", 2], - ["stalled", "stalled", 2], - ["suspend", "suspend", 2], - ["timeupdate", "timeUpdate", 2], - [Xe, "transitionEnd", 2], - ["waiting", "waiting", 2] - ], cn = {}, un = {}, dn = 0; dn < ln.length; dn++) { - var pn = ln[dn], - hn = pn[0], - mn = pn[1], - fn = pn[2], - gn = "on" + (mn[0].toUpperCase() + mn.slice(1)), - bn = { - phasedRegistrationNames: { - bubbled: gn, - captured: gn + "Capture" - }, - dependencies: [hn], - eventPriority: fn - }; - cn[mn] = bn, un[hn] = bn - } - var yn = { - eventTypes: cn, - getEventPriority: function(e) { - return void 0 !== (e = un[e]) ? e.eventPriority : 2 - }, - extractEvents: function(e, t, n, a) { - var r = un[e]; - if (!r) return null; - switch (e) { - case "keypress": - if (0 === Vt(n)) return null; - case "keydown": - case "keyup": - e = Jt; - break; - case "blur": - case "focus": - e = Ht; - break; - case "click": - if (2 === n.button) return null; - case "auxclick": - case "dblclick": - case "mousedown": - case "mousemove": - case "mouseup": - case "mouseout": - case "mouseover": - case "contextmenu": - e = tn; - break; - case "drag": - case "dragend": - case "dragenter": - case "dragexit": - case "dragleave": - case "dragover": - case "dragstart": - case "drop": - e = an; - break; - case "touchcancel": - case "touchend": - case "touchmove": - case "touchstart": - e = rn; - break; - case Je: - case Ze: - case Qe: - e = qt; - break; - case Xe: - e = on; - break; - case "scroll": - e = Ut; - break; - case "wheel": - e = sn; - break; - case "copy": - case "cut": - case "paste": - e = Bt; - break; - case "gotpointercapture": - case "lostpointercapture": - case "pointercancel": - case "pointerdown": - case "pointermove": - case "pointerout": - case "pointerover": - case "pointerup": - e = nn; - break; - default: - e = zt - } - return Mt(t = e.getPooled(r, t, n, a)), t + function $t() { + return Kt + } + for (var Jt = Ut.extend({ + key: function(e) { + if (e.key) { + var t = Wt[e.key] || e.key; + if ("Unidentified" !== t) return t } + return "keypress" === e.type ? 13 === (e = Vt(e)) ? "Enter" : String.fromCharCode(e) : "keydown" === e.type || "keyup" === e.type ? Yt[e.keyCode] || "Unidentified" : "" }, - vn = i.unstable_UserBlockingPriority, - kn = i.unstable_runWithPriority, - _n = yn.getEventPriority, - wn = []; - - function Sn(e) { - var t = e.targetInst, - n = t; - do { - if (!n) { - e.ancestors.push(n); - break - } - var a = n; - if (3 === a.tag) a = a.stateNode.containerInfo; - else { - for (; a.return;) a = a.return; - a = 3 !== a.tag ? null : a.stateNode.containerInfo - } - if (!a) break; - 5 !== (t = n.tag) && 6 !== t || e.ancestors.push(n), n = da(a) - } while (n); - for (n = 0; n < e.ancestors.length; n++) { - t = e.ancestors[n]; - var r = At(e.nativeEvent); - a = e.topLevelType; - for (var i = e.nativeEvent, o = e.eventSystemFlags, s = null, l = 0; l < d.length; l++) { - var c = d[l]; - c && (c = c.extractEvents(a, t, i, r, o)) && (s = C(s, c)) - } - D(s) - } - } - var En = !0; - - function xn(e, t) { - Cn(t, e, !1) - } - - function Cn(e, t, n) { - switch (_n(t)) { - case 0: - var a = An.bind(null, t, 1); - break; - case 1: - a = jn.bind(null, t, 1); - break; - default: - a = Dn.bind(null, t, 1) - } - n ? e.addEventListener(t, a, !0) : e.addEventListener(t, a, !1) - } - - function An(e, t, n) { - ue || le(); - var a = Dn, - r = ue; - ue = !0; - try { - se(a, e, t, n) - } finally { - (ue = r) || pe() - } - } - - function jn(e, t, n) { - kn(vn, Dn.bind(null, e, t, n)) - } - - function Pn(e, t, n, a) { - if (wn.length) { - var r = wn.pop(); - r.topLevelType = e, r.eventSystemFlags = t, r.nativeEvent = n, r.targetInst = a, e = r - } else e = { - topLevelType: e, - eventSystemFlags: t, - nativeEvent: n, - targetInst: a, - ancestors: [] + location: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + repeat: null, + locale: null, + getModifierState: $t, + charCode: function(e) { + return "keypress" === e.type ? Vt(e) : 0 + }, + keyCode: function(e) { + return "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0 + }, + which: function(e) { + return "keypress" === e.type ? Vt(e) : "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0 + } + }), Zt = 0, Qt = 0, Xt = !1, en = !1, tn = Ut.extend({ + screenX: null, + screenY: null, + clientX: null, + clientY: null, + pageX: null, + pageY: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + getModifierState: $t, + button: null, + buttons: null, + relatedTarget: function(e) { + return e.relatedTarget || (e.fromElement === e.srcElement ? e.toElement : e.fromElement) + }, + movementX: function(e) { + if ("movementX" in e) return e.movementX; + var t = Zt; + return Zt = e.screenX, Xt ? "mousemove" === e.type ? e.screenX - t : 0 : (Xt = !0, 0) + }, + movementY: function(e) { + if ("movementY" in e) return e.movementY; + var t = Qt; + return Qt = e.screenY, en ? "mousemove" === e.type ? e.screenY - t : 0 : (en = !0, 0) + } + }), nn = tn.extend({ + pointerId: null, + width: null, + height: null, + pressure: null, + tangentialPressure: null, + tiltX: null, + tiltY: null, + twist: null, + pointerType: null, + isPrimary: null + }), an = tn.extend({ + dataTransfer: null + }), rn = Ut.extend({ + touches: null, + targetTouches: null, + changedTouches: null, + altKey: null, + metaKey: null, + ctrlKey: null, + shiftKey: null, + getModifierState: $t + }), on = Rt.extend({ + propertyName: null, + elapsedTime: null, + pseudoElement: null + }), sn = tn.extend({ + deltaX: function(e) { + return "deltaX" in e ? e.deltaX : "wheelDeltaX" in e ? -e.wheelDeltaX : 0 + }, + deltaY: function(e) { + return "deltaY" in e ? e.deltaY : "wheelDeltaY" in e ? -e.wheelDeltaY : "wheelDelta" in e ? -e.wheelDelta : 0 + }, + deltaZ: null, + deltaMode: null + }), ln = [ + ["blur", "blur", 0], + ["cancel", "cancel", 0], + ["click", "click", 0], + ["close", "close", 0], + ["contextmenu", "contextMenu", 0], + ["copy", "copy", 0], + ["cut", "cut", 0], + ["auxclick", "auxClick", 0], + ["dblclick", "doubleClick", 0], + ["dragend", "dragEnd", 0], + ["dragstart", "dragStart", 0], + ["drop", "drop", 0], + ["focus", "focus", 0], + ["input", "input", 0], + ["invalid", "invalid", 0], + ["keydown", "keyDown", 0], + ["keypress", "keyPress", 0], + ["keyup", "keyUp", 0], + ["mousedown", "mouseDown", 0], + ["mouseup", "mouseUp", 0], + ["paste", "paste", 0], + ["pause", "pause", 0], + ["play", "play", 0], + ["pointercancel", "pointerCancel", 0], + ["pointerdown", "pointerDown", 0], + ["pointerup", "pointerUp", 0], + ["ratechange", "rateChange", 0], + ["reset", "reset", 0], + ["seeked", "seeked", 0], + ["submit", "submit", 0], + ["touchcancel", "touchCancel", 0], + ["touchend", "touchEnd", 0], + ["touchstart", "touchStart", 0], + ["volumechange", "volumeChange", 0], + ["drag", "drag", 1], + ["dragenter", "dragEnter", 1], + ["dragexit", "dragExit", 1], + ["dragleave", "dragLeave", 1], + ["dragover", "dragOver", 1], + ["mousemove", "mouseMove", 1], + ["mouseout", "mouseOut", 1], + ["mouseover", "mouseOver", 1], + ["pointermove", "pointerMove", 1], + ["pointerout", "pointerOut", 1], + ["pointerover", "pointerOver", 1], + ["scroll", "scroll", 1], + ["toggle", "toggle", 1], + ["touchmove", "touchMove", 1], + ["wheel", "wheel", 1], + ["abort", "abort", 2], + [Je, "animationEnd", 2], + [Ze, "animationIteration", 2], + [Qe, "animationStart", 2], + ["canplay", "canPlay", 2], + ["canplaythrough", "canPlayThrough", 2], + ["durationchange", "durationChange", 2], + ["emptied", "emptied", 2], + ["encrypted", "encrypted", 2], + ["ended", "ended", 2], + ["error", "error", 2], + ["gotpointercapture", "gotPointerCapture", 2], + ["load", "load", 2], + ["loadeddata", "loadedData", 2], + ["loadedmetadata", "loadedMetadata", 2], + ["loadstart", "loadStart", 2], + ["lostpointercapture", "lostPointerCapture", 2], + ["playing", "playing", 2], + ["progress", "progress", 2], + ["seeking", "seeking", 2], + ["stalled", "stalled", 2], + ["suspend", "suspend", 2], + ["timeupdate", "timeUpdate", 2], + [Xe, "transitionEnd", 2], + ["waiting", "waiting", 2] + ], cn = {}, un = {}, dn = 0; dn < ln.length; dn++) { + var pn = ln[dn], + hn = pn[0], + mn = pn[1], + fn = pn[2], + gn = "on" + (mn[0].toUpperCase() + mn.slice(1)), + bn = { + phasedRegistrationNames: { + bubbled: gn, + captured: gn + "Capture" + }, + dependencies: [hn], + eventPriority: fn }; - try { - if (t = Sn, n = e, de) t(n, void 0); - else { - de = !0; - try { - ce(t, n, void 0) - } finally { - de = !1, pe() - } - } - } finally { - e.topLevelType = null, e.nativeEvent = null, e.targetInst = null, e.ancestors.length = 0, wn.length < 10 && wn.push(e) - } - } - - function Dn(e, t, n) { - if (En) - if (0 < ct.length && -1 < gt.indexOf(e)) e = yt(null, e, t, n), ct.push(e); - else { - var a = Tn(e, t, n); - null === a ? vt(e, n) : -1 < gt.indexOf(e) ? (e = yt(a, e, t, n), ct.push(e)) : function(e, t, n, a) { - switch (t) { - case "focus": - return ut = kt(ut, e, t, n, a), !0; - case "dragenter": - return dt = kt(dt, e, t, n, a), !0; - case "mouseover": - return pt = kt(pt, e, t, n, a), !0; - case "pointerover": - var r = a.pointerId; - return ht.set(r, kt(ht.get(r) || null, e, t, n, a)), !0; - case "gotpointercapture": - return r = a.pointerId, mt.set(r, kt(mt.get(r) || null, e, t, n, a)), !0 - } - return !1 - }(a, e, t, n) || (vt(e, n), Pn(e, t, n, null)) - } - } - - function Tn(e, t, n) { - var a = At(n); - if (null !== (a = da(a))) { - var r = tt(a); - if (null === r) a = null; - else { - var i = r.tag; - if (13 === i) { - if (null !== (a = nt(r))) return a; - a = null - } else if (3 === i) { - if (r.stateNode.hydrate) return 3 === r.tag ? r.stateNode.containerInfo : null; - a = null - } else r !== a && (a = null) - } - } - return Pn(e, t, n, a), null - } - - function On(e) { - if (!X) return !1; - var t = (e = "on" + e) in document; - return t || ((t = document.createElement("div")).setAttribute(e, "return;"), t = "function" == typeof t[e]), t - } - var Mn = new("function" == typeof WeakMap ? WeakMap : Map); - - function In(e) { - var t = Mn.get(e); - return void 0 === t && (t = new Set, Mn.set(e, t)), t - } - - function Nn(e, t, n) { - if (!n.has(e)) { + cn[mn] = bn, un[hn] = bn + } + var yn = { + eventTypes: cn, + getEventPriority: function(e) { + return void 0 !== (e = un[e]) ? e.eventPriority : 2 + }, + extractEvents: function(e, t, n, a) { + var r = un[e]; + if (!r) return null; switch (e) { - case "scroll": - Cn(t, "scroll", !0); + case "keypress": + if (0 === Vt(n)) return null; + case "keydown": + case "keyup": + e = Jt; break; - case "focus": case "blur": - Cn(t, "focus", !0), Cn(t, "blur", !0), n.add("blur"), n.add("focus"); + case "focus": + e = Ht; + break; + case "click": + if (2 === n.button) return null; + case "auxclick": + case "dblclick": + case "mousedown": + case "mousemove": + case "mouseup": + case "mouseout": + case "mouseover": + case "contextmenu": + e = tn; + break; + case "drag": + case "dragend": + case "dragenter": + case "dragexit": + case "dragleave": + case "dragover": + case "dragstart": + case "drop": + e = an; + break; + case "touchcancel": + case "touchend": + case "touchmove": + case "touchstart": + e = rn; break; - case "cancel": - case "close": - On(e) && Cn(t, e, !0); + case Je: + case Ze: + case Qe: + e = qt; break; - case "invalid": - case "submit": - case "reset": + case Xe: + e = on; + break; + case "scroll": + e = Ut; + break; + case "wheel": + e = sn; + break; + case "copy": + case "cut": + case "paste": + e = Bt; + break; + case "gotpointercapture": + case "lostpointercapture": + case "pointercancel": + case "pointerdown": + case "pointermove": + case "pointerout": + case "pointerover": + case "pointerup": + e = nn; break; default: - -1 === et.indexOf(e) && xn(e, t) - } - n.add(e) - } - } - var zn = { - animationIterationCount: !0, - borderImageOutset: !0, - borderImageSlice: !0, - borderImageWidth: !0, - boxFlex: !0, - boxFlexGroup: !0, - boxOrdinalGroup: !0, - columnCount: !0, - columns: !0, - flex: !0, - flexGrow: !0, - flexPositive: !0, - flexShrink: !0, - flexNegative: !0, - flexOrder: !0, - gridArea: !0, - gridRow: !0, - gridRowEnd: !0, - gridRowSpan: !0, - gridRowStart: !0, - gridColumn: !0, - gridColumnEnd: !0, - gridColumnSpan: !0, - gridColumnStart: !0, - fontWeight: !0, - lineClamp: !0, - lineHeight: !0, - opacity: !0, - order: !0, - orphans: !0, - tabSize: !0, - widows: !0, - zIndex: !0, - zoom: !0, - fillOpacity: !0, - floodOpacity: !0, - stopOpacity: !0, - strokeDasharray: !0, - strokeDashoffset: !0, - strokeMiterlimit: !0, - strokeOpacity: !0, - strokeWidth: !0 - }, - Rn = ["Webkit", "ms", "Moz", "O"]; - - function Ln(e, t, n) { - return null == t || "boolean" == typeof t || "" === t ? "" : n || "number" != typeof t || 0 === t || zn.hasOwnProperty(e) && zn[e] ? ("" + t).trim() : t + "px" - } - - function Fn(e, t) { - for (var n in e = e.style, t) - if (t.hasOwnProperty(n)) { - var a = 0 === n.indexOf("--"), - r = Ln(n, t[n], a); - "float" === n && (n = "cssFloat"), a ? e.setProperty(n, r) : e[n] = r - } - } - Object.keys(zn).forEach((function(e) { - Rn.forEach((function(t) { - t = t + e.charAt(0).toUpperCase() + e.substring(1), zn[t] = zn[e] - })) - })); - var qn = r({ - menuitem: !0 - }, { - area: !0, - base: !0, - br: !0, - col: !0, - embed: !0, - hr: !0, - img: !0, - input: !0, - keygen: !0, - link: !0, - meta: !0, - param: !0, - source: !0, - track: !0, - wbr: !0 - }); - - function Bn(e, t) { - if (t) { - if (qn[e] && (null != t.children || null != t.dangerouslySetInnerHTML)) throw Error(o(137, e, "")); - if (null != t.dangerouslySetInnerHTML) { - if (null != t.children) throw Error(o(60)); - if ("object" != typeof t.dangerouslySetInnerHTML || !("__html" in t.dangerouslySetInnerHTML)) throw Error(o(61)) - } - if (null != t.style && "object" != typeof t.style) throw Error(o(62, "")) - } - } - - function Un(e, t) { - if (-1 === e.indexOf("-")) return "string" == typeof t.is; - switch (e) { - case "annotation-xml": - case "color-profile": - case "font-face": - case "font-face-src": - case "font-face-uri": - case "font-face-format": - case "font-face-name": - case "missing-glyph": - return !1; - default: - return !0 + e = Rt + } + return It(t = e.getPooled(r, t, n, a)), t + } + }, + vn = i.unstable_UserBlockingPriority, + kn = i.unstable_runWithPriority, + _n = yn.getEventPriority, + wn = []; + + function Sn(e) { + var t = e.targetInst, + n = t; + do { + if (!n) { + e.ancestors.push(n); + break } + var a = n; + if (3 === a.tag) a = a.stateNode.containerInfo; + else { + for (; a.return;) a = a.return; + a = 3 !== a.tag ? null : a.stateNode.containerInfo + } + if (!a) break; + 5 !== (t = n.tag) && 6 !== t || e.ancestors.push(n), n = da(a) + } while (n); + for (n = 0; n < e.ancestors.length; n++) { + t = e.ancestors[n]; + var r = At(e.nativeEvent); + a = e.topLevelType; + for (var i = e.nativeEvent, o = e.eventSystemFlags, s = null, l = 0; l < d.length; l++) { + var c = d[l]; + c && (c = c.extractEvents(a, t, i, r, o)) && (s = C(s, c)) + } + P(s) } + } + var En = !0; - function Hn(e, t) { - var n = In(e = 9 === e.nodeType || 11 === e.nodeType ? e : e.ownerDocument); - t = m[t]; - for (var a = 0; a < t.length; a++) Nn(t[a], e, n) - } - - function Vn() {} - - function Wn(e) { - if (void 0 === (e = e || ("undefined" != typeof document ? document : void 0))) return null; - try { - return e.activeElement || e.body - } catch (t) { - return e.body - } - } + function xn(e, t) { + Cn(t, e, !1) + } - function Yn(e) { - for (; e && e.firstChild;) e = e.firstChild; - return e - } + function Cn(e, t, n) { + switch (_n(t)) { + case 0: + var a = An.bind(null, t, 1); + break; + case 1: + a = Tn.bind(null, t, 1); + break; + default: + a = Pn.bind(null, t, 1) + } + n ? e.addEventListener(t, a, !0) : e.addEventListener(t, a, !1) + } - function Gn(e, t) { - var n, a = Yn(e); - for (e = 0; a;) { - if (3 === a.nodeType) { - if (n = e + a.textContent.length, e <= t && n >= t) return { - node: a, - offset: t - e - }; - e = n - } - e: { - for (; a;) { - if (a.nextSibling) { - a = a.nextSibling; - break e - } - a = a.parentNode - } - a = void 0 - } - a = Yn(a) - } + function An(e, t, n) { + ue || le(); + var a = Pn, + r = ue; + ue = !0; + try { + se(a, e, t, n) + } finally { + (ue = r) || pe() } + } - function Kn(e, t) { - return !(!e || !t) && (e === t || (!e || 3 !== e.nodeType) && (t && 3 === t.nodeType ? Kn(e, t.parentNode) : "contains" in e ? e.contains(t) : !!e.compareDocumentPosition && !!(16 & e.compareDocumentPosition(t)))) - } + function Tn(e, t, n) { + kn(vn, Pn.bind(null, e, t, n)) + } - function $n() { - for (var e = window, t = Wn(); t instanceof e.HTMLIFrameElement;) { + function Dn(e, t, n, a) { + if (wn.length) { + var r = wn.pop(); + r.topLevelType = e, r.eventSystemFlags = t, r.nativeEvent = n, r.targetInst = a, e = r + } else e = { + topLevelType: e, + eventSystemFlags: t, + nativeEvent: n, + targetInst: a, + ancestors: [] + }; + try { + if (t = Sn, n = e, de) t(n, void 0); + else { + de = !0; try { - var n = "string" == typeof t.contentWindow.location.href - } catch (e) { - n = !1 + ce(t, n, void 0) + } finally { + de = !1, pe() } - if (!n) break; - t = Wn((e = t.contentWindow).document) - } - return t - } - - function Jn(e) { - var t = e && e.nodeName && e.nodeName.toLowerCase(); - return t && ("input" === t && ("text" === e.type || "search" === e.type || "tel" === e.type || "url" === e.type || "password" === e.type) || "textarea" === t || "true" === e.contentEditable) - } - var Zn = "$?", - Qn = "$!", - Xn = null, - ea = null; - - function ta(e, t) { - switch (e) { - case "button": - case "input": - case "select": - case "textarea": - return !!t.autoFocus - } - return !1 - } - - function na(e, t) { - return "textarea" === e || "option" === e || "noscript" === e || "string" == typeof t.children || "number" == typeof t.children || "object" == typeof t.dangerouslySetInnerHTML && null !== t.dangerouslySetInnerHTML && null != t.dangerouslySetInnerHTML.__html - } - var aa = "function" == typeof setTimeout ? setTimeout : void 0, - ra = "function" == typeof clearTimeout ? clearTimeout : void 0; - - function ia(e) { - for (; null != e; e = e.nextSibling) { - var t = e.nodeType; - if (1 === t || 3 === t) break } - return e + } finally { + e.topLevelType = null, e.nativeEvent = null, e.targetInst = null, e.ancestors.length = 0, wn.length < 10 && wn.push(e) } + } - function oa(e) { - e = e.previousSibling; - for (var t = 0; e;) { - if (8 === e.nodeType) { - var n = e.data; - if ("$" === n || n === Qn || n === Zn) { - if (0 === t) return e; - t-- - } else "/$" === n && t++ - } - e = e.previousSibling - } - return null - } - var sa = Math.random().toString(36).slice(2), - la = "__reactInternalInstance$" + sa, - ca = "__reactEventHandlers$" + sa, - ua = "__reactContainere$" + sa; - - function da(e) { - var t = e[la]; - if (t) return t; - for (var n = e.parentNode; n;) { - if (t = n[ua] || n[la]) { - if (n = t.alternate, null !== t.child || null !== n && null !== n.child) - for (e = oa(e); null !== e;) { - if (n = e[la]) return n; - e = oa(e) - } - return t - } - n = (e = n).parentNode + function Pn(e, t, n) { + if (En) + if (0 < ct.length && -1 < gt.indexOf(e)) e = yt(null, e, t, n), ct.push(e); + else { + var a = jn(e, t, n); + null === a ? vt(e, n) : -1 < gt.indexOf(e) ? (e = yt(a, e, t, n), ct.push(e)) : function(e, t, n, a) { + switch (t) { + case "focus": + return ut = kt(ut, e, t, n, a), !0; + case "dragenter": + return dt = kt(dt, e, t, n, a), !0; + case "mouseover": + return pt = kt(pt, e, t, n, a), !0; + case "pointerover": + var r = a.pointerId; + return ht.set(r, kt(ht.get(r) || null, e, t, n, a)), !0; + case "gotpointercapture": + return r = a.pointerId, mt.set(r, kt(mt.get(r) || null, e, t, n, a)), !0 + } + return !1 + }(a, e, t, n) || (vt(e, n), Dn(e, t, n, null)) } - return null - } - - function pa(e) { - return !(e = e[la] || e[ua]) || 5 !== e.tag && 6 !== e.tag && 13 !== e.tag && 3 !== e.tag ? null : e - } - - function ha(e) { - if (5 === e.tag || 6 === e.tag) return e.stateNode; - throw Error(o(33)) - } - - function ma(e) { - return e[ca] || null - } - var fa = null, - ga = null, - ba = null; - - function ya() { - if (ba) return ba; - var e, t, n = ga, - a = n.length, - r = "value" in fa ? fa.value : fa.textContent, - i = r.length; - for (e = 0; e < a && n[e] === r[e]; e++); - var o = a - e; - for (t = 1; t <= o && n[a - t] === r[i - t]; t++); - return ba = r.slice(e, 1 < t ? 1 - t : void 0) - } - var va = zt.extend({ - data: null - }), - ka = zt.extend({ - data: null - }), - _a = [9, 13, 27, 32], - wa = X && "CompositionEvent" in window, - Sa = null; - X && "documentMode" in document && (Sa = document.documentMode); - var Ea = X && "TextEvent" in window && !Sa, - xa = X && (!wa || Sa && 8 < Sa && 11 >= Sa), - Ca = String.fromCharCode(32), - Aa = { - beforeInput: { - phasedRegistrationNames: { - bubbled: "onBeforeInput", - captured: "onBeforeInputCapture" - }, - dependencies: ["compositionend", "keypress", "textInput", "paste"] - }, - compositionEnd: { - phasedRegistrationNames: { - bubbled: "onCompositionEnd", - captured: "onCompositionEndCapture" - }, - dependencies: "blur compositionend keydown keypress keyup mousedown".split(" ") - }, - compositionStart: { - phasedRegistrationNames: { - bubbled: "onCompositionStart", - captured: "onCompositionStartCapture" - }, - dependencies: "blur compositionstart keydown keypress keyup mousedown".split(" ") - }, - compositionUpdate: { - phasedRegistrationNames: { - bubbled: "onCompositionUpdate", - captured: "onCompositionUpdateCapture" - }, - dependencies: "blur compositionupdate keydown keypress keyup mousedown".split(" ") - } - }, - ja = !1; + } - function Pa(e, t) { - switch (e) { - case "keyup": - return -1 !== _a.indexOf(t.keyCode); - case "keydown": - return 229 !== t.keyCode; - case "keypress": - case "mousedown": - case "blur": - return !0; - default: - return !1 + function jn(e, t, n) { + var a = At(n); + if (null !== (a = da(a))) { + var r = tt(a); + if (null === r) a = null; + else { + var i = r.tag; + if (13 === i) { + if (null !== (a = nt(r))) return a; + a = null + } else if (3 === i) { + if (r.stateNode.hydrate) return 3 === r.tag ? r.stateNode.containerInfo : null; + a = null + } else r !== a && (a = null) } } + return Dn(e, t, n, a), null + } - function Da(e) { - return "object" == typeof(e = e.detail) && "data" in e ? e.data : null - } - var Ta = !1, - Oa = { - eventTypes: Aa, - extractEvents: function(e, t, n, a) { - var r; - if (wa) e: { - switch (e) { - case "compositionstart": - var i = Aa.compositionStart; - break e; - case "compositionend": - i = Aa.compositionEnd; - break e; - case "compositionupdate": - i = Aa.compositionUpdate; - break e - } - i = void 0 - } - else Ta ? Pa(e, n) && (i = Aa.compositionEnd) : "keydown" === e && 229 === n.keyCode && (i = Aa.compositionStart); - return i ? (xa && "ko" !== n.locale && (Ta || i !== Aa.compositionStart ? i === Aa.compositionEnd && Ta && (r = ya()) : (ga = "value" in (fa = a) ? fa.value : fa.textContent, Ta = !0)), i = va.getPooled(i, t, n, a), (r || null !== (r = Da(n))) && (i.data = r), Mt(i), r = i) : r = null, (e = Ea ? function(e, t) { - switch (e) { - case "compositionend": - return Da(t); - case "keypress": - return 32 !== t.which ? null : (ja = !0, Ca); - case "textInput": - return (e = t.data) === Ca && ja ? null : e; - default: - return null - } - }(e, n) : function(e, t) { - if (Ta) return "compositionend" === e || !wa && Pa(e, t) ? (e = ya(), ba = ga = fa = null, Ta = !1, e) : null; - switch (e) { - default: - return null; - case "keypress": - if (!(t.ctrlKey || t.altKey || t.metaKey) || t.ctrlKey && t.altKey) { - if (t.char && 1 < t.char.length) return t.char; - if (t.which) return String.fromCharCode(t.which) - } - return null; - case "compositionend": - return xa && "ko" !== t.locale ? null : t.data - } - }(e, n)) ? ((t = ka.getPooled(Aa.beforeInput, t, n, a)).data = e, Mt(t)) : t = null, null === r ? t : null === t ? r : [r, t] - } - }, - Ma = { - color: !0, - date: !0, - datetime: !0, - "datetime-local": !0, - email: !0, - month: !0, - number: !0, - password: !0, - range: !0, - search: !0, - tel: !0, - text: !0, - time: !0, - url: !0, - week: !0 - }; + function Mn(e) { + if (!X) return !1; + var t = (e = "on" + e) in document; + return t || ((t = document.createElement("div")).setAttribute(e, "return;"), t = "function" == typeof t[e]), t + } + var In = new("function" == typeof WeakMap ? WeakMap : Map); - function Ia(e) { - var t = e && e.nodeName && e.nodeName.toLowerCase(); - return "input" === t ? !!Ma[e.type] : "textarea" === t - } - var Na = { - change: { - phasedRegistrationNames: { - bubbled: "onChange", - captured: "onChangeCapture" - }, - dependencies: "blur change click focus input keydown keyup selectionchange".split(" ") - } - }; + function On(e) { + var t = In.get(e); + return void 0 === t && (t = new Set, In.set(e, t)), t + } - function za(e, t, n) { - return (e = zt.getPooled(Na.change, e, t, n)).type = "change", re(n), Mt(e), e + function Nn(e, t, n) { + if (!n.has(e)) { + switch (e) { + case "scroll": + Cn(t, "scroll", !0); + break; + case "focus": + case "blur": + Cn(t, "focus", !0), Cn(t, "blur", !0), n.add("blur"), n.add("focus"); + break; + case "cancel": + case "close": + Mn(e) && Cn(t, e, !0); + break; + case "invalid": + case "submit": + case "reset": + break; + default: + -1 === et.indexOf(e) && xn(e, t) + } + n.add(e) } - var Ra = null, - La = null; + } + var Rn = { + animationIterationCount: !0, + borderImageOutset: !0, + borderImageSlice: !0, + borderImageWidth: !0, + boxFlex: !0, + boxFlexGroup: !0, + boxOrdinalGroup: !0, + columnCount: !0, + columns: !0, + flex: !0, + flexGrow: !0, + flexPositive: !0, + flexShrink: !0, + flexNegative: !0, + flexOrder: !0, + gridArea: !0, + gridRow: !0, + gridRowEnd: !0, + gridRowSpan: !0, + gridRowStart: !0, + gridColumn: !0, + gridColumnEnd: !0, + gridColumnSpan: !0, + gridColumnStart: !0, + fontWeight: !0, + lineClamp: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + tabSize: !0, + widows: !0, + zIndex: !0, + zoom: !0, + fillOpacity: !0, + floodOpacity: !0, + stopOpacity: !0, + strokeDasharray: !0, + strokeDashoffset: !0, + strokeMiterlimit: !0, + strokeOpacity: !0, + strokeWidth: !0 + }, + zn = ["Webkit", "ms", "Moz", "O"]; + + function Ln(e, t, n) { + return null == t || "boolean" == typeof t || "" === t ? "" : n || "number" != typeof t || 0 === t || Rn.hasOwnProperty(e) && Rn[e] ? ("" + t).trim() : t + "px" + } - function Fa(e) { - D(e) + function Fn(e, t) { + for (var n in e = e.style, t) + if (t.hasOwnProperty(n)) { + var a = 0 === n.indexOf("--"), + r = Ln(n, t[n], a); + "float" === n && (n = "cssFloat"), a ? e.setProperty(n, r) : e[n] = r + } + } + Object.keys(Rn).forEach((function(e) { + zn.forEach((function(t) { + t = t + e.charAt(0).toUpperCase() + e.substring(1), Rn[t] = Rn[e] + })) + })); + var qn = r({ + menuitem: !0 + }, { + area: !0, + base: !0, + br: !0, + col: !0, + embed: !0, + hr: !0, + img: !0, + input: !0, + keygen: !0, + link: !0, + meta: !0, + param: !0, + source: !0, + track: !0, + wbr: !0 + }); + + function Bn(e, t) { + if (t) { + if (qn[e] && (null != t.children || null != t.dangerouslySetInnerHTML)) throw Error(o(137, e, "")); + if (null != t.dangerouslySetInnerHTML) { + if (null != t.children) throw Error(o(60)); + if ("object" != typeof t.dangerouslySetInnerHTML || !("__html" in t.dangerouslySetInnerHTML)) throw Error(o(61)) + } + if (null != t.style && "object" != typeof t.style) throw Error(o(62, "")) } + } - function qa(e) { - if (xe(ha(e))) return e + function Un(e, t) { + if (-1 === e.indexOf("-")) return "string" == typeof t.is; + switch (e) { + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + return !1; + default: + return !0 } + } - function Ba(e, t) { - if ("change" === e) return t - } - var Ua = !1; + function Hn(e, t) { + var n = On(e = 9 === e.nodeType || 11 === e.nodeType ? e : e.ownerDocument); + t = m[t]; + for (var a = 0; a < t.length; a++) Nn(t[a], e, n) + } - function Ha() { - Ra && (Ra.detachEvent("onpropertychange", Va), La = Ra = null) + function Vn() {} + + function Wn(e) { + if (void 0 === (e = e || ("undefined" != typeof document ? document : void 0))) return null; + try { + return e.activeElement || e.body + } catch (t) { + return e.body } + } - function Va(e) { - if ("value" === e.propertyName && qa(La)) - if (e = za(La, e, At(e)), ue) D(e); - else { - ue = !0; - try { - oe(Fa, e) - } finally { - ue = !1, pe() + function Yn(e) { + for (; e && e.firstChild;) e = e.firstChild; + return e + } + + function Gn(e, t) { + var n, a = Yn(e); + for (e = 0; a;) { + if (3 === a.nodeType) { + if (n = e + a.textContent.length, e <= t && n >= t) return { + node: a, + offset: t - e + }; + e = n + } + e: { + for (; a;) { + if (a.nextSibling) { + a = a.nextSibling; + break e } + a = a.parentNode } + a = void 0 + } + a = Yn(a) } + } - function Wa(e, t, n) { - "focus" === e ? (Ha(), La = n, (Ra = t).attachEvent("onpropertychange", Va)) : "blur" === e && Ha() - } + function Kn(e, t) { + return !(!e || !t) && (e === t || (!e || 3 !== e.nodeType) && (t && 3 === t.nodeType ? Kn(e, t.parentNode) : "contains" in e ? e.contains(t) : !!e.compareDocumentPosition && !!(16 & e.compareDocumentPosition(t)))) + } - function Ya(e) { - if ("selectionchange" === e || "keyup" === e || "keydown" === e) return qa(La) + function $n() { + for (var e = window, t = Wn(); t instanceof e.HTMLIFrameElement;) { + try { + var n = "string" == typeof t.contentWindow.location.href + } catch (e) { + n = !1 + } + if (!n) break; + t = Wn((e = t.contentWindow).document) } + return t + } - function Ga(e, t) { - if ("click" === e) return qa(t) + function Jn(e) { + var t = e && e.nodeName && e.nodeName.toLowerCase(); + return t && ("input" === t && ("text" === e.type || "search" === e.type || "tel" === e.type || "url" === e.type || "password" === e.type) || "textarea" === t || "true" === e.contentEditable) + } + var Zn = "$?", + Qn = "$!", + Xn = null, + ea = null; + + function ta(e, t) { + switch (e) { + case "button": + case "input": + case "select": + case "textarea": + return !!t.autoFocus + } + return !1 + } + + function na(e, t) { + return "textarea" === e || "option" === e || "noscript" === e || "string" == typeof t.children || "number" == typeof t.children || "object" == typeof t.dangerouslySetInnerHTML && null !== t.dangerouslySetInnerHTML && null != t.dangerouslySetInnerHTML.__html + } + var aa = "function" == typeof setTimeout ? setTimeout : void 0, + ra = "function" == typeof clearTimeout ? clearTimeout : void 0; + + function ia(e) { + for (; null != e; e = e.nextSibling) { + var t = e.nodeType; + if (1 === t || 3 === t) break } + return e + } - function Ka(e, t) { - if ("input" === e || "change" === e) return qa(t) + function oa(e) { + e = e.previousSibling; + for (var t = 0; e;) { + if (8 === e.nodeType) { + var n = e.data; + if ("$" === n || n === Qn || n === Zn) { + if (0 === t) return e; + t-- + } else "/$" === n && t++ + } + e = e.previousSibling } - X && (Ua = On("input") && (!document.documentMode || 9 < document.documentMode)); - var $a, Ja = { - eventTypes: Na, - _isInputEventSupported: Ua, - extractEvents: function(e, t, n, a) { - var r = t ? ha(t) : window, - i = r.nodeName && r.nodeName.toLowerCase(); - if ("select" === i || "input" === i && "file" === r.type) var o = Ba; - else if (Ia(r)) - if (Ua) o = Ka; - else { - o = Ya; - var s = Wa - } - else(i = r.nodeName) && "input" === i.toLowerCase() && ("checkbox" === r.type || "radio" === r.type) && (o = Ga); - if (o && (o = o(e, t))) return za(o, n, a); - s && s(e, r, t), "blur" === e && (e = r._wrapperState) && e.controlled && "number" === r.type && Te(r, "number", r.value) - } - }, - Za = { - mouseEnter: { - registrationName: "onMouseEnter", - dependencies: ["mouseout", "mouseover"] + return null + } + var sa = Math.random().toString(36).slice(2), + la = "__reactInternalInstance$" + sa, + ca = "__reactEventHandlers$" + sa, + ua = "__reactContainere$" + sa; + + function da(e) { + var t = e[la]; + if (t) return t; + for (var n = e.parentNode; n;) { + if (t = n[ua] || n[la]) { + if (n = t.alternate, null !== t.child || null !== n && null !== n.child) + for (e = oa(e); null !== e;) { + if (n = e[la]) return n; + e = oa(e) + } + return t + } + n = (e = n).parentNode + } + return null + } + + function pa(e) { + return !(e = e[la] || e[ua]) || 5 !== e.tag && 6 !== e.tag && 13 !== e.tag && 3 !== e.tag ? null : e + } + + function ha(e) { + if (5 === e.tag || 6 === e.tag) return e.stateNode; + throw Error(o(33)) + } + + function ma(e) { + return e[ca] || null + } + var fa = null, + ga = null, + ba = null; + + function ya() { + if (ba) return ba; + var e, t, n = ga, + a = n.length, + r = "value" in fa ? fa.value : fa.textContent, + i = r.length; + for (e = 0; e < a && n[e] === r[e]; e++); + var o = a - e; + for (t = 1; t <= o && n[a - t] === r[i - t]; t++); + return ba = r.slice(e, 1 < t ? 1 - t : void 0) + } + var va = Rt.extend({ + data: null + }), + ka = Rt.extend({ + data: null + }), + _a = [9, 13, 27, 32], + wa = X && "CompositionEvent" in window, + Sa = null; + X && "documentMode" in document && (Sa = document.documentMode); + var Ea = X && "TextEvent" in window && !Sa, + xa = X && (!wa || Sa && 8 < Sa && 11 >= Sa), + Ca = String.fromCharCode(32), + Aa = { + beforeInput: { + phasedRegistrationNames: { + bubbled: "onBeforeInput", + captured: "onBeforeInputCapture" }, - mouseLeave: { - registrationName: "onMouseLeave", - dependencies: ["mouseout", "mouseover"] + dependencies: ["compositionend", "keypress", "textInput", "paste"] + }, + compositionEnd: { + phasedRegistrationNames: { + bubbled: "onCompositionEnd", + captured: "onCompositionEndCapture" }, - pointerEnter: { - registrationName: "onPointerEnter", - dependencies: ["pointerout", "pointerover"] + dependencies: "blur compositionend keydown keypress keyup mousedown".split(" ") + }, + compositionStart: { + phasedRegistrationNames: { + bubbled: "onCompositionStart", + captured: "onCompositionStartCapture" }, - pointerLeave: { - registrationName: "onPointerLeave", - dependencies: ["pointerout", "pointerover"] - } - }, - Qa = { - eventTypes: Za, - extractEvents: function(e, t, n, a, r) { - var i = "mouseover" === e || "pointerover" === e, - o = "mouseout" === e || "pointerout" === e; - if (i && 0 == (32 & r) && (n.relatedTarget || n.fromElement) || !o && !i) return null; - if (r = a.window === a ? a : (r = a.ownerDocument) ? r.defaultView || r.parentWindow : window, o ? (o = t, null !== (t = (t = n.relatedTarget || n.toElement) ? da(t) : null) && (t !== (i = tt(t)) || 5 !== t.tag && 6 !== t.tag) && (t = null)) : o = null, o === t) return null; - if ("mouseout" === e || "mouseover" === e) var s = tn, - l = Za.mouseLeave, - c = Za.mouseEnter, - u = "mouse"; - else "pointerout" !== e && "pointerover" !== e || (s = nn, l = Za.pointerLeave, c = Za.pointerEnter, u = "pointer"); - if (e = null == o ? r : ha(o), r = null == t ? r : ha(t), (l = s.getPooled(l, o, n, a)).type = u + "leave", l.target = e, l.relatedTarget = r, (a = s.getPooled(c, t, n, a)).type = u + "enter", a.target = r, a.relatedTarget = e, u = t, (s = o) && u) e: { - for (e = u, o = 0, t = c = s; t; t = jt(t)) o++; - for (t = 0, r = e; r; r = jt(r)) t++; - for (; 0 < o - t;) c = jt(c), - o--; - for (; 0 < t - o;) e = jt(e), - t--; - for (; o--;) { - if (c === e || c === e.alternate) break e; - c = jt(c), e = jt(e) - } - c = null - } - else c = null; - for (e = c, c = []; s && s !== e && (null === (o = s.alternate) || o !== e);) c.push(s), s = jt(s); - for (s = []; u && u !== e && (null === (o = u.alternate) || o !== e);) s.push(u), u = jt(u); - for (u = 0; u < c.length; u++) Tt(c[u], "bubbled", l); - for (u = s.length; 0 < u--;) Tt(s[u], "captured", a); - return n === $a ? ($a = null, [l]) : ($a = n, [l, a]) - } - }, - Xa = "function" == typeof Object.is ? Object.is : function(e, t) { - return e === t && (0 !== e || 1 / e == 1 / t) || e != e && t != t - }, - er = Object.prototype.hasOwnProperty; - - function tr(e, t) { - if (Xa(e, t)) return !0; - if ("object" != typeof e || null === e || "object" != typeof t || null === t) return !1; - var n = Object.keys(e), - a = Object.keys(t); - if (n.length !== a.length) return !1; - for (a = 0; a < n.length; a++) - if (!er.call(t, n[a]) || !Xa(e[n[a]], t[n[a]])) return !1; - return !0 - } - var nr = X && "documentMode" in document && 11 >= document.documentMode, - ar = { - select: { - phasedRegistrationNames: { - bubbled: "onSelect", - captured: "onSelectCapture" - }, - dependencies: "blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ") - } + dependencies: "blur compositionstart keydown keypress keyup mousedown".split(" ") }, - rr = null, - ir = null, - or = null, - sr = !1; + compositionUpdate: { + phasedRegistrationNames: { + bubbled: "onCompositionUpdate", + captured: "onCompositionUpdateCapture" + }, + dependencies: "blur compositionupdate keydown keypress keyup mousedown".split(" ") + } + }, + Ta = !1; + + function Da(e, t) { + switch (e) { + case "keyup": + return -1 !== _a.indexOf(t.keyCode); + case "keydown": + return 229 !== t.keyCode; + case "keypress": + case "mousedown": + case "blur": + return !0; + default: + return !1 + } + } - function lr(e, t) { - var n = t.window === t ? t.document : 9 === t.nodeType ? t : t.ownerDocument; - return sr || null == rr || rr !== Wn(n) ? null : (n = "selectionStart" in (n = rr) && Jn(n) ? { - start: n.selectionStart, - end: n.selectionEnd - } : { - anchorNode: (n = (n.ownerDocument && n.ownerDocument.defaultView || window).getSelection()).anchorNode, - anchorOffset: n.anchorOffset, - focusNode: n.focusNode, - focusOffset: n.focusOffset - }, or && tr(or, n) ? null : (or = n, (e = zt.getPooled(ar.select, ir, e, t)).type = "select", e.target = rr, Mt(e), e)) - } - var cr = { - eventTypes: ar, + function Pa(e) { + return "object" == typeof(e = e.detail) && "data" in e ? e.data : null + } + var ja = !1, + Ma = { + eventTypes: Aa, extractEvents: function(e, t, n, a) { - var r, i = a.window === a ? a.document : 9 === a.nodeType ? a : a.ownerDocument; - if (!(r = !i)) { - e: { - i = In(i), - r = m.onSelect; - for (var o = 0; o < r.length; o++) - if (!i.has(r[o])) { - i = !1; - break e - } i = !0 + var r; + if (wa) e: { + switch (e) { + case "compositionstart": + var i = Aa.compositionStart; + break e; + case "compositionend": + i = Aa.compositionEnd; + break e; + case "compositionupdate": + i = Aa.compositionUpdate; + break e } - r = !i - } - if (r) return null; - switch (i = t ? ha(t) : window, e) { - case "focus": - (Ia(i) || "true" === i.contentEditable) && (rr = i, ir = t, or = null); - break; - case "blur": - or = ir = rr = null; - break; - case "mousedown": - sr = !0; - break; - case "contextmenu": - case "mouseup": - case "dragend": - return sr = !1, lr(n, a); - case "selectionchange": - if (nr) break; - case "keydown": - case "keyup": - return lr(n, a) + i = void 0 } - return null - } + else ja ? Da(e, n) && (i = Aa.compositionEnd) : "keydown" === e && 229 === n.keyCode && (i = Aa.compositionStart); + return i ? (xa && "ko" !== n.locale && (ja || i !== Aa.compositionStart ? i === Aa.compositionEnd && ja && (r = ya()) : (ga = "value" in (fa = a) ? fa.value : fa.textContent, ja = !0)), i = va.getPooled(i, t, n, a), (r || null !== (r = Pa(n))) && (i.data = r), It(i), r = i) : r = null, (e = Ea ? function(e, t) { + switch (e) { + case "compositionend": + return Pa(t); + case "keypress": + return 32 !== t.which ? null : (Ta = !0, Ca); + case "textInput": + return (e = t.data) === Ca && Ta ? null : e; + default: + return null + } + }(e, n) : function(e, t) { + if (ja) return "compositionend" === e || !wa && Da(e, t) ? (e = ya(), ba = ga = fa = null, ja = !1, e) : null; + switch (e) { + default: + return null; + case "keypress": + if (!(t.ctrlKey || t.altKey || t.metaKey) || t.ctrlKey && t.altKey) { + if (t.char && 1 < t.char.length) return t.char; + if (t.which) return String.fromCharCode(t.which) + } + return null; + case "compositionend": + return xa && "ko" !== t.locale ? null : t.data + } + }(e, n)) ? ((t = ka.getPooled(Aa.beforeInput, t, n, a)).data = e, It(t)) : t = null, null === r ? t : null === t ? r : [r, t] + } + }, + Ia = { + color: !0, + date: !0, + datetime: !0, + "datetime-local": !0, + email: !0, + month: !0, + number: !0, + password: !0, + range: !0, + search: !0, + tel: !0, + text: !0, + time: !0, + url: !0, + week: !0 }; - T.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")), w = ma, S = pa, E = ha, T.injectEventPluginsByName({ - SimpleEventPlugin: yn, - EnterLeaveEventPlugin: Qa, - ChangeEventPlugin: Ja, - SelectEventPlugin: cr, - BeforeInputEventPlugin: Oa - }), new Set; - var ur = [], - dr = -1; - function pr(e) { - 0 > dr || (e.current = ur[dr], ur[dr] = null, dr--) + function Oa(e) { + var t = e && e.nodeName && e.nodeName.toLowerCase(); + return "input" === t ? !!Ia[e.type] : "textarea" === t + } + var Na = { + change: { + phasedRegistrationNames: { + bubbled: "onChange", + captured: "onChangeCapture" + }, + dependencies: "blur change click focus input keydown keyup selectionchange".split(" ") } + }; - function hr(e, t) { - dr++, ur[dr] = e.current, e.current = t - } - var mr = {}, - fr = { - current: mr - }, - gr = { - current: !1 - }, - br = mr; + function Ra(e, t, n) { + return (e = Rt.getPooled(Na.change, e, t, n)).type = "change", re(n), It(e), e + } + var za = null, + La = null; - function yr(e, t) { - var n = e.type.contextTypes; - if (!n) return mr; - var a = e.stateNode; - if (a && a.__reactInternalMemoizedUnmaskedChildContext === t) return a.__reactInternalMemoizedMaskedChildContext; - var r, i = {}; - for (r in n) i[r] = t[r]; - return a && ((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = t, e.__reactInternalMemoizedMaskedChildContext = i), i - } + function Fa(e) { + P(e) + } - function vr(e) { - return null != e.childContextTypes - } + function qa(e) { + if (xe(ha(e))) return e + } - function kr(e) { - pr(gr), pr(fr) - } + function Ba(e, t) { + if ("change" === e) return t + } + var Ua = !1; - function _r(e) { - pr(gr), pr(fr) - } + function Ha() { + za && (za.detachEvent("onpropertychange", Va), La = za = null) + } - function wr(e, t, n) { - if (fr.current !== mr) throw Error(o(168)); - hr(fr, t), hr(gr, n) - } + function Va(e) { + if ("value" === e.propertyName && qa(La)) + if (e = Ra(La, e, At(e)), ue) P(e); + else { + ue = !0; + try { + oe(Fa, e) + } finally { + ue = !1, pe() + } + } + } - function Sr(e, t, n) { - var a = e.stateNode; - if (e = t.childContextTypes, "function" != typeof a.getChildContext) return n; - for (var i in a = a.getChildContext()) - if (!(i in e)) throw Error(o(108, Z(t) || "Unknown", i)); - return r({}, n, {}, a) - } + function Wa(e, t, n) { + "focus" === e ? (Ha(), La = n, (za = t).attachEvent("onpropertychange", Va)) : "blur" === e && Ha() + } - function Er(e) { - var t = e.stateNode; - return t = t && t.__reactInternalMemoizedMergedChildContext || mr, br = fr.current, hr(fr, t), hr(gr, gr.current), !0 - } + function Ya(e) { + if ("selectionchange" === e || "keyup" === e || "keydown" === e) return qa(La) + } - function xr(e, t, n) { - var a = e.stateNode; - if (!a) throw Error(o(169)); - n ? (t = Sr(e, t, br), a.__reactInternalMemoizedMergedChildContext = t, pr(gr), pr(fr), hr(fr, t)) : pr(gr), hr(gr, n) - } - var Cr = i.unstable_runWithPriority, - Ar = i.unstable_scheduleCallback, - jr = i.unstable_cancelCallback, - Pr = i.unstable_shouldYield, - Dr = i.unstable_requestPaint, - Tr = i.unstable_now, - Or = i.unstable_getCurrentPriorityLevel, - Mr = i.unstable_ImmediatePriority, - Ir = i.unstable_UserBlockingPriority, - Nr = i.unstable_NormalPriority, - zr = i.unstable_LowPriority, - Rr = i.unstable_IdlePriority, - Lr = {}, - Fr = void 0 !== Dr ? Dr : function() {}, - qr = null, - Br = null, - Ur = !1, - Hr = Tr(), - Vr = 1e4 > Hr ? Tr : function() { - return Tr() - Hr - }; + function Ga(e, t) { + if ("click" === e) return qa(t) + } - function Wr() { - switch (Or()) { - case Mr: - return 99; - case Ir: - return 98; - case Nr: - return 97; - case zr: - return 96; - case Rr: - return 95; - default: - throw Error(o(332)) + function Ka(e, t) { + if ("input" === e || "change" === e) return qa(t) + } + X && (Ua = Mn("input") && (!document.documentMode || 9 < document.documentMode)); + var $a, Ja = { + eventTypes: Na, + _isInputEventSupported: Ua, + extractEvents: function(e, t, n, a) { + var r = t ? ha(t) : window, + i = r.nodeName && r.nodeName.toLowerCase(); + if ("select" === i || "input" === i && "file" === r.type) var o = Ba; + else if (Oa(r)) + if (Ua) o = Ka; + else { + o = Ya; + var s = Wa + } + else(i = r.nodeName) && "input" === i.toLowerCase() && ("checkbox" === r.type || "radio" === r.type) && (o = Ga); + if (o && (o = o(e, t))) return Ra(o, n, a); + s && s(e, r, t), "blur" === e && (e = r._wrapperState) && e.controlled && "number" === r.type && je(r, "number", r.value) + } + }, + Za = { + mouseEnter: { + registrationName: "onMouseEnter", + dependencies: ["mouseout", "mouseover"] + }, + mouseLeave: { + registrationName: "onMouseLeave", + dependencies: ["mouseout", "mouseover"] + }, + pointerEnter: { + registrationName: "onPointerEnter", + dependencies: ["pointerout", "pointerover"] + }, + pointerLeave: { + registrationName: "onPointerLeave", + dependencies: ["pointerout", "pointerover"] + } + }, + Qa = { + eventTypes: Za, + extractEvents: function(e, t, n, a, r) { + var i = "mouseover" === e || "pointerover" === e, + o = "mouseout" === e || "pointerout" === e; + if (i && 0 == (32 & r) && (n.relatedTarget || n.fromElement) || !o && !i) return null; + if (r = a.window === a ? a : (r = a.ownerDocument) ? r.defaultView || r.parentWindow : window, o ? (o = t, null !== (t = (t = n.relatedTarget || n.toElement) ? da(t) : null) && (t !== (i = tt(t)) || 5 !== t.tag && 6 !== t.tag) && (t = null)) : o = null, o === t) return null; + if ("mouseout" === e || "mouseover" === e) var s = tn, + l = Za.mouseLeave, + c = Za.mouseEnter, + u = "mouse"; + else "pointerout" !== e && "pointerover" !== e || (s = nn, l = Za.pointerLeave, c = Za.pointerEnter, u = "pointer"); + if (e = null == o ? r : ha(o), r = null == t ? r : ha(t), (l = s.getPooled(l, o, n, a)).type = u + "leave", l.target = e, l.relatedTarget = r, (a = s.getPooled(c, t, n, a)).type = u + "enter", a.target = r, a.relatedTarget = e, u = t, (s = o) && u) e: { + for (e = u, o = 0, t = c = s; t; t = Tt(t)) o++; + for (t = 0, r = e; r; r = Tt(r)) t++; + for (; 0 < o - t;) c = Tt(c), + o--; + for (; 0 < t - o;) e = Tt(e), + t--; + for (; o--;) { + if (c === e || c === e.alternate) break e; + c = Tt(c), e = Tt(e) + } + c = null + } + else c = null; + for (e = c, c = []; s && s !== e && (null === (o = s.alternate) || o !== e);) c.push(s), s = Tt(s); + for (s = []; u && u !== e && (null === (o = u.alternate) || o !== e);) s.push(u), u = Tt(u); + for (u = 0; u < c.length; u++) jt(c[u], "bubbled", l); + for (u = s.length; 0 < u--;) jt(s[u], "captured", a); + return n === $a ? ($a = null, [l]) : ($a = n, [l, a]) + } + }, + Xa = "function" == typeof Object.is ? Object.is : function(e, t) { + return e === t && (0 !== e || 1 / e == 1 / t) || e != e && t != t + }, + er = Object.prototype.hasOwnProperty; + + function tr(e, t) { + if (Xa(e, t)) return !0; + if ("object" != typeof e || null === e || "object" != typeof t || null === t) return !1; + var n = Object.keys(e), + a = Object.keys(t); + if (n.length !== a.length) return !1; + for (a = 0; a < n.length; a++) + if (!er.call(t, n[a]) || !Xa(e[n[a]], t[n[a]])) return !1; + return !0 + } + var nr = X && "documentMode" in document && 11 >= document.documentMode, + ar = { + select: { + phasedRegistrationNames: { + bubbled: "onSelect", + captured: "onSelectCapture" + }, + dependencies: "blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange".split(" ") + } + }, + rr = null, + ir = null, + or = null, + sr = !1; + + function lr(e, t) { + var n = t.window === t ? t.document : 9 === t.nodeType ? t : t.ownerDocument; + return sr || null == rr || rr !== Wn(n) ? null : (n = "selectionStart" in (n = rr) && Jn(n) ? { + start: n.selectionStart, + end: n.selectionEnd + } : { + anchorNode: (n = (n.ownerDocument && n.ownerDocument.defaultView || window).getSelection()).anchorNode, + anchorOffset: n.anchorOffset, + focusNode: n.focusNode, + focusOffset: n.focusOffset + }, or && tr(or, n) ? null : (or = n, (e = Rt.getPooled(ar.select, ir, e, t)).type = "select", e.target = rr, It(e), e)) + } + var cr = { + eventTypes: ar, + extractEvents: function(e, t, n, a) { + var r, i = a.window === a ? a.document : 9 === a.nodeType ? a : a.ownerDocument; + if (!(r = !i)) { + e: { + i = On(i), + r = m.onSelect; + for (var o = 0; o < r.length; o++) + if (!i.has(r[o])) { + i = !1; + break e + } i = !0 + } + r = !i } - } - - function Yr(e) { - switch (e) { - case 99: - return Mr; - case 98: - return Ir; - case 97: - return Nr; - case 96: - return zr; - case 95: - return Rr; - default: - throw Error(o(332)) + if (r) return null; + switch (i = t ? ha(t) : window, e) { + case "focus": + (Oa(i) || "true" === i.contentEditable) && (rr = i, ir = t, or = null); + break; + case "blur": + or = ir = rr = null; + break; + case "mousedown": + sr = !0; + break; + case "contextmenu": + case "mouseup": + case "dragend": + return sr = !1, lr(n, a); + case "selectionchange": + if (nr) break; + case "keydown": + case "keyup": + return lr(n, a) } + return null } + }; + j.injectEventPluginOrder("ResponderEventPlugin SimpleEventPlugin EnterLeaveEventPlugin ChangeEventPlugin SelectEventPlugin BeforeInputEventPlugin".split(" ")), w = ma, S = pa, E = ha, j.injectEventPluginsByName({ + SimpleEventPlugin: yn, + EnterLeaveEventPlugin: Qa, + ChangeEventPlugin: Ja, + SelectEventPlugin: cr, + BeforeInputEventPlugin: Ma + }), new Set; + var ur = [], + dr = -1; + + function pr(e) { + 0 > dr || (e.current = ur[dr], ur[dr] = null, dr--) + } - function Gr(e, t) { - return e = Yr(e), Cr(e, t) - } + function hr(e, t) { + dr++, ur[dr] = e.current, e.current = t + } + var mr = {}, + fr = { + current: mr + }, + gr = { + current: !1 + }, + br = mr; + + function yr(e, t) { + var n = e.type.contextTypes; + if (!n) return mr; + var a = e.stateNode; + if (a && a.__reactInternalMemoizedUnmaskedChildContext === t) return a.__reactInternalMemoizedMaskedChildContext; + var r, i = {}; + for (r in n) i[r] = t[r]; + return a && ((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = t, e.__reactInternalMemoizedMaskedChildContext = i), i + } + + function vr(e) { + return null != e.childContextTypes + } + + function kr(e) { + pr(gr), pr(fr) + } + + function _r(e) { + pr(gr), pr(fr) + } - function Kr(e, t, n) { - return e = Yr(e), Ar(e, t, n) + function wr(e, t, n) { + if (fr.current !== mr) throw Error(o(168)); + hr(fr, t), hr(gr, n) + } + + function Sr(e, t, n) { + var a = e.stateNode; + if (e = t.childContextTypes, "function" != typeof a.getChildContext) return n; + for (var i in a = a.getChildContext()) + if (!(i in e)) throw Error(o(108, Z(t) || "Unknown", i)); + return r({}, n, {}, a) + } + + function Er(e) { + var t = e.stateNode; + return t = t && t.__reactInternalMemoizedMergedChildContext || mr, br = fr.current, hr(fr, t), hr(gr, gr.current), !0 + } + + function xr(e, t, n) { + var a = e.stateNode; + if (!a) throw Error(o(169)); + n ? (t = Sr(e, t, br), a.__reactInternalMemoizedMergedChildContext = t, pr(gr), pr(fr), hr(fr, t)) : pr(gr), hr(gr, n) + } + var Cr = i.unstable_runWithPriority, + Ar = i.unstable_scheduleCallback, + Tr = i.unstable_cancelCallback, + Dr = i.unstable_shouldYield, + Pr = i.unstable_requestPaint, + jr = i.unstable_now, + Mr = i.unstable_getCurrentPriorityLevel, + Ir = i.unstable_ImmediatePriority, + Or = i.unstable_UserBlockingPriority, + Nr = i.unstable_NormalPriority, + Rr = i.unstable_LowPriority, + zr = i.unstable_IdlePriority, + Lr = {}, + Fr = void 0 !== Pr ? Pr : function() {}, + qr = null, + Br = null, + Ur = !1, + Hr = jr(), + Vr = 1e4 > Hr ? jr : function() { + return jr() - Hr + }; + + function Wr() { + switch (Mr()) { + case Ir: + return 99; + case Or: + return 98; + case Nr: + return 97; + case Rr: + return 96; + case zr: + return 95; + default: + throw Error(o(332)) } + } - function $r(e) { - return null === qr ? (qr = [e], Br = Ar(Mr, Zr)) : qr.push(e), Lr + function Yr(e) { + switch (e) { + case 99: + return Ir; + case 98: + return Or; + case 97: + return Nr; + case 96: + return Rr; + case 95: + return zr; + default: + throw Error(o(332)) } + } - function Jr() { - if (null !== Br) { - var e = Br; - Br = null, jr(e) - } - Zr() + function Gr(e, t) { + return e = Yr(e), Cr(e, t) + } + + function Kr(e, t, n) { + return e = Yr(e), Ar(e, t, n) + } + + function $r(e) { + return null === qr ? (qr = [e], Br = Ar(Ir, Zr)) : qr.push(e), Lr + } + + function Jr() { + if (null !== Br) { + var e = Br; + Br = null, Tr(e) } + Zr() + } - function Zr() { - if (!Ur && null !== qr) { - Ur = !0; - var e = 0; - try { - var t = qr; - Gr(99, (function() { - for (; e < t.length; e++) { - var n = t[e]; - do { - n = n(!0) - } while (null !== n) - } - })), qr = null - } catch (t) { - throw null !== qr && (qr = qr.slice(e + 1)), Ar(Mr, Jr), t - } finally { - Ur = !1 - } + function Zr() { + if (!Ur && null !== qr) { + Ur = !0; + var e = 0; + try { + var t = qr; + Gr(99, (function() { + for (; e < t.length; e++) { + var n = t[e]; + do { + n = n(!0) + } while (null !== n) + } + })), qr = null + } catch (t) { + throw null !== qr && (qr = qr.slice(e + 1)), Ar(Ir, Jr), t + } finally { + Ur = !1 } } - var Qr = 3; + } + var Qr = 3; - function Xr(e, t, n) { - return 1073741821 - (1 + ((1073741821 - e + t / 10) / (n /= 10) | 0)) * n - } + function Xr(e, t, n) { + return 1073741821 - (1 + ((1073741821 - e + t / 10) / (n /= 10) | 0)) * n + } - function ei(e, t) { - if (e && e.defaultProps) - for (var n in t = r({}, t), e = e.defaultProps) void 0 === t[n] && (t[n] = e[n]); - return t - } - var ti = { - current: null - }, - ni = null, - ai = null, - ri = null; + function ei(e, t) { + if (e && e.defaultProps) + for (var n in t = r({}, t), e = e.defaultProps) void 0 === t[n] && (t[n] = e[n]); + return t + } + var ti = { + current: null + }, + ni = null, + ai = null, + ri = null; - function ii() { - ri = ai = ni = null - } + function ii() { + ri = ai = ni = null + } - function oi(e, t) { - var n = e.type._context; - hr(ti, n._currentValue), n._currentValue = t - } + function oi(e, t) { + var n = e.type._context; + hr(ti, n._currentValue), n._currentValue = t + } - function si(e) { - var t = ti.current; - pr(ti), e.type._context._currentValue = t - } + function si(e) { + var t = ti.current; + pr(ti), e.type._context._currentValue = t + } - function li(e, t) { - for (; null !== e;) { - var n = e.alternate; - if (e.childExpirationTime < t) e.childExpirationTime = t, null !== n && n.childExpirationTime < t && (n.childExpirationTime = t); - else { - if (!(null !== n && n.childExpirationTime < t)) break; - n.childExpirationTime = t - } - e = e.return + function li(e, t) { + for (; null !== e;) { + var n = e.alternate; + if (e.childExpirationTime < t) e.childExpirationTime = t, null !== n && n.childExpirationTime < t && (n.childExpirationTime = t); + else { + if (!(null !== n && n.childExpirationTime < t)) break; + n.childExpirationTime = t } + e = e.return } + } + + function ci(e, t) { + ni = e, ri = ai = null, null !== (e = e.dependencies) && null !== e.firstContext && (e.expirationTime >= t && (Vo = !0), e.firstContext = null) + } - function ci(e, t) { - ni = e, ri = ai = null, null !== (e = e.dependencies) && null !== e.firstContext && (e.expirationTime >= t && (Vo = !0), e.firstContext = null) + function ui(e, t) { + if (ri !== e && !1 !== t && 0 !== t) + if ("number" == typeof t && 1073741823 !== t || (ri = e, t = 1073741823), t = { + context: e, + observedBits: t, + next: null + }, null === ai) { + if (null === ni) throw Error(o(308)); + ai = t, ni.dependencies = { + expirationTime: 0, + firstContext: t, + responders: null + } + } else ai = ai.next = t; + return e._currentValue + } + var di = !1; + + function pi(e) { + return { + baseState: e, + firstUpdate: null, + lastUpdate: null, + firstCapturedUpdate: null, + lastCapturedUpdate: null, + firstEffect: null, + lastEffect: null, + firstCapturedEffect: null, + lastCapturedEffect: null } + } - function ui(e, t) { - if (ri !== e && !1 !== t && 0 !== t) - if ("number" == typeof t && 1073741823 !== t || (ri = e, t = 1073741823), t = { - context: e, - observedBits: t, - next: null - }, null === ai) { - if (null === ni) throw Error(o(308)); - ai = t, ni.dependencies = { - expirationTime: 0, - firstContext: t, - responders: null - } - } else ai = ai.next = t; - return e._currentValue + function hi(e) { + return { + baseState: e.baseState, + firstUpdate: e.firstUpdate, + lastUpdate: e.lastUpdate, + firstCapturedUpdate: null, + lastCapturedUpdate: null, + firstEffect: null, + lastEffect: null, + firstCapturedEffect: null, + lastCapturedEffect: null } - var di = !1; + } - function pi(e) { - return { - baseState: e, - firstUpdate: null, - lastUpdate: null, - firstCapturedUpdate: null, - lastCapturedUpdate: null, - firstEffect: null, - lastEffect: null, - firstCapturedEffect: null, - lastCapturedEffect: null - } + function mi(e, t) { + return { + expirationTime: e, + suspenseConfig: t, + tag: 0, + payload: null, + callback: null, + next: null, + nextEffect: null } + } - function hi(e) { - return { - baseState: e.baseState, - firstUpdate: e.firstUpdate, - lastUpdate: e.lastUpdate, - firstCapturedUpdate: null, - lastCapturedUpdate: null, - firstEffect: null, - lastEffect: null, - firstCapturedEffect: null, - lastCapturedEffect: null - } + function fi(e, t) { + null === e.lastUpdate ? e.firstUpdate = e.lastUpdate = t : (e.lastUpdate.next = t, e.lastUpdate = t) + } + + function gi(e, t) { + var n = e.alternate; + if (null === n) { + var a = e.updateQueue, + r = null; + null === a && (a = e.updateQueue = pi(e.memoizedState)) + } else a = e.updateQueue, r = n.updateQueue, null === a ? null === r ? (a = e.updateQueue = pi(e.memoizedState), r = n.updateQueue = pi(n.memoizedState)) : a = e.updateQueue = hi(r) : null === r && (r = n.updateQueue = hi(a)); + null === r || a === r ? fi(a, t) : null === a.lastUpdate || null === r.lastUpdate ? (fi(a, t), fi(r, t)) : (fi(a, t), r.lastUpdate = t) + } + + function bi(e, t) { + var n = e.updateQueue; + null === (n = null === n ? e.updateQueue = pi(e.memoizedState) : yi(e, n)).lastCapturedUpdate ? n.firstCapturedUpdate = n.lastCapturedUpdate = t : (n.lastCapturedUpdate.next = t, n.lastCapturedUpdate = t) + } + + function yi(e, t) { + var n = e.alternate; + return null !== n && t === n.updateQueue && (t = e.updateQueue = hi(t)), t + } + + function vi(e, t, n, a, i, o) { + switch (n.tag) { + case 1: + return "function" == typeof(e = n.payload) ? e.call(o, a, i) : e; + case 3: + e.effectTag = -4097 & e.effectTag | 64; + case 0: + if (null == (i = "function" == typeof(e = n.payload) ? e.call(o, a, i) : e)) break; + return r({}, a, i); + case 2: + di = !0 + } + return a + } + + function ki(e, t, n, a, r) { + di = !1; + for (var i = (t = yi(e, t)).baseState, o = null, s = 0, l = t.firstUpdate, c = i; null !== l;) { + var u = l.expirationTime; + u < r ? (null === o && (o = l, i = c), s < u && (s = u)) : (ml(u, l.suspenseConfig), c = vi(e, 0, l, c, n, a), null !== l.callback && (e.effectTag |= 32, l.nextEffect = null, null === t.lastEffect ? t.firstEffect = t.lastEffect = l : (t.lastEffect.nextEffect = l, t.lastEffect = l))), l = l.next } + for (u = null, l = t.firstCapturedUpdate; null !== l;) { + var d = l.expirationTime; + d < r ? (null === u && (u = l, null === o && (i = c)), s < d && (s = d)) : (c = vi(e, 0, l, c, n, a), null !== l.callback && (e.effectTag |= 32, l.nextEffect = null, null === t.lastCapturedEffect ? t.firstCapturedEffect = t.lastCapturedEffect = l : (t.lastCapturedEffect.nextEffect = l, t.lastCapturedEffect = l))), l = l.next + } + null === o && (t.lastUpdate = null), null === u ? t.lastCapturedUpdate = null : e.effectTag |= 32, null === o && null === u && (i = c), t.baseState = i, t.firstUpdate = o, t.firstCapturedUpdate = u, fl(s), e.expirationTime = s, e.memoizedState = c + } - function mi(e, t) { - return { - expirationTime: e, - suspenseConfig: t, - tag: 0, - payload: null, - callback: null, - next: null, - nextEffect: null + function _i(e, t, n) { + null !== t.firstCapturedUpdate && (null !== t.lastUpdate && (t.lastUpdate.next = t.firstCapturedUpdate, t.lastUpdate = t.lastCapturedUpdate), t.firstCapturedUpdate = t.lastCapturedUpdate = null), wi(t.firstEffect, n), t.firstEffect = t.lastEffect = null, wi(t.firstCapturedEffect, n), t.firstCapturedEffect = t.lastCapturedEffect = null + } + + function wi(e, t) { + for (; null !== e;) { + var n = e.callback; + if (null !== n) { + e.callback = null; + var a = t; + if ("function" != typeof n) throw Error(o(191, n)); + n.call(a) } + e = e.nextEffect } + } + var Si = I.ReactCurrentBatchConfig, + Ei = (new a.Component).refs; - function fi(e, t) { - null === e.lastUpdate ? e.firstUpdate = e.lastUpdate = t : (e.lastUpdate.next = t, e.lastUpdate = t) + function xi(e, t, n, a) { + n = null == (n = n(a, t = e.memoizedState)) ? t : r({}, t, n), e.memoizedState = n, null !== (a = e.updateQueue) && 0 === e.expirationTime && (a.baseState = n) + } + var Ci = { + isMounted: function(e) { + return !!(e = e._reactInternalFiber) && tt(e) === e + }, + enqueueSetState: function(e, t, n) { + e = e._reactInternalFiber; + var a = tl(), + r = Si.suspense; + (r = mi(a = nl(a, e, r), r)).payload = t, null != n && (r.callback = n), gi(e, r), al(e, a) + }, + enqueueReplaceState: function(e, t, n) { + e = e._reactInternalFiber; + var a = tl(), + r = Si.suspense; + (r = mi(a = nl(a, e, r), r)).tag = 1, r.payload = t, null != n && (r.callback = n), gi(e, r), al(e, a) + }, + enqueueForceUpdate: function(e, t) { + e = e._reactInternalFiber; + var n = tl(), + a = Si.suspense; + (a = mi(n = nl(n, e, a), a)).tag = 2, null != t && (a.callback = t), gi(e, a), al(e, n) } + }; - function gi(e, t) { - var n = e.alternate; - if (null === n) { - var a = e.updateQueue, - r = null; - null === a && (a = e.updateQueue = pi(e.memoizedState)) - } else a = e.updateQueue, r = n.updateQueue, null === a ? null === r ? (a = e.updateQueue = pi(e.memoizedState), r = n.updateQueue = pi(n.memoizedState)) : a = e.updateQueue = hi(r) : null === r && (r = n.updateQueue = hi(a)); - null === r || a === r ? fi(a, t) : null === a.lastUpdate || null === r.lastUpdate ? (fi(a, t), fi(r, t)) : (fi(a, t), r.lastUpdate = t) - } + function Ai(e, t, n, a, r, i, o) { + return "function" == typeof(e = e.stateNode).shouldComponentUpdate ? e.shouldComponentUpdate(a, i, o) : !(t.prototype && t.prototype.isPureReactComponent && tr(n, a) && tr(r, i)) + } - function bi(e, t) { - var n = e.updateQueue; - null === (n = null === n ? e.updateQueue = pi(e.memoizedState) : yi(e, n)).lastCapturedUpdate ? n.firstCapturedUpdate = n.lastCapturedUpdate = t : (n.lastCapturedUpdate.next = t, n.lastCapturedUpdate = t) - } + function Ti(e, t, n) { + var a = !1, + r = mr, + i = t.contextType; + return "object" == typeof i && null !== i ? i = ui(i) : (r = vr(t) ? br : fr.current, i = (a = null != (a = t.contextTypes)) ? yr(e, r) : mr), t = new t(n, i), e.memoizedState = null !== t.state && void 0 !== t.state ? t.state : null, t.updater = Ci, e.stateNode = t, t._reactInternalFiber = e, a && ((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = r, e.__reactInternalMemoizedMaskedChildContext = i), t + } - function yi(e, t) { - var n = e.alternate; - return null !== n && t === n.updateQueue && (t = e.updateQueue = hi(t)), t - } + function Di(e, t, n, a) { + e = t.state, "function" == typeof t.componentWillReceiveProps && t.componentWillReceiveProps(n, a), "function" == typeof t.UNSAFE_componentWillReceiveProps && t.UNSAFE_componentWillReceiveProps(n, a), t.state !== e && Ci.enqueueReplaceState(t, t.state, null) + } - function vi(e, t, n, a, i, o) { - switch (n.tag) { - case 1: - return "function" == typeof(e = n.payload) ? e.call(o, a, i) : e; - case 3: - e.effectTag = -4097 & e.effectTag | 64; - case 0: - if (null == (i = "function" == typeof(e = n.payload) ? e.call(o, a, i) : e)) break; - return r({}, a, i); - case 2: - di = !0 - } - return a - } + function Pi(e, t, n, a) { + var r = e.stateNode; + r.props = n, r.state = e.memoizedState, r.refs = Ei; + var i = t.contextType; + "object" == typeof i && null !== i ? r.context = ui(i) : (i = vr(t) ? br : fr.current, r.context = yr(e, i)), null !== (i = e.updateQueue) && (ki(e, i, n, r, a), r.state = e.memoizedState), "function" == typeof(i = t.getDerivedStateFromProps) && (xi(e, t, i, n), r.state = e.memoizedState), "function" == typeof t.getDerivedStateFromProps || "function" == typeof r.getSnapshotBeforeUpdate || "function" != typeof r.UNSAFE_componentWillMount && "function" != typeof r.componentWillMount || (t = r.state, "function" == typeof r.componentWillMount && r.componentWillMount(), "function" == typeof r.UNSAFE_componentWillMount && r.UNSAFE_componentWillMount(), t !== r.state && Ci.enqueueReplaceState(r, r.state, null), null !== (i = e.updateQueue) && (ki(e, i, n, r, a), r.state = e.memoizedState)), "function" == typeof r.componentDidMount && (e.effectTag |= 4) + } + var ji = Array.isArray; + + function Mi(e, t, n) { + if (null !== (e = n.ref) && "function" != typeof e && "object" != typeof e) { + if (n._owner) { + if (n = n._owner) { + if (1 !== n.tag) throw Error(o(309)); + var a = n.stateNode + } + if (!a) throw Error(o(147, e)); + var r = "" + e; + return null !== t && null !== t.ref && "function" == typeof t.ref && t.ref._stringRef === r ? t.ref : (t = function(e) { + var t = a.refs; + t === Ei && (t = a.refs = {}), null === e ? delete t[r] : t[r] = e + }, t._stringRef = r, t) + } + if ("string" != typeof e) throw Error(o(284)); + if (!n._owner) throw Error(o(290, e)) + } + return e + } - function ki(e, t, n, a, r) { - di = !1; - for (var i = (t = yi(e, t)).baseState, o = null, s = 0, l = t.firstUpdate, c = i; null !== l;) { - var u = l.expirationTime; - u < r ? (null === o && (o = l, i = c), s < u && (s = u)) : (ml(u, l.suspenseConfig), c = vi(e, 0, l, c, n, a), null !== l.callback && (e.effectTag |= 32, l.nextEffect = null, null === t.lastEffect ? t.firstEffect = t.lastEffect = l : (t.lastEffect.nextEffect = l, t.lastEffect = l))), l = l.next - } - for (u = null, l = t.firstCapturedUpdate; null !== l;) { - var d = l.expirationTime; - d < r ? (null === u && (u = l, null === o && (i = c)), s < d && (s = d)) : (c = vi(e, 0, l, c, n, a), null !== l.callback && (e.effectTag |= 32, l.nextEffect = null, null === t.lastCapturedEffect ? t.firstCapturedEffect = t.lastCapturedEffect = l : (t.lastCapturedEffect.nextEffect = l, t.lastCapturedEffect = l))), l = l.next + function Ii(e, t) { + if ("textarea" !== e.type) throw Error(o(31, "[object Object]" === Object.prototype.toString.call(t) ? "object with keys {" + Object.keys(t).join(", ") + "}" : t, "")) + } + + function Oi(e) { + function t(t, n) { + if (e) { + var a = t.lastEffect; + null !== a ? (a.nextEffect = n, t.lastEffect = n) : t.firstEffect = t.lastEffect = n, n.nextEffect = null, n.effectTag = 8 } - null === o && (t.lastUpdate = null), null === u ? t.lastCapturedUpdate = null : e.effectTag |= 32, null === o && null === u && (i = c), t.baseState = i, t.firstUpdate = o, t.firstCapturedUpdate = u, fl(s), e.expirationTime = s, e.memoizedState = c } - function _i(e, t, n) { - null !== t.firstCapturedUpdate && (null !== t.lastUpdate && (t.lastUpdate.next = t.firstCapturedUpdate, t.lastUpdate = t.lastCapturedUpdate), t.firstCapturedUpdate = t.lastCapturedUpdate = null), wi(t.firstEffect, n), t.firstEffect = t.lastEffect = null, wi(t.firstCapturedEffect, n), t.firstCapturedEffect = t.lastCapturedEffect = null + function n(n, a) { + if (!e) return null; + for (; null !== a;) t(n, a), a = a.sibling; + return null } - function wi(e, t) { - for (; null !== e;) { - var n = e.callback; - if (null !== n) { - e.callback = null; - var a = t; - if ("function" != typeof n) throw Error(o(191, n)); - n.call(a) - } - e = e.nextEffect - } + function a(e, t) { + for (e = new Map; null !== t;) null !== t.key ? e.set(t.key, t) : e.set(t.index, t), t = t.sibling; + return e } - var Si = M.ReactCurrentBatchConfig, - Ei = (new a.Component).refs; - function xi(e, t, n, a) { - n = null == (n = n(a, t = e.memoizedState)) ? t : r({}, t, n), e.memoizedState = n, null !== (a = e.updateQueue) && 0 === e.expirationTime && (a.baseState = n) + function r(e, t, n) { + return (e = Nl(e, t)).index = 0, e.sibling = null, e } - var Ci = { - isMounted: function(e) { - return !!(e = e._reactInternalFiber) && tt(e) === e - }, - enqueueSetState: function(e, t, n) { - e = e._reactInternalFiber; - var a = tl(), - r = Si.suspense; - (r = mi(a = nl(a, e, r), r)).payload = t, null != n && (r.callback = n), gi(e, r), al(e, a) - }, - enqueueReplaceState: function(e, t, n) { - e = e._reactInternalFiber; - var a = tl(), - r = Si.suspense; - (r = mi(a = nl(a, e, r), r)).tag = 1, r.payload = t, null != n && (r.callback = n), gi(e, r), al(e, a) - }, - enqueueForceUpdate: function(e, t) { - e = e._reactInternalFiber; - var n = tl(), - a = Si.suspense; - (a = mi(n = nl(n, e, a), a)).tag = 2, null != t && (a.callback = t), gi(e, a), al(e, n) - } - }; - function Ai(e, t, n, a, r, i, o) { - return "function" == typeof(e = e.stateNode).shouldComponentUpdate ? e.shouldComponentUpdate(a, i, o) : !(t.prototype && t.prototype.isPureReactComponent && tr(n, a) && tr(r, i)) + function i(t, n, a) { + return t.index = a, e ? null !== (a = t.alternate) ? (a = a.index) < n ? (t.effectTag = 2, n) : a : (t.effectTag = 2, n) : n } - function ji(e, t, n) { - var a = !1, - r = mr, - i = t.contextType; - return "object" == typeof i && null !== i ? i = ui(i) : (r = vr(t) ? br : fr.current, i = (a = null != (a = t.contextTypes)) ? yr(e, r) : mr), t = new t(n, i), e.memoizedState = null !== t.state && void 0 !== t.state ? t.state : null, t.updater = Ci, e.stateNode = t, t._reactInternalFiber = e, a && ((e = e.stateNode).__reactInternalMemoizedUnmaskedChildContext = r, e.__reactInternalMemoizedMaskedChildContext = i), t + function s(t) { + return e && null === t.alternate && (t.effectTag = 2), t } - function Pi(e, t, n, a) { - e = t.state, "function" == typeof t.componentWillReceiveProps && t.componentWillReceiveProps(n, a), "function" == typeof t.UNSAFE_componentWillReceiveProps && t.UNSAFE_componentWillReceiveProps(n, a), t.state !== e && Ci.enqueueReplaceState(t, t.state, null) + function l(e, t, n, a) { + return null === t || 6 !== t.tag ? ((t = Ll(n, e.mode, a)).return = e, t) : ((t = r(t, n)).return = e, t) } - function Di(e, t, n, a) { - var r = e.stateNode; - r.props = n, r.state = e.memoizedState, r.refs = Ei; - var i = t.contextType; - "object" == typeof i && null !== i ? r.context = ui(i) : (i = vr(t) ? br : fr.current, r.context = yr(e, i)), null !== (i = e.updateQueue) && (ki(e, i, n, r, a), r.state = e.memoizedState), "function" == typeof(i = t.getDerivedStateFromProps) && (xi(e, t, i, n), r.state = e.memoizedState), "function" == typeof t.getDerivedStateFromProps || "function" == typeof r.getSnapshotBeforeUpdate || "function" != typeof r.UNSAFE_componentWillMount && "function" != typeof r.componentWillMount || (t = r.state, "function" == typeof r.componentWillMount && r.componentWillMount(), "function" == typeof r.UNSAFE_componentWillMount && r.UNSAFE_componentWillMount(), t !== r.state && Ci.enqueueReplaceState(r, r.state, null), null !== (i = e.updateQueue) && (ki(e, i, n, r, a), r.state = e.memoizedState)), "function" == typeof r.componentDidMount && (e.effectTag |= 4) + function c(e, t, n, a) { + return null !== t && t.elementType === n.type ? ((a = r(t, n.props)).ref = Mi(e, t, n), a.return = e, a) : ((a = Rl(n.type, n.key, n.props, null, e.mode, a)).ref = Mi(e, t, n), a.return = e, a) } - var Ti = Array.isArray; - function Oi(e, t, n) { - if (null !== (e = n.ref) && "function" != typeof e && "object" != typeof e) { - if (n._owner) { - if (n = n._owner) { - if (1 !== n.tag) throw Error(o(309)); - var a = n.stateNode - } - if (!a) throw Error(o(147, e)); - var r = "" + e; - return null !== t && null !== t.ref && "function" == typeof t.ref && t.ref._stringRef === r ? t.ref : (t = function(e) { - var t = a.refs; - t === Ei && (t = a.refs = {}), null === e ? delete t[r] : t[r] = e - }, t._stringRef = r, t) - } - if ("string" != typeof e) throw Error(o(284)); - if (!n._owner) throw Error(o(290, e)) - } - return e + function u(e, t, n, a) { + return null === t || 4 !== t.tag || t.stateNode.containerInfo !== n.containerInfo || t.stateNode.implementation !== n.implementation ? ((t = Fl(n, e.mode, a)).return = e, t) : ((t = r(t, n.children || [])).return = e, t) } - function Mi(e, t) { - if ("textarea" !== e.type) throw Error(o(31, "[object Object]" === Object.prototype.toString.call(t) ? "object with keys {" + Object.keys(t).join(", ") + "}" : t, "")) + function d(e, t, n, a, i) { + return null === t || 7 !== t.tag ? ((t = zl(n, e.mode, a, i)).return = e, t) : ((t = r(t, n)).return = e, t) } - function Ii(e) { - function t(t, n) { - if (e) { - var a = t.lastEffect; - null !== a ? (a.nextEffect = n, t.lastEffect = n) : t.firstEffect = t.lastEffect = n, n.nextEffect = null, n.effectTag = 8 + function p(e, t, n) { + if ("string" == typeof t || "number" == typeof t) return (t = Ll("" + t, e.mode, n)).return = e, t; + if ("object" == typeof t && null !== t) { + switch (t.$$typeof) { + case R: + return (n = Rl(t.type, t.key, t.props, null, e.mode, n)).ref = Mi(e, null, t), n.return = e, n; + case z: + return (t = Fl(t, e.mode, n)).return = e, t } + if (ji(t) || J(t)) return (t = zl(t, e.mode, n, null)).return = e, t; + Ii(e, t) } + return null + } - function n(n, a) { - if (!e) return null; - for (; null !== a;) t(n, a), a = a.sibling; - return null - } - - function a(e, t) { - for (e = new Map; null !== t;) null !== t.key ? e.set(t.key, t) : e.set(t.index, t), t = t.sibling; - return e - } - - function r(e, t, n) { - return (e = Nl(e, t)).index = 0, e.sibling = null, e - } - - function i(t, n, a) { - return t.index = a, e ? null !== (a = t.alternate) ? (a = a.index) < n ? (t.effectTag = 2, n) : a : (t.effectTag = 2, n) : n - } - - function s(t) { - return e && null === t.alternate && (t.effectTag = 2), t - } - - function l(e, t, n, a) { - return null === t || 6 !== t.tag ? ((t = Ll(n, e.mode, a)).return = e, t) : ((t = r(t, n)).return = e, t) - } - - function c(e, t, n, a) { - return null !== t && t.elementType === n.type ? ((a = r(t, n.props)).ref = Oi(e, t, n), a.return = e, a) : ((a = zl(n.type, n.key, n.props, null, e.mode, a)).ref = Oi(e, t, n), a.return = e, a) - } - - function u(e, t, n, a) { - return null === t || 4 !== t.tag || t.stateNode.containerInfo !== n.containerInfo || t.stateNode.implementation !== n.implementation ? ((t = Fl(n, e.mode, a)).return = e, t) : ((t = r(t, n.children || [])).return = e, t) - } - - function d(e, t, n, a, i) { - return null === t || 7 !== t.tag ? ((t = Rl(n, e.mode, a, i)).return = e, t) : ((t = r(t, n)).return = e, t) - } - - function p(e, t, n) { - if ("string" == typeof t || "number" == typeof t) return (t = Ll("" + t, e.mode, n)).return = e, t; - if ("object" == typeof t && null !== t) { - switch (t.$$typeof) { - case z: - return (n = zl(t.type, t.key, t.props, null, e.mode, n)).ref = Oi(e, null, t), n.return = e, n; - case R: - return (t = Fl(t, e.mode, n)).return = e, t - } - if (Ti(t) || J(t)) return (t = Rl(t, e.mode, n, null)).return = e, t; - Mi(e, t) + function h(e, t, n, a) { + var r = null !== t ? t.key : null; + if ("string" == typeof n || "number" == typeof n) return null !== r ? null : l(e, t, "" + n, a); + if ("object" == typeof n && null !== n) { + switch (n.$$typeof) { + case R: + return n.key === r ? n.type === L ? d(e, t, n.props.children, a, r) : c(e, t, n, a) : null; + case z: + return n.key === r ? u(e, t, n, a) : null } - return null + if (ji(n) || J(n)) return null !== r ? null : d(e, t, n, a, null); + Ii(e, n) } + return null + } - function h(e, t, n, a) { - var r = null !== t ? t.key : null; - if ("string" == typeof n || "number" == typeof n) return null !== r ? null : l(e, t, "" + n, a); - if ("object" == typeof n && null !== n) { - switch (n.$$typeof) { - case z: - return n.key === r ? n.type === L ? d(e, t, n.props.children, a, r) : c(e, t, n, a) : null; - case R: - return n.key === r ? u(e, t, n, a) : null - } - if (Ti(n) || J(n)) return null !== r ? null : d(e, t, n, a, null); - Mi(e, n) + function m(e, t, n, a, r) { + if ("string" == typeof a || "number" == typeof a) return l(t, e = e.get(n) || null, "" + a, r); + if ("object" == typeof a && null !== a) { + switch (a.$$typeof) { + case R: + return e = e.get(null === a.key ? n : a.key) || null, a.type === L ? d(t, e, a.props.children, r, a.key) : c(t, e, a, r); + case z: + return u(t, e = e.get(null === a.key ? n : a.key) || null, a, r) } - return null + if (ji(a) || J(a)) return d(t, e = e.get(n) || null, a, r, null); + Ii(t, a) } + return null + } - function m(e, t, n, a, r) { - if ("string" == typeof a || "number" == typeof a) return l(t, e = e.get(n) || null, "" + a, r); - if ("object" == typeof a && null !== a) { - switch (a.$$typeof) { - case z: - return e = e.get(null === a.key ? n : a.key) || null, a.type === L ? d(t, e, a.props.children, r, a.key) : c(t, e, a, r); - case R: - return u(t, e = e.get(null === a.key ? n : a.key) || null, a, r) - } - if (Ti(a) || J(a)) return d(t, e = e.get(n) || null, a, r, null); - Mi(t, a) + function f(r, o, s, l) { + for (var c = null, u = null, d = o, f = o = 0, g = null; null !== d && f < s.length; f++) { + d.index > f ? (g = d, d = null) : g = d.sibling; + var b = h(r, d, s[f], l); + if (null === b) { + null === d && (d = g); + break } - return null + e && d && null === b.alternate && t(r, d), o = i(b, o, f), null === u ? c = b : u.sibling = b, u = b, d = g } - - function f(r, o, s, l) { - for (var c = null, u = null, d = o, f = o = 0, g = null; null !== d && f < s.length; f++) { - d.index > f ? (g = d, d = null) : g = d.sibling; - var b = h(r, d, s[f], l); - if (null === b) { - null === d && (d = g); - break - } - e && d && null === b.alternate && t(r, d), o = i(b, o, f), null === u ? c = b : u.sibling = b, u = b, d = g - } - if (f === s.length) return n(r, d), c; - if (null === d) { - for (; f < s.length; f++) null !== (d = p(r, s[f], l)) && (o = i(d, o, f), null === u ? c = d : u.sibling = d, u = d); - return c - } - for (d = a(r, d); f < s.length; f++) null !== (g = m(d, r, f, s[f], l)) && (e && null !== g.alternate && d.delete(null === g.key ? f : g.key), o = i(g, o, f), null === u ? c = g : u.sibling = g, u = g); - return e && d.forEach((function(e) { - return t(r, e) - })), c - } - - function g(r, s, l, c) { - var u = J(l); - if ("function" != typeof u) throw Error(o(150)); - if (null == (l = u.call(l))) throw Error(o(151)); - for (var d = u = null, f = s, g = s = 0, b = null, y = l.next(); null !== f && !y.done; g++, y = l.next()) { - f.index > g ? (b = f, f = null) : b = f.sibling; - var v = h(r, f, y.value, c); - if (null === v) { - null === f && (f = b); - break - } - e && f && null === v.alternate && t(r, f), s = i(v, s, g), null === d ? u = v : d.sibling = v, d = v, f = b - } - if (y.done) return n(r, f), u; - if (null === f) { - for (; !y.done; g++, y = l.next()) null !== (y = p(r, y.value, c)) && (s = i(y, s, g), null === d ? u = y : d.sibling = y, d = y); - return u + if (f === s.length) return n(r, d), c; + if (null === d) { + for (; f < s.length; f++) null !== (d = p(r, s[f], l)) && (o = i(d, o, f), null === u ? c = d : u.sibling = d, u = d); + return c + } + for (d = a(r, d); f < s.length; f++) null !== (g = m(d, r, f, s[f], l)) && (e && null !== g.alternate && d.delete(null === g.key ? f : g.key), o = i(g, o, f), null === u ? c = g : u.sibling = g, u = g); + return e && d.forEach((function(e) { + return t(r, e) + })), c + } + + function g(r, s, l, c) { + var u = J(l); + if ("function" != typeof u) throw Error(o(150)); + if (null == (l = u.call(l))) throw Error(o(151)); + for (var d = u = null, f = s, g = s = 0, b = null, y = l.next(); null !== f && !y.done; g++, y = l.next()) { + f.index > g ? (b = f, f = null) : b = f.sibling; + var v = h(r, f, y.value, c); + if (null === v) { + null === f && (f = b); + break } - for (f = a(r, f); !y.done; g++, y = l.next()) null !== (y = m(f, r, g, y.value, c)) && (e && null !== y.alternate && f.delete(null === y.key ? g : y.key), s = i(y, s, g), null === d ? u = y : d.sibling = y, d = y); - return e && f.forEach((function(e) { - return t(r, e) - })), u + e && f && null === v.alternate && t(r, f), s = i(v, s, g), null === d ? u = v : d.sibling = v, d = v, f = b } - return function(e, a, i, l) { - var c = "object" == typeof i && null !== i && i.type === L && null === i.key; - c && (i = i.props.children); - var u = "object" == typeof i && null !== i; - if (u) switch (i.$$typeof) { - case z: - e: { - for (u = i.key, c = a; null !== c;) { - if (c.key === u) { - if (7 === c.tag ? i.type === L : c.elementType === i.type) { - n(e, c.sibling), (a = r(c, i.type === L ? i.props.children : i.props)).ref = Oi(e, c, i), a.return = e, e = a; - break e - } - n(e, c); - break + if (y.done) return n(r, f), u; + if (null === f) { + for (; !y.done; g++, y = l.next()) null !== (y = p(r, y.value, c)) && (s = i(y, s, g), null === d ? u = y : d.sibling = y, d = y); + return u + } + for (f = a(r, f); !y.done; g++, y = l.next()) null !== (y = m(f, r, g, y.value, c)) && (e && null !== y.alternate && f.delete(null === y.key ? g : y.key), s = i(y, s, g), null === d ? u = y : d.sibling = y, d = y); + return e && f.forEach((function(e) { + return t(r, e) + })), u + } + return function(e, a, i, l) { + var c = "object" == typeof i && null !== i && i.type === L && null === i.key; + c && (i = i.props.children); + var u = "object" == typeof i && null !== i; + if (u) switch (i.$$typeof) { + case R: + e: { + for (u = i.key, c = a; null !== c;) { + if (c.key === u) { + if (7 === c.tag ? i.type === L : c.elementType === i.type) { + n(e, c.sibling), (a = r(c, i.type === L ? i.props.children : i.props)).ref = Mi(e, c, i), a.return = e, e = a; + break e } - t(e, c), c = c.sibling + n(e, c); + break } - i.type === L ? ((a = Rl(i.props.children, e.mode, l, i.key)).return = e, e = a) : ((l = zl(i.type, i.key, i.props, null, e.mode, l)).ref = Oi(e, a, i), l.return = e, e = l) + t(e, c), c = c.sibling } - return s(e); - case R: - e: { - for (c = i.key; null !== a;) { - if (a.key === c) { - if (4 === a.tag && a.stateNode.containerInfo === i.containerInfo && a.stateNode.implementation === i.implementation) { - n(e, a.sibling), (a = r(a, i.children || [])).return = e, e = a; - break e - } - n(e, a); - break + i.type === L ? ((a = zl(i.props.children, e.mode, l, i.key)).return = e, e = a) : ((l = Rl(i.type, i.key, i.props, null, e.mode, l)).ref = Mi(e, a, i), l.return = e, e = l) + } + return s(e); + case z: + e: { + for (c = i.key; null !== a;) { + if (a.key === c) { + if (4 === a.tag && a.stateNode.containerInfo === i.containerInfo && a.stateNode.implementation === i.implementation) { + n(e, a.sibling), (a = r(a, i.children || [])).return = e, e = a; + break e } - t(e, a), a = a.sibling - }(a = Fl(i, e.mode, l)).return = e, - e = a - } - return s(e) - } - if ("string" == typeof i || "number" == typeof i) return i = "" + i, null !== a && 6 === a.tag ? (n(e, a.sibling), (a = r(a, i)).return = e, e = a) : (n(e, a), (a = Ll(i, e.mode, l)).return = e, e = a), s(e); - if (Ti(i)) return f(e, a, i, l); - if (J(i)) return g(e, a, i, l); - if (u && Mi(e, i), void 0 === i && !c) switch (e.tag) { - case 1: - case 0: - throw e = e.type, Error(o(152, e.displayName || e.name || "Component")) - } - return n(e, a) + n(e, a); + break + } + t(e, a), a = a.sibling + }(a = Fl(i, e.mode, l)).return = e, + e = a + } + return s(e) + } + if ("string" == typeof i || "number" == typeof i) return i = "" + i, null !== a && 6 === a.tag ? (n(e, a.sibling), (a = r(a, i)).return = e, e = a) : (n(e, a), (a = Ll(i, e.mode, l)).return = e, e = a), s(e); + if (ji(i)) return f(e, a, i, l); + if (J(i)) return g(e, a, i, l); + if (u && Ii(e, i), void 0 === i && !c) switch (e.tag) { + case 1: + case 0: + throw e = e.type, Error(o(152, e.displayName || e.name || "Component")) } + return n(e, a) } - var Ni = Ii(!0), - zi = Ii(!1), - Ri = {}, - Li = { - current: Ri - }, - Fi = { - current: Ri - }, - qi = { - current: Ri - }; + } + var Ni = Oi(!0), + Ri = Oi(!1), + zi = {}, + Li = { + current: zi + }, + Fi = { + current: zi + }, + qi = { + current: zi + }; - function Bi(e) { - if (e === Ri) throw Error(o(174)); - return e - } + function Bi(e) { + if (e === zi) throw Error(o(174)); + return e + } - function Ui(e, t) { - hr(qi, t), hr(Fi, e), hr(Li, Ri); - var n = t.nodeType; - switch (n) { - case 9: - case 11: - t = (t = t.documentElement) ? t.namespaceURI : qe(null, ""); - break; - default: - t = qe(t = (n = 8 === n ? t.parentNode : t).namespaceURI || null, n = n.tagName) - } - pr(Li), hr(Li, t) - } + function Ui(e, t) { + hr(qi, t), hr(Fi, e), hr(Li, zi); + var n = t.nodeType; + switch (n) { + case 9: + case 11: + t = (t = t.documentElement) ? t.namespaceURI : qe(null, ""); + break; + default: + t = qe(t = (n = 8 === n ? t.parentNode : t).namespaceURI || null, n = n.tagName) + } + pr(Li), hr(Li, t) + } - function Hi(e) { - pr(Li), pr(Fi), pr(qi) - } + function Hi(e) { + pr(Li), pr(Fi), pr(qi) + } - function Vi(e) { - Bi(qi.current); - var t = Bi(Li.current), - n = qe(t, e.type); - t !== n && (hr(Fi, e), hr(Li, n)) - } + function Vi(e) { + Bi(qi.current); + var t = Bi(Li.current), + n = qe(t, e.type); + t !== n && (hr(Fi, e), hr(Li, n)) + } - function Wi(e) { - Fi.current === e && (pr(Li), pr(Fi)) - } - var Yi = { - current: 0 - }; + function Wi(e) { + Fi.current === e && (pr(Li), pr(Fi)) + } + var Yi = { + current: 0 + }; - function Gi(e) { - for (var t = e; null !== t;) { - if (13 === t.tag) { - var n = t.memoizedState; - if (null !== n && (null === (n = n.dehydrated) || n.data === Zn || n.data === Qn)) return t - } else if (19 === t.tag && void 0 !== t.memoizedProps.revealOrder) { - if (0 != (64 & t.effectTag)) return t - } else if (null !== t.child) { - t.child.return = t, t = t.child; - continue - } - if (t === e) break; - for (; null === t.sibling;) { - if (null === t.return || t.return === e) return null; - t = t.return - } - t.sibling.return = t.return, t = t.sibling - } - return null - } + function Gi(e) { + for (var t = e; null !== t;) { + if (13 === t.tag) { + var n = t.memoizedState; + if (null !== n && (null === (n = n.dehydrated) || n.data === Zn || n.data === Qn)) return t + } else if (19 === t.tag && void 0 !== t.memoizedProps.revealOrder) { + if (0 != (64 & t.effectTag)) return t + } else if (null !== t.child) { + t.child.return = t, t = t.child; + continue + } + if (t === e) break; + for (; null === t.sibling;) { + if (null === t.return || t.return === e) return null; + t = t.return + } + t.sibling.return = t.return, t = t.sibling + } + return null + } - function Ki(e, t) { - return { - responder: e, - props: t - } - } - var $i = M.ReactCurrentDispatcher, - Ji = M.ReactCurrentBatchConfig, - Zi = 0, - Qi = null, - Xi = null, - eo = null, - to = null, - no = null, - ao = null, - ro = 0, - io = null, - oo = 0, - so = !1, - lo = null, - co = 0; - - function uo() { - throw Error(o(321)) - } - - function po(e, t) { - if (null === t) return !1; - for (var n = 0; n < t.length && n < e.length; n++) - if (!Xa(e[n], t[n])) return !1; - return !0 + function Ki(e, t) { + return { + responder: e, + props: t } + } + var $i = I.ReactCurrentDispatcher, + Ji = I.ReactCurrentBatchConfig, + Zi = 0, + Qi = null, + Xi = null, + eo = null, + to = null, + no = null, + ao = null, + ro = 0, + io = null, + oo = 0, + so = !1, + lo = null, + co = 0; + + function uo() { + throw Error(o(321)) + } - function ho(e, t, n, a, r, i) { - if (Zi = i, Qi = t, eo = null !== e ? e.memoizedState : null, $i.current = null === eo ? Oo : Mo, t = n(a, r), so) { - do { - so = !1, co += 1, eo = null !== e ? e.memoizedState : null, ao = to, io = no = Xi = null, $i.current = Mo, t = n(a, r) - } while (so); - lo = null, co = 0 - } - if ($i.current = To, (e = Qi).memoizedState = to, e.expirationTime = ro, e.updateQueue = io, e.effectTag |= oo, e = null !== Xi && null !== Xi.next, Zi = 0, ao = no = to = eo = Xi = Qi = null, ro = 0, io = null, oo = 0, e) throw Error(o(300)); - return t - } + function po(e, t) { + if (null === t) return !1; + for (var n = 0; n < t.length && n < e.length; n++) + if (!Xa(e[n], t[n])) return !1; + return !0 + } - function mo() { - $i.current = To, Zi = 0, ao = no = to = eo = Xi = Qi = null, ro = 0, io = null, oo = 0, so = !1, lo = null, co = 0 + function ho(e, t, n, a, r, i) { + if (Zi = i, Qi = t, eo = null !== e ? e.memoizedState : null, $i.current = null === eo ? Mo : Io, t = n(a, r), so) { + do { + so = !1, co += 1, eo = null !== e ? e.memoizedState : null, ao = to, io = no = Xi = null, $i.current = Io, t = n(a, r) + } while (so); + lo = null, co = 0 } + if ($i.current = jo, (e = Qi).memoizedState = to, e.expirationTime = ro, e.updateQueue = io, e.effectTag |= oo, e = null !== Xi && null !== Xi.next, Zi = 0, ao = no = to = eo = Xi = Qi = null, ro = 0, io = null, oo = 0, e) throw Error(o(300)); + return t + } + + function mo() { + $i.current = jo, Zi = 0, ao = no = to = eo = Xi = Qi = null, ro = 0, io = null, oo = 0, so = !1, lo = null, co = 0 + } + + function fo() { + var e = { + memoizedState: null, + baseState: null, + queue: null, + baseUpdate: null, + next: null + }; + return null === no ? to = no = e : no = no.next = e, no + } - function fo() { + function go() { + if (null !== ao) ao = (no = ao).next, eo = null !== (Xi = eo) ? Xi.next : null; + else { + if (null === eo) throw Error(o(310)); var e = { - memoizedState: null, - baseState: null, - queue: null, - baseUpdate: null, + memoizedState: (Xi = eo).memoizedState, + baseState: Xi.baseState, + queue: Xi.queue, + baseUpdate: Xi.baseUpdate, next: null }; - return null === no ? to = no = e : no = no.next = e, no - } - - function go() { - if (null !== ao) ao = (no = ao).next, eo = null !== (Xi = eo) ? Xi.next : null; - else { - if (null === eo) throw Error(o(310)); - var e = { - memoizedState: (Xi = eo).memoizedState, - baseState: Xi.baseState, - queue: Xi.queue, - baseUpdate: Xi.baseUpdate, - next: null - }; - no = null === no ? to = e : no.next = e, eo = Xi.next - } - return no + no = null === no ? to = e : no.next = e, eo = Xi.next } + return no + } - function bo(e, t) { - return "function" == typeof t ? t(e) : t - } + function bo(e, t) { + return "function" == typeof t ? t(e) : t + } - function yo(e) { - var t = go(), - n = t.queue; - if (null === n) throw Error(o(311)); - if (n.lastRenderedReducer = e, 0 < co) { - var a = n.dispatch; - if (null !== lo) { - var r = lo.get(n); - if (void 0 !== r) { - lo.delete(n); - var i = t.memoizedState; - do { - i = e(i, r.action), r = r.next - } while (null !== r); - return Xa(i, t.memoizedState) || (Vo = !0), t.memoizedState = i, t.baseUpdate === n.last && (t.baseState = i), n.lastRenderedState = i, [i, a] - } - } - return [t.memoizedState, a] - } - a = n.last; - var s = t.baseUpdate; - if (i = t.baseState, null !== s ? (null !== a && (a.next = null), a = s.next) : a = null !== a ? a.next : null, null !== a) { - var l = r = null, - c = a, - u = !1; - do { - var d = c.expirationTime; - d < Zi ? (u || (u = !0, l = s, r = i), d > ro && fl(ro = d)) : (ml(d, c.suspenseConfig), i = c.eagerReducer === e ? c.eagerState : e(i, c.action)), s = c, c = c.next - } while (null !== c && c !== a); - u || (l = s, r = i), Xa(i, t.memoizedState) || (Vo = !0), t.memoizedState = i, t.baseUpdate = l, t.baseState = r, n.lastRenderedState = i - } - return [t.memoizedState, n.dispatch] + function yo(e) { + var t = go(), + n = t.queue; + if (null === n) throw Error(o(311)); + if (n.lastRenderedReducer = e, 0 < co) { + var a = n.dispatch; + if (null !== lo) { + var r = lo.get(n); + if (void 0 !== r) { + lo.delete(n); + var i = t.memoizedState; + do { + i = e(i, r.action), r = r.next + } while (null !== r); + return Xa(i, t.memoizedState) || (Vo = !0), t.memoizedState = i, t.baseUpdate === n.last && (t.baseState = i), n.lastRenderedState = i, [i, a] + } + } + return [t.memoizedState, a] + } + a = n.last; + var s = t.baseUpdate; + if (i = t.baseState, null !== s ? (null !== a && (a.next = null), a = s.next) : a = null !== a ? a.next : null, null !== a) { + var l = r = null, + c = a, + u = !1; + do { + var d = c.expirationTime; + d < Zi ? (u || (u = !0, l = s, r = i), d > ro && fl(ro = d)) : (ml(d, c.suspenseConfig), i = c.eagerReducer === e ? c.eagerState : e(i, c.action)), s = c, c = c.next + } while (null !== c && c !== a); + u || (l = s, r = i), Xa(i, t.memoizedState) || (Vo = !0), t.memoizedState = i, t.baseUpdate = l, t.baseState = r, n.lastRenderedState = i } + return [t.memoizedState, n.dispatch] + } - function vo(e) { - var t = fo(); - return "function" == typeof e && (e = e()), t.memoizedState = t.baseState = e, e = (e = t.queue = { - last: null, - dispatch: null, - lastRenderedReducer: bo, - lastRenderedState: e - }).dispatch = Do.bind(null, Qi, e), [t.memoizedState, e] - } + function vo(e) { + var t = fo(); + return "function" == typeof e && (e = e()), t.memoizedState = t.baseState = e, e = (e = t.queue = { + last: null, + dispatch: null, + lastRenderedReducer: bo, + lastRenderedState: e + }).dispatch = Po.bind(null, Qi, e), [t.memoizedState, e] + } - function ko(e) { - return yo(bo) - } + function ko(e) { + return yo(bo) + } - function _o(e, t, n, a) { - return e = { - tag: e, - create: t, - destroy: n, - deps: a, - next: null - }, null === io ? (io = { - lastEffect: null - }).lastEffect = e.next = e : null === (t = io.lastEffect) ? io.lastEffect = e.next = e : (n = t.next, t.next = e, e.next = n, io.lastEffect = e), e - } + function _o(e, t, n, a) { + return e = { + tag: e, + create: t, + destroy: n, + deps: a, + next: null + }, null === io ? (io = { + lastEffect: null + }).lastEffect = e.next = e : null === (t = io.lastEffect) ? io.lastEffect = e.next = e : (n = t.next, t.next = e, e.next = n, io.lastEffect = e), e + } - function wo(e, t, n, a) { - var r = fo(); - oo |= e, r.memoizedState = _o(t, n, void 0, void 0 === a ? null : a) - } + function wo(e, t, n, a) { + var r = fo(); + oo |= e, r.memoizedState = _o(t, n, void 0, void 0 === a ? null : a) + } - function So(e, t, n, a) { - var r = go(); - a = void 0 === a ? null : a; - var i = void 0; - if (null !== Xi) { - var o = Xi.memoizedState; - if (i = o.destroy, null !== a && po(a, o.deps)) return void _o(0, n, i, a) - } - oo |= e, r.memoizedState = _o(t, n, i, a) + function So(e, t, n, a) { + var r = go(); + a = void 0 === a ? null : a; + var i = void 0; + if (null !== Xi) { + var o = Xi.memoizedState; + if (i = o.destroy, null !== a && po(a, o.deps)) return void _o(0, n, i, a) } + oo |= e, r.memoizedState = _o(t, n, i, a) + } - function Eo(e, t) { - return wo(516, 192, e, t) - } + function Eo(e, t) { + return wo(516, 192, e, t) + } - function xo(e, t) { - return So(516, 192, e, t) - } + function xo(e, t) { + return So(516, 192, e, t) + } - function Co(e, t) { - return "function" == typeof t ? (e = e(), t(e), function() { - t(null) - }) : null != t ? (e = e(), t.current = e, function() { - t.current = null - }) : void 0 - } + function Co(e, t) { + return "function" == typeof t ? (e = e(), t(e), function() { + t(null) + }) : null != t ? (e = e(), t.current = e, function() { + t.current = null + }) : void 0 + } - function Ao() {} + function Ao() {} - function jo(e, t) { - return fo().memoizedState = [e, void 0 === t ? null : t], e - } + function To(e, t) { + return fo().memoizedState = [e, void 0 === t ? null : t], e + } - function Po(e, t) { - var n = go(); - t = void 0 === t ? null : t; - var a = n.memoizedState; - return null !== a && null !== t && po(t, a[1]) ? a[0] : (n.memoizedState = [e, t], e) - } + function Do(e, t) { + var n = go(); + t = void 0 === t ? null : t; + var a = n.memoizedState; + return null !== a && null !== t && po(t, a[1]) ? a[0] : (n.memoizedState = [e, t], e) + } - function Do(e, t, n) { - if (!(25 > co)) throw Error(o(301)); - var a = e.alternate; - if (e === Qi || null !== a && a === Qi) - if (so = !0, e = { - expirationTime: Zi, - suspenseConfig: null, - action: n, - eagerReducer: null, - eagerState: null, - next: null - }, null === lo && (lo = new Map), void 0 === (n = lo.get(t))) lo.set(t, e); - else { - for (t = n; null !== t.next;) t = t.next; - t.next = e - } - else { - var r = tl(), - i = Si.suspense; - i = { - expirationTime: r = nl(r, e, i), - suspenseConfig: i, + function Po(e, t, n) { + if (!(25 > co)) throw Error(o(301)); + var a = e.alternate; + if (e === Qi || null !== a && a === Qi) + if (so = !0, e = { + expirationTime: Zi, + suspenseConfig: null, action: n, eagerReducer: null, eagerState: null, next: null - }; - var s = t.last; - if (null === s) i.next = i; - else { - var l = s.next; - null !== l && (i.next = l), s.next = i - } - if (t.last = i, 0 === e.expirationTime && (null === a || 0 === a.expirationTime) && null !== (a = t.lastRenderedReducer)) try { - var c = t.lastRenderedState, - u = a(c, n); - if (i.eagerReducer = a, i.eagerState = u, Xa(u, c)) return - } catch (e) {} - al(e, r) - } - } - var To = { - readContext: ui, - useCallback: uo, - useContext: uo, - useEffect: uo, - useImperativeHandle: uo, - useLayoutEffect: uo, - useMemo: uo, - useReducer: uo, - useRef: uo, - useState: uo, - useDebugValue: uo, - useResponder: uo, - useDeferredValue: uo, - useTransition: uo - }, - Oo = { - readContext: ui, - useCallback: jo, - useContext: ui, - useEffect: Eo, - useImperativeHandle: function(e, t, n) { - return n = null != n ? n.concat([e]) : null, wo(4, 36, Co.bind(null, t, e), n) - }, - useLayoutEffect: function(e, t) { - return wo(4, 36, e, t) - }, - useMemo: function(e, t) { - var n = fo(); - return t = void 0 === t ? null : t, e = e(), n.memoizedState = [e, t], e - }, - useReducer: function(e, t, n) { - var a = fo(); - return t = void 0 !== n ? n(t) : t, a.memoizedState = a.baseState = t, e = (e = a.queue = { - last: null, - dispatch: null, - lastRenderedReducer: e, - lastRenderedState: t - }).dispatch = Do.bind(null, Qi, e), [a.memoizedState, e] - }, - useRef: function(e) { - return e = { - current: e - }, fo().memoizedState = e - }, - useState: vo, - useDebugValue: Ao, - useResponder: Ki, - useDeferredValue: function(e, t) { - var n = vo(e), - a = n[0], - r = n[1]; - return Eo((function() { - i.unstable_next((function() { - var n = Ji.suspense; - Ji.suspense = void 0 === t ? null : t; - try { - r(e) - } finally { - Ji.suspense = n - } - })) - }), [e, t]), a - }, - useTransition: function(e) { - var t = vo(!1), - n = t[0], - a = t[1]; - return [jo((function(t) { - a(!0), i.unstable_next((function() { - var n = Ji.suspense; - Ji.suspense = void 0 === e ? null : e; - try { - a(!1), t() - } finally { - Ji.suspense = n - } - })) - }), [e, n]), n] - } + }, null === lo && (lo = new Map), void 0 === (n = lo.get(t))) lo.set(t, e); + else { + for (t = n; null !== t.next;) t = t.next; + t.next = e + } + else { + var r = tl(), + i = Si.suspense; + i = { + expirationTime: r = nl(r, e, i), + suspenseConfig: i, + action: n, + eagerReducer: null, + eagerState: null, + next: null + }; + var s = t.last; + if (null === s) i.next = i; + else { + var l = s.next; + null !== l && (i.next = l), s.next = i + } + if (t.last = i, 0 === e.expirationTime && (null === a || 0 === a.expirationTime) && null !== (a = t.lastRenderedReducer)) try { + var c = t.lastRenderedState, + u = a(c, n); + if (i.eagerReducer = a, i.eagerState = u, Xa(u, c)) return + } catch (e) {} + al(e, r) + } + } + var jo = { + readContext: ui, + useCallback: uo, + useContext: uo, + useEffect: uo, + useImperativeHandle: uo, + useLayoutEffect: uo, + useMemo: uo, + useReducer: uo, + useRef: uo, + useState: uo, + useDebugValue: uo, + useResponder: uo, + useDeferredValue: uo, + useTransition: uo + }, + Mo = { + readContext: ui, + useCallback: To, + useContext: ui, + useEffect: Eo, + useImperativeHandle: function(e, t, n) { + return n = null != n ? n.concat([e]) : null, wo(4, 36, Co.bind(null, t, e), n) + }, + useLayoutEffect: function(e, t) { + return wo(4, 36, e, t) + }, + useMemo: function(e, t) { + var n = fo(); + return t = void 0 === t ? null : t, e = e(), n.memoizedState = [e, t], e + }, + useReducer: function(e, t, n) { + var a = fo(); + return t = void 0 !== n ? n(t) : t, a.memoizedState = a.baseState = t, e = (e = a.queue = { + last: null, + dispatch: null, + lastRenderedReducer: e, + lastRenderedState: t + }).dispatch = Po.bind(null, Qi, e), [a.memoizedState, e] + }, + useRef: function(e) { + return e = { + current: e + }, fo().memoizedState = e + }, + useState: vo, + useDebugValue: Ao, + useResponder: Ki, + useDeferredValue: function(e, t) { + var n = vo(e), + a = n[0], + r = n[1]; + return Eo((function() { + i.unstable_next((function() { + var n = Ji.suspense; + Ji.suspense = void 0 === t ? null : t; + try { + r(e) + } finally { + Ji.suspense = n + } + })) + }), [e, t]), a }, - Mo = { - readContext: ui, - useCallback: Po, - useContext: ui, - useEffect: xo, - useImperativeHandle: function(e, t, n) { - return n = null != n ? n.concat([e]) : null, So(4, 36, Co.bind(null, t, e), n) - }, - useLayoutEffect: function(e, t) { - return So(4, 36, e, t) - }, - useMemo: function(e, t) { - var n = go(); - t = void 0 === t ? null : t; - var a = n.memoizedState; - return null !== a && null !== t && po(t, a[1]) ? a[0] : (e = e(), n.memoizedState = [e, t], e) - }, - useReducer: yo, - useRef: function() { - return go().memoizedState - }, - useState: ko, - useDebugValue: Ao, - useResponder: Ki, - useDeferredValue: function(e, t) { - var n = ko(), - a = n[0], - r = n[1]; - return xo((function() { - i.unstable_next((function() { - var n = Ji.suspense; - Ji.suspense = void 0 === t ? null : t; - try { - r(e) - } finally { - Ji.suspense = n - } - })) - }), [e, t]), a - }, - useTransition: function(e) { - var t = ko(), - n = t[0], - a = t[1]; - return [Po((function(t) { - a(!0), i.unstable_next((function() { - var n = Ji.suspense; - Ji.suspense = void 0 === e ? null : e; - try { - a(!1), t() - } finally { - Ji.suspense = n - } - })) - }), [e, n]), n] - } + useTransition: function(e) { + var t = vo(!1), + n = t[0], + a = t[1]; + return [To((function(t) { + a(!0), i.unstable_next((function() { + var n = Ji.suspense; + Ji.suspense = void 0 === e ? null : e; + try { + a(!1), t() + } finally { + Ji.suspense = n + } + })) + }), [e, n]), n] + } + }, + Io = { + readContext: ui, + useCallback: Do, + useContext: ui, + useEffect: xo, + useImperativeHandle: function(e, t, n) { + return n = null != n ? n.concat([e]) : null, So(4, 36, Co.bind(null, t, e), n) + }, + useLayoutEffect: function(e, t) { + return So(4, 36, e, t) + }, + useMemo: function(e, t) { + var n = go(); + t = void 0 === t ? null : t; + var a = n.memoizedState; + return null !== a && null !== t && po(t, a[1]) ? a[0] : (e = e(), n.memoizedState = [e, t], e) + }, + useReducer: yo, + useRef: function() { + return go().memoizedState + }, + useState: ko, + useDebugValue: Ao, + useResponder: Ki, + useDeferredValue: function(e, t) { + var n = ko(), + a = n[0], + r = n[1]; + return xo((function() { + i.unstable_next((function() { + var n = Ji.suspense; + Ji.suspense = void 0 === t ? null : t; + try { + r(e) + } finally { + Ji.suspense = n + } + })) + }), [e, t]), a }, - Io = null, - No = null, - zo = !1; + useTransition: function(e) { + var t = ko(), + n = t[0], + a = t[1]; + return [Do((function(t) { + a(!0), i.unstable_next((function() { + var n = Ji.suspense; + Ji.suspense = void 0 === e ? null : e; + try { + a(!1), t() + } finally { + Ji.suspense = n + } + })) + }), [e, n]), n] + } + }, + Oo = null, + No = null, + Ro = !1; - function Ro(e, t) { - var n = Ml(5, null, null, 0); - n.elementType = "DELETED", n.type = "DELETED", n.stateNode = t, n.return = e, n.effectTag = 8, null !== e.lastEffect ? (e.lastEffect.nextEffect = n, e.lastEffect = n) : e.firstEffect = e.lastEffect = n - } + function zo(e, t) { + var n = Il(5, null, null, 0); + n.elementType = "DELETED", n.type = "DELETED", n.stateNode = t, n.return = e, n.effectTag = 8, null !== e.lastEffect ? (e.lastEffect.nextEffect = n, e.lastEffect = n) : e.firstEffect = e.lastEffect = n + } - function Lo(e, t) { - switch (e.tag) { - case 5: - var n = e.type; - return null !== (t = 1 !== t.nodeType || n.toLowerCase() !== t.nodeName.toLowerCase() ? null : t) && (e.stateNode = t, !0); - case 6: - return null !== (t = "" === e.pendingProps || 3 !== t.nodeType ? null : t) && (e.stateNode = t, !0); - default: - return !1 - } + function Lo(e, t) { + switch (e.tag) { + case 5: + var n = e.type; + return null !== (t = 1 !== t.nodeType || n.toLowerCase() !== t.nodeName.toLowerCase() ? null : t) && (e.stateNode = t, !0); + case 6: + return null !== (t = "" === e.pendingProps || 3 !== t.nodeType ? null : t) && (e.stateNode = t, !0); + default: + return !1 } + } - function Fo(e) { - if (zo) { - var t = No; - if (t) { - var n = t; - if (!Lo(e, t)) { - if (!(t = ia(n.nextSibling)) || !Lo(e, t)) return e.effectTag = -1025 & e.effectTag | 2, zo = !1, void(Io = e); - Ro(Io, n) - } - Io = e, No = ia(t.firstChild) - } else e.effectTag = -1025 & e.effectTag | 2, zo = !1, Io = e - } + function Fo(e) { + if (Ro) { + var t = No; + if (t) { + var n = t; + if (!Lo(e, t)) { + if (!(t = ia(n.nextSibling)) || !Lo(e, t)) return e.effectTag = -1025 & e.effectTag | 2, Ro = !1, void(Oo = e); + zo(Oo, n) + } + Oo = e, No = ia(t.firstChild) + } else e.effectTag = -1025 & e.effectTag | 2, Ro = !1, Oo = e } + } - function qo(e) { - for (e = e.return; null !== e && 5 !== e.tag && 3 !== e.tag && 13 !== e.tag;) e = e.return; - Io = e - } + function qo(e) { + for (e = e.return; null !== e && 5 !== e.tag && 3 !== e.tag && 13 !== e.tag;) e = e.return; + Oo = e + } - function Bo(e) { - if (e !== Io) return !1; - if (!zo) return qo(e), zo = !0, !1; - var t = e.type; - if (5 !== e.tag || "head" !== t && "body" !== t && !na(t, e.memoizedProps)) - for (t = No; t;) Ro(e, t), t = ia(t.nextSibling); - if (qo(e), 13 === e.tag) { - if (!(e = null !== (e = e.memoizedState) ? e.dehydrated : null)) throw Error(o(317)); - e: { - for (e = e.nextSibling, t = 0; e;) { - if (8 === e.nodeType) { - var n = e.data; - if ("/$" === n) { - if (0 === t) { - No = ia(e.nextSibling); - break e - } - t-- - } else "$" !== n && n !== Qn && n !== Zn || t++ - } - e = e.nextSibling + function Bo(e) { + if (e !== Oo) return !1; + if (!Ro) return qo(e), Ro = !0, !1; + var t = e.type; + if (5 !== e.tag || "head" !== t && "body" !== t && !na(t, e.memoizedProps)) + for (t = No; t;) zo(e, t), t = ia(t.nextSibling); + if (qo(e), 13 === e.tag) { + if (!(e = null !== (e = e.memoizedState) ? e.dehydrated : null)) throw Error(o(317)); + e: { + for (e = e.nextSibling, t = 0; e;) { + if (8 === e.nodeType) { + var n = e.data; + if ("/$" === n) { + if (0 === t) { + No = ia(e.nextSibling); + break e + } + t-- + } else "$" !== n && n !== Qn && n !== Zn || t++ } - No = null + e = e.nextSibling } - } else No = Io ? ia(e.stateNode.nextSibling) : null; - return !0 - } + No = null + } + } else No = Oo ? ia(e.stateNode.nextSibling) : null; + return !0 + } - function Uo() { - No = Io = null, zo = !1 - } - var Ho = M.ReactCurrentOwner, - Vo = !1; + function Uo() { + No = Oo = null, Ro = !1 + } + var Ho = I.ReactCurrentOwner, + Vo = !1; - function Wo(e, t, n, a) { - t.child = null === e ? zi(t, null, n, a) : Ni(t, e.child, n, a) - } + function Wo(e, t, n, a) { + t.child = null === e ? Ri(t, null, n, a) : Ni(t, e.child, n, a) + } - function Yo(e, t, n, a, r) { - n = n.render; - var i = t.ref; - return ci(t, r), a = ho(e, t, n, a, i, r), null === e || Vo ? (t.effectTag |= 1, Wo(e, t, a, r), t.child) : (t.updateQueue = e.updateQueue, t.effectTag &= -517, e.expirationTime <= r && (e.expirationTime = 0), ls(e, t, r)) - } + function Yo(e, t, n, a, r) { + n = n.render; + var i = t.ref; + return ci(t, r), a = ho(e, t, n, a, i, r), null === e || Vo ? (t.effectTag |= 1, Wo(e, t, a, r), t.child) : (t.updateQueue = e.updateQueue, t.effectTag &= -517, e.expirationTime <= r && (e.expirationTime = 0), ls(e, t, r)) + } - function Go(e, t, n, a, r, i) { - if (null === e) { - var o = n.type; - return "function" != typeof o || Il(o) || void 0 !== o.defaultProps || null !== n.compare || void 0 !== n.defaultProps ? ((e = zl(n.type, null, a, null, t.mode, i)).ref = t.ref, e.return = t, t.child = e) : (t.tag = 15, t.type = o, Ko(e, t, o, a, r, i)) - } - return o = e.child, r < i && (r = o.memoizedProps, (n = null !== (n = n.compare) ? n : tr)(r, a) && e.ref === t.ref) ? ls(e, t, i) : (t.effectTag |= 1, (e = Nl(o, a)).ref = t.ref, e.return = t, t.child = e) + function Go(e, t, n, a, r, i) { + if (null === e) { + var o = n.type; + return "function" != typeof o || Ol(o) || void 0 !== o.defaultProps || null !== n.compare || void 0 !== n.defaultProps ? ((e = Rl(n.type, null, a, null, t.mode, i)).ref = t.ref, e.return = t, t.child = e) : (t.tag = 15, t.type = o, Ko(e, t, o, a, r, i)) } + return o = e.child, r < i && (r = o.memoizedProps, (n = null !== (n = n.compare) ? n : tr)(r, a) && e.ref === t.ref) ? ls(e, t, i) : (t.effectTag |= 1, (e = Nl(o, a)).ref = t.ref, e.return = t, t.child = e) + } - function Ko(e, t, n, a, r, i) { - return null !== e && tr(e.memoizedProps, a) && e.ref === t.ref && (Vo = !1, r < i) ? ls(e, t, i) : Jo(e, t, n, a, i) - } + function Ko(e, t, n, a, r, i) { + return null !== e && tr(e.memoizedProps, a) && e.ref === t.ref && (Vo = !1, r < i) ? ls(e, t, i) : Jo(e, t, n, a, i) + } - function $o(e, t) { - var n = t.ref; - (null === e && null !== n || null !== e && e.ref !== n) && (t.effectTag |= 128) - } + function $o(e, t) { + var n = t.ref; + (null === e && null !== n || null !== e && e.ref !== n) && (t.effectTag |= 128) + } - function Jo(e, t, n, a, r) { - var i = vr(n) ? br : fr.current; - return i = yr(t, i), ci(t, r), n = ho(e, t, n, a, i, r), null === e || Vo ? (t.effectTag |= 1, Wo(e, t, n, r), t.child) : (t.updateQueue = e.updateQueue, t.effectTag &= -517, e.expirationTime <= r && (e.expirationTime = 0), ls(e, t, r)) - } + function Jo(e, t, n, a, r) { + var i = vr(n) ? br : fr.current; + return i = yr(t, i), ci(t, r), n = ho(e, t, n, a, i, r), null === e || Vo ? (t.effectTag |= 1, Wo(e, t, n, r), t.child) : (t.updateQueue = e.updateQueue, t.effectTag &= -517, e.expirationTime <= r && (e.expirationTime = 0), ls(e, t, r)) + } - function Zo(e, t, n, a, r) { - if (vr(n)) { - var i = !0; - Er(t) - } else i = !1; - if (ci(t, r), null === t.stateNode) null !== e && (e.alternate = null, t.alternate = null, t.effectTag |= 2), ji(t, n, a), Di(t, n, a, r), a = !0; - else if (null === e) { - var o = t.stateNode, - s = t.memoizedProps; - o.props = s; - var l = o.context, - c = n.contextType; - c = "object" == typeof c && null !== c ? ui(c) : yr(t, c = vr(n) ? br : fr.current); - var u = n.getDerivedStateFromProps, - d = "function" == typeof u || "function" == typeof o.getSnapshotBeforeUpdate; - d || "function" != typeof o.UNSAFE_componentWillReceiveProps && "function" != typeof o.componentWillReceiveProps || (s !== a || l !== c) && Pi(t, o, a, c), di = !1; - var p = t.memoizedState; - l = o.state = p; - var h = t.updateQueue; - null !== h && (ki(t, h, a, o, r), l = t.memoizedState), s !== a || p !== l || gr.current || di ? ("function" == typeof u && (xi(t, n, u, a), l = t.memoizedState), (s = di || Ai(t, n, s, a, p, l, c)) ? (d || "function" != typeof o.UNSAFE_componentWillMount && "function" != typeof o.componentWillMount || ("function" == typeof o.componentWillMount && o.componentWillMount(), "function" == typeof o.UNSAFE_componentWillMount && o.UNSAFE_componentWillMount()), "function" == typeof o.componentDidMount && (t.effectTag |= 4)) : ("function" == typeof o.componentDidMount && (t.effectTag |= 4), t.memoizedProps = a, t.memoizedState = l), o.props = a, o.state = l, o.context = c, a = s) : ("function" == typeof o.componentDidMount && (t.effectTag |= 4), a = !1) - } else o = t.stateNode, s = t.memoizedProps, o.props = t.type === t.elementType ? s : ei(t.type, s), l = o.context, c = "object" == typeof(c = n.contextType) && null !== c ? ui(c) : yr(t, c = vr(n) ? br : fr.current), (d = "function" == typeof(u = n.getDerivedStateFromProps) || "function" == typeof o.getSnapshotBeforeUpdate) || "function" != typeof o.UNSAFE_componentWillReceiveProps && "function" != typeof o.componentWillReceiveProps || (s !== a || l !== c) && Pi(t, o, a, c), di = !1, l = t.memoizedState, p = o.state = l, null !== (h = t.updateQueue) && (ki(t, h, a, o, r), p = t.memoizedState), s !== a || l !== p || gr.current || di ? ("function" == typeof u && (xi(t, n, u, a), p = t.memoizedState), (u = di || Ai(t, n, s, a, l, p, c)) ? (d || "function" != typeof o.UNSAFE_componentWillUpdate && "function" != typeof o.componentWillUpdate || ("function" == typeof o.componentWillUpdate && o.componentWillUpdate(a, p, c), "function" == typeof o.UNSAFE_componentWillUpdate && o.UNSAFE_componentWillUpdate(a, p, c)), "function" == typeof o.componentDidUpdate && (t.effectTag |= 4), "function" == typeof o.getSnapshotBeforeUpdate && (t.effectTag |= 256)) : ("function" != typeof o.componentDidUpdate || s === e.memoizedProps && l === e.memoizedState || (t.effectTag |= 4), "function" != typeof o.getSnapshotBeforeUpdate || s === e.memoizedProps && l === e.memoizedState || (t.effectTag |= 256), t.memoizedProps = a, t.memoizedState = p), o.props = a, o.state = p, o.context = c, a = u) : ("function" != typeof o.componentDidUpdate || s === e.memoizedProps && l === e.memoizedState || (t.effectTag |= 4), "function" != typeof o.getSnapshotBeforeUpdate || s === e.memoizedProps && l === e.memoizedState || (t.effectTag |= 256), a = !1); - return Qo(e, t, n, a, i, r) - } + function Zo(e, t, n, a, r) { + if (vr(n)) { + var i = !0; + Er(t) + } else i = !1; + if (ci(t, r), null === t.stateNode) null !== e && (e.alternate = null, t.alternate = null, t.effectTag |= 2), Ti(t, n, a), Pi(t, n, a, r), a = !0; + else if (null === e) { + var o = t.stateNode, + s = t.memoizedProps; + o.props = s; + var l = o.context, + c = n.contextType; + c = "object" == typeof c && null !== c ? ui(c) : yr(t, c = vr(n) ? br : fr.current); + var u = n.getDerivedStateFromProps, + d = "function" == typeof u || "function" == typeof o.getSnapshotBeforeUpdate; + d || "function" != typeof o.UNSAFE_componentWillReceiveProps && "function" != typeof o.componentWillReceiveProps || (s !== a || l !== c) && Di(t, o, a, c), di = !1; + var p = t.memoizedState; + l = o.state = p; + var h = t.updateQueue; + null !== h && (ki(t, h, a, o, r), l = t.memoizedState), s !== a || p !== l || gr.current || di ? ("function" == typeof u && (xi(t, n, u, a), l = t.memoizedState), (s = di || Ai(t, n, s, a, p, l, c)) ? (d || "function" != typeof o.UNSAFE_componentWillMount && "function" != typeof o.componentWillMount || ("function" == typeof o.componentWillMount && o.componentWillMount(), "function" == typeof o.UNSAFE_componentWillMount && o.UNSAFE_componentWillMount()), "function" == typeof o.componentDidMount && (t.effectTag |= 4)) : ("function" == typeof o.componentDidMount && (t.effectTag |= 4), t.memoizedProps = a, t.memoizedState = l), o.props = a, o.state = l, o.context = c, a = s) : ("function" == typeof o.componentDidMount && (t.effectTag |= 4), a = !1) + } else o = t.stateNode, s = t.memoizedProps, o.props = t.type === t.elementType ? s : ei(t.type, s), l = o.context, c = "object" == typeof(c = n.contextType) && null !== c ? ui(c) : yr(t, c = vr(n) ? br : fr.current), (d = "function" == typeof(u = n.getDerivedStateFromProps) || "function" == typeof o.getSnapshotBeforeUpdate) || "function" != typeof o.UNSAFE_componentWillReceiveProps && "function" != typeof o.componentWillReceiveProps || (s !== a || l !== c) && Di(t, o, a, c), di = !1, l = t.memoizedState, p = o.state = l, null !== (h = t.updateQueue) && (ki(t, h, a, o, r), p = t.memoizedState), s !== a || l !== p || gr.current || di ? ("function" == typeof u && (xi(t, n, u, a), p = t.memoizedState), (u = di || Ai(t, n, s, a, l, p, c)) ? (d || "function" != typeof o.UNSAFE_componentWillUpdate && "function" != typeof o.componentWillUpdate || ("function" == typeof o.componentWillUpdate && o.componentWillUpdate(a, p, c), "function" == typeof o.UNSAFE_componentWillUpdate && o.UNSAFE_componentWillUpdate(a, p, c)), "function" == typeof o.componentDidUpdate && (t.effectTag |= 4), "function" == typeof o.getSnapshotBeforeUpdate && (t.effectTag |= 256)) : ("function" != typeof o.componentDidUpdate || s === e.memoizedProps && l === e.memoizedState || (t.effectTag |= 4), "function" != typeof o.getSnapshotBeforeUpdate || s === e.memoizedProps && l === e.memoizedState || (t.effectTag |= 256), t.memoizedProps = a, t.memoizedState = p), o.props = a, o.state = p, o.context = c, a = u) : ("function" != typeof o.componentDidUpdate || s === e.memoizedProps && l === e.memoizedState || (t.effectTag |= 4), "function" != typeof o.getSnapshotBeforeUpdate || s === e.memoizedProps && l === e.memoizedState || (t.effectTag |= 256), a = !1); + return Qo(e, t, n, a, i, r) + } - function Qo(e, t, n, a, r, i) { - $o(e, t); - var o = 0 != (64 & t.effectTag); - if (!a && !o) return r && xr(t, n, !1), ls(e, t, i); - a = t.stateNode, Ho.current = t; - var s = o && "function" != typeof n.getDerivedStateFromError ? null : a.render(); - return t.effectTag |= 1, null !== e && o ? (t.child = Ni(t, e.child, null, i), t.child = Ni(t, null, s, i)) : Wo(e, t, s, i), t.memoizedState = a.state, r && xr(t, n, !0), t.child - } + function Qo(e, t, n, a, r, i) { + $o(e, t); + var o = 0 != (64 & t.effectTag); + if (!a && !o) return r && xr(t, n, !1), ls(e, t, i); + a = t.stateNode, Ho.current = t; + var s = o && "function" != typeof n.getDerivedStateFromError ? null : a.render(); + return t.effectTag |= 1, null !== e && o ? (t.child = Ni(t, e.child, null, i), t.child = Ni(t, null, s, i)) : Wo(e, t, s, i), t.memoizedState = a.state, r && xr(t, n, !0), t.child + } - function Xo(e) { - var t = e.stateNode; - t.pendingContext ? wr(0, t.pendingContext, t.pendingContext !== t.context) : t.context && wr(0, t.context, !1), Ui(e, t.containerInfo) - } - var es, ts, ns, as = { - dehydrated: null, - retryTime: 0 - }; + function Xo(e) { + var t = e.stateNode; + t.pendingContext ? wr(0, t.pendingContext, t.pendingContext !== t.context) : t.context && wr(0, t.context, !1), Ui(e, t.containerInfo) + } + var es, ts, ns, as = { + dehydrated: null, + retryTime: 0 + }; - function rs(e, t, n) { - var a, r = t.mode, - i = t.pendingProps, - o = Yi.current, - s = !1; - if ((a = 0 != (64 & t.effectTag)) || (a = 0 != (2 & o) && (null === e || null !== e.memoizedState)), a ? (s = !0, t.effectTag &= -65) : null !== e && null === e.memoizedState || void 0 === i.fallback || !0 === i.unstable_avoidThisFallback || (o |= 1), hr(Yi, 1 & o), null === e) { - if (void 0 !== i.fallback && Fo(t), s) { - if (s = i.fallback, (i = Rl(null, r, 0, null)).return = t, 0 == (2 & t.mode)) - for (e = null !== t.memoizedState ? t.child.child : t.child, i.child = e; null !== e;) e.return = i, e = e.sibling; - return (n = Rl(s, r, n, null)).return = t, i.sibling = n, t.memoizedState = as, t.child = i, n - } - return r = i.children, t.memoizedState = null, t.child = zi(t, null, r, n) - } - if (null !== e.memoizedState) { - if (r = (e = e.child).sibling, s) { - if (i = i.fallback, (n = Nl(e, e.pendingProps)).return = t, 0 == (2 & t.mode) && (s = null !== t.memoizedState ? t.child.child : t.child) !== e.child) - for (n.child = s; null !== s;) s.return = n, s = s.sibling; - return (r = Nl(r, i, r.expirationTime)).return = t, n.sibling = r, n.childExpirationTime = 0, t.memoizedState = as, t.child = n, r - } - return n = Ni(t, e.child, i.children, n), t.memoizedState = null, t.child = n - } - if (e = e.child, s) { - if (s = i.fallback, (i = Rl(null, r, 0, null)).return = t, i.child = e, null !== e && (e.return = i), 0 == (2 & t.mode)) + function rs(e, t, n) { + var a, r = t.mode, + i = t.pendingProps, + o = Yi.current, + s = !1; + if ((a = 0 != (64 & t.effectTag)) || (a = 0 != (2 & o) && (null === e || null !== e.memoizedState)), a ? (s = !0, t.effectTag &= -65) : null !== e && null === e.memoizedState || void 0 === i.fallback || !0 === i.unstable_avoidThisFallback || (o |= 1), hr(Yi, 1 & o), null === e) { + if (void 0 !== i.fallback && Fo(t), s) { + if (s = i.fallback, (i = zl(null, r, 0, null)).return = t, 0 == (2 & t.mode)) for (e = null !== t.memoizedState ? t.child.child : t.child, i.child = e; null !== e;) e.return = i, e = e.sibling; - return (n = Rl(s, r, n, null)).return = t, i.sibling = n, n.effectTag |= 2, i.childExpirationTime = 0, t.memoizedState = as, t.child = i, n - } - return t.memoizedState = null, t.child = Ni(t, e, i.children, n) - } - - function is(e, t) { - e.expirationTime < t && (e.expirationTime = t); - var n = e.alternate; - null !== n && n.expirationTime < t && (n.expirationTime = t), li(e.return, t) - } - - function os(e, t, n, a, r, i) { - var o = e.memoizedState; - null === o ? e.memoizedState = { - isBackwards: t, - rendering: null, - last: a, - tail: n, - tailExpiration: 0, - tailMode: r, - lastEffect: i - } : (o.isBackwards = t, o.rendering = null, o.last = a, o.tail = n, o.tailExpiration = 0, o.tailMode = r, o.lastEffect = i) - } - - function ss(e, t, n) { - var a = t.pendingProps, - r = a.revealOrder, - i = a.tail; - if (Wo(e, t, a.children, n), 0 != (2 & (a = Yi.current))) a = 1 & a | 2, t.effectTag |= 64; - else { - if (null !== e && 0 != (64 & e.effectTag)) e: for (e = t.child; null !== e;) { - if (13 === e.tag) null !== e.memoizedState && is(e, n); - else if (19 === e.tag) is(e, n); - else if (null !== e.child) { - e.child.return = e, e = e.child; - continue - } - if (e === t) break e; - for (; null === e.sibling;) { - if (null === e.return || e.return === t) break e; - e = e.return - } - e.sibling.return = e.return, e = e.sibling - } - a &= 1 - } - if (hr(Yi, a), 0 == (2 & t.mode)) t.memoizedState = null; - else switch (r) { - case "forwards": - for (n = t.child, r = null; null !== n;) null !== (e = n.alternate) && null === Gi(e) && (r = n), n = n.sibling; - null === (n = r) ? (r = t.child, t.child = null) : (r = n.sibling, n.sibling = null), os(t, !1, r, n, i, t.lastEffect); - break; - case "backwards": - for (n = null, r = t.child, t.child = null; null !== r;) { - if (null !== (e = r.alternate) && null === Gi(e)) { - t.child = r; - break - } - e = r.sibling, r.sibling = n, n = r, r = e - } - os(t, !0, n, null, i, t.lastEffect); - break; - case "together": - os(t, !1, null, null, void 0, t.lastEffect); - break; - default: - t.memoizedState = null + return (n = zl(s, r, n, null)).return = t, i.sibling = n, t.memoizedState = as, t.child = i, n } - return t.child + return r = i.children, t.memoizedState = null, t.child = Ri(t, null, r, n) } - - function ls(e, t, n) { - null !== e && (t.dependencies = e.dependencies); - var a = t.expirationTime; - if (0 !== a && fl(a), t.childExpirationTime < n) return null; - if (null !== e && t.child !== e.child) throw Error(o(153)); - if (null !== t.child) { - for (n = Nl(e = t.child, e.pendingProps, e.expirationTime), t.child = n, n.return = t; null !== e.sibling;) e = e.sibling, (n = n.sibling = Nl(e, e.pendingProps, e.expirationTime)).return = t; - n.sibling = null + if (null !== e.memoizedState) { + if (r = (e = e.child).sibling, s) { + if (i = i.fallback, (n = Nl(e, e.pendingProps)).return = t, 0 == (2 & t.mode) && (s = null !== t.memoizedState ? t.child.child : t.child) !== e.child) + for (n.child = s; null !== s;) s.return = n, s = s.sibling; + return (r = Nl(r, i, r.expirationTime)).return = t, n.sibling = r, n.childExpirationTime = 0, t.memoizedState = as, t.child = n, r } - return t.child + return n = Ni(t, e.child, i.children, n), t.memoizedState = null, t.child = n } - - function cs(e) { - e.effectTag |= 4 + if (e = e.child, s) { + if (s = i.fallback, (i = zl(null, r, 0, null)).return = t, i.child = e, null !== e && (e.return = i), 0 == (2 & t.mode)) + for (e = null !== t.memoizedState ? t.child.child : t.child, i.child = e; null !== e;) e.return = i, e = e.sibling; + return (n = zl(s, r, n, null)).return = t, i.sibling = n, n.effectTag |= 2, i.childExpirationTime = 0, t.memoizedState = as, t.child = i, n } + return t.memoizedState = null, t.child = Ni(t, e, i.children, n) + } - function us(e, t) { - switch (e.tailMode) { - case "hidden": - t = e.tail; - for (var n = null; null !== t;) null !== t.alternate && (n = t), t = t.sibling; - null === n ? e.tail = null : n.sibling = null; - break; - case "collapsed": - n = e.tail; - for (var a = null; null !== n;) null !== n.alternate && (a = n), n = n.sibling; - null === a ? t || null === e.tail ? e.tail = null : e.tail.sibling = null : a.sibling = null - } - } + function is(e, t) { + e.expirationTime < t && (e.expirationTime = t); + var n = e.alternate; + null !== n && n.expirationTime < t && (n.expirationTime = t), li(e.return, t) + } - function ds(e) { - switch (e.tag) { - case 1: - vr(e.type) && kr(); - var t = e.effectTag; - return 4096 & t ? (e.effectTag = -4097 & t | 64, e) : null; - case 3: - if (Hi(), _r(), 0 != (64 & (t = e.effectTag))) throw Error(o(285)); - return e.effectTag = -4097 & t | 64, e; - case 5: - return Wi(e), null; - case 13: - return pr(Yi), 4096 & (t = e.effectTag) ? (e.effectTag = -4097 & t | 64, e) : null; - case 19: - return pr(Yi), null; - case 4: - return Hi(), null; - case 10: - return si(e), null; - default: - return null - } - } + function os(e, t, n, a, r, i) { + var o = e.memoizedState; + null === o ? e.memoizedState = { + isBackwards: t, + rendering: null, + last: a, + tail: n, + tailExpiration: 0, + tailMode: r, + lastEffect: i + } : (o.isBackwards = t, o.rendering = null, o.last = a, o.tail = n, o.tailExpiration = 0, o.tailMode = r, o.lastEffect = i) + } - function ps(e, t) { - return { - value: e, - source: t, - stack: Q(t) - } - } - es = function(e, t) { - for (var n = t.child; null !== n;) { - if (5 === n.tag || 6 === n.tag) e.appendChild(n.stateNode); - else if (4 !== n.tag && null !== n.child) { - n.child.return = n, n = n.child; + function ss(e, t, n) { + var a = t.pendingProps, + r = a.revealOrder, + i = a.tail; + if (Wo(e, t, a.children, n), 0 != (2 & (a = Yi.current))) a = 1 & a | 2, t.effectTag |= 64; + else { + if (null !== e && 0 != (64 & e.effectTag)) e: for (e = t.child; null !== e;) { + if (13 === e.tag) null !== e.memoizedState && is(e, n); + else if (19 === e.tag) is(e, n); + else if (null !== e.child) { + e.child.return = e, e = e.child; continue } - if (n === t) break; - for (; null === n.sibling;) { - if (null === n.return || n.return === t) return; - n = n.return - } - n.sibling.return = n.return, n = n.sibling - } - }, ts = function(e, t, n, a, i) { - var o = e.memoizedProps; - if (o !== a) { - var s, l, c = t.stateNode; - switch (Bi(Li.current), e = null, n) { - case "input": - o = Ce(c, o), a = Ce(c, a), e = []; - break; - case "option": - o = Oe(c, o), a = Oe(c, a), e = []; - break; - case "select": - o = r({}, o, { - value: void 0 - }), a = r({}, a, { - value: void 0 - }), e = []; - break; - case "textarea": - o = Ie(c, o), a = Ie(c, a), e = []; - break; - default: - "function" != typeof o.onClick && "function" == typeof a.onClick && (c.onclick = Vn) - } - for (s in Bn(n, a), n = null, o) - if (!a.hasOwnProperty(s) && o.hasOwnProperty(s) && null != o[s]) - if ("style" === s) - for (l in c = o[s]) c.hasOwnProperty(l) && (n || (n = {}), n[l] = ""); - else "dangerouslySetInnerHTML" !== s && "children" !== s && "suppressContentEditableWarning" !== s && "suppressHydrationWarning" !== s && "autoFocus" !== s && (h.hasOwnProperty(s) ? e || (e = []) : (e = e || []).push(s, null)); - for (s in a) { - var u = a[s]; - if (c = null != o ? o[s] : void 0, a.hasOwnProperty(s) && u !== c && (null != u || null != c)) - if ("style" === s) - if (c) { - for (l in c) !c.hasOwnProperty(l) || u && u.hasOwnProperty(l) || (n || (n = {}), n[l] = ""); - for (l in u) u.hasOwnProperty(l) && c[l] !== u[l] && (n || (n = {}), n[l] = u[l]) - } else n || (e || (e = []), e.push(s, n)), n = u; - else "dangerouslySetInnerHTML" === s ? (u = u ? u.__html : void 0, c = c ? c.__html : void 0, null != u && c !== u && (e = e || []).push(s, "" + u)) : "children" === s ? c === u || "string" != typeof u && "number" != typeof u || (e = e || []).push(s, "" + u) : "suppressContentEditableWarning" !== s && "suppressHydrationWarning" !== s && (h.hasOwnProperty(s) ? (null != u && Hn(i, s), e || c === u || (e = [])) : (e = e || []).push(s, u)) + if (e === t) break e; + for (; null === e.sibling;) { + if (null === e.return || e.return === t) break e; + e = e.return + } + e.sibling.return = e.return, e = e.sibling + } + a &= 1 + } + if (hr(Yi, a), 0 == (2 & t.mode)) t.memoizedState = null; + else switch (r) { + case "forwards": + for (n = t.child, r = null; null !== n;) null !== (e = n.alternate) && null === Gi(e) && (r = n), n = n.sibling; + null === (n = r) ? (r = t.child, t.child = null) : (r = n.sibling, n.sibling = null), os(t, !1, r, n, i, t.lastEffect); + break; + case "backwards": + for (n = null, r = t.child, t.child = null; null !== r;) { + if (null !== (e = r.alternate) && null === Gi(e)) { + t.child = r; + break + } + e = r.sibling, r.sibling = n, n = r, r = e } - n && (e = e || []).push("style", n), i = e, (t.updateQueue = i) && cs(t) - } - }, ns = function(e, t, n, a) { - n !== a && cs(t) - }; - var hs = "function" == typeof WeakSet ? WeakSet : Set; + os(t, !0, n, null, i, t.lastEffect); + break; + case "together": + os(t, !1, null, null, void 0, t.lastEffect); + break; + default: + t.memoizedState = null + } + return t.child + } - function ms(e, t) { - var n = t.source, - a = t.stack; - null === a && null !== n && (a = Q(n)), null !== n && Z(n.type), t = t.value, null !== e && 1 === e.tag && Z(e.type); - try { - console.error(t) - } catch (e) { - setTimeout((function() { - throw e - })) - } + function ls(e, t, n) { + null !== e && (t.dependencies = e.dependencies); + var a = t.expirationTime; + if (0 !== a && fl(a), t.childExpirationTime < n) return null; + if (null !== e && t.child !== e.child) throw Error(o(153)); + if (null !== t.child) { + for (n = Nl(e = t.child, e.pendingProps, e.expirationTime), t.child = n, n.return = t; null !== e.sibling;) e = e.sibling, (n = n.sibling = Nl(e, e.pendingProps, e.expirationTime)).return = t; + n.sibling = null } + return t.child + } - function fs(e) { - var t = e.ref; - if (null !== t) - if ("function" == typeof t) try { - t(null) - } catch (t) { - Al(e, t) - } else t.current = null + function cs(e) { + e.effectTag |= 4 + } + + function us(e, t) { + switch (e.tailMode) { + case "hidden": + t = e.tail; + for (var n = null; null !== t;) null !== t.alternate && (n = t), t = t.sibling; + null === n ? e.tail = null : n.sibling = null; + break; + case "collapsed": + n = e.tail; + for (var a = null; null !== n;) null !== n.alternate && (a = n), n = n.sibling; + null === a ? t || null === e.tail ? e.tail = null : e.tail.sibling = null : a.sibling = null } + } - function gs(e, t) { - switch (t.tag) { - case 0: - case 11: - case 15: - bs(2, 0, t); + function ds(e) { + switch (e.tag) { + case 1: + vr(e.type) && kr(); + var t = e.effectTag; + return 4096 & t ? (e.effectTag = -4097 & t | 64, e) : null; + case 3: + if (Hi(), _r(), 0 != (64 & (t = e.effectTag))) throw Error(o(285)); + return e.effectTag = -4097 & t | 64, e; + case 5: + return Wi(e), null; + case 13: + return pr(Yi), 4096 & (t = e.effectTag) ? (e.effectTag = -4097 & t | 64, e) : null; + case 19: + return pr(Yi), null; + case 4: + return Hi(), null; + case 10: + return si(e), null; + default: + return null + } + } + + function ps(e, t) { + return { + value: e, + source: t, + stack: Q(t) + } + } + es = function(e, t) { + for (var n = t.child; null !== n;) { + if (5 === n.tag || 6 === n.tag) e.appendChild(n.stateNode); + else if (4 !== n.tag && null !== n.child) { + n.child.return = n, n = n.child; + continue + } + if (n === t) break; + for (; null === n.sibling;) { + if (null === n.return || n.return === t) return; + n = n.return + } + n.sibling.return = n.return, n = n.sibling + } + }, ts = function(e, t, n, a, i) { + var o = e.memoizedProps; + if (o !== a) { + var s, l, c = t.stateNode; + switch (Bi(Li.current), e = null, n) { + case "input": + o = Ce(c, o), a = Ce(c, a), e = []; break; - case 1: - if (256 & t.effectTag && null !== e) { - var n = e.memoizedProps, - a = e.memoizedState; - t = (e = t.stateNode).getSnapshotBeforeUpdate(t.elementType === t.type ? n : ei(t.type, n), a), e.__reactInternalSnapshotBeforeUpdate = t - } + case "option": + o = Me(c, o), a = Me(c, a), e = []; break; - case 3: - case 5: - case 6: - case 4: - case 17: + case "select": + o = r({}, o, { + value: void 0 + }), a = r({}, a, { + value: void 0 + }), e = []; + break; + case "textarea": + o = Oe(c, o), a = Oe(c, a), e = []; break; default: - throw Error(o(163)) + "function" != typeof o.onClick && "function" == typeof a.onClick && (c.onclick = Vn) + } + for (s in Bn(n, a), n = null, o) + if (!a.hasOwnProperty(s) && o.hasOwnProperty(s) && null != o[s]) + if ("style" === s) + for (l in c = o[s]) c.hasOwnProperty(l) && (n || (n = {}), n[l] = ""); + else "dangerouslySetInnerHTML" !== s && "children" !== s && "suppressContentEditableWarning" !== s && "suppressHydrationWarning" !== s && "autoFocus" !== s && (h.hasOwnProperty(s) ? e || (e = []) : (e = e || []).push(s, null)); + for (s in a) { + var u = a[s]; + if (c = null != o ? o[s] : void 0, a.hasOwnProperty(s) && u !== c && (null != u || null != c)) + if ("style" === s) + if (c) { + for (l in c) !c.hasOwnProperty(l) || u && u.hasOwnProperty(l) || (n || (n = {}), n[l] = ""); + for (l in u) u.hasOwnProperty(l) && c[l] !== u[l] && (n || (n = {}), n[l] = u[l]) + } else n || (e || (e = []), e.push(s, n)), n = u; + else "dangerouslySetInnerHTML" === s ? (u = u ? u.__html : void 0, c = c ? c.__html : void 0, null != u && c !== u && (e = e || []).push(s, "" + u)) : "children" === s ? c === u || "string" != typeof u && "number" != typeof u || (e = e || []).push(s, "" + u) : "suppressContentEditableWarning" !== s && "suppressHydrationWarning" !== s && (h.hasOwnProperty(s) ? (null != u && Hn(i, s), e || c === u || (e = [])) : (e = e || []).push(s, u)) } + n && (e = e || []).push("style", n), i = e, (t.updateQueue = i) && cs(t) } + }, ns = function(e, t, n, a) { + n !== a && cs(t) + }; + var hs = "function" == typeof WeakSet ? WeakSet : Set; - function bs(e, t, n) { - if (null !== (n = null !== (n = n.updateQueue) ? n.lastEffect : null)) { - var a = n = n.next; - do { - if (0 != (a.tag & e)) { - var r = a.destroy; - a.destroy = void 0, void 0 !== r && r() - } - 0 != (a.tag & t) && (r = a.create, a.destroy = r()), a = a.next - } while (a !== n) - } + function ms(e, t) { + var n = t.source, + a = t.stack; + null === a && null !== n && (a = Q(n)), null !== n && Z(n.type), t = t.value, null !== e && 1 === e.tag && Z(e.type); + try { + console.error(t) + } catch (e) { + setTimeout((function() { + throw e + })) } + } - function ys(e, t, n) { - switch ("function" == typeof Tl && Tl(t), t.tag) { - case 0: - case 11: - case 14: - case 15: - if (null !== (e = t.updateQueue) && null !== (e = e.lastEffect)) { - var a = e.next; - Gr(97 < n ? 97 : n, (function() { - var e = a; - do { - var n = e.destroy; - if (void 0 !== n) { - var r = t; - try { - n() - } catch (e) { - Al(r, e) - } - } - e = e.next - } while (e !== a) - })) - } - break; - case 1: - fs(t), "function" == typeof(n = t.stateNode).componentWillUnmount && function(e, t) { - try { - t.props = e.memoizedProps, t.state = e.memoizedState, t.componentWillUnmount() - } catch (t) { - Al(e, t) - } - }(t, n); - break; - case 5: - fs(t); - break; - case 4: - ws(e, t, n) - } - } + function fs(e) { + var t = e.ref; + if (null !== t) + if ("function" == typeof t) try { + t(null) + } catch (t) { + Al(e, t) + } else t.current = null + } - function vs(e) { - var t = e.alternate; - e.return = null, e.child = null, e.memoizedState = null, e.updateQueue = null, e.dependencies = null, e.alternate = null, e.firstEffect = null, e.lastEffect = null, e.pendingProps = null, e.memoizedProps = null, null !== t && vs(t) + function gs(e, t) { + switch (t.tag) { + case 0: + case 11: + case 15: + bs(2, 0, t); + break; + case 1: + if (256 & t.effectTag && null !== e) { + var n = e.memoizedProps, + a = e.memoizedState; + t = (e = t.stateNode).getSnapshotBeforeUpdate(t.elementType === t.type ? n : ei(t.type, n), a), e.__reactInternalSnapshotBeforeUpdate = t + } + break; + case 3: + case 5: + case 6: + case 4: + case 17: + break; + default: + throw Error(o(163)) } + } - function ks(e) { - return 5 === e.tag || 3 === e.tag || 4 === e.tag + function bs(e, t, n) { + if (null !== (n = null !== (n = n.updateQueue) ? n.lastEffect : null)) { + var a = n = n.next; + do { + if (0 != (a.tag & e)) { + var r = a.destroy; + a.destroy = void 0, void 0 !== r && r() + } + 0 != (a.tag & t) && (r = a.create, a.destroy = r()), a = a.next + } while (a !== n) } + } - function _s(e) { - e: { - for (var t = e.return; null !== t;) { - if (ks(t)) { - var n = t; - break e + function ys(e, t, n) { + switch ("function" == typeof jl && jl(t), t.tag) { + case 0: + case 11: + case 14: + case 15: + if (null !== (e = t.updateQueue) && null !== (e = e.lastEffect)) { + var a = e.next; + Gr(97 < n ? 97 : n, (function() { + var e = a; + do { + var n = e.destroy; + if (void 0 !== n) { + var r = t; + try { + n() + } catch (e) { + Al(r, e) + } + } + e = e.next + } while (e !== a) + })) + } + break; + case 1: + fs(t), "function" == typeof(n = t.stateNode).componentWillUnmount && function(e, t) { + try { + t.props = e.memoizedProps, t.state = e.memoizedState, t.componentWillUnmount() + } catch (t) { + Al(e, t) } - t = t.return + }(t, n); + break; + case 5: + fs(t); + break; + case 4: + ws(e, t, n) + } + } + + function vs(e) { + var t = e.alternate; + e.return = null, e.child = null, e.memoizedState = null, e.updateQueue = null, e.dependencies = null, e.alternate = null, e.firstEffect = null, e.lastEffect = null, e.pendingProps = null, e.memoizedProps = null, null !== t && vs(t) + } + + function ks(e) { + return 5 === e.tag || 3 === e.tag || 4 === e.tag + } + + function _s(e) { + e: { + for (var t = e.return; null !== t;) { + if (ks(t)) { + var n = t; + break e + } + t = t.return + } + throw Error(o(160)) + } + switch (t = n.stateNode, n.tag) { + case 5: + var a = !1; + break; + case 3: + case 4: + t = t.containerInfo, a = !0; + break; + default: + throw Error(o(161)) + } + 16 & n.effectTag && (Ve(t, ""), n.effectTag &= -17);e: t: for (n = e;;) { + for (; null === n.sibling;) { + if (null === n.return || ks(n.return)) { + n = null; + break e } - throw Error(o(160)) + n = n.return } - switch (t = n.stateNode, n.tag) { - case 5: - var a = !1; - break; - case 3: - case 4: - t = t.containerInfo, a = !0; - break; - default: - throw Error(o(161)) + for (n.sibling.return = n.return, n = n.sibling; 5 !== n.tag && 6 !== n.tag && 18 !== n.tag;) { + if (2 & n.effectTag) continue t; + if (null === n.child || 4 === n.tag) continue t; + n.child.return = n, n = n.child } - 16 & n.effectTag && (Ve(t, ""), n.effectTag &= -17);e: t: for (n = e;;) { - for (; null === n.sibling;) { - if (null === n.return || ks(n.return)) { - n = null; - break e + if (!(2 & n.effectTag)) { + n = n.stateNode; + break e + } + } + for (var r = e;;) { + var i = 5 === r.tag || 6 === r.tag; + if (i) { + var s = i ? r.stateNode : r.stateNode.instance; + if (n) + if (a) { + var l = s; + s = n, 8 === (i = t).nodeType ? i.parentNode.insertBefore(l, s) : i.insertBefore(l, s) + } else t.insertBefore(s, n); + else a ? (8 === (l = t).nodeType ? (i = l.parentNode).insertBefore(s, l) : (i = l).appendChild(s), null != (l = l._reactRootContainer) || null !== i.onclick || (i.onclick = Vn)) : t.appendChild(s) + } else if (4 !== r.tag && null !== r.child) { + r.child.return = r, r = r.child; + continue + } + if (r === e) break; + for (; null === r.sibling;) { + if (null === r.return || r.return === e) return; + r = r.return + } + r.sibling.return = r.return, r = r.sibling + } + } + + function ws(e, t, n) { + for (var a, r, i = t, s = !1;;) { + if (!s) { + s = i.return; + e: for (;;) { + if (null === s) throw Error(o(160)); + switch (a = s.stateNode, s.tag) { + case 5: + r = !1; + break e; + case 3: + case 4: + a = a.containerInfo, r = !0; + break e } - n = n.return - } - for (n.sibling.return = n.return, n = n.sibling; 5 !== n.tag && 6 !== n.tag && 18 !== n.tag;) { - if (2 & n.effectTag) continue t; - if (null === n.child || 4 === n.tag) continue t; - n.child.return = n, n = n.child - } - if (!(2 & n.effectTag)) { - n = n.stateNode; - break e + s = s.return } + s = !0 } - for (var r = e;;) { - var i = 5 === r.tag || 6 === r.tag; - if (i) { - var s = i ? r.stateNode : r.stateNode.instance; - if (n) - if (a) { - var l = s; - s = n, 8 === (i = t).nodeType ? i.parentNode.insertBefore(l, s) : i.insertBefore(l, s) - } else t.insertBefore(s, n); - else a ? (8 === (l = t).nodeType ? (i = l.parentNode).insertBefore(s, l) : (i = l).appendChild(s), null != (l = l._reactRootContainer) || null !== i.onclick || (i.onclick = Vn)) : t.appendChild(s) - } else if (4 !== r.tag && null !== r.child) { - r.child.return = r, r = r.child; + if (5 === i.tag || 6 === i.tag) { + e: for (var l = e, c = i, u = n, d = c;;) + if (ys(l, d, u), null !== d.child && 4 !== d.tag) d.child.return = d, d = d.child; + else { + if (d === c) break; + for (; null === d.sibling;) { + if (null === d.return || d.return === c) break e; + d = d.return + } + d.sibling.return = d.return, d = d.sibling + }r ? (l = a, c = i.stateNode, 8 === l.nodeType ? l.parentNode.removeChild(c) : l.removeChild(c)) : a.removeChild(i.stateNode) + } + else if (4 === i.tag) { + if (null !== i.child) { + a = i.stateNode.containerInfo, r = !0, i.child.return = i, i = i.child; continue } - if (r === e) break; - for (; null === r.sibling;) { - if (null === r.return || r.return === e) return; - r = r.return - } - r.sibling.return = r.return, r = r.sibling + } else if (ys(e, i, n), null !== i.child) { + i.child.return = i, i = i.child; + continue } + if (i === t) break; + for (; null === i.sibling;) { + if (null === i.return || i.return === t) return; + 4 === (i = i.return).tag && (s = !1) + } + i.sibling.return = i.return, i = i.sibling } + } - function ws(e, t, n) { - for (var a, r, i = t, s = !1;;) { - if (!s) { - s = i.return; - e: for (;;) { - if (null === s) throw Error(o(160)); - switch (a = s.stateNode, s.tag) { - case 5: - r = !1; - break e; - case 3: - case 4: - a = a.containerInfo, r = !0; - break e + function Ss(e, t) { + switch (t.tag) { + case 0: + case 11: + case 14: + case 15: + bs(4, 8, t); + break; + case 1: + case 12: + case 17: + case 20: + case 21: + break; + case 5: + var n = t.stateNode; + if (null != n) { + var a = t.memoizedProps, + r = null !== e ? e.memoizedProps : a; + e = t.type; + var i = t.updateQueue; + if (t.updateQueue = null, null !== i) { + for (n[ca] = a, "input" === e && "radio" === a.type && null != a.name && Te(n, a), Un(e, r), t = Un(e, a), r = 0; r < i.length; r += 2) { + var s = i[r], + l = i[r + 1]; + "style" === s ? Fn(n, l) : "dangerouslySetInnerHTML" === s ? He(n, l) : "children" === s ? Ve(n, l) : we(n, s, l, t) + } + switch (e) { + case "input": + De(n, a); + break; + case "textarea": + Re(n, a); + break; + case "select": + t = n._wrapperState.wasMultiple, n._wrapperState.wasMultiple = !!a.multiple, null != (e = a.value) ? Ie(n, !!a.multiple, e, !1) : t !== !!a.multiple && (null != a.defaultValue ? Ie(n, !!a.multiple, a.defaultValue, !0) : Ie(n, !!a.multiple, a.multiple ? [] : "", !1)) + } + } + } + break; + case 6: + if (null === t.stateNode) throw Error(o(162)); + t.stateNode.nodeValue = t.memoizedProps; + break; + case 3: + (t = t.stateNode).hydrate && (t.hydrate = !1, Ct(t.containerInfo)); + break; + case 13: + if (n = t, null === t.memoizedState ? a = !1 : (a = !0, n = t.child, Hs = Vr()), null !== n) e: for (e = n;;) { + if (5 === e.tag) i = e.stateNode, a ? "function" == typeof(i = i.style).setProperty ? i.setProperty("display", "none", "important") : i.display = "none" : (i = e.stateNode, r = null != (r = e.memoizedProps.style) && r.hasOwnProperty("display") ? r.display : null, i.style.display = Ln("display", r)); + else if (6 === e.tag) e.stateNode.nodeValue = a ? "" : e.memoizedProps; + else { + if (13 === e.tag && null !== e.memoizedState && null === e.memoizedState.dehydrated) { + (i = e.child.sibling).return = e, e = i; + continue + } + if (null !== e.child) { + e.child.return = e, e = e.child; + continue } - s = s.return } - s = !0 - } - if (5 === i.tag || 6 === i.tag) { - e: for (var l = e, c = i, u = n, d = c;;) - if (ys(l, d, u), null !== d.child && 4 !== d.tag) d.child.return = d, d = d.child; - else { - if (d === c) break; - for (; null === d.sibling;) { - if (null === d.return || d.return === c) break e; - d = d.return - } - d.sibling.return = d.return, d = d.sibling - }r ? (l = a, c = i.stateNode, 8 === l.nodeType ? l.parentNode.removeChild(c) : l.removeChild(c)) : a.removeChild(i.stateNode) - } - else if (4 === i.tag) { - if (null !== i.child) { - a = i.stateNode.containerInfo, r = !0, i.child.return = i, i = i.child; - continue + if (e === n) break e; + for (; null === e.sibling;) { + if (null === e.return || e.return === n) break e; + e = e.return } - } else if (ys(e, i, n), null !== i.child) { - i.child.return = i, i = i.child; - continue + e.sibling.return = e.return, e = e.sibling + } + Es(t); + break; + case 19: + Es(t); + break; + default: + throw Error(o(163)) + } + } + + function Es(e) { + var t = e.updateQueue; + if (null !== t) { + e.updateQueue = null; + var n = e.stateNode; + null === n && (n = e.stateNode = new hs), t.forEach((function(t) { + var a = Dl.bind(null, e, t); + n.has(t) || (n.add(t), t.then(a, a)) + })) + } + } + var xs = "function" == typeof WeakMap ? WeakMap : Map; + + function Cs(e, t, n) { + (n = mi(n, null)).tag = 3, n.payload = { + element: null + }; + var a = t.value; + return n.callback = function() { + Ws || (Ws = !0, Ys = a), ms(e, t) + }, n + } + + function As(e, t, n) { + (n = mi(n, null)).tag = 3; + var a = e.type.getDerivedStateFromError; + if ("function" == typeof a) { + var r = t.value; + n.payload = function() { + return ms(e, t), a(r) + } + } + var i = e.stateNode; + return null !== i && "function" == typeof i.componentDidCatch && (n.callback = function() { + "function" != typeof a && (null === Gs ? Gs = new Set([this]) : Gs.add(this), ms(e, t)); + var n = t.stack; + this.componentDidCatch(t.value, { + componentStack: null !== n ? n : "" + }) + }), n + } + var Ts, Ds = Math.ceil, + Ps = I.ReactCurrentDispatcher, + js = I.ReactCurrentOwner, + Ms = 0, + Is = null, + Os = null, + Ns = 0, + Rs = 0, + zs = null, + Ls = 1073741823, + Fs = 1073741823, + qs = null, + Bs = 0, + Us = !1, + Hs = 0, + Vs = null, + Ws = !1, + Ys = null, + Gs = null, + Ks = !1, + $s = null, + Js = 90, + Zs = null, + Qs = 0, + Xs = null, + el = 0; + + function tl() { + return 0 != (48 & Ms) ? 1073741821 - (Vr() / 10 | 0) : 0 !== el ? el : el = 1073741821 - (Vr() / 10 | 0) + } + + function nl(e, t, n) { + if (0 == (2 & (t = t.mode))) return 1073741823; + var a = Wr(); + if (0 == (4 & t)) return 99 === a ? 1073741823 : 1073741822; + if (0 != (16 & Ms)) return Ns; + if (null !== n) e = Xr(e, 0 | n.timeoutMs || 5e3, 250); + else switch (a) { + case 99: + e = 1073741823; + break; + case 98: + e = Xr(e, 150, 100); + break; + case 97: + case 96: + e = Xr(e, 5e3, 250); + break; + case 95: + e = 2; + break; + default: + throw Error(o(326)) + } + return null !== Is && e === Ns && --e, e + } + + function al(e, t) { + if (50 < Qs) throw Qs = 0, Xs = null, Error(o(185)); + if (null !== (e = rl(e, t))) { + var n = Wr(); + 1073741823 === t ? 0 != (8 & Ms) && 0 == (48 & Ms) ? ll(e) : (ol(e), 0 === Ms && Jr()) : ol(e), 0 == (4 & Ms) || 98 !== n && 99 !== n || (null === Zs ? Zs = new Map([ + [e, t] + ]) : (void 0 === (n = Zs.get(e)) || n > t) && Zs.set(e, t)) + } + } + + function rl(e, t) { + e.expirationTime < t && (e.expirationTime = t); + var n = e.alternate; + null !== n && n.expirationTime < t && (n.expirationTime = t); + var a = e.return, + r = null; + if (null === a && 3 === e.tag) r = e.stateNode; + else + for (; null !== a;) { + if (n = a.alternate, a.childExpirationTime < t && (a.childExpirationTime = t), null !== n && n.childExpirationTime < t && (n.childExpirationTime = t), null === a.return && 3 === a.tag) { + r = a.stateNode; + break } - if (i === t) break; - for (; null === i.sibling;) { - if (null === i.return || i.return === t) return; - 4 === (i = i.return).tag && (s = !1) + a = a.return + } + return null !== r && (Is === r && (fl(t), 4 === Rs && Ul(r, Ns)), Hl(r, t)), r + } + + function il(e) { + var t = e.lastExpiredTime; + return 0 !== t ? t : Bl(e, t = e.firstPendingTime) ? (t = e.lastPingedTime) > (e = e.nextKnownPendingLevel) ? t : e : t + } + + function ol(e) { + if (0 !== e.lastExpiredTime) e.callbackExpirationTime = 1073741823, e.callbackPriority = 99, e.callbackNode = $r(ll.bind(null, e)); + else { + var t = il(e), + n = e.callbackNode; + if (0 === t) null !== n && (e.callbackNode = null, e.callbackExpirationTime = 0, e.callbackPriority = 90); + else { + var a = tl(); + if (a = 1073741823 === t ? 99 : 1 === t || 2 === t ? 95 : 0 >= (a = 10 * (1073741821 - t) - 10 * (1073741821 - a)) ? 99 : 250 >= a ? 98 : 5250 >= a ? 97 : 95, null !== n) { + var r = e.callbackPriority; + if (e.callbackExpirationTime === t && r >= a) return; + n !== Lr && Tr(n) } - i.sibling.return = i.return, i = i.sibling + e.callbackExpirationTime = t, e.callbackPriority = a, t = 1073741823 === t ? $r(ll.bind(null, e)) : Kr(a, sl.bind(null, e), { + timeout: 10 * (1073741821 - t) - Vr() + }), e.callbackNode = t } } + } - function Ss(e, t) { - switch (t.tag) { - case 0: - case 11: - case 14: - case 15: - bs(4, 8, t); - break; - case 1: - case 12: - case 17: - case 20: - case 21: - break; - case 5: - var n = t.stateNode; - if (null != n) { - var a = t.memoizedProps, - r = null !== e ? e.memoizedProps : a; - e = t.type; - var i = t.updateQueue; - if (t.updateQueue = null, null !== i) { - for (n[ca] = a, "input" === e && "radio" === a.type && null != a.name && je(n, a), Un(e, r), t = Un(e, a), r = 0; r < i.length; r += 2) { - var s = i[r], - l = i[r + 1]; - "style" === s ? Fn(n, l) : "dangerouslySetInnerHTML" === s ? He(n, l) : "children" === s ? Ve(n, l) : we(n, s, l, t) + function sl(e, t) { + if (el = 0, t) return Vl(e, t = tl()), ol(e), null; + var n = il(e); + if (0 !== n) { + if (t = e.callbackNode, 0 != (48 & Ms)) throw Error(o(327)); + if (El(), e === Is && n === Ns || dl(e, n), null !== Os) { + var a = Ms; + Ms |= 16; + for (var r = hl();;) try { + bl(); + break + } catch (t) { + pl(e, t) + } + if (ii(), Ms = a, Ps.current = r, 1 === Rs) throw t = zs, dl(e, n), Ul(e, n), ol(e), t; + if (null === Os) switch (r = e.finishedWork = e.current.alternate, e.finishedExpirationTime = n, a = Rs, Is = null, a) { + case 0: + case 1: + throw Error(o(345)); + case 2: + Vl(e, 2 < n ? 2 : n); + break; + case 3: + if (Ul(e, n), n === (a = e.lastSuspendedTime) && (e.nextKnownPendingLevel = kl(r)), 1073741823 === Ls && 10 < (r = Hs + 500 - Vr())) { + if (Us) { + var i = e.lastPingedTime; + if (0 === i || i >= n) { + e.lastPingedTime = n, dl(e, n); + break + } } - switch (e) { - case "input": - Pe(n, a); - break; - case "textarea": - ze(n, a); - break; - case "select": - t = n._wrapperState.wasMultiple, n._wrapperState.wasMultiple = !!a.multiple, null != (e = a.value) ? Me(n, !!a.multiple, e, !1) : t !== !!a.multiple && (null != a.defaultValue ? Me(n, !!a.multiple, a.defaultValue, !0) : Me(n, !!a.multiple, a.multiple ? [] : "", !1)) + if (0 !== (i = il(e)) && i !== n) break; + if (0 !== a && a !== n) { + e.lastPingedTime = a; + break } + e.timeoutHandle = aa(_l.bind(null, e), r); + break } - } - break; - case 6: - if (null === t.stateNode) throw Error(o(162)); - t.stateNode.nodeValue = t.memoizedProps; - break; - case 3: - (t = t.stateNode).hydrate && (t.hydrate = !1, Ct(t.containerInfo)); - break; - case 13: - if (n = t, null === t.memoizedState ? a = !1 : (a = !0, n = t.child, Hs = Vr()), null !== n) e: for (e = n;;) { - if (5 === e.tag) i = e.stateNode, a ? "function" == typeof(i = i.style).setProperty ? i.setProperty("display", "none", "important") : i.display = "none" : (i = e.stateNode, r = null != (r = e.memoizedProps.style) && r.hasOwnProperty("display") ? r.display : null, i.style.display = Ln("display", r)); - else if (6 === e.tag) e.stateNode.nodeValue = a ? "" : e.memoizedProps; - else { - if (13 === e.tag && null !== e.memoizedState && null === e.memoizedState.dehydrated) { - (i = e.child.sibling).return = e, e = i; - continue - } - if (null !== e.child) { - e.child.return = e, e = e.child; - continue - } + _l(e); + break; + case 4: + if (Ul(e, n), n === (a = e.lastSuspendedTime) && (e.nextKnownPendingLevel = kl(r)), Us && (0 === (r = e.lastPingedTime) || r >= n)) { + e.lastPingedTime = n, dl(e, n); + break } - if (e === n) break e; - for (; null === e.sibling;) { - if (null === e.return || e.return === n) break e; - e = e.return + if (0 !== (r = il(e)) && r !== n) break; + if (0 !== a && a !== n) { + e.lastPingedTime = a; + break } - e.sibling.return = e.return, e = e.sibling - } - Es(t); - break; - case 19: - Es(t); - break; - default: - throw Error(o(163)) + if (1073741823 !== Fs ? a = 10 * (1073741821 - Fs) - Vr() : 1073741823 === Ls ? a = 0 : (a = 10 * (1073741821 - Ls) - 5e3, 0 > (a = (r = Vr()) - a) && (a = 0), (n = 10 * (1073741821 - n) - r) < (a = (120 > a ? 120 : 480 > a ? 480 : 1080 > a ? 1080 : 1920 > a ? 1920 : 3e3 > a ? 3e3 : 4320 > a ? 4320 : 1960 * Ds(a / 1960)) - a) && (a = n)), 10 < a) { + e.timeoutHandle = aa(_l.bind(null, e), a); + break + } + _l(e); + break; + case 5: + if (1073741823 !== Ls && null !== qs) { + i = Ls; + var s = qs; + if (0 >= (a = 0 | s.busyMinDurationMs) ? a = 0 : (r = 0 | s.busyDelayMs, a = (i = Vr() - (10 * (1073741821 - i) - (0 | s.timeoutMs || 5e3))) <= r ? 0 : r + a - i), 10 < a) { + Ul(e, n), e.timeoutHandle = aa(_l.bind(null, e), a); + break + } + } + _l(e); + break; + default: + throw Error(o(329)) + } + if (ol(e), e.callbackNode === t) return sl.bind(null, e) } } + return null + } - function Es(e) { - var t = e.updateQueue; - if (null !== t) { - e.updateQueue = null; - var n = e.stateNode; - null === n && (n = e.stateNode = new hs), t.forEach((function(t) { - var a = Pl.bind(null, e, t); - n.has(t) || (n.add(t), t.then(a, a)) - })) + function ll(e) { + var t = e.lastExpiredTime; + if (t = 0 !== t ? t : 1073741823, e.finishedExpirationTime === t) _l(e); + else { + if (0 != (48 & Ms)) throw Error(o(327)); + if (El(), e === Is && t === Ns || dl(e, t), null !== Os) { + var n = Ms; + Ms |= 16; + for (var a = hl();;) try { + gl(); + break + } catch (t) { + pl(e, t) + } + if (ii(), Ms = n, Ps.current = a, 1 === Rs) throw n = zs, dl(e, t), Ul(e, t), ol(e), n; + if (null !== Os) throw Error(o(261)); + e.finishedWork = e.current.alternate, e.finishedExpirationTime = t, Is = null, _l(e), ol(e) } } - var xs = "function" == typeof WeakMap ? WeakMap : Map; + return null + } - function Cs(e, t, n) { - (n = mi(n, null)).tag = 3, n.payload = { - element: null - }; - var a = t.value; - return n.callback = function() { - Ws || (Ws = !0, Ys = a), ms(e, t) - }, n - } - - function As(e, t, n) { - (n = mi(n, null)).tag = 3; - var a = e.type.getDerivedStateFromError; - if ("function" == typeof a) { - var r = t.value; - n.payload = function() { - return ms(e, t), a(r) - } - } - var i = e.stateNode; - return null !== i && "function" == typeof i.componentDidCatch && (n.callback = function() { - "function" != typeof a && (null === Gs ? Gs = new Set([this]) : Gs.add(this), ms(e, t)); - var n = t.stack; - this.componentDidCatch(t.value, { - componentStack: null !== n ? n : "" - }) - }), n - } - var js, Ps = Math.ceil, - Ds = M.ReactCurrentDispatcher, - Ts = M.ReactCurrentOwner, - Os = 0, - Ms = null, - Is = null, - Ns = 0, - zs = 0, - Rs = null, - Ls = 1073741823, - Fs = 1073741823, - qs = null, - Bs = 0, - Us = !1, - Hs = 0, - Vs = null, - Ws = !1, - Ys = null, - Gs = null, - Ks = !1, - $s = null, - Js = 90, - Zs = null, - Qs = 0, - Xs = null, - el = 0; - - function tl() { - return 0 != (48 & Os) ? 1073741821 - (Vr() / 10 | 0) : 0 !== el ? el : el = 1073741821 - (Vr() / 10 | 0) - } - - function nl(e, t, n) { - if (0 == (2 & (t = t.mode))) return 1073741823; - var a = Wr(); - if (0 == (4 & t)) return 99 === a ? 1073741823 : 1073741822; - if (0 != (16 & Os)) return Ns; - if (null !== n) e = Xr(e, 0 | n.timeoutMs || 5e3, 250); - else switch (a) { - case 99: - e = 1073741823; - break; - case 98: - e = Xr(e, 150, 100); - break; - case 97: - case 96: - e = Xr(e, 5e3, 250); - break; - case 95: - e = 2; - break; - default: - throw Error(o(326)) - } - return null !== Ms && e === Ns && --e, e + function cl(e, t) { + var n = Ms; + Ms |= 1; + try { + return e(t) + } finally { + 0 === (Ms = n) && Jr() } + } - function al(e, t) { - if (50 < Qs) throw Qs = 0, Xs = null, Error(o(185)); - if (null !== (e = rl(e, t))) { - var n = Wr(); - 1073741823 === t ? 0 != (8 & Os) && 0 == (48 & Os) ? ll(e) : (ol(e), 0 === Os && Jr()) : ol(e), 0 == (4 & Os) || 98 !== n && 99 !== n || (null === Zs ? Zs = new Map([ - [e, t] - ]) : (void 0 === (n = Zs.get(e)) || n > t) && Zs.set(e, t)) - } + function ul(e, t) { + var n = Ms; + Ms &= -2, Ms |= 8; + try { + return e(t) + } finally { + 0 === (Ms = n) && Jr() } + } - function rl(e, t) { - e.expirationTime < t && (e.expirationTime = t); - var n = e.alternate; - null !== n && n.expirationTime < t && (n.expirationTime = t); - var a = e.return, - r = null; - if (null === a && 3 === e.tag) r = e.stateNode; - else - for (; null !== a;) { - if (n = a.alternate, a.childExpirationTime < t && (a.childExpirationTime = t), null !== n && n.childExpirationTime < t && (n.childExpirationTime = t), null === a.return && 3 === a.tag) { - r = a.stateNode; - break - } - a = a.return + function dl(e, t) { + e.finishedWork = null, e.finishedExpirationTime = 0; + var n = e.timeoutHandle; + if (-1 !== n && (e.timeoutHandle = -1, ra(n)), null !== Os) + for (n = Os.return; null !== n;) { + var a = n; + switch (a.tag) { + case 1: + null != a.type.childContextTypes && kr(); + break; + case 3: + Hi(), _r(); + break; + case 5: + Wi(a); + break; + case 4: + Hi(); + break; + case 13: + case 19: + pr(Yi); + break; + case 10: + si(a) } - return null !== r && (Ms === r && (fl(t), 4 === zs && Ul(r, Ns)), Hl(r, t)), r - } - - function il(e) { - var t = e.lastExpiredTime; - return 0 !== t ? t : Bl(e, t = e.firstPendingTime) ? (t = e.lastPingedTime) > (e = e.nextKnownPendingLevel) ? t : e : t - } + n = n.return + } + Is = e, Os = Nl(e.current, null), Ns = t, Rs = 0, zs = null, Fs = Ls = 1073741823, qs = null, Bs = 0, Us = !1 + } - function ol(e) { - if (0 !== e.lastExpiredTime) e.callbackExpirationTime = 1073741823, e.callbackPriority = 99, e.callbackNode = $r(ll.bind(null, e)); - else { - var t = il(e), - n = e.callbackNode; - if (0 === t) null !== n && (e.callbackNode = null, e.callbackExpirationTime = 0, e.callbackPriority = 90); - else { - var a = tl(); - if (a = 1073741823 === t ? 99 : 1 === t || 2 === t ? 95 : 0 >= (a = 10 * (1073741821 - t) - 10 * (1073741821 - a)) ? 99 : 250 >= a ? 98 : 5250 >= a ? 97 : 95, null !== n) { - var r = e.callbackPriority; - if (e.callbackExpirationTime === t && r >= a) return; - n !== Lr && jr(n) + function pl(e, t) { + for (;;) { + try { + if (ii(), mo(), null === Os || null === Os.return) return Rs = 1, zs = t, null; + e: { + var n = e, + a = Os.return, + r = Os, + i = t; + if (t = Ns, r.effectTag |= 2048, r.firstEffect = r.lastEffect = null, null !== i && "object" == typeof i && "function" == typeof i.then) { + var o = i, + s = 0 != (1 & Yi.current), + l = a; + do { + var c; + if (c = 13 === l.tag) { + var u = l.memoizedState; + if (null !== u) c = null !== u.dehydrated; + else { + var d = l.memoizedProps; + c = void 0 !== d.fallback && (!0 !== d.unstable_avoidThisFallback || !s) + } + } + if (c) { + var p = l.updateQueue; + if (null === p) { + var h = new Set; + h.add(o), l.updateQueue = h + } else p.add(o); + if (0 == (2 & l.mode)) { + if (l.effectTag |= 64, r.effectTag &= -2981, 1 === r.tag) + if (null === r.alternate) r.tag = 17; + else { + var m = mi(1073741823, null); + m.tag = 2, gi(r, m) + } r.expirationTime = 1073741823; + break e + } + i = void 0, r = t; + var f = n.pingCache; + if (null === f ? (f = n.pingCache = new xs, i = new Set, f.set(o, i)) : void 0 === (i = f.get(o)) && (i = new Set, f.set(o, i)), !i.has(r)) { + i.add(r); + var g = Tl.bind(null, n, o, r); + o.then(g, g) + } + l.effectTag |= 4096, l.expirationTime = t; + break e + } + l = l.return + } while (null !== l); + i = Error((Z(r.type) || "A React component") + " suspended while rendering, but no fallback UI was specified.\n\nAdd a component higher in the tree to provide a loading indicator or placeholder to display." + Q(r)) } - e.callbackExpirationTime = t, e.callbackPriority = a, t = 1073741823 === t ? $r(ll.bind(null, e)) : Kr(a, sl.bind(null, e), { - timeout: 10 * (1073741821 - t) - Vr() - }), e.callbackNode = t + 5 !== Rs && (Rs = 2), + i = ps(i, r), + l = a;do { + switch (l.tag) { + case 3: + o = i, l.effectTag |= 4096, l.expirationTime = t, bi(l, Cs(l, o, t)); + break e; + case 1: + o = i; + var b = l.type, + y = l.stateNode; + if (0 == (64 & l.effectTag) && ("function" == typeof b.getDerivedStateFromError || null !== y && "function" == typeof y.componentDidCatch && (null === Gs || !Gs.has(y)))) { + l.effectTag |= 4096, l.expirationTime = t, bi(l, As(l, o, t)); + break e + } + } + l = l.return + } while (null !== l) } + Os = vl(Os) + } catch (e) { + t = e; + continue } + break } + } - function sl(e, t) { - if (el = 0, t) return Vl(e, t = tl()), ol(e), null; - var n = il(e); - if (0 !== n) { - if (t = e.callbackNode, 0 != (48 & Os)) throw Error(o(327)); - if (El(), e === Ms && n === Ns || dl(e, n), null !== Is) { - var a = Os; - Os |= 16; - for (var r = hl();;) try { - bl(); - break - } catch (t) { - pl(e, t) - } - if (ii(), Os = a, Ds.current = r, 1 === zs) throw t = Rs, dl(e, n), Ul(e, n), ol(e), t; - if (null === Is) switch (r = e.finishedWork = e.current.alternate, e.finishedExpirationTime = n, a = zs, Ms = null, a) { + function hl() { + var e = Ps.current; + return Ps.current = jo, null === e ? jo : e + } + + function ml(e, t) { + e < Ls && 2 < e && (Ls = e), null !== t && e < Fs && 2 < e && (Fs = e, qs = t) + } + + function fl(e) { + e > Bs && (Bs = e) + } + + function gl() { + for (; null !== Os;) Os = yl(Os) + } + + function bl() { + for (; null !== Os && !Dr();) Os = yl(Os) + } + + function yl(e) { + var t = Ts(e.alternate, e, Ns); + return e.memoizedProps = e.pendingProps, null === t && (t = vl(e)), js.current = null, t + } + + function vl(e) { + Os = e; + do { + var t = Os.alternate; + if (e = Os.return, 0 == (2048 & Os.effectTag)) { + e: { + var n = t, + a = Ns, + i = (t = Os).pendingProps; + switch (t.tag) { + case 2: + case 16: + case 15: case 0: + case 11: + case 7: + case 8: + case 12: + case 9: + case 14: + case 20: + case 21: + break; case 1: - throw Error(o(345)); - case 2: - Vl(e, 2 < n ? 2 : n); + case 17: + vr(t.type) && kr(); break; case 3: - if (Ul(e, n), n === (a = e.lastSuspendedTime) && (e.nextKnownPendingLevel = kl(r)), 1073741823 === Ls && 10 < (r = Hs + 500 - Vr())) { - if (Us) { - var i = e.lastPingedTime; - if (0 === i || i >= n) { - e.lastPingedTime = n, dl(e, n); - break + Hi(), _r(), (i = t.stateNode).pendingContext && (i.context = i.pendingContext, i.pendingContext = null), (null === n || null === n.child) && Bo(t) && cs(t); + break; + case 5: + Wi(t), a = Bi(qi.current); + var s = t.type; + if (null !== n && null != t.stateNode) ts(n, t, s, i, a), n.ref !== t.ref && (t.effectTag |= 128); + else if (i) { + var l = Bi(Li.current); + if (Bo(t)) { + var c = (i = t).stateNode; + n = i.type; + var u = i.memoizedProps, + d = a; + switch (c[la] = i, c[ca] = u, s = void 0, a = c, n) { + case "iframe": + case "object": + case "embed": + xn("load", a); + break; + case "video": + case "audio": + for (c = 0; c < et.length; c++) xn(et[c], a); + break; + case "source": + xn("error", a); + break; + case "img": + case "image": + case "link": + xn("error", a), xn("load", a); + break; + case "form": + xn("reset", a), xn("submit", a); + break; + case "details": + xn("toggle", a); + break; + case "input": + Ae(a, u), xn("invalid", a), Hn(d, "onChange"); + break; + case "select": + a._wrapperState = { + wasMultiple: !!u.multiple + }, xn("invalid", a), Hn(d, "onChange"); + break; + case "textarea": + Ne(a, u), xn("invalid", a), Hn(d, "onChange") } + for (s in Bn(n, u), c = null, u) u.hasOwnProperty(s) && (l = u[s], "children" === s ? "string" == typeof l ? a.textContent !== l && (c = ["children", l]) : "number" == typeof l && a.textContent !== "" + l && (c = ["children", "" + l]) : h.hasOwnProperty(s) && null != l && Hn(d, s)); + switch (n) { + case "input": + Ee(a), Pe(a, u, !0); + break; + case "textarea": + Ee(a), ze(a); + break; + case "select": + case "option": + break; + default: + "function" == typeof u.onClick && (a.onclick = Vn) + } + s = c, i.updateQueue = s, (i = null !== s) && cs(t) + } else { + n = t, d = s, u = i, c = 9 === a.nodeType ? a : a.ownerDocument, l === Le && (l = Fe(d)), l === Le ? "script" === d ? ((u = c.createElement("div")).innerHTML = "