@ada-support/embed2 1.0.37 → 1.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -67,6 +67,18 @@ yarn bundle-report:legacy
67
67
 
68
68
  You will notice that many tabs are opened when running this command. Because Embed 2 is split between many sub-applications (representing framed components), a bundle analyzer is run for each application. The total bundle size is equal to sum of bundle sizes, plus external dependencies.
69
69
 
70
+ ## Connecting to an external bot
71
+ In certain scenarios it can be useful to run Embed 2 locally, but connect to a bot that exists on one of our external environments (`production`, `staging`, `dev`, `dev2`). To achieve this follow the steps below.
72
+ 1. open example/index.html and modify the `domain` parameter in the settings dictionary to match the environment the external bot exists on, should be one of `ada-dev`, `ada-dev2`, `ada-stage`, `ada` for dev, dev2, stage, or production respectively.
73
+ 2. open src/common/helpers/url/index.ts and modify the `getURL` function to return early after constructing the `prodURL`
74
+ ```javascript
75
+ export function getURL({
76
+ ...
77
+ const prodUrl = `https://${handle}${clusterString}.${domainString}.support/${name}/${routeString}${questionSym}${queryString}`;
78
+ return prodURL
79
+ })
80
+ ```
81
+ After starting Embed 2, access the example page by entering `http://<bot-handle>.localhost:9000` and replace <bot-handle> with the bot handle as it exists on the external environment.
70
82
  ## Testing
71
83
 
72
84
  ### Unit testing
@@ -110,44 +122,31 @@ yarn ci-cypress
110
122
 
111
123
  ### Steps to Deploy
112
124
 
