@moveo-ai/web-client 0.113.0-true.4 → 0.113.0-true.6

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.
@@ -6,7 +6,7 @@
6
6
 
7
7
  /*!
8
8
  *
9
- * @moveo-ai/web-client v0.113.0-true.4
9
+ * @moveo-ai/web-client v0.113.0-true.6
10
10
  * Copyright (c) Moveo.ai (TM)
11
11
  *
12
12
  */
package/dist/index.html CHANGED
@@ -11,7 +11,7 @@
11
11
  const widgetId = urlParams.get('widgetId');
12
12
 
13
13
  const script = document.createElement('script');
14
- script.src = 'iframe.min.js?7001b8a68f772511dbd0';
14
+ script.src = 'iframe.min.js?74af441fd837095ec86e';
15
15
 
16
16
  script.onload = function () {
17
17
  if (widgetId) {
@@ -4,11 +4,11 @@
4
4
 
5
5
  body::before {
6
6
  background-image: url('/public/background.svg');
7
- }</style><script src="../audio-client.min.js?7001b8a68f772511dbd0"></script></head><body><div class="flex flex-row flex-wrap justify-between p-[10%] pb-0 mobile:flex-col mobile:items-center mobile:p-0 mobile:pt-[75px]"><div class="w-[510px] mb-9 mobile:flex mobile:flex-col mobile:items-center mobile:w-auto mobile:min-w-0"><p class="mt-0 mb-6 text-[42px] leading-[51px] font-bold mobile:text-center mobile:text-[28px] mobile:leading-[34px]"><span class="colored text-preview-muted">Preview</span> and <span class="colored text-preview-muted">Test</span><br/>your Webchat</p><p class="mb-9 text-2xl leading-[30px] font-normal mobile:text-center mobile:text-base mobile:leading-5 mobile:w-[280px]">Moveo.ai can help you build engaging conversational applications powered by Artificial Intelligence.</p><div class="flex flex-row justify-start"><button class="action_button hidden cursor-pointer" id="open-chat-button">Open Webchat</button> <button class="action_button hidden mobile:hidden cursor-pointer" id="close-chat-button">Close Webchat</button> <button class="action_button hidden cursor-pointer" id="render-chat-button">Render Webchat</button></div></div><div class="hidden box-border flex-initial w-[512px] h-[562px] min-w-[300px] mb-16 rounded-lg border-2 border-brand-background bg-white shadow-[2px_3px_6px_rgb(104_104_104/10%)] mobile:mx-[10%] mobile:w-4/5" id="embed-chat-container"><p class="mt-[10%] mx-7 mb-0 text-base leading-6 text-center" id="embed-text">The webchat will render in the html element of your choice. Render the webchat here, in order to preview other settings.</p><div class="hidden w-full h-full" id="embed-chat"></div></div></div><script>const queryString = window.location.search;
7
+ }</style><script src="../audio-client.min.js?74af441fd837095ec86e"></script></head><body><div class="flex flex-row flex-wrap justify-between p-[10%] pb-0 mobile:flex-col mobile:items-center mobile:p-0 mobile:pt-[75px]"><div class="w-[510px] mb-9 mobile:flex mobile:flex-col mobile:items-center mobile:w-auto mobile:min-w-0"><p class="mt-0 mb-6 text-[42px] leading-[51px] font-bold mobile:text-center mobile:text-[28px] mobile:leading-[34px]"><span class="colored text-preview-muted">Preview</span> and <span class="colored text-preview-muted">Test</span><br/>your Webchat</p><p class="mb-9 text-2xl leading-[30px] font-normal mobile:text-center mobile:text-base mobile:leading-5 mobile:w-[280px]">Moveo.ai can help you build engaging conversational applications powered by Artificial Intelligence.</p><div class="flex flex-row justify-start"><button class="action_button hidden cursor-pointer" id="open-chat-button">Open Webchat</button> <button class="action_button hidden mobile:hidden cursor-pointer" id="close-chat-button">Close Webchat</button> <button class="action_button hidden cursor-pointer" id="render-chat-button">Render Webchat</button></div></div><div class="hidden box-border flex-initial w-[512px] h-[562px] min-w-[300px] mb-16 rounded-lg border-2 border-brand-background bg-white shadow-[2px_3px_6px_rgb(104_104_104/10%)] mobile:mx-[10%] mobile:w-4/5" id="embed-chat-container"><p class="mt-[10%] mx-7 mb-0 text-base leading-6 text-center" id="embed-text">The webchat will render in the html element of your choice. Render the webchat here, in order to preview other settings.</p><div class="hidden w-full h-full" id="embed-chat"></div></div></div><script>const queryString = window.location.search;
8
8
  const urlParams = new URLSearchParams(queryString);
9
9
 
10
10
  // Find web-client.min.js directly
11
- const webpackFiles = `../iframe.min.js?7001b8a68f772511dbd0,../web-client.min.js?7001b8a68f772511dbd0,../preview.css.min.js?7001b8a68f772511dbd0,../audio-client.min.js?7001b8a68f772511dbd0,../webrtc-client.min.js?7001b8a68f772511dbd0,../telnyx-client.min.js?7001b8a68f772511dbd0`.split(',');
11
+ const webpackFiles = `../iframe.min.js?74af441fd837095ec86e,../web-client.min.js?74af441fd837095ec86e,../preview.css.min.js?74af441fd837095ec86e,../audio-client.min.js?74af441fd837095ec86e,../webrtc-client.min.js?74af441fd837095ec86e,../telnyx-client.min.js?74af441fd837095ec86e`.split(',');
12
12
  const webClientFile = webpackFiles.find(file => file.includes('web-client.min.js'));
13
13
  const previewCssFile = webpackFiles.find(file => file.includes('preview.css.min.js'));
14
14
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @moveo-ai/web-client v0.113.0-true.4
3
+ * @moveo-ai/web-client v0.113.0-true.6
4
4
  * Copyright (c) Moveo.ai (TM)
5
5
  *
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @moveo-ai/web-client v0.113.0-true.4
3
+ * @moveo-ai/web-client v0.113.0-true.6
4
4
  * Copyright (c) Moveo.ai (TM)
5
5
  *
6
6
  */
@@ -1,2 +1,2 @@
1
1
  /*! For license information please see web-client.min.js.LICENSE.txt */
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("MoveoAI",[],t):"object"==typeof exports?exports.MoveoAI=t():e.MoveoAI=t()}(this,()=>(()=>{var e={1178(e,t,n){"use strict";var o=n(1601),i=n.n(o),s=n(6314),r=n.n(s)()(i());r.push([e.id,"/*\n * Applied to the iframe on the customer's own page, so the overrides below are\n * deliberate: the host stylesheet must not win.\n */\n.web-client-container {\n position: fixed;\n right: 0;\n bottom: 0;\n z-index: var(--moveo-z-index, 10022);\n max-height: 99%;\n cursor: pointer;\n}\n\n.web-client-container.embed {\n position: static;\n width: 100% !important;\n height: 100% !important;\n max-height: 100%;\n}\n\n/*\n * Full is the frame's viewport — the visitor's window only on a top-level\n * page. On a nested install the loader pins the panel to the visible band\n * through these two variables; unset, they resolve to the plain full frame.\n */\n.web-client-container.full {\n inset: var(--moveo-full-top, 0) 0 auto 0 !important;\n width: 100% !important;\n height: var(--moveo-full-height, 100%) !important;\n max-height: initial;\n}\n",""]);const a=r;n.d(t,["A",0,a])},6314(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n}).join("")},t.i=function(e,n,o,i,s){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(o)for(var a=0;a<this.length;a++){var c=this[a][0];null!=c&&(r[c]=!0)}for(var l=0;l<e.length;l++){var d=[].concat(e[l]);o&&r[d[0]]||(void 0!==s&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=s),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),i&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=i):d[4]="".concat(i)),t.push(d))}},t}},1601(e){"use strict";e.exports=function(e){return e[1]}},7833(e,t,n){t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let o=0,i=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(o++,"%c"===e&&(i=o))}),t.splice(i,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(736)(t);const{formatters:o}=e.exports;o.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},736(e,t,n){e.exports=function(e){function t(e){let n,i,s,r=null;function a(...e){if(!a.enabled)return;const o=a,i=Number(new Date),s=i-(n||i);o.diff=s,o.prev=n,o.curr=i,n=i,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let r=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(n,i)=>{if("%%"===n)return"%";r++;const s=t.formatters[i];if("function"==typeof s){const t=e[r];n=s.call(o,t),e.splice(r,1),r--}return n}),t.formatArgs.call(o,e),(o.log||t.log).apply(o,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=o,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==r?r:(i!==t.namespaces&&(i=t.namespaces,s=t.enabled(e)),s),set:e=>{r=e}}),"function"==typeof t.init&&t.init(a),a}function o(e,n){const o=t(this.namespace+(void 0===n?":":n)+e);return o.log=this.log,o}function i(e,t){let n=0,o=0,i=-1,s=0;for(;n<e.length;)if(o<t.length&&(t[o]===e[n]||"*"===t[o]))"*"===t[o]?(i=o,s=n,o++):(n++,o++);else{if(-1===i)return!1;o=i+1,s++,n=s}for(;o<t.length&&"*"===t[o];)o++;return o===t.length}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names,...t.skips.map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const e of n)"-"===e[0]?t.skips.push(e.slice(1)):t.names.push(e)},t.enabled=function(e){for(const n of t.skips)if(i(e,n))return!1;for(const n of t.names)if(i(e,n))return!0;return!1},t.humanize=n(6585),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(n=>{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},6585(e){var t=1e3,n=60*t,o=60*n,i=24*o,s=7*i;function r(e,t,n,o){var i=t>=1.5*n;return Math.round(e/n)+" "+o+(i?"s":"")}e.exports=function(e,a){a=a||{};var c,l,d=typeof e;if("string"===d&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var r=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(r){var a=parseFloat(r[1]);switch((r[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return a*s;case"days":case"day":case"d":return a*i;case"hours":case"hour":case"hrs":case"hr":case"h":return a*o;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(e);if("number"===d&&isFinite(e))return a.long?(c=e,(l=Math.abs(c))>=i?r(c,l,i,"day"):l>=o?r(c,l,o,"hour"):l>=n?r(c,l,n,"minute"):l>=t?r(c,l,t,"second"):c+" ms"):function(e){var s=Math.abs(e);return s>=i?Math.round(e/i)+"d":s>=o?Math.round(e/o)+"h":s>=n?Math.round(e/n)+"m":s>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},4130(e,t,n){"use strict";n.r(t),n.d(t,{init:()=>Oe});var o=n(7833),i=n.n(o);const s=e=>{if("object"==typeof e&&null!==e){if("function"==typeof Object.getPrototypeOf){const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}return"[object Object]"===Object.prototype.toString.call(e)}return!1},r=new Set(["__proto__","constructor","prototype","toString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString"]),a=(...e)=>e.reduce((e,t)=>{if(void 0===t)return e;if(Array.isArray(t))throw new TypeError("Arguments provided to ts-deepmerge must be objects, not arrays.");return Object.keys(t).forEach(n=>{r.has(n)||(Array.isArray(e[n])&&Array.isArray(t[n])?e[n]=a.options.mergeArrays?a.options.uniqueArrayItems?Array.from(new Set(e[n].concat(t[n]))):[...e[n],...t[n]]:t[n]:s(e[n])&&s(t[n])?e[n]=a(e[n],t[n]):!s(e[n])&&s(t[n])?e[n]=a(t[n],void 0):e[n]=void 0===t[n]?a.options.allowUndefinedOverrides?t[n]:e[n]:t[n])}),e},{}),c={allowUndefinedOverrides:!0,mergeArrays:!0,uniqueArrayItems:!0};a.options=c,a.withOptions=(e,...t)=>{a.options=Object.assign(Object.assign({},c),e);const n=a(...t);return a.options=c,n};const l="https://channels-ws.moveo.ai",d=(Object.freeze({"bab4875e-0411-4ae1-9e98-19ea236d369b":"nbg","0ffdaef8-4ce9-4188-9fdd-4644e5062cf2":"alpha","0e614713-2e6b-4af2-8e9e-21c2a4617981":"fiserv"}),"https://web.moveo.ai"),u="https://web.dev.moveo.ai",h=()=>window.innerWidth<650||window.innerHeight<550&&window.innerWidth<1e3||(()=>{const{screen:e,matchMedia:t}=window;return!(!e||"function"!=typeof t)&&Math.min(e.width,e.height)<650&&t("(pointer: coarse)").matches})(),m=(e,t)=>{const n=t?.data?.type;if("string"!=typeof n||!n.startsWith(e))return null;const o=n.replace(e,""),i=t.data?.data;return{type:o,data:i}};var p,f=/bot|crawl|http|lighthouse|scan|search|spider/i;var v=function(e){return"string"==typeof(t=e)&&""!==t&&function(){if(p instanceof RegExp)return p;try{p=new RegExp(" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x7|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+\\.ai|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|fetcher|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|upday/|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/","i")}catch(e){p=f}return p}().test(e);var t};const g=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},y="object"==typeof globalThis&&globalThis&&globalThis.Object===Object&&globalThis;var b="object"==typeof self&&self&&self.Object===Object&&self;const w=y||b||Function("return this")(),C=function(){return w.Date.now()};var x=/\s/;var E=/^\s+/;const I=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&x.test(e.charAt(t)););return t}(e)+1).replace(E,""):e},M=w.Symbol;var F=Object.prototype,S=F.hasOwnProperty,A=F.toString,T=M?M.toStringTag:void 0;var k=Object.prototype.toString;var L=M?M.toStringTag:void 0;const O=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":L&&L in Object(e)?function(e){var t=S.call(e,T),n=e[T];try{e[T]=void 0;var o=!0}catch(e){}var i=A.call(e);return o&&(t?e[T]=n:delete e[T]),i}(e):function(e){return k.call(e)}(e)};var j=/^[-+]0x[0-9a-f]+$/i,P=/^0b[01]+$/i,H=/^0o[0-7]+$/i,z=parseInt;const $=function(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return null!=e&&"object"==typeof e}(e)&&"[object Symbol]"==O(e)}(e))return NaN;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=I(e);var n=P.test(e);return n||H.test(e)?z(e.slice(2),n?2:8):j.test(e)?NaN:+e};var _=Math.max,R=Math.min;const B=function(e,t,n){var o,i,s,r,a,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function m(t){var n=o,s=i;return o=i=void 0,l=t,r=e.apply(s,n)}function p(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-l>=s}function f(){var e=C();if(p(e))return v(e);a=setTimeout(f,function(e){var n=t-(e-c);return u?R(n,s-(e-l)):n}(e))}function v(e){return a=void 0,h&&o?m(e):(o=i=void 0,r)}function y(){var e=C(),n=p(e);if(o=arguments,i=this,c=e,n){if(void 0===a)return function(e){return l=e,a=setTimeout(f,t),d?m(e):r}(c);if(u)return clearTimeout(a),a=setTimeout(f,t),m(c)}return void 0===a&&(a=setTimeout(f,t)),r}return t=$(t)||0,g(n)&&(d=!!n.leading,s=(u="maxWait"in n)?_($(n.maxWait)||0,t):s,h="trailing"in n?!!n.trailing:h),y.cancel=function(){void 0!==a&&clearTimeout(a),l=0,o=c=i=a=void 0},y.flush=function(){return void 0===a?r:v(C())},y},U=i()("moveo:safe-read"),W=(e,t)=>{try{return t()}catch(t){return void U("%s unreadable: %o",e,t)}},N=(e,t)=>{W(e,()=>{t()})},q=e=>{if("string"==typeof e)return e.trim()||void 0},Q=e=>{for(const t of Object.keys(e))void 0===e[t]&&delete e[t];return e},D=()=>window,V=()=>W("QuantumMetric scripts",()=>Array.from(document.querySelectorAll('script[src*="quantummetric"]')))??[],J=()=>V().length>0,Y=()=>W("QuantumMetricAPI.isOn",()=>{const e=D().QuantumMetricAPI;return"function"==typeof e?.isOn&&!0===e.isOn()})??!1,G=/\/qscripts\/quantum-([a-z0-9-]+)\.js/,Z=()=>{if(Y())return W("QuantumMetric script src",()=>{for(const e of V()){const t=e.getAttribute("src")?.match(G)?.[1];if(t)return t}})},K=[{name:"quantum-metric",isReady:()=>Y(),isExpected:()=>J(),readIdentity:()=>({qm_subscription:Z()??null,qm_user_id:Y()?W("QuantumMetricAPI.getUserID",()=>q(D().QuantumMetricAPI?.getUserID?.())):J()?null:void 0}),whenReady:e=>{let t,n=e;const o=()=>N("quantum-metric ready callback",()=>{n?.()}),i=()=>{n&&(t=o,N("QuantumMetricAPI.addEventListener('start')",()=>{D().QuantumMetricAPI?.addEventListener?.("start",o)}),N("QuantumMetricAPI.addEventListener('stop')",()=>{D().QuantumMetricAPI?.addEventListener?.("stop",o)}),o())};return W("QuantumMetricAPI",()=>D().QuantumMetricAPI)?i():N("QuantumMetricOnload",()=>{const e=D().QuantumMetricOnload;if(Array.isArray(e))e.push(i);else{if("function"==typeof e){const t=e;return void(D().QuantumMetricOnload=function(...e){return N("QuantumMetricOnload (ours)",i),t.apply(this,e)})}D().QuantumMetricOnload=[i]}}),()=>{n=null,t&&(N("QuantumMetricAPI.removeEventListener('start')",()=>{D().QuantumMetricAPI?.removeEventListener?.("start",t)}),N("QuantumMetricAPI.removeEventListener('stop')",()=>{D().QuantumMetricAPI?.removeEventListener?.("stop",t)}),t=void 0)}}}],X=(e,t)=>W(`${e.name}.${t}`,()=>e[t]?.())??!1,ee=e=>W(`input[name="${e}"]`,()=>{const t=document.querySelectorAll(`input[name="${CSS.escape(e)}"]`);for(const e of t){const t=q(e.value);if(t)return t}}),te="moveo:activity:locationchange",ne=Symbol.for("moveo.activity.history"),oe=[te,"popstate","hashchange"],ie=[0,400];let se=!1;const re=()=>{se||(se=!0,N("history patch",()=>{const e=window.history;e[ne]||(["pushState","replaceState"].forEach(t=>{const n=e[t];e[t]=function(...e){const t=n.apply(this,e);return N("location event",()=>{window.dispatchEvent(new Event(te))}),t}}),e[ne]=!0)}))},ae=e=>{re();const t=new Set,n=()=>{t.forEach(e=>window.clearTimeout(e)),t.clear(),ie.forEach(n=>{const o=window.setTimeout(()=>{t.delete(o),e()},n);t.add(o)})};return oe.forEach(e=>window.addEventListener(e,n)),()=>{oe.forEach(e=>window.removeEventListener(e,n)),t.forEach(e=>window.clearTimeout(e)),t.clear()}},ce=i()("moveo:visible-band");var le,de,ue,he,me;!function(e){e.Open="open",e.Resolved="closed",e.Expired="expired",e.Spam="spam",e.Trash="trash"}(le||(le={})),function(e){e.AnalyticsEvent="moveo-analytics-event",e.IframeLoaded="moveo-iframe-loaded",e.IframeError="moveo-iframe-error",e.WidgetLoaded="moveo-widget-loaded",e.WidgetError="moveo-widget-error",e.Opened="moveo-widget-opened",e.Closed="moveo-widget-closed",e.Resize="moveo-widget-resize",e.LocaleChanged="moveo-widget-locale-changed",e.SessionCreated="moveo-widget-session-created",e.SessionReconnected="moveo-widget-session-reconnected",e.SessionClosed="moveo-widget-session-closed",e.ConversationClosed="moveo-widget-conversation-closed",e.LinkClicked="moveo-widget-link-clicked",e.UserActivity="moveo-widget-user-activity",e.MemberLeave="moveo-widget-member-leave",e.ConversationUnreadMessages="moveo-conversation-unread-messages",e.ConversationNoUnreadMessages="moveo-conversation-no-unread-messages",e.UserWayInit="moveo-userway-init"}(de||(de={})),function(e){e.SetConfig="moveo-set-config",e.SetLocale="moveo-set-locale",e.SetCssVariables="moveo-set-css-variables",e.Open="moveo-open",e.Close="moveo-close",e.CloseConversation="moveo-close-conversation",e.SendMessage="moveo-send-message",e.ShowTeaserMessage="moveo-show-teaser-message",e.UpdateContext="moveo-update-context",e.UpdateHostContext="moveo-update-host-context",e.LoadSessionReplay="moveo-load-session-replay",e.HostScroll="moveo-host-scroll",e.HostLocation="moveo-host-location",e.WindowResize="moveo-resize",e.HostFrameBox="moveo-host-frame-box",e.SessionActivity="session-activity",e.UserWayDisabled="userway-disabled",e.UserWayEnabled="userway-enabled",e.LinkClicked="link-clicked"}(ue||(ue={})),function(e){e.Expired="expired",e.Survey="survey",e.Closing="closing",e.Resolved="closed",e.Inactivity="inactivity"}(he||(he={})),function(e){e.CloseButton="close-btn",e.EndSessionButton="end-btn",e.HeaderMenuButton="header-menu-btn",e.RestartButton="restart-btn",e.LauncherButton="launcher-btn",e.MessageInput="message-input",e.DisclaimerCheck="disclaimer-check",e.DisclaimerContainer="disclaimer-container",e.HeaderContainer="header-container",e.ImageButton="image-btn"}(me||(me={}));const pe=["s2","s3","s4","s6","s7","s10","s12","s13","s14","s15","s16","s17","s19","s23"];class fe{constructor({config:e}){this.detectUserway=()=>{pe.forEach(e=>{document.addEventListener(`userway:feature_enabled_${e}`,()=>{const t=localStorage.getItem(`userway-${e}`)??"";this.sendEventToIframe({type:ue.UserWayEnabled,data:{eventType:e,value:t}})}),document.addEventListener(`userway:feature_disabled_${e}`,()=>{this.sendEventToIframe({type:ue.UserWayDisabled,data:{eventType:e}})})})},this.initUserway=()=>{const e={...localStorage};Object.keys(e).forEach(t=>{const n=(e[t],e[t]);if(t.includes("userway-s")&&(!isNaN(parseInt(n))||"true"===n)){const e=t.split("-")[1];"0"===n?this.sendEventToIframe({type:ue.UserWayDisabled,data:{eventType:e}}):this.sendEventToIframe({type:ue.UserWayEnabled,data:{eventType:e,value:n}})}})},this.detectMobile=()=>{this.sendEventToIframe({type:ue.WindowResize,data:{is_mobile:h(),width:window.innerWidth,height:window.innerHeight}}),this.sendFrameBox()},this.updateLastActivity=()=>{try{this.sendEventToIframe({type:ue.SessionActivity,data:"active"})}catch(e){this.log("Failed to report page activity",e)}},this.sendHostContext=()=>{if(this.stopHostContext)try{const e=(()=>{const{path:e,...t}=(e=>{const t={};for(const n of e)for(const[e,o]of Object.entries(n))void 0!==o&&""!==o&&void 0===t[e]&&(t[e]=o);return t})([Q({qm_partner_id:ee("partnerId"),qm_client_id:ee("stdAppType"),qm_config_id:ee("selectedConfig"),qm_page_template:(n="template",W(`meta[name="${n}"]`,()=>q(document.querySelector(`meta[name="${CSS.escape(n)}"]`)?.content))),path:W("location.pathname",()=>q(window.location.pathname))}),...K.map(e=>W(`${e.name}.readIdentity`,()=>e.readIdentity?.())??{})]);var n;const o=Q({...t,client_path:e});return Object.keys(o).length>0?{global:o}:{}})();if(0===Object.keys(e).length)return;const t=JSON.stringify(e);if(t===this.sentHostContext)return;this.sentHostContext=t,this.log("Host context:",e),this.updateHostContext(e)}catch(e){this.log("Failed to collect host context",e)}},this.sendSessionReplayHandoff=()=>{if(this.stopHostContext)try{const e=Z();if(!e)return void(this.sentReplaySubscription=null);if(e===this.sentReplaySubscription)return;this.sentReplaySubscription=e,this.log("Session replay handoff:",e),this.sendEventToIframe({type:ue.LoadSessionReplay,data:{vendor:"quantum-metric",subscription:e}})}catch(e){this.log("Failed to hand off the session replay subscription",e)}},this.trackHostContext=()=>{const e=(e=>{const t=[];K.forEach(n=>{const o=W(`${n.name}.whenReady`,()=>n.whenReady?.(e));"function"==typeof o&&t.push(o)});const n=new Set(K.filter(e=>X(e,"isExpected")&&!X(e,"isReady")));let o;if(n.size>0){let t=Math.ceil(20);o=window.setInterval(()=>{t-=1,n.forEach(t=>{X(t,"isReady")&&(n.delete(t),e())}),(0===n.size||t<=0)&&window.clearInterval(o)},500)}return()=>{window.clearInterval(o),t.forEach(e=>N("provider unsubscribe",e)),t.length=0}})(()=>{this.sendHostContext(),this.sendSessionReplayHandoff()}),t=ae(this.sendHostContext);this.stopHostContext=()=>{e(),t()}},this.sendFrameBox=()=>{requestAnimationFrame(()=>{if(!this.iframe)return;const{width:e,height:t}=this.iframe.getBoundingClientRect();e&&t&&(this.frameHeight=t,this.placeInVisibleBand(),this.sendEventToIframe({type:ue.HostFrameBox,data:{width:e,height:t}}))})},this.placeInVisibleBand=()=>{const e=this.visibleBand;if(!this.iframe||!e||this.hostAlignedTop||"embed"===this.config.widget_position)return;if(this.iframe.classList.contains("full"))return void this.placeFullInBand(e);if(e.bottom>=window.innerHeight-1)return this.iframe.style.removeProperty("top"),this.iframe.style.removeProperty("bottom"),this.iframe.style.removeProperty("transition"),this.iframe.style.removeProperty("transform"),this.iframe.style.removeProperty("will-change"),void(this.placedTop=null);null==this.frameHeight&&(this.frameHeight=this.iframe.getBoundingClientRect().height);const t=Math.max(0,e.bottom-this.frameHeight);if(t!==this.placedTop){if(this.placedTop=t,e.exact)return this.iframe.style.top="0px",this.iframe.style.bottom="auto",this.iframe.style.willChange="transform",this.iframe.style.transition="none",void(this.iframe.style.transform=`translateY(${t}px)`);this.iframe.style.removeProperty("transform"),this.iframe.style.removeProperty("will-change"),this.iframe.style.transition="top 0.25s linear",this.iframe.style.top=`${t}px`,this.iframe.style.bottom="auto"}},this.placeFullInBand=e=>{e.top<=1&&e.bottom>=window.innerHeight-1?this.clearFullBandPin():(this.iframe.style.transition=e.exact?"":"top 0.25s linear, height 0.25s linear",this.iframe.style.setProperty("--moveo-full-top",`${e.top}px`),this.iframe.style.setProperty("--moveo-full-height",e.bottom-e.top+"px"))},this.clearFullBandPin=()=>{this.iframe.style.removeProperty("--moveo-full-top"),this.iframe.style.removeProperty("--moveo-full-height")},this.config=e,this.id=e.widgetId,this.isNested=!(W("window.top",()=>window===window.top)??1),this.initialized=!1,this.log=i()(`moveo:web-client:${this.id}`),this.iframe=this.createIframe(),this.stopHostContext=null,this.stopActivityTracking=null,this.scrollTracker=null,this.stopLocationTracking=null,this.sentHostContext=null,this.sentReplaySubscription=null,this.stopWindowListeners=null,this.widgetLoadedEvent=null,this.stopVisibleBand=null,this.visibleBand=null,this.hostAlignedTop=!1,this.frameHeight=null,this.placedTop=null}createIframe(){const e=document.createElement("iframe");return e.width="1px",e.height="1px",e.title="Moveo webchat",e.id=this.id,e.name=this.id,e.allow="geolocation; microphone; autoplay",e.style.border="0",e.classList.add("web-client-container"),"embed"===this.config.widget_position&&e.classList.add("embed"),e.setAttribute("src",(e=>{let t="";const n=document.querySelectorAll("script");n&&n.forEach(e=>{e.src?.includes(u)&&(t=u),e.src?.includes(d)&&(t=d),e.src?.match(/@moveo-ai\/web-client.*next/)&&(t="https://web-client.dev.moveo.ai")});const{origin:o}=window.location;return t||(t=o.match(/^https?:\/\/(localhost|127\.0\.0\.1|\[::1\])(:\d+)?$/)||o.match(/^https:\/\/([a-z0-9-]+\.)?web-7ii\.pages\.dev$/)||o.match(/web-client.*moveo-ai\.vercel\.app/)||o.match(/web.*moveo\.ai/)?o:d),`${t}?widgetId=${e}`})(this.id)),e}handleEvents(e,t){return n=>{const o=m(this.id,n);if(o)switch(o.type){case de.IframeLoaded:this.sendEventToIframe({type:ue.SetConfig,data:this.config}),this.config.feature_flags?.fiserv_web_activity&&!this.stopHostContext&&this.trackHostContext(),this.sendHostContext(),this.sendSessionReplayHandoff();break;case de.SessionCreated:case de.SessionReconnected:this.sentHostContext=null,this.sendHostContext();break;case de.IframeError:return this.stopInstrumentation(),this.stopWindowListeners?.(),this.stopWindowListeners=null,t(o.data);case de.UserWayInit:this.initUserway(),this.detectUserway();break;case de.WidgetLoaded:setTimeout(()=>{this.detectMobile(),e(this)},0),this.sentHostContext=null,this.sentReplaySubscription=null,this.sendHostContext(),this.sendSessionReplayHandoff(),this.widgetLoadedEvent={timestamp:(new Date).toISOString(),event:"widget_loaded",properties:{}};break;case de.WidgetError:this.notify(o);break;case de.Opened:(o.data.isFull||o.data.is_mobile||h())&&(this.iframe.classList.add("full"),this.placeInVisibleBand());break;case de.Closed:(o.data.isFull||h())&&(this.iframe.classList.remove("full"),this.clearFullBandPin(),this.frameHeight=null,this.placeInVisibleBand());break;case de.Resize:{this.iframe.style.width=o.data.width,this.iframe.style.height=o.data.height,this.iframe.style.left=o.data.left,null!=o.data.top&&(this.iframe.style.top=o.data.top,this.iframe.style.bottom="auto",this.hostAlignedTop=!0);const e=Number.parseFloat(o.data.height);Number.isFinite(e)&&e>0?(this.frameHeight=e,this.placeInVisibleBand()):this.frameHeight=null,this.sendFrameBox();break}default:this.log(`Unhandle event: ${o.type}`)}}}stopInstrumentation(){this.stopHostContext?.(),this.stopHostContext=null,this.stopActivityTracking?.(),this.stopActivityTracking=null,this.scrollTracker?.stop(),this.scrollTracker=null,this.stopLocationTracking?.(),this.stopLocationTracking=null,this.stopVisibleBand?.(),this.stopVisibleBand=null,this.visibleBand=null}resolveEmbedElement(){const e=this.config?.element||null;if("string"!=typeof e)return e;const t=document.getElementById(e);if(!t)throw new Error(`Element with id: ${e} not found`);return t}init(){return new Promise((e,t)=>{if(v(navigator.userAgent))throw new Error(`Widget ${this.id} was not initialized because user-agent is a bot`);if(this.initialized)throw new Error(`Widget ${this.id} was already initialized`);let n;n="embed"===this.config.widget_position?this.resolveEmbedElement():window.document.querySelector("body");const o=this.handleEvents(e,t),i=B(this.detectMobile,100);var s;window.addEventListener("message",o),window.addEventListener("resize",i),this.stopWindowListeners=()=>{window.removeEventListener("message",o),window.removeEventListener("resize",i)},n?.appendChild(this.iframe),this.stopActivityTracking=(e=>{const t=[],n=function(e,t,n){var o=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return g(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),B(e,t,{leading:o,maxWait:t,trailing:i})}(e,3e3),o=(e,o)=>{window.addEventListener(e,n,o),t.push(()=>window.removeEventListener(e,n,o))},i={passive:!0};return o("load",i),o("mousemove",i),o("mousedown",i),o("touchstart",i),o("touchmove",i),o("click",i),o("keydown",i),o("scroll",{capture:!0,passive:!0}),()=>{t.forEach(e=>e()),t.length=0,n.cancel()}})(this.updateLastActivity),this.config.teaser&&(this.scrollTracker=(e=>{let t,n=!1;const o=()=>{n=!1,e(!1)},i=()=>{n||(n=!0,e(!0)),clearTimeout(t),t=setTimeout(o,1e3)},s={capture:!0,passive:!0};return window.addEventListener("scroll",i,s),{pulse:i,stop:()=>{window.removeEventListener("scroll",i,s),clearTimeout(t)}}})(e=>this.sendEventToIframe({type:ue.HostScroll,data:{scrolling:e}}))),this.config.teaser?.pages?.length&&(this.stopLocationTracking=ae(()=>this.sendEventToIframe({type:ue.HostLocation,data:{href:window.location.href}}))),this.isNested&&"embed"!==this.config.widget_position&&(this.stopVisibleBand=(s=e=>{const t=null!=e&&(this.visibleBand?.top!==e.top||this.visibleBand?.bottom!==e.bottom);this.visibleBand=e,this.placeInVisibleBand(),t&&this.scrollTracker?.pulse()},W("visible band",()=>(e=>{const t=(()=>{const e=[];try{let t=window;for(;t!==t.parent;){if(!t.frameElement)return null;t=t.parent,t.innerHeight,e.push(t)}}catch{return null}return e})();if(!t||0===t.length)return null;const n=()=>{let e=0,t=window.innerHeight,n=0,o=window;for(;o!==o.parent;){const i=o.frameElement;if(!i)return null;n+=i.getBoundingClientRect().top+i.clientTop,o=o.parent,e=Math.max(e,-n),t=Math.min(t,o.innerHeight-n)}return t>e?{top:e,bottom:t,exact:!0}:null};let o=null;const i=()=>{const t=W("ancestor geometry",n)??null;!t||o&&o.top===t.top&&o.bottom===t.bottom||(o=t,e(t))},s={capture:!0,passive:!0};for(const e of t)e.addEventListener("scroll",i,s),e.addEventListener("resize",i);return window.addEventListener("resize",i),i(),()=>{window.removeEventListener("resize",i);for(const e of t)try{e.removeEventListener("scroll",i,s),e.removeEventListener("resize",i)}catch{}}})(s))||(W("visible band ladder",()=>(e=>{const t=document.createElement("div");t.style.cssText="position:absolute;top:0;left:0;width:0;height:0;pointer-events:none";const n=document.createElement("div");n.dataset.bandProbe="";const o=()=>{const e=t.parentNode;e?.removeChild(t);const n=W("document height",()=>Math.max(document.documentElement.scrollHeight,window.innerHeight));return e?.appendChild(t),n&&n>0?n:null},i=new Set;let s=null,r=0,a=600,c=!1;const l=new IntersectionObserver(t=>{for(const e of t){const t=Number(e.target.dataset.y);e.isIntersecting?i.add(t):i.delete(t);const n=e.rootBounds?.height;n&&(a=n)}C(),(()=>{if(c)return;if(0===i.size)return;const t=W("scrollY",()=>window.scrollY)??0;let n=1/0,o=-1/0;for(const e of i)e<n&&(n=e),e>o&&(o=e);n=Math.max(0,n-t),o-=t,o<=n||s&&s.top===n&&s.bottom===o||(s={top:n,bottom:o,exact:!1},e(s))})()},{root:null,threshold:0});let d=null,u=null,h=0,m=null;const p=new IntersectionObserver(t=>{const n=(e=>{const t=e.intersectionRect,n=e.boundingClientRect;if(!e.isIntersecting||!t||!n)return null;const o=W("scrollY",()=>window.scrollY)??0,i=t.top-n.top-o,s=t.bottom-n.top-o;if(!Number.isFinite(i)||!Number.isFinite(s)||s<=i)return null;const r=performance.now(),a=Number.isFinite(e.time)&&r-e.time>-5&&r-e.time<200?e.time:r;return{top:Math.max(0,i),bottom:s,at:a}})(t[t.length-1]);if(!n)return;c||(c=!0,ce("browser clips the probe; exact bands from here on"));const o=u?.top===n.top&&u.bottom===n.bottom;return o&&null!==g?void 0:null!==g?(d=n,void(v=performance.now()+500)):void(o&&s?.exact&&s.top===n.top&&s.bottom===n.bottom||(u={t:n.at,top:n.top,bottom:n.bottom},h=0,m=n.bottom,s={top:n.top,bottom:n.bottom,exact:!0},e(s),C()))},{root:null,threshold:0}),f=()=>{p.unobserve(n),p.observe(n)};let v=0,g=null,y=0,b=0;const w=()=>{g=null,N("visible band pump",()=>{const t=performance.now(),n=b?Math.min(50,t-b):16;if(b=t,null!==m&&(m+=h*n),d){y=0;const e=d;d=null,(e=>{const t=u;u={t:e.at,top:e.top,bottom:e.bottom};const n=t?e.at-t.t:0;if(!t||null===m||n<4||n>120)return m=e.bottom,void(h=0);let o=(e.bottom-t.bottom)/n;o=Math.max(h-.3*n,Math.min(h+.3*n,o)),h=0!==h&&Math.sign(o)!==Math.sign(h)||0===h?o:h+.4*(o-h),m+=.35*(e.bottom-m)})(e)}else if(y||(y=t),t-y>24/Math.max(.1,Math.abs(h))&&(h*=Math.exp(-n/50),Math.abs(h)<.02&&(h=0),0===h&&u&&null!==m&&(m+=(u.bottom-m)*(1-Math.exp(-n/40)),Math.abs(m-u.bottom)<.75&&(m=u.bottom))),u&&null!==m&&0!==h){const e=u.bottom+32*Math.sign(h);m=h>0?Math.min(m,e):Math.max(m,e)}if(null!==m&&u){const t=Math.max(-160,Math.min(160,8*h)),o=u.bottom-u.top;let i=m+t;if(s?.exact){const e=Math.abs(h)*n*1.75+6;i=Math.max(s.bottom-e,Math.min(s.bottom+e,i))}const r=(e=>{const t=Math.max(0,e.top+0);let n=e.bottom+0;const o=window.innerHeight-2;return e.bottom<=o&&n>o&&(n=o),n<=t?null:{top:t,bottom:n,exact:!0}})({top:Math.max(0,i-o),bottom:i});r&&((t,n)=>{s?.exact&&s.top===t&&s.bottom===n||(s={top:t,bottom:n,exact:!0},e(s))})(r.top,r.bottom)}t>=v||(f(),g=requestAnimationFrame(w))})},C=()=>{v=performance.now()+500,null===g&&"function"==typeof requestAnimationFrame&&(y=0,b=0,f(),g=requestAnimationFrame(w))},x=e=>{r=e;const o=((e,t)=>{const n=Math.max(16,Math.ceil(e/200)),o=Math.max(16,Math.floor(.5*t));return Math.max(Math.min(n,o),Math.ceil(e/2e3))})(r,a);t.replaceChildren(),i.clear(),n.style.cssText=`position:absolute;top:0;left:0;width:1px;height:${r}px;pointer-events:none`,t.appendChild(n);const s=e=>{const n=document.createElement("div");n.dataset.y=String(e),n.style.cssText=`position:absolute;top:${e}px;left:0;width:1px;height:1px`,t.appendChild(n)};let c=0;for(;c<r-1;c+=o)s(c);s(Math.max(0,r-1)),l.disconnect();for(const e of t.children)e!==n&&l.observe(e);p.disconnect(),p.observe(n)};let E=!1;const I=()=>{N("visible band rebuild",()=>{const e=E?o():null;null!==e&&e!==r&&x(e)})},M=()=>{N("visible band attach",()=>{(document.body??document.documentElement).appendChild(t),E=!0;const e=o();null!==e&&x(e)})};return document.body?M():document.addEventListener("DOMContentLoaded",M,{once:!0}),window.addEventListener("resize",I),()=>{null!==g&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(g),g=null,v=0,d=null,u=null,h=0,m=null,b=0,window.removeEventListener("resize",I),document.removeEventListener("DOMContentLoaded",M),l.disconnect(),p.disconnect(),t.remove(),i.clear(),s=null}})(s))??(()=>{})))),this.initialized=!0,this.detectMobile()})}sendEventToIframe(e){this.iframe&&this.iframe.contentWindow?(this.log(`Event to iframe: ${e.type}`,e),e.type===ue.SetConfig&&e.data?.element&&delete e.data.element,this.iframe.contentWindow.postMessage({...e,type:`${this.id}${e.type}`},"*")):this.log("Error: Cannot find iframe to send event")}notify(e){this.log(`notify ${e.type}:`,e)}notifyParent(e,t){window.addEventListener("message",n=>{const o=m(this.id,n);if(o&&(this.log(`Event from iframe: ${o.type}`,o),o.type===e)){if("data"in o&&"object"==typeof o.data&&null!==o.data&&"skipInstanceCallback"in o.data)return;t("data"in o?o.data:void 0)}})}openWindow(){this.sendEventToIframe({type:ue.Open})}async destroy(){var e;this.closeConversation({hide:!0}),this.stopInstrumentation(),await(e=4e3,new Promise(t=>setTimeout(t,e)));const t=document.getElementById(this.id);t&&(t.remove(),this.initialized=!1),this.stopWindowListeners?.(),this.stopWindowListeners=null,this.sentHostContext=null,this.sentReplaySubscription=null,this.widgetLoadedEvent=null}closeConversation({hide:e}){this.sendEventToIframe({type:ue.CloseConversation,data:{hide:e}})}closeWindow(){this.sendEventToIframe({type:ue.Close})}sendMessage(e){this.sendEventToIframe({type:ue.SendMessage,data:e})}showTeaserMessage(e){this.sendEventToIframe({type:ue.ShowTeaserMessage,data:e?{text:e}:void 0})}updateContext(e){this.sendEventToIframe({type:ue.UpdateContext,data:e})}updateHostContext(e){this.sendEventToIframe({type:ue.UpdateHostContext,data:e})}setCSSVariables(e){const t=e["--moveo-z-index"];void 0!==t&&this.iframe&&(t?this.iframe.style.setProperty("--moveo-z-index",t):this.iframe.style.removeProperty("--moveo-z-index")),this.sendEventToIframe({type:ue.SetCssVariables,data:e})}setLocale(e){this.sendEventToIframe({type:ue.SetLocale,data:e})}onSessionCreated(e){this.notifyParent(de.SessionCreated,e)}onSessionClosed(e){this.notifyParent(de.SessionClosed,e)}onConversationClosed(e){this.notifyParent(de.ConversationClosed,e)}onSessionReconnected(e){this.notifyParent(de.SessionReconnected,e)}onNoUnreadMessages(e){this.notifyParent(de.ConversationNoUnreadMessages,e)}onUnreadMessages(e){this.notifyParent(de.ConversationUnreadMessages,e)}onLinkClicked(e){this.notifyParent(de.LinkClicked,e)}onUserActivity(e){this.notifyParent(de.UserActivity,e)}onAnalyticsEvent(e){this.notifyParent(de.AnalyticsEvent,e),this.widgetLoadedEvent&&e(this.widgetLoadedEvent)}onWebchatOpened(e){this.notifyParent(de.Opened,e)}onWebchatClosed(e){this.notifyParent(de.Closed,e)}onMemberLeave(e){this.notifyParent(de.MemberLeave,e)}}var ve=n.cjs(function(e,t){var n=[];function o(e){for(var t=-1,o=0;o<n.length;o++)if(n[o].identifier===e){t=o;break}return t}function i(e,t){for(var i={},r=[],a=0;a<e.length;a++){var c=e[a],l=t.base?c[0]+t.base:c[0],d=i[l]||0,u="".concat(l," ").concat(d);i[l]=d+1;var h=o(u),m={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==h)n[h].references++,n[h].updater(m);else{var p=s(m,t);t.byIndex=a,n.splice(a,0,{identifier:u,updater:p,references:1})}r.push(u)}return r}function s(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,t){var s=i(e=e||[],t=t||{});return function(e){e=e||[];for(var r=0;r<s.length;r++){var a=o(s[r]);n[a].references--}for(var c=i(e,t),l=0;l<s.length;l++){var d=o(s[l]);0===n[d].references&&(n[d].updater(),n.splice(d,1))}s=c}}}),ge=n.n(ve),ye=n.cjs(function(e,t){e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,i&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),t.styleTagTransform(o,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}}),be=n.n(ye),we=n.cjs(function(e,t){var n={};e.exports=function(e,t){var o=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}}),Ce=n.n(we),xe=n.cjs(function(e,t){e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}}),Ee=n.n(xe),Ie=n.cjs(function(e,t){e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}}),Me=n.n(Ie),Fe=n.cjs(function(e,t){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}),Se=n.n(Fe),Ae=n(1178),Te={};Te.styleTagTransform=Se(),Te.setAttributes=Ee(),Te.insert=Ce().bind(null,"head"),Te.domAPI=be(),Te.insertStyleElement=Me(),ge()(Ae.A,Te),Ae.A&&Ae.A.locals&&Ae.A.locals;let ke=i()("moveo:web-client");const Le=async e=>{const t=`moveo-${((e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&n[e]];return t})(5)}`,n=window.location.href;if(ke=ke.extend(`:${t}`),!e?.integrationId)throw new Error("integrationId is required.\n Call MoveoAI.init({ integrationId: YOUR_INTEGRATION_HERE })");const o=await(async(e,t)=>{const n=t||l,o=await fetch(`${n}/v1/web/${e}`,{headers:{"Cache-Control":"no-cache"}}),i=await o.text();if(o.ok)return JSON.parse(i);throw new Error(`Error loading config from: ${n}/${e}`)})(e.integrationId,e.host);ke("Loaded integration configuration:",o);const{feature_flags:i,...s}=e;return void 0!==i&&ke("feature_flags is server-owned; the caller value is ignored"),{...a({...o},s),clientUrl:n,widgetId:t}},Oe=async e=>{await new Promise(e=>{if("complete"===document.readyState)return e();window.addEventListener("load",()=>e())});const t=await Le(e);if(ke("Configuration:",t),"embed"===t.widget_position&&!t.element)throw new Error("element is not defined but required by embed widget");const n=new fe({config:t});ke("Initializing");const o=await n.init();return ke("Initialized"),o}}};const t={};function n(o){const i=t[o];if(void 0!==i)return i.exports;const s=t[o]={id:o,exports:{}};return e[o](s,s.exports,n),s.exports}return n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{if(Array.isArray(t))for(var o=0;o<t.length;){var i=t[o++],s=t[o++];n.o(e,i)?0===s&&o++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[o++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.cjs=e=>{const t={exports:{}};return e.call(t.exports,t,t.exports),t.exports},n.nc=void 0,n(4130)})());
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("MoveoAI",[],t):"object"==typeof exports?exports.MoveoAI=t():e.MoveoAI=t()}(this,()=>(()=>{var e={1178(e,t,n){"use strict";var o=n(1601),i=n.n(o),s=n(6314),r=n.n(s)()(i());r.push([e.id,"/*\n * Applied to the iframe on the customer's own page, so the overrides below are\n * deliberate: the host stylesheet must not win.\n */\n.web-client-container {\n position: fixed;\n right: 0;\n bottom: 0;\n z-index: var(--moveo-z-index, 10022);\n max-height: 99%;\n cursor: pointer;\n}\n\n.web-client-container.embed {\n position: static;\n width: 100% !important;\n height: 100% !important;\n max-height: 100%;\n}\n\n/*\n * Full is the frame's viewport — the visitor's window only on a top-level\n * page. On a nested install the loader pins the panel to the visible band\n * through these two variables; unset, they resolve to the plain full frame.\n */\n.web-client-container.full {\n inset: var(--moveo-full-top, 0) 0 auto 0 !important;\n width: 100% !important;\n height: var(--moveo-full-height, 100%) !important;\n max-height: initial;\n}\n",""]);const a=r;n.d(t,["A",0,a])},6314(e){"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n="",o=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),o&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),o&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n}).join("")},t.i=function(e,n,o,i,s){"string"==typeof e&&(e=[[null,e,void 0]]);var r={};if(o)for(var a=0;a<this.length;a++){var c=this[a][0];null!=c&&(r[c]=!0)}for(var l=0;l<e.length;l++){var d=[].concat(e[l]);o&&r[d[0]]||(void 0!==s&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=s),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),i&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=i):d[4]="".concat(i)),t.push(d))}},t}},1601(e){"use strict";e.exports=function(e){return e[1]}},7833(e,t,n){t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let o=0,i=0;t[0].replace(/%[a-zA-Z%]/g,e=>{"%%"!==e&&(o++,"%c"===e&&(i=o))}),t.splice(i,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){if("undefined"!=typeof window&&window.process&&("renderer"===window.process.type||window.process.__nwjs))return!0;if("undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return"undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=n(736)(t);const{formatters:o}=e.exports;o.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},736(e,t,n){e.exports=function(e){function t(e){let n,i,s,r=null;function a(...e){if(!a.enabled)return;const o=a,i=Number(new Date),s=i-(n||i);o.diff=s,o.prev=n,o.curr=i,n=i,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let r=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,(n,i)=>{if("%%"===n)return"%";r++;const s=t.formatters[i];if("function"==typeof s){const t=e[r];n=s.call(o,t),e.splice(r,1),r--}return n}),t.formatArgs.call(o,e),(o.log||t.log).apply(o,e)}return a.namespace=e,a.useColors=t.useColors(),a.color=t.selectColor(e),a.extend=o,a.destroy=t.destroy,Object.defineProperty(a,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==r?r:(i!==t.namespaces&&(i=t.namespaces,s=t.enabled(e)),s),set:e=>{r=e}}),"function"==typeof t.init&&t.init(a),a}function o(e,n){const o=t(this.namespace+(void 0===n?":":n)+e);return o.log=this.log,o}function i(e,t){let n=0,o=0,i=-1,s=0;for(;n<e.length;)if(o<t.length&&(t[o]===e[n]||"*"===t[o]))"*"===t[o]?(i=o,s=n,o++):(n++,o++);else{if(-1===i)return!1;o=i+1,s++,n=s}for(;o<t.length&&"*"===t[o];)o++;return o===t.length}return t.debug=t,t.default=t,t.coerce=function(e){return e instanceof Error?e.stack||e.message:e},t.disable=function(){const e=[...t.names,...t.skips.map(e=>"-"+e)].join(",");return t.enable(""),e},t.enable=function(e){t.save(e),t.namespaces=e,t.names=[],t.skips=[];const n=("string"==typeof e?e:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const e of n)"-"===e[0]?t.skips.push(e.slice(1)):t.names.push(e)},t.enabled=function(e){for(const n of t.skips)if(i(e,n))return!1;for(const n of t.names)if(i(e,n))return!0;return!1},t.humanize=n(6585),t.destroy=function(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")},Object.keys(e).forEach(n=>{t[n]=e[n]}),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t<e.length;t++)n=(n<<5)-n+e.charCodeAt(t),n|=0;return t.colors[Math.abs(n)%t.colors.length]},t.enable(t.load()),t}},6585(e){var t=1e3,n=60*t,o=60*n,i=24*o,s=7*i;function r(e,t,n,o){var i=t>=1.5*n;return Math.round(e/n)+" "+o+(i?"s":"")}e.exports=function(e,a){a=a||{};var c,l,d=typeof e;if("string"===d&&e.length>0)return function(e){if(!((e=String(e)).length>100)){var r=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(r){var a=parseFloat(r[1]);switch((r[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return 315576e5*a;case"weeks":case"week":case"w":return a*s;case"days":case"day":case"d":return a*i;case"hours":case"hour":case"hrs":case"hr":case"h":return a*o;case"minutes":case"minute":case"mins":case"min":case"m":return a*n;case"seconds":case"second":case"secs":case"sec":case"s":return a*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return a;default:return}}}}(e);if("number"===d&&isFinite(e))return a.long?(c=e,(l=Math.abs(c))>=i?r(c,l,i,"day"):l>=o?r(c,l,o,"hour"):l>=n?r(c,l,n,"minute"):l>=t?r(c,l,t,"second"):c+" ms"):function(e){var s=Math.abs(e);return s>=i?Math.round(e/i)+"d":s>=o?Math.round(e/o)+"h":s>=n?Math.round(e/n)+"m":s>=t?Math.round(e/t)+"s":e+"ms"}(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))}},4724(e,t,n){"use strict";n.r(t),n.d(t,{init:()=>He});var o=n(7833),i=n.n(o);const s=e=>{if("object"==typeof e&&null!==e){if("function"==typeof Object.getPrototypeOf){const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}return"[object Object]"===Object.prototype.toString.call(e)}return!1},r=new Set(["__proto__","constructor","prototype","toString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString"]),a=(...e)=>e.reduce((e,t)=>{if(void 0===t)return e;if(Array.isArray(t))throw new TypeError("Arguments provided to ts-deepmerge must be objects, not arrays.");return Object.keys(t).forEach(n=>{r.has(n)||(Array.isArray(e[n])&&Array.isArray(t[n])?e[n]=a.options.mergeArrays?a.options.uniqueArrayItems?Array.from(new Set(e[n].concat(t[n]))):[...e[n],...t[n]]:t[n]:s(e[n])&&s(t[n])?e[n]=a(e[n],t[n]):!s(e[n])&&s(t[n])?e[n]=a(t[n],void 0):e[n]=void 0===t[n]?a.options.allowUndefinedOverrides?t[n]:e[n]:t[n])}),e},{}),c={allowUndefinedOverrides:!0,mergeArrays:!0,uniqueArrayItems:!0};a.options=c,a.withOptions=(e,...t)=>{a.options=Object.assign(Object.assign({},c),e);const n=a(...t);return a.options=c,n};const l="https://channels-ws.moveo.ai",d=(Object.freeze({"bab4875e-0411-4ae1-9e98-19ea236d369b":"nbg","0ffdaef8-4ce9-4188-9fdd-4644e5062cf2":"alpha","0e614713-2e6b-4af2-8e9e-21c2a4617981":"fiserv"}),"https://web.moveo.ai"),u="https://web.dev.moveo.ai",h=()=>window.innerWidth<650||window.innerHeight<550&&window.innerWidth<1e3||(()=>{const{screen:e,matchMedia:t}=window;return!(!e||"function"!=typeof t)&&Math.min(e.width,e.height)<650&&t("(pointer: coarse)").matches})(),m=(e,t)=>{const n=t?.data?.type;if("string"!=typeof n||!n.startsWith(e))return null;const o=n.replace(e,""),i=t.data?.data;return{type:o,data:i}};var p,f=/bot|crawl|http|lighthouse|scan|search|spider/i;var v=function(e){return"string"==typeof(t=e)&&""!==t&&function(){if(p instanceof RegExp)return p;try{p=new RegExp(" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! channel/|google/)google(?!(?:wv|app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!cam)scan|(?<!lib)http|24x7|;\\s\\w+;$|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+\\.ai|\\bbw/|\\bdlc\\b|\\bort/|\\bperl\\b|\\btime/|\\||^[<\\(;]|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^blackbox exporter|^bot|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^exodusmovement|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^ps_daily/|^python|^rank|^read|^reed|^remove\\.bg/|^rest|^rss|^snapchat|^sora |^space bison|^stape/|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|abuse|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|attracta|audit|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|collapsify\\b|convertify|cookiehubverify/|crawl|cursor/|cypress/|dareboost|datanyze|dejaclick|detect|discovery|dmbrowser|download|exaleadcloudview|feed|fetcher|firephp|foregenix|functionize|grab|hardenize\\b|headless|hotjar|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|linktiger|mail\\.ru/|manager|manus-user/|marketgoo/|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|openvas|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|playwright|powermarks|preview|productfinder|prospectingstudio|proxy|ptst[ /]\\d|radar|readable/|retriever|rexx;|rigor|rss\\b|scrape|securityheaders|selenium|server|silktide|sindup/|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|testlocally|tools|torrent|transcoder|upday/|url|validator|virtuoso|wappalyzer|watchtowr|webglance|webkit2png|whatcms/|xtate/","i")}catch(e){p=f}return p}().test(e);var t};const g=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},y="object"==typeof globalThis&&globalThis&&globalThis.Object===Object&&globalThis;var b="object"==typeof self&&self&&self.Object===Object&&self;const w=y||b||Function("return this")(),C=function(){return w.Date.now()};var x=/\s/;var E=/^\s+/;const I=function(e){return e?e.slice(0,function(e){for(var t=e.length;t--&&x.test(e.charAt(t)););return t}(e)+1).replace(E,""):e},M=w.Symbol;var F=Object.prototype,S=F.hasOwnProperty,A=F.toString,T=M?M.toStringTag:void 0;var k=Object.prototype.toString;var L=M?M.toStringTag:void 0;const O=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":L&&L in Object(e)?function(e){var t=S.call(e,T),n=e[T];try{e[T]=void 0;var o=!0}catch(e){}var i=A.call(e);return o&&(t?e[T]=n:delete e[T]),i}(e):function(e){return k.call(e)}(e)};var j=/^[-+]0x[0-9a-f]+$/i,P=/^0b[01]+$/i,H=/^0o[0-7]+$/i,z=parseInt;const $=function(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return null!=e&&"object"==typeof e}(e)&&"[object Symbol]"==O(e)}(e))return NaN;if(g(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=g(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=I(e);var n=P.test(e);return n||H.test(e)?z(e.slice(2),n?2:8):j.test(e)?NaN:+e};var _=Math.max,U=Math.min;const R=function(e,t,n){var o,i,s,r,a,c,l=0,d=!1,u=!1,h=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function m(t){var n=o,s=i;return o=i=void 0,l=t,r=e.apply(s,n)}function p(e){var n=e-c;return void 0===c||n>=t||n<0||u&&e-l>=s}function f(){var e=C();if(p(e))return v(e);a=setTimeout(f,function(e){var n=t-(e-c);return u?U(n,s-(e-l)):n}(e))}function v(e){return a=void 0,h&&o?m(e):(o=i=void 0,r)}function y(){var e=C(),n=p(e);if(o=arguments,i=this,c=e,n){if(void 0===a)return function(e){return l=e,a=setTimeout(f,t),d?m(e):r}(c);if(u)return clearTimeout(a),a=setTimeout(f,t),m(c)}return void 0===a&&(a=setTimeout(f,t)),r}return t=$(t)||0,g(n)&&(d=!!n.leading,s=(u="maxWait"in n)?_($(n.maxWait)||0,t):s,h="trailing"in n?!!n.trailing:h),y.cancel=function(){void 0!==a&&clearTimeout(a),l=0,o=c=i=a=void 0},y.flush=function(){return void 0===a?r:v(C())},y},B=i()("moveo:safe-read"),W=(e,t)=>{try{return t()}catch(t){return void B("%s unreadable: %o",e,t)}},N=(e,t)=>{W(e,()=>{t()})},q=e=>{if("string"==typeof e)return e.trim()||void 0},Q=e=>{for(const t of Object.keys(e))void 0===e[t]&&delete e[t];return e},D=()=>window,V=()=>W("QuantumMetric scripts",()=>Array.from(document.querySelectorAll('script[src*="quantummetric"]')))??[],J=()=>V().length>0,Y=()=>W("QuantumMetricAPI.isOn",()=>{const e=D().QuantumMetricAPI;return"function"==typeof e?.isOn&&!0===e.isOn()})??!1,G=/\/qscripts\/quantum-([a-z0-9-]+)\.js/,Z=()=>{if(Y())return W("QuantumMetric script src",()=>{for(const e of V()){const t=e.getAttribute("src")?.match(G)?.[1];if(t)return t}})},K=[{name:"quantum-metric",isReady:()=>Y(),isExpected:()=>J(),readIdentity:()=>({qm_subscription:Z()??null,qm_user_id:Y()?W("QuantumMetricAPI.getUserID",()=>q(D().QuantumMetricAPI?.getUserID?.())):J()?null:void 0}),whenReady:e=>{let t,n=e;const o=()=>N("quantum-metric ready callback",()=>{n?.()}),i=()=>{n&&(t=o,N("QuantumMetricAPI.addEventListener('start')",()=>{D().QuantumMetricAPI?.addEventListener?.("start",o)}),N("QuantumMetricAPI.addEventListener('stop')",()=>{D().QuantumMetricAPI?.addEventListener?.("stop",o)}),o())};return W("QuantumMetricAPI",()=>D().QuantumMetricAPI)?i():N("QuantumMetricOnload",()=>{const e=D().QuantumMetricOnload;if(Array.isArray(e))e.push(i);else{if("function"==typeof e){const t=e;return void(D().QuantumMetricOnload=function(...e){return N("QuantumMetricOnload (ours)",i),t.apply(this,e)})}D().QuantumMetricOnload=[i]}}),()=>{n=null,t&&(N("QuantumMetricAPI.removeEventListener('start')",()=>{D().QuantumMetricAPI?.removeEventListener?.("start",t)}),N("QuantumMetricAPI.removeEventListener('stop')",()=>{D().QuantumMetricAPI?.removeEventListener?.("stop",t)}),t=void 0)}}}],X=(e,t)=>W(`${e.name}.${t}`,()=>e[t]?.())??!1,ee=e=>W(`input[name="${e}"]`,()=>{const t=document.querySelectorAll(`input[name="${CSS.escape(e)}"]`);for(const e of t){const t=q(e.value);if(t)return t}}),te="moveo_visitor_id",ne=e=>W(`document.cookie ${e}`,()=>{const t=`${e}=`,n=document.cookie.split(";").map(e=>e.trim()).find(e=>e.startsWith(t));return q(n?.slice(t.length))}),oe=()=>{const{path:e,...t}=(e=>{const t={};for(const n of e)for(const[e,o]of Object.entries(n))void 0!==o&&""!==o&&void 0===t[e]&&(t[e]=o);return t})([Q({qm_partner_id:ee("partnerId"),qm_client_id:ee("stdAppType"),qm_config_id:ee("selectedConfig"),qm_page_template:(n="template",W(`meta[name="${n}"]`,()=>q(document.querySelector(`meta[name="${CSS.escape(n)}"]`)?.content))),path:W("location.pathname",()=>q(window.location.pathname))}),...K.map(e=>W(`${e.name}.readIdentity`,()=>e.readIdentity?.())??{})]);var n;const o=Q(t),i=(()=>{const e=ne(te);if(e&&e.length<=128)return e;const t=W("crypto.randomUUID",()=>crypto.randomUUID());return t?(N("document.cookie write",()=>{document.cookie=`${te}=${t}; path=/; max-age=34214400; SameSite=Lax; Secure`}),ne(te)===t?t:void 0):void 0})(),s=i?{...o,user:{web_psid:i}}:o;return e?{...s,global:{client_path:e}}:s},ie="moveo:activity:locationchange",se=Symbol.for("moveo.activity.history"),re=[ie,"popstate","hashchange"],ae=[0,400];let ce=!1;const le=()=>{ce||(ce=!0,N("history patch",()=>{const e=window.history;e[se]||(["pushState","replaceState"].forEach(t=>{const n=e[t];e[t]=function(...e){const t=n.apply(this,e);return N("location event",()=>{window.dispatchEvent(new Event(ie))}),t}}),e[se]=!0)}))},de=e=>{le();const t=new Set,n=()=>{t.forEach(e=>window.clearTimeout(e)),t.clear(),ae.forEach(n=>{const o=window.setTimeout(()=>{t.delete(o),e()},n);t.add(o)})};return re.forEach(e=>window.addEventListener(e,n)),()=>{re.forEach(e=>window.removeEventListener(e,n)),t.forEach(e=>window.clearTimeout(e)),t.clear()}},ue=i()("moveo:visible-band");var he,me,pe,fe,ve;!function(e){e.Open="open",e.Resolved="closed",e.Expired="expired",e.Spam="spam",e.Trash="trash"}(he||(he={})),function(e){e.AnalyticsEvent="moveo-analytics-event",e.IframeLoaded="moveo-iframe-loaded",e.IframeError="moveo-iframe-error",e.WidgetLoaded="moveo-widget-loaded",e.WidgetError="moveo-widget-error",e.Opened="moveo-widget-opened",e.Closed="moveo-widget-closed",e.Resize="moveo-widget-resize",e.LocaleChanged="moveo-widget-locale-changed",e.SessionCreated="moveo-widget-session-created",e.SessionReconnected="moveo-widget-session-reconnected",e.SessionClosed="moveo-widget-session-closed",e.ConversationClosed="moveo-widget-conversation-closed",e.LinkClicked="moveo-widget-link-clicked",e.UserActivity="moveo-widget-user-activity",e.MemberLeave="moveo-widget-member-leave",e.ConversationUnreadMessages="moveo-conversation-unread-messages",e.ConversationNoUnreadMessages="moveo-conversation-no-unread-messages",e.UserWayInit="moveo-userway-init"}(me||(me={})),function(e){e.SetConfig="moveo-set-config",e.SetLocale="moveo-set-locale",e.SetCssVariables="moveo-set-css-variables",e.Open="moveo-open",e.Close="moveo-close",e.CloseConversation="moveo-close-conversation",e.SendMessage="moveo-send-message",e.ShowTeaserMessage="moveo-show-teaser-message",e.UpdateContext="moveo-update-context",e.UpdateHostContext="moveo-update-host-context",e.LoadSessionReplay="moveo-load-session-replay",e.HostScroll="moveo-host-scroll",e.HostLocation="moveo-host-location",e.WindowResize="moveo-resize",e.HostFrameBox="moveo-host-frame-box",e.SessionActivity="session-activity",e.UserWayDisabled="userway-disabled",e.UserWayEnabled="userway-enabled",e.LinkClicked="link-clicked"}(pe||(pe={})),function(e){e.Expired="expired",e.Survey="survey",e.Closing="closing",e.Resolved="closed",e.Inactivity="inactivity"}(fe||(fe={})),function(e){e.CloseButton="close-btn",e.EndSessionButton="end-btn",e.HeaderMenuButton="header-menu-btn",e.RestartButton="restart-btn",e.LauncherButton="launcher-btn",e.MessageInput="message-input",e.DisclaimerCheck="disclaimer-check",e.DisclaimerContainer="disclaimer-container",e.HeaderContainer="header-container",e.ImageButton="image-btn"}(ve||(ve={}));const ge=["s2","s3","s4","s6","s7","s10","s12","s13","s14","s15","s16","s17","s19","s23"];class ye{constructor({config:e}){this.detectUserway=()=>{ge.forEach(e=>{document.addEventListener(`userway:feature_enabled_${e}`,()=>{const t=localStorage.getItem(`userway-${e}`)??"";this.sendEventToIframe({type:pe.UserWayEnabled,data:{eventType:e,value:t}})}),document.addEventListener(`userway:feature_disabled_${e}`,()=>{this.sendEventToIframe({type:pe.UserWayDisabled,data:{eventType:e}})})})},this.initUserway=()=>{const e={...localStorage};Object.keys(e).forEach(t=>{const n=(e[t],e[t]);if(t.includes("userway-s")&&(!isNaN(parseInt(n))||"true"===n)){const e=t.split("-")[1];"0"===n?this.sendEventToIframe({type:pe.UserWayDisabled,data:{eventType:e}}):this.sendEventToIframe({type:pe.UserWayEnabled,data:{eventType:e,value:n}})}})},this.detectMobile=()=>{this.sendEventToIframe({type:pe.WindowResize,data:{is_mobile:h(),width:window.innerWidth,height:window.innerHeight}}),this.sendFrameBox()},this.updateLastActivity=()=>{try{this.sendEventToIframe({type:pe.SessionActivity,data:"active"})}catch(e){this.log("Failed to report page activity",e)}},this.sendHostContext=()=>{if(this.stopHostContext)try{const e=oe();if(0===Object.keys(e).length)return;const t=JSON.stringify(e);if(t===this.sentHostContext)return;this.sentHostContext=t,this.log("Host context:",e),this.updateHostContext(e)}catch(e){this.log("Failed to collect host context",e)}},this.sendSessionReplayHandoff=()=>{if(this.stopHostContext)try{const e=Z();if(!e)return void(this.sentReplaySubscription=null);if(e===this.sentReplaySubscription)return;this.sentReplaySubscription=e,this.log("Session replay handoff:",e),this.sendEventToIframe({type:pe.LoadSessionReplay,data:{vendor:"quantum-metric",subscription:e}})}catch(e){this.log("Failed to hand off the session replay subscription",e)}},this.trackHostContext=()=>{const e=(e=>{const t=[];K.forEach(n=>{const o=W(`${n.name}.whenReady`,()=>n.whenReady?.(e));"function"==typeof o&&t.push(o)});const n=new Set(K.filter(e=>X(e,"isExpected")&&!X(e,"isReady")));let o;if(n.size>0){let t=Math.ceil(20);o=window.setInterval(()=>{t-=1,n.forEach(t=>{X(t,"isReady")&&(n.delete(t),e())}),(0===n.size||t<=0)&&window.clearInterval(o)},500)}return()=>{window.clearInterval(o),t.forEach(e=>N("provider unsubscribe",e)),t.length=0}})(()=>{this.sendHostContext(),this.sendSessionReplayHandoff()}),t=de(this.sendHostContext);this.stopHostContext=()=>{e(),t()}},this.sendFrameBox=()=>{requestAnimationFrame(()=>{if(!this.iframe)return;const{width:e,height:t}=this.iframe.getBoundingClientRect();e&&t&&(this.frameHeight=t,this.placeInVisibleBand(),this.sendEventToIframe({type:pe.HostFrameBox,data:{width:e,height:t}}))})},this.placeInVisibleBand=()=>{const e=this.visibleBand;if(!this.iframe||!e||this.hostAlignedTop||"embed"===this.config.widget_position)return;if(this.iframe.classList.contains("full"))return void this.placeFullInBand(e);if(e.bottom>=window.innerHeight-1)return this.iframe.style.removeProperty("top"),this.iframe.style.removeProperty("bottom"),this.iframe.style.removeProperty("transition"),this.iframe.style.removeProperty("transform"),this.iframe.style.removeProperty("will-change"),void(this.placedTop=null);null==this.frameHeight&&(this.frameHeight=this.iframe.getBoundingClientRect().height);const t=Math.max(0,e.bottom-this.frameHeight);if(t!==this.placedTop){if(this.placedTop=t,e.exact)return this.iframe.style.top="0px",this.iframe.style.bottom="auto",this.iframe.style.willChange="transform",this.iframe.style.transition="none",void(this.iframe.style.transform=`translateY(${t}px)`);this.iframe.style.removeProperty("transform"),this.iframe.style.removeProperty("will-change"),this.iframe.style.transition="top 0.25s linear",this.iframe.style.top=`${t}px`,this.iframe.style.bottom="auto"}},this.placeFullInBand=e=>{e.top<=1&&e.bottom>=window.innerHeight-1?this.clearFullBandPin():(this.iframe.style.transition=e.exact?"":"top 0.25s linear, height 0.25s linear",this.iframe.style.setProperty("--moveo-full-top",`${e.top}px`),this.iframe.style.setProperty("--moveo-full-height",e.bottom-e.top+"px"))},this.clearFullBandPin=()=>{this.iframe.style.removeProperty("--moveo-full-top"),this.iframe.style.removeProperty("--moveo-full-height")},this.config=e,this.id=e.widgetId,this.isNested=!(W("window.top",()=>window===window.top)??1),this.initialized=!1,this.log=i()(`moveo:web-client:${this.id}`),this.iframe=this.createIframe(),this.stopHostContext=null,this.stopActivityTracking=null,this.scrollTracker=null,this.stopLocationTracking=null,this.sentHostContext=null,this.sentReplaySubscription=null,this.stopWindowListeners=null,this.widgetLoadedEvent=null,this.stopVisibleBand=null,this.visibleBand=null,this.hostAlignedTop=!1,this.frameHeight=null,this.placedTop=null}createIframe(){const e=document.createElement("iframe");return e.width="1px",e.height="1px",e.title="Moveo webchat",e.id=this.id,e.name=this.id,e.allow="geolocation; microphone; autoplay",e.style.border="0",e.classList.add("web-client-container"),"embed"===this.config.widget_position&&e.classList.add("embed"),e.setAttribute("src",(e=>{let t="";const n=document.querySelectorAll("script");n&&n.forEach(e=>{e.src?.includes(u)&&(t=u),e.src?.includes(d)&&(t=d),e.src?.match(/@moveo-ai\/web-client.*next/)&&(t="https://web-client.dev.moveo.ai")});const{origin:o}=window.location;return t||(t=o.match(/^https?:\/\/(localhost|127\.0\.0\.1|\[::1\])(:\d+)?$/)||o.match(/^https:\/\/([a-z0-9-]+\.)?web-7ii\.pages\.dev$/)||o.match(/web-client.*moveo-ai\.vercel\.app/)||o.match(/web.*moveo\.ai/)?o:d),`${t}?widgetId=${e}`})(this.id)),e}handleEvents(e,t){return n=>{const o=m(this.id,n);if(o)switch(o.type){case me.IframeLoaded:this.sendEventToIframe({type:pe.SetConfig,data:this.config}),this.config.feature_flags?.fiserv_web_activity&&!this.stopHostContext&&this.trackHostContext(),this.sendHostContext(),this.sendSessionReplayHandoff();break;case me.SessionCreated:case me.SessionReconnected:this.sentHostContext=null,this.sendHostContext();break;case me.IframeError:return this.stopInstrumentation(),this.stopWindowListeners?.(),this.stopWindowListeners=null,t(o.data);case me.UserWayInit:this.initUserway(),this.detectUserway();break;case me.WidgetLoaded:setTimeout(()=>{this.detectMobile(),e(this)},0),this.sentHostContext=null,this.sentReplaySubscription=null,this.sendHostContext(),this.sendSessionReplayHandoff(),this.widgetLoadedEvent={timestamp:(new Date).toISOString(),event:"widget_loaded",properties:{}};break;case me.WidgetError:this.notify(o);break;case me.Opened:(o.data.isFull||o.data.is_mobile||h())&&(this.iframe.classList.add("full"),this.placeInVisibleBand());break;case me.Closed:(o.data.isFull||h())&&(this.iframe.classList.remove("full"),this.clearFullBandPin(),this.frameHeight=null,this.placeInVisibleBand());break;case me.Resize:{this.iframe.style.width=o.data.width,this.iframe.style.height=o.data.height,this.iframe.style.left=o.data.left,null!=o.data.top&&(this.iframe.style.top=o.data.top,this.iframe.style.bottom="auto",this.hostAlignedTop=!0);const e=Number.parseFloat(o.data.height);Number.isFinite(e)&&e>0?(this.frameHeight=e,this.placeInVisibleBand()):this.frameHeight=null,this.sendFrameBox();break}default:this.log(`Unhandle event: ${o.type}`)}}}stopInstrumentation(){this.stopHostContext?.(),this.stopHostContext=null,this.stopActivityTracking?.(),this.stopActivityTracking=null,this.scrollTracker?.stop(),this.scrollTracker=null,this.stopLocationTracking?.(),this.stopLocationTracking=null,this.stopVisibleBand?.(),this.stopVisibleBand=null,this.visibleBand=null}resolveEmbedElement(){const e=this.config?.element||null;if("string"!=typeof e)return e;const t=document.getElementById(e);if(!t)throw new Error(`Element with id: ${e} not found`);return t}init(){return new Promise((e,t)=>{if(v(navigator.userAgent))throw new Error(`Widget ${this.id} was not initialized because user-agent is a bot`);if(this.initialized)throw new Error(`Widget ${this.id} was already initialized`);let n;n="embed"===this.config.widget_position?this.resolveEmbedElement():window.document.querySelector("body");const o=this.handleEvents(e,t),i=R(this.detectMobile,100);var s;window.addEventListener("message",o),window.addEventListener("resize",i),this.stopWindowListeners=()=>{window.removeEventListener("message",o),window.removeEventListener("resize",i)},n?.appendChild(this.iframe),this.stopActivityTracking=(e=>{const t=[],n=function(e,t,n){var o=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return g(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),R(e,t,{leading:o,maxWait:t,trailing:i})}(e,3e3),o=(e,o)=>{window.addEventListener(e,n,o),t.push(()=>window.removeEventListener(e,n,o))},i={passive:!0};return o("load",i),o("mousemove",i),o("mousedown",i),o("touchstart",i),o("touchmove",i),o("click",i),o("keydown",i),o("scroll",{capture:!0,passive:!0}),()=>{t.forEach(e=>e()),t.length=0,n.cancel()}})(this.updateLastActivity),this.config.teaser&&(this.scrollTracker=(e=>{let t,n=!1;const o=()=>{n=!1,e(!1)},i=()=>{n||(n=!0,e(!0)),clearTimeout(t),t=setTimeout(o,1e3)},s={capture:!0,passive:!0};return window.addEventListener("scroll",i,s),{pulse:i,stop:()=>{window.removeEventListener("scroll",i,s),clearTimeout(t)}}})(e=>this.sendEventToIframe({type:pe.HostScroll,data:{scrolling:e}}))),this.config.teaser?.pages?.length&&(this.stopLocationTracking=de(()=>this.sendEventToIframe({type:pe.HostLocation,data:{href:window.location.href}}))),this.isNested&&"embed"!==this.config.widget_position&&(this.stopVisibleBand=(s=e=>{const t=null!=e&&(this.visibleBand?.top!==e.top||this.visibleBand?.bottom!==e.bottom);this.visibleBand=e,this.placeInVisibleBand(),t&&this.scrollTracker?.pulse()},W("visible band",()=>(e=>{const t=(()=>{const e=[];try{let t=window;for(;t!==t.parent;){if(!t.frameElement)return null;t=t.parent,t.innerHeight,e.push(t)}}catch{return null}return e})();if(!t||0===t.length)return null;const n=()=>{let e=0,t=window.innerHeight,n=0,o=window;for(;o!==o.parent;){const i=o.frameElement;if(!i)return null;n+=i.getBoundingClientRect().top+i.clientTop,o=o.parent,e=Math.max(e,-n),t=Math.min(t,o.innerHeight-n)}return t>e?{top:e,bottom:t,exact:!0}:null};let o=null;const i=()=>{const t=W("ancestor geometry",n)??null;!t||o&&o.top===t.top&&o.bottom===t.bottom||(o=t,e(t))},s={capture:!0,passive:!0};for(const e of t)e.addEventListener("scroll",i,s),e.addEventListener("resize",i);return window.addEventListener("resize",i),i(),()=>{window.removeEventListener("resize",i);for(const e of t)try{e.removeEventListener("scroll",i,s),e.removeEventListener("resize",i)}catch{}}})(s))||(W("visible band ladder",()=>(e=>{const t=document.createElement("div");t.style.cssText="position:absolute;top:0;left:0;width:0;height:0;pointer-events:none";const n=document.createElement("div");n.dataset.bandProbe="";const o=()=>{const e=t.parentNode;e?.removeChild(t);const n=W("document height",()=>Math.max(document.documentElement.scrollHeight,window.innerHeight));return e?.appendChild(t),n&&n>0?n:null},i=new Set;let s=null,r=0,a=600,c=!1;const l=new IntersectionObserver(t=>{for(const e of t){const t=Number(e.target.dataset.y);e.isIntersecting?i.add(t):i.delete(t);const n=e.rootBounds?.height;n&&(a=n)}C(),(()=>{if(c)return;if(0===i.size)return;const t=W("scrollY",()=>window.scrollY)??0;let n=1/0,o=-1/0;for(const e of i)e<n&&(n=e),e>o&&(o=e);n=Math.max(0,n-t),o-=t,o<=n||s&&s.top===n&&s.bottom===o||(s={top:n,bottom:o,exact:!1},e(s))})()},{root:null,threshold:0});let d=null,u=null,h=0,m=null;const p=new IntersectionObserver(t=>{const n=(e=>{const t=e.intersectionRect,n=e.boundingClientRect;if(!e.isIntersecting||!t||!n)return null;const o=W("scrollY",()=>window.scrollY)??0,i=t.top-n.top-o,s=t.bottom-n.top-o;if(!Number.isFinite(i)||!Number.isFinite(s)||s<=i)return null;const r=performance.now(),a=Number.isFinite(e.time)&&r-e.time>-5&&r-e.time<200?e.time:r;return{top:Math.max(0,i),bottom:s,at:a}})(t[t.length-1]);if(!n)return;c||(c=!0,ue("browser clips the probe; exact bands from here on"));const o=u?.top===n.top&&u.bottom===n.bottom;return o&&null!==g?void 0:null!==g?(d=n,void(v=performance.now()+500)):void(o&&s?.exact&&s.top===n.top&&s.bottom===n.bottom||(u={t:n.at,top:n.top,bottom:n.bottom},h=0,m=n.bottom,s={top:n.top,bottom:n.bottom,exact:!0},e(s),C()))},{root:null,threshold:0}),f=()=>{p.unobserve(n),p.observe(n)};let v=0,g=null,y=0,b=0;const w=()=>{g=null,N("visible band pump",()=>{const t=performance.now(),n=b?Math.min(50,t-b):16;if(b=t,null!==m&&(m+=h*n),d){y=0;const e=d;d=null,(e=>{const t=u;u={t:e.at,top:e.top,bottom:e.bottom};const n=t?e.at-t.t:0;if(!t||null===m||n<4||n>120)return m=e.bottom,void(h=0);let o=(e.bottom-t.bottom)/n;o=Math.max(h-.3*n,Math.min(h+.3*n,o)),h=0!==h&&Math.sign(o)!==Math.sign(h)||0===h?o:h+.4*(o-h),m+=.35*(e.bottom-m)})(e)}else if(y||(y=t),t-y>24/Math.max(.1,Math.abs(h))&&(h*=Math.exp(-n/50),Math.abs(h)<.02&&(h=0),0===h&&u&&null!==m&&(m+=(u.bottom-m)*(1-Math.exp(-n/40)),Math.abs(m-u.bottom)<.75&&(m=u.bottom))),u&&null!==m&&0!==h){const e=u.bottom+32*Math.sign(h);m=h>0?Math.min(m,e):Math.max(m,e)}if(null!==m&&u){const t=Math.max(-160,Math.min(160,8*h)),o=u.bottom-u.top;let i=m+t;if(s?.exact){const e=Math.abs(h)*n*1.75+6;i=Math.max(s.bottom-e,Math.min(s.bottom+e,i))}const r=(e=>{const t=Math.max(0,e.top+0);let n=e.bottom+0;const o=window.innerHeight-2;return e.bottom<=o&&n>o&&(n=o),n<=t?null:{top:t,bottom:n,exact:!0}})({top:Math.max(0,i-o),bottom:i});r&&((t,n)=>{s?.exact&&s.top===t&&s.bottom===n||(s={top:t,bottom:n,exact:!0},e(s))})(r.top,r.bottom)}t>=v||(f(),g=requestAnimationFrame(w))})},C=()=>{v=performance.now()+500,null===g&&"function"==typeof requestAnimationFrame&&(y=0,b=0,f(),g=requestAnimationFrame(w))},x=e=>{r=e;const o=((e,t)=>{const n=Math.max(16,Math.ceil(e/200)),o=Math.max(16,Math.floor(.5*t));return Math.max(Math.min(n,o),Math.ceil(e/2e3))})(r,a);t.replaceChildren(),i.clear(),n.style.cssText=`position:absolute;top:0;left:0;width:1px;height:${r}px;pointer-events:none`,t.appendChild(n);const s=e=>{const n=document.createElement("div");n.dataset.y=String(e),n.style.cssText=`position:absolute;top:${e}px;left:0;width:1px;height:1px`,t.appendChild(n)};let c=0;for(;c<r-1;c+=o)s(c);s(Math.max(0,r-1)),l.disconnect();for(const e of t.children)e!==n&&l.observe(e);p.disconnect(),p.observe(n)};let E=!1;const I=()=>{N("visible band rebuild",()=>{const e=E?o():null;null!==e&&e!==r&&x(e)})},M=()=>{N("visible band attach",()=>{(document.body??document.documentElement).appendChild(t),E=!0;const e=o();null!==e&&x(e)})};return document.body?M():document.addEventListener("DOMContentLoaded",M,{once:!0}),window.addEventListener("resize",I),()=>{null!==g&&"function"==typeof cancelAnimationFrame&&cancelAnimationFrame(g),g=null,v=0,d=null,u=null,h=0,m=null,b=0,window.removeEventListener("resize",I),document.removeEventListener("DOMContentLoaded",M),l.disconnect(),p.disconnect(),t.remove(),i.clear(),s=null}})(s))??(()=>{})))),this.initialized=!0,this.detectMobile()})}sendEventToIframe(e){this.iframe&&this.iframe.contentWindow?(this.log(`Event to iframe: ${e.type}`,e),e.type===pe.SetConfig&&e.data?.element&&delete e.data.element,this.iframe.contentWindow.postMessage({...e,type:`${this.id}${e.type}`},"*")):this.log("Error: Cannot find iframe to send event")}notify(e){this.log(`notify ${e.type}:`,e)}notifyParent(e,t){window.addEventListener("message",n=>{const o=m(this.id,n);if(o&&(this.log(`Event from iframe: ${o.type}`,o),o.type===e)){if("data"in o&&"object"==typeof o.data&&null!==o.data&&"skipInstanceCallback"in o.data)return;t("data"in o?o.data:void 0)}})}openWindow(){this.sendEventToIframe({type:pe.Open})}async destroy(){var e;this.closeConversation({hide:!0}),this.stopInstrumentation(),await(e=4e3,new Promise(t=>setTimeout(t,e)));const t=document.getElementById(this.id);t&&(t.remove(),this.initialized=!1),this.stopWindowListeners?.(),this.stopWindowListeners=null,this.sentHostContext=null,this.sentReplaySubscription=null,this.widgetLoadedEvent=null}closeConversation({hide:e}){this.sendEventToIframe({type:pe.CloseConversation,data:{hide:e}})}closeWindow(){this.sendEventToIframe({type:pe.Close})}sendMessage(e){this.sendEventToIframe({type:pe.SendMessage,data:e})}showTeaserMessage(e){this.sendEventToIframe({type:pe.ShowTeaserMessage,data:e?{text:e}:void 0})}updateContext(e){this.sendEventToIframe({type:pe.UpdateContext,data:e})}updateHostContext(e){this.sendEventToIframe({type:pe.UpdateHostContext,data:e})}setCSSVariables(e){const t=e["--moveo-z-index"];void 0!==t&&this.iframe&&(t?this.iframe.style.setProperty("--moveo-z-index",t):this.iframe.style.removeProperty("--moveo-z-index")),this.sendEventToIframe({type:pe.SetCssVariables,data:e})}setLocale(e){this.sendEventToIframe({type:pe.SetLocale,data:e})}onSessionCreated(e){this.notifyParent(me.SessionCreated,e)}onSessionClosed(e){this.notifyParent(me.SessionClosed,e)}onConversationClosed(e){this.notifyParent(me.ConversationClosed,e)}onSessionReconnected(e){this.notifyParent(me.SessionReconnected,e)}onNoUnreadMessages(e){this.notifyParent(me.ConversationNoUnreadMessages,e)}onUnreadMessages(e){this.notifyParent(me.ConversationUnreadMessages,e)}onLinkClicked(e){this.notifyParent(me.LinkClicked,e)}onUserActivity(e){this.notifyParent(me.UserActivity,e)}onAnalyticsEvent(e){this.notifyParent(me.AnalyticsEvent,e),this.widgetLoadedEvent&&e(this.widgetLoadedEvent)}onWebchatOpened(e){this.notifyParent(me.Opened,e)}onWebchatClosed(e){this.notifyParent(me.Closed,e)}onMemberLeave(e){this.notifyParent(me.MemberLeave,e)}}var be=n.cjs(function(e,t){var n=[];function o(e){for(var t=-1,o=0;o<n.length;o++)if(n[o].identifier===e){t=o;break}return t}function i(e,t){for(var i={},r=[],a=0;a<e.length;a++){var c=e[a],l=t.base?c[0]+t.base:c[0],d=i[l]||0,u="".concat(l," ").concat(d);i[l]=d+1;var h=o(u),m={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==h)n[h].references++,n[h].updater(m);else{var p=s(m,t);t.byIndex=a,n.splice(a,0,{identifier:u,updater:p,references:1})}r.push(u)}return r}function s(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,t){var s=i(e=e||[],t=t||{});return function(e){e=e||[];for(var r=0;r<s.length;r++){var a=o(s[r]);n[a].references--}for(var c=i(e,t),l=0;l<s.length;l++){var d=o(s[l]);0===n[d].references&&(n[d].updater(),n.splice(d,1))}s=c}}}),we=n.n(be),Ce=n.cjs(function(e,t){e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var o="";n.supports&&(o+="@supports (".concat(n.supports,") {")),n.media&&(o+="@media ".concat(n.media," {"));var i=void 0!==n.layer;i&&(o+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),o+=n.css,i&&(o+="}"),n.media&&(o+="}"),n.supports&&(o+="}");var s=n.sourceMap;s&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(s))))," */")),t.styleTagTransform(o,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}}),xe=n.n(Ce),Ee=n.cjs(function(e,t){var n={};e.exports=function(e,t){var o=function(e){if(void 0===n[e]){var t=document.querySelector(e);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(e){t=null}n[e]=t}return n[e]}(e);if(!o)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");o.appendChild(t)}}),Ie=n.n(Ee),Me=n.cjs(function(e,t){e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}}),Fe=n.n(Me),Se=n.cjs(function(e,t){e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}}),Ae=n.n(Se),Te=n.cjs(function(e,t){e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}}),ke=n.n(Te),Le=n(1178),Oe={};Oe.styleTagTransform=ke(),Oe.setAttributes=Fe(),Oe.insert=Ie().bind(null,"head"),Oe.domAPI=xe(),Oe.insertStyleElement=Ae(),we()(Le.A,Oe),Le.A&&Le.A.locals&&Le.A.locals;let je=i()("moveo:web-client");const Pe=async e=>{const t=`moveo-${((e=21)=>{let t="",n=crypto.getRandomValues(new Uint8Array(e|=0));for(;e--;)t+="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict"[63&n[e]];return t})(5)}`,n=window.location.href;if(je=je.extend(`:${t}`),!e?.integrationId)throw new Error("integrationId is required.\n Call MoveoAI.init({ integrationId: YOUR_INTEGRATION_HERE })");const o=await(async(e,t)=>{const n=t||l,o=await fetch(`${n}/v1/web/${e}`,{headers:{"Cache-Control":"no-cache"}}),i=await o.text();if(o.ok)return JSON.parse(i);throw new Error(`Error loading config from: ${n}/${e}`)})(e.integrationId,e.host);je("Loaded integration configuration:",o);const{feature_flags:i,...s}=e;return void 0!==i&&je("feature_flags is server-owned; the caller value is ignored"),{...a({...o},s),clientUrl:n,widgetId:t}},He=async e=>{await new Promise(e=>{if("complete"===document.readyState)return e();window.addEventListener("load",()=>e())});const t=await Pe(e);if(je("Configuration:",t),"embed"===t.widget_position&&!t.element)throw new Error("element is not defined but required by embed widget");const n=new ye({config:t});je("Initializing");const o=await n.init();return je("Initialized"),o}}};const t={};function n(o){const i=t[o];if(void 0!==i)return i.exports;const s=t[o]={id:o,exports:{}};return e[o](s,s.exports,n),s.exports}return n.n=e=>{const t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},n.d=(e,t)=>{if(Array.isArray(t))for(var o=0;o<t.length;){var i=t[o++],s=t[o++];n.o(e,i)?0===s&&o++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[o++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)n.o(t,i)&&!n.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.cjs=e=>{const t={exports:{}};return e.call(t.exports,t,t.exports),t.exports},n.nc=void 0,n(4724)})());
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @moveo-ai/web-client v0.113.0-true.4
3
+ * @moveo-ai/web-client v0.113.0-true.6
4
4
  * Copyright (c) Moveo.ai (TM)
5
5
  *
6
6
  */
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  *
3
- * @moveo-ai/web-client v0.113.0-true.4
3
+ * @moveo-ai/web-client v0.113.0-true.6
4
4
  * Copyright (c) Moveo.ai (TM)
5
5
  *
6
6
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moveo-ai/web-client",
3
- "version": "0.113.0-true.4",
3
+ "version": "0.113.0-true.6",
4
4
  "description": "Client side library to load the moveo chat widget and connect it with your agent",
5
5
  "main": "dist/web-client.min.js",
6
6
  "types": "web-client.d.ts",
@@ -13,7 +13,7 @@
13
13
  "lint": "npm run lint:js && npm run lint:css",
14
14
  "lint:js": "eslint .",
15
15
  "lint:css": "npx stylelint \"{src,test}/**/*.css\"",
16
- "prepare": "npm run build",
16
+ "prepare": "node scripts/prepare.mjs",
17
17
  "prettier": "prettier --write \"{src,test}/**/*.{ts,tsx,css,json}\"",
18
18
  "setup:certs": "node scripts/setup-certs.mjs",
19
19
  "start": "webpack serve",
package/web-client.d.ts CHANGED
@@ -84,20 +84,24 @@ export type Context = {
84
84
  /** Normalized before sending: trimmed, transliterated, deduplicated. */
85
85
  tags?: string[];
86
86
  /**
87
- * Host-page identity (`qm_*`, `client_*`) is shipped by the widget when
87
+ * Host-page identity, shipped as plain context vars when
88
88
  * `feature_flags.fiserv_web_activity` is on. `qm_session_id` comes from the
89
- * in-frame session replay, never the host page.
89
+ * in-frame session replay, never the host page. `null` on `qm_subscription`
90
+ * and `qm_user_id` is the opt-out tombstone.
90
91
  */
92
+ qm_partner_id?: string;
93
+ qm_client_id?: string;
94
+ qm_config_id?: string;
95
+ qm_page_template?: string;
96
+ qm_subscription?: string | null;
97
+ qm_user_id?: string | null;
98
+ qm_session_id?: string;
99
+ /** The walk (`client_*`) and the widget's own page fields. Nothing vendor-specific. */
91
100
  global?: {
92
101
  client_url?: string;
93
102
  ref?: string;
94
103
  disclaimer_accepted?: boolean;
95
104
  visitor_form_completed?: boolean;
96
- qm_partner_id?: string;
97
- qm_client_id?: string;
98
- qm_config_id?: string;
99
- qm_page_template?: string;
100
- qm_session_id?: string;
101
105
  client_path?: string;
102
106
  client_journey?: string;
103
107
  [key: string]: unknown;
@@ -108,12 +112,20 @@ export type Context = {
108
112
  export interface WidgetController {
109
113
  openWindow(): void;
110
114
  closeWindow(): void;
111
- /** Ends the conversation; the widget hides unless `hide` is `false`. */
115
+ /**
116
+ * Ends the conversation; the widget hides unless `hide` is `false`. Any
117
+ * context update still queued is sent first.
118
+ */
112
119
  closeConversation(options: { hide?: boolean }): void;
113
120
  /** Sends `text` into the conversation as the visitor. */
114
121
  sendMessage(message: { text: string }): void;
115
122
  /** Shows the teaser bubble, with the configured message when none is given. */
116
123
  showTeaserMessage(message?: string): void;
124
+ /**
125
+ * Merges `context` into the conversation. Calls inside a 300 ms window
126
+ * coalesce into one update; arrays replace the stored value. A call made
127
+ * before a conversation exists is held until the session opens.
128
+ */
117
129
  updateContext(context: Context): void;
118
130
  /** Overrides widget theme variables, e.g. `{ '--color-accent': '#f00' }`. */
119
131
  setCSSVariables(variables: Record<string, string>): void;