@theymes/sdk 1.2.5 → 1.2.8
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/constants.d.ts +25 -0
- package/dist/eventPoller.d.ts +22 -0
- package/dist/internalEvents.d.ts +9 -0
- package/dist/internals.d.ts +54 -0
- package/dist/notifications.d.ts +6 -0
- package/dist/sdk.cjs.js +1 -1
- package/dist/sdk.d.ts +4 -75
- package/dist/sdk.esm.js +1 -1
- package/dist/sdk.js +1 -1
- package/dist/sdk.unity.js +1 -1
- package/dist/singletons.d.ts +6 -0
- package/dist/types.d.ts +82 -0
- package/dist/utils.d.ts +10 -0
- package/dist/widgetUtils.d.ts +22 -0
- package/package.json +1 -1
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const SDK_VERSION = "1.2.8";
|
|
2
|
+
export declare const LOCAL_STORAGE_KEYS: {
|
|
3
|
+
colors: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const PLATFORM = "web";
|
|
6
|
+
export declare const SELECTORS: {
|
|
7
|
+
sdkDialog: string;
|
|
8
|
+
sdkIframeWrapper: string;
|
|
9
|
+
sdkIframe: string;
|
|
10
|
+
sdkLoaderIframe: string;
|
|
11
|
+
notificationDialog: string;
|
|
12
|
+
notificationIframe: string;
|
|
13
|
+
sdkButtonIframe: string;
|
|
14
|
+
sdkStylesheet: string;
|
|
15
|
+
};
|
|
16
|
+
export declare const WIDGET_PX_WIDTH = 340;
|
|
17
|
+
export declare const WIDGET_PX_HEIGHT = 680;
|
|
18
|
+
export declare const WIDGET_DESKTOP_THRESHOLD_PX = 500;
|
|
19
|
+
export declare const WIDGET_BUTTON_PX_WIDTH = 120;
|
|
20
|
+
export declare const WIDGET_BUTTON_PX_HEIGHT = 48;
|
|
21
|
+
export declare const SDK_ANIMATION_DURATION_SECS = 0.2;
|
|
22
|
+
export declare const SDK_BUTTON_ANIMATION_DURATION_SECS = 0.2;
|
|
23
|
+
export declare const SDK_NOTIFICATION_ANIMATION_DURATION_SECS = 0.2;
|
|
24
|
+
export declare const THEYMES_PATH_ON_INIT_KEY = "theymes_path_on_init";
|
|
25
|
+
export declare const THEYMES_DEFAULT_BODY_FONT = "url('https://fonts.gstatic.com/s/poppins/v22/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2') format('woff2')";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare class EventPoller {
|
|
2
|
+
private isRunning;
|
|
3
|
+
private timer;
|
|
4
|
+
private pollWhenNotificationsEnabled;
|
|
5
|
+
private lastPollDate;
|
|
6
|
+
private nextPollDate;
|
|
7
|
+
constructor();
|
|
8
|
+
onIsInForegroundChanged(): void;
|
|
9
|
+
onHasNetworkConnectivityChanged(): void;
|
|
10
|
+
private resume;
|
|
11
|
+
private pause;
|
|
12
|
+
private shouldBeRunning;
|
|
13
|
+
private resumeIfNeeded;
|
|
14
|
+
private pauseIfNeeded;
|
|
15
|
+
onEnableNotifications(): void;
|
|
16
|
+
onOpen(): void;
|
|
17
|
+
onClose(): void;
|
|
18
|
+
onLogin(): void;
|
|
19
|
+
onLogout(): void;
|
|
20
|
+
private scheduleNextPollEventsRequest;
|
|
21
|
+
private pollEventsRequest;
|
|
22
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Config, Notification } from './types.js';
|
|
2
|
+
import { Colors, Fonts, Locs } from './types.js';
|
|
3
|
+
import { Mode, Player, Position, SessionStatus, WidgetButtonAction } from './types.js';
|
|
4
|
+
export type Internals = {
|
|
5
|
+
token: string | null;
|
|
6
|
+
domain: string | null;
|
|
7
|
+
mode: Mode;
|
|
8
|
+
deviceId: string | null;
|
|
9
|
+
loggingEnabled: boolean;
|
|
10
|
+
element: Element | null;
|
|
11
|
+
position: Position;
|
|
12
|
+
widgetButton: boolean;
|
|
13
|
+
widgetButtonAction: WidgetButtonAction;
|
|
14
|
+
x: number;
|
|
15
|
+
y: number;
|
|
16
|
+
language: string | null;
|
|
17
|
+
userLanguage: string;
|
|
18
|
+
tags: Set<string>;
|
|
19
|
+
fields: Record<string, unknown>;
|
|
20
|
+
youngPlayer: boolean;
|
|
21
|
+
privacyMode: boolean;
|
|
22
|
+
signedMetadataToken: string | null;
|
|
23
|
+
isLoggedIn: boolean;
|
|
24
|
+
isInForeground: boolean;
|
|
25
|
+
hasNetworkConnectivity: boolean;
|
|
26
|
+
player: Player | null;
|
|
27
|
+
sdkIsOpen: boolean;
|
|
28
|
+
forceUpdateSdkDialog: boolean;
|
|
29
|
+
recordRetentionAfterSecs: number | null;
|
|
30
|
+
resetSessionAfterSecs: number;
|
|
31
|
+
sessionStatus: SessionStatus;
|
|
32
|
+
sessionStartTime: Date | null;
|
|
33
|
+
sessionResumeOrStartTime: Date | null;
|
|
34
|
+
retentionRemainingSeconds: number | null;
|
|
35
|
+
isRetentionRecordedForSession: boolean;
|
|
36
|
+
recordRetentionTimerId: NodeJS.Timeout | null;
|
|
37
|
+
retryRecordRetentionTimerId: NodeJS.Timeout | null;
|
|
38
|
+
retryIntervalSecs: number;
|
|
39
|
+
networkErrorTimerId: NodeJS.Timeout | null;
|
|
40
|
+
colors: Colors;
|
|
41
|
+
locs: Locs;
|
|
42
|
+
fonts: Fonts;
|
|
43
|
+
notificationsPaused: boolean;
|
|
44
|
+
notifications: readonly Notification[];
|
|
45
|
+
visibleNotification: Notification | null;
|
|
46
|
+
unreadMessageCount: number;
|
|
47
|
+
unansweredMessageCount: number;
|
|
48
|
+
previousPath: string | null;
|
|
49
|
+
previousConfig: Config | null;
|
|
50
|
+
nonce: string | null;
|
|
51
|
+
keyboardHeight: number;
|
|
52
|
+
disableInsets: boolean;
|
|
53
|
+
};
|
|
54
|
+
export declare const internals: Internals;
|
package/dist/sdk.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=function(){return e=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},e.apply(this,arguments)};function t(e,t,n,o){return new(n||(n=Promise))((function(i,r){function a(e){try{l(o.next(e))}catch(e){r(e)}}function s(e){try{l(o.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((o=o.apply(e,t||[])).next())}))}function n(e,t){var n,o,i,r={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(r=0)),r;)try{if(n=1,o&&(i=2&s[0]?o.return:s[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,s[1])).done)return i;switch(o=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return r.label++,{value:s[1],done:!1};case 5:r.label++,o=s[1],s=[0];continue;case 7:s=r.ops.pop(),r.trys.pop();continue;default:if(!(i=r.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){r=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){r.label=s[1];break}if(6===s[0]&&r.label<i[1]){r.label=i[1],i=s;break}if(i&&r.label<i[2]){r.label=i[2],r.ops.push(s);break}i[2]&&r.ops.pop(),r.trys.pop();continue}s=t.call(e,r)}catch(e){s=[6,e],o=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}function o(e,t,n){if(n||2===arguments.length)for(var o,i=0,r=t.length;i<r;i++)!o&&i in t||(o||(o=Array.prototype.slice.call(t,0,i)),o[i]=t[i]);return e.concat(o||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var i={unreadMessageCountUpdate:new Set,unansweredMessageCountUpdate:new Set,open:new Set,close:new Set};function r(e,t){i[e].add(t)}function a(e,t){i[e].delete(t)}function s(e,t){i[e].forEach((function(e){return e.apply(void 0,t)}))}var l='<!DOCTYPE html>\n<html lang="en">\n\n<head>\n <meta charset="utf-8" />\n <meta name="viewport"\n content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n <meta name="theme-color" content="#000000" />\n <meta name="robots" content="noindex" />\n <title>Theymes</title>\n <style NONCE_ATTR_PLACEHOLDER>\n * {\n box-sizing: border-box;\n }\n\n html,\n body {\n background: rgb(CSS_BACKGROUND_PLACEHOLDER);\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: none;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n padding-top: INSET_TOP_PLACEHOLDER;\n padding-bottom: INSET_BOTTOM_PLACEHOLDER;\n padding-left: INSET_LEFT_PLACEHOLDER;\n padding-right: INSET_RIGHT_PLACEHOLDER;\n }\n\n .top-bar {\n flex: 0 0 auto;\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: flex-end;\n }\n\n .loader-wrapper {\n flex: 1 0 0%;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n position: relative;\n align-items: center;\n justify-content: center;\n text-align: center;\n gap: 12px;\n }\n\n .close-button {\n padding: 0.5rem 1rem;\n cursor: pointer;\n }\n\n .close-button svg {\n display: block;\n stroke: rgb(CSS_ACCENT_PLACEHOLDER);\n width: 1.75rem;\n height: 1.75rem;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n .loader {\n stroke: rgb(CSS_ACCENT_PLACEHOLDER);\n width: 2rem;\n height: 2rem;\n animation: spin 1s linear infinite;\n transform-origin: center;\n }\n </style>\n</head>\n\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div class="wrapper">\n <div class="top-bar">\n <div class="close-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"\n stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"\n class="lucide lucide-x-icon lucide-x">\n <path d="M18 6 6 18" />\n <path d="m6 6 12 12" />\n </svg>\n </div>\n </div>\n <div class="loader-wrapper">\n <svg class="loader" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg" fill="none" data-test-name="oval"\n role="img">\n <g fill="none" fill-rule="evenodd">\n <g transform="translate(1 1)" stroke-width="2">\n <circle stroke-opacity="0.5" cx="18" cy="18" r="18" />\n <path d="M36 18c0-9.94-8.06-18-18-18" />\n </g>\n </g>\n </svg>\n </div>\n </div>\n <script NONCE_ATTR_PLACEHOLDER>\n function closeTheymesSdk() {\n parent.postMessage({ action: \'theymes.close\' }, \'*\');\n }\n\n document.querySelector(\'.close-button\').addEventListener(\'click\', closeTheymesSdk);\n <\/script>\n</body>\n\n</html>',c='<!DOCTYPE html>\n<html lang="en">\n\n<head>\n <meta charset="utf-8" />\n <meta name="viewport"\n content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n <meta name="theme-color" content="#000000" />\n <meta name="robots" content="noindex" />\n <link rel="preconnect" href="https://fonts.googleapis.com">\n <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>\n <link rel="preload" href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=fallback" as="font"\n type="font/woff2" crossorigin>\n <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=fallback">\n <title>Theymes</title>\n <style NONCE_ATTR_PLACEHOLDER>\n * {\n box-sizing: border-box;\n }\n\n html {\n font-family: \'Poppins\', sans-serif;\n font-size: CSS_FONT_SIZE_PLACEHOLDER;\n }\n\n html,\n body {\n background: rgb(CSS_BACKGROUND_PLACEHOLDER);\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: none;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n padding-top: INSET_TOP_PLACEHOLDER;\n padding-bottom: INSET_BOTTOM_PLACEHOLDER;\n padding-left: INSET_LEFT_PLACEHOLDER;\n padding-right: INSET_RIGHT_PLACEHOLDER;\n }\n\n .top-bar {\n flex: 0 0 auto;\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: flex-end;\n }\n\n .close-button {\n padding: 0.5rem 1rem;\n cursor: pointer;\n }\n\n .close-button svg {\n display: block;\n stroke: rgb(CSS_ACCENT_PLACEHOLDER);\n width: 1.75rem;\n height: 1.75rem;\n }\n\n .error-wrapper {\n flex: 1 0 0%;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n position: relative;\n align-items: center;\n justify-content: center;\n text-align: center;\n gap: 12px;\n padding: 12px;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 400;\n color: rgb(CSS_TEXT_PLACEHOLDER);\n }\n\n svg.error-icon {\n stroke: rgb(CSS_ACCENT_PLACEHOLDER);\n }\n </style>\n</head>\n\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div class="wrapper">\n <div class="top-bar">\n <div class="close-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"\n stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"\n class="lucide lucide-x-icon lucide-x">\n <path d="M18 6 6 18" />\n <path d="m6 6 12 12" />\n </svg>\n </div>\n </div>\n <div class="error-wrapper">\n <svg class="error-icon" width="91" height="91" viewBox="0 0 91 91" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M45.1079 89.1321C50.7158 89.1321 55.2618 84.5859 55.2618 78.9783C55.2618 73.3707 50.7158 68.8245 45.1079 68.8245C39.5001 68.8245 34.9541 73.3707 34.9541 78.9783C34.9541 84.5859 39.5001 89.1321 45.1079 89.1321Z"\n stroke="#FFB547" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />\n <path d="M24.7637 58.6355C35.9988 47.4005 54.2144 47.4005 65.4492 58.6355" stroke="#FFB547" stroke-width="2"\n stroke-linecap="round" stroke-linejoin="round" />\n <path d="M12.7988 46.6689C22.1436 37.3241 34.529 32.8731 46.7703 33.3159" stroke="#FFB547" stroke-width="2"\n stroke-linecap="round" stroke-linejoin="round" />\n <path d="M1.1084 34.4283C11.6674 23.9971 25.012 18.0833 38.7295 16.6868" stroke="#FFB547" stroke-width="2"\n stroke-linecap="round" stroke-linejoin="round" />\n <path d="M89.1082 1.13208L62.0312 28.209" stroke="#FFB547" stroke-width="2" stroke-linecap="round"\n stroke-linejoin="round" />\n <path d="M62.0312 1.13208L89.1082 28.209" stroke="#FFB547" stroke-width="2" stroke-linecap="round"\n stroke-linejoin="round" />\n </svg>\n <div>\n <h1>Connection error</h1>\n </div>\n </div>\n </div>\n <script NONCE_ATTR_PLACEHOLDER>\n function closeTheymesSdk() {\n parent.postMessage({ action: \'theymes.close\' }, \'*\');\n }\n\n document.querySelector(\'.close-button\').addEventListener(\'click\', closeTheymesSdk);\n <\/script>\n</body>\n\n</html>',d='<!DOCTYPE html>\n<html lang="en">\n\n<head>\n <meta charset="utf-8" />\n <meta name="viewport"\n content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n <meta name="theme-color" content="#000000" />\n <meta name="robots" content="noindex" />\n <link rel="preconnect" href="https://fonts.googleapis.com">\n <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>\n <link rel="preload" href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=fallback" as="font"\n type="font/woff2" crossorigin>\n <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=fallback">\n <title>Theymes</title>\n <style NONCE_ATTR_PLACEHOLDER>\n * {\n box-sizing: border-box;\n }\n\n html {\n font-family: \'Poppins\', sans-serif;\n }\n\n html,\n body {\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: none;\n }\n\n .close-button svg {\n display: block;\n stroke: rgb(CSS_NOTIFICATION_TEXT_PLACEHOLDER);\n width: 1.25rem;\n height: 1.25rem;\n }\n\n .notification {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n background: rgb(CSS_NOTIFICATION_BACKGROUND_PLACEHOLDER);\n width: 100%;\n height: auto;\n margin: 0;\n padding: 12px;\n border-radius: 6px;\n color: rgb(CSS_NOTIFICATION_TEXT_PLACEHOLDER);\n }\n\n .notification-text {\n flex: 1 0 0%;\n font-size: 0.875rem;\n /* 14/16 */\n line-height: 1.2;\n display: -webkit-box;\n line-clamp: 2;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n }\n\n .close-button {\n flex: 0 0 auto;\n padding-left: 10px;\n cursor: pointer;\n }\n </style>\n</head>\n\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div class="notification">\n <div class="notification-text">NOTIFICATION_TEXT_PLACEHOLDER</div>\n <div class="close-button">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"\n stroke-linecap="round" stroke-linejoin="round">\n <path d="M18 6 6 18"></path>\n <path d="m6 6 12 12"></path>\n </svg>\n </div>\n </div>\n <script NONCE_ATTR_PLACEHOLDER>\n function closeNotification() {\n parent.postMessage({ action: \'theymes.closeNotification\' }, \'*\');\n }\n\n function notificationClicked() {\n parent.postMessage({ action: \'theymes.handleNotificationAction\' }, \'*\');\n }\n\n document.querySelector(\'.notification-text\').addEventListener(\'click\', notificationClicked);\n document.querySelector(\'.close-button\').addEventListener(\'click\', closeNotification);\n <\/script>\n</body>\n\n</html>',u="<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\"\n content=\"viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n <meta name=\"theme-color\" content=\"#000000\" />\n <meta name=\"robots\" content=\"noindex\" />\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" crossorigin>\n <title>Theymes</title>\n <style NONCE_ATTR_PLACEHOLDER>\n @font-face {\n font-family: 'TheymesBody';\n src: CSS_BODY_FONT_NORMAL_SRC_PLACEHOLDER;\n font-weight: normal;\n font-style: normal;\n font-display: fallback;\n }\n\n * {\n box-sizing: border-box;\n }\n\n html,\n body {\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: none;\n }\n\n .sdk-button {\n display: flex;\n font-family: 'TheymesBody', CSS_BODY_FALLBACK_FONT_FAMILY_PLACEHOLDER;\n background: rgb(CSS_WIDGET_BUTTON_BACKGROUND_PLACEHOLDER);\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n color: rgb(CSS_WIDGET_BUTTON_TEXT_PLACEHOLDER);\n font-size: 14px;\n font-weight: 700;\n cursor: pointer;\n text-align: center;\n padding: 0 12px;\n border: none;\n outline: none;\n border-radius: 999px;\n box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);\n position: relative;\n }\n\n .sdk-button-badge {\n position: absolute;\n top: 0;\n right: 0;\n background: rgb(CSS_WIDGET_BUTTON_ACTION_PENDING_PLACEHOLDER);\n width: 12px;\n height: 12px;\n border-radius: 999px;\n display: none;\n }\n </style>\n</head>\n\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <button class=\"sdk-button\">\n <span class=\"sdk-button-text\">WIDGET_BUTTON_TEXT_PLACEHOLDER</span>\n <span class=\"sdk-button-badge\"></span>\n </button>\n <script NONCE_ATTR_PLACEHOLDER>\n let unreadMessageCount = UNREAD_MESSAGE_COUNT_PLACEHOLDER;\n\n function openWidget() {\n parent.postMessage({ action: 'theymes.sdkButtonClicked' }, '*');\n }\n\n function iframeSubscriber(e) {\n if (e.data.action === 'unreadMessageCountUpdate') {\n unreadMessageCount = e.data.count;\n updateUnreadMessageCount()\n } else if (e.data.action === 'widgetButtonTextUpdate') {\n document.querySelector('.sdk-button-text').textContent = e.data.text;\n }\n }\n\n function updateUnreadMessageCount() {\n if (unreadMessageCount > 0) {\n document.querySelector('.sdk-button-badge').style.display = 'block';\n } else {\n document.querySelector('.sdk-button-badge').style.display = 'none';\n }\n }\n\n document.querySelector('.sdk-button').addEventListener('click', openWidget);\n window.addEventListener('message', iframeSubscriber, false);\n\n updateUnreadMessageCount();\n <\/script>\n</body>\n\n</html>",p=function(e,t){return e===t||Boolean(e&&t&&"object"==typeof e&&"object"==typeof t&&Object.keys(e).length===Object.keys(t).length&&Object.entries(e).every((function(e){var n=e[0],o=e[1];return p(o,t[n])})))},g=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|redmi|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,f=/CrOS/,m=/android|ipad|playbook|silk/i;var h="colors",y="1.2.5",v="web",b={sdkDialog:"#theymes-sdk-dialog",sdkIframeWrapper:"#theymes-sdk-wrapper",sdkIframe:"#theymes-sdk",sdkLoaderIframe:"#theymes-sdk-loader",notificationDialog:"#theymes-sdk-notification-dialog",notificationIframe:"#theymes-sdk-notification",sdkButtonIframe:"#theymes-sdk-button",sdkStylesheet:"#theymes-sdk-stylesheet"},w=340,x=680,k=500,E=120,T=48,S=.2,C=.2,_=.2,O="theymes_path_on_init",A={token:null,domain:null,mode:"game",deviceId:null,position:"bottom-right",widgetButton:!1,widgetButtonAction:"support",x:20,y:20,loggingEnabled:!1,element:null,language:null,tags:new Set,fields:{},youngPlayer:!1,privacyMode:!1,signedMetadataToken:null,player:null,sdkIsOpen:!1,forceUpdateSdkDialog:!1,recordRetentionAfterSecs:null,resetSessionAfterSecs:28800,sessionStatus:"waiting",sessionStartTime:null,sessionResumeOrStartTime:null,retentionRemainingSeconds:null,isRetentionRecordedForSession:!1,recordRetentionTimerId:null,retryRecordRetentionTimerId:null,networkErrorTimerId:null,colors:function(){var t=localStorage.getItem(h);if(t){var n=JSON.parse(t);return e(e({},{text:{r:255,g:255,b:255},border:{r:51,g:54,b:71},background:{r:12,g:15,b:20},tile:{r:20,g:23,b:29},accent:{r:255,g:181,b:71},notificationBackground:{r:20,g:23,b:29},notificationText:{r:255,g:255,b:255},widgetButtonBackground:{r:12,g:15,b:20},widgetButtonText:{r:12,g:15,b:20},widgetButtonActionPending:{r:255,g:65,b:65}}),n)}return{text:{r:255,g:255,b:255},border:{r:51,g:54,b:71},background:{r:12,g:15,b:20},tile:{r:20,g:23,b:29},accent:{r:255,g:181,b:71},notificationBackground:{r:20,g:23,b:29},notificationText:{r:255,g:255,b:255},widgetButtonBackground:{r:12,g:15,b:20},widgetButtonText:{r:12,g:15,b:20},widgetButtonActionPending:{r:255,g:65,b:65}}}(),locs:{widgetButtonText:{}},fonts:{body:void 0},eventsNextPollAt:null,eventsPollerTimerId:null,notificationsPaused:!0,notifications:[],visibleNotification:null,unreadMessageCount:0,unansweredMessageCount:0,previousPath:null,previousConfig:null,nonce:null,keyboardHeight:0,disableInsets:!1},L=function(e){var t="/help-center";F({path:t,config:e}),B({path:t,config:e})},I=function(e){var t="/assistant";F({path:t,config:e}),B({path:t,config:e})},R=function(){!function(){var e=document.querySelector(b.sdkDialog),t=document.querySelector(b.sdkIframeWrapper);if(e){var n=function(){"widget"!==A.mode||A.forceUpdateSdkDialog?e.remove():e.style.display="none",A.forceUpdateSdkDialog=!1};t?(t.style.opacity="0",t.style.transform=Q({animation:"start"}),setTimeout((function(){n()}),1e3*S)):n()}A.widgetButton&&J();s("close",[])}(),G()},P=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];r.apply(void 0,e)};function D(t){var n,i,r,a,s,l,c=(null!=t?t:{}).config;if(!A.token||!A.domain||!A.deviceId)return null;var d=null!==(n=null==c?void 0:c.tags)&&void 0!==n?n:[],u=null!==(i=null==c?void 0:c.fields)&&void 0!==i?i:{},p=null!==(a=null!==(r=null==c?void 0:c.language)&&void 0!==r?r:A.language)&&void 0!==a?a:null,g=null!==(s=A.signedMetadataToken)&&void 0!==s?s:null,f=null!==(l=A.player)&&void 0!==l?l:null,m={_platform:v,_sdkVersion:y};A.youngPlayer&&(m._youngPlayer=!0),(A.privacyMode||A.youngPlayer)&&(m._privacyMode=!0);var h=o(o([],Array.from(A.tags),!0),d,!0),b=e(e(e({},A.fields),u),m);return{token:A.token,domain:A.domain,deviceId:A.deviceId,tags:h,fields:b,language:p,signedMetadataToken:g,player:f}}function N(e){return"".concat(e.r," ").concat(e.g," ").concat(e.b)}function M(e){var t,n,o,i;return e.template.replace("PLATFORM_PLACEHOLDER",v).replace("INSET_TOP_PLACEHOLDER",A.disableInsets?"0px":"env(safe-area-inset-top)").replace("INSET_BOTTOM_PLACEHOLDER",A.disableInsets?"0px":"env(safe-area-inset-bottom)").replace("INSET_LEFT_PLACEHOLDER",A.disableInsets?"0px":"env(safe-area-inset-left)").replace("INSET_RIGHT_PLACEHOLDER",A.disableInsets?"0px":"env(safe-area-inset-right)").replaceAll("CSS_TEXT_PLACEHOLDER",N(A.colors.text)).replaceAll("CSS_BORDER_PLACEHOLDER",N(A.colors.border)).replaceAll("CSS_BACKGROUND_PLACEHOLDER",N(A.colors.background)).replaceAll("CSS_TILE_PLACEHOLDER",N(A.colors.tile)).replaceAll("CSS_ACCENT_PLACEHOLDER",N(A.colors.accent)).replaceAll("CSS_NOTIFICATION_BACKGROUND_PLACEHOLDER",N(A.colors.notificationBackground)).replaceAll("CSS_NOTIFICATION_TEXT_PLACEHOLDER",N(A.colors.notificationText)).replaceAll("CSS_FONT_SIZE_PLACEHOLDER","game"===A.mode?"16px":"14px").replaceAll("CSS_BODY_FONT_NORMAL_SRC_PLACEHOLDER",null!==(n=null===(t=A.fonts.body)||void 0===t?void 0:t.regular)&&void 0!==n?n:"").replaceAll("CSS_BODY_FALLBACK_FONT_FAMILY_PLACEHOLDER",null!==(i=null===(o=A.fonts.body)||void 0===o?void 0:o.fallback)&&void 0!==i?i:"ui-sans-serif, system-ui, sans-serif").replaceAll("NONCE_ATTR_PLACEHOLDER",A.nonce?'nonce="'.concat(A.nonce,'"'):"")}function H(e){var t,n=e.iframe,o=e.content,i=null===(t=n.contentWindow)||void 0===t?void 0:t.document;i&&(i.open(),i.write(o),i.close())}function B(e){var t,n,o,i=D({config:e.config});if(i){var r=null!==(t=document.querySelector(b.sdkDialog))&&void 0!==t?t:document.createElement("div");r.id=b.sdkDialog.replace("#",""),r.style.display="block",r.style.position="fixed",r.style.border="none",r.style.width="0",r.style.height="0",r.style.margin="0",r.style.padding="0",r.style.zIndex="9998",r.style.overflow="hidden",r.style.backgroundColor="transparent";var a=null!==(n=r.querySelector(b.sdkIframeWrapper))&&void 0!==n?n:document.createElement("div");a.id=b.sdkIframeWrapper.replace("#",""),a.style.position="relative",a.style.width="100%",a.style.height="100%",a.style.top="0",a.style.right="0",a.style.bottom="0",a.style.left="0",a.style.opacity="0",a.style.colorScheme="auto",a.style.border="none",a.style.backgroundColor="rgb(".concat(N(A.colors.background),")"),a.style.transform=Q({animation:"start"}),a.style.transition=(A.mode,"opacity ".concat(S,"s ease-in-out, transform ").concat(S,"s ease-in-out")),"widget"===A.mode&&(a.style.overflow="hidden");var d=null!==(o=a.querySelector(b.sdkLoaderIframe))&&void 0!==o?o:document.createElement("iframe");d.id=b.sdkLoaderIframe.replace("#",""),d.style.position="absolute",d.style.border="none",d.style.width="100%",d.style.height="100%",d.style.top="0",d.style.right="0",d.style.bottom="0",d.style.left="0",d.style.colorScheme="auto";var u=a.querySelector(b.sdkIframe),p=null!=u?u:document.createElement("iframe"),g=setInterval((function(){var e;"complete"===(null===(e=p.contentDocument)||void 0===e?void 0:e.readyState)&&(clearInterval(g),m())}),500);p.id=b.sdkIframe.replace("#",""),p.style.position="absolute",p.style.border="none",p.style.top="0",p.style.right="0",p.style.bottom="0",p.style.left="0",p.style.colorScheme="auto",u&&!A.networkErrorTimerId||(p.src=function(e){var t=e.path,n=e.supportViewConfig,o="https://".concat(A.domain,"/sdk"),i=new URLSearchParams;i.set("platform",v),i.set("token",n.token),i.set("deviceId",n.deviceId),i.set("mode",A.mode),i.set("origin",window.location.origin),A.disableInsets&&i.set("disableInsets","true");n.language&&i.set("language",n.language);var r=W({supportViewConfig:n});return i.set("metadata",JSON.stringify(r)),"".concat(o).concat(t,"?").concat(i.toString())}({path:e.path,supportViewConfig:i}),p.style.width="0",p.style.height="0",r.appendChild(a),a.appendChild(d),a.appendChild(p),document.body.appendChild(r)),H({iframe:d,content:M({template:l})});var f=!1,m=function(){f||(f=!0,A.networkErrorTimerId=setTimeout((function(){H({iframe:d,content:M({template:c})})}),1e4))};p.onload=m,p.onerror=function(){H({iframe:d,content:M({template:c})})},j(),s("open",[]),setTimeout((function(){a.style.opacity="1",a.style.transform=Q({animation:"end"})}),100)}}function F(e){var t=e.path,n=e.config,o=null!=n?n:null;A.previousPath===t&&p(A.previousConfig,o)||(A.previousPath=t,A.previousConfig=o,U())}function U(){var e=document.querySelector(b.sdkDialog);A.sdkIsOpen?A.forceUpdateSdkDialog=!0:null==e||e.remove()}function W(e){var t=e.supportViewConfig,n={unsigned:{},signed:void 0};return t.player&&(n.unsigned.player=t.player),t.tags&&(n.unsigned.tags=t.tags),t.fields&&(n.unsigned.fields=t.fields),t.signedMetadataToken&&(n.signed=t.signedMetadataToken),n}function j(){var e=document.querySelector(b.sdkDialog),t=document.querySelector(b.sdkIframeWrapper);if(e&&t)if("widget"===A.mode){var n=V({type:"widget"}),o=Z();e.style.width=o.width,e.style.height=o.height,e.style.maxWidth=o.maxWidth,e.style.maxHeight=o.maxHeight,e.style.bottom=n.bottom,e.style.right=n.right,e.style.left=n.left,e.style.top=n.top,X()?(t.style.border="none",t.style.borderRadius="0"):(t.style.border="1px solid rgb(".concat(N(A.colors.border),")"),t.style.borderRadius="10px")}else if(t.style.border="none",t.style.borderRadius="0",A.element){var i=A.element.getBoundingClientRect(),r=i.width,a=i.height,s=i.top,l=i.left,c=i.right,d=i.bottom;e.style.width="".concat(r,"px"),e.style.height="".concat(a,"px"),e.style.maxWidth="none",e.style.maxHeight="none",e.style.top="".concat(s,"px"),e.style.left="".concat(l,"px"),e.style.right="".concat(c,"px"),e.style.bottom="".concat(d,"px")}else{a=A.keyboardHeight>0?"calc(100% - ".concat(A.keyboardHeight,"px + env(safe-area-inset-bottom) - 10px)"):"100%";e.style.width="100%",e.style.height=a,e.style.maxWidth="none",e.style.maxHeight="none",e.style.top="0",e.style.left="0",e.style.right="0",e.style.bottom="0"}}function q(e){var t=1e3*e;A.eventsNextPollAt=new Date(Date.now()+t),A.eventsPollerTimerId=setTimeout(G,t)}function G(){return t(this,void 0,void 0,(function(){var t,i,r,a,l,c,d,u;return n(this,(function(n){switch(n.label){case 0:if(oe(),!A.token||!A.domain||!A.deviceId)return q(60),[2];t=A.notificationsPaused||A.sdkIsOpen?"true":"false",i="https://".concat(A.domain,"/api/sdk/events"),r=new URLSearchParams(e(e({token:A.token,language:null!==(d=A.language)&&void 0!==d?d:"en",deviceId:A.deviceId,notificationsPaused:t,mode:A.mode},(null===(u=A.player)||void 0===u?void 0:u.id)?{unsignedPlayerId:A.player.id}:{}),A.signedMetadataToken?{signedMetadataToken:A.signedMetadataToken}:{})).toString(),n.label=1;case 1:return n.trys.push([1,6,,7]),[4,fetch("".concat(i,"?").concat(r),{method:"GET",headers:{"Content-Type":"application/json"}})];case 2:return(a=n.sent()).ok?[3,4]:[4,$(a)];case 3:throw n.sent();case 4:return[4,a.json()];case 5:return l=n.sent(),A.notifications=o(o([],A.notifications,!0),l.notifications,!0),l.notifications.length>0&&z(),l.unansweredMessageCount!==A.unansweredMessageCount&&(A.unansweredMessageCount=l.unansweredMessageCount,s("unansweredMessageCountUpdate",[l.unansweredMessageCount])),l.unreadMessageCount!==A.unreadMessageCount&&(A.unreadMessageCount=l.unreadMessageCount,s("unreadMessageCountUpdate",[l.unreadMessageCount]),ae({action:"unreadMessageCountUpdate",count:l.unreadMessageCount})),q(l.nextPollSeconds),[3,7];case 6:return c=n.sent(),console.error("Error initializing SDK:",c),q(60),[3,7];case 7:return[2]}}))}))}function z(){var e,t,n=A.notifications[0];if(n&&!A.visibleNotification){A.visibleNotification=n;var o=null!==(e=document.querySelector(b.notificationDialog))&&void 0!==e?e:document.createElement("div");o.id=b.notificationDialog.replace("#",""),o.style.position="fixed",o.style.border="none",o.style.width="100%",o.style.height="100%",o.style.top="0",o.style.right="0",o.style.bottom="0",o.style.left="0",o.style.margin="0",o.style.padding="0",o.style.zIndex="9999",o.style.colorScheme="auto",o.style.backgroundColor="transparent",o.style.pointerEvents="none",o.style.overflow="hidden",document.body.appendChild(o);var i,r=null!==(t=o.querySelector(b.notificationIframe))&&void 0!==t?t:document.createElement("iframe");r.id=b.notificationIframe.replace("#",""),r.style.position="absolute",r.style.border="none",r.style.width="0",r.style.height="0",r.style.top="-20px",r.style.left="0",r.style.colorScheme="auto",r.style.pointerEvents="auto",r.style.marginTop="-20px",r.style.opacity="0",r.style.transition="opacity ".concat(_,"s ease-in-out, margin-top ").concat(_,"s ease-in-out"),o.appendChild(r),H({iframe:r,content:(i={text:n.text},M({template:d}).replaceAll("NOTIFICATION_TEXT_PLACEHOLDER",i.text))}),Y(),setTimeout((function(){r.style.opacity="1",r.style.marginTop="0px"}),500),n.closeAfterSeconds>0&&setTimeout((function(){K({notification:n})}),1e3*n.closeAfterSeconds)}}function Y(){var e,t,n,o=document.querySelector(b.notificationDialog),i=document.querySelector(b.notificationIframe);if(o&&i){var r=(null===(n=null===(t=null===(e=i.contentWindow)||void 0===e?void 0:e.document)||void 0===t?void 0:t.body)||void 0===n?void 0:n.scrollHeight)?"".concat(i.contentWindow.document.body.scrollHeight,"px"):"0";if("widget"===A.mode){var a=V({type:"widget"}),s=Z(),l="calc(".concat(s.width," - 20px)");o.style.width=s.width,o.style.height=s.height,o.style.maxWidth=s.maxWidth,o.style.maxHeight=s.maxHeight,o.style.bottom=a.bottom,o.style.right=a.right,o.style.left=a.left,o.style.top=a.top,i.style.width=l}else if(A.element){var c=A.element.getBoundingClientRect();l="".concat(c.width-20,"px");o.style.width="".concat(c.width,"px"),o.style.height="".concat(c.height,"px"),o.style.maxWidth="none",o.style.maxHeight="none",o.style.top="".concat(c.top,"px"),o.style.left="".concat(c.left,"px"),o.style.right="".concat(c.right,"px"),o.style.bottom="".concat(c.bottom,"px"),i.style.width=l}else{l="calc(100% - 20px)";o.style.width="100%",o.style.height="100%",o.style.maxWidth="none",o.style.maxHeight="none",o.style.top="0",o.style.left="0",o.style.right="0",o.style.bottom="0",i.style.width=l}i.style.height=r,i.style.top="10px",i.style.left="10px"}}function K(e){if(e.notification&&A.visibleNotification===e.notification){var t=document.querySelector(b.notificationIframe),n=document.querySelector(b.notificationDialog);t&&(t.style.opacity="0",t.style.marginTop="-20px",setTimeout((function(){null==n||n.remove(),A.notifications=A.notifications.slice(1),A.visibleNotification=null,z()}),1e3*_))}}function J(){var e,t=null!==(e=document.querySelector(b.sdkButtonIframe))&&void 0!==e?e:document.createElement("iframe");if(t){var n,o=V({type:"button"});t.id=b.sdkButtonIframe.replace("#",""),t.style.position="fixed",t.style.border="none",t.style.width="".concat(E,"px"),t.style.height="".concat(T,"px"),t.style.maxWidth="95%",t.style.maxHeight="95%",t.style.bottom=o.bottom,t.style.right=o.right,t.style.left=o.left,t.style.top=o.top,t.style.margin="0",t.style.padding="0",t.style.zIndex="9997",t.style.backgroundColor="transparent",t.style.opacity="0",t.style.transform="scale(0.8)",t.style.transition="opacity ".concat(C,"s ease-in-out, transform ").concat(C,"s ease-in-out"),setTimeout((function(){t.style.opacity="1",t.style.transform="scale(1)"}),100),document.body.appendChild(t),H({iframe:t,content:(n={unreadMessageCount:A.unreadMessageCount},M({template:u}).replaceAll("UNREAD_MESSAGE_COUNT_PLACEHOLDER","".concat(n.unreadMessageCount)).replaceAll("CSS_WIDGET_BUTTON_BACKGROUND_PLACEHOLDER",N(A.colors.widgetButtonBackground)).replaceAll("CSS_WIDGET_BUTTON_TEXT_PLACEHOLDER",N(A.colors.widgetButtonText)).replaceAll("CSS_WIDGET_BUTTON_ACTION_PENDING_PLACEHOLDER",N(A.colors.widgetButtonActionPending)).replaceAll("WIDGET_BUTTON_TEXT_PLACEHOLDER",se()))})}}function X(){return!!function(e){e||(e={});var t=e.ua;if(t||"undefined"==typeof navigator||(t=navigator.userAgent),t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]),"string"!=typeof t)return!1;var n=g.test(t)&&!f.test(t)||!!e.tablet&&m.test(t);return!n&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==t.indexOf("Macintosh")&&-1!==t.indexOf("Safari")&&(n=!0),n}({tablet:!0})&&(window.innerWidth<k||window.innerHeight<k)}function V(e){var t=e.type,n=A.position,o=A.x,i=A.y;return X()&&"widget"===t?{top:"0",left:"0",right:"0",bottom:"0"}:"top-left"===n?{top:"".concat(o,"px"),left:"".concat(i,"px"),right:"auto",bottom:"auto"}:"top-right"===n?{top:"".concat(o,"px"),right:"".concat(i,"px"),left:"auto",bottom:"auto"}:"bottom-left"===n?{bottom:"".concat(o,"px"),left:"".concat(i,"px"),right:"auto",top:"auto"}:{bottom:"".concat(o,"px"),right:"".concat(i,"px"),left:"auto",top:"auto"}}function Z(){return X()?{width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"}:{width:"".concat(w,"px"),height:"".concat(x,"px"),maxWidth:"none",maxHeight:"calc(100vh - ".concat(2*A.y,"px)")}}function Q(e){return"start"===e.animation?"game"===A.mode?"translateY(20%)":"scale(0.8)":"game"===A.mode?"translateY(0)":"scale(1)"}function $(e){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,7]),[4,e.json()];case 1:return[2,t.sent()];case 2:t.sent(),t.label=3;case 3:return t.trys.push([3,5,,6]),[4,e.text()];case 4:return[2,t.sent()];case 5:return t.sent(),[2,void 0];case 6:return[3,7];case 7:return[2]}}))}))}function ee(){return t(this,void 0,void 0,(function(){var e,t,o,i,r,a;return n(this,(function(n){switch(n.label){case 0:if(ie(),A.retryRecordRetentionTimerId&&(clearTimeout(A.retryRecordRetentionTimerId),A.retryRecordRetentionTimerId=null),A.retentionRemainingSeconds=null,A.isRetentionRecordedForSession=!0,!(e=D()))return[2];t="https://".concat(A.domain,"/api/sdk/retention"),o=W({supportViewConfig:e}),i={token:A.token,deviceId:A.deviceId,language:A.language,metadata:o},n.label=1;case 1:return n.trys.push([1,5,,6]),[4,fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})];case 2:return(r=n.sent()).ok?[3,4]:[4,$(r)];case 3:throw n.sent();case 4:return[3,6];case 5:return a=n.sent(),console.error("Error tracking retention:",a),A.retryRecordRetentionTimerId=setTimeout(ee,6e4),[3,6];case 6:return[2]}}))}))}function te(){var e=new Date;if(A.sessionStatus="active",A.sessionResumeOrStartTime=e,A.sessionStartTime){var t=A.sessionStartTime.valueOf()/1e3+A.resetSessionAfterSecs;Date.now()/1e3>t&&ne()}else ne();if(null!==A.retentionRemainingSeconds&&(A.recordRetentionTimerId=setTimeout(ee,1e3*A.retentionRemainingSeconds)),!A.eventsPollerTimerId)if(A.eventsNextPollAt){var n=Math.floor((A.eventsNextPollAt.valueOf()-Date.now())/1e3);n>0?q(n):G()}else G()}function ne(){A.sessionStartTime=new Date,A.retentionRemainingSeconds=A.recordRetentionAfterSecs,A.isRetentionRecordedForSession=!1,ie()}function oe(){A.eventsPollerTimerId&&(clearTimeout(A.eventsPollerTimerId),A.eventsPollerTimerId=null)}function ie(){A.recordRetentionTimerId&&(clearTimeout(A.recordRetentionTimerId),A.recordRetentionTimerId=null)}function re(){G(),A.isRetentionRecordedForSession&&ee()}function ae(e){var t=document.querySelector(b.sdkButtonIframe);if(t)var n=setInterval((function(){var o,i;"complete"===(null===(o=t.contentDocument)||void 0===o?void 0:o.readyState)&&(clearInterval(n),null===(i=null==t?void 0:t.contentWindow)||void 0===i||i.postMessage(e,"*"))}),100)}function se(){var e,t,n;return null!==(n=null===(e=A.locs.widgetButtonText)||void 0===e?void 0:e[null!==(t=A.language)&&void 0!==t?t:"en"])&&void 0!==n?n:"Support"}function le(){var e="visible"===document.visibilityState&&document.hasFocus();e&&"paused"===A.sessionStatus?te():e||"active"!==A.sessionStatus||function(){if(A.sessionResumeOrStartTime&&A.retentionRemainingSeconds){var e=Math.floor((Date.now()-A.sessionResumeOrStartTime.valueOf())/1e3);A.retentionRemainingSeconds-=e}A.sessionStatus="paused",oe(),ie()}()}document.addEventListener("visibilitychange",le),window.addEventListener("focus",le),window.addEventListener("blur",le),window.addEventListener("resize",j),window.addEventListener("resize",Y),window.addEventListener("message",(function(e){if("theymes.ready"===e.data.action){var t=document.querySelector(b.sdkLoaderIframe),n=document.querySelector(b.sdkIframe);A.networkErrorTimerId&&(clearTimeout(A.networkErrorTimerId),A.networkErrorTimerId=null),n&&(n.style.width="100%",n.style.height="100%"),t&&t.remove()}else if("theymes.close"===e.data.action)R();else if("theymes.closeNotification"===e.data.action)K({notification:A.visibleNotification});else if("theymes.handleNotificationAction"===e.data.action)r={notification:A.visibleNotification},(null==(a=r.notification)?void 0:a.action)&&"OPEN_PAGE"===a.action.type&&(B({path:a.action.path}),K({notification:a}));else if("theymes.sdkButtonClicked"===e.data.action)(i=document.querySelector(b.sdkButtonIframe))&&(i.style.opacity="0",i.style.transform="scale(0.8)",setTimeout((function(){i.remove()}),1e3*C)),"support"===A.widgetButtonAction?L():"assistant"===A.widgetButtonAction&&I();else if("theymes.openExternalPage"===e.data.action){var o=e.data.url.startsWith(window.location.origin);o&&function(e){var t=e.key,n=e.value,o=e.ttlMs,i=e.storage,r=void 0===i?sessionStorage:i,a={value:n,expiry:Date.now()+o};r.setItem(t,JSON.stringify(a))}({key:O,value:e.data.path,ttlMs:1e4}),window.open(e.data.url,o?"_self":"_blank")}var i,r,a}),!1),P("open",(function(){A.sdkIsOpen=!0})),P("close",(function(){A.sdkIsOpen=!1})),exports.addEventListener=P,exports.addField=function(e,t){A.fields[e]=t,U()},exports.addFields=function(t){A.fields=e(e({},A.fields),t),U()},exports.addTag=function(e){A.tags.add(e),U()},exports.addTags=function(e){e.forEach((function(e){return A.tags.add(e)})),U()},exports.close=R,exports.disableLogging=function(){A.loggingEnabled=!1},exports.disableNotifications=function(){A.notificationsPaused=!0},exports.enableLogging=function(){A.loggingEnabled=!0},exports.enableNotifications=function(){A.notificationsPaused=!1,G()},exports.getFields=function(){return A.fields},exports.getLanguage=function(){return A.language},exports.getPlayer=function(){return A.player},exports.getSdkVersion=function(){return y},exports.getSignedMetadataToken=function(){return A.signedMetadataToken},exports.getTags=function(){return Array.from(A.tags)},exports.getUnansweredMessageCount=function(){return A.unansweredMessageCount},exports.getUnreadMessageCount=function(){return A.unreadMessageCount},exports.initialize=function(o,i,r){return t(void 0,void 0,void 0,(function(){var t,a,s,l,c,d,u,p,g,f,m,y,b,w;return n(this,(function(n){switch(n.label){case 0:if(!o||!i||!r.mode)throw new Error("Token, domain, and mode are required");A.token=o,A.domain=i,A.mode=r.mode,A.element="element"in r&&void 0!==r.element?r.element:A.element,A.language=null!==(u=r.language)&&void 0!==u?u:A.language,A.nonce=null!==(p=r.nonce)&&void 0!==p?p:A.nonce,A.deviceId=function(){var e=localStorage.getItem("deviceId");if(e)return e;var t=crypto.randomUUID();return localStorage.setItem("deviceId",t),t}(),A.widgetButton="button"in r&&void 0!==r.button&&null!==(g=r.button)&&void 0!==g?g:A.widgetButton,A.widgetButtonAction="buttonAction"in r&&void 0!==r.buttonAction&&null!==(f=r.buttonAction)&&void 0!==f?f:A.widgetButtonAction,A.position="position"in r&&void 0!==r.position&&null!==(m=r.position)&&void 0!==m?m:A.position,A.x="x"in r&&void 0!==r.x?r.x:A.x,A.y="y"in r&&void 0!==r.y?r.y:A.y,A.disableInsets="game"===A.mode&&null!==A.element,G(),t="https://".concat(i,"/api/sdk/initialize"),a={token:o,deviceId:A.deviceId,platform:v,mode:A.mode},n.label=1;case 1:return n.trys.push([1,6,,7]),[4,fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})];case 2:return(s=n.sent()).ok?[3,4]:[4,$(s)];case 3:throw n.sent();case 4:return[4,s.json()];case 5:return l=n.sent(),(null===(y=null==l?void 0:l.branding)||void 0===y?void 0:y.colors)&&(x=l.branding.colors,A.colors=e(e({},A.colors),x),localStorage.setItem(h,JSON.stringify(A.colors))),(null===(b=null==l?void 0:l.branding)||void 0===b?void 0:b.locs)&&(A.locs=l.branding.locs),(null===(w=null==l?void 0:l.branding)||void 0===w?void 0:w.fonts)&&(A.fonts=l.branding.fonts),"number"==typeof(null==l?void 0:l.recordRetentionAfterSecs)&&(A.recordRetentionAfterSecs=l.recordRetentionAfterSecs),"number"==typeof(null==l?void 0:l.resetSessionAfterSecs)&&(A.resetSessionAfterSecs=l.resetSessionAfterSecs),te(),U(),c=function(e){var t=e.key,n=e.storage,o=void 0===n?sessionStorage:n,i=e.removeItem,r=void 0!==i&&i,a=o.getItem(t);if(!a)return null;var s=JSON.parse(a);return Date.now()>s.expiry?(sessionStorage.removeItem(t),null):(r&&o.removeItem(t),s.value)}({key:O,removeItem:!0}),c?B({path:c}):A.widgetButton&&J(),[3,7];case 6:return d=n.sent(),console.error("Error initializing SDK:",d),[3,7];case 7:return[2]}var x}))}))},exports.iosSetKeyboardHeight=function(e){A.keyboardHeight=e,j()},exports.isPrivacyMode=function(){return A.privacyMode},exports.isSupported=function(){return!0},exports.isYoungPlayer=function(){return A.youngPlayer},exports.openAssistant=I,exports.openResource=function(e,t){var n="/resources/".concat(e);F({path:n,config:t}),B({path:n,config:t})},exports.openSupport=L,exports.recordRetention=function(){A.isRetentionRecordedForSession||ee()},exports.removeAllFields=function(){A.fields={},U()},exports.removeAllTags=function(){A.tags.clear(),U()},exports.removeEventListener=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];a.apply(void 0,e)},exports.removeField=function(e){delete A.fields[e],U()},exports.removeFields=function(e){e.forEach((function(e){return delete A.fields[e]})),U()},exports.removeTag=function(e){A.tags.delete(e),U()},exports.removeTags=function(e){e.forEach((function(e){return A.tags.delete(e)})),U()},exports.requestNotificationPermission=function(){},exports.reset=function(){A.language=null,A.tags=new Set,A.fields={},A.signedMetadataToken=null,A.player=null,U(),ae({action:"widgetButtonTextUpdate",text:se()})},exports.setFields=function(e){A.fields=e,U()},exports.setLanguage=function(e){var t=A.language!==e;A.language=e,t&&(U(),ae({action:"widgetButtonTextUpdate",text:se()}))},exports.setPlayer=function(e){var t,n=(null===(t=A.player)||void 0===t?void 0:t.id)!==(null==e?void 0:e.id);A.player=e,n&&(U(),re())},exports.setPrivacyMode=function(e){A.privacyMode=e,U()},exports.setSignedMetadataToken=function(e){var t=A.signedMetadataToken!==e;A.signedMetadataToken=e,t&&(U(),re())},exports.setTags=function(e){A.tags=new Set(e),U()},exports.setYoungPlayer=function(e){A.youngPlayer=e,U()};
|
|
1
|
+
"use strict";var e=function(){return e=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},e.apply(this,arguments)};function t(e,t,n,o){return new(n||(n=Promise))((function(i,r){function a(e){try{l(o.next(e))}catch(e){r(e)}}function s(e){try{l(o.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}l((o=o.apply(e,t||[])).next())}))}function n(e,t){var n,o,i,r={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(l){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(r=0)),r;)try{if(n=1,o&&(i=2&s[0]?o.return:s[0]?o.throw||((i=o.return)&&i.call(o),0):o.next)&&!(i=i.call(o,s[1])).done)return i;switch(o=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return r.label++,{value:s[1],done:!1};case 5:r.label++,o=s[1],s=[0];continue;case 7:s=r.ops.pop(),r.trys.pop();continue;default:if(!(i=r.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){r=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]<i[3])){r.label=s[1];break}if(6===s[0]&&r.label<i[1]){r.label=i[1],i=s;break}if(i&&r.label<i[2]){r.label=i[2],r.ops.push(s);break}i[2]&&r.ops.pop(),r.trys.pop();continue}s=t.call(e,r)}catch(e){s=[6,e],o=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,l])}}}function o(e,t,n){if(n||2===arguments.length)for(var o,i=0,r=t.length;i<r;i++)!o&&i in t||(o||(o=Array.prototype.slice.call(t,0,i)),o[i]=t[i]);return e.concat(o||Array.prototype.slice.call(t))}"function"==typeof SuppressedError&&SuppressedError;var i={unreadMessageCountUpdate:new Set,unansweredMessageCountUpdate:new Set,open:new Set,close:new Set};function r(e,t){i[e].add(t)}function a(e,t){i[e].delete(t)}function s(e,t){i[e].forEach((function(e){return e.apply(void 0,t)}))}var l='<!DOCTYPE html>\n<html lang="en">\n\n<head>\n <meta charset="utf-8" />\n <meta name="viewport"\n content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n <meta name="theme-color" content="#000000" />\n <meta name="robots" content="noindex" />\n <title>Theymes</title>\n <style NONCE_ATTR_PLACEHOLDER>\n * {\n box-sizing: border-box;\n }\n\n html,\n body {\n background: rgb(CSS_BACKGROUND_PLACEHOLDER);\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: none;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n padding-top: INSET_TOP_PLACEHOLDER;\n padding-bottom: INSET_BOTTOM_PLACEHOLDER;\n padding-left: INSET_LEFT_PLACEHOLDER;\n padding-right: INSET_RIGHT_PLACEHOLDER;\n }\n\n .top-bar {\n flex: 0 0 auto;\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: flex-end;\n }\n\n .loader-wrapper {\n flex: 1 0 0%;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n position: relative;\n align-items: center;\n justify-content: center;\n text-align: center;\n gap: 12px;\n }\n\n .close-button {\n padding: 0.5rem 1rem;\n cursor: pointer;\n }\n\n .close-button svg {\n display: block;\n stroke: rgb(CSS_ACCENT_PLACEHOLDER);\n width: 1.75rem;\n height: 1.75rem;\n }\n\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n .loader {\n stroke: rgb(CSS_ACCENT_PLACEHOLDER);\n width: 2rem;\n height: 2rem;\n animation: spin 1s linear infinite;\n transform-origin: center;\n }\n </style>\n</head>\n\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div class="wrapper">\n <div class="top-bar">\n <div class="close-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"\n stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"\n class="lucide lucide-x-icon lucide-x">\n <path d="M18 6 6 18" />\n <path d="m6 6 12 12" />\n </svg>\n </div>\n </div>\n <div class="loader-wrapper">\n <svg class="loader" viewBox="0 0 38 38" xmlns="http://www.w3.org/2000/svg" fill="none" data-test-name="oval"\n role="img">\n <g fill="none" fill-rule="evenodd">\n <g transform="translate(1 1)" stroke-width="2">\n <circle stroke-opacity="0.5" cx="18" cy="18" r="18" />\n <path d="M36 18c0-9.94-8.06-18-18-18" />\n </g>\n </g>\n </svg>\n </div>\n </div>\n <script NONCE_ATTR_PLACEHOLDER>\n function closeTheymesSdk() {\n parent.postMessage({ action: \'theymes.close\' }, \'*\');\n }\n\n document.querySelector(\'.close-button\').addEventListener(\'click\', closeTheymesSdk);\n <\/script>\n</body>\n\n</html>',c='<!DOCTYPE html>\n<html lang="en">\n\n<head>\n <meta charset="utf-8" />\n <meta name="viewport"\n content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n <meta name="theme-color" content="#000000" />\n <meta name="robots" content="noindex" />\n <title>Theymes</title>\n <style NONCE_ATTR_PLACEHOLDER>\n * {\n box-sizing: border-box;\n }\n\n html {\n font-family: sans-serif;\n font-size: CSS_FONT_SIZE_PLACEHOLDER;\n }\n\n html,\n body {\n background: rgb(CSS_BACKGROUND_PLACEHOLDER);\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: none;\n }\n\n .wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n padding-top: INSET_TOP_PLACEHOLDER;\n padding-bottom: INSET_BOTTOM_PLACEHOLDER;\n padding-left: INSET_LEFT_PLACEHOLDER;\n padding-right: INSET_RIGHT_PLACEHOLDER;\n }\n\n .top-bar {\n flex: 0 0 auto;\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: flex-end;\n }\n\n .close-button {\n padding: 0.5rem 1rem;\n cursor: pointer;\n }\n\n .close-button svg {\n display: block;\n stroke: rgb(CSS_ACCENT_PLACEHOLDER);\n width: 1.75rem;\n height: 1.75rem;\n }\n\n .error-wrapper {\n flex: 1 0 0%;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n position: relative;\n align-items: center;\n justify-content: center;\n text-align: center;\n gap: 12px;\n padding: 12px;\n }\n\n h1 {\n font-size: 18px;\n font-weight: 400;\n color: rgb(CSS_TEXT_PLACEHOLDER);\n }\n\n svg.error-icon {\n stroke: rgb(CSS_ACCENT_PLACEHOLDER);\n }\n </style>\n</head>\n\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div class="wrapper">\n <div class="top-bar">\n <div class="close-button">\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"\n stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"\n class="lucide lucide-x-icon lucide-x">\n <path d="M18 6 6 18" />\n <path d="m6 6 12 12" />\n </svg>\n </div>\n </div>\n <div class="error-wrapper">\n <svg class="error-icon" width="91" height="91" viewBox="0 0 91 91" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M45.1079 89.1321C50.7158 89.1321 55.2618 84.5859 55.2618 78.9783C55.2618 73.3707 50.7158 68.8245 45.1079 68.8245C39.5001 68.8245 34.9541 73.3707 34.9541 78.9783C34.9541 84.5859 39.5001 89.1321 45.1079 89.1321Z"\n stroke="#FFB547" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" />\n <path d="M24.7637 58.6355C35.9988 47.4005 54.2144 47.4005 65.4492 58.6355" stroke="#FFB547" stroke-width="2"\n stroke-linecap="round" stroke-linejoin="round" />\n <path d="M12.7988 46.6689C22.1436 37.3241 34.529 32.8731 46.7703 33.3159" stroke="#FFB547" stroke-width="2"\n stroke-linecap="round" stroke-linejoin="round" />\n <path d="M1.1084 34.4283C11.6674 23.9971 25.012 18.0833 38.7295 16.6868" stroke="#FFB547" stroke-width="2"\n stroke-linecap="round" stroke-linejoin="round" />\n <path d="M89.1082 1.13208L62.0312 28.209" stroke="#FFB547" stroke-width="2" stroke-linecap="round"\n stroke-linejoin="round" />\n <path d="M62.0312 1.13208L89.1082 28.209" stroke="#FFB547" stroke-width="2" stroke-linecap="round"\n stroke-linejoin="round" />\n </svg>\n <div>\n <h1>Connection error</h1>\n </div>\n </div>\n </div>\n <script NONCE_ATTR_PLACEHOLDER>\n function closeTheymesSdk() {\n parent.postMessage({ action: \'theymes.close\' }, \'*\');\n }\n\n document.querySelector(\'.close-button\').addEventListener(\'click\', closeTheymesSdk);\n <\/script>\n</body>\n\n</html>',d="<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\"\n content=\"viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no\" />\n <meta name=\"theme-color\" content=\"#000000\" />\n <meta name=\"robots\" content=\"noindex\" />\n <title>Theymes</title>\n <style NONCE_ATTR_PLACEHOLDER>\n @font-face {\n font-family: 'TheymesBody';\n src: CSS_BODY_FONT_NORMAL_SRC_PLACEHOLDER;\n font-weight: normal;\n font-style: normal;\n font-display: fallback;\n }\n\n * {\n box-sizing: border-box;\n }\n\n html,\n body {\n width: 100%;\n height: 100%;\n margin: 0;\n padding: 0;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: none;\n }\n\n .sdk-button {\n display: flex;\n font-family: 'TheymesBody', CSS_BODY_FALLBACK_FONT_FAMILY_PLACEHOLDER;\n background: rgb(CSS_WIDGET_BUTTON_BACKGROUND_PLACEHOLDER);\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n color: rgb(CSS_WIDGET_BUTTON_TEXT_PLACEHOLDER);\n font-size: 14px;\n font-weight: 700;\n cursor: pointer;\n text-align: center;\n padding: 0 12px;\n border: none;\n outline: none;\n border-radius: 999px;\n box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.1);\n position: relative;\n }\n\n .sdk-button-badge {\n position: absolute;\n top: 0;\n right: 0;\n background: rgb(CSS_WIDGET_BUTTON_ACTION_PENDING_PLACEHOLDER);\n width: 12px;\n height: 12px;\n border-radius: 999px;\n display: none;\n }\n </style>\n</head>\n\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <button class=\"sdk-button\">\n <span class=\"sdk-button-text\">WIDGET_BUTTON_TEXT_PLACEHOLDER</span>\n <span class=\"sdk-button-badge\"></span>\n </button>\n <script NONCE_ATTR_PLACEHOLDER>\n let unreadMessageCount = UNREAD_MESSAGE_COUNT_PLACEHOLDER;\n\n function openWidget() {\n parent.postMessage({ action: 'theymes.sdkButtonClicked' }, '*');\n }\n\n function iframeSubscriber(e) {\n if (e.data.action === 'unreadMessageCountUpdate') {\n unreadMessageCount = e.data.count;\n updateUnreadMessageCount()\n } else if (e.data.action === 'widgetButtonTextUpdate') {\n document.querySelector('.sdk-button-text').textContent = e.data.text;\n }\n }\n\n function updateUnreadMessageCount() {\n if (unreadMessageCount > 0) {\n document.querySelector('.sdk-button-badge').style.display = 'block';\n } else {\n document.querySelector('.sdk-button-badge').style.display = 'none';\n }\n }\n\n document.querySelector('.sdk-button').addEventListener('click', openWidget);\n window.addEventListener('message', iframeSubscriber, false);\n\n updateUnreadMessageCount();\n <\/script>\n</body>\n\n</html>",u="1.2.8",p="colors",g="web",f={sdkDialog:"#theymes-sdk-dialog",sdkIframeWrapper:"#theymes-sdk-wrapper",sdkIframe:"#theymes-sdk",sdkLoaderIframe:"#theymes-sdk-loader",notificationDialog:"#theymes-sdk-notification-dialog",notificationIframe:"#theymes-sdk-notification",sdkButtonIframe:"#theymes-sdk-button",sdkStylesheet:"#theymes-sdk-stylesheet"},m=340,h=680,y=500,v=120,b=48,w=.2,x=.2,E=.2,T="theymes_path_on_init",k="url('https://fonts.gstatic.com/s/poppins/v22/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2') format('woff2')",S={token:null,domain:null,mode:"game",deviceId:null,position:"bottom-right",widgetButton:!1,widgetButtonAction:"support",x:20,y:20,loggingEnabled:!1,element:null,language:null,userLanguage:navigator.language,tags:new Set,fields:{},youngPlayer:!1,privacyMode:!1,signedMetadataToken:null,isLoggedIn:!1,isInForeground:!0,hasNetworkConnectivity:!0,player:null,sdkIsOpen:!1,forceUpdateSdkDialog:!1,recordRetentionAfterSecs:null,resetSessionAfterSecs:28800,sessionStatus:"waiting",sessionStartTime:null,sessionResumeOrStartTime:null,retentionRemainingSeconds:null,isRetentionRecordedForSession:!1,recordRetentionTimerId:null,retryRecordRetentionTimerId:null,retryIntervalSecs:300,networkErrorTimerId:null,colors:function(){var t=localStorage.getItem(p);if(t){var n=JSON.parse(t);return e(e({},{text:{r:255,g:255,b:255},border:{r:51,g:54,b:71},background:{r:12,g:15,b:20},tile:{r:20,g:23,b:29},accent:{r:255,g:181,b:71},notificationBackground:{r:20,g:23,b:29},notificationText:{r:255,g:255,b:255},widgetButtonBackground:{r:12,g:15,b:20},widgetButtonText:{r:12,g:15,b:20},widgetButtonActionPending:{r:255,g:65,b:65}}),n)}return{text:{r:255,g:255,b:255},border:{r:51,g:54,b:71},background:{r:12,g:15,b:20},tile:{r:20,g:23,b:29},accent:{r:255,g:181,b:71},notificationBackground:{r:20,g:23,b:29},notificationText:{r:255,g:255,b:255},widgetButtonBackground:{r:12,g:15,b:20},widgetButtonText:{r:12,g:15,b:20},widgetButtonActionPending:{r:255,g:65,b:65}}}(),locs:{widgetButtonText:{}},fonts:{body:void 0},notificationsPaused:!0,notifications:[],visibleNotification:null,unreadMessageCount:0,unansweredMessageCount:0,previousPath:null,previousConfig:null,nonce:null,keyboardHeight:0,disableInsets:!1};var C=function(e,t){return e===t||Boolean(e&&t&&"object"==typeof e&&"object"==typeof t&&Object.keys(e).length===Object.keys(t).length&&Object.entries(e).every((function(e){var n=e[0],o=e[1];return C(o,t[n])})))};function O(e){var t,n=e.iframe,o=e.content,i=null===(t=n.contentWindow)||void 0===t?void 0:t.document;i&&(i.open(),i.write(o),i.close())}function L(e){return"".concat(e.r," ").concat(e.g," ").concat(e.b)}function I(e){var t,n,o,i;return e.template.replace(/PLATFORM_PLACEHOLDER/g,g).replace(/INSET_TOP_PLACEHOLDER/g,S.disableInsets?"0px":"env(safe-area-inset-top, 0px)").replace(/INSET_BOTTOM_PLACEHOLDER/g,S.disableInsets?"0px":"env(safe-area-inset-bottom, 0px)").replace(/INSET_LEFT_PLACEHOLDER/g,S.disableInsets?"0px":"env(safe-area-inset-left, 0px)").replace(/INSET_RIGHT_PLACEHOLDER/g,S.disableInsets?"0px":"env(safe-area-inset-right, 0px)").replace(/CSS_TEXT_PLACEHOLDER/g,L(S.colors.text)).replace(/CSS_BORDER_PLACEHOLDER/g,L(S.colors.border)).replace(/CSS_BACKGROUND_PLACEHOLDER/g,L(S.colors.background)).replace(/CSS_TILE_PLACEHOLDER/g,L(S.colors.tile)).replace(/CSS_ACCENT_PLACEHOLDER/g,L(S.colors.accent)).replace(/CSS_NOTIFICATION_BACKGROUND_PLACEHOLDER/g,L(S.colors.notificationBackground)).replace(/CSS_NOTIFICATION_TEXT_PLACEHOLDER/g,L(S.colors.notificationText)).replace(/CSS_FONT_SIZE_PLACEHOLDER/g,"game"===S.mode?"16px":"14px").replace(/CSS_BODY_FONT_NORMAL_SRC_PLACEHOLDER/g,null!==(n=null===(t=S.fonts.body)||void 0===t?void 0:t.regular)&&void 0!==n?n:k).replace(/CSS_BODY_FALLBACK_FONT_FAMILY_PLACEHOLDER/g,null!==(i=null===(o=S.fonts.body)||void 0===o?void 0:o.fallback)&&void 0!==i?i:"ui-sans-serif, system-ui, sans-serif").replace(/NONCE_ATTR_PLACEHOLDER/g,S.nonce?'nonce="'.concat(S.nonce,'"'):"")}var _='<!DOCTYPE html>\n<html lang="en">\n\n<head>\n <meta charset="utf-8" />\n <meta name="viewport"\n content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />\n <meta name="theme-color" content="#000000" />\n <meta name="robots" content="noindex" />\n <title>Theymes</title>\n <style NONCE_ATTR_PLACEHOLDER>\n @font-face {\n font-family: \'TheymesBody\';\n src: CSS_BODY_FONT_NORMAL_SRC_PLACEHOLDER;\n font-weight: normal;\n font-style: normal;\n font-display: fallback;\n }\n\n * {\n box-sizing: border-box;\n }\n\n html {\n font-family: \'TheymesBody\', CSS_BODY_FALLBACK_FONT_FAMILY_PLACEHOLDER;\n }\n\n html,\n body {\n width: 100%;\n height: auto;\n margin: 0;\n padding: 0;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n touch-action: none;\n }\n\n .close-button svg {\n display: block;\n stroke: rgb(CSS_NOTIFICATION_TEXT_PLACEHOLDER);\n width: 1.25rem;\n height: 1.25rem;\n }\n\n .notification {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n background: rgb(CSS_NOTIFICATION_BACKGROUND_PLACEHOLDER);\n width: 100%;\n height: auto;\n margin: 0;\n padding: 12px;\n border-radius: 6px;\n color: rgb(CSS_NOTIFICATION_TEXT_PLACEHOLDER);\n }\n\n .notification-text {\n flex: 1 0 0%;\n font-size: 0.875rem;\n /* 14/16 */\n line-height: 1.2;\n display: -webkit-box;\n line-clamp: 2;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n }\n\n .close-button {\n flex: 0 0 auto;\n padding-left: 10px;\n cursor: pointer;\n }\n </style>\n</head>\n\n<body>\n <noscript>You need to enable JavaScript to run this app.</noscript>\n <div class="notification">\n <div class="notification-text">NOTIFICATION_TEXT_PLACEHOLDER</div>\n <div class="close-button">\n <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"\n stroke-linecap="round" stroke-linejoin="round">\n <path d="M18 6 6 18"></path>\n <path d="m6 6 12 12"></path>\n </svg>\n </div>\n </div>\n <script NONCE_ATTR_PLACEHOLDER>\n function closeNotification() {\n parent.postMessage({ action: \'theymes.closeNotification\' }, \'*\');\n }\n\n function notificationClicked() {\n parent.postMessage({ action: \'theymes.handleNotificationAction\' }, \'*\');\n }\n\n document.querySelector(\'.notification-text\').addEventListener(\'click\', notificationClicked);\n document.querySelector(\'.close-button\').addEventListener(\'click\', closeNotification);\n <\/script>\n</body>\n\n</html>',R=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|redmi|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,P=/CrOS/,A=/android|ipad|playbook|silk/i;function N(){return!!function(e){e||(e={});var t=e.ua;if(t||"undefined"==typeof navigator||(t=navigator.userAgent),t&&t.headers&&"string"==typeof t.headers["user-agent"]&&(t=t.headers["user-agent"]),"string"!=typeof t)return!1;var n=R.test(t)&&!P.test(t)||!!e.tablet&&A.test(t);return!n&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==t.indexOf("Macintosh")&&-1!==t.indexOf("Safari")&&(n=!0),n}({tablet:!0})&&(window.innerWidth<y||window.innerHeight<y)}function D(e){var t=e.type,n=S.position,o=S.x,i=S.y;return N()&&"widget"===t?{top:"0",left:"0",right:"0",bottom:"0"}:"top-left"===n?{top:"".concat(o,"px"),left:"".concat(i,"px"),right:"auto",bottom:"auto"}:"top-right"===n?{top:"".concat(o,"px"),right:"".concat(i,"px"),left:"auto",bottom:"auto"}:"bottom-left"===n?{bottom:"".concat(o,"px"),left:"".concat(i,"px"),right:"auto",top:"auto"}:{bottom:"".concat(o,"px"),right:"".concat(i,"px"),left:"auto",top:"auto"}}function M(){return N()?{width:"100%",height:"100%",maxWidth:"none",maxHeight:"none"}:{width:"".concat(m,"px"),height:"".concat(h,"px"),maxWidth:"none",maxHeight:"calc(100vh - ".concat(2*S.y,"px)")}}function B(e){var t=document.querySelector(f.sdkButtonIframe);if(t)var n=setInterval((function(){var o,i;"complete"===(null===(o=t.contentDocument)||void 0===o?void 0:o.readyState)&&(clearInterval(n),null===(i=null==t?void 0:t.contentWindow)||void 0===i||i.postMessage(e,"*"))}),100)}function H(){var e,t,n=S.notifications[0];if(n&&!S.visibleNotification){S.visibleNotification=n;var o=null!==(e=document.querySelector(f.notificationDialog))&&void 0!==e?e:document.createElement("div");o.id=f.notificationDialog.replace("#",""),o.style.position="fixed",o.style.border="none",o.style.margin="0",o.style.padding="0",o.style.zIndex="9999",o.style.colorScheme="auto",o.style.backgroundColor="transparent",o.style.pointerEvents="none",o.style.overflow="hidden",document.body.appendChild(o);var i,r=null!==(t=o.querySelector(f.notificationIframe))&&void 0!==t?t:document.createElement("iframe");r.id=f.notificationIframe.replace("#",""),r.style.position="absolute",r.style.border="none",r.style.width="0",r.style.height="0",r.style.top="-20px",r.style.left="0",r.style.colorScheme="auto",r.style.pointerEvents="auto",r.style.marginTop="-20px",r.style.opacity="0",r.style.transition="opacity ".concat(E,"s ease-in-out, margin-top ").concat(E,"s ease-in-out"),o.appendChild(r),O({iframe:r,content:(i={text:n.text},I({template:_}).replace(/NOTIFICATION_TEXT_PLACEHOLDER/g,i.text))}),setTimeout((function(){r.style.opacity="1",r.style.marginTop="0px",F()}),500),n.closeAfterSeconds>0&&setTimeout((function(){j({notification:n})}),1e3*n.closeAfterSeconds)}}function F(){var e,t,n,o=document.querySelector(f.notificationDialog),i=document.querySelector(f.notificationIframe);if(o&&i){var r=(null===(n=null===(t=null===(e=i.contentWindow)||void 0===e?void 0:e.document)||void 0===t?void 0:t.body)||void 0===n?void 0:n.scrollHeight)?"".concat(i.contentWindow.document.body.scrollHeight,"px"):"0";if("widget"===S.mode){var a=D({type:"widget"}),s=M(),l="calc(".concat(s.width," - 20px)");o.style.bottom=a.bottom,o.style.right=a.right,o.style.left=a.left,o.style.top=a.top,o.style.overflow="hidden",i.style.width=l}else if(S.element){var c=S.element.getBoundingClientRect();l="".concat(c.width-20,"px");o.style.top="".concat(c.top,"px"),o.style.left="".concat(c.left,"px"),o.style.right="".concat(c.right,"px"),o.style.bottom="".concat(c.bottom,"px"),o.style.overflow="hidden",i.style.width=l}else{l="calc(100% - 20px)";o.style.top=S.disableInsets?"0px":"env(safe-area-inset-top, 0px)",o.style.left=S.disableInsets?"0px":"env(safe-area-inset-left, 0px)",o.style.right=S.disableInsets?"0px":"env(safe-area-inset-right, 0px)",o.style.bottom=S.disableInsets?"0px":"env(safe-area-inset-bottom, 0px)",o.style.overflow="visible",i.style.width=l}i.style.height=r,i.style.top="10px",i.style.left="10px"}}function j(e){if(e.notification&&S.visibleNotification===e.notification){var t=document.querySelector(f.notificationIframe),n=document.querySelector(f.notificationDialog);t&&(t.style.opacity="0",t.style.marginTop="-20px",setTimeout((function(){null==n||n.remove(),S.notifications=S.notifications.slice(1),S.visibleNotification=null,H()}),1e3*E))}}var U=function(){function i(){Object.defineProperty(this,"isRunning",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"timer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"pollWhenNotificationsEnabled",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"lastPollDate",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"nextPollDate",{enumerable:!0,configurable:!0,writable:!0,value:null}),this.resumeIfNeeded(!1)}return Object.defineProperty(i.prototype,"onIsInForegroundChanged",{enumerable:!1,configurable:!0,writable:!0,value:function(){S.isInForeground?this.resumeIfNeeded(!1):this.pauseIfNeeded()}}),Object.defineProperty(i.prototype,"onHasNetworkConnectivityChanged",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.resumeIfNeeded(!1)}}),Object.defineProperty(i.prototype,"resume",{enumerable:!1,configurable:!0,writable:!0,value:function(e){this.isRunning=!0;var t=new Date;if(this.nextPollDate&&!e||(this.nextPollDate=new Date(t.getTime()+1e3)),t>=this.nextPollDate)this.pollEventsRequest();else{var n=(this.nextPollDate.getTime()-t.getTime())/1e3;this.scheduleNextPollEventsRequest(n)}}}),Object.defineProperty(i.prototype,"pause",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.isRunning=!1,this.timer&&(clearTimeout(this.timer),this.timer=null)}}),Object.defineProperty(i.prototype,"shouldBeRunning",{enumerable:!1,configurable:!0,writable:!0,value:function(){return S.isLoggedIn&&S.isInForeground&&S.hasNetworkConnectivity&&!S.sdkIsOpen}}),Object.defineProperty(i.prototype,"resumeIfNeeded",{enumerable:!1,configurable:!0,writable:!0,value:function(e){!this.shouldBeRunning()||this.isRunning&&!e||this.resume(e)}}),Object.defineProperty(i.prototype,"pauseIfNeeded",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.isRunning&&!this.shouldBeRunning()&&this.pause()}}),Object.defineProperty(i.prototype,"onEnableNotifications",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.isRunning&&this.pollWhenNotificationsEnabled&&this.scheduleNextPollEventsRequest(0)}}),Object.defineProperty(i.prototype,"onOpen",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.pauseIfNeeded()}}),Object.defineProperty(i.prototype,"onClose",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.resumeIfNeeded(!0)}}),Object.defineProperty(i.prototype,"onLogin",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.resumeIfNeeded(!0)}}),Object.defineProperty(i.prototype,"onLogout",{enumerable:!1,configurable:!0,writable:!0,value:function(){this.pauseIfNeeded()}}),Object.defineProperty(i.prototype,"scheduleNextPollEventsRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(e){var t=this;this.nextPollDate=new Date(Date.now()+1e3*e),this.timer&&clearTimeout(this.timer),this.timer=setTimeout((function(){t.timer=null,t.pollEventsRequest()}),1e3*e)}}),Object.defineProperty(i.prototype,"pollEventsRequest",{enumerable:!1,configurable:!0,writable:!0,value:function(){return t(this,void 0,void 0,(function(){var t,i,r,a,l,c,d,u,p;return n(this,(function(n){switch(n.label){case 0:if(!S.token||!S.domain||!S.deviceId)return[2];if(!this.isRunning)return[2];if(this.lastPollDate&&(t=new Date(this.lastPollDate.getTime()+6e4),(i=(t.getTime()-Date.now())/1e3)>0))return this.scheduleNextPollEventsRequest(i),[2];this.lastPollDate=new Date,r=S.notificationsPaused||S.sdkIsOpen?"true":"false",a=new URLSearchParams(e(e({token:S.token,language:null!==(u=S.language)&&void 0!==u?u:"en",deviceId:S.deviceId,notificationsPaused:r,mode:S.mode},(null===(p=S.player)||void 0===p?void 0:p.id)?{unsignedPlayerId:S.player.id}:{}),S.signedMetadataToken?{signedMetadataToken:S.signedMetadataToken}:{})).toString(),n.label=1;case 1:return n.trys.push([1,4,,5]),[4,fetch("https://".concat(S.domain,"/api/sdk/events?").concat(a),{method:"GET"})];case 2:if(!(l=n.sent()).ok)throw new Error("HTTP error! status: ".concat(l.status));return[4,l.json()];case 3:return c=n.sent(),this.scheduleNextPollEventsRequest(c.nextPollSeconds),void 0!==c.pollWhenNotificationsEnabled&&(this.pollWhenNotificationsEnabled=c.pollWhenNotificationsEnabled),S.notifications=o(o([],S.notifications,!0),c.notifications,!0),S.notifications.length>0&&H(),c.unansweredMessageCount!==S.unansweredMessageCount&&(S.unansweredMessageCount=c.unansweredMessageCount,s("unansweredMessageCountUpdate",[c.unansweredMessageCount])),c.unreadMessageCount!==S.unreadMessageCount&&(S.unreadMessageCount=c.unreadMessageCount,s("unreadMessageCountUpdate",[c.unreadMessageCount]),B({action:"unreadMessageCountUpdate",count:c.unreadMessageCount})),[3,5];case 4:return d=n.sent(),console.error("Error fetching events:",d),this.scheduleNextPollEventsRequest(S.retryIntervalSecs),[3,5];case 5:return[2]}}))}))}}),i}(),q={eventPoller:null},W=function(){var e;null===(e=q.eventPoller)||void 0===e||e.onLogin()},G=function(){var e;null===(e=q.eventPoller)||void 0===e||e.onLogout()},Y=function(){var e;null===(e=q.eventPoller)||void 0===e||e.onOpen()},z=function(){var e;null===(e=q.eventPoller)||void 0===e||e.onClose()},J=function(){var e;null===(e=q.eventPoller)||void 0===e||e.onEnableNotifications()},K=function(){var e;null===(e=q.eventPoller)||void 0===e||e.onIsInForegroundChanged()},X=function(e){var t="/help-center";te({path:t,config:e}),ee({path:t,config:e})},V=function(e){var t="/assistant";te({path:t,config:e}),ee({path:t,config:e})},Z=function(){!function(){var e=document.querySelector(f.sdkDialog),t=document.querySelector(f.sdkIframeWrapper);if(e){var n=function(){"widget"!==S.mode||S.forceUpdateSdkDialog?e.remove():e.style.display="none",S.forceUpdateSdkDialog=!1};t?(t.style.opacity="0",t.style.transform=ae({animation:"start"}),setTimeout((function(){n()}),1e3*w)):n()}S.widgetButton&&re();s("close",[])}()},Q=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];r.apply(void 0,e)};function $(t){var n,i,r,a,s,l,c=(null!=t?t:{}).config;if(!S.token||!S.domain||!S.deviceId)return null;var d=null!==(n=null==c?void 0:c.tags)&&void 0!==n?n:[],p=null!==(i=null==c?void 0:c.fields)&&void 0!==i?i:{},f=null!==(a=null!==(r=null==c?void 0:c.language)&&void 0!==r?r:S.language)&&void 0!==a?a:null,m=null!==(s=S.signedMetadataToken)&&void 0!==s?s:null,h=null!==(l=S.player)&&void 0!==l?l:null,y={_platform:g,_sdkVersion:u};S.youngPlayer&&(y._youngPlayer=!0),(S.privacyMode||S.youngPlayer)&&(y._privacyMode=!0);var v=o(o([],Array.from(S.tags),!0),d,!0),b=e(e(e({},S.fields),p),y);return{token:S.token,domain:S.domain,deviceId:S.deviceId,tags:v,fields:b,language:f,signedMetadataToken:m,player:h}}function ee(e){var t,n,o,i=$({config:e.config});if(i){var r=null!==(t=document.querySelector(f.sdkDialog))&&void 0!==t?t:document.createElement("div");r.id=f.sdkDialog.replace("#",""),r.style.display="block",r.style.position="fixed",r.style.border="none",r.style.width="0",r.style.height="0",r.style.margin="0",r.style.padding="0",r.style.zIndex="9998",r.style.overflow="hidden",r.style.backgroundColor="transparent";var a=null!==(n=r.querySelector(f.sdkIframeWrapper))&&void 0!==n?n:document.createElement("div");a.id=f.sdkIframeWrapper.replace("#",""),a.style.position="relative",a.style.width="100%",a.style.height="100%",a.style.top="0",a.style.right="0",a.style.bottom="0",a.style.left="0",a.style.opacity="0",a.style.colorScheme="auto",a.style.border="none",a.style.backgroundColor="rgb(".concat(L(S.colors.background),")"),a.style.transform=ae({animation:"start"}),a.style.transition=(S.mode,"opacity ".concat(w,"s ease-in-out, transform ").concat(w,"s ease-in-out")),"widget"===S.mode&&(a.style.overflow="hidden");var d=null!==(o=a.querySelector(f.sdkLoaderIframe))&&void 0!==o?o:document.createElement("iframe");d.id=f.sdkLoaderIframe.replace("#",""),d.style.position="absolute",d.style.border="none",d.style.width="100%",d.style.height="100%",d.style.top="0",d.style.right="0",d.style.bottom="0",d.style.left="0",d.style.colorScheme="auto";var u=a.querySelector(f.sdkIframe),p=null!=u?u:document.createElement("iframe"),m=setInterval((function(){var e;"complete"===(null===(e=p.contentDocument)||void 0===e?void 0:e.readyState)&&(clearInterval(m),y())}),500);p.id=f.sdkIframe.replace("#",""),p.style.position="absolute",p.style.border="none",p.style.top="0",p.style.right="0",p.style.bottom="0",p.style.left="0",p.style.colorScheme="auto",u&&!S.networkErrorTimerId||(p.src=function(e){var t=e.path,n=e.supportViewConfig,o="https://".concat(S.domain,"/sdk"),i=new URLSearchParams;i.set("platform",g),i.set("token",n.token),i.set("deviceId",n.deviceId),i.set("mode",S.mode),i.set("origin",window.location.origin),i.set("userLanguage",S.userLanguage),S.disableInsets&&i.set("disableInsets","true");n.language&&i.set("language",n.language);var r=oe({supportViewConfig:n});return i.set("metadata",JSON.stringify(r)),"".concat(o).concat(t,"?").concat(i.toString())}({path:e.path,supportViewConfig:i}),p.style.width="0",p.style.height="0",r.appendChild(a),a.appendChild(d),a.appendChild(p),document.body.appendChild(r)),O({iframe:d,content:I({template:l})});var h=!1,y=function(){h||(h=!0,S.networkErrorTimerId=setTimeout((function(){O({iframe:d,content:I({template:c})})}),1e4))};p.onload=y,p.onerror=function(){O({iframe:d,content:I({template:c})})},ie(),s("open",[]),setTimeout((function(){a.style.opacity="1",a.style.transform=ae({animation:"end"})}),100)}}function te(e){var t=e.path,n=e.config,o=null!=n?n:null;S.previousPath===t&&C(S.previousConfig,o)||(S.previousPath=t,S.previousConfig=o,ne())}function ne(){var e=document.querySelector(f.sdkDialog);S.sdkIsOpen?S.forceUpdateSdkDialog=!0:null==e||e.remove()}function oe(e){var t=e.supportViewConfig,n={unsigned:{},signed:void 0};return t.player&&(n.unsigned.player=t.player),t.tags&&(n.unsigned.tags=t.tags),t.fields&&(n.unsigned.fields=t.fields),t.signedMetadataToken&&(n.signed=t.signedMetadataToken),n}function ie(){var e=document.querySelector(f.sdkDialog),t=document.querySelector(f.sdkIframeWrapper);if(e&&t)if("widget"===S.mode){var n=D({type:"widget"}),o=M();e.style.width=o.width,e.style.height=o.height,e.style.maxWidth=o.maxWidth,e.style.maxHeight=o.maxHeight,e.style.bottom=n.bottom,e.style.right=n.right,e.style.left=n.left,e.style.top=n.top,N()?(t.style.border="none",t.style.borderRadius="0"):(t.style.border="1px solid rgb(".concat(L(S.colors.border),")"),t.style.borderRadius="10px")}else if(t.style.border="none",t.style.borderRadius="0",S.element){var i=S.element.getBoundingClientRect(),r=i.width,a=i.height,s=i.top,l=i.left,c=i.right,d=i.bottom;e.style.width="".concat(r,"px"),e.style.height="".concat(a,"px"),e.style.maxWidth="none",e.style.maxHeight="none",e.style.top="".concat(s,"px"),e.style.left="".concat(l,"px"),e.style.right="".concat(c,"px"),e.style.bottom="".concat(d,"px")}else{a=S.keyboardHeight>0?"calc(100% - ".concat(S.keyboardHeight,"px + env(safe-area-inset-bottom) - 10px)"):"100%";e.style.width="100%",e.style.height=a,e.style.maxWidth="none",e.style.maxHeight="none",e.style.top="0",e.style.left="0",e.style.right="0",e.style.bottom="0"}}function re(){var e,t=null!==(e=document.querySelector(f.sdkButtonIframe))&&void 0!==e?e:document.createElement("iframe");if(t){var n,o=D({type:"button"});t.id=f.sdkButtonIframe.replace("#",""),t.style.position="fixed",t.style.border="none",t.style.width="".concat(v,"px"),t.style.height="".concat(b,"px"),t.style.maxWidth="95%",t.style.maxHeight="95%",t.style.bottom=o.bottom,t.style.right=o.right,t.style.left=o.left,t.style.top=o.top,t.style.margin="0",t.style.padding="0",t.style.zIndex="9997",t.style.backgroundColor="transparent",t.style.opacity="0",t.style.transform="scale(0.8)",t.style.transition="opacity ".concat(x,"s ease-in-out, transform ").concat(x,"s ease-in-out"),setTimeout((function(){t.style.opacity="1",t.style.transform="scale(1)"}),100),document.body.appendChild(t),O({iframe:t,content:(n={unreadMessageCount:S.unreadMessageCount},I({template:d}).replace(/UNREAD_MESSAGE_COUNT_PLACEHOLDER/g,"".concat(n.unreadMessageCount)).replace(/CSS_WIDGET_BUTTON_BACKGROUND_PLACEHOLDER/g,L(S.colors.widgetButtonBackground)).replace(/CSS_WIDGET_BUTTON_TEXT_PLACEHOLDER/g,L(S.colors.widgetButtonText)).replace(/CSS_WIDGET_BUTTON_ACTION_PENDING_PLACEHOLDER/g,L(S.colors.widgetButtonActionPending)).replace(/WIDGET_BUTTON_TEXT_PLACEHOLDER/g,ge()))})}}function ae(e){return"start"===e.animation?"game"===S.mode?"translateY(20%)":"scale(0.8)":"game"===S.mode?"translateY(0)":"scale(1)"}function se(e){return t(this,void 0,void 0,(function(){return n(this,(function(t){switch(t.label){case 0:return t.trys.push([0,2,,7]),[4,e.json()];case 1:return[2,t.sent()];case 2:t.sent(),t.label=3;case 3:return t.trys.push([3,5,,6]),[4,e.text()];case 4:return[2,t.sent()];case 5:return t.sent(),[2,void 0];case 6:return[3,7];case 7:return[2]}}))}))}function le(){return t(this,void 0,void 0,(function(){var e,t,o,i,r,a;return n(this,(function(n){switch(n.label){case 0:if(ue(),S.retryRecordRetentionTimerId&&(clearTimeout(S.retryRecordRetentionTimerId),S.retryRecordRetentionTimerId=null),S.retentionRemainingSeconds=null,S.isRetentionRecordedForSession=!0,!(e=$()))return[2];t="https://".concat(S.domain,"/api/sdk/retention"),o=oe({supportViewConfig:e}),i={token:S.token,deviceId:S.deviceId,language:S.language,metadata:o},n.label=1;case 1:return n.trys.push([1,5,,6]),[4,fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)})];case 2:return(r=n.sent()).ok?[3,4]:[4,se(r)];case 3:throw n.sent();case 4:return[3,6];case 5:return a=n.sent(),console.error("Error tracking retention:",a),S.retryRecordRetentionTimerId=setTimeout(le,6e4),[3,6];case 6:return[2]}}))}))}function ce(){var e=new Date;if(S.sessionStatus="active",S.sessionResumeOrStartTime=e,S.sessionStartTime){var t=S.sessionStartTime.valueOf()/1e3+S.resetSessionAfterSecs;Date.now()/1e3>t&&de()}else de();null!==S.retentionRemainingSeconds&&(S.recordRetentionTimerId=setTimeout(le,1e3*S.retentionRemainingSeconds))}function de(){S.sessionStartTime=new Date,S.retentionRemainingSeconds=S.recordRetentionAfterSecs,S.isRetentionRecordedForSession=!1,ue()}function ue(){S.recordRetentionTimerId&&(clearTimeout(S.recordRetentionTimerId),S.recordRetentionTimerId=null)}function pe(){S.isRetentionRecordedForSession&&le()}function ge(){var e,t,n;return null!==(n=null===(e=S.locs.widgetButtonText)||void 0===e?void 0:e[null!==(t=S.language)&&void 0!==t?t:"en"])&&void 0!==n?n:"Support"}function fe(){var e=S.isInForeground,t="visible"===document.visibilityState&&document.hasFocus();S.isInForeground=t,e!==t&&K(),t&&"paused"===S.sessionStatus?ce():t||"active"!==S.sessionStatus||function(){if(S.sessionResumeOrStartTime&&S.retentionRemainingSeconds){var e=Math.floor((Date.now()-S.sessionResumeOrStartTime.valueOf())/1e3);S.retentionRemainingSeconds-=e}S.sessionStatus="paused",ue()}()}function me(){var e,t=S.isLoggedIn,n=Boolean(S.signedMetadataToken||(null===(e=S.player)||void 0===e?void 0:e.id));S.isLoggedIn=n,n&&!t?W():!n&&t&&G()}document.addEventListener("visibilitychange",fe),window.addEventListener("focus",fe),window.addEventListener("blur",fe),window.addEventListener("resize",ie),window.addEventListener("resize",F),window.addEventListener("message",(function(e){if("theymes.ready"===e.data.action){var t=document.querySelector(f.sdkLoaderIframe),n=document.querySelector(f.sdkIframe);S.networkErrorTimerId&&(clearTimeout(S.networkErrorTimerId),S.networkErrorTimerId=null),n&&(n.style.width="100%",n.style.height="100%"),t&&t.remove()}else if("theymes.close"===e.data.action)Z();else if("theymes.closeNotification"===e.data.action)j({notification:S.visibleNotification});else if("theymes.handleNotificationAction"===e.data.action)r={notification:S.visibleNotification},(null==(a=r.notification)?void 0:a.action)&&"OPEN_PAGE"===a.action.type&&(ee({path:a.action.path}),j({notification:a}));else if("theymes.sdkButtonClicked"===e.data.action)(i=document.querySelector(f.sdkButtonIframe))&&(i.style.opacity="0",i.style.transform="scale(0.8)",setTimeout((function(){i.remove()}),1e3*x)),"support"===S.widgetButtonAction?X():"assistant"===S.widgetButtonAction&&V();else if("theymes.openExternalPage"===e.data.action){var o=e.data.url.startsWith(window.location.origin);o&&function(e){var t=e.key,n=e.value,o=e.ttlMs,i=e.storage,r=void 0===i?sessionStorage:i,a={value:n,expiry:Date.now()+o};r.setItem(t,JSON.stringify(a))}({key:T,value:e.data.path,ttlMs:1e4}),window.open(e.data.url,o?"_self":"_blank")}var i,r,a}),!1),Q("open",(function(){S.sdkIsOpen=!0,Y()})),Q("close",(function(){S.sdkIsOpen=!1,z()})),exports.addEventListener=Q,exports.addField=function(e,t){S.fields[e]=t,ne()},exports.addFields=function(t){S.fields=e(e({},S.fields),t),ne()},exports.addTag=function(e){S.tags.add(e),ne()},exports.addTags=function(e){e.forEach((function(e){return S.tags.add(e)})),ne()},exports.close=Z,exports.disableLogging=function(){S.loggingEnabled=!1},exports.disableNotifications=function(){S.notificationsPaused=!0},exports.enableLogging=function(){S.loggingEnabled=!0},exports.enableNotifications=function(){S.notificationsPaused=!1,J()},exports.getFields=function(){return S.fields},exports.getLanguage=function(){return S.language},exports.getPlayer=function(){return S.player},exports.getSdkVersion=function(){return u},exports.getSignedMetadataToken=function(){return S.signedMetadataToken},exports.getTags=function(){return Array.from(S.tags)},exports.getUnansweredMessageCount=function(){return S.unansweredMessageCount},exports.getUnreadMessageCount=function(){return S.unreadMessageCount},exports.initialize=function(o,i,r){return t(void 0,void 0,void 0,(function(){var t,a,s,l,c,d,u,f,m,h,y,v,b,w;return n(this,(function(n){switch(n.label){case 0:if(!o||!i||!r.mode)throw new Error("Token, domain, and mode are required");S.token=o,S.domain=i,S.mode=r.mode,S.element="element"in r&&void 0!==r.element?r.element:S.element,S.language=null!==(u=r.language)&&void 0!==u?u:S.language,S.nonce=null!==(f=r.nonce)&&void 0!==f?f:S.nonce,S.deviceId=function(){var e=localStorage.getItem("deviceId");if(e)return e;var t=(n=Date.now(),"undefined"!=typeof performance&&"function"==typeof performance.now&&(n+=performance.now()),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=(n+16*Math.random())%16|0;return n=Math.floor(n/16),("x"===e?t:3&t|8).toString(16)})));return localStorage.setItem("deviceId",t),t;var n}(),S.widgetButton="button"in r&&void 0!==r.button&&null!==(m=r.button)&&void 0!==m?m:S.widgetButton,S.widgetButtonAction="buttonAction"in r&&void 0!==r.buttonAction&&null!==(h=r.buttonAction)&&void 0!==h?h:S.widgetButtonAction,S.position="position"in r&&void 0!==r.position&&null!==(y=r.position)&&void 0!==y?y:S.position,S.x="x"in r&&void 0!==r.x?r.x:S.x,S.y="y"in r&&void 0!==r.y?r.y:S.y,S.disableInsets="game"===S.mode&&null!==S.element,q.eventPoller||(q.eventPoller=new U),t="https://".concat(i,"/api/sdk/settings"),a=new URLSearchParams({token:S.token,platform:g,mode:S.mode}).toString(),n.label=1;case 1:return n.trys.push([1,6,,7]),[4,fetch("".concat(t,"?").concat(a),{method:"GET"})];case 2:return(s=n.sent()).ok?[3,4]:[4,se(s)];case 3:throw n.sent();case 4:return[4,s.json()];case 5:return l=n.sent(),(null===(v=null==l?void 0:l.branding)||void 0===v?void 0:v.colors)&&(x=l.branding.colors,S.colors=e(e({},S.colors),x),localStorage.setItem(p,JSON.stringify(S.colors))),(null===(b=null==l?void 0:l.branding)||void 0===b?void 0:b.locs)&&(S.locs=l.branding.locs),(null===(w=null==l?void 0:l.branding)||void 0===w?void 0:w.fonts)&&(S.fonts=l.branding.fonts),"number"==typeof(null==l?void 0:l.recordRetentionAfterSecs)&&(S.recordRetentionAfterSecs=l.recordRetentionAfterSecs),"number"==typeof(null==l?void 0:l.resetSessionAfterSecs)&&(S.resetSessionAfterSecs=l.resetSessionAfterSecs),ce(),ne(),c=function(e){var t=e.key,n=e.storage,o=void 0===n?sessionStorage:n,i=e.removeItem,r=void 0!==i&&i,a=o.getItem(t);if(!a)return null;var s=JSON.parse(a);return Date.now()>s.expiry?(sessionStorage.removeItem(t),null):(r&&o.removeItem(t),s.value)}({key:T,removeItem:!0}),c?ee({path:c}):S.widgetButton&&re(),[3,7];case 6:return d=n.sent(),console.error("Error initializing SDK:",d),[3,7];case 7:return[2]}var x}))}))},exports.iosSetKeyboardHeight=function(e){S.keyboardHeight=e,ie()},exports.isPrivacyMode=function(){return S.privacyMode},exports.isSupported=function(){return!0},exports.isYoungPlayer=function(){return S.youngPlayer},exports.openAssistant=V,exports.openResource=function(e,t){var n="/resources/".concat(e);te({path:n,config:t}),ee({path:n,config:t})},exports.openSupport=X,exports.recordRetention=function(){S.isRetentionRecordedForSession||le()},exports.removeAllFields=function(){S.fields={},ne()},exports.removeAllTags=function(){S.tags.clear(),ne()},exports.removeEventListener=function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];a.apply(void 0,e)},exports.removeField=function(e){delete S.fields[e],ne()},exports.removeFields=function(e){e.forEach((function(e){return delete S.fields[e]})),ne()},exports.removeTag=function(e){S.tags.delete(e),ne()},exports.removeTags=function(e){e.forEach((function(e){return S.tags.delete(e)})),ne()},exports.requestNotificationPermission=function(){},exports.reset=function(){S.language=null,S.tags=new Set,S.fields={},S.signedMetadataToken=null,S.player=null,me(),ne(),B({action:"widgetButtonTextUpdate",text:ge()})},exports.setFields=function(e){S.fields=e,ne()},exports.setLanguage=function(e){var t=S.language!==e;S.language=e,t&&(ne(),B({action:"widgetButtonTextUpdate",text:ge()}))},exports.setPlayer=function(e){var t,n=(null===(t=S.player)||void 0===t?void 0:t.id)!==(null==e?void 0:e.id);S.player=e,me(),n&&(ne(),pe())},exports.setPrivacyMode=function(e){S.privacyMode=e,ne()},exports.setSignedMetadataToken=function(e){var t=S.signedMetadataToken!==e;S.signedMetadataToken=e,me(),t&&(ne(),pe())},exports.setTags=function(e){S.tags=new Set(e),ne()},exports.setYoungPlayer=function(e){S.youngPlayer=e,ne()};
|
package/dist/sdk.d.ts
CHANGED
|
@@ -1,23 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type
|
|
3
|
-
id?: string;
|
|
4
|
-
name?: string;
|
|
5
|
-
email?: string;
|
|
6
|
-
tier?: 1 | 2 | 3;
|
|
7
|
-
};
|
|
8
|
-
type Config = {
|
|
9
|
-
tags?: readonly string[];
|
|
10
|
-
fields?: Record<string, unknown>;
|
|
11
|
-
language?: string;
|
|
12
|
-
};
|
|
13
|
-
type Position = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
14
|
-
type InitializeGameOptions = {
|
|
1
|
+
import { AddEventListener, Config, IosSetKeyboardHeight, Player, Position, RemoveEventListener } from './types.js';
|
|
2
|
+
export type InitializeGameOptions = {
|
|
15
3
|
mode: 'game';
|
|
16
4
|
element?: Element;
|
|
17
5
|
language?: string | null;
|
|
18
6
|
nonce?: string;
|
|
19
7
|
};
|
|
20
|
-
type InitializeWidgetOptions = {
|
|
8
|
+
export type InitializeWidgetOptions = {
|
|
21
9
|
mode: 'widget';
|
|
22
10
|
position?: Position;
|
|
23
11
|
x?: number;
|
|
@@ -27,7 +15,7 @@ type InitializeWidgetOptions = {
|
|
|
27
15
|
language?: string | null;
|
|
28
16
|
nonce?: string;
|
|
29
17
|
};
|
|
30
|
-
type InitializeOptions = InitializeGameOptions | InitializeWidgetOptions;
|
|
18
|
+
export type InitializeOptions = InitializeGameOptions | InitializeWidgetOptions;
|
|
31
19
|
export type Initialize = (token: string, domain: string, options: InitializeOptions) => Promise<void>;
|
|
32
20
|
export type OpenSupport = (config?: Config) => void;
|
|
33
21
|
export type OpenResource = (resource: string, config?: Config) => void;
|
|
@@ -68,64 +56,6 @@ export type GetUnansweredMessageCount = () => number;
|
|
|
68
56
|
export type GetSdkVersion = () => string;
|
|
69
57
|
export type Reset = () => void;
|
|
70
58
|
export type RecordRetention = () => void;
|
|
71
|
-
export type IosSetKeyboardHeight = (keyboardHeight: number) => void;
|
|
72
|
-
export interface AddEventListener {
|
|
73
|
-
(type: 'unreadMessageCountUpdate', listener: UnreadMessageCountEventListener): void;
|
|
74
|
-
(type: 'unansweredMessageCountUpdate', listener: UnansweredMessageCountEventListener): void;
|
|
75
|
-
(type: 'open', listener: OpenEventListener): void;
|
|
76
|
-
(type: 'close', listener: CloseEventListener): void;
|
|
77
|
-
}
|
|
78
|
-
export interface RemoveEventListener {
|
|
79
|
-
(type: 'unreadMessageCountUpdate', listener: UnreadMessageCountEventListener): void;
|
|
80
|
-
(type: 'unansweredMessageCountUpdate', listener: UnansweredMessageCountEventListener): void;
|
|
81
|
-
(type: 'open', listener: OpenEventListener): void;
|
|
82
|
-
(type: 'close', listener: CloseEventListener): void;
|
|
83
|
-
}
|
|
84
|
-
export type Theymes = {
|
|
85
|
-
initialize: Initialize;
|
|
86
|
-
openSupport: OpenSupport;
|
|
87
|
-
openAssistant: OpenAssistant;
|
|
88
|
-
openResource: OpenResource;
|
|
89
|
-
close: Close;
|
|
90
|
-
getLanguage: GetLanguage;
|
|
91
|
-
setLanguage: SetLanguage;
|
|
92
|
-
getSignedMetadataToken: GetSignedMetadataToken;
|
|
93
|
-
setSignedMetadataToken: SetSignedMetadataToken;
|
|
94
|
-
getPlayer: GetPlayer;
|
|
95
|
-
setPlayer: SetPlayer;
|
|
96
|
-
getTags: GetTags;
|
|
97
|
-
setTags: SetTags;
|
|
98
|
-
addTag: AddTag;
|
|
99
|
-
addTags: AddTags;
|
|
100
|
-
removeTag: RemoveTag;
|
|
101
|
-
removeTags: RemoveTags;
|
|
102
|
-
removeAllTags: RemoveAllTags;
|
|
103
|
-
getFields: GetFields;
|
|
104
|
-
setFields: SetFields;
|
|
105
|
-
addField: AddField;
|
|
106
|
-
addFields: AddFields;
|
|
107
|
-
removeField: RemoveField;
|
|
108
|
-
removeFields: RemoveFields;
|
|
109
|
-
removeAllFields: RemoveAllFields;
|
|
110
|
-
enableLogging: EnableLogging;
|
|
111
|
-
disableLogging: DisableLogging;
|
|
112
|
-
isYoungPlayer: IsYoungPlayer;
|
|
113
|
-
setYoungPlayer: SetYoungPlayer;
|
|
114
|
-
isPrivacyMode: IsPrivacyMode;
|
|
115
|
-
setPrivacyMode: SetPrivacyMode;
|
|
116
|
-
isSupported: IsSupported;
|
|
117
|
-
requestNotificationPermission: RequestNotificationPermission;
|
|
118
|
-
enableNotifications: EnableNotifications;
|
|
119
|
-
disableNotifications: DisableNotifications;
|
|
120
|
-
getUnreadMessageCount: GetUnreadMessageCount;
|
|
121
|
-
getUnansweredMessageCount: GetUnansweredMessageCount;
|
|
122
|
-
getSdkVersion: GetSdkVersion;
|
|
123
|
-
reset: Reset;
|
|
124
|
-
recordRetention: RecordRetention;
|
|
125
|
-
addEventListener: AddEventListener;
|
|
126
|
-
removeEventListener: RemoveEventListener;
|
|
127
|
-
iosSetKeyboardHeight: IosSetKeyboardHeight;
|
|
128
|
-
};
|
|
129
59
|
export declare const initialize: Initialize;
|
|
130
60
|
export declare const openSupport: OpenSupport;
|
|
131
61
|
export declare const openAssistant: OpenAssistant;
|
|
@@ -169,4 +99,3 @@ export declare const recordRetention: RecordRetention;
|
|
|
169
99
|
export declare const addEventListener: AddEventListener;
|
|
170
100
|
export declare const removeEventListener: RemoveEventListener;
|
|
171
101
|
export declare const iosSetKeyboardHeight: IosSetKeyboardHeight;
|
|
172
|
-
export {};
|