113
- Follow instructions listed on [this notion page](https://www.notion.so/adasupport/Deploying-Embed-2-71e2775038cd47c78732bf04bf1d0525)
125
+ Follow instructions listed on [this notion page](https://www.notion.so/adasupport/Embed-2-deployment-runbook-fb81e8a28cb14ef1a607059914fb875a)
114
126
 
115
- ### Beta
116
- Deployment of the beta script is handled automatically by CircleCI when merging a branch into `master`. Once merged, two different scripts will be added to the Ada CDN:
127
+ Deployment of the static script is handled automatically by CircleCI when merging a branch into `master`. Once merged, two script will be added to the Ada CDN:
117
128
 
118
129
  ```
119
- # Verisoned
120
-
121
- https://static.ada.support/embed-beta/legacy/entry/<FIRST 7 CHAR OF COMMIT HASH>/embed2.beta.js
130
+ https://static.ada.support/embed2.<VERSION>.js
122
131
  ```
123
132
 
124
- And:
125
-
133
+ #### Example
126
134
  ```
127
- # Verisonless
128
-
129
- https://static.ada.support/embed2.beta.js
135
+ https://static.ada.support/embed2.1.0.35.js
130
136
  ```
131
137
 
132
- Before deploying to production, you should manually smoke test to make sure the beta script is working [here](https://jsfiddle.net/gn3ukc4r/show/).
133
-
134
- ### Production
135
- Once a beta script has been created, a production deployment will be "held" until approved by an Embed 2 admin. To approve the deploy, open the CircleCI job in question, and click on "Approve Job". You can read more about manual approval [here](https://circleci.com/docs/2.0/workflows/#holding-a-workflow-for-a-manual-approval).
138
+ Once static script is created, production deployment will be "held" until approved by an Embed 2 admin. To approve the deploy, open the CircleCI job in question, and click on "Approve Job". You can read more about manual approval [here](https://circleci.com/docs/2.0/workflows/#holding-a-workflow-for-a-manual-approval).
136
139
 
137
- Deploying production will create the following scripts:
140
+ Deploying production will create the versionless script
138
141
 
139
142
  ```
140
- # Verisoned
141
-
142
- https://static.ada.support/embed/legacy/entry/<FIRST 7 CHAR OF COMMIT HASH>/embed2.js
143
+ https://static.ada.support/embed2.js
143
144
  ```
144
145
 
145
- And:
146
+ Deploying to other cluster will create a script in following format.
146
147
 
147
148
  ```
148
- # Verisonless
149
-
150
- https://static.ada.support/embed2.js
149
+ https://static.ada.support/embed2.<CLUSTER>.js
151
150
  ```
152
151
 
153
152
  If you require access to the [Embed Procuction Deploys](https://github.com/orgs/AdaSupport/teams/embed-production-deploys) team (needed for production deployment), please reach out to an Engineering admin.
@@ -20,6 +20,7 @@ export declare class Embed {
20
20
  unmountCallback: () => void;
21
21
  initializationReject: (error: Error) => void;
22
22
  initializationResolve: () => void;
23
+ private debounceCampaignTrigger;
23
24
  static embed2Version: string;
24
25
  constructor(adaSettings: StartOptions, unmountCallback: () => void);
25
26
  renderPreactApp(): void;
@@ -802,6 +802,9 @@ var get_own_property_descriptor_default = /*#__PURE__*/__webpack_require__.n(get
802
802
  // EXTERNAL MODULE: ./node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js
803
803
  var get_own_property_descriptors = __webpack_require__(9649);
804
804
  var get_own_property_descriptors_default = /*#__PURE__*/__webpack_require__.n(get_own_property_descriptors);
805
+ // EXTERNAL MODULE: ./node_modules/lodash.debounce/index.js
806
+ var lodash_debounce = __webpack_require__(1296);
807
+ var lodash_debounce_default = /*#__PURE__*/__webpack_require__.n(lodash_debounce);
805
808
  ;// CONCATENATED MODULE: ./node_modules/preact/dist/preact.module.js
806
809
  var n,l,u,i,t,r,o,f={},e=[],c=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function s(n,l){for(var u in l)n[u]=l[u];return n}function a(n){var l=n.parentNode;l&&l.removeChild(n)}function v(n,l,u){var i,t=arguments,r={};for(i in l)"key"!==i&&"ref"!==i&&(r[i]=l[i]);if(arguments.length>3)for(u=[u],i=3;i<arguments.length;i++)u.push(t[i]);if(null!=u&&(r.children=u),"function"==typeof n&&null!=n.defaultProps)for(i in n.defaultProps)void 0===r[i]&&(r[i]=n.defaultProps[i]);return h(n,r,l&&l.key,l&&l.ref,null)}function h(l,u,i,t,r){var o={type:l,props:u,key:i,ref:t,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:r};return null==r&&(o.__v=o),n.vnode&&n.vnode(o),o}function y(){return{current:null}}function p(n){return n.children}function d(n,l){this.props=n,this.context=l}function _(n,l){if(null==l)return n.__?_(n.__,n.__.__k.indexOf(n)+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return"function"==typeof n.type?_(n):null}function k(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return k(n)}}function w(l){(!l.__d&&(l.__d=!0)&&u.push(l)&&!m.__r++||t!==n.debounceRendering)&&((t=n.debounceRendering)||i)(m)}function m(){for(var n;m.__r=u.length;)n=u.sort(function(n,l){return n.__v.__b-l.__v.__b}),u=[],n.some(function(n){var l,u,i,t,r,o,f;n.__d&&(o=(r=(l=n).__v).__e,(f=l.__P)&&(u=[],(i=s({},r)).__v=i,t=T(f,r,i,l.__n,void 0!==f.ownerSVGElement,null,u,null==o?_(r):o),$(u,r),t!=o&&k(r)))})}function g(n,l,u,i,t,r,o,c,s,v){var y,d,k,w,m,g,b,A=i&&i.__k||e,P=A.length;for(s==f&&(s=null!=o?o[0]:P?_(i,0):null),u.__k=[],y=0;y<l.length;y++)if(null!=(w=u.__k[y]=null==(w=l[y])||"boolean"==typeof w?null:"string"==typeof w||"number"==typeof w?h(null,w,null,null,w):Array.isArray(w)?h(p,{children:w},null,null,null):null!=w.__e||null!=w.__c?h(w.type,w.props,w.key,null,w.__v):w)){if(w.__=u,w.__b=u.__b+1,null===(k=A[y])||k&&w.key==k.key&&w.type===k.type)A[y]=void 0;else for(d=0;d<P;d++){if((k=A[d])&&w.key==k.key&&w.type===k.type){A[d]=void 0;break}k=null}m=T(n,w,k=k||f,t,r,o,c,s,v),(d=w.ref)&&k.ref!=d&&(b||(b=[]),k.ref&&b.push(k.ref,null,w),b.push(d,w.__c||m,w)),null!=m?(null==g&&(g=m),s=x(n,w,k,A,o,m,s),"option"==u.type?n.value="":"function"==typeof u.type&&(u.__d=s)):s&&k.__e==s&&s.parentNode!=n&&(s=_(k))}if(u.__e=g,null!=o&&"function"!=typeof u.type)for(y=o.length;y--;)null!=o[y]&&a(o[y]);for(y=P;y--;)null!=A[y]&&I(A[y],A[y]);if(b)for(y=0;y<b.length;y++)H(b[y],b[++y],b[++y])}function b(n){return null==n||"boolean"==typeof n?[]:Array.isArray(n)?e.concat.apply([],n.map(b)):[n]}function x(n,l,u,i,t,r,o){var f,e,c;if(void 0!==l.__d)f=l.__d,l.__d=void 0;else if(t==u||r!=o||null==r.parentNode)n:if(null==o||o.parentNode!==n)n.appendChild(r),f=null;else{for(e=o,c=0;(e=e.nextSibling)&&c<i.length;c+=2)if(e==r)break n;n.insertBefore(r,o),f=o}return void 0!==f?f:r.nextSibling}function A(n,l,u,i,t){var r;for(r in u)"children"===r||"key"===r||r in l||C(n,r,null,u[r],i);for(r in l)t&&"function"!=typeof l[r]||"children"===r||"key"===r||"value"===r||"checked"===r||u[r]===l[r]||C(n,r,l[r],u[r],i)}function P(n,l,u){"-"===l[0]?n.setProperty(l,u):n[l]="number"==typeof u&&!1===c.test(l)?u+"px":null==u?"":u}function C(n,l,u,i,t){var r,o,f,e,c;if(t?"className"===l&&(l="class"):"class"===l&&(l="className"),"style"===l)if(r=n.style,"string"==typeof u)r.cssText=u;else{if("string"==typeof i&&(r.cssText="",i=null),i)for(e in i)u&&e in u||P(r,e,"");if(u)for(c in u)i&&u[c]===i[c]||P(r,c,u[c])}else"o"===l[0]&&"n"===l[1]?(o=l!==(l=l.replace(/Capture$/,"")),f=l.toLowerCase(),l=(f in n?f:l).slice(2),u?(i||n.addEventListener(l,N,o),(n.l||(n.l={}))[l]=u):n.removeEventListener(l,N,o)):"list"!==l&&"tagName"!==l&&"form"!==l&&"type"!==l&&"size"!==l&&!t&&l in n?n[l]=null==u?"":u:"function"!=typeof u&&"dangerouslySetInnerHTML"!==l&&(l!==(l=l.replace(/^xlink:?/,""))?null==u||!1===u?n.removeAttributeNS("http://www.w3.org/1999/xlink",l.toLowerCase()):n.setAttributeNS("http://www.w3.org/1999/xlink",l.toLowerCase(),u):null==u||!1===u&&!/^ar/.test(l)?n.removeAttribute(l):n.setAttribute(l,u))}function N(l){this.l[l.type](n.event?n.event(l):l)}function z(n,l,u){var i,t;for(i=0;i<n.__k.length;i++)(t=n.__k[i])&&(t.__=n,t.__e&&("function"==typeof t.type&&t.__k.length>1&&z(t,l,u),l=x(u,t,t,n.__k,null,t.__e,l),"function"==typeof n.type&&(n.__d=l)))}function T(l,u,i,t,r,o,f,e,c){var a,v,h,y,_,k,w,m,b,x,A,P=u.type;if(void 0!==u.constructor)return null;(a=n.__b)&&a(u);try{n:if("function"==typeof P){if(m=u.props,b=(a=P.contextType)&&t[a.__c],x=a?b?b.props.value:a.__:t,i.__c?w=(v=u.__c=i.__c).__=v.__E:("prototype"in P&&P.prototype.render?u.__c=v=new P(m,x):(u.__c=v=new d(m,x),v.constructor=P,v.render=L),b&&b.sub(v),v.props=m,v.state||(v.state={}),v.context=x,v.__n=t,h=v.__d=!0,v.__h=[]),null==v.__s&&(v.__s=v.state),null!=P.getDerivedStateFromProps&&(v.__s==v.state&&(v.__s=s({},v.__s)),s(v.__s,P.getDerivedStateFromProps(m,v.__s))),y=v.props,_=v.state,h)null==P.getDerivedStateFromProps&&null!=v.componentWillMount&&v.componentWillMount(),null!=v.componentDidMount&&v.__h.push(v.componentDidMount);else{if(null==P.getDerivedStateFromProps&&m!==y&&null!=v.componentWillReceiveProps&&v.componentWillReceiveProps(m,x),!v.__e&&null!=v.shouldComponentUpdate&&!1===v.shouldComponentUpdate(m,v.__s,x)||u.__v===i.__v){v.props=m,v.state=v.__s,u.__v!==i.__v&&(v.__d=!1),v.__v=u,u.__e=i.__e,u.__k=i.__k,v.__h.length&&f.push(v),z(u,e,l);break n}null!=v.componentWillUpdate&&v.componentWillUpdate(m,v.__s,x),null!=v.componentDidUpdate&&v.__h.push(function(){v.componentDidUpdate(y,_,k)})}v.context=x,v.props=m,v.state=v.__s,(a=n.__r)&&a(u),v.__d=!1,v.__v=u,v.__P=l,a=v.render(v.props,v.state,v.context),v.state=v.__s,null!=v.getChildContext&&(t=s(s({},t),v.getChildContext())),h||null==v.getSnapshotBeforeUpdate||(k=v.getSnapshotBeforeUpdate(y,_)),A=null!=a&&a.type==p&&null==a.key?a.props.children:a,g(l,Array.isArray(A)?A:[A],u,i,t,r,o,f,e,c),v.base=u.__e,v.__h.length&&f.push(v),w&&(v.__E=v.__=null),v.__e=!1}else null==o&&u.__v===i.__v?(u.__k=i.__k,u.__e=i.__e):u.__e=j(i.__e,u,i,t,r,o,f,c);(a=n.diffed)&&a(u)}catch(l){u.__v=null,n.__e(l,u,i)}return u.__e}function $(l,u){n.__c&&n.__c(u,l),l.some(function(u){try{l=u.__h,u.__h=[],l.some(function(n){n.call(u)})}catch(l){n.__e(l,u.__v)}})}function j(n,l,u,i,t,r,o,c){var s,a,v,h,y,p=u.props,d=l.props;if(t="svg"===l.type||t,null!=r)for(s=0;s<r.length;s++)if(null!=(a=r[s])&&((null===l.type?3===a.nodeType:a.localName===l.type)||n==a)){n=a,r[s]=null;break}if(null==n){if(null===l.type)return document.createTextNode(d);n=t?document.createElementNS("http://www.w3.org/2000/svg",l.type):document.createElement(l.type,d.is&&{is:d.is}),r=null,c=!1}if(null===l.type)p!==d&&n.data!=d&&(n.data=d);else{if(null!=r&&(r=e.slice.call(n.childNodes)),v=(p=u.props||f).dangerouslySetInnerHTML,h=d.dangerouslySetInnerHTML,!c){if(null!=r)for(p={},y=0;y<n.attributes.length;y++)p[n.attributes[y].name]=n.attributes[y].value;(h||v)&&(h&&v&&h.__html==v.__html||(n.innerHTML=h&&h.__html||""))}A(n,d,p,t,c),h?l.__k=[]:(s=l.props.children,g(n,Array.isArray(s)?s:[s],l,u,i,"foreignObject"!==l.type&&t,r,o,f,c)),c||("value"in d&&void 0!==(s=d.value)&&s!==n.value&&C(n,"value",s,p.value,!1),"checked"in d&&void 0!==(s=d.checked)&&s!==n.checked&&C(n,"checked",s,p.checked,!1))}return n}function H(l,u,i){try{"function"==typeof l?l(u):l.current=u}catch(l){n.__e(l,i)}}function I(l,u,i){var t,r,o;if(n.unmount&&n.unmount(l),(t=l.ref)&&(t.current&&t.current!==l.__e||H(t,null,u)),i||"function"==typeof l.type||(i=null!=(r=l.__e)),l.__e=l.__d=void 0,null!=(t=l.__c)){if(t.componentWillUnmount)try{t.componentWillUnmount()}catch(l){n.__e(l,u)}t.base=t.__P=null}if(t=l.__k)for(o=0;o<t.length;o++)t[o]&&I(t[o],u,i);null!=r&&a(r)}function L(n,l,u){return this.constructor(n,u)}function M(l,u,i){var t,o,c;n.__&&n.__(l,u),o=(t=i===r)?null:i&&i.__k||u.__k,l=v(p,null,[l]),c=[],T(u,(t?u:i||u).__k=l,o||f,f,void 0!==u.ownerSVGElement,i&&!t?[i]:o?null:u.childNodes.length?e.slice.call(u.childNodes):null,c,i||f,t),$(c,l)}function O(n,l){M(n,l,r)}function S(n,l){var u,i;for(i in l=s(s({},n.props),l),arguments.length>2&&(l.children=e.slice.call(arguments,2)),u={},l)"key"!==i&&"ref"!==i&&(u[i]=l[i]);return h(n.type,u,l.key||n.key,l.ref||n.ref,null)}function q(n){var l={},u={__c:"__cC"+o++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var i,t=this;return this.getChildContext||(i=[],this.getChildContext=function(){return l[u.__c]=t,l},this.shouldComponentUpdate=function(n){t.props.value!==n.value&&i.some(function(l){l.context=n.value,w(l)})},this.sub=function(n){i.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){i.splice(i.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Consumer.contextType=u,u.Provider.__=u,u}n={__e:function(n,l){for(var u,i;l=l.__;)if((u=l.__c)&&!u.__)try{if(u.constructor&&null!=u.constructor.getDerivedStateFromError&&(i=!0,u.setState(u.constructor.getDerivedStateFromError(n))),null!=u.componentDidCatch&&(i=!0,u.componentDidCatch(n)),i)return w(u.__E=u)}catch(l){n=l}throw n}},l=function(n){return null!=n&&void 0===n.constructor},d.prototype.setState=function(n,l){var u;u=this.__s!==this.state?this.__s:this.__s=s({},this.state),"function"==typeof n&&(n=n(u,this.props)),n&&s(u,n),null!=n&&this.__v&&(l&&this.__h.push(l),w(this))},d.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),w(this))},d.prototype.render=p,u=[],i="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,m.__r=0,r=f,o=0;
807
810
  //# sourceMappingURL=preact.module.js.map
@@ -8492,7 +8495,7 @@ var client = new error_tracker_BrowserClient({
8492
8495
  return event;
8493
8496
  },
8494
8497
  environment: "production",
8495
- release: "26ba329763628125ccd447c10be0476c80863a64",
8498
+ release: "a890d11ff8a747b0530d3d7e4797e541fa1c5467",
8496
8499
  sampleRate: 0.25,
8497
8500
  autoSessionTracking: false,
8498
8501
  // Integrations don't seem to work with Sentry: https://github.com/getsentry/sentry-javascript/issues/2541
@@ -9176,7 +9179,7 @@ function getEmbedURL(_ref) {
9176
9179
  polyfillVersionString = "legacy";
9177
9180
  }
9178
9181
 
9179
- return concat_default()(_context5 = concat_default()(_context6 = concat_default()(_context7 = "".concat(host, "/embed/")).call(_context7, polyfillVersionString, "/")).call(_context6, frameName, "/")).call(_context5, "26ba329", "/index.html");
9182
+ return concat_default()(_context5 = concat_default()(_context6 = concat_default()(_context7 = "".concat(host, "/embed/")).call(_context7, polyfillVersionString, "/")).call(_context6, frameName, "/")).call(_context5, "a890d11", "/index.html");
9180
9183
  }
9181
9184
  /**
9182
9185
  * Generate the Chat / API URL
@@ -13330,6 +13333,7 @@ function Container_mapDispatchToProps(dispatch) {
13330
13333
 
13331
13334
 
13332
13335
 
13336
+
13333
13337
  function client_ownKeys(object, enumerableOnly) { var keys = keys_default()(object); if ((get_own_property_symbols_default())) { var symbols = get_own_property_symbols_default()(object); if (enumerableOnly) { symbols = filter_default()(symbols).call(symbols, function (sym) { return get_own_property_descriptor_default()(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13334
13338
 
13335
13339
  function client_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { client_ownKeys(Object(source), true).forEach(function (key) { (0,defineProperty/* default */.Z)(target, key, source[key]); }); } else if ((get_own_property_descriptors_default())) { Object.defineProperties(target, get_own_property_descriptors_default()(source)); } else { client_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, get_own_property_descriptor_default()(source, key)); }); } } return target; }
