@vouchfor/embeds 0.0.0-experiment.df12bef → 0.0.0-experiment.df3f29a

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. package/dist/es/embeds.js +974 -1427
  2. package/dist/es/embeds.js.map +1 -1
  3. package/dist/es/src/components/DialogEmbed/DialogOverlay.d.ts +20 -0
  4. package/dist/es/src/components/DialogEmbed/DialogPortal.d.ts +36 -0
  5. package/dist/es/src/components/DialogEmbed/index.d.ts +38 -0
  6. package/dist/es/src/components/PlayerEmbed/controllers/event-forwarder.d.ts +15 -0
  7. package/dist/es/src/components/{Embed → PlayerEmbed}/controllers/fetcher.d.ts +5 -4
  8. package/dist/es/src/components/{Embed/controllers/tracking.d.ts → PlayerEmbed/controllers/tracking/index.d.ts} +14 -11
  9. package/dist/es/src/components/PlayerEmbed/controllers/tracking/utils.d.ts +17 -0
  10. package/dist/es/src/components/{Embed → PlayerEmbed}/index.d.ts +29 -21
  11. package/dist/es/src/components/PlayerEmbed/tests/data.d.ts +3 -0
  12. package/dist/es/src/index.d.ts +2 -1
  13. package/dist/iife/dialog-embed/embed.iife.js +1755 -0
  14. package/dist/iife/dialog-embed/embed.iife.js.map +1 -0
  15. package/dist/iife/embeds.iife.js +667 -457
  16. package/dist/iife/embeds.iife.js.map +1 -1
  17. package/dist/iife/player-embed/embed.iife.js +1617 -0
  18. package/dist/iife/player-embed/embed.iife.js.map +1 -0
  19. package/package.json +43 -31
  20. package/src/components/DialogEmbed/Dialog.stories.ts +91 -0
  21. package/src/components/DialogEmbed/DialogOverlay.ts +131 -0
  22. package/src/components/DialogEmbed/DialogPortal.ts +126 -0
  23. package/src/components/DialogEmbed/index.ts +97 -0
  24. package/src/components/{Embed/Embed.stories.ts → PlayerEmbed/PlayerEmbed.stories.ts} +41 -15
  25. package/src/components/{Embed → PlayerEmbed}/controllers/event-forwarder.ts +6 -5
  26. package/src/components/{Embed → PlayerEmbed}/controllers/fetcher.ts +33 -14
  27. package/src/components/{Embed/controllers/tracking.ts → PlayerEmbed/controllers/tracking/index.ts} +47 -115
  28. package/src/components/PlayerEmbed/controllers/tracking/utils.ts +95 -0
  29. package/src/components/{Embed → PlayerEmbed}/index.ts +76 -27
  30. package/src/components/PlayerEmbed/tests/PlayerEmbed.spec.ts +80 -0
  31. package/src/components/PlayerEmbed/tests/data.ts +183 -0
  32. package/src/index.ts +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"embeds.js","sources":["../../../../node_modules/lit/node_modules/@lit/reactive-element/css-tag.js","../../../../node_modules/lit/node_modules/@lit/reactive-element/reactive-element.js","../../../../node_modules/lit/node_modules/lit-html/lit-html.js","../../../../node_modules/lit-element/node_modules/@lit/reactive-element/css-tag.js","../../../../node_modules/lit-element/node_modules/@lit/reactive-element/reactive-element.js","../../../../node_modules/lit-element/node_modules/lit-html/lit-html.js","../../../../node_modules/lit-element/lit-element.js","../../src/utils/events.ts","../../src/components/Embed/controllers/event-forwarder.ts","../../src/utils/env.ts","../../src/components/Embed/controllers/fetcher.ts","../../src/components/Embed/controllers/tracking.ts","../../src/components/Embed/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$ES(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$E_??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$E_?.delete(t)}_$ES(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$E_?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$E_?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EO(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i,e=!1,r){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(e?r:this[t],s))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.C(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$E_?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$ET()}catch(s){throw t=!1,this._$ET(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$E_?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$ET(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.2\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${(Math.random()+\"\").slice(9)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),A=new WeakMap,E=r.createTreeWalker(r,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[C(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=E.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?k:\"?\"===e[1]?H:\"@\"===e[1]?I:R}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),E.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function N(t,i,s=t,e){if(i===w)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=N(t,h._$AS(t,i.values),h,e)),i}class S{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);E.currentNode=e;let h=E.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new M(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new L(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=E.nextNode(),o++)}return E.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class M{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=T,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=N(this,t,i),c(t)?t===T||null==t||\"\"===t?(this._$AH!==T&&this._$AR(),this._$AH=T):t!==this._$AH&&t!==w&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):u(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==T&&c(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=V.createElement(C(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new S(e,this),s=t.u(this.options);t.p(i),this.$(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new V(t)),i}T(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new M(this.k(l()),this.k(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class R{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=T,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=N(this,e[s+n],i,n),r===w&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===T?t=T:t!==T&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.O(t)}O(t){t===T?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class k extends R{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===T?void 0:t}}class H extends R{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==T)}}class I extends R{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=N(this,t,i,0)??T)===w)return;const s=this._$AH,e=t===T&&s!==T||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==T&&(s===T||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class L{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){N(this,t)}}const z={j:e,P:h,A:o,C:1,M:P,L:S,R:u,V:N,D:M,I:R,H,N:I,U:k,B:L},Z=t.litHtmlPolyfillSupport;Z?.(V,M),(t.litHtmlVersions??=[]).push(\"3.1.0\");const j=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{z as _$LH,x as html,w as noChange,T as nothing,j as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$ES(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$E_??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$E_?.delete(t)}_$ES(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$E_?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$E_?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EO(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i,e=!1,r){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(e?r:this[t],s))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.C(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$E_?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$ET()}catch(s){throw t=!1,this._$ET(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$E_?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$ET(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.2\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${(Math.random()+\"\").slice(9)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),A=new WeakMap,E=r.createTreeWalker(r,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[C(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=E.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?k:\"?\"===e[1]?H:\"@\"===e[1]?I:R}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),E.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function N(t,i,s=t,e){if(i===w)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=N(t,h._$AS(t,i.values),h,e)),i}class S{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);E.currentNode=e;let h=E.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new M(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new L(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=E.nextNode(),o++)}return E.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class M{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=T,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=N(this,t,i),c(t)?t===T||null==t||\"\"===t?(this._$AH!==T&&this._$AR(),this._$AH=T):t!==this._$AH&&t!==w&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):u(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==T&&c(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=V.createElement(C(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new S(e,this),s=t.u(this.options);t.p(i),this.$(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new V(t)),i}T(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new M(this.k(l()),this.k(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class R{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=T,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=N(this,e[s+n],i,n),r===w&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===T?t=T:t!==T&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.O(t)}O(t){t===T?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class k extends R{constructor(){super(...arguments),this.type=3}O(t){this.element[this.name]=t===T?void 0:t}}class H extends R{constructor(){super(...arguments),this.type=4}O(t){this.element.toggleAttribute(this.name,!!t&&t!==T)}}class I extends R{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=N(this,t,i,0)??T)===w)return;const s=this._$AH,e=t===T&&s!==T||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==T&&(s===T||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class L{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){N(this,t)}}const z={j:e,P:h,A:o,C:1,M:P,L:S,R:u,V:N,D:M,I:R,H,N:I,U:k,B:L},Z=t.litHtmlPolyfillSupport;Z?.(V,M),(t.litHtmlVersions??=[]).push(\"3.1.0\");const j=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{z as _$LH,x as html,w as noChange,T as nothing,j as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return i}}s._$litElement$=!0,s[(\"finalized\",\"finalized\")]=!0,globalThis.litElementHydrateSupport?.({LitElement:s});const r=globalThis.litElementPolyfillSupport;r?.({LitElement:s});const o={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.0.2\");export{s as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","function forwardEvent(type: string, fromElement: HTMLElement, toElement: HTMLElement) {\n function forwarder(event: Event) {\n toElement.dispatchEvent(new CustomEvent(event.type, event));\n }\n\n fromElement.addEventListener(type, forwarder);\n\n return () => {\n fromElement.removeEventListener(type, forwarder);\n };\n}\n\nexport { forwardEvent };\n","import { createRef, ref } from 'lit/directives/ref.js';\n\nimport type { Embed } from '..';\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type { Ref } from 'lit/directives/ref.js';\n\nimport { forwardEvent } from '~/utils/events';\n\ntype EmbedHost = ReactiveControllerHost & Embed;\n\nclass EventForwardController implements ReactiveController {\n host: EmbedHost;\n\n private _events: string[] = [];\n private _cleanup: (() => void)[] = [];\n private _forwardElementRef: Ref<HTMLElement> = createRef();\n\n constructor(host: EmbedHost, events: string[]) {\n this.host = host;\n this._events = events;\n host.addController(this);\n }\n\n register() {\n return ref(this._forwardElementRef);\n }\n\n hostConnected() {\n // Guaranteed to have the element ref in the RAF callback because of how the lit lifecycle works\n requestAnimationFrame(() => {\n this._events.forEach((event) => {\n if (this._forwardElementRef.value) {\n this._cleanup.push(forwardEvent(event, this._forwardElementRef.value, this.host));\n }\n });\n });\n }\n\n hostDisconnected() {\n this._cleanup.forEach((fn) => {\n fn();\n });\n this._cleanup = [];\n }\n}\n\nexport { EventForwardController };\n","type Environment = 'local' | 'dev' | 'staging' | 'prod';\n\ntype GetEnvUrlsReturn = {\n videoUrl: string;\n publicApiUrl: string;\n embedApiUrl: string;\n};\n\nconst devVideoUrl = 'https://d2rxhdlm2q91uk.cloudfront.net';\nconst stagingVideoUrl = 'https://d1ix11aj5kfygl.cloudfront.net';\nconst prodVideoUrl = 'https://d157jlwnudd93d.cloudfront.net';\n\nconst devPublicApiUrl = 'https://bshyfw4h5a.execute-api.ap-southeast-2.amazonaws.com/dev';\nconst stagingPublicApiUrl = 'https://gyzw7rpbq3.execute-api.ap-southeast-2.amazonaws.com/staging';\nconst prodPublicApiUrl = 'https://vfcjuim1l3.execute-api.ap-southeast-2.amazonaws.com/prod';\n\nconst localEmbedApiUrl = 'http://localhost:6060/v2';\nconst devEmbedApiUrl = 'https://embed-dev.vouchfor.com/v2';\nconst stagingEmbedApiUrl = 'https://embed-staging.vouchfor.com/v2';\nconst prodEmbedApiUrl = 'https://embed.vouchfor.com/v2';\n\n// We are handling the case where env is an unknown string so the ts error is a lie\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nfunction getEnvUrls(env: Environment): GetEnvUrlsReturn {\n if (!['local', 'dev', 'staging', 'prod'].includes(env)) {\n throw new Error(`Unknown environment: ${env}`);\n }\n\n if (env === 'local') {\n return {\n videoUrl: devVideoUrl,\n publicApiUrl: devPublicApiUrl,\n embedApiUrl: localEmbedApiUrl\n };\n }\n\n if (env === 'dev') {\n return {\n videoUrl: devVideoUrl,\n publicApiUrl: devPublicApiUrl,\n embedApiUrl: devEmbedApiUrl\n };\n }\n\n if (env === 'staging') {\n return {\n videoUrl: stagingVideoUrl,\n publicApiUrl: stagingPublicApiUrl,\n embedApiUrl: stagingEmbedApiUrl\n };\n }\n\n if (env === 'prod') {\n return {\n videoUrl: prodVideoUrl,\n publicApiUrl: prodPublicApiUrl,\n embedApiUrl: prodEmbedApiUrl\n };\n }\n}\n\nexport { devEmbedApiUrl, stagingEmbedApiUrl, prodEmbedApiUrl, getEnvUrls };\nexport type { Environment };\n","import { Task } from '@lit/task';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { Embed, EmbedProps } from '..';\nimport type { ReactiveControllerHost } from 'lit';\nimport type { Environment } from '~/utils/env';\n\nimport { getEnvUrls } from '~/utils/env';\n\ntype EmbedHost = ReactiveControllerHost & Embed;\n\ntype TaskDeps = [\n EmbedProps['env'],\n EmbedProps['apiKey'],\n EmbedProps['data'],\n EmbedProps['vouchId'],\n EmbedProps['templateId']\n];\n\nclass FetcherController {\n host: EmbedHost;\n\n private _fetching = false;\n\n set fetching(value) {\n if (this._fetching !== value) {\n this._fetching = value;\n this.host.requestUpdate();\n }\n }\n get fetching() {\n return this._fetching;\n }\n\n private getVouch = async (env: Environment, apiKey: string, vouchId: string) => {\n const { embedApiUrl } = getEnvUrls(env);\n\n const cacheCheck = uuidv4();\n const res = await fetch(`${embedApiUrl}/vouches/${vouchId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['X-Cache-Check', cacheCheck]\n ]\n });\n\n const vouch = await res.json();\n this.host.dispatchEvent(new CustomEvent('vouch:loaded', { detail: vouch?.id }));\n\n // HACK: we're currently using API Gateway caching on the embed API without any invalidation logic,\n // so to ensure that the cache stays up to date, whenever we detect a cache hit we trigger another\n // API call with the `Cache-Control` header which will re-fill the cache\n const resCacheCheck = res?.headers?.get('X-Cache-Check');\n if (resCacheCheck !== cacheCheck) {\n fetch(`${embedApiUrl}/vouches/${vouchId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['Cache-Control', 'max-age=0']\n ]\n });\n }\n\n return vouch;\n };\n\n private getTemplate = async (env: Environment, apiKey: string, templateId: string) => {\n const { embedApiUrl } = getEnvUrls(env);\n\n const cacheCheck = uuidv4();\n const res = await fetch(`${embedApiUrl}/templates/${templateId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['X-Cache-Check', cacheCheck]\n ]\n });\n const template = await res.json();\n\n // HACK: we're currently using API Gateway caching on the embed API without any invalidation logic,\n // so to ensure that the cache stays up to date, whenever we detect a cache hit we trigger another\n // API call with the `Cache-Control` header which will re-fill the cache\n const resCacheCheck = res?.headers?.get('X-Cache-Check');\n if (resCacheCheck !== cacheCheck) {\n fetch(`${embedApiUrl}/templates/${templateId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['Cache-Control', 'max-age=0']\n ]\n });\n }\n\n return template;\n };\n\n constructor(host: EmbedHost) {\n this.host = host;\n new Task<TaskDeps, void>(\n this.host,\n async ([env, apiKey, data, vouchId, templateId]: TaskDeps) => {\n try {\n host.vouch = undefined;\n host.template = undefined;\n\n if (data) {\n let template;\n if (templateId) {\n this.fetching = true;\n template = await this.getTemplate(env, apiKey, templateId);\n }\n host.vouch = data;\n host.template = template ?? data?.settings?.template?.instance;\n } else if (vouchId) {\n this.fetching = true;\n\n const [vouch, template] = await Promise.all([\n this.getVouch(env, apiKey, vouchId),\n templateId ? this.getTemplate(env, apiKey, templateId) : null\n ]);\n host.vouch = vouch;\n host.template = template ?? vouch?.settings?.template?.instance;\n }\n } finally {\n this.fetching = false;\n }\n },\n () => [host.env, host.apiKey, host.data, host.vouchId, host.templateId]\n );\n }\n}\n\nexport { FetcherController };\n","import { v4 as uuidv4 } from 'uuid';\n\nimport type { Embed } from '..';\nimport type { VideoEventDetail } from '@vouchfor/media-player';\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\n\nimport packageJson from '../../../../package.json';\nimport { getEnvUrls } from '~/utils/env';\n\nconst MINIMUM_SEND_THRESHOLD = 1;\n\ntype EmbedHost = ReactiveControllerHost & Embed;\n\ntype TrackingEvent = 'VOUCH_LOADED' | 'VOUCH_RESPONSE_VIEWED' | 'VIDEO_PLAYED' | 'VIDEO_STREAMED';\ntype TrackingPayload = {\n vouchId?: string;\n answerId?: string;\n streamStart?: number;\n streamEnd?: number;\n};\n\ntype TimeMap = {\n [key: string]: number;\n};\n\ntype BooleanMap = {\n [key: string]: boolean;\n};\n\nclass TrackingController implements ReactiveController {\n host: EmbedHost;\n\n private _tabId: string | undefined = undefined;\n private _clientId: string | undefined = undefined;\n private _visitorId: string | undefined = undefined;\n\n private _hasPlayed = false;\n private _hasLoaded: BooleanMap = {};\n private _answersViewed: BooleanMap = {};\n private _streamStartTime: TimeMap = {};\n private _streamLatestTime: TimeMap = {};\n private _currentlyPlayingVideo: VideoEventDetail | null = null;\n\n constructor(host: EmbedHost) {\n this.host = host;\n host.addController(this);\n }\n\n private _findVouchId(payload?: TrackingPayload) {\n if (payload && 'vouchId' in payload) {\n return payload.vouchId;\n }\n if (this.host.vouch) {\n return this.host.vouch.id;\n }\n return null;\n }\n\n private _createVisitor = (visitorId: string) => {\n const { publicApiUrl } = getEnvUrls(this.host.env);\n window.localStorage?.setItem?.('vouch-uid-visitor', visitorId);\n navigator.sendBeacon(`${publicApiUrl}/api/visitor`, JSON.stringify({ visitorId }));\n return visitorId;\n };\n\n private _getUids() {\n if (typeof window === 'undefined') {\n return {\n client: null,\n tab: null,\n request: uuidv4()\n };\n }\n\n // Persisted for a user for the same device + browser, so we can e.g. search for all logs related to that browser\n const visitorId =\n this._visitorId || window.localStorage?.getItem?.('vouch-uid-visitor') || this._createVisitor(uuidv4());\n // Persisted for a user for the same device + browser, so we can e.g. search for all logs related to that browser\n const clientId = this._clientId || window.localStorage?.getItem?.('vouch-uid-client') || uuidv4();\n // Persisted in session storage, so we can search for everything the user has done in a specific tab\n const tabId = this._tabId || window.sessionStorage?.getItem?.('vouch-uid-tab') || uuidv4();\n // Not persisted, allows us to search for any logs related to a single FE request\n // E.g. BE should pass this request ID through all other services to be able to group logs\n const requestId = uuidv4();\n\n // Cache and persist uids\n if (visitorId !== this._visitorId) {\n this._visitorId = visitorId;\n window.localStorage?.setItem?.('vouch-uid-visitor', visitorId);\n }\n\n if (clientId !== this._clientId) {\n this._clientId = clientId;\n window.localStorage?.setItem?.('vouch-uid-client', clientId);\n }\n\n if (tabId !== this._tabId) {\n this._tabId = tabId;\n window.sessionStorage?.setItem?.('vouch-uid-tab', tabId);\n }\n\n return {\n client: clientId,\n tab: tabId,\n request: requestId,\n visitor: visitorId\n };\n }\n\n private _getReportingMetadata = () => {\n const [country, region] = Intl.DateTimeFormat().resolvedOptions().timeZone?.split?.('/') ?? [];\n\n const utmParams: any = {};\n [...new URLSearchParams(location.search).entries()].forEach(([key, value]) => {\n if (/utm/.test(key)) {\n const param = key.toLowerCase().replace(/[-_][a-z0-9]/g, (group) => group.slice(-1).toUpperCase());\n utmParams[param] = value;\n }\n });\n\n return {\n source: this.host.trackingSource,\n time: new Date(),\n region,\n country,\n screenHeight: window.screen.height,\n screenWidth: window.screen.width,\n referrer: document.referrer,\n currentUrl: location.href,\n ...utmParams\n };\n };\n\n private _sendTrackingEvent = (event: TrackingEvent, payload?: TrackingPayload) => {\n const vouchId = this._findVouchId(payload);\n\n if (!vouchId || this.host.disableTracking) {\n return;\n }\n\n const { publicApiUrl } = getEnvUrls(this.host.env);\n const { client, tab, request, visitor } = this._getUids();\n\n navigator.sendBeacon(\n `${publicApiUrl}/api/v2/events`,\n JSON.stringify({\n event,\n payload: {\n ...payload,\n vouchId\n },\n context: {\n 'x-uid-client': client,\n 'x-uid-tab': tab,\n 'x-uid-request': request,\n 'x-uid-visitor': visitor,\n 'x-reporting-metadata': this._getReportingMetadata(),\n 'x-embeds-version': packageJson.version\n }\n })\n );\n };\n\n private _streamEnded = () => {\n if (this._currentlyPlayingVideo) {\n const { id, key } = this._currentlyPlayingVideo;\n // Don't send a tracking event when seeking backwards\n if (this._streamLatestTime[key] > this._streamStartTime[key] + MINIMUM_SEND_THRESHOLD) {\n // Send a video streamed event any time the stream ends to capture the time between starting\n // the video and the video stopping for any reason (pausing, deleting the embed node or closing the browser)\n this._sendTrackingEvent('VIDEO_STREAMED', {\n answerId: id,\n streamStart: this._streamStartTime[key],\n streamEnd: this._streamLatestTime[key]\n });\n }\n\n // Make sure these events are only sent once by deleting the start and latest times\n delete this._streamStartTime[key];\n delete this._streamLatestTime[key];\n }\n };\n\n private _handleVouchLoaded = ({ detail: vouchId }: CustomEvent<string>) => {\n if (!vouchId) {\n return;\n }\n\n // Only send loaded event once per session\n if (!this._hasLoaded[vouchId]) {\n this._sendTrackingEvent('VOUCH_LOADED', { vouchId });\n this._hasLoaded[vouchId] = true;\n }\n };\n\n private _handlePlay = () => {\n // Only send the video played event once per session\n if (!this._hasPlayed) {\n this._sendTrackingEvent('VIDEO_PLAYED', {\n streamStart: this.host.currentTime\n });\n this._hasPlayed = true;\n }\n };\n\n private _handleVideoPlay = ({ detail: { id, key, node } }: CustomEvent<VideoEventDetail>) => {\n // Only increment play count once per session\n if (!this._answersViewed[key]) {\n this._sendTrackingEvent('VOUCH_RESPONSE_VIEWED', {\n answerId: id\n });\n this._answersViewed[key] = true;\n }\n\n if (!this._streamStartTime[key]) {\n this._streamStartTime[key] = node.currentTime;\n this._streamLatestTime[key] = node.currentTime;\n }\n };\n\n private _handleVideoTimeUpdate = ({ detail: { id, key, node } }: CustomEvent<VideoEventDetail>) => {\n if (\n // We only want to count any time that the video is actually playing\n !this.host.paused &&\n // Only update the latest time if this event fires for the currently active video\n id === this.host.scene?.video?.id\n ) {\n this._currentlyPlayingVideo = { id, key, node };\n this._streamLatestTime[key] = node.currentTime;\n }\n };\n\n private _handleVideoPause = ({ detail: { id, key } }: CustomEvent<VideoEventDetail>) => {\n if (this._streamLatestTime[key] > this._streamStartTime[key] + MINIMUM_SEND_THRESHOLD) {\n this._sendTrackingEvent('VIDEO_STREAMED', {\n answerId: id,\n streamStart: this._streamStartTime[key],\n streamEnd: this._streamLatestTime[key]\n });\n }\n delete this._streamStartTime[key];\n delete this._streamLatestTime[key];\n };\n\n private _pageUnloading = () => {\n this._streamEnded();\n // This will try to send the same stream event again so we delete the start and latest\n // time in stream ended so that there is no times to send and the pause event does nothing\n this.host.pause();\n };\n\n private _handleVisibilityChange = () => {\n if (document.visibilityState === 'hidden') {\n this._pageUnloading();\n }\n };\n\n private _handlePageHide = () => {\n this._pageUnloading();\n };\n\n hostConnected() {\n requestAnimationFrame(() => {\n if ('onvisibilitychange' in document) {\n document.addEventListener('visibilitychange', this._handleVisibilityChange);\n } else {\n window.addEventListener('pagehide', this._handlePageHide);\n }\n this.host.addEventListener('vouch:loaded', this._handleVouchLoaded);\n this.host.mediaPlayer?.addEventListener('play', this._handlePlay);\n this.host.mediaPlayer?.addEventListener('video:play', this._handleVideoPlay);\n this.host.mediaPlayer?.addEventListener('video:pause', this._handleVideoPause);\n this.host.mediaPlayer?.addEventListener('video:timeupdate', this._handleVideoTimeUpdate);\n });\n }\n\n hostDisconnected() {\n this._streamEnded();\n if ('onvisibilitychange' in document) {\n document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n } else {\n window.removeEventListener('pagehide', this._handlePageHide);\n }\n this.host.removeEventListener('vouch:loaded', this._handleVouchLoaded);\n this.host.mediaPlayer?.removeEventListener('play', this._handlePlay);\n this.host.mediaPlayer?.removeEventListener('video:play', this._handleVideoPlay);\n this.host.mediaPlayer?.removeEventListener('video:pause', this._handleVideoPause);\n this.host.mediaPlayer?.removeEventListener('video:timeupdate', this._handleVideoTimeUpdate);\n }\n}\n\nexport { TrackingController };\n","import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\n\nimport type { Scene, Scenes, TemplateInstance } from '@vouchfor/canvas-video';\nimport type { MediaPlayer, MediaPlayerProps } from '@vouchfor/media-player';\nimport type { Ref } from 'lit/directives/ref.js';\nimport type { Environment } from '~/utils/env';\n\nimport { EventForwardController } from './controllers/event-forwarder';\nimport { FetcherController } from './controllers/fetcher';\nimport { TrackingController } from './controllers/tracking';\n\nimport '@vouchfor/media-player';\n\ntype EmbedProps = Pick<MediaPlayerProps, 'data' | 'aspectRatio' | 'preload' | 'autoplay' | 'controls'> & {\n env: Environment;\n apiKey: string;\n disableTracking?: boolean;\n trackingSource?: string;\n vouchId?: string;\n templateId?: string;\n};\n\n@customElement('vouch-embed')\nclass Embed extends LitElement {\n private _mediaPlayerRef: Ref<MediaPlayer> = createRef();\n\n @property({ type: Object, attribute: 'data' }) data: EmbedProps['data'];\n @property({ type: String }) vouchId: EmbedProps['vouchId'];\n @property({ type: String }) templateId: EmbedProps['templateId'];\n\n @property({ type: String }) env: EmbedProps['env'] = 'prod';\n @property({ type: String }) apiKey: EmbedProps['apiKey'] = '';\n @property({ type: Boolean }) disableTracking: EmbedProps['disableTracking'] = false;\n @property({ type: String }) trackingSource: EmbedProps['trackingSource'] = 'embed';\n\n @property({ type: Array }) controls: EmbedProps['controls'];\n @property({ type: String }) preload: EmbedProps['preload'] = 'auto';\n @property({ type: Boolean }) autoplay: EmbedProps['autoplay'] = false;\n @property({ type: Number }) aspectRatio: EmbedProps['aspectRatio'] = 0;\n\n private eventController = new EventForwardController(this, [\n 'durationchange',\n 'ended',\n 'error',\n 'loadeddata',\n 'pause',\n 'stalled',\n 'play',\n 'playing',\n 'ratechange',\n 'scenechange',\n 'seeking',\n 'seeked',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n\n 'video:loadeddata',\n 'video:seeking',\n 'video:seeked',\n 'video:play',\n 'video:playing',\n 'video:pause',\n 'video:stalled',\n 'video:timeupdate',\n 'video:ended',\n 'video:error'\n ]);\n private _fetcherController = new FetcherController(this);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n private _trackingController = new TrackingController(this);\n\n @state() vouch: EmbedProps['data'];\n @state() template: TemplateInstance | undefined;\n\n get fetching() {\n return this._fetcherController.fetching;\n }\n\n get waiting() {\n return this._mediaPlayerRef.value?.waiting;\n }\n\n get seeking() {\n return this._mediaPlayerRef.value?.seeking;\n }\n\n get paused() {\n return this._mediaPlayerRef.value?.paused;\n }\n\n get captions() {\n return this._mediaPlayerRef.value?.captions;\n }\n\n get fullscreen() {\n return this._mediaPlayerRef.value?.fullscreen;\n }\n\n get duration() {\n return this._mediaPlayerRef.value?.duration;\n }\n\n set currentTime(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.currentTime = value;\n }\n }\n get currentTime() {\n return this._mediaPlayerRef.value?.currentTime ?? 0;\n }\n\n set playbackRate(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.playbackRate = value;\n }\n }\n get playbackRate() {\n return this._mediaPlayerRef.value?.playbackRate ?? 1;\n }\n\n set volume(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.volume = value;\n }\n }\n get volume() {\n return this._mediaPlayerRef.value?.volume ?? 1;\n }\n\n set muted(value: boolean) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.muted = value;\n }\n }\n get muted() {\n return this._mediaPlayerRef.value?.muted ?? false;\n }\n\n get scene(): Scene | null {\n return this._mediaPlayerRef.value?.scene ?? null;\n }\n\n get scenes(): Scene[] {\n return this._mediaPlayerRef.value?.scenes ?? [];\n }\n\n get sceneConfig(): Scenes | null {\n return this._mediaPlayerRef.value?.sceneConfig ?? null;\n }\n\n get videoState() {\n return this._mediaPlayerRef.value?.videoState;\n }\n\n get mediaPlayer() {\n return this._mediaPlayerRef.value;\n }\n\n play() {\n this._mediaPlayerRef.value?.play();\n }\n\n pause() {\n this._mediaPlayerRef.value?.pause();\n }\n\n setScene(index: number) {\n this._mediaPlayerRef.value?.setScene(index);\n }\n\n render() {\n return html`\n <vmp-new-media-player\n ${ref(this._mediaPlayerRef)}\n ${this.eventController.register()}\n ?autoplay=${this.autoplay}\n ?loading=${this.fetching}\n .data=${this.vouch}\n .template=${this.template}\n aspectRatio=${ifDefined(this.aspectRatio)}\n preload=${ifDefined(this.preload)}\n .controls=${this.controls}\n ></vmp-new-media-player>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed': Embed;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed': Embed;\n }\n }\n}\n\nexport { Embed };\nexport type { EmbedProps };\n"],"names":["t","e","s","o","n$5","r","n","S","c","i","h","a","l","p","d","u","f","y","b$1","_a","b","v","_","m","g","$","w","T","A","E","C","P","x","V$1","V","k","H","I","R","N","_b","S$2","M","L","R$1","H$1","Z","n$2","j","forwardEvent","type","fromElement","toElement","forwarder","event","EventForwardController","host","events","createRef","ref","fn","devVideoUrl","stagingVideoUrl","prodVideoUrl","devPublicApiUrl","stagingPublicApiUrl","prodPublicApiUrl","localEmbedApiUrl","devEmbedApiUrl","stagingEmbedApiUrl","prodEmbedApiUrl","getEnvUrls","env","FetcherController","apiKey","vouchId","embedApiUrl","cacheCheck","uuidv4","res","vouch","templateId","template","Task","data","_d","_c","value","MINIMUM_SEND_THRESHOLD","TrackingController","visitorId","publicApiUrl","country","region","utmParams","key","param","group","payload","client","tab","request","visitor","packageJson","id","node","clientId","tabId","_f","_e","requestId","_h","_g","_j","_i","_l","_k","Embed","LitElement","index","html","ifDefined","__decorateClass","property","state","customElement"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
1
+ {"version":3,"file":"embeds.js","sources":["../../src/utils/events.ts","../../src/components/PlayerEmbed/controllers/event-forwarder.ts","../../src/utils/env.ts","../../src/components/PlayerEmbed/controllers/fetcher.ts","../../src/components/PlayerEmbed/controllers/tracking/utils.ts","../../src/components/PlayerEmbed/controllers/tracking/index.ts","../../src/components/PlayerEmbed/index.ts","../../src/components/DialogEmbed/DialogOverlay.ts","../../src/components/DialogEmbed/DialogPortal.ts","../../src/components/DialogEmbed/index.ts"],"sourcesContent":["function forwardEvent(type: string, fromElement: HTMLElement, toElement: HTMLElement) {\n function forwarder(event: Event) {\n toElement.dispatchEvent(new CustomEvent(event.type, event));\n }\n\n fromElement.addEventListener(type, forwarder);\n\n return () => {\n fromElement.removeEventListener(type, forwarder);\n };\n}\n\nexport { forwardEvent };\n","import { createRef, ref } from 'lit/directives/ref.js';\n\nimport type { PlayerEmbed } from '..';\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type { DirectiveResult } from 'lit/directive.js';\nimport type { Ref } from 'lit/directives/ref.js';\n\nimport { forwardEvent } from '~/utils/events';\n\ntype PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;\n\nclass EventForwardController implements ReactiveController {\n host: PlayerEmbedHost;\n\n private _events: string[] = [];\n private _cleanup: (() => void)[] = [];\n private _forwardElementRef: Ref<HTMLElement> = createRef();\n\n constructor(host: PlayerEmbedHost, events: string[]) {\n this.host = host;\n this._events = events;\n host.addController(this);\n }\n\n register(): DirectiveResult {\n return ref(this._forwardElementRef);\n }\n\n hostConnected() {\n // Guaranteed to have the element ref in the RAF callback because of how the lit lifecycle works\n requestAnimationFrame(() => {\n this._events.forEach((event) => {\n if (this._forwardElementRef.value) {\n this._cleanup.push(forwardEvent(event, this._forwardElementRef.value, this.host));\n }\n });\n });\n }\n\n hostDisconnected() {\n this._cleanup.forEach((fn) => {\n fn();\n });\n this._cleanup = [];\n }\n}\n\nexport { EventForwardController };\n","type Environment = 'local' | 'dev' | 'staging' | 'prod';\n\ntype GetEnvUrlsReturn = {\n videoUrl: string;\n publicApiUrl: string;\n embedApiUrl: string;\n};\n\nconst devVideoUrl = 'https://d2rxhdlm2q91uk.cloudfront.net';\nconst stagingVideoUrl = 'https://d1ix11aj5kfygl.cloudfront.net';\nconst prodVideoUrl = 'https://d157jlwnudd93d.cloudfront.net';\n\nconst devPublicApiUrl = 'https://bshyfw4h5a.execute-api.ap-southeast-2.amazonaws.com/dev';\nconst stagingPublicApiUrl = 'https://gyzw7rpbq3.execute-api.ap-southeast-2.amazonaws.com/staging';\nconst prodPublicApiUrl = 'https://vfcjuim1l3.execute-api.ap-southeast-2.amazonaws.com/prod';\n\nconst localEmbedApiUrl = 'http://localhost:6060/v2';\nconst devEmbedApiUrl = 'https://embed-dev.vouchfor.com/v2';\nconst stagingEmbedApiUrl = 'https://embed-staging.vouchfor.com/v2';\nconst prodEmbedApiUrl = 'https://embed.vouchfor.com/v2';\n\n// We are handling the case where env is an unknown string so the ts error is a lie\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nfunction getEnvUrls(env: Environment): GetEnvUrlsReturn {\n if (!['local', 'dev', 'staging', 'prod'].includes(env)) {\n throw new Error(`Unknown environment: ${env}`);\n }\n\n if (env === 'local') {\n return {\n videoUrl: devVideoUrl,\n publicApiUrl: devPublicApiUrl,\n embedApiUrl: localEmbedApiUrl\n };\n }\n\n if (env === 'dev') {\n return {\n videoUrl: devVideoUrl,\n publicApiUrl: devPublicApiUrl,\n embedApiUrl: devEmbedApiUrl\n };\n }\n\n if (env === 'staging') {\n return {\n videoUrl: stagingVideoUrl,\n publicApiUrl: stagingPublicApiUrl,\n embedApiUrl: stagingEmbedApiUrl\n };\n }\n\n if (env === 'prod') {\n return {\n videoUrl: prodVideoUrl,\n publicApiUrl: prodPublicApiUrl,\n embedApiUrl: prodEmbedApiUrl\n };\n }\n}\n\nexport { devEmbedApiUrl, stagingEmbedApiUrl, prodEmbedApiUrl, getEnvUrls };\nexport type { Environment };\n","import { Task } from '@lit/task';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { PlayerEmbed, PlayerEmbedProps } from '..';\nimport type { ReactiveControllerHost } from 'lit';\nimport type { Environment } from '~/utils/env';\n\nimport { getEnvUrls } from '~/utils/env';\n\ntype PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;\n\ntype FetchTaskDeps = [\n PlayerEmbedProps['env'],\n PlayerEmbedProps['apiKey'],\n PlayerEmbedProps['data'],\n PlayerEmbedProps['vouchId'],\n PlayerEmbedProps['templateId']\n];\n\ntype FilterTaskDeps = [PlayerEmbedProps['data'], PlayerEmbedProps['questions']];\n\nclass FetcherController {\n host: PlayerEmbedHost;\n\n private _fetching = false;\n private _vouch: PlayerEmbedProps['data'];\n\n set fetching(value) {\n if (this._fetching !== value) {\n this._fetching = value;\n this.host.requestUpdate();\n }\n }\n get fetching() {\n return this._fetching;\n }\n\n private getVouch = async (env: Environment, apiKey: string, vouchId: string) => {\n const { embedApiUrl } = getEnvUrls(env);\n\n const cacheCheck = uuidv4();\n const res = await fetch(`${embedApiUrl}/vouches/${vouchId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['X-Cache-Check', cacheCheck]\n ]\n });\n\n const vouch = await res.json();\n this.host.dispatchEvent(new CustomEvent('vouch:loaded', { detail: vouch?.id }));\n\n // HACK: we're currently using API Gateway caching on the embed API without any invalidation logic,\n // so to ensure that the cache stays up to date, whenever we detect a cache hit we trigger another\n // API call with the `Cache-Control` header which will re-fill the cache\n const resCacheCheck = res?.headers?.get('X-Cache-Check');\n if (resCacheCheck !== cacheCheck) {\n fetch(`${embedApiUrl}/vouches/${vouchId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['Cache-Control', 'max-age=0']\n ]\n });\n }\n\n return vouch;\n };\n\n private getTemplate = async (env: Environment, apiKey: string, templateId: string) => {\n const { embedApiUrl } = getEnvUrls(env);\n\n const cacheCheck = uuidv4();\n const res = await fetch(`${embedApiUrl}/templates/${templateId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['X-Cache-Check', cacheCheck]\n ]\n });\n const template = await res.json();\n\n // HACK: we're currently using API Gateway caching on the embed API without any invalidation logic,\n // so to ensure that the cache stays up to date, whenever we detect a cache hit we trigger another\n // API call with the `Cache-Control` header which will re-fill the cache\n const resCacheCheck = res?.headers?.get('X-Cache-Check');\n if (resCacheCheck !== cacheCheck) {\n fetch(`${embedApiUrl}/templates/${templateId}`, {\n method: 'GET',\n headers: [\n ['X-Api-Key', apiKey],\n ['Cache-Control', 'max-age=0']\n ]\n });\n }\n\n return template;\n };\n\n constructor(host: PlayerEmbedHost) {\n this.host = host;\n new Task<FetchTaskDeps, void>(\n this.host,\n async ([env, apiKey, data, vouchId, templateId]: FetchTaskDeps) => {\n try {\n host.vouch = undefined;\n host.template = undefined;\n\n if (data) {\n let template;\n if (templateId) {\n this.fetching = true;\n template = await this.getTemplate(env, apiKey, templateId);\n }\n this._vouch = data;\n host.template = template ?? data?.settings?.template?.instance;\n } else if (vouchId) {\n this.fetching = true;\n\n const [vouch, template] = await Promise.all([\n this.getVouch(env, apiKey, vouchId),\n templateId ? this.getTemplate(env, apiKey, templateId) : null\n ]);\n this._vouch = vouch;\n host.template = template ?? vouch?.settings?.template?.instance;\n }\n } finally {\n this.fetching = false;\n }\n },\n () => [host.env, host.apiKey, host.data, host.vouchId, host.templateId]\n );\n\n // This second task is to be able to filter the vouch without fetching it again if only the questions changed\n new Task<FilterTaskDeps, void>(\n this.host,\n ([vouch, questions]: FilterTaskDeps) => {\n host.vouch = vouch\n ? {\n ...vouch,\n questions: {\n items: vouch?.questions.items.filter((_, index) => !questions?.length || questions?.includes(index + 1))\n }\n }\n : undefined;\n },\n () => [this._vouch, host.questions]\n );\n }\n}\n\nexport { FetcherController };\n","import { TEMPLATE_VERSION } from '@vouchfor/canvas-video';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { TrackingPayload } from '.';\nimport type { Vouch } from '@vouchfor/video-utils';\nimport type { Environment } from '~/utils/env';\n\nimport packageJson from '~/../package.json';\nimport { getEnvUrls } from '~/utils/env';\n\nfunction createVisitor(env: Environment) {\n const { publicApiUrl } = getEnvUrls(env);\n const visitorId = uuidv4();\n navigator.sendBeacon(`${publicApiUrl}/api/visitor`, JSON.stringify({ visitorId }));\n return visitorId;\n}\n\nfunction getUids(env: Environment) {\n if (typeof window === 'undefined') {\n return {\n client: null,\n tab: null,\n request: uuidv4()\n };\n }\n\n // Persisted for a user for the same device + browser, so we can e.g. search for all logs related to that browser\n let visitorId = window.localStorage?.getItem?.('vouch-uid-visitor');\n // Persisted for a user for the same device + browser, so we can e.g. search for all logs related to that browser\n let clientId = window.localStorage?.getItem?.('vouch-uid-client');\n // Persisted in session storage, so we can search for everything the user has done in a specific tab\n let tabId = window.sessionStorage?.getItem?.('vouch-uid-tab');\n // Not persisted, allows us to search for any logs related to a single FE request\n // E.g. BE should pass this request ID through all other services to be able to group logs\n const requestId = uuidv4();\n\n // Cache uids\n if (!visitorId) {\n visitorId = createVisitor(env);\n window.localStorage?.setItem?.('vouch-uid-visitor', visitorId);\n }\n\n if (!clientId) {\n clientId = uuidv4();\n window.localStorage?.setItem?.('vouch-uid-client', clientId);\n }\n\n if (!tabId) {\n tabId = uuidv4();\n window.sessionStorage?.setItem?.('vouch-uid-tab', tabId);\n }\n\n return {\n client: clientId,\n tab: tabId,\n request: requestId,\n visitor: visitorId\n };\n}\n\nfunction findVouchId(payload?: TrackingPayload, vouch?: Vouch) {\n if (payload && 'vouchId' in payload) {\n return payload.vouchId;\n }\n return vouch?.id ?? null;\n}\n\nfunction getReportingMetadata(source = 'embedded_player') {\n const [country, region] = Intl.DateTimeFormat().resolvedOptions().timeZone?.split?.('/') ?? [];\n\n const utmParams: any = {};\n [...new URLSearchParams(location.search).entries()].forEach(([key, value]) => {\n if (/utm/.test(key)) {\n const param = key.toLowerCase().replace(/[-_][a-z0-9]/g, (group) => group.slice(-1).toUpperCase());\n utmParams[param] = value;\n }\n });\n\n return {\n source,\n time: new Date(),\n region,\n country,\n screenHeight: window.screen.height,\n screenWidth: window.screen.width,\n referrer: document.referrer,\n currentUrl: location.href,\n embedType: 'media-player-embed',\n embedVersion: packageJson.version,\n templateVersion: TEMPLATE_VERSION,\n ...utmParams\n };\n}\n\nexport { getUids, findVouchId, getReportingMetadata };\n","import type { PlayerEmbed } from '../..';\nimport type { VideoEventDetail } from '@vouchfor/media-player';\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\n\nimport { findVouchId, getReportingMetadata, getUids } from './utils';\nimport { getEnvUrls } from '~/utils/env';\n\nconst MINIMUM_SEND_THRESHOLD = 1;\n\ntype PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;\n\ntype TrackingEvent = 'VOUCH_LOADED' | 'VOUCH_RESPONSE_VIEWED' | 'VIDEO_PLAYED' | 'VIDEO_STREAMED';\ntype TrackingPayload = {\n vouchId?: string;\n answerId?: string;\n streamStart?: number;\n streamEnd?: number;\n};\n\ntype BatchEvent = {\n event: TrackingEvent;\n payload: TrackingPayload & {\n time: string;\n };\n};\n\ntype TimeMap = {\n [key: string]: number;\n};\n\ntype BooleanMap = {\n [key: string]: boolean;\n};\n\nclass TrackingController implements ReactiveController {\n host: PlayerEmbedHost;\n\n private _batchedEvents: BatchEvent[] = [];\n private _hasPlayed = false;\n private _hasLoaded: BooleanMap = {};\n private _answersViewed: BooleanMap = {};\n private _streamStartTime: TimeMap = {};\n private _streamLatestTime: TimeMap = {};\n private _currentlyPlayingVideo: VideoEventDetail | null = null;\n\n constructor(host: PlayerEmbedHost) {\n this.host = host;\n host.addController(this);\n }\n\n private _createTrackingEvent = (event: TrackingEvent, payload?: TrackingPayload) => {\n const vouchId = findVouchId(payload, this.host.vouch);\n\n if (!vouchId || this.host.disableTracking) {\n return;\n }\n\n this._batchedEvents.push({\n event,\n payload: {\n ...payload,\n vouchId,\n time: new Date().toISOString()\n }\n });\n };\n\n private _sendTrackingEvent = () => {\n if (this._batchedEvents.length <= 0) {\n return;\n }\n\n const { publicApiUrl } = getEnvUrls(this.host.env);\n const { client, tab, request, visitor } = getUids(this.host.env);\n\n navigator.sendBeacon(\n `${publicApiUrl}/api/batchevents`,\n JSON.stringify({\n payload: {\n events: this._batchedEvents\n },\n context: {\n 'x-uid-client': client,\n 'x-uid-tab': tab,\n 'x-uid-request': request,\n 'x-uid-visitor': visitor,\n 'x-reporting-metadata': getReportingMetadata(this.host.trackingSource)\n }\n })\n );\n\n this._batchedEvents = [];\n };\n\n private _streamEnded = () => {\n if (this._currentlyPlayingVideo) {\n const { id, key } = this._currentlyPlayingVideo;\n // Don't send a tracking event when seeking backwards\n if (this._streamLatestTime[key] > this._streamStartTime[key] + MINIMUM_SEND_THRESHOLD) {\n // Send a video streamed event any time the stream ends to capture the time between starting\n // the video and the video stopping for any reason (pausing, deleting the embed node or closing the browser)\n this._createTrackingEvent('VIDEO_STREAMED', {\n answerId: id,\n streamStart: this._streamStartTime[key],\n streamEnd: this._streamLatestTime[key]\n });\n }\n\n // Make sure these events are only sent once by deleting the start and latest times\n delete this._streamStartTime[key];\n delete this._streamLatestTime[key];\n }\n };\n\n private _handleVouchLoaded = ({ detail: vouchId }: CustomEvent<string>) => {\n if (!vouchId) {\n return;\n }\n\n // Only send loaded event once per session\n if (!this._hasLoaded[vouchId]) {\n this._createTrackingEvent('VOUCH_LOADED', { vouchId });\n this._hasLoaded[vouchId] = true;\n }\n };\n\n private _handlePlay = () => {\n // Only send the video played event once per session\n if (!this._hasPlayed) {\n this._createTrackingEvent('VIDEO_PLAYED', {\n streamStart: this.host.currentTime\n });\n this._hasPlayed = true;\n }\n };\n\n private _handleVideoPlay = ({ detail: { id, key } }: CustomEvent<VideoEventDetail>) => {\n // Only increment play count once per session\n if (!this._answersViewed[key]) {\n this._createTrackingEvent('VOUCH_RESPONSE_VIEWED', {\n answerId: id\n });\n this._answersViewed[key] = true;\n }\n };\n\n private _handleVideoTimeUpdate = ({ detail: { id, key, node } }: CustomEvent<VideoEventDetail>) => {\n if (\n // We only want to count any time that the video is actually playing\n !this.host.paused &&\n // Only update the latest time if this event fires for the currently active video\n id === this.host.scene?.video?.id\n ) {\n this._currentlyPlayingVideo = { id, key, node };\n this._streamLatestTime[key] = node.currentTime;\n\n if (!this._streamStartTime[key]) {\n this._streamStartTime[key] = node.currentTime;\n this._streamLatestTime[key] = node.currentTime;\n }\n }\n };\n\n private _handleVideoPause = ({ detail: { id, key } }: CustomEvent<VideoEventDetail>) => {\n if (this._streamLatestTime[key] > this._streamStartTime[key] + MINIMUM_SEND_THRESHOLD) {\n this._createTrackingEvent('VIDEO_STREAMED', {\n answerId: id,\n streamStart: this._streamStartTime[key],\n streamEnd: this._streamLatestTime[key]\n });\n }\n delete this._streamStartTime[key];\n delete this._streamLatestTime[key];\n };\n\n private _pageUnloading = () => {\n this._streamEnded();\n this._sendTrackingEvent();\n };\n\n private _handleVisibilityChange = () => {\n if (document.visibilityState === 'hidden') {\n this._pageUnloading();\n }\n };\n\n private _handlePageHide = () => {\n this._pageUnloading();\n };\n\n hostConnected() {\n requestAnimationFrame(() => {\n if ('onvisibilitychange' in document) {\n document.addEventListener('visibilitychange', this._handleVisibilityChange);\n } else {\n window.addEventListener('pagehide', this._handlePageHide);\n }\n this.host.addEventListener('vouch:loaded', this._handleVouchLoaded);\n this.host.mediaPlayer?.addEventListener('play', this._handlePlay);\n this.host.mediaPlayer?.addEventListener('video:play', this._handleVideoPlay);\n this.host.mediaPlayer?.addEventListener('video:pause', this._handleVideoPause);\n this.host.mediaPlayer?.addEventListener('video:timeupdate', this._handleVideoTimeUpdate);\n });\n }\n\n hostDisconnected() {\n // Send events if DOM node is destroyed\n this._pageUnloading();\n\n if ('onvisibilitychange' in document) {\n document.removeEventListener('visibilitychange', this._handleVisibilityChange);\n } else {\n window.removeEventListener('pagehide', this._handlePageHide);\n }\n this.host.removeEventListener('vouch:loaded', this._handleVouchLoaded);\n this.host.mediaPlayer?.removeEventListener('play', this._handlePlay);\n this.host.mediaPlayer?.removeEventListener('video:play', this._handleVideoPlay);\n this.host.mediaPlayer?.removeEventListener('video:pause', this._handleVideoPause);\n this.host.mediaPlayer?.removeEventListener('video:timeupdate', this._handleVideoTimeUpdate);\n }\n}\n\nexport { TrackingController };\nexport type { TrackingEvent, TrackingPayload };\n","import { css, html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\n\nimport type { Scene, Scenes, TemplateInstance } from '@vouchfor/canvas-video';\nimport type { MediaPlayer, MediaPlayerProps } from '@vouchfor/media-player';\nimport type { Environment } from '~/utils/env';\n\nimport { EventForwardController } from './controllers/event-forwarder';\nimport { FetcherController } from './controllers/fetcher';\nimport { TrackingController } from './controllers/tracking';\n\nimport '@vouchfor/media-player';\n\ntype PlayerEmbedProps = Pick<\n MediaPlayerProps,\n 'data' | 'aspectRatio' | 'language' | 'preload' | 'autoplay' | 'controls'\n> & {\n env: Environment;\n apiKey: string;\n disableTracking?: boolean;\n trackingSource?: string;\n vouchId?: string;\n templateId?: string;\n // Index of the questions to include starting from 1\n questions?: number[];\n};\n\n@customElement('vouch-embed-player')\nclass PlayerEmbed extends LitElement {\n static styles = [\n css`\n :host {\n display: flex;\n }\n `\n ];\n\n @property({ type: Object }) data: PlayerEmbedProps['data'];\n @property({ type: String }) vouchId: PlayerEmbedProps['vouchId'];\n @property({ type: String }) templateId: PlayerEmbedProps['templateId'];\n @property({ type: Array }) questions: PlayerEmbedProps['questions'];\n\n @property({ type: String }) env: PlayerEmbedProps['env'] = 'prod';\n @property({ type: String }) apiKey: PlayerEmbedProps['apiKey'] = '';\n @property({ type: Boolean }) disableTracking: PlayerEmbedProps['disableTracking'] = false;\n @property({ type: String }) trackingSource: PlayerEmbedProps['trackingSource'] = 'embedded_player';\n\n @property({ type: Array }) controls: PlayerEmbedProps['controls'];\n @property({ type: String }) preload: PlayerEmbedProps['preload'] = 'auto';\n @property({ type: Boolean }) autoplay: PlayerEmbedProps['autoplay'] = false;\n @property({ type: Number }) aspectRatio: PlayerEmbedProps['aspectRatio'] = 0;\n @property({ type: String }) language?: MediaPlayerProps['language'];\n\n private eventController = new EventForwardController(this, [\n 'durationchange',\n 'ended',\n 'error',\n 'loadeddata',\n 'pause',\n 'stalled',\n 'play',\n 'playing',\n 'ratechange',\n 'scenechange',\n 'seeking',\n 'seeked',\n 'timeupdate',\n 'volumechange',\n 'waiting',\n\n 'video:loadeddata',\n 'video:seeking',\n 'video:seeked',\n 'video:play',\n 'video:playing',\n 'video:pause',\n 'video:stalled',\n 'video:timeupdate',\n 'video:ended',\n 'video:error'\n ]);\n private _fetcherController = new FetcherController(this);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n private _trackingController = new TrackingController(this);\n\n @state() vouch: PlayerEmbedProps['data'];\n @state() template: TemplateInstance | undefined;\n\n get fetching() {\n return this._fetcherController.fetching;\n }\n\n private _mediaPlayerRef = createRef<MediaPlayer>();\n\n get waiting() {\n return this._mediaPlayerRef.value?.waiting;\n }\n\n get initialised() {\n return this._mediaPlayerRef.value?.initialised;\n }\n\n get seeking() {\n return this._mediaPlayerRef.value?.seeking;\n }\n\n get paused() {\n return this._mediaPlayerRef.value?.paused;\n }\n\n get captions() {\n return this._mediaPlayerRef.value?.captions;\n }\n\n get fullscreen() {\n return this._mediaPlayerRef.value?.fullscreen;\n }\n\n get duration() {\n return this._mediaPlayerRef.value?.duration;\n }\n\n set currentTime(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.currentTime = value;\n }\n }\n get currentTime() {\n return this._mediaPlayerRef.value?.currentTime ?? 0;\n }\n\n set playbackRate(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.playbackRate = value;\n }\n }\n get playbackRate() {\n return this._mediaPlayerRef.value?.playbackRate ?? 1;\n }\n\n set volume(value: number) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.volume = value;\n }\n }\n get volume() {\n return this._mediaPlayerRef.value?.volume ?? 1;\n }\n\n set muted(value: boolean) {\n if (this._mediaPlayerRef.value) {\n this._mediaPlayerRef.value.muted = value;\n }\n }\n get muted() {\n return this._mediaPlayerRef.value?.muted ?? false;\n }\n\n get scene(): Scene | null {\n return this._mediaPlayerRef.value?.scene ?? null;\n }\n\n get scenes(): Scene[] {\n return this._mediaPlayerRef.value?.scenes ?? [];\n }\n\n get sceneConfig(): Scenes | null {\n return this._mediaPlayerRef.value?.sceneConfig ?? null;\n }\n\n get videoState() {\n return this._mediaPlayerRef.value?.videoState;\n }\n\n get mediaPlayer() {\n return this._mediaPlayerRef.value;\n }\n\n play() {\n this._mediaPlayerRef.value?.play();\n }\n\n pause() {\n this._mediaPlayerRef.value?.pause();\n }\n\n reset(time = 0, play = false) {\n this._mediaPlayerRef.value?.reset(time, play);\n }\n\n setScene(index: number) {\n this._mediaPlayerRef.value?.setScene(index);\n }\n\n private _renderStyles() {\n if (!this.aspectRatio) {\n return html`\n <style>\n :host {\n width: 100%;\n height: 100%;\n }\n </style>\n `;\n }\n\n if (typeof this.aspectRatio === 'number') {\n return html`\n <style>\n :host {\n aspect-ratio: ${this.aspectRatio};\n }\n </style>\n `;\n }\n\n return null;\n }\n\n render() {\n return html`\n ${this._renderStyles()}\n <vmp-media-player\n ${ref(this._mediaPlayerRef)}\n ${this.eventController.register()}\n ?autoplay=${this.autoplay}\n ?loading=${this.fetching}\n .data=${this.vouch}\n .template=${this.template}\n aspectRatio=${ifDefined(this.aspectRatio)}\n preload=${ifDefined(this.preload)}\n language=${ifDefined(this.language)}\n .controls=${this.controls}\n ></vmp-media-player>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed-player': PlayerEmbed;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed-player': PlayerEmbed;\n }\n }\n}\n\nexport { PlayerEmbed };\nexport type { PlayerEmbedProps };\n","import { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport type { DialogEmbedProps } from '.';\n\nimport '@a11y/focus-trap';\n\n@customElement('vouch-embed-dialog-overlay')\nclass DialogOverlay extends LitElement {\n static styles = [\n css`\n :host {\n --vouch-media-player-border-radius: var(--vu-media-player-border-radius, 12px);\n --overlay-background-color: var(--vu-overlay-background-color, black);\n --overlay-background-opacity: var(--vu-overlay-background-opacity, 0.4);\n\n --dialog-width: var(--vu-dialog-width, 890px);\n --dialog-height: var(--vu-dialog-height, 500px);\n }\n\n .container {\n position: fixed;\n display: flex;\n inset: 0;\n opacity: 1;\n z-index: 2147483647;\n align-items: center;\n justify-content: center;\n transition: opacity 100ms ease-in;\n }\n\n .hidden {\n opacity: 0;\n pointer-events: none;\n }\n\n .background {\n position: absolute;\n inset: 0;\n opacity: var(--overlay-background-opacity);\n background-color: var(--overlay-background-color);\n }\n\n focus-trap {\n display: flex;\n align-items: center;\n justify-content: center;\n margin: 40px;\n width: var(--dialog-width);\n height: var(--dialog-height);\n max-width: calc(100% - 80px);\n max-height: calc(100% - 80px);\n }\n\n .video-frame {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n max-width: 100%;\n max-height: 100%;\n }\n\n .video-frame.grow {\n width: 100%;\n height: 100%;\n }\n\n vmp-icon-button {\n position: absolute;\n top: 0;\n right: 0;\n margin: 10px;\n }\n `\n ];\n\n @property({ type: Boolean }) open = false;\n @property({ type: Number }) aspectRatio: DialogEmbedProps['aspectRatio'] = 0;\n\n render() {\n return html`\n <div\n class=${classMap({\n container: true,\n hidden: !this.open\n })}\n >\n <div\n class=\"background\"\n @click=${() => this.dispatchEvent(new CustomEvent('overlay:click', { bubbles: true, composed: true }))}\n ></div>\n <focus-trap>\n <div\n class=${classMap({\n 'video-frame': true,\n grow: this.aspectRatio === 0\n })}\n style=${styleMap({\n aspectRatio: this.aspectRatio\n })}\n >\n <slot></slot>\n <vmp-icon-button\n icon=\"close\"\n rounded=\"full\"\n weight=\"heavy\"\n @click=${() => this.dispatchEvent(new CustomEvent('close:click', { bubbles: true, composed: true }))}\n ></vmp-icon-button>\n </div>\n </focus-trap>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed-dialog-overlay': DialogOverlay;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed-dialog-overlay': DialogOverlay;\n }\n }\n}\n\nexport { DialogOverlay };\n","import { html, LitElement } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { styleMap } from 'lit/directives/style-map.js';\n\nimport type { DialogEmbedProps } from '.';\nimport type { MediaPlayer } from '@vouchfor/media-player';\n\nimport './DialogOverlay';\n\n@customElement('vouch-embed-dialog-portal')\nclass DialogPortal extends LitElement {\n @property({ type: String }) vouchId: DialogEmbedProps['vouchId'];\n @property({ type: String }) templateId: DialogEmbedProps['templateId'];\n @property({ type: Array }) questions: DialogEmbedProps['questions'];\n\n @property({ type: String }) env: DialogEmbedProps['env'] = 'prod';\n @property({ type: String }) apiKey: DialogEmbedProps['apiKey'] = '';\n @property({ type: Boolean }) disableTracking: DialogEmbedProps['disableTracking'] = false;\n @property({ type: String }) trackingSource: DialogEmbedProps['trackingSource'] = 'embedded_player';\n\n @property({ type: Array }) controls: DialogEmbedProps['controls'];\n @property({ type: String }) preload: DialogEmbedProps['preload'] = 'none';\n @property({ type: Boolean }) disableAutoplay: DialogEmbedProps['disableAutoplay'] = false;\n @property({ type: Number }) aspectRatio: DialogEmbedProps['aspectRatio'] = 0;\n\n private _mediaPlayerRef = createRef<MediaPlayer>();\n\n @state() open = false;\n\n private _handleToggle = ({ detail }: CustomEvent<string>) => {\n // Because we have to attach this listener to the document since this element is portalled outside of the button,\n // we also have to make sure that this player is actually the one we want to open and play by passing in an ID\n // from the button wrapper parent and checking against that same ID we pass as the event detail\n if (this.id === detail) {\n this.open = !this.open;\n\n if (this.open) {\n if (!this.disableAutoplay && this._mediaPlayerRef?.value) {\n this._mediaPlayerRef.value.muted = false;\n this._mediaPlayerRef.value.play();\n }\n } else {\n this._mediaPlayerRef?.value?.pause();\n }\n }\n };\n\n // We could do the same thing on close and check for the correct ID but it doesn't really matter\n private _handleClose = () => {\n this.open = false;\n this._mediaPlayerRef?.value?.pause();\n };\n\n private _handleDocumentKeyUp = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n this._handleClose();\n }\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n document.addEventListener('dialogembed:click', this._handleToggle);\n document.addEventListener('keyup', this._handleDocumentKeyUp);\n document.addEventListener('close:click', this._handleClose);\n document.addEventListener('overlay:click', this._handleClose);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n document.removeEventListener('dialogembed:click', this._handleToggle);\n document.removeEventListener('keyup', this._handleDocumentKeyUp);\n document.removeEventListener('close:click', this._handleClose);\n document.removeEventListener('overlay:click', this._handleClose);\n }\n\n protected createRenderRoot(): HTMLElement | DocumentFragment {\n // We must create a new node here because portalling into the same node (document.body) causes the second\n // element to overwrite the first for some reason (not behaviour really stated in the docs)\n // I am fairly certain this function is only run once as the default behaviour creates the open shadow root\n // and returns that shadow root in this function: https://lit.dev/docs/components/shadow-dom/#implementing-createrenderroot\n const newNode = document.createElement('div');\n document.body.appendChild(newNode);\n return newNode;\n }\n\n render() {\n return html`\n <vouch-embed-dialog-overlay ?open=${this.open} aspectRatio=${this.aspectRatio}>\n <vouch-embed-player\n ${ref(this._mediaPlayerRef)}\n style=${styleMap({\n maxWidth: '100%',\n maxHeight: '100%'\n })}\n ?autoplay=${false}\n vouchId=${ifDefined(this.vouchId)}\n templateId=${ifDefined(this.templateId)}\n .questions=${this.questions}\n .controls=${this.controls}\n env=${ifDefined(this.env)}\n apiKey=${ifDefined(this.apiKey)}\n ?disableTracking=${this.disableTracking}\n trackingSource=${ifDefined(this.trackingSource)}\n preload=${ifDefined(this.preload)}\n aspectRatio=${this.aspectRatio}\n ></vouch-embed-player>\n </vouch-embed-dialog-overlay>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed-dialog-portal': DialogPortal;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed-dialog-portal': DialogPortal;\n }\n }\n}\n\nexport { DialogPortal };\n","import { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { v4 as uuidv4 } from 'uuid';\n\nimport type { PlayerEmbedProps } from '../PlayerEmbed';\n\nimport '../PlayerEmbed';\nimport './DialogPortal';\n\ntype DialogEmbedProps = Omit<PlayerEmbedProps, 'data'> & {\n disableAutoplay?: boolean;\n};\n\n@customElement('vouch-embed-dialog')\nclass DialogEmbed extends LitElement {\n static styles = [\n css`\n :host {\n --vu-button-padding: 10px 20px;\n --vu-button-background: #287179;\n --vu-button-background-hover: #4faab2;\n\n display: flex;\n width: fit-content;\n height: fit-content;\n }\n `\n ];\n\n @property({ type: String }) vouchId: DialogEmbedProps['vouchId'];\n @property({ type: String }) templateId: DialogEmbedProps['templateId'];\n @property({ type: Array }) questions: DialogEmbedProps['questions'];\n\n @property({ type: String }) env: DialogEmbedProps['env'] = 'prod';\n @property({ type: String }) apiKey: DialogEmbedProps['apiKey'] = '';\n @property({ type: Boolean }) disableTracking: DialogEmbedProps['disableTracking'] = false;\n @property({ type: String }) trackingSource: DialogEmbedProps['trackingSource'] = 'embedded_player';\n\n @property({ type: Array }) controls: DialogEmbedProps['controls'];\n @property({ type: String }) preload: DialogEmbedProps['preload'] = 'none';\n @property({ type: Boolean }) disableAutoplay: DialogEmbedProps['disableAutoplay'] = false;\n @property({ type: Number }) aspectRatio: DialogEmbedProps['aspectRatio'] = 0;\n\n private _id = uuidv4();\n\n private _handleRootClick = () => {\n this.dispatchEvent(new CustomEvent('dialogembed:click', { detail: this._id, bubbles: true, composed: true }));\n };\n\n connectedCallback(): void {\n super.connectedCallback();\n this.addEventListener('click', this._handleRootClick);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n this.removeEventListener('click', this._handleRootClick);\n }\n\n render() {\n return html`\n <slot>\n <vmp-button size=\"large\">Play</vmp-button>\n </slot>\n <vouch-embed-dialog-portal\n id=${this._id}\n ?autoplay=${false}\n vouchId=${ifDefined(this.vouchId)}\n templateId=${ifDefined(this.templateId)}\n .questions=${this.questions}\n .controls=${this.controls}\n env=${ifDefined(this.env)}\n apiKey=${ifDefined(this.apiKey)}\n ?disableTracking=${this.disableTracking}\n trackingSource=${ifDefined(this.trackingSource)}\n preload=${ifDefined(this.preload)}\n aspectRatio=${this.aspectRatio}\n ></vouch-embed-dialog-portal>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'vouch-embed-dialog': DialogEmbed;\n }\n\n namespace JSX {\n interface IntrinsicElements {\n 'vouch-embed-dialog': DialogEmbed;\n }\n }\n}\n\nexport { DialogEmbed };\nexport type { DialogEmbedProps };\n"],"names":["type","uuidv4","__decorateClass"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { LitElement } from 'lit';
2
+ import type { DialogEmbedProps } from '.';
3
+ import '@a11y/focus-trap';
4
+ declare class DialogOverlay extends LitElement {
5
+ static styles: import("lit").CSSResult[];
6
+ open: boolean;
7
+ aspectRatio: DialogEmbedProps['aspectRatio'];
8
+ render(): import("lit-html").TemplateResult<1>;
9
+ }
10
+ declare global {
11
+ interface HTMLElementTagNameMap {
12
+ 'vouch-embed-dialog-overlay': DialogOverlay;
13
+ }
14
+ namespace JSX {
15
+ interface IntrinsicElements {
16
+ 'vouch-embed-dialog-overlay': DialogOverlay;
17
+ }
18
+ }
19
+ }
20
+ export { DialogOverlay };
@@ -0,0 +1,36 @@
1
+ import { LitElement } from 'lit';
2
+ import type { DialogEmbedProps } from '.';
3
+ import './DialogOverlay';
4
+ declare class DialogPortal extends LitElement {
5
+ vouchId: DialogEmbedProps['vouchId'];
6
+ templateId: DialogEmbedProps['templateId'];
7
+ questions: DialogEmbedProps['questions'];
8
+ env: DialogEmbedProps['env'];
9
+ apiKey: DialogEmbedProps['apiKey'];
10
+ disableTracking: DialogEmbedProps['disableTracking'];
11
+ trackingSource: DialogEmbedProps['trackingSource'];
12
+ controls: DialogEmbedProps['controls'];
13
+ preload: DialogEmbedProps['preload'];
14
+ disableAutoplay: DialogEmbedProps['disableAutoplay'];
15
+ aspectRatio: DialogEmbedProps['aspectRatio'];
16
+ private _mediaPlayerRef;
17
+ open: boolean;
18
+ private _handleToggle;
19
+ private _handleClose;
20
+ private _handleDocumentKeyUp;
21
+ connectedCallback(): void;
22
+ disconnectedCallback(): void;
23
+ protected createRenderRoot(): HTMLElement | DocumentFragment;
24
+ render(): import("lit-html").TemplateResult<1>;
25
+ }
26
+ declare global {
27
+ interface HTMLElementTagNameMap {
28
+ 'vouch-embed-dialog-portal': DialogPortal;
29
+ }
30
+ namespace JSX {
31
+ interface IntrinsicElements {
32
+ 'vouch-embed-dialog-portal': DialogPortal;
33
+ }
34
+ }
35
+ }
36
+ export { DialogPortal };
@@ -0,0 +1,38 @@
1
+ import { LitElement } from 'lit';
2
+ import type { PlayerEmbedProps } from '../PlayerEmbed';
3
+ import '../PlayerEmbed';
4
+ import './DialogPortal';
5
+ type DialogEmbedProps = Omit<PlayerEmbedProps, 'data'> & {
6
+ disableAutoplay?: boolean;
7
+ };
8
+ declare class DialogEmbed extends LitElement {
9
+ static styles: import("lit").CSSResult[];
10
+ vouchId: DialogEmbedProps['vouchId'];
11
+ templateId: DialogEmbedProps['templateId'];
12
+ questions: DialogEmbedProps['questions'];
13
+ env: DialogEmbedProps['env'];
14
+ apiKey: DialogEmbedProps['apiKey'];
15
+ disableTracking: DialogEmbedProps['disableTracking'];
16
+ trackingSource: DialogEmbedProps['trackingSource'];
17
+ controls: DialogEmbedProps['controls'];
18
+ preload: DialogEmbedProps['preload'];
19
+ disableAutoplay: DialogEmbedProps['disableAutoplay'];
20
+ aspectRatio: DialogEmbedProps['aspectRatio'];
21
+ private _id;
22
+ private _handleRootClick;
23
+ connectedCallback(): void;
24
+ disconnectedCallback(): void;
25
+ render(): import("lit-html").TemplateResult<1>;
26
+ }
27
+ declare global {
28
+ interface HTMLElementTagNameMap {
29
+ 'vouch-embed-dialog': DialogEmbed;
30
+ }
31
+ namespace JSX {
32
+ interface IntrinsicElements {
33
+ 'vouch-embed-dialog': DialogEmbed;
34
+ }
35
+ }
36
+ }
37
+ export { DialogEmbed };
38
+ export type { DialogEmbedProps };
@@ -0,0 +1,15 @@
1
+ import type { PlayerEmbed } from '..';
2
+ import type { ReactiveController, ReactiveControllerHost } from 'lit';
3
+ import type { DirectiveResult } from 'lit/directive.js';
4
+ type PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;
5
+ declare class EventForwardController implements ReactiveController {
6
+ host: PlayerEmbedHost;
7
+ private _events;
8
+ private _cleanup;
9
+ private _forwardElementRef;
10
+ constructor(host: PlayerEmbedHost, events: string[]);
11
+ register(): DirectiveResult;
12
+ hostConnected(): void;
13
+ hostDisconnected(): void;
14
+ }
15
+ export { EventForwardController };
@@ -1,13 +1,14 @@
1
- import type { Embed } from '..';
1
+ import type { PlayerEmbed } from '..';
2
2
  import type { ReactiveControllerHost } from 'lit';
3
- type EmbedHost = ReactiveControllerHost & Embed;
3
+ type PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;
4
4
  declare class FetcherController {
5
- host: EmbedHost;
5
+ host: PlayerEmbedHost;
6
6
  private _fetching;
7
+ private _vouch;
7
8
  set fetching(value: boolean);
8
9
  get fetching(): boolean;
9
10
  private getVouch;
10
11
  private getTemplate;
11
- constructor(host: EmbedHost);
12
+ constructor(host: PlayerEmbedHost);
12
13
  }
13
14
  export { FetcherController };
@@ -1,22 +1,24 @@
1
- import type { Embed } from '..';
1
+ import type { PlayerEmbed } from '../..';
2
2
  import type { ReactiveController, ReactiveControllerHost } from 'lit';
3
- type EmbedHost = ReactiveControllerHost & Embed;
3
+ type PlayerEmbedHost = ReactiveControllerHost & PlayerEmbed;
4
+ type TrackingEvent = 'VOUCH_LOADED' | 'VOUCH_RESPONSE_VIEWED' | 'VIDEO_PLAYED' | 'VIDEO_STREAMED';
5
+ type TrackingPayload = {
6
+ vouchId?: string;
7
+ answerId?: string;
8
+ streamStart?: number;
9
+ streamEnd?: number;
10
+ };
4
11
  declare class TrackingController implements ReactiveController {
5
- host: EmbedHost;
6
- private _tabId;
7
- private _clientId;
8
- private _visitorId;
12
+ host: PlayerEmbedHost;
13
+ private _batchedEvents;
9
14
  private _hasPlayed;
10
15
  private _hasLoaded;
11
16
  private _answersViewed;
12
17
  private _streamStartTime;
13
18
  private _streamLatestTime;
14
19
  private _currentlyPlayingVideo;
15
- constructor(host: EmbedHost);
16
- private _findVouchId;
17
- private _createVisitor;
18
- private _getUids;
19
- private _getReportingMetadata;
20
+ constructor(host: PlayerEmbedHost);
21
+ private _createTrackingEvent;
20
22
  private _sendTrackingEvent;
21
23
  private _streamEnded;
22
24
  private _handleVouchLoaded;
@@ -31,3 +33,4 @@ declare class TrackingController implements ReactiveController {
31
33
  hostDisconnected(): void;
32
34
  }
33
35
  export { TrackingController };
36
+ export type { TrackingEvent, TrackingPayload };
@@ -0,0 +1,17 @@
1
+ import type { TrackingPayload } from '.';
2
+ import type { Vouch } from '@vouchfor/video-utils';
3
+ import type { Environment } from '../../../../utils/env';
4
+ declare function getUids(env: Environment): {
5
+ client: null;
6
+ tab: null;
7
+ request: string;
8
+ visitor?: undefined;
9
+ } | {
10
+ client: string;
11
+ tab: string;
12
+ request: string;
13
+ visitor: string;
14
+ };
15
+ declare function findVouchId(payload?: TrackingPayload, vouch?: Vouch): string | null | undefined;
16
+ declare function getReportingMetadata(source?: string): any;
17
+ export { getUids, findVouchId, getReportingMetadata };