@floe-ai/sdk 0.1.0-dev.23 → 0.1.0-dev.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist-sdk/floe-sdk.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var fc = Object.defineProperty;
|
|
2
2
|
var gc = (r, e, t) => e in r ? fc(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
|
|
3
|
-
var
|
|
3
|
+
var A = (r, e, t) => gc(r, typeof e != "symbol" ? e + "" : e, t);
|
|
4
4
|
import $s, { useState as Ue, useEffect as Ye, useRef as wn, useCallback as We, useMemo as mc } from "react";
|
|
5
5
|
import bc from "react-dom/client";
|
|
6
6
|
import { jsx as T, jsxs as G, Fragment as fn } from "react/jsx-runtime";
|
|
@@ -3917,7 +3917,7 @@ function Oe(r, e) {
|
|
|
3917
3917
|
return r != r && e != e;
|
|
3918
3918
|
}
|
|
3919
3919
|
const qc = { "Amazon Silk": "amazon_silk", "Android Browser": "android", Bada: "bada", BlackBerry: "blackberry", Chrome: "chrome", Chromium: "chromium", Electron: "electron", 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" }, ga = { amazon_silk: "Amazon Silk", android: "Android Browser", bada: "Bada", blackberry: "BlackBerry", chrome: "Chrome", chromium: "Chromium", electron: "Electron", 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" }, ye = { tablet: "tablet", mobile: "mobile", desktop: "desktop", tv: "tv" }, Ae = { 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" }, vt = { EdgeHTML: "EdgeHTML", Blink: "Blink", Trident: "Trident", Presto: "Presto", Gecko: "Gecko", WebKit: "WebKit" };
|
|
3920
|
-
class
|
|
3920
|
+
class O {
|
|
3921
3921
|
static getFirstMatch(e, t) {
|
|
3922
3922
|
const n = t.match(e);
|
|
3923
3923
|
return n && n.length > 0 && n[1] || "";
|
|
@@ -3991,11 +3991,11 @@ class A {
|
|
|
3991
3991
|
return e.split(".").length;
|
|
3992
3992
|
}
|
|
3993
3993
|
static compareVersions(e, t, n = !1) {
|
|
3994
|
-
const i =
|
|
3994
|
+
const i = O.getVersionPrecision(e), o = O.getVersionPrecision(t);
|
|
3995
3995
|
let s = Math.max(i, o), a = 0;
|
|
3996
|
-
const c =
|
|
3997
|
-
const d = s -
|
|
3998
|
-
return
|
|
3996
|
+
const c = O.map([e, t], (u) => {
|
|
3997
|
+
const d = s - O.getVersionPrecision(u), h = u + new Array(d + 1).join(".0");
|
|
3998
|
+
return O.map(h.split("."), (g) => new Array(20 - g.length).join("0") + g).reverse();
|
|
3999
3999
|
});
|
|
4000
4000
|
for (n && (a = s - Math.min(i, o)), s -= 1; s >= a; ) {
|
|
4001
4001
|
if (c[0][s] > c[1][s]) return 1;
|
|
@@ -4040,207 +4040,207 @@ class A {
|
|
|
4040
4040
|
}
|
|
4041
4041
|
}
|
|
4042
4042
|
const he = /version\/(\d+(\.?_?\d+)+)/i, Vc = [{ test: [/googlebot/i], describe(r) {
|
|
4043
|
-
const e = { name: "Googlebot" }, t =
|
|
4043
|
+
const e = { name: "Googlebot" }, t = O.getFirstMatch(/googlebot\/(\d+(\.\d+))/i, r) || O.getFirstMatch(he, r);
|
|
4044
4044
|
return t && (e.version = t), e;
|
|
4045
4045
|
} }, { test: [/opera/i], describe(r) {
|
|
4046
|
-
const e = { name: "Opera" }, t =
|
|
4046
|
+
const e = { name: "Opera" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4047
4047
|
return t && (e.version = t), e;
|
|
4048
4048
|
} }, { test: [/opr\/|opios/i], describe(r) {
|
|
4049
|
-
const e = { name: "Opera" }, t =
|
|
4049
|
+
const e = { name: "Opera" }, t = O.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i, r) || O.getFirstMatch(he, r);
|
|
4050
4050
|
return t && (e.version = t), e;
|
|
4051
4051
|
} }, { test: [/SamsungBrowser/i], describe(r) {
|
|
4052
|
-
const e = { name: "Samsung Internet for Android" }, t =
|
|
4052
|
+
const e = { name: "Samsung Internet for Android" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4053
4053
|
return t && (e.version = t), e;
|
|
4054
4054
|
} }, { test: [/Whale/i], describe(r) {
|
|
4055
|
-
const e = { name: "NAVER Whale Browser" }, t =
|
|
4055
|
+
const e = { name: "NAVER Whale Browser" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i, r);
|
|
4056
4056
|
return t && (e.version = t), e;
|
|
4057
4057
|
} }, { test: [/MZBrowser/i], describe(r) {
|
|
4058
|
-
const e = { name: "MZ Browser" }, t =
|
|
4058
|
+
const e = { name: "MZ Browser" }, t = O.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4059
4059
|
return t && (e.version = t), e;
|
|
4060
4060
|
} }, { test: [/focus/i], describe(r) {
|
|
4061
|
-
const e = { name: "Focus" }, t =
|
|
4061
|
+
const e = { name: "Focus" }, t = O.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4062
4062
|
return t && (e.version = t), e;
|
|
4063
4063
|
} }, { test: [/swing/i], describe(r) {
|
|
4064
|
-
const e = { name: "Swing" }, t =
|
|
4064
|
+
const e = { name: "Swing" }, t = O.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4065
4065
|
return t && (e.version = t), e;
|
|
4066
4066
|
} }, { test: [/coast/i], describe(r) {
|
|
4067
|
-
const e = { name: "Opera Coast" }, t =
|
|
4067
|
+
const e = { name: "Opera Coast" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4068
4068
|
return t && (e.version = t), e;
|
|
4069
4069
|
} }, { test: [/opt\/\d+(?:.?_?\d+)+/i], describe(r) {
|
|
4070
|
-
const e = { name: "Opera Touch" }, t =
|
|
4070
|
+
const e = { name: "Opera Touch" }, t = O.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4071
4071
|
return t && (e.version = t), e;
|
|
4072
4072
|
} }, { test: [/yabrowser/i], describe(r) {
|
|
4073
|
-
const e = { name: "Yandex Browser" }, t =
|
|
4073
|
+
const e = { name: "Yandex Browser" }, t = O.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4074
4074
|
return t && (e.version = t), e;
|
|
4075
4075
|
} }, { test: [/ucbrowser/i], describe(r) {
|
|
4076
|
-
const e = { name: "UC Browser" }, t =
|
|
4076
|
+
const e = { name: "UC Browser" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4077
4077
|
return t && (e.version = t), e;
|
|
4078
4078
|
} }, { test: [/Maxthon|mxios/i], describe(r) {
|
|
4079
|
-
const e = { name: "Maxthon" }, t =
|
|
4079
|
+
const e = { name: "Maxthon" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4080
4080
|
return t && (e.version = t), e;
|
|
4081
4081
|
} }, { test: [/epiphany/i], describe(r) {
|
|
4082
|
-
const e = { name: "Epiphany" }, t =
|
|
4082
|
+
const e = { name: "Epiphany" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4083
4083
|
return t && (e.version = t), e;
|
|
4084
4084
|
} }, { test: [/puffin/i], describe(r) {
|
|
4085
|
-
const e = { name: "Puffin" }, t =
|
|
4085
|
+
const e = { name: "Puffin" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4086
4086
|
return t && (e.version = t), e;
|
|
4087
4087
|
} }, { test: [/sleipnir/i], describe(r) {
|
|
4088
|
-
const e = { name: "Sleipnir" }, t =
|
|
4088
|
+
const e = { name: "Sleipnir" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4089
4089
|
return t && (e.version = t), e;
|
|
4090
4090
|
} }, { test: [/k-meleon/i], describe(r) {
|
|
4091
|
-
const e = { name: "K-Meleon" }, t =
|
|
4091
|
+
const e = { name: "K-Meleon" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4092
4092
|
return t && (e.version = t), e;
|
|
4093
4093
|
} }, { test: [/micromessenger/i], describe(r) {
|
|
4094
|
-
const e = { name: "WeChat" }, t =
|
|
4094
|
+
const e = { name: "WeChat" }, t = O.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4095
4095
|
return t && (e.version = t), e;
|
|
4096
4096
|
} }, { test: [/qqbrowser/i], describe(r) {
|
|
4097
|
-
const e = { name: /qqbrowserlite/i.test(r) ? "QQ Browser Lite" : "QQ Browser" }, t =
|
|
4097
|
+
const e = { name: /qqbrowserlite/i.test(r) ? "QQ Browser Lite" : "QQ Browser" }, t = O.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4098
4098
|
return t && (e.version = t), e;
|
|
4099
4099
|
} }, { test: [/msie|trident/i], describe(r) {
|
|
4100
|
-
const e = { name: "Internet Explorer" }, t =
|
|
4100
|
+
const e = { name: "Internet Explorer" }, t = O.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i, r);
|
|
4101
4101
|
return t && (e.version = t), e;
|
|
4102
4102
|
} }, { test: [/\sedg\//i], describe(r) {
|
|
4103
|
-
const e = { name: "Microsoft Edge" }, t =
|
|
4103
|
+
const e = { name: "Microsoft Edge" }, t = O.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i, r);
|
|
4104
4104
|
return t && (e.version = t), e;
|
|
4105
4105
|
} }, { test: [/edg([ea]|ios)/i], describe(r) {
|
|
4106
|
-
const e = { name: "Microsoft Edge" }, t =
|
|
4106
|
+
const e = { name: "Microsoft Edge" }, t = O.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i, r);
|
|
4107
4107
|
return t && (e.version = t), e;
|
|
4108
4108
|
} }, { test: [/vivaldi/i], describe(r) {
|
|
4109
|
-
const e = { name: "Vivaldi" }, t =
|
|
4109
|
+
const e = { name: "Vivaldi" }, t = O.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i, r);
|
|
4110
4110
|
return t && (e.version = t), e;
|
|
4111
4111
|
} }, { test: [/seamonkey/i], describe(r) {
|
|
4112
|
-
const e = { name: "SeaMonkey" }, t =
|
|
4112
|
+
const e = { name: "SeaMonkey" }, t = O.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i, r);
|
|
4113
4113
|
return t && (e.version = t), e;
|
|
4114
4114
|
} }, { test: [/sailfish/i], describe(r) {
|
|
4115
|
-
const e = { name: "Sailfish" }, t =
|
|
4115
|
+
const e = { name: "Sailfish" }, t = O.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i, r);
|
|
4116
4116
|
return t && (e.version = t), e;
|
|
4117
4117
|
} }, { test: [/silk/i], describe(r) {
|
|
4118
|
-
const e = { name: "Amazon Silk" }, t =
|
|
4118
|
+
const e = { name: "Amazon Silk" }, t = O.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i, r);
|
|
4119
4119
|
return t && (e.version = t), e;
|
|
4120
4120
|
} }, { test: [/phantom/i], describe(r) {
|
|
4121
|
-
const e = { name: "PhantomJS" }, t =
|
|
4121
|
+
const e = { name: "PhantomJS" }, t = O.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i, r);
|
|
4122
4122
|
return t && (e.version = t), e;
|
|
4123
4123
|
} }, { test: [/slimerjs/i], describe(r) {
|
|
4124
|
-
const e = { name: "SlimerJS" }, t =
|
|
4124
|
+
const e = { name: "SlimerJS" }, t = O.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i, r);
|
|
4125
4125
|
return t && (e.version = t), e;
|
|
4126
4126
|
} }, { test: [/blackberry|\bbb\d+/i, /rim\stablet/i], describe(r) {
|
|
4127
|
-
const e = { name: "BlackBerry" }, t =
|
|
4127
|
+
const e = { name: "BlackBerry" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i, r);
|
|
4128
4128
|
return t && (e.version = t), e;
|
|
4129
4129
|
} }, { test: [/(web|hpw)[o0]s/i], describe(r) {
|
|
4130
|
-
const e = { name: "WebOS Browser" }, t =
|
|
4130
|
+
const e = { name: "WebOS Browser" }, t = O.getFirstMatch(he, r) || O.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i, r);
|
|
4131
4131
|
return t && (e.version = t), e;
|
|
4132
4132
|
} }, { test: [/bada/i], describe(r) {
|
|
4133
|
-
const e = { name: "Bada" }, t =
|
|
4133
|
+
const e = { name: "Bada" }, t = O.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i, r);
|
|
4134
4134
|
return t && (e.version = t), e;
|
|
4135
4135
|
} }, { test: [/tizen/i], describe(r) {
|
|
4136
|
-
const e = { name: "Tizen" }, t =
|
|
4136
|
+
const e = { name: "Tizen" }, t = O.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4137
4137
|
return t && (e.version = t), e;
|
|
4138
4138
|
} }, { test: [/qupzilla/i], describe(r) {
|
|
4139
|
-
const e = { name: "QupZilla" }, t =
|
|
4139
|
+
const e = { name: "QupZilla" }, t = O.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4140
4140
|
return t && (e.version = t), e;
|
|
4141
4141
|
} }, { test: [/firefox|iceweasel|fxios/i], describe(r) {
|
|
4142
|
-
const e = { name: "Firefox" }, t =
|
|
4142
|
+
const e = { name: "Firefox" }, t = O.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4143
4143
|
return t && (e.version = t), e;
|
|
4144
4144
|
} }, { test: [/electron/i], describe(r) {
|
|
4145
|
-
const e = { name: "Electron" }, t =
|
|
4145
|
+
const e = { name: "Electron" }, t = O.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i, r);
|
|
4146
4146
|
return t && (e.version = t), e;
|
|
4147
4147
|
} }, { test: [/MiuiBrowser/i], describe(r) {
|
|
4148
|
-
const e = { name: "Miui" }, t =
|
|
4148
|
+
const e = { name: "Miui" }, t = O.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i, r);
|
|
4149
4149
|
return t && (e.version = t), e;
|
|
4150
4150
|
} }, { test: [/chromium/i], describe(r) {
|
|
4151
|
-
const e = { name: "Chromium" }, t =
|
|
4151
|
+
const e = { name: "Chromium" }, t = O.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i, r) || O.getFirstMatch(he, r);
|
|
4152
4152
|
return t && (e.version = t), e;
|
|
4153
4153
|
} }, { test: [/chrome|crios|crmo/i], describe(r) {
|
|
4154
|
-
const e = { name: "Chrome" }, t =
|
|
4154
|
+
const e = { name: "Chrome" }, t = O.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i, r);
|
|
4155
4155
|
return t && (e.version = t), e;
|
|
4156
4156
|
} }, { test: [/GSA/i], describe(r) {
|
|
4157
|
-
const e = { name: "Google Search" }, t =
|
|
4157
|
+
const e = { name: "Google Search" }, t = O.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i, r);
|
|
4158
4158
|
return t && (e.version = t), e;
|
|
4159
4159
|
} }, { test(r) {
|
|
4160
4160
|
const e = !r.test(/like android/i), t = r.test(/android/i);
|
|
4161
4161
|
return e && t;
|
|
4162
4162
|
}, describe(r) {
|
|
4163
|
-
const e = { name: "Android Browser" }, t =
|
|
4163
|
+
const e = { name: "Android Browser" }, t = O.getFirstMatch(he, r);
|
|
4164
4164
|
return t && (e.version = t), e;
|
|
4165
4165
|
} }, { test: [/playstation 4/i], describe(r) {
|
|
4166
|
-
const e = { name: "PlayStation 4" }, t =
|
|
4166
|
+
const e = { name: "PlayStation 4" }, t = O.getFirstMatch(he, r);
|
|
4167
4167
|
return t && (e.version = t), e;
|
|
4168
4168
|
} }, { test: [/safari|applewebkit/i], describe(r) {
|
|
4169
|
-
const e = { name: "Safari" }, t =
|
|
4169
|
+
const e = { name: "Safari" }, t = O.getFirstMatch(he, r);
|
|
4170
4170
|
return t && (e.version = t), e;
|
|
4171
4171
|
} }, { test: [/.*/i], describe(r) {
|
|
4172
4172
|
const e = r.search("\\(") !== -1 ? /^(.*)\/(.*)[ \t]\((.*)/ : /^(.*)\/(.*) /;
|
|
4173
|
-
return { name:
|
|
4173
|
+
return { name: O.getFirstMatch(e, r), version: O.getSecondMatch(e, r) };
|
|
4174
4174
|
} }];
|
|
4175
4175
|
var Kc = [{ test: [/Roku\/DVP/], describe(r) {
|
|
4176
|
-
const e =
|
|
4176
|
+
const e = O.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i, r);
|
|
4177
4177
|
return { name: Ae.Roku, version: e };
|
|
4178
4178
|
} }, { test: [/windows phone/i], describe(r) {
|
|
4179
|
-
const e =
|
|
4179
|
+
const e = O.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i, r);
|
|
4180
4180
|
return { name: Ae.WindowsPhone, version: e };
|
|
4181
4181
|
} }, { test: [/windows /i], describe(r) {
|
|
4182
|
-
const e =
|
|
4182
|
+
const e = O.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i, r), t = O.getWindowsVersionName(e);
|
|
4183
4183
|
return { name: Ae.Windows, version: e, versionName: t };
|
|
4184
4184
|
} }, { test: [/Macintosh(.*?) FxiOS(.*?)\//], describe(r) {
|
|
4185
|
-
const e = { name: Ae.iOS }, t =
|
|
4185
|
+
const e = { name: Ae.iOS }, t = O.getSecondMatch(/(Version\/)(\d[\d.]+)/, r);
|
|
4186
4186
|
return t && (e.version = t), e;
|
|
4187
4187
|
} }, { test: [/macintosh/i], describe(r) {
|
|
4188
|
-
const e =
|
|
4188
|
+
const e = O.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i, r).replace(/[_\s]/g, "."), t = O.getMacOSVersionName(e), n = { name: Ae.MacOS, version: e };
|
|
4189
4189
|
return t && (n.versionName = t), n;
|
|
4190
4190
|
} }, { test: [/(ipod|iphone|ipad)/i], describe(r) {
|
|
4191
|
-
const e =
|
|
4191
|
+
const e = O.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i, r).replace(/[_\s]/g, ".");
|
|
4192
4192
|
return { name: Ae.iOS, version: e };
|
|
4193
4193
|
} }, { test(r) {
|
|
4194
4194
|
const e = !r.test(/like android/i), t = r.test(/android/i);
|
|
4195
4195
|
return e && t;
|
|
4196
4196
|
}, describe(r) {
|
|
4197
|
-
const e =
|
|
4197
|
+
const e = O.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i, r), t = O.getAndroidVersionName(e), n = { name: Ae.Android, version: e };
|
|
4198
4198
|
return t && (n.versionName = t), n;
|
|
4199
4199
|
} }, { test: [/(web|hpw)[o0]s/i], describe(r) {
|
|
4200
|
-
const e =
|
|
4200
|
+
const e = O.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i, r), t = { name: Ae.WebOS };
|
|
4201
4201
|
return e && e.length && (t.version = e), t;
|
|
4202
4202
|
} }, { test: [/blackberry|\bbb\d+/i, /rim\stablet/i], describe(r) {
|
|
4203
|
-
const e =
|
|
4203
|
+
const e = O.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i, r) || O.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i, r) || O.getFirstMatch(/\bbb(\d+)/i, r);
|
|
4204
4204
|
return { name: Ae.BlackBerry, version: e };
|
|
4205
4205
|
} }, { test: [/bada/i], describe(r) {
|
|
4206
|
-
const e =
|
|
4206
|
+
const e = O.getFirstMatch(/bada\/(\d+(\.\d+)*)/i, r);
|
|
4207
4207
|
return { name: Ae.Bada, version: e };
|
|
4208
4208
|
} }, { test: [/tizen/i], describe(r) {
|
|
4209
|
-
const e =
|
|
4209
|
+
const e = O.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i, r);
|
|
4210
4210
|
return { name: Ae.Tizen, version: e };
|
|
4211
4211
|
} }, { test: [/linux/i], describe: () => ({ name: Ae.Linux }) }, { test: [/CrOS/], describe: () => ({ name: Ae.ChromeOS }) }, { test: [/PlayStation 4/], describe(r) {
|
|
4212
|
-
const e =
|
|
4212
|
+
const e = O.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i, r);
|
|
4213
4213
|
return { name: Ae.PlayStation4, version: e };
|
|
4214
4214
|
} }], Wc = [{ test: [/googlebot/i], describe: () => ({ type: "bot", vendor: "Google" }) }, { test: [/huawei/i], describe(r) {
|
|
4215
|
-
const e =
|
|
4215
|
+
const e = O.getFirstMatch(/(can-l01)/i, r) && "Nova", t = { type: ye.mobile, vendor: "Huawei" };
|
|
4216
4216
|
return e && (t.model = e), t;
|
|
4217
4217
|
} }, { test: [/nexus\s*(?:7|8|9|10).*/i], describe: () => ({ type: ye.tablet, vendor: "Nexus" }) }, { test: [/ipad/i], describe: () => ({ type: ye.tablet, vendor: "Apple", model: "iPad" }) }, { test: [/Macintosh(.*?) FxiOS(.*?)\//], describe: () => ({ type: ye.tablet, vendor: "Apple", model: "iPad" }) }, { test: [/kftt build/i], describe: () => ({ type: ye.tablet, vendor: "Amazon", model: "Kindle Fire HD 7" }) }, { test: [/silk/i], describe: () => ({ type: ye.tablet, vendor: "Amazon" }) }, { test: [/tablet(?! pc)/i], describe: () => ({ type: ye.tablet }) }, { test(r) {
|
|
4218
4218
|
const e = r.test(/ipod|iphone/i), t = r.test(/like (ipod|iphone)/i);
|
|
4219
4219
|
return e && !t;
|
|
4220
4220
|
}, describe(r) {
|
|
4221
|
-
const e =
|
|
4221
|
+
const e = O.getFirstMatch(/(ipod|iphone)/i, r);
|
|
4222
4222
|
return { type: ye.mobile, vendor: "Apple", model: e };
|
|
4223
4223
|
} }, { test: [/nexus\s*[0-6].*/i, /galaxy nexus/i], describe: () => ({ type: ye.mobile, vendor: "Nexus" }) }, { test: [/[^-]mobi/i], describe: () => ({ type: ye.mobile }) }, { test: (r) => r.getBrowserName(!0) === "blackberry", describe: () => ({ type: ye.mobile, vendor: "BlackBerry" }) }, { test: (r) => r.getBrowserName(!0) === "bada", describe: () => ({ type: ye.mobile }) }, { test: (r) => r.getBrowserName() === "windows phone", describe: () => ({ type: ye.mobile, vendor: "Microsoft" }) }, { test(r) {
|
|
4224
4224
|
const e = Number(String(r.getOSVersion()).split(".")[0]);
|
|
4225
4225
|
return r.getOSName(!0) === "android" && e >= 3;
|
|
4226
4226
|
}, describe: () => ({ type: ye.tablet }) }, { test: (r) => r.getOSName(!0) === "android", describe: () => ({ type: ye.mobile }) }, { test: (r) => r.getOSName(!0) === "macos", describe: () => ({ type: ye.desktop, vendor: "Apple" }) }, { test: (r) => r.getOSName(!0) === "windows", describe: () => ({ type: ye.desktop }) }, { test: (r) => r.getOSName(!0) === "linux", describe: () => ({ type: ye.desktop }) }, { test: (r) => r.getOSName(!0) === "playstation 4", describe: () => ({ type: ye.tv }) }, { test: (r) => r.getOSName(!0) === "roku", describe: () => ({ type: ye.tv }) }], Jc = [{ test: (r) => r.getBrowserName(!0) === "microsoft edge", describe(r) {
|
|
4227
4227
|
if (/\sedg\//i.test(r)) return { name: vt.Blink };
|
|
4228
|
-
const e =
|
|
4228
|
+
const e = O.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i, r);
|
|
4229
4229
|
return { name: vt.EdgeHTML, version: e };
|
|
4230
4230
|
} }, { test: [/trident/i], describe(r) {
|
|
4231
|
-
const e = { name: vt.Trident }, t =
|
|
4231
|
+
const e = { name: vt.Trident }, t = O.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i, r);
|
|
4232
4232
|
return t && (e.version = t), e;
|
|
4233
4233
|
} }, { test: (r) => r.test(/presto/i), describe(r) {
|
|
4234
|
-
const e = { name: vt.Presto }, t =
|
|
4234
|
+
const e = { name: vt.Presto }, t = O.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i, r);
|
|
4235
4235
|
return t && (e.version = t), e;
|
|
4236
4236
|
} }, { test(r) {
|
|
4237
4237
|
const e = r.test(/gecko/i), t = r.test(/like gecko/i);
|
|
4238
4238
|
return e && !t;
|
|
4239
4239
|
}, describe(r) {
|
|
4240
|
-
const e = { name: vt.Gecko }, t =
|
|
4240
|
+
const e = { name: vt.Gecko }, t = O.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i, r);
|
|
4241
4241
|
return t && (e.version = t), e;
|
|
4242
4242
|
} }, { test: [/(apple)?webkit\/537\.36/i], describe: () => ({ name: vt.Blink }) }, { test: [/(apple)?webkit/i], describe(r) {
|
|
4243
|
-
const e = { name: vt.WebKit }, t =
|
|
4243
|
+
const e = { name: vt.WebKit }, t = O.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i, r);
|
|
4244
4244
|
return t && (e.version = t), e;
|
|
4245
4245
|
} }];
|
|
4246
4246
|
class Vi {
|
|
@@ -4256,7 +4256,7 @@ class Vi {
|
|
|
4256
4256
|
}
|
|
4257
4257
|
parseBrowser() {
|
|
4258
4258
|
this.parsedResult.browser = {};
|
|
4259
|
-
const e =
|
|
4259
|
+
const e = O.find(Vc, (t) => {
|
|
4260
4260
|
if (typeof t.test == "function") return t.test(this);
|
|
4261
4261
|
if (t.test instanceof Array) return t.test.some((n) => this.test(n));
|
|
4262
4262
|
throw new Error("Browser's test function is not valid");
|
|
@@ -4277,7 +4277,7 @@ class Vi {
|
|
|
4277
4277
|
}
|
|
4278
4278
|
parseOS() {
|
|
4279
4279
|
this.parsedResult.os = {};
|
|
4280
|
-
const e =
|
|
4280
|
+
const e = O.find(Kc, (t) => {
|
|
4281
4281
|
if (typeof t.test == "function") return t.test(this);
|
|
4282
4282
|
if (t.test instanceof Array) return t.test.some((n) => this.test(n));
|
|
4283
4283
|
throw new Error("Browser's test function is not valid");
|
|
@@ -4300,7 +4300,7 @@ class Vi {
|
|
|
4300
4300
|
}
|
|
4301
4301
|
parsePlatform() {
|
|
4302
4302
|
this.parsedResult.platform = {};
|
|
4303
|
-
const e =
|
|
4303
|
+
const e = O.find(Wc, (t) => {
|
|
4304
4304
|
if (typeof t.test == "function") return t.test(this);
|
|
4305
4305
|
if (t.test instanceof Array) return t.test.some((n) => this.test(n));
|
|
4306
4306
|
throw new Error("Browser's test function is not valid");
|
|
@@ -4315,7 +4315,7 @@ class Vi {
|
|
|
4315
4315
|
}
|
|
4316
4316
|
parseEngine() {
|
|
4317
4317
|
this.parsedResult.engine = {};
|
|
4318
|
-
const e =
|
|
4318
|
+
const e = O.find(Jc, (t) => {
|
|
4319
4319
|
if (typeof t.test == "function") return t.test(this);
|
|
4320
4320
|
if (t.test instanceof Array) return t.test.some((n) => this.test(n));
|
|
4321
4321
|
throw new Error("Browser's test function is not valid");
|
|
@@ -4326,7 +4326,7 @@ class Vi {
|
|
|
4326
4326
|
return this.parseBrowser(), this.parseOS(), this.parsePlatform(), this.parseEngine(), this;
|
|
4327
4327
|
}
|
|
4328
4328
|
getResult() {
|
|
4329
|
-
return
|
|
4329
|
+
return O.assign({}, this.parsedResult);
|
|
4330
4330
|
}
|
|
4331
4331
|
satisfies(e) {
|
|
4332
4332
|
const t = {};
|
|
@@ -4337,32 +4337,32 @@ class Vi {
|
|
|
4337
4337
|
const a = e[s];
|
|
4338
4338
|
typeof a == "string" ? (i[s] = a, o += 1) : typeof a == "object" && (t[s] = a, n += 1);
|
|
4339
4339
|
}), n > 0) {
|
|
4340
|
-
const s = Object.keys(t), a =
|
|
4340
|
+
const s = Object.keys(t), a = O.find(s, (u) => this.isOS(u));
|
|
4341
4341
|
if (a) {
|
|
4342
4342
|
const u = this.satisfies(t[a]);
|
|
4343
4343
|
if (u !== void 0) return u;
|
|
4344
4344
|
}
|
|
4345
|
-
const c =
|
|
4345
|
+
const c = O.find(s, (u) => this.isPlatform(u));
|
|
4346
4346
|
if (c) {
|
|
4347
4347
|
const u = this.satisfies(t[c]);
|
|
4348
4348
|
if (u !== void 0) return u;
|
|
4349
4349
|
}
|
|
4350
4350
|
}
|
|
4351
4351
|
if (o > 0) {
|
|
4352
|
-
const s = Object.keys(i), a =
|
|
4352
|
+
const s = Object.keys(i), a = O.find(s, (c) => this.isBrowser(c, !0));
|
|
4353
4353
|
if (a !== void 0) return this.compareVersion(i[a]);
|
|
4354
4354
|
}
|
|
4355
4355
|
}
|
|
4356
4356
|
isBrowser(e, t = !1) {
|
|
4357
4357
|
const n = this.getBrowserName().toLowerCase();
|
|
4358
4358
|
let i = e.toLowerCase();
|
|
4359
|
-
const o =
|
|
4359
|
+
const o = O.getBrowserTypeByAlias(i);
|
|
4360
4360
|
return t && o && (i = o.toLowerCase()), i === n;
|
|
4361
4361
|
}
|
|
4362
4362
|
compareVersion(e) {
|
|
4363
4363
|
let t = [0], n = e, i = !1;
|
|
4364
4364
|
const o = this.getBrowserVersion();
|
|
4365
|
-
if (typeof o == "string") return e[0] === ">" || e[0] === "<" ? (n = e.substr(1), e[1] === "=" ? (i = !0, n = e.substr(2)) : t = [], e[0] === ">" ? t.push(1) : t.push(-1)) : e[0] === "=" ? n = e.substr(1) : e[0] === "~" && (i = !0, n = e.substr(1)), t.indexOf(
|
|
4365
|
+
if (typeof o == "string") return e[0] === ">" || e[0] === "<" ? (n = e.substr(1), e[1] === "=" ? (i = !0, n = e.substr(2)) : t = [], e[0] === ">" ? t.push(1) : t.push(-1)) : e[0] === "=" ? n = e.substr(1) : e[0] === "~" && (i = !0, n = e.substr(1)), t.indexOf(O.compareVersions(o, n, i)) > -1;
|
|
4366
4366
|
}
|
|
4367
4367
|
isOS(e) {
|
|
4368
4368
|
return this.getOSName(!0) === String(e).toLowerCase();
|
|
@@ -12679,9 +12679,9 @@ const Ot = (r) => ({
|
|
|
12679
12679
|
}, Ie = class Ie {
|
|
12680
12680
|
constructor() {
|
|
12681
12681
|
// Ref counters for generating unique IDs
|
|
12682
|
-
|
|
12682
|
+
A(this, "refCounters", {});
|
|
12683
12683
|
// Cache for last snapshot (for change detection)
|
|
12684
|
-
|
|
12684
|
+
A(this, "lastSnapshotHash", "");
|
|
12685
12685
|
}
|
|
12686
12686
|
// -------------------------------------------------------------------------
|
|
12687
12687
|
// Main Capture Method
|
|
@@ -13347,7 +13347,7 @@ const Ot = (r) => ({
|
|
|
13347
13347
|
// Static Configuration
|
|
13348
13348
|
// -------------------------------------------------------------------------
|
|
13349
13349
|
/** Implicit ARIA roles by HTML tag (W3C spec) */
|
|
13350
|
-
|
|
13350
|
+
A(Ie, "IMPLICIT_ROLES", {
|
|
13351
13351
|
button: "button",
|
|
13352
13352
|
a: "link",
|
|
13353
13353
|
input: "textbox",
|
|
@@ -13373,7 +13373,7 @@ O(Ie, "IMPLICIT_ROLES", {
|
|
|
13373
13373
|
progress: "progressbar",
|
|
13374
13374
|
meter: "meter"
|
|
13375
13375
|
}), /** Input type to role mapping */
|
|
13376
|
-
|
|
13376
|
+
A(Ie, "INPUT_TYPE_ROLES", {
|
|
13377
13377
|
button: "button",
|
|
13378
13378
|
submit: "button",
|
|
13379
13379
|
reset: "button",
|
|
@@ -13389,7 +13389,7 @@ O(Ie, "INPUT_TYPE_ROLES", {
|
|
|
13389
13389
|
text: "textbox",
|
|
13390
13390
|
number: "spinbutton"
|
|
13391
13391
|
}), /** Role prefixes for ref generation */
|
|
13392
|
-
|
|
13392
|
+
A(Ie, "ROLE_PREFIXES", {
|
|
13393
13393
|
button: "B",
|
|
13394
13394
|
link: "L",
|
|
13395
13395
|
textbox: "T",
|
|
@@ -13410,7 +13410,7 @@ O(Ie, "ROLE_PREFIXES", {
|
|
|
13410
13410
|
switch: "SW",
|
|
13411
13411
|
navigation: "NAV"
|
|
13412
13412
|
}), /** Interactive element selector */
|
|
13413
|
-
|
|
13413
|
+
A(Ie, "INTERACTIVE_SELECTOR", `
|
|
13414
13414
|
button,
|
|
13415
13415
|
a[href],
|
|
13416
13416
|
input:not([type="hidden"]),
|
|
@@ -13434,7 +13434,7 @@ O(Ie, "INTERACTIVE_SELECTOR", `
|
|
|
13434
13434
|
[contenteditable="true"],
|
|
13435
13435
|
summary
|
|
13436
13436
|
`.replace(/\s+/g, " ").trim()), /** Selectors to skip (our own UI, scripts, etc.) */
|
|
13437
|
-
|
|
13437
|
+
A(Ie, "SKIP_SELECTORS", [
|
|
13438
13438
|
"#onboarding-overlay",
|
|
13439
13439
|
"#onboarding-sdk-react-ui",
|
|
13440
13440
|
"#hse-highlight-element",
|
|
@@ -13578,17 +13578,17 @@ function lc(r, e = {}) {
|
|
|
13578
13578
|
}
|
|
13579
13579
|
class Fs {
|
|
13580
13580
|
constructor() {
|
|
13581
|
-
|
|
13582
|
-
|
|
13583
|
-
|
|
13584
|
-
|
|
13585
|
-
|
|
13586
|
-
|
|
13587
|
-
|
|
13581
|
+
A(this, "audioContext", null);
|
|
13582
|
+
A(this, "analyzerNode", null);
|
|
13583
|
+
A(this, "sourceNode", null);
|
|
13584
|
+
A(this, "dataArray", new Uint8Array(0));
|
|
13585
|
+
A(this, "isRunning", !1);
|
|
13586
|
+
A(this, "onLevelsCallback", null);
|
|
13587
|
+
A(this, "animationId", null);
|
|
13588
13588
|
/**
|
|
13589
13589
|
* Analysis loop - runs via requestAnimationFrame
|
|
13590
13590
|
*/
|
|
13591
|
-
|
|
13591
|
+
A(this, "analyze", () => {
|
|
13592
13592
|
if (!this.isRunning || !this.analyzerNode || this.dataArray.length === 0) return;
|
|
13593
13593
|
this.analyzerNode.getByteFrequencyData(this.dataArray);
|
|
13594
13594
|
const e = [];
|
|
@@ -13624,7 +13624,7 @@ class Fs {
|
|
|
13624
13624
|
}
|
|
13625
13625
|
class lh {
|
|
13626
13626
|
constructor() {
|
|
13627
|
-
|
|
13627
|
+
A(this, "events", {});
|
|
13628
13628
|
}
|
|
13629
13629
|
on(e, t) {
|
|
13630
13630
|
return this.events[e] || (this.events[e] = []), this.events[e].push(t), this;
|
|
@@ -13643,13 +13643,13 @@ class lh {
|
|
|
13643
13643
|
}
|
|
13644
13644
|
class uh {
|
|
13645
13645
|
constructor() {
|
|
13646
|
-
|
|
13647
|
-
|
|
13648
|
-
|
|
13649
|
-
|
|
13650
|
-
|
|
13646
|
+
A(this, "lastSnapshot", null);
|
|
13647
|
+
A(this, "lastSnapshotHash", "");
|
|
13648
|
+
A(this, "snapshotInterval", null);
|
|
13649
|
+
A(this, "sendCallback", null);
|
|
13650
|
+
A(this, "correlationCounter", 0);
|
|
13651
13651
|
// For tracking snapshots across client/server
|
|
13652
|
-
|
|
13652
|
+
A(this, "INTERACTIVE_TAGS", /* @__PURE__ */ new Set([
|
|
13653
13653
|
"button",
|
|
13654
13654
|
"a",
|
|
13655
13655
|
"input",
|
|
@@ -13661,7 +13661,7 @@ class uh {
|
|
|
13661
13661
|
"option",
|
|
13662
13662
|
"menuitem"
|
|
13663
13663
|
]));
|
|
13664
|
-
|
|
13664
|
+
A(this, "INTERACTIVE_ROLES", /* @__PURE__ */ new Set([
|
|
13665
13665
|
"button",
|
|
13666
13666
|
"link",
|
|
13667
13667
|
"menuitem",
|
|
@@ -13678,8 +13678,8 @@ class uh {
|
|
|
13678
13678
|
/**
|
|
13679
13679
|
* Setup mutation observer for significant DOM changes
|
|
13680
13680
|
*/
|
|
13681
|
-
|
|
13682
|
-
|
|
13681
|
+
A(this, "mutationObserver", null);
|
|
13682
|
+
A(this, "mutationDebounceTimer", null);
|
|
13683
13683
|
}
|
|
13684
13684
|
/**
|
|
13685
13685
|
* Start periodic DOM snapshots
|
|
@@ -15453,13 +15453,13 @@ const St = class St {
|
|
|
15453
15453
|
}
|
|
15454
15454
|
};
|
|
15455
15455
|
// Static reference to DOMIntrospector for bounding box lookups
|
|
15456
|
-
|
|
15456
|
+
A(St, "domIntrospector", null);
|
|
15457
15457
|
let fe = St;
|
|
15458
15458
|
class dh {
|
|
15459
15459
|
constructor() {
|
|
15460
|
-
|
|
15460
|
+
A(this, "confirmationSound");
|
|
15461
15461
|
/** Last error message from a failed action (e.g., modal overlay blocking click) */
|
|
15462
|
-
|
|
15462
|
+
A(this, "lastError", null);
|
|
15463
15463
|
this.confirmationSound = new Audio("data:audio/wav;base64,UklGRiQAAABXQVZFZm10IBAAAAABAAEARKwAAIhYAQACABAAZGF0YQAAAAA=");
|
|
15464
15464
|
}
|
|
15465
15465
|
/**
|
|
@@ -16183,11 +16183,13 @@ ${e.description || ""}`;
|
|
|
16183
16183
|
}
|
|
16184
16184
|
class hh {
|
|
16185
16185
|
constructor() {
|
|
16186
|
-
|
|
16187
|
-
|
|
16188
|
-
|
|
16189
|
-
|
|
16186
|
+
A(this, "container", null);
|
|
16187
|
+
A(this, "highlightEl", null);
|
|
16188
|
+
A(this, "tooltipElement", null);
|
|
16189
|
+
A(this, "floeCursor", null);
|
|
16190
|
+
A(this, "cursorHasBeenPositioned", !1);
|
|
16190
16191
|
}
|
|
16192
|
+
// Track if cursor has been shown at least once
|
|
16191
16193
|
/**
|
|
16192
16194
|
* Inject overlay into the page
|
|
16193
16195
|
*/
|
|
@@ -16279,9 +16281,17 @@ class hh {
|
|
|
16279
16281
|
}
|
|
16280
16282
|
/**
|
|
16281
16283
|
* Show the Floe cursor
|
|
16284
|
+
* On first appearance, positions the cursor at the bot floating icon (bottom-right)
|
|
16285
|
+
* so the initial animation starts from a natural origin point.
|
|
16282
16286
|
*/
|
|
16283
16287
|
showFloeCursor() {
|
|
16284
|
-
|
|
16288
|
+
if (this.floeCursor) {
|
|
16289
|
+
if (!this.cursorHasBeenPositioned) {
|
|
16290
|
+
const e = window.innerWidth - 50, t = window.innerHeight - 50;
|
|
16291
|
+
this.floeCursor.style.left = `${e}px`, this.floeCursor.style.top = `${t}px`, this.cursorHasBeenPositioned = !0, console.log("[OverlaySystem] Cursor initial position set to bot icon:", e, t);
|
|
16292
|
+
}
|
|
16293
|
+
this.floeCursor.style.opacity = "1", this.floeCursor.style.transform = "scale(1)";
|
|
16294
|
+
}
|
|
16285
16295
|
}
|
|
16286
16296
|
/**
|
|
16287
16297
|
* Hide the Floe cursor
|
|
@@ -16714,6 +16724,21 @@ class hh {
|
|
|
16714
16724
|
hideTooltip() {
|
|
16715
16725
|
this.tooltipElement && (this.tooltipElement.remove(), this.tooltipElement = null);
|
|
16716
16726
|
}
|
|
16727
|
+
/**
|
|
16728
|
+
* Clean up all overlays: hide cursor, clear highlight, hide tooltip.
|
|
16729
|
+
* Call this on disconnect/errors/navigation to remove all visual guidance from screen.
|
|
16730
|
+
* Does NOT destroy DOM elements (unlike remove()), so overlay can be reused.
|
|
16731
|
+
*/
|
|
16732
|
+
cleanup() {
|
|
16733
|
+
this.clearHighlight(), this.hideFloeCursor(), this.hideTooltip(), console.log("[OverlaySystem] Cleaned up all overlays");
|
|
16734
|
+
}
|
|
16735
|
+
/**
|
|
16736
|
+
* Reset cursor tracking state so next show starts from the bot icon again.
|
|
16737
|
+
* Call this on full disconnect to ensure fresh start on reconnect.
|
|
16738
|
+
*/
|
|
16739
|
+
resetCursorState() {
|
|
16740
|
+
this.cursorHasBeenPositioned = !1, this.floeCursor && (this.floeCursor.style.top = "-100px", this.floeCursor.style.left = "-100px", this.floeCursor.style.opacity = "0", this.floeCursor.style.transform = "scale(0.8)"), console.log("[OverlaySystem] Cursor state reset");
|
|
16741
|
+
}
|
|
16717
16742
|
/**
|
|
16718
16743
|
* Remove overlay and all injected style elements
|
|
16719
16744
|
*/
|
|
@@ -16722,12 +16747,12 @@ class hh {
|
|
|
16722
16747
|
const e = document.getElementById("floe-cursor-styles");
|
|
16723
16748
|
e && e.remove();
|
|
16724
16749
|
const t = document.getElementById("onboarding-animations");
|
|
16725
|
-
t && t.remove(), (n = this.container) == null || n.remove(), this.container = null, this.highlightEl = null, this.tooltipElement = null;
|
|
16750
|
+
t && t.remove(), this.floeCursor && (this.floeCursor.remove(), this.floeCursor = null), this.cursorHasBeenPositioned = !1, (n = this.container) == null || n.remove(), this.container = null, this.highlightEl = null, this.tooltipElement = null;
|
|
16726
16751
|
}
|
|
16727
16752
|
}
|
|
16728
16753
|
class Li {
|
|
16729
16754
|
constructor(e) {
|
|
16730
|
-
|
|
16755
|
+
A(this, "piiPatterns");
|
|
16731
16756
|
this.piiPatterns = {
|
|
16732
16757
|
email: /[\w.-]+@[\w.-]+\.\w+/,
|
|
16733
16758
|
phone: /[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}/,
|
|
@@ -16944,22 +16969,22 @@ class Li {
|
|
|
16944
16969
|
}
|
|
16945
16970
|
class ph {
|
|
16946
16971
|
constructor(e) {
|
|
16947
|
-
|
|
16948
|
-
|
|
16949
|
-
|
|
16950
|
-
|
|
16951
|
-
|
|
16952
|
-
|
|
16953
|
-
|
|
16954
|
-
|
|
16955
|
-
|
|
16956
|
-
|
|
16972
|
+
A(this, "sdk");
|
|
16973
|
+
A(this, "domIntrospector", null);
|
|
16974
|
+
A(this, "lastUrl", "");
|
|
16975
|
+
A(this, "clickHandler", null);
|
|
16976
|
+
A(this, "focusHandler", null);
|
|
16977
|
+
A(this, "blurHandler", null);
|
|
16978
|
+
A(this, "inputHandler", null);
|
|
16979
|
+
A(this, "keydownHandler", null);
|
|
16980
|
+
A(this, "inputDebounceTimers", /* @__PURE__ */ new Map());
|
|
16981
|
+
A(this, "isTracking", !1);
|
|
16957
16982
|
// Scroll tracking for Fast Execution System
|
|
16958
|
-
|
|
16959
|
-
|
|
16983
|
+
A(this, "scrollHandler", null);
|
|
16984
|
+
A(this, "scrollDebounceTimer", null);
|
|
16960
16985
|
// URL tracking for SPAs
|
|
16961
|
-
|
|
16962
|
-
|
|
16986
|
+
A(this, "urlCheckInterval", null);
|
|
16987
|
+
A(this, "popstateHandler", null);
|
|
16963
16988
|
this.sdk = e, this.lastUrl = window.location.href;
|
|
16964
16989
|
}
|
|
16965
16990
|
/**
|
|
@@ -17219,7 +17244,7 @@ class ph {
|
|
|
17219
17244
|
}
|
|
17220
17245
|
class uc {
|
|
17221
17246
|
constructor() {
|
|
17222
|
-
|
|
17247
|
+
A(this, "loadingSelectors", [
|
|
17223
17248
|
'[role="progressbar"]',
|
|
17224
17249
|
".loading",
|
|
17225
17250
|
".spinner",
|
|
@@ -17303,15 +17328,15 @@ class fh {
|
|
|
17303
17328
|
}
|
|
17304
17329
|
class gh {
|
|
17305
17330
|
constructor() {
|
|
17306
|
-
|
|
17307
|
-
|
|
17308
|
-
|
|
17309
|
-
|
|
17310
|
-
|
|
17311
|
-
|
|
17312
|
-
|
|
17313
|
-
|
|
17314
|
-
|
|
17331
|
+
A(this, "lastUrl", "");
|
|
17332
|
+
A(this, "urlChangeCallback", null);
|
|
17333
|
+
A(this, "loadingDetector");
|
|
17334
|
+
A(this, "domStabilityChecker");
|
|
17335
|
+
A(this, "originalPushState", null);
|
|
17336
|
+
A(this, "originalReplaceState", null);
|
|
17337
|
+
A(this, "popstateHandler", null);
|
|
17338
|
+
A(this, "isStarted", !1);
|
|
17339
|
+
A(this, "handleUrlChange", async () => {
|
|
17315
17340
|
const e = window.location.href;
|
|
17316
17341
|
if (e !== this.lastUrl) {
|
|
17317
17342
|
console.log("[NavigationCompleteDetector] URL changed:", e), this.lastUrl = e;
|
|
@@ -17360,10 +17385,10 @@ class gh {
|
|
|
17360
17385
|
}
|
|
17361
17386
|
class mh {
|
|
17362
17387
|
constructor(e, t) {
|
|
17363
|
-
|
|
17364
|
-
|
|
17365
|
-
|
|
17366
|
-
|
|
17388
|
+
A(this, "overlay");
|
|
17389
|
+
A(this, "loadingDetector");
|
|
17390
|
+
A(this, "domIntrospector", null);
|
|
17391
|
+
A(this, "isExecuting", !1);
|
|
17367
17392
|
this.overlay = e, this.loadingDetector = new uc();
|
|
17368
17393
|
}
|
|
17369
17394
|
/**
|
|
@@ -17399,7 +17424,7 @@ class mh {
|
|
|
17399
17424
|
}
|
|
17400
17425
|
return console.log("[BatchedActionExecutor] ✅ Batch completed successfully"), e.completionCallback && e.completionCallback(), { success: !0, completedSteps: t };
|
|
17401
17426
|
} finally {
|
|
17402
|
-
this.isExecuting = !1, this.overlay.clearHighlight();
|
|
17427
|
+
this.isExecuting = !1, this.overlay.clearHighlight(), this.overlay.hideFloeCursor();
|
|
17403
17428
|
}
|
|
17404
17429
|
}
|
|
17405
17430
|
async executeStep(e) {
|
|
@@ -17525,74 +17550,74 @@ class mh {
|
|
|
17525
17550
|
class dc extends lh {
|
|
17526
17551
|
constructor(t) {
|
|
17527
17552
|
super();
|
|
17528
|
-
|
|
17529
|
-
|
|
17530
|
-
|
|
17531
|
-
|
|
17532
|
-
|
|
17533
|
-
|
|
17534
|
-
|
|
17535
|
-
|
|
17536
|
-
|
|
17537
|
-
|
|
17538
|
-
|
|
17539
|
-
|
|
17553
|
+
A(this, "config");
|
|
17554
|
+
A(this, "sessionId");
|
|
17555
|
+
A(this, "overlay");
|
|
17556
|
+
A(this, "capture");
|
|
17557
|
+
A(this, "actionExecutor");
|
|
17558
|
+
A(this, "pipecatClient", null);
|
|
17559
|
+
A(this, "transport", null);
|
|
17560
|
+
A(this, "isInitialized", !1);
|
|
17561
|
+
A(this, "reactRoot", null);
|
|
17562
|
+
A(this, "reactContainer", null);
|
|
17563
|
+
A(this, "agentState", "idle");
|
|
17564
|
+
A(this, "pausedSessionId", null);
|
|
17540
17565
|
// UI state only - tracks which session is paused
|
|
17541
|
-
|
|
17566
|
+
A(this, "pendingResumeSessionId", null);
|
|
17542
17567
|
// Explicit resume intent - set only by resumeSession(), cleared after use
|
|
17543
|
-
|
|
17544
|
-
|
|
17545
|
-
|
|
17546
|
-
|
|
17568
|
+
A(this, "botTranscript", "");
|
|
17569
|
+
A(this, "userTranscript", "");
|
|
17570
|
+
A(this, "transcriptHistory", []);
|
|
17571
|
+
A(this, "lastUserTranscript", "");
|
|
17547
17572
|
// Track final user transcript for history
|
|
17548
|
-
|
|
17549
|
-
|
|
17573
|
+
A(this, "isConnected", !1);
|
|
17574
|
+
A(this, "connectInFlight", !1);
|
|
17550
17575
|
// Guard against concurrent connect/cancel races
|
|
17551
|
-
|
|
17576
|
+
A(this, "micEnabled", !0);
|
|
17552
17577
|
// Track actual mute state
|
|
17553
|
-
|
|
17578
|
+
A(this, "userIsSpeaking", !1);
|
|
17554
17579
|
// Track if user is actively speaking
|
|
17555
|
-
|
|
17580
|
+
A(this, "botIsSpeaking", !1);
|
|
17556
17581
|
// Track if bot is actively speaking
|
|
17557
|
-
|
|
17582
|
+
A(this, "audioLevels", []);
|
|
17558
17583
|
// Real-time audio levels for visualization
|
|
17559
|
-
|
|
17584
|
+
A(this, "_discoveryPopupShown", !1);
|
|
17560
17585
|
// Track if discovery popup was shown this session
|
|
17561
|
-
|
|
17586
|
+
A(this, "_pendingDiscoveryStart", !1);
|
|
17562
17587
|
// User chose discovery, waiting to start after connect
|
|
17563
|
-
|
|
17588
|
+
A(this, "botAudioAnalyzer", null);
|
|
17564
17589
|
// Audio analyzer for bot FFT
|
|
17565
|
-
|
|
17590
|
+
A(this, "userAudioAnalyzer", null);
|
|
17566
17591
|
// Audio analyzer for user mic FFT
|
|
17567
|
-
|
|
17592
|
+
A(this, "userMicStream", null);
|
|
17568
17593
|
// User's mic stream for analysis
|
|
17569
|
-
|
|
17594
|
+
A(this, "userMicStreamRequestId", 0);
|
|
17570
17595
|
// Guards async getUserMedia against disconnect races
|
|
17571
|
-
|
|
17572
|
-
|
|
17573
|
-
|
|
17574
|
-
|
|
17575
|
-
|
|
17596
|
+
A(this, "audioElements", []);
|
|
17597
|
+
A(this, "pageTracker");
|
|
17598
|
+
A(this, "screenShareEnabled", !1);
|
|
17599
|
+
A(this, "domIntrospector");
|
|
17600
|
+
A(this, "accessibleSnapshot");
|
|
17576
17601
|
// Fast Execution System
|
|
17577
|
-
|
|
17578
|
-
|
|
17579
|
-
|
|
17602
|
+
A(this, "fastExecutionMode", !1);
|
|
17603
|
+
A(this, "batchedActionExecutor", null);
|
|
17604
|
+
A(this, "navigationCompleteDetector", null);
|
|
17580
17605
|
// Bot Action Tracking - counter for nested/concurrent bot actions
|
|
17581
17606
|
// Use counter instead of boolean to handle nested actions correctly
|
|
17582
|
-
|
|
17607
|
+
A(this, "_botActionDepth", 0);
|
|
17583
17608
|
// EndUser status from API (for skip onboarding logic)
|
|
17584
|
-
|
|
17609
|
+
A(this, "endUserStatus", null);
|
|
17585
17610
|
// UX Polish - Connection progress and returning user tracking
|
|
17586
|
-
|
|
17587
|
-
|
|
17611
|
+
A(this, "connectionProgress", null);
|
|
17612
|
+
A(this, "isReturningUser", !1);
|
|
17588
17613
|
// True only for actual returning users (detected via API or localStorage)
|
|
17589
|
-
|
|
17614
|
+
A(this, "hasSkippedOnboarding", !1);
|
|
17590
17615
|
// True when new user skips the welcome modal
|
|
17591
|
-
|
|
17616
|
+
A(this, "_isMinimized", !1);
|
|
17592
17617
|
// Text mode state
|
|
17593
|
-
|
|
17618
|
+
A(this, "textModeEnabled", !1);
|
|
17594
17619
|
// Plan progress state (sent from bot during guided plan execution)
|
|
17595
|
-
|
|
17620
|
+
A(this, "planProgress", null);
|
|
17596
17621
|
if (!t.clientKey)
|
|
17597
17622
|
throw new Error("Client key is required");
|
|
17598
17623
|
const n = "https://api.dev.floe.so";
|
|
@@ -17732,7 +17757,7 @@ class dc extends lh {
|
|
|
17732
17757
|
*/
|
|
17733
17758
|
setupNavigationDetection() {
|
|
17734
17759
|
this.navigationCompleteDetector || (this.navigationCompleteDetector = new gh()), this.navigationCompleteDetector.start((t) => {
|
|
17735
|
-
console.log("[OnboardingSDK] Navigation complete detected:", t), this.sendMetadata({
|
|
17760
|
+
console.log("[OnboardingSDK] Navigation complete detected:", t), this.overlay.clearHighlight(), this.overlay.hideFloeCursor(), this.sendMetadata({
|
|
17736
17761
|
type: "navigation_complete",
|
|
17737
17762
|
url: t,
|
|
17738
17763
|
timestamp: Date.now()
|
|
@@ -17897,7 +17922,7 @@ class dc extends lh {
|
|
|
17897
17922
|
* Disconnect and minimize the UI (instead of removing it)
|
|
17898
17923
|
*/
|
|
17899
17924
|
async disconnectAndMinimize() {
|
|
17900
|
-
this.pageTracker.stop(), this.domIntrospector.stopCapturing(), this.navigationCompleteDetector && this.navigationCompleteDetector.stop(), this.overlay.
|
|
17925
|
+
this.pageTracker.stop(), this.domIntrospector.stopCapturing(), this.navigationCompleteDetector && this.navigationCompleteDetector.stop(), this.overlay.cleanup(), this.overlay.resetCursorState(), this.pipecatClient && (await this.pipecatClient.disconnect(), this.pipecatClient = null), this.transport && (this.transport = null), this.audioElements && (this.audioElements.forEach((t) => {
|
|
17901
17926
|
t.pause(), t.remove();
|
|
17902
17927
|
}), this.audioElements = []), this.botAudioAnalyzer && (this.botAudioAnalyzer.destroy(), this.botAudioAnalyzer = null), this.userAudioAnalyzer && (this.userAudioAnalyzer.destroy(), this.userAudioAnalyzer = null), this.userMicStreamRequestId++, this.userMicStream && (this.userMicStream.getTracks().forEach((t) => t.stop()), this.userMicStream = null), this.audioLevels = [], this.isConnected = !1, this.agentState = "idle", this._isMinimized = !0, this.botTranscript = "", this.userTranscript = "", this.renderReactUI(), console.log("[OnboardingSDK] Disconnected and minimized"), this.emit("disconnected"), this.emit("minimized");
|
|
17903
17928
|
}
|
|
@@ -17964,7 +17989,7 @@ class dc extends lh {
|
|
|
17964
17989
|
console.log("[OnboardingSDK] Connected to Pipecat"), this.isConnected = !0, this.agentState = "listening", this.micEnabled = ((t = this.pipecatClient) == null ? void 0 : t.isMicEnabled) ?? this.config.enableAudio !== !1, console.log("[OnboardingSDK] 🎤 Mic state on connect:", this.micEnabled ? "ON" : "MUTED"), this.textModeEnabled && this.pipecatClient && (this.pipecatClient.enableMic(!1), this.micEnabled = !1, console.log("[OnboardingSDK] ⌨️ Text mode active — mic muted on connect")), this.clearConnectionProgress(), this.renderReactUI(), this.emit("connected");
|
|
17965
17990
|
},
|
|
17966
17991
|
onDisconnected: () => {
|
|
17967
|
-
console.log("[OnboardingSDK] Disconnected from Pipecat"), this.isConnected = !1, this.agentState = "idle", this.pageTracker.stop(), this.domIntrospector.stopCapturing(), this.navigationCompleteDetector && this.navigationCompleteDetector.stop(), this.overlay.
|
|
17992
|
+
console.log("[OnboardingSDK] Disconnected from Pipecat"), this.isConnected = !1, this.agentState = "idle", this.pageTracker.stop(), this.domIntrospector.stopCapturing(), this.navigationCompleteDetector && this.navigationCompleteDetector.stop(), this.overlay.cleanup(), this.overlay.resetCursorState(), this.audioElements && (this.audioElements.forEach((t) => {
|
|
17968
17993
|
t.pause(), t.remove();
|
|
17969
17994
|
}), this.audioElements = []), this.botAudioAnalyzer && (this.botAudioAnalyzer.destroy(), this.botAudioAnalyzer = null), this.userAudioAnalyzer && (this.userAudioAnalyzer.destroy(), this.userAudioAnalyzer = null), this.userMicStreamRequestId++, this.userMicStream && (console.log("[OnboardingSDK] 🎤 Stopping user microphone stream"), this.userMicStream.getTracks().forEach((t) => t.stop()), this.userMicStream = null), this.audioLevels = [], this.renderReactUI(), this.emit("disconnected");
|
|
17970
17995
|
},
|
|
@@ -18139,13 +18164,13 @@ class dc extends lh {
|
|
|
18139
18164
|
console.log("[OnboardingSDK] 🎯 Received direct hybrid action:", n.action), this.handleHybridAction(n);
|
|
18140
18165
|
return;
|
|
18141
18166
|
}
|
|
18142
|
-
n.type === "highlight" ? (console.log("[OnboardingSDK] Handling highlight command"), n.target ? this.overlay.highlightTarget(n.target, n.options) : n.selector && this.overlay.highlight(n.selector, n.options)) : n.type === "tooltip" && n.text ? this.overlay.showTooltip(n.text, n.options) : n.type === "action" ? n.target ? this.handleHybridAction(n) : this.actionExecutor.executeWithConsent(n.action) : n.type === "clear_highlight" ? this.overlay.clearHighlight() : n.type === "batched_navigation" ? this.handleBatchedNavigation(n) : n.type === "fast_action" ? this.executeActionFast(n) : n.type === "execute_api" || n.action === "execute_api" ? this.handleExecuteApi(n) : n.type === "session_paused" ? (console.log("[OnboardingSDK] Session paused:", n), this.agentState = "paused", this.pausedSessionId = n.session_id || null, this.overlay.clearHighlight(), this.renderReactUI(), this.emit("sessionPaused", n)) : n.type === "plan_progress" ? (console.log("[OnboardingSDK] Plan progress:", n), this.planProgress = {
|
|
18167
|
+
n.type === "highlight" ? (console.log("[OnboardingSDK] Handling highlight command"), n.target ? this.overlay.highlightTarget(n.target, n.options) : n.selector && this.overlay.highlight(n.selector, n.options)) : n.type === "tooltip" && n.text ? this.overlay.showTooltip(n.text, n.options) : n.type === "action" ? n.target ? this.handleHybridAction(n) : this.actionExecutor.executeWithConsent(n.action) : n.type === "clear_highlight" ? this.overlay.clearHighlight() : n.type === "batched_navigation" ? this.handleBatchedNavigation(n) : n.type === "fast_action" ? this.executeActionFast(n) : n.type === "execute_api" || n.action === "execute_api" ? this.handleExecuteApi(n) : n.type === "session_paused" ? (console.log("[OnboardingSDK] Session paused:", n), this.agentState = "paused", this.pausedSessionId = n.session_id || null, this.overlay.clearHighlight(), this.overlay.hideFloeCursor(), this.renderReactUI(), this.emit("sessionPaused", n)) : n.type === "plan_progress" ? (console.log("[OnboardingSDK] Plan progress:", n), this.planProgress = {
|
|
18143
18168
|
planName: n.planName || "",
|
|
18144
18169
|
currentStep: n.currentStep || 0,
|
|
18145
18170
|
totalSteps: n.totalSteps || 0,
|
|
18146
18171
|
progressPercent: n.progressPercent || 0,
|
|
18147
18172
|
currentTaskTitle: n.currentTaskTitle || ""
|
|
18148
|
-
}, this.renderReactUI(), this.emit("planProgress", this.planProgress)) : n.type === "plan_started" ? (console.log("[OnboardingSDK] Plan started:", n), this.emit("planStarted", { planName: n.planName, totalSteps: n.totalSteps })) : n.type === "plan_complete" ? (console.log("[OnboardingSDK] Plan complete:", n), this.planProgress = null, this.renderReactUI(), this.emit("planComplete", { planName: n.planName })) : console.log("[OnboardingSDK] Unhandled server message type:", n.type || "unknown");
|
|
18173
|
+
}, this.renderReactUI(), this.emit("planProgress", this.planProgress)) : n.type === "plan_started" ? (console.log("[OnboardingSDK] Plan started:", n), this.emit("planStarted", { planName: n.planName, totalSteps: n.totalSteps })) : n.type === "plan_complete" ? (console.log("[OnboardingSDK] Plan complete:", n), this.planProgress = null, this.overlay.clearHighlight(), this.overlay.hideFloeCursor(), this.renderReactUI(), this.emit("planComplete", { planName: n.planName })) : console.log("[OnboardingSDK] Unhandled server message type:", n.type || "unknown");
|
|
18149
18174
|
}
|
|
18150
18175
|
/**
|
|
18151
18176
|
* Handle hybrid UI action from bot
|
|
@@ -18177,7 +18202,7 @@ class dc extends lh {
|
|
|
18177
18202
|
}
|
|
18178
18203
|
let o = fe.resolveTarget(t.target);
|
|
18179
18204
|
if (!o) {
|
|
18180
|
-
console.warn("[OnboardingSDK] ⚠️ Click target not found"), this.sendMetadata({
|
|
18205
|
+
console.warn("[OnboardingSDK] ⚠️ Click target not found"), this.overlay.clearHighlight(), this.overlay.hideFloeCursor(), this.sendMetadata({
|
|
18181
18206
|
type: "bot_action_complete",
|
|
18182
18207
|
action: "click",
|
|
18183
18208
|
success: !1,
|
|
@@ -18200,7 +18225,7 @@ class dc extends lh {
|
|
|
18200
18225
|
), a.dispatchEvent(new MouseEvent("mouseenter", { bubbles: !0 })), a.dispatchEvent(new MouseEvent("mouseover", { bubbles: !0 })), await new Promise((m) => setTimeout(m, 450)), console.log("[OnboardingSDK] 📂 Sidebar expanded");
|
|
18201
18226
|
}
|
|
18202
18227
|
if (!await fe.waitForPositionStability(o, 800)) {
|
|
18203
|
-
console.error("[OnboardingSDK] ❌ Element disappeared during stability wait"), this.sendMetadata({
|
|
18228
|
+
console.error("[OnboardingSDK] ❌ Element disappeared during stability wait"), this.overlay.clearHighlight(), this.overlay.hideFloeCursor(), this.sendMetadata({
|
|
18204
18229
|
type: "bot_action_complete",
|
|
18205
18230
|
action: "click",
|
|
18206
18231
|
success: !1,
|
|
@@ -18295,7 +18320,7 @@ class dc extends lh {
|
|
|
18295
18320
|
console.log("[OnboardingSDK] 📋 Executing MULTI_SELECT action"), await this.handleMultiSelectAction(t);
|
|
18296
18321
|
break;
|
|
18297
18322
|
case "navigate":
|
|
18298
|
-
console.log("[OnboardingSDK] 🧭 Executing NAVIGATE action to URL:", t.value);
|
|
18323
|
+
console.log("[OnboardingSDK] 🧭 Executing NAVIGATE action to URL:", t.value), this.overlay.clearHighlight(), this.overlay.hideFloeCursor();
|
|
18299
18324
|
{
|
|
18300
18325
|
const a = t.value;
|
|
18301
18326
|
if (!a) {
|
|
@@ -19870,7 +19895,7 @@ class dc extends lh {
|
|
|
19870
19895
|
* Disconnect and cleanup
|
|
19871
19896
|
*/
|
|
19872
19897
|
async disconnect() {
|
|
19873
|
-
this.pageTracker.stop(), this.domIntrospector.stopCapturing(), this.navigationCompleteDetector && this.navigationCompleteDetector.stop(), this.overlay.
|
|
19898
|
+
this.pageTracker.stop(), this.domIntrospector.stopCapturing(), this.navigationCompleteDetector && this.navigationCompleteDetector.stop(), this.overlay.cleanup(), this.pipecatClient && (await this.pipecatClient.disconnect(), this.pipecatClient = null), this.transport && (this.transport = null), this.audioElements && (this.audioElements.forEach((t) => {
|
|
19874
19899
|
t.pause(), t.remove();
|
|
19875
19900
|
}), this.audioElements = []), this.botAudioAnalyzer && (this.botAudioAnalyzer.destroy(), this.botAudioAnalyzer = null), this.userAudioAnalyzer && (this.userAudioAnalyzer.destroy(), this.userAudioAnalyzer = null), this.userMicStreamRequestId++, this.userMicStream && (this.userMicStream.getTracks().forEach((t) => t.stop()), this.userMicStream = null), this.audioLevels = [], this.reactRoot && (this.reactRoot.unmount(), this.reactRoot = null), this.reactContainer && (this.reactContainer.remove(), this.reactContainer = null), this.overlay.remove(), this.isInitialized = !1, this.isConnected = !1, this.agentState = "idle", console.log("[OnboardingSDK] Disconnected"), this.emit("disconnected");
|
|
19876
19901
|
}
|