@@ -13381,6 +13385,8 @@ var Embed = /*#__PURE__*/function () {
13381
13385
 
13382
13386
  (0,defineProperty/* default */.Z)(this, "initializationResolve", void 0);
13383
13387
 
13388
+ (0,defineProperty/* default */.Z)(this, "debounceCampaignTrigger", void 0);
13389
+
13384
13390
  this.adaSettings = adaSettings;
13385
13391
  this.unmountCallback = unmountCallback;
13386
13392
  this.messageService = new MessageService();
@@ -13391,6 +13397,38 @@ var Embed = /*#__PURE__*/function () {
13391
13397
  _this.initializationReject = reject;
13392
13398
  });
13393
13399
  this.renderPreactApp();
13400
+ this.debounceCampaignTrigger = lodash_debounce_default()( /*#__PURE__*/function () {
13401
+ var _ref = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(campaignKey) {
13402
+ var triggerCampaignParams,
13403
+ _args = arguments;
13404
+ return regenerator_default().wrap(function _callee$(_context) {
13405
+ while (1) {
13406
+ switch (_context.prev = _context.next) {
13407
+ case 0:
13408
+ triggerCampaignParams = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
13409
+ _context.next = 3;
13410
+ return _this.initialized;
13411
+
13412
+ case 3:
13413
+ _context.next = 5;
13414
+ return _this.localChannel.fetch(TRIGGER_CAMPAIGN, TRIGGER_CAMPAIGN_RESPONSE, client_objectSpread({
13415
+ campaignKey: campaignKey
13416
+ }, triggerCampaignParams));
13417
+
13418
+ case 5:
13419
+ case "end":
13420
+ return _context.stop();
13421
+ }
13422
+ }
13423
+ }, _callee);
13424
+ }));
13425
+
13426
+ return function (_x) {
13427
+ return _ref.apply(this, arguments);
13428
+ };
13429
+ }(), 1000, {
13430
+ leading: true
13431
+ });
13394
13432
  }
13395
13433
 
13396
13434
  _createClass(Embed, [{
@@ -13447,32 +13485,32 @@ var Embed = /*#__PURE__*/function () {
13447
13485
  }, {
13448
13486
  key: "toggle",
13449
13487
  value: function () {
13450
- var _toggle = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee() {
13451
- return regenerator_default().wrap(function _callee$(_context) {
13488
+ var _toggle = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee2() {
13489
+ return regenerator_default().wrap(function _callee2$(_context2) {
13452
13490
  while (1) {
13453
- switch (_context.prev = _context.next) {
13491
+ switch (_context2.prev = _context2.next) {
13454
13492
  case 0:
13455
13493
  if (!this.adaSettings.parentElement) {
13456
- _context.next = 2;
13494
+ _context2.next = 2;
13457
13495
  break;
13458
13496
  }
13459
13497
 
13460
13498
  throw new errors/* AdaEmbedError */.S("Cannot toggle when using parentElement.");
13461
13499
 
13462
13500
  case 2:
13463
- _context.next = 4;
13501
+ _context2.next = 4;
13464
13502
  return this.initialized;
13465
13503
 
13466
13504
  case 4:
13467
- _context.next = 6;
13505
+ _context2.next = 6;
13468
13506
  return this.localChannel.fetch(TOGGLE, TOGGLE_RESPONSE);
13469
13507
 
13470
13508
  case 6:
13471
13509
  case "end":
13472
- return _context.stop();
13510
+ return _context2.stop();
13473
13511
  }
13474
13512
  }
13475
- }, _callee, this);
13513
+ }, _callee2, this);
13476
13514
  }));
13477
13515
 
13478
13516
  function toggle() {
@@ -13484,23 +13522,23 @@ var Embed = /*#__PURE__*/function () {
13484
13522
  }, {
13485
13523
  key: "getInfo",
13486
13524
  value: function () {
13487
- var _getInfo = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee2() {
13488
- return regenerator_default().wrap(function _callee2$(_context2) {
13525
+ var _getInfo = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee3() {
13526
+ return regenerator_default().wrap(function _callee3$(_context3) {
13489
13527
  while (1) {
13490
- switch (_context2.prev = _context2.next) {
13528
+ switch (_context3.prev = _context3.next) {
13491
13529
  case 0:
13492
- _context2.next = 2;
13530
+ _context3.next = 2;
13493
13531
  return this.initialized;
13494
13532
 
13495
13533
  case 2:
13496
- return _context2.abrupt("return", this.localChannel.fetch(GET_INFO, GET_INFO_RESPONSE));
13534
+ return _context3.abrupt("return", this.localChannel.fetch(GET_INFO, GET_INFO_RESPONSE));
13497
13535
 
13498
13536
  case 3:
13499
13537
  case "end":
13500
- return _context2.stop();
13538
+ return _context3.stop();
13501
13539
  }
13502
13540
  }
13503
- }, _callee2, this);
13541
+ }, _callee3, this);
13504
13542
  }));
13505
13543
 
13506
13544
  function getInfo() {
@@ -13512,27 +13550,27 @@ var Embed = /*#__PURE__*/function () {
13512
13550
  }, {
13513
13551
  key: "setMetaFields",
13514
13552
  value: function () {
13515
- var _setMetaFields = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee3(options) {
13516
- return regenerator_default().wrap(function _callee3$(_context3) {
13553
+ var _setMetaFields = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee4(options) {
13554
+ return regenerator_default().wrap(function _callee4$(_context4) {
13517
13555
  while (1) {
13518
- switch (_context3.prev = _context3.next) {
13556
+ switch (_context4.prev = _context4.next) {
13519
13557
  case 0:
13520
- _context3.next = 2;
13558
+ _context4.next = 2;
13521
13559
  return this.initialized;
13522
13560
 
13523
13561
  case 2:
13524
- _context3.next = 4;
13562
+ _context4.next = 4;
13525
13563
  return this.localChannel.fetch(SET_META_FIELDS, SET_META_FIELDS_RESPONSE, options);
13526
13564
 
13527
13565
  case 4:
13528
13566
  case "end":
13529
- return _context3.stop();
13567
+ return _context4.stop();
13530
13568
  }
13531
13569
  }
13532
- }, _callee3, this);
13570
+ }, _callee4, this);
13533
13571
  }));
13534
13572
 
13535
- function setMetaFields(_x) {
13573
+ function setMetaFields(_x2) {
13536
13574
  return _setMetaFields.apply(this, arguments);
13537
13575
  }
13538
13576
 
@@ -13541,27 +13579,27 @@ var Embed = /*#__PURE__*/function () {
13541
13579
  }, {
13542
13580
  key: "setSensitiveMetaFields",
13543
13581
  value: function () {
13544
- var _setSensitiveMetaFields = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee4(options) {
13545
- return regenerator_default().wrap(function _callee4$(_context4) {
13582
+ var _setSensitiveMetaFields = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee5(options) {
13583
+ return regenerator_default().wrap(function _callee5$(_context5) {
13546
13584
  while (1) {
13547
- switch (_context4.prev = _context4.next) {
13585
+ switch (_context5.prev = _context5.next) {
13548
13586
  case 0:
13549
- _context4.next = 2;
13587
+ _context5.next = 2;
13550
13588
  return this.initialized;
13551
13589
 
13552
13590
  case 2:
13553
- _context4.next = 4;
13591
+ _context5.next = 4;
13554
13592
  return this.localChannel.fetch("SET_SENSITIVE_META_FIELDS", "SET_SENSITIVE_META_FIELDS_RESPONSE", options);
13555
13593
 
13556
13594
  case 4:
13557
13595
  case "end":
13558
- return _context4.stop();
13596
+ return _context5.stop();
13559
13597
  }
13560
13598
  }
13561
- }, _callee4, this);
13599
+ }, _callee5, this);
13562
13600
  }));
13563
13601
 
13564
- function setSensitiveMetaFields(_x2) {
13602
+ function setSensitiveMetaFields(_x3) {
13565
13603
  return _setSensitiveMetaFields.apply(this, arguments);
13566
13604
  }
13567
13605
 
@@ -13570,24 +13608,24 @@ var Embed = /*#__PURE__*/function () {
13570
13608
  }, {
13571
13609
  key: "stop",
13572
13610
  value: function () {
13573
- var _stop = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee5() {
13574
- return regenerator_default().wrap(function _callee5$(_context5) {
13611
+ var _stop = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee6() {
13612
+ return regenerator_default().wrap(function _callee6$(_context6) {
13575
13613
  while (1) {
13576
- switch (_context5.prev = _context5.next) {
13614
+ switch (_context6.prev = _context6.next) {
13577
13615
  case 0:
13578
- _context5.next = 2;
13616
+ _context6.next = 2;
13579
13617
  return this.initialized;
13580
13618
 
13581
13619
  case 2:
13582
- _context5.next = 4;
13620
+ _context6.next = 4;
13583
13621
  return this.localChannel.fetch(STOP, STOP_RESPONSE);
13584
13622
 
13585
13623
  case 4:
13586
13624
  case "end":
13587
- return _context5.stop();
13625
+ return _context6.stop();
13588
13626
  }
13589
13627
  }
13590
- }, _callee5, this);
13628
+ }, _callee6, this);
13591
13629
  }));
13592
13630
 
13593
13631
  function stop() {
@@ -13599,24 +13637,24 @@ var Embed = /*#__PURE__*/function () {
13599
13637
  }, {
13600
13638
  key: "deleteHistory",
13601
13639
  value: function () {
13602
- var _deleteHistory = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee6() {
13603
- return regenerator_default().wrap(function _callee6$(_context6) {
13640
+ var _deleteHistory = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee7() {
13641
+ return regenerator_default().wrap(function _callee7$(_context7) {
13604
13642
  while (1) {
13605
- switch (_context6.prev = _context6.next) {
13643
+ switch (_context7.prev = _context7.next) {
13606
13644
  case 0:
13607
- _context6.next = 2;
13645
+ _context7.next = 2;
13608
13646
  return this.initialized;
13609
13647
 
13610
13648
  case 2:
13611
- _context6.next = 4;
13649
+ _context7.next = 4;
13612
13650
  return this.localChannel.fetch(DELETE_HISTORY, DELETE_HISTORY_RESPONSE);
13613
13651
 
13614
13652
  case 4:
13615
13653
  case "end":
13616
- return _context6.stop();
13654
+ return _context7.stop();
13617
13655
  }
13618
13656
  }
13619
- }, _callee6, this);
13657
+ }, _callee7, this);
13620
13658
  }));
13621
13659
 
13622
13660
  function deleteHistory() {
@@ -13628,27 +13666,27 @@ var Embed = /*#__PURE__*/function () {
13628
13666
  }, {
13629
13667
  key: "reset",
13630
13668
  value: function () {
13631
- var _reset = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee7() {
13669
+ var _reset = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee8() {
13632
13670
  var resetParams,
13633
- _args7 = arguments;
13634
- return regenerator_default().wrap(function _callee7$(_context7) {
13671
+ _args8 = arguments;
13672
+ return regenerator_default().wrap(function _callee8$(_context8) {
13635
13673
  while (1) {
13636
- switch (_context7.prev = _context7.next) {
13674
+ switch (_context8.prev = _context8.next) {
13637
13675
  case 0:
13638
- resetParams = _args7.length > 0 && _args7[0] !== undefined ? _args7[0] : {};
13639
- _context7.next = 3;
13676
+ resetParams = _args8.length > 0 && _args8[0] !== undefined ? _args8[0] : {};
13677
+ _context8.next = 3;
13640
13678
  return this.initialized;
13641
13679
 
13642
13680
  case 3:
13643
- _context7.next = 5;
13681
+ _context8.next = 5;
13644
13682
  return this.localChannel.fetch(RESET, RESET_RESPONSE, resetParams);
13645
13683
 
13646
13684
  case 5:
13647
13685
  case "end":
13648
- return _context7.stop();
13686
+ return _context8.stop();
13649
13687
  }
13650
13688
  }
13651
- }, _callee7, this);
13689
+ }, _callee8, this);
13652
13690
  }));
13653
13691
 
13654
13692
  function reset() {
@@ -13660,19 +13698,19 @@ var Embed = /*#__PURE__*/function () {
13660
13698
  }, {
13661
13699
  key: "trackEvent",
13662
13700
  value: function () {
13663
- var _trackEvent = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee8(eventKey, value) {
13701
+ var _trackEvent = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee9(eventKey, value) {
13664
13702
  var meta,
13665
- _args8 = arguments;
13666
- return regenerator_default().wrap(function _callee8$(_context8) {
13703
+ _args9 = arguments;
13704
+ return regenerator_default().wrap(function _callee9$(_context9) {
13667
13705
  while (1) {
13668
- switch (_context8.prev = _context8.next) {
13706
+ switch (_context9.prev = _context9.next) {
13669
13707
  case 0:
13670
- meta = _args8.length > 2 && _args8[2] !== undefined ? _args8[2] : {};
13671
- _context8.next = 3;
13708
+ meta = _args9.length > 2 && _args9[2] !== undefined ? _args9[2] : {};
13709
+ _context9.next = 3;
13672
13710
  return this.initialized;
13673
13711
 
13674
13712
  case 3:
13675
- _context8.next = 5;
13713
+ _context9.next = 5;
13676
13714
  return this.localChannel.fetch(TRACK_EVENT, TRACK_EVENT_RESPONSE, {
13677
13715
  eventKey: eventKey,
13678
13716
  value: value,
@@ -13681,13 +13719,13 @@ var Embed = /*#__PURE__*/function () {
13681
13719
 
13682
13720
  case 5:
13683
13721
  case "end":
13684
- return _context8.stop();
13722
+ return _context9.stop();
13685
13723
  }
13686
13724
  }
13687
- }, _callee8, this);
13725
+ }, _callee9, this);
13688
13726
  }));
13689
13727
 
13690
- function trackEvent(_x3, _x4) {
13728
+ function trackEvent(_x4, _x5) {
13691
13729
  return _trackEvent.apply(this, arguments);
13692
13730
  }
13693
13731
 
@@ -13696,32 +13734,25 @@ var Embed = /*#__PURE__*/function () {
13696
13734
  }, {
13697
13735
  key: "triggerCampaign",
13698
13736
  value: function () {
13699
- var _triggerCampaign = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee9(campaignKey) {
13737
+ var _triggerCampaign = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee10(campaignKey) {
13700
13738
  var triggerCampaignParams,
13701
- _args9 = arguments;
13702
- return regenerator_default().wrap(function _callee9$(_context9) {
13739
+ _args10 = arguments;
13740
+ return regenerator_default().wrap(function _callee10$(_context10) {
13703
13741
  while (1) {
13704
- switch (_context9.prev = _context9.next) {
13742
+ switch (_context10.prev = _context10.next) {
13705
13743
  case 0:
13706
- triggerCampaignParams = _args9.length > 1 && _args9[1] !== undefined ? _args9[1] : {};
13707
- _context9.next = 3;
13708
- return this.initialized;
13744
+ triggerCampaignParams = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : {};
13745
+ this.debounceCampaignTrigger(campaignKey, triggerCampaignParams);
13709
13746
 
13710
- case 3:
13711
- _context9.next = 5;
13712
- return this.localChannel.fetch(TRIGGER_CAMPAIGN, TRIGGER_CAMPAIGN_RESPONSE, client_objectSpread({
13713
- campaignKey: campaignKey
13714
- }, triggerCampaignParams));
13715
-
13716
- case 5:
13747
+ case 2:
13717
13748
  case "end":
13718
- return _context9.stop();
13749
+ return _context10.stop();
13719
13750
  }
13720
13751
  }
13721
- }, _callee9, this);
13752
+ }, _callee10, this);
13722
13753
  }));
13723
13754
 
13724
- function triggerCampaign(_x5) {
13755
+ function triggerCampaign(_x6) {
13725
13756
  return _triggerCampaign.apply(this, arguments);
13726
13757
  }
13727
13758
 
@@ -13730,27 +13761,27 @@ var Embed = /*#__PURE__*/function () {
13730
13761
  }, {
13731
13762
  key: "evaluateCampaignConditions",
13732
13763
  value: function () {
13733
- var _evaluateCampaignConditions = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee10(options) {
13734
- return regenerator_default().wrap(function _callee10$(_context10) {
13764
+ var _evaluateCampaignConditions = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee11(options) {
13765
+ return regenerator_default().wrap(function _callee11$(_context11) {
13735
13766
  while (1) {
13736
- switch (_context10.prev = _context10.next) {
13767
+ switch (_context11.prev = _context11.next) {
13737
13768
  case 0:
13738
- _context10.next = 2;
13769
+ _context11.next = 2;
13739
13770
  return this.initialized;
13740
13771
 
13741
13772
  case 2:
13742
- _context10.next = 4;
13773
+ _context11.next = 4;
13743
13774
  return this.localChannel.fetch(EVAL_CAMPAIGN_CONDITIONS, EVAL_CAMPAIGN_CONDITIONS_RESPONSE, options);
13744
13775
 
13745
13776
  case 4:
13746
13777
  case "end":
13747
- return _context10.stop();
13778
+ return _context11.stop();
13748
13779
  }
13749
13780
  }
13750
- }, _callee10, this);
13781
+ }, _callee11, this);
13751
13782
  }));
13752
13783
 
13753
- function evaluateCampaignConditions(_x6) {
13784
+ function evaluateCampaignConditions(_x7) {
13754
13785
  return _evaluateCampaignConditions.apply(this, arguments);
13755
13786
  }
13756
13787
 
@@ -13759,25 +13790,25 @@ var Embed = /*#__PURE__*/function () {
13759
13790
  }, {
13760
13791
  key: "createProactive",
13761
13792
  value: function () {
13762
- var _createProactive = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee11(body, duration, responseId) {
13763
- return regenerator_default().wrap(function _callee11$(_context11) {
13793
+ var _createProactive = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee12(body, duration, responseId) {
13794
+ return regenerator_default().wrap(function _callee12$(_context12) {
13764
13795
  while (1) {
13765
- switch (_context11.prev = _context11.next) {
13796
+ switch (_context12.prev = _context12.next) {
13766
13797
  case 0:
13767
13798
  if (!this.adaSettings.parentElement) {
13768
- _context11.next = 2;
13799
+ _context12.next = 2;
13769
13800
  break;
13770
13801
  }
13771
13802
 
13772
13803
  throw new errors/* AdaEmbedError */.S("Cannot call createProactive when using parentElement.");
13773
13804
 
13774
13805
  case 2:
13775
- _context11.next = 4;
13806
+ _context12.next = 4;
13776
13807
  return this.initialized;
13777
13808
 
13778
13809
  case 4:
13779
- _context11.prev = 4;
13780
- _context11.next = 7;
13810
+ _context12.prev = 4;
13811
+ _context12.next = 7;
13781
13812
  return this.localChannel.fetch(CREATE_PROACTIVE, CREATE_PROACTIVE_RESPONSE, {
13782
13813
  body: body,
13783
13814
  duration: duration,
@@ -13788,23 +13819,23 @@ var Embed = /*#__PURE__*/function () {
13788
13819
  duration * 1000 + 2000);
13789
13820
 
13790
13821
  case 7:
13791
- _context11.next = 12;
13822
+ _context12.next = 12;
13792
13823
  break;
13793
13824
 
13794
13825
  case 9:
13795
- _context11.prev = 9;
13796
- _context11.t0 = _context11["catch"](4);
13797
- throw new errors/* AdaEmbedError */.S(_context11.t0);
13826
+ _context12.prev = 9;
13827
+ _context12.t0 = _context12["catch"](4);
13828
+ throw new errors/* AdaEmbedError */.S(_context12.t0);
13798
13829
 
13799
13830
  case 12:
13800
13831
  case "end":
13801
- return _context11.stop();
13832
+ return _context12.stop();
13802
13833
  }
13803
13834
  }
13804
- }, _callee11, this, [[4, 9]]);
13835
+ }, _callee12, this, [[4, 9]]);
13805
13836
  }));
13806
13837
 
13807
- function createProactive(_x7, _x8, _x9) {
13838
+ function createProactive(_x8, _x9, _x10) {
13808
13839
  return _createProactive.apply(this, arguments);
13809
13840
  }
13810
13841
 
@@ -13848,7 +13879,7 @@ window.__AdaEmbedConstructor = Embed;
13848
13879
  /* harmony export */ });
13849
13880
  var isModern = new RegExp("((CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(14|(1[5-9]|[2-9]\\d|\\d{3,}))[_.]\\d+(?:[_.]\\d+)?)|((Chromium|Chrome)\\/(92|(9[3-9]|\\d{3,}))\\.\\d+(?:\\.\\d+)?)|(Version\\/(14|(1[5-9]|[2-9]\\d|\\d{3,}))\\.\\d+(?:\\.\\d+)? Safari\\/)|(Firefox\\/(91|(9[2-9]|\\d{3,}))\\.\\d+\\.\\d+)|(Firefox\\/(91|(9[2-9]|\\d{3,}))\\.\\d+(pre|[ab]\\d+[a-z]*)?)").test(navigator.userAgent);
13850
13881
  var isProduction = "production" === "production";
13851
- var embed2Version = "26ba329";
13882
+ var embed2Version = "a890d11";
13852
13883
 
13853
13884
  /***/ }),
13854
13885
 
@@ -22036,6 +22067,390 @@ module.exports = function (value, replacer, space) {
22036
22067
  };
22037
22068
 
22038
22069
 
22070
+ /***/ }),
22071
+
22072
+ /***/ 1296:
22073
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
22074
+
22075
+ /**
22076
+ * lodash (Custom Build) <https://lodash.com/>
22077
+ * Build: `lodash modularize exports="npm" -o ./`
22078
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
22079
+ * Released under MIT license <https://lodash.com/license>
22080
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
22081
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
22082
+ */
22083
+
22084
+ /** Used as the `TypeError` message for "Functions" methods. */
22085
+ var FUNC_ERROR_TEXT = 'Expected a function';
22086
+
22087
+ /** Used as references for various `Number` constants. */
22088
+ var NAN = 0 / 0;
22089
+
22090
+ /** `Object#toString` result references. */
22091
+ var symbolTag = '[object Symbol]';
22092
+
22093
+ /** Used to match leading and trailing whitespace. */
22094
+ var reTrim = /^\s+|\s+$/g;
22095
+
22096
+ /** Used to detect bad signed hexadecimal string values. */
22097
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
22098
+
22099
+ /** Used to detect binary string values. */
22100
+ var reIsBinary = /^0b[01]+$/i;
22101
+
22102
+ /** Used to detect octal string values. */
22103
+ var reIsOctal = /^0o[0-7]+$/i;
22104
+
22105
+ /** Built-in method references without a dependency on `root`. */
22106
+ var freeParseInt = parseInt;
22107
+
22108
+ /** Detect free variable `global` from Node.js. */
22109
+ var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;
22110
+
22111
+ /** Detect free variable `self`. */
22112
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
22113
+
22114
+ /** Used as a reference to the global object. */
22115
+ var root = freeGlobal || freeSelf || Function('return this')();
22116
+
22117
+ /** Used for built-in method references. */
22118
+ var objectProto = Object.prototype;
22119
+
22120
+ /**
22121
+ * Used to resolve the
22122
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
22123
+ * of values.
22124
+ */
22125
+ var objectToString = objectProto.toString;
22126
+
22127
+ /* Built-in method references for those with the same name as other `lodash` methods. */
22128
+ var nativeMax = Math.max,
22129
+ nativeMin = Math.min;
22130
+
22131
+ /**
22132
+ * Gets the timestamp of the number of milliseconds that have elapsed since
22133
+ * the Unix epoch (1 January 1970 00:00:00 UTC).
22134
+ *
22135
+ * @static
22136
+ * @memberOf _
22137
+ * @since 2.4.0
22138
+ * @category Date
22139
+ * @returns {number} Returns the timestamp.
22140
+ * @example
22141
+ *
22142
+ * _.defer(function(stamp) {
22143
+ * console.log(_.now() - stamp);
22144
+ * }, _.now());
22145
+ * // => Logs the number of milliseconds it took for the deferred invocation.
22146
+ */
22147
+ var now = function() {
22148
+ return root.Date.now();
22149
+ };
22150
+
22151
+ /**
22152
+ * Creates a debounced function that delays invoking `func` until after `wait`
22153
+ * milliseconds have elapsed since the last time the debounced function was
22154
+ * invoked. The debounced function comes with a `cancel` method to cancel
22155
+ * delayed `func` invocations and a `flush` method to immediately invoke them.
22156
+ * Provide `options` to indicate whether `func` should be invoked on the
22157
+ * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
22158
+ * with the last arguments provided to the debounced function. Subsequent
22159
+ * calls to the debounced function return the result of the last `func`
22160
+ * invocation.
22161
+ *
22162
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
22163
+ * invoked on the trailing edge of the timeout only if the debounced function
22164
+ * is invoked more than once during the `wait` timeout.
22165
+ *
22166
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
22167
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
22168
+ *
22169
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
22170
+ * for details over the differences between `_.debounce` and `_.throttle`.
22171
+ *
22172
+ * @static
22173
+ * @memberOf _
22174
+ * @since 0.1.0
22175
+ * @category Function
22176
+ * @param {Function} func The function to debounce.
22177
+ * @param {number} [wait=0] The number of milliseconds to delay.
22178
+ * @param {Object} [options={}] The options object.
22179
+ * @param {boolean} [options.leading=false]
22180
+ * Specify invoking on the leading edge of the timeout.
22181
+ * @param {number} [options.maxWait]
22182
+ * The maximum time `func` is allowed to be delayed before it's invoked.
22183
+ * @param {boolean} [options.trailing=true]
22184
+ * Specify invoking on the trailing edge of the timeout.
22185
+ * @returns {Function} Returns the new debounced function.
22186
+ * @example
22187
+ *
22188
+ * // Avoid costly calculations while the window size is in flux.
22189
+ * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
22190
+ *
22191
+ * // Invoke `sendMail` when clicked, debouncing subsequent calls.
22192
+ * jQuery(element).on('click', _.debounce(sendMail, 300, {
22193
+ * 'leading': true,
22194
+ * 'trailing': false
22195
+ * }));
22196
+ *
22197
+ * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
22198
+ * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
22199
+ * var source = new EventSource('/stream');
22200
+ * jQuery(source).on('message', debounced);
22201
+ *
22202
+ * // Cancel the trailing debounced invocation.
22203
+ * jQuery(window).on('popstate', debounced.cancel);
22204
+ */
22205
+ function debounce(func, wait, options) {
22206
+ var lastArgs,
22207
+ lastThis,
22208
+ maxWait,
22209
+ result,
22210
+ timerId,
22211
+ lastCallTime,
22212
+ lastInvokeTime = 0,
22213
+ leading = false,
22214
+ maxing = false,
22215
+ trailing = true;
22216
+
22217
+ if (typeof func != 'function') {
22218
+ throw new TypeError(FUNC_ERROR_TEXT);
22219
+ }
22220
+ wait = toNumber(wait) || 0;
22221
+ if (isObject(options)) {
22222
+ leading = !!options.leading;
22223
+ maxing = 'maxWait' in options;
22224
+ maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
22225
+ trailing = 'trailing' in options ? !!options.trailing : trailing;
22226
+ }
22227
+
22228
+ function invokeFunc(time) {
22229
+ var args = lastArgs,
22230
+ thisArg = lastThis;
22231
+
22232
+ lastArgs = lastThis = undefined;
22233
+ lastInvokeTime = time;
22234
+ result = func.apply(thisArg, args);
22235
+ return result;
22236
+ }
22237
+
22238
+ function leadingEdge(time) {
22239
+ // Reset any `maxWait` timer.
22240
+ lastInvokeTime = time;
22241
+ // Start the timer for the trailing edge.
22242
+ timerId = setTimeout(timerExpired, wait);
22243
+ // Invoke the leading edge.
22244
+ return leading ? invokeFunc(time) : result;
22245
+ }
22246
+
22247
+ function remainingWait(time) {
22248
+ var timeSinceLastCall = time - lastCallTime,
22249
+ timeSinceLastInvoke = time - lastInvokeTime,
22250
+ result = wait - timeSinceLastCall;
22251
+
22252
+ return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
22253
+ }
22254
+
22255
+ function shouldInvoke(time) {
22256
+ var timeSinceLastCall = time - lastCallTime,
22257
+ timeSinceLastInvoke = time - lastInvokeTime;
22258
+
22259
+ // Either this is the first call, activity has stopped and we're at the
22260
+ // trailing edge, the system time has gone backwards and we're treating
22261
+ // it as the trailing edge, or we've hit the `maxWait` limit.
22262
+ return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
22263
+ (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
22264
+ }
22265
+
22266
+ function timerExpired() {
22267
+ var time = now();
22268
+ if (shouldInvoke(time)) {
22269
+ return trailingEdge(time);
22270
+ }
22271
+ // Restart the timer.
22272
+ timerId = setTimeout(timerExpired, remainingWait(time));
22273
+ }
22274
+
22275
+ function trailingEdge(time) {
22276
+ timerId = undefined;
22277
+
22278
+ // Only invoke if we have `lastArgs` which means `func` has been
22279
+ // debounced at least once.
22280
+ if (trailing && lastArgs) {
22281
+ return invokeFunc(time);
22282
+ }
22283
+ lastArgs = lastThis = undefined;
22284
+ return result;
22285
+ }
22286
+
22287
+ function cancel() {
22288
+ if (timerId !== undefined) {
22289
+ clearTimeout(timerId);
22290
+ }
22291
+ lastInvokeTime = 0;
22292
+ lastArgs = lastCallTime = lastThis = timerId = undefined;
22293
+ }
22294
+
22295
+ function flush() {
22296
+ return timerId === undefined ? result : trailingEdge(now());
22297
+ }
22298
+
22299
+ function debounced() {
22300
+ var time = now(),
22301
+ isInvoking = shouldInvoke(time);
22302
+
22303
+ lastArgs = arguments;
22304
+ lastThis = this;
22305
+ lastCallTime = time;
22306
+
22307
+ if (isInvoking) {
22308
+ if (timerId === undefined) {
22309
+ return leadingEdge(lastCallTime);
22310
+ }
22311
+ if (maxing) {
22312
+ // Handle invocations in a tight loop.
22313
+ timerId = setTimeout(timerExpired, wait);
22314
+ return invokeFunc(lastCallTime);
22315
+ }
22316
+ }
22317
+ if (timerId === undefined) {
22318
+ timerId = setTimeout(timerExpired, wait);
22319
+ }
22320
+ return result;
22321
+ }
22322
+ debounced.cancel = cancel;
22323
+ debounced.flush = flush;
22324
+ return debounced;
22325
+ }
22326
+
22327
+ /**
22328
+ * Checks if `value` is the
22329
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
22330
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
22331
+ *
22332
+ * @static
22333
+ * @memberOf _
22334
+ * @since 0.1.0
22335
+ * @category Lang
22336
+ * @param {*} value The value to check.
22337
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
22338
+ * @example
22339
+ *
22340
+ * _.isObject({});
22341
+ * // => true
22342
+ *
22343
+ * _.isObject([1, 2, 3]);
22344
+ * // => true
22345
+ *
22346
+ * _.isObject(_.noop);
22347
+ * // => true
22348
+ *
22349
+ * _.isObject(null);
22350
+ * // => false
22351
+ */
22352
+ function isObject(value) {
22353
+ var type = typeof value;
22354
+ return !!value && (type == 'object' || type == 'function');
22355
+ }
22356
+
22357
+ /**
22358
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
22359
+ * and has a `typeof` result of "object".
22360
+ *
22361
+ * @static
22362
+ * @memberOf _
22363
+ * @since 4.0.0
22364
+ * @category Lang
22365
+ * @param {*} value The value to check.
22366
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
22367
+ * @example
22368
+ *
22369
+ * _.isObjectLike({});
22370
+ * // => true
22371
+ *
22372
+ * _.isObjectLike([1, 2, 3]);
22373
+ * // => true
22374
+ *
22375
+ * _.isObjectLike(_.noop);
22376
+ * // => false
22377
+ *
22378
+ * _.isObjectLike(null);
22379
+ * // => false
22380
+ */
22381
+ function isObjectLike(value) {
22382
+ return !!value && typeof value == 'object';
22383
+ }
22384
+
22385
+ /**
22386
+ * Checks if `value` is classified as a `Symbol` primitive or object.
22387
+ *
22388
+ * @static
22389
+ * @memberOf _
22390
+ * @since 4.0.0
22391
+ * @category Lang
22392
+ * @param {*} value The value to check.
22393
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
22394
+ * @example
22395
+ *
22396
+ * _.isSymbol(Symbol.iterator);
22397
+ * // => true
22398
+ *
22399
+ * _.isSymbol('abc');
22400
+ * // => false
22401
+ */
22402
+ function isSymbol(value) {
22403
+ return typeof value == 'symbol' ||
22404
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
22405
+ }
22406
+
22407
+ /**
22408
+ * Converts `value` to a number.
22409
+ *
22410
+ * @static
22411
+ * @memberOf _
22412
+ * @since 4.0.0
22413
+ * @category Lang
22414
+ * @param {*} value The value to process.
22415
+ * @returns {number} Returns the number.
22416
+ * @example
22417
+ *
22418
+ * _.toNumber(3.2);
22419
+ * // => 3.2
22420
+ *
22421
+ * _.toNumber(Number.MIN_VALUE);
22422
+ * // => 5e-324
22423
+ *
22424
+ * _.toNumber(Infinity);
22425
+ * // => Infinity
22426
+ *
22427
+ * _.toNumber('3.2');
22428
+ * // => 3.2
22429
+ */
22430
+ function toNumber(value) {
22431
+ if (typeof value == 'number') {
22432
+ return value;
22433
+ }
22434
+ if (isSymbol(value)) {
22435
+ return NAN;
22436
+ }
22437
+ if (isObject(value)) {
22438
+ var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
22439
+ value = isObject(other) ? (other + '') : other;
22440
+ }
22441
+ if (typeof value != 'string') {
22442
+ return value === 0 ? value : +value;
22443
+ }
22444
+ value = value.replace(reTrim, '');
22445
+ var isBinary = reIsBinary.test(value);
22446
+ return (isBinary || reIsOctal.test(value))
22447
+ ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
22448
+ : (reIsBadHex.test(value) ? NAN : +value);
22449
+ }
22450
+
22451
+ module.exports = debounce;
22452
+
22453
+
22039
22454
  /***/ }),
22040
22455
 
22041
22456
  /***/ 5666:
@@ -23245,7 +23660,7 @@ function _loadEmbed() {
23245
23660
  polyfillVersionString = "legacy";
23246
23661
  }
23247
23662
 
23248
- embedScriptSource = concat_default()(_context16 = concat_default()(_context17 = "".concat(host, "/embed/")).call(_context17, polyfillVersionString, "/client/")).call(_context16, "26ba329", "/index.js");
23663
+ embedScriptSource = concat_default()(_context16 = concat_default()(_context17 = "".concat(host, "/embed/")).call(_context17, polyfillVersionString, "/client/")).call(_context16, "a890d11", "/index.js");
23249
23664
  }
23250
23665
 
23251
23666
  clientScriptExists = Boolean( true || // The client script is bundled with npm module
@@ -23372,10 +23787,10 @@ function createEmbedObject() {
23372
23787
  handle: adaSettings.handle,
23373
23788
  embedVersion: 2,
23374
23789
  embedSettings: adaSettings,
23375
- version: "1.0.37",
23790
+ version: "1.0.39",
23376
23791
  isNpm: true,
23377
23792
  hostPage: window.location.href,
23378
- commitHash: "26ba329"
23793
+ commitHash: "a890d11"
23379
23794
  }, {
23380
23795
  sampleRate: 0.01 // 1% of logs will go through
23381
23796
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ada-support/embed2",
3
- "version": "1.0.37",
3
+ "version": "1.0.39",
4
4
  "description": "",
5
5
  "main": "dist/npm-entry",
6
6
  "typings": "dist/npm-entry/index.d.ts",
@@ -106,12 +106,14 @@
106
106
  "@sentry/browser": "^6.12.0",
107
107
  "@types/enzyme": "^3.10.5",
108
108
  "@types/json-stable-stringify": "^1.0.32",
109
+ "@types/lodash.debounce": "^4.0.6",
109
110
  "@types/uniqid": "^5.3.0",
110
111
  "core-js": "3",
111
112
  "depcheck": "^1.4.2",
112
113
  "dotenv": "^8.2.0",
113
114
  "focus-visible": "^5.2.0",
114
115
  "json-stable-stringify": "^1.0.1",
116
+ "lodash.debounce": "^4.0.8",
115
117
  "preact": "10.4.5",
116
118
  "uniqid": "^5.3.0",
117
119
  "webpack-s3-plugin": "^1.2.0-rc.0"
@@ -1,12 +0,0 @@
1
- import "frames/lib/error-tracker";
2
- export declare const LIVE_CHAT_PENDING_STORAGE_KEY = "liveChatPending";
3
- export declare const IS_DRAWER_OPEN_STORAGE_KEY = "ada-embed_is-drawer-open";
4
- /**
5
- * NOTE: If you import this file into any other file
6
- * it will trigger the init() function below - may cause errors!
7
- */
8
- /**
9
- * Auto-opens the chat door if crossWindowPersistence is one, the chatter is in
10
- * a live chat, and if the drawer was previously opened.
11
- */
12
- export declare function setIsDrawerOpen(): Promise<void>;
@@ -1,3 +0,0 @@
1
- import { StoreState } from "common/types/store-state";
2
- export declare function initializeFrame(waitForOtherFrames?: boolean, initialState?: Partial<StoreState>): Promise<boolean>;
3
- export declare function addCustomStyles(styles: string, hasUICustomization: boolean): void;
@@ -1,6 +0,0 @@
1
- import * as Sentry from "@sentry/browser";
2
- declare const errorTracker: {
3
- trackException(error: Error): void;
4
- addBreadCrumb(category: string, message: string, data: object, level?: Sentry.Severity): void;
5
- };
6
- export default errorTracker;
@@ -1,3 +0,0 @@
1
- import FC from "common/lib/fc";
2
- declare const _default: FC;
3
- export default _default;
@@ -1,2 +0,0 @@
1
- import { StoreProxyInterface } from "common/types/store";
2
- export declare const store: StoreProxyInterface;