flightkit 2.0.1 → 2.1.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/flightkit.js +3 -3
- package/dist/flightkit.js.map +1 -1
- package/package.json +11 -13
package/dist/flightkit.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const t=globalThis,o=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),r=new WeakMap;let a=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 e=this.t;if(o&&void 0===t){const o=void 0!==e&&1===e.length;o&&(t=r.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),o&&r.set(e,t))}return t}toString(){return this.cssText}};const l=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,o,s)=>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.")})(o)+t[s+1]),t[0]);return new a(o,t,s)},c=o?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const o of t.cssRules)e+=o.cssText;return(t=>new a("string"==typeof t?t:t+"",void 0,s))(e)})(t):t,{is:h,defineProperty:d,getOwnPropertyDescriptor:p,getOwnPropertyNames:u,getOwnPropertySymbols:g,getPrototypeOf:f}=Object,v=globalThis,m=v.trustedTypes,b=m?m.emptyScript:"",$=v.reactiveElementPolyfillSupport,_=(t,e)=>t,S={toAttribute(t,e){switch(e){case Boolean:t=t?b:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let o=t;switch(e){case Boolean:o=null!==t;break;case Number:o=null===t?null:Number(t);break;case Object:case Array:try{o=JSON.parse(t)}catch(t){o=null}}return o}},E=(t,e)=>!h(t,e),w={attribute:!0,type:String,converter:S,reflect:!1,useDefault:!1,hasChanged:E};Symbol.metadata??=Symbol("metadata"),v.litPropertyMetadata??=new WeakMap;let A=class y 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,e=w){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){const o=Symbol(),s=this.getPropertyDescriptor(t,o,e);void 0!==s&&d(this.prototype,t,s)}}static getPropertyDescriptor(t,e,o){const{get:s,set:r}=p(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get:s,set(e){const a=s?.call(this);r?.call(this,e),this.requestUpdate(t,a,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??w}static _$Ei(){if(this.hasOwnProperty(_("elementProperties")))return;const t=f(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(_("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(_("properties"))){const t=this.properties,e=[...u(t),...g(t)];for(const o of e)this.createProperty(o,t[o])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,o]of e)this.elementProperties.set(t,o)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const o=this._$Eu(t,e);void 0!==o&&this._$Eh.set(o,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const o=new Set(t.flat(1/0).reverse());for(const t of o)e.unshift(c(t))}else void 0!==t&&e.push(c(t));return e}static _$Eu(t,e){const o=e.attribute;return!1===o?void 0:"string"==typeof o?o:"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._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const o of e.keys())this.hasOwnProperty(o)&&(t.set(o,this[o]),delete this[o]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,s)=>{if(o)e.adoptedStyleSheets=s.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const o of s){const s=document.createElement("style"),r=t.litNonce;void 0!==r&&s.setAttribute("nonce",r),s.textContent=o.cssText,e.appendChild(s)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,o){this._$AK(t,o)}_$ET(t,e){const o=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,o);if(void 0!==s&&!0===o.reflect){const r=(void 0!==o.converter?.toAttribute?o.converter:S).toAttribute(e,o.type);this._$Em=t,null==r?this.removeAttribute(s):this.setAttribute(s,r),this._$Em=null}}_$AK(t,e){const o=this.constructor,s=o._$Eh.get(t);if(void 0!==s&&this._$Em!==s){const t=o.getPropertyOptions(s),r="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:S;this._$Em=s,this[s]=r.fromAttribute(e,t.type)??this._$Ej?.get(s)??null,this._$Em=null}}requestUpdate(t,e,o){if(void 0!==t){const s=this.constructor,r=this[t];if(o??=s.getPropertyOptions(t),!((o.hasChanged??E)(r,e)||o.useDefault&&o.reflect&&r===this._$Ej?.get(t)&&!this.hasAttribute(s._$Eu(t,o))))return;this.C(t,e,o)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,e,{useDefault:o,reflect:s,wrapped:r},a){o&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,a??e??this[t]),!0!==r||void 0!==a)||(this._$AL.has(t)||(this.hasUpdated||o||(e=void 0),this._$AL.set(t,e)),!0===s&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}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,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,o]of t){const{wrapped:t}=o,s=this[e];!0!==t||this._$AL.has(e)||void 0===s||this.C(e,void 0,o,s)}}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(e)):this._$EM()}catch(e){throw t=!1,this._$EM(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}};A.elementStyles=[],A.shadowRootOptions={mode:"open"},A[_("elementProperties")]=new Map,A[_("finalized")]=new Map,$?.({ReactiveElement:A}),(v.reactiveElementVersions??=[]).push("2.1.0");const C=globalThis,x=C.trustedTypes,O=x?x.createPolicy("lit-html",{createHTML:t=>t}):void 0,D="$lit$",U=`lit$${Math.random().toFixed(9).slice(2)}$`,F="?"+U,P=`<${F}>`,T=document,j=()=>T.createComment(""),B=t=>null===t||"object"!=typeof t&&"function"!=typeof t,V=Array.isArray,Z="[ \t\n\f\r]",W=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,q=/-->/g,G=/>/g,J=RegExp(`>|${Z}(?:([^\\s"'>=/]+)(${Z}*=${Z}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),Y=/'/g,K=/"/g,X=/^(?:script|style|textarea|title)$/i,Q=(t=>(e,...o)=>({_$litType$:t,strings:e,values:o}))(1),tt=Symbol.for("lit-noChange"),et=Symbol.for("lit-nothing"),it=new WeakMap,ot=T.createTreeWalker(T,129);function st(t,e){if(!V(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==O?O.createHTML(e):e}const rt=(t,e)=>{const o=t.length-1,s=[];let r,a=2===e?"<svg>":3===e?"<math>":"",l=W;for(let e=0;e<o;e++){const o=t[e];let c,h,d=-1,p=0;for(;p<o.length&&(l.lastIndex=p,h=l.exec(o),null!==h);)p=l.lastIndex,l===W?"!--"===h[1]?l=q:void 0!==h[1]?l=G:void 0!==h[2]?(X.test(h[2])&&(r=RegExp("</"+h[2],"g")),l=J):void 0!==h[3]&&(l=J):l===J?">"===h[0]?(l=r??W,d=-1):void 0===h[1]?d=-2:(d=l.lastIndex-h[2].length,c=h[1],l=void 0===h[3]?J:'"'===h[3]?K:Y):l===K||l===Y?l=J:l===q||l===G?l=W:(l=J,r=void 0);const u=l===J&&t[e+1].startsWith("/>")?" ":"";a+=l===W?o+P:d>=0?(s.push(c),o.slice(0,d)+D+o.slice(d)+U+u):o+U+(-2===d?e:u)}return[st(t,a+(t[o]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),s]};class N{constructor({strings:t,_$litType$:e},o){let s;this.parts=[];let r=0,a=0;const l=t.length-1,c=this.parts,[h,d]=rt(t,e);if(this.el=N.createElement(h,o),ot.currentNode=this.el.content,2===e||3===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(s=ot.nextNode())&&c.length<l;){if(1===s.nodeType){if(s.hasAttributes())for(const t of s.getAttributeNames())if(t.endsWith(D)){const e=d[a++],o=s.getAttribute(t).split(U),l=/([.?@])?(.*)/.exec(e);c.push({type:1,index:r,name:l[2],strings:o,ctor:"."===l[1]?H:"?"===l[1]?I:"@"===l[1]?L:k}),s.removeAttribute(t)}else t.startsWith(U)&&(c.push({type:6,index:r}),s.removeAttribute(t));if(X.test(s.tagName)){const t=s.textContent.split(U),e=t.length-1;if(e>0){s.textContent=x?x.emptyScript:"";for(let o=0;o<e;o++)s.append(t[o],j()),ot.nextNode(),c.push({type:2,index:++r});s.append(t[e],j())}}}else if(8===s.nodeType)if(s.data===F)c.push({type:2,index:r});else{let t=-1;for(;-1!==(t=s.data.indexOf(U,t+1));)c.push({type:7,index:r}),t+=U.length-1}r++}}static createElement(t,e){const o=T.createElement("template");return o.innerHTML=t,o}}function nt(t,e,o=t,s){if(e===tt)return e;let r=void 0!==s?o._$Co?.[s]:o._$Cl;const a=B(e)?void 0:e._$litDirective$;return r?.constructor!==a&&(r?._$AO?.(!1),void 0===a?r=void 0:(r=new a(t),r._$AT(t,o,s)),void 0!==s?(o._$Co??=[])[s]=r:o._$Cl=r),void 0!==r&&(e=nt(t,r._$AS(t,e.values),r,s)),e}class M{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:o}=this._$AD,s=(t?.creationScope??T).importNode(e,!0);ot.currentNode=s;let r=ot.nextNode(),a=0,l=0,c=o[0];for(;void 0!==c;){if(a===c.index){let e;2===c.type?e=new R(r,r.nextSibling,this,t):1===c.type?e=new c.ctor(r,c.name,c.strings,this,t):6===c.type&&(e=new z(r,this,t)),this._$AV.push(e),c=o[++l]}a!==c?.index&&(r=ot.nextNode(),a++)}return ot.currentNode=T,s}p(t){let e=0;for(const o of this._$AV)void 0!==o&&(void 0!==o.strings?(o._$AI(t,o,e),e+=o.strings.length-2):o._$AI(t[e])),e++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,o,s){this.type=2,this._$AH=et,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=o,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=nt(this,t,e),B(t)?t===et||null==t||""===t?(this._$AH!==et&&this._$AR(),this._$AH=et):t!==this._$AH&&t!==tt&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>V(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==et&&B(this._$AH)?this._$AA.nextSibling.data=t:this.T(T.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:o}=t,s="number"==typeof o?this._$AC(t):(void 0===o.el&&(o.el=N.createElement(st(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===s)this._$AH.p(e);else{const t=new M(s,this),o=t.u(this.options);t.p(e),this.T(o),this._$AH=t}}_$AC(t){let e=it.get(t.strings);return void 0===e&&it.set(t.strings,e=new N(t)),e}k(t){V(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let o,s=0;for(const r of t)s===e.length?e.push(o=new R(this.O(j()),this.O(j()),this,this.options)):o=e[s],o._$AI(r),s++;s<e.length&&(this._$AR(o&&o._$AB.nextSibling,s),e.length=s)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,o,s,r){this.type=1,this._$AH=et,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=r,o.length>2||""!==o[0]||""!==o[1]?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=et}_$AI(t,e=this,o,s){const r=this.strings;let a=!1;if(void 0===r)t=nt(this,t,e,0),a=!B(t)||t!==this._$AH&&t!==tt,a&&(this._$AH=t);else{const s=t;let l,c;for(t=r[0],l=0;l<r.length-1;l++)c=nt(this,s[o+l],e,l),c===tt&&(c=this._$AH[l]),a||=!B(c)||c!==this._$AH[l],c===et?t=et:t!==et&&(t+=(c??"")+r[l+1]),this._$AH[l]=c}a&&!s&&this.j(t)}j(t){t===et?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===et?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==et)}}class L extends k{constructor(t,e,o,s,r){super(t,e,o,s,r),this.type=5}_$AI(t,e=this){if((t=nt(this,t,e,0)??et)===tt)return;const o=this._$AH,s=t===et&&o!==et||t.capture!==o.capture||t.once!==o.once||t.passive!==o.passive,r=t!==et&&(o===et||s);s&&this.element.removeEventListener(this.name,this,o),r&&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 z{constructor(t,e,o){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(t){nt(this,t)}}const at=C.litHtmlPolyfillSupport;at?.(N,R),(C.litHtmlVersions??=[]).push("3.3.0");const lt=globalThis;let ct=class i extends A{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 e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,o)=>{const s=o?.renderBefore??e;let r=s._$litPart$;if(void 0===r){const t=o?.renderBefore??null;s._$litPart$=r=new R(e.insertBefore(j(),t),t,void 0,o??{})}return r._$AI(t),r})(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return tt}};ct._$litElement$=!0,ct.finalized=!0,lt.litElementHydrateSupport?.({LitElement:ct});const ht=lt.litElementPolyfillSupport;ht?.({LitElement:ct}),(lt.litElementVersions??=[]).push("4.2.0");const dt=1;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,o){this._$Ct=t,this._$AM=e,this._$Ci=o}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}const pt=(t=>(...e)=>({_$litDirective$:t,values:e}))(class extends i{constructor(t){if(super(t),t.type!==dt||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter((e=>t[e])).join(" ")+" "}update(t,[e]){if(void 0===this.st){this.st=new Set,void 0!==t.strings&&(this.nt=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in e)e[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(e)}const o=t.element.classList;for(const t of this.st)t in e||(o.remove(t),this.st.delete(t));for(const t in e){const s=!!e[t];s===this.st.has(t)||this.nt?.has(t)||(s?(o.add(t),this.st.add(t)):(o.remove(t),this.st.delete(t)))}return tt}});var ut="https://static-files-concierge.staging.flybits.com/latest/zone.html",gt=2e3,yt="2.0.1",ft=function(){var t=this;this.promise=new Promise((function(e,o){t.resolve=e,t.reject=o})),this.then=this.promise.then.bind(this.promise),this.catch=this.promise.catch.bind(this.promise)};const vt=function(t,e){var o={};return Object.keys(t).forEach((function(s){const r=t[s];r?e[s].type===Boolean?o[s]="true"===r?.toLowerCase():e[s].type===Number?o[s]=+r:o[s]=r:e[s].hasOwnProperty("default")&&(o[s]=protocolObj[s].default)})),o};class ActionLink{static protocol={DETAILS:"details",INAPPBROWSER:"web",BROWSER:"browser",HTTPS:"https",PHONE:"phone",APP:"app",CONCIERGE:"concierge",UNIVERSAL:"universalLink",MAIL:"mail",CUSTOM:"custom"};static PROTOCOLDEFS={details:{contentId:{type:String},overlay:{type:Boolean,default:!1},title:{type:String}},web:{url:{type:String}},browser:{url:{type:String}},https:{},phone:{phoneNumber:{type:String}},app:{name:{type:String}},concierge:{container:{type:String},zoneReferenceId:{type:String},filter:{type:String},style:{type:String},overlay:{type:Boolean,default:!1}},universalLink:{ios:{type:String},android:{type:String}},mail:{sendTo:{type:String},subject:{type:String},body:{type:String},cc:{type:String},bcc:{type:String}},custom:{}};constructor(t){this.rawStr="",this.protocol="",this.value="",this.protoValue="",this.params={},this.data={},this.fromLink(t)}fromLink(t){this.rawStr=t;var e=t.split("://")[0]||"";e=e.toLowerCase();var o=t.indexOf("://")>-1?t.substring(t.indexOf("://")+3):t,s=ActionLink.PROTOCOLDEFS.custom;if(ActionLink.PROTOCOLDEFS[e])s=ActionLink.PROTOCOLDEFS[e];else try{const e=new URL(t);this.protoValue=t.match(/:\/\/(.*?)\?/)[1],this.params=Object.fromEntries(e.searchParams.entries())}catch(t){console.warn("custom action is of unknown protocol scheme")}if(this.protocol=e,this.value=o,s&&Object.keys(s).length){var r={};const e=new URL(t);r=function(t,e,o){var s={},r=[];return Object.keys(t).forEach((o=>{if(e[o])s[o]=t[o];else{var a=o;t[o]&&(a=`${o}=${t[o]}`),r.push(a)}})),r.forEach((t=>{const e=o.indexOf(t);Object.keys(s).forEach((r=>{const a=`${r}=${s[r]}`;o.indexOf(a)+a.length+1===e&&(s[r]=`${s[r]}&${t}`)}))})),s}(r=Object.fromEntries(e.searchParams.entries()),s,t),r=vt(r,s),this.params=r}}toJSON(){return{rawStr:this.rawStr,protocol:this.protocol,protoValue:this.protoValue,value:this.value,params:this.params,data:this.data}}static parse(t){return new ActionLink(t)}}var mt={cachedContent:{},getCachedContentDetails:function(t){return this.cachedContent[t]},getContentDetails:function(t){const e=new ft;var o=this;return Flybits.api.Content.get(t).then((function(t){o.cachedContent[t.result.id]=t.result,e.resolve(t.result)})).catch((function(t){e.reject(t)})),e.promise},getZoneContent:function(t){const e=new ft;var o=this.cachedContent;return Flybits.api.Zones.getByReferenceId(t).then((function(s){s?.zone?.modules?(s.zone.modules.forEach((function(t){t.content.forEach((function(t){o[t.id]=t}))})),e.resolve(s.zone)):e.reject((new Flybits.Validation).addError("Zone not found","No valid Zone was found with specified reference ID",{code:Flybits.Validation.type.NOTFOUND,context:t}))})).catch((function(t){e.reject(t)})),e.promise}},bt=function(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)},$t={guid:function(t){var e="";if(t&&t>0){for(var o=0;o<t;o++)e+=""!==e?"-"+bt():bt();return e}return bt()+bt()+"-"+bt()+"-"+bt()+"-"+bt()+"-"+bt()+bt()+bt()},getByStr:function(t,e){for(var o=(e=(e=e.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split("."),s=0,r=o.length;s<r;++s){var a=o[s];if(!(a in t))return;t=t[a]}return t},setByStr:function(t,e,o){for(var s=(e=(e=e.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split("."),r=0,a=s.length;r<a;r++){var l=s[r];if(l in t&&r+1<a)t=t[l];else{if(l in t||!(r+1<a))return t[l]=o,o;t[l]={},t=t[l]}}},removeObject:function(t,e,o){var s=t.indexOf(e);if(o){var r=t.filter(o);r.length>0&&(s=t.indexOf(r[0]))}return s>=0?t.splice(s,1):t},debounce:function(t,e,o){var s;return function(){var r=this,a=arguments,l=o&&!s;clearTimeout(s),s=setTimeout((function(){s=null,o||t.apply(r,a)}),e),l&&t.apply(r,a)}}};$t.extend=function(){function t(t){return t&&"object"==typeof t&&"[object RegExp]"!==Object.prototype.toString.call(t)&&"[object Date]"!==Object.prototype.toString.call(t)}function e(e,o){var r;return o&&!0===o.clone&&t(e)?s((r=e,Array.isArray(r)?[]:{}),e,o):e}function o(o,r,a){var l=o.slice();return r.forEach((function(r,c){void 0===l[c]?l[c]=e(r,a):t(r)?l[c]=s(o[c],r,a):-1===o.indexOf(r)&&l.push(e(r,a))})),l}function s(r,a,l){var c=Array.isArray(a),h=(l||{arrayMerge:o}).arrayMerge||o;return c?Array.isArray(r)?h(r,a,l):e(a,l):function(o,r,a){var l={};return t(o)&&Object.keys(o).forEach((function(t){l[t]=e(o[t],a)})),Object.keys(r).forEach((function(c){t(r[c])&&o[c]?l[c]=s(o[c],r[c],a):l[c]=e(r[c],a)})),l}(r,a,l)}return s.all=function(t,e){if(!Array.isArray(t)||t.length<2)throw new Error("first argument should be an array with at least two elements");return t.reduce((function(t,o){return s(t,o,e)}))},s}();class Zone{static generateOverlayPayload(t,e){var o=new Flybits.Zone;o.id=$t.guid(2),o.name="Overlay",o.referenceID="overlay";var s=new Flybits.Module;s.id=$t.guid(2),s.layout="overlay",s.content=[t],o.modules=[s];var r=o.toConciergeContainer(e);return r.containers[0].content[0].uiTemplate=t.detailsUI?.layoutHTML||"\x3c!-- --\x3e",r.containers[0].content[0].style=t.detailsUI?.styleCSSURL||"",r.containers[0].content[0].styleStr=t.detailsUI?.styleCSS||"",r}static generateDetailsPayload(t,e){var o=new Flybits.Zone;o.id=$t.guid(2),o.name="Content Details",o.referenceID="details";var s=new Flybits.Module;s.id=$t.guid(2),s.layout="vertical",s.content=[t],o.modules=[s];var r=o.toConciergeContainer(e);return r.containers[0].content[0].uiTemplate=t.detailsUI?.layoutHTML||"\x3c!-- --\x3e",r.containers[0].content[0].style=t.detailsUI?.styleCSSURL||"",r.containers[0].content[0].styleStr=t.detailsUI?.styleCSS||"",r}}var _t={_deferredCtxInit:!1,autoInitCtxManager:function(){this._deferredCtxInit||(this._deferredCtxInit=!0,Flybits.Session.ready.then((function(){"object"!=typeof window.Flybits||Flybits.context.Manager.isReporting||(Flybits.context.Manager.reportDelay=gt,Flybits.context.Manager.initialize())})))},handleContextPayload:function(t,e){e=e||console,Array.isArray(t)?Flybits.context.Manager.ready.then((function(){t.forEach((function(o){if(o.pluginId&&o.values){var s={};Object.keys(o.values).forEach((function(t){var e=t.replaceAll("query.","");s[e]=o.values[t]})),Flybits.context.Manager.reportCtx(o.pluginId,s)}else e.error("[ctxapi] malformed ctx payload object",t)}))})):e.error("[ctxapi] malformed ctx payload",t)},handleAnalyticsPayload:function(t,e){e=e||console,t?.contentInfo?.id?"viewed"!==t.type&&"engaged"!==t.type||t.component?"engaged"!==t.type&&"content_component_event"!==t.type||!t.component?e.error("[ctxapi] unsupported analytics event",t):Flybits.context.Manager.ready.then((function(){Flybits.analytics.Manager.reportContentID(t.contentInfo.id,Flybits.analytics.Manager.actions.COMPONENTENGAGED,{name:t.component.name,compID:t.component.id,type:t.component.compId})})):Flybits.context.Manager.ready.then((function(){Flybits.analytics.Manager.reportContentID(t.contentInfo.id,t.type)})):e.error("[ctxapi] missing content id in analytics event")}};class Logger{static modes={VERBOSE:"verbose",ERRORS:"errors",SILENT:"silent"};constructor(t){t=t||{},this.mode=t.mode||"errors"}get prefix(){const t=new Date;return`[fk-${t.getHours()}:${t.getMinutes()}:${t.getSeconds()}:${t.getMilliseconds()}.${(window?.performance.now().toFixed(2)+"").split(".")[1]}]`}log(...t){this.mode!==Logger.modes.SILENT&&this.mode===Logger.modes.VERBOSE&&(t.unshift(this.prefix),console.log.apply(null,t))}error(...t){this.mode!==Logger.modes.SILENT&&(t.unshift(this.prefix),console.error.apply(null,t))}warn(...t){this.mode!==Logger.modes.SILENT&&this.mode===Logger.modes.VERBOSE&&(t.unshift(this.prefix),console.warn.apply(null,t))}}var St=function(t){return!!t?.modules?.filter((t=>t?.content?.length))?.length};class FlybitsSlot extends ct{static get VERSION(){return yt}static get modes(){return{FIXEDHEIGHT:"fixedheight",DYNAMICHEIGHT:"dynamicheight"}}static properties={host:{type:String},projectID:{type:String,attribute:"project-id"},renderURL:{type:String,attribute:"render-url"},refID:{type:String,attribute:"ref-id"},pollingEnabled:{type:Boolean,attribute:"polling-enabled"},pollingInterval:{type:Number,attribute:"polling-interval"},renderMode:{type:String,attribute:"render-mode"},overlayOutlet:{type:String|HTMLElement,attribute:"overlay-outlet"},overrideOverlay:{type:Boolean,attribute:"override-overlay"},overrideURLs:{type:Boolean,attribute:"override-urls"},overrideActions:{type:Boolean,attribute:"override-actions"},overlayDismissUI:{type:Boolean,attribute:"overlay-dismiss-ui"},isLoadingOpen:{type:Boolean,attribute:"show-loading"},isErrorOpen:{type:Boolean,attribute:"show-error"},hasLoadingSlot:{type:Boolean},hasErrorSlot:{type:Boolean},logLevel:{type:String,attribute:"log-level"},localization:{type:String},textDirection:{type:String,attribute:"text-direction"}};static styles=l`
|
|
1
|
+
const t=globalThis,o=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),r=new WeakMap;let a=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 e=this.t;if(o&&void 0===t){const o=void 0!==e&&1===e.length;o&&(t=r.get(e)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),o&&r.set(e,t))}return t}toString(){return this.cssText}};const l=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,o,s)=>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.")})(o)+t[s+1]),t[0]);return new a(o,t,s)},c=o?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const o of t.cssRules)e+=o.cssText;return(t=>new a("string"==typeof t?t:t+"",void 0,s))(e)})(t):t,{is:h,defineProperty:d,getOwnPropertyDescriptor:p,getOwnPropertyNames:u,getOwnPropertySymbols:g,getPrototypeOf:f}=Object,v=globalThis,m=v.trustedTypes,b=m?m.emptyScript:"",$=v.reactiveElementPolyfillSupport,_=(t,e)=>t,S={toAttribute(t,e){switch(e){case Boolean:t=t?b:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let o=t;switch(e){case Boolean:o=null!==t;break;case Number:o=null===t?null:Number(t);break;case Object:case Array:try{o=JSON.parse(t)}catch(t){o=null}}return o}},E=(t,e)=>!h(t,e),w={attribute:!0,type:String,converter:S,reflect:!1,useDefault:!1,hasChanged:E};Symbol.metadata??=Symbol("metadata"),v.litPropertyMetadata??=new WeakMap;let A=class y 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,e=w){if(e.state&&(e.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((e=Object.create(e)).wrapped=!0),this.elementProperties.set(t,e),!e.noAccessor){const o=Symbol(),s=this.getPropertyDescriptor(t,o,e);void 0!==s&&d(this.prototype,t,s)}}static getPropertyDescriptor(t,e,o){const{get:s,set:r}=p(this.prototype,t)??{get(){return this[e]},set(t){this[e]=t}};return{get:s,set(e){const a=s?.call(this);r?.call(this,e),this.requestUpdate(t,a,o)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??w}static _$Ei(){if(this.hasOwnProperty(_("elementProperties")))return;const t=f(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(_("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(_("properties"))){const t=this.properties,e=[...u(t),...g(t)];for(const o of e)this.createProperty(o,t[o])}const t=this[Symbol.metadata];if(null!==t){const e=litPropertyMetadata.get(t);if(void 0!==e)for(const[t,o]of e)this.elementProperties.set(t,o)}this._$Eh=new Map;for(const[t,e]of this.elementProperties){const o=this._$Eu(t,e);void 0!==o&&this._$Eh.set(o,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const o=new Set(t.flat(1/0).reverse());for(const t of o)e.unshift(c(t))}else void 0!==t&&e.push(c(t));return e}static _$Eu(t,e){const o=e.attribute;return!1===o?void 0:"string"==typeof o?o:"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._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,e=this.constructor.elementProperties;for(const o of e.keys())this.hasOwnProperty(o)&&(t.set(o,this[o]),delete this[o]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((e,s)=>{if(o)e.adoptedStyleSheets=s.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const o of s){const s=document.createElement("style"),r=t.litNonce;void 0!==r&&s.setAttribute("nonce",r),s.textContent=o.cssText,e.appendChild(s)}})(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,e,o){this._$AK(t,o)}_$ET(t,e){const o=this.constructor.elementProperties.get(t),s=this.constructor._$Eu(t,o);if(void 0!==s&&!0===o.reflect){const r=(void 0!==o.converter?.toAttribute?o.converter:S).toAttribute(e,o.type);this._$Em=t,null==r?this.removeAttribute(s):this.setAttribute(s,r),this._$Em=null}}_$AK(t,e){const o=this.constructor,s=o._$Eh.get(t);if(void 0!==s&&this._$Em!==s){const t=o.getPropertyOptions(s),r="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:S;this._$Em=s,this[s]=r.fromAttribute(e,t.type)??this._$Ej?.get(s)??null,this._$Em=null}}requestUpdate(t,e,o){if(void 0!==t){const s=this.constructor,r=this[t];if(o??=s.getPropertyOptions(t),!((o.hasChanged??E)(r,e)||o.useDefault&&o.reflect&&r===this._$Ej?.get(t)&&!this.hasAttribute(s._$Eu(t,o))))return;this.C(t,e,o)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,e,{useDefault:o,reflect:s,wrapped:r},a){o&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,a??e??this[t]),!0!==r||void 0!==a)||(this._$AL.has(t)||(this.hasUpdated||o||(e=void 0),this._$AL.set(t,e)),!0===s&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}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,e]of this._$Ep)this[t]=e;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[e,o]of t){const{wrapped:t}=o,s=this[e];!0!==t||this._$AL.has(e)||void 0===s||this.C(e,void 0,o,s)}}let t=!1;const e=this._$AL;try{t=this.shouldUpdate(e),t?(this.willUpdate(e),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(e)):this._$EM()}catch(e){throw t=!1,this._$EM(),e}t&&this._$AE(e)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}};A.elementStyles=[],A.shadowRootOptions={mode:"open"},A[_("elementProperties")]=new Map,A[_("finalized")]=new Map,$?.({ReactiveElement:A}),(v.reactiveElementVersions??=[]).push("2.1.0");const C=globalThis,x=C.trustedTypes,O=x?x.createPolicy("lit-html",{createHTML:t=>t}):void 0,D="$lit$",U=`lit$${Math.random().toFixed(9).slice(2)}$`,F="?"+U,P=`<${F}>`,T=document,j=()=>T.createComment(""),B=t=>null===t||"object"!=typeof t&&"function"!=typeof t,V=Array.isArray,W="[ \t\n\f\r]",Z=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,q=/-->/g,G=/>/g,J=RegExp(`>|${W}(?:([^\\s"'>=/]+)(${W}*=${W}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),Y=/'/g,K=/"/g,X=/^(?:script|style|textarea|title)$/i,Q=(t=>(e,...o)=>({_$litType$:t,strings:e,values:o}))(1),tt=Symbol.for("lit-noChange"),et=Symbol.for("lit-nothing"),it=new WeakMap,ot=T.createTreeWalker(T,129);function st(t,e){if(!V(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==O?O.createHTML(e):e}const rt=(t,e)=>{const o=t.length-1,s=[];let r,a=2===e?"<svg>":3===e?"<math>":"",l=Z;for(let e=0;e<o;e++){const o=t[e];let c,h,d=-1,p=0;for(;p<o.length&&(l.lastIndex=p,h=l.exec(o),null!==h);)p=l.lastIndex,l===Z?"!--"===h[1]?l=q:void 0!==h[1]?l=G:void 0!==h[2]?(X.test(h[2])&&(r=RegExp("</"+h[2],"g")),l=J):void 0!==h[3]&&(l=J):l===J?">"===h[0]?(l=r??Z,d=-1):void 0===h[1]?d=-2:(d=l.lastIndex-h[2].length,c=h[1],l=void 0===h[3]?J:'"'===h[3]?K:Y):l===K||l===Y?l=J:l===q||l===G?l=Z:(l=J,r=void 0);const u=l===J&&t[e+1].startsWith("/>")?" ":"";a+=l===Z?o+P:d>=0?(s.push(c),o.slice(0,d)+D+o.slice(d)+U+u):o+U+(-2===d?e:u)}return[st(t,a+(t[o]||"<?>")+(2===e?"</svg>":3===e?"</math>":"")),s]};class N{constructor({strings:t,_$litType$:e},o){let s;this.parts=[];let r=0,a=0;const l=t.length-1,c=this.parts,[h,d]=rt(t,e);if(this.el=N.createElement(h,o),ot.currentNode=this.el.content,2===e||3===e){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(s=ot.nextNode())&&c.length<l;){if(1===s.nodeType){if(s.hasAttributes())for(const t of s.getAttributeNames())if(t.endsWith(D)){const e=d[a++],o=s.getAttribute(t).split(U),l=/([.?@])?(.*)/.exec(e);c.push({type:1,index:r,name:l[2],strings:o,ctor:"."===l[1]?H:"?"===l[1]?I:"@"===l[1]?L:k}),s.removeAttribute(t)}else t.startsWith(U)&&(c.push({type:6,index:r}),s.removeAttribute(t));if(X.test(s.tagName)){const t=s.textContent.split(U),e=t.length-1;if(e>0){s.textContent=x?x.emptyScript:"";for(let o=0;o<e;o++)s.append(t[o],j()),ot.nextNode(),c.push({type:2,index:++r});s.append(t[e],j())}}}else if(8===s.nodeType)if(s.data===F)c.push({type:2,index:r});else{let t=-1;for(;-1!==(t=s.data.indexOf(U,t+1));)c.push({type:7,index:r}),t+=U.length-1}r++}}static createElement(t,e){const o=T.createElement("template");return o.innerHTML=t,o}}function nt(t,e,o=t,s){if(e===tt)return e;let r=void 0!==s?o._$Co?.[s]:o._$Cl;const a=B(e)?void 0:e._$litDirective$;return r?.constructor!==a&&(r?._$AO?.(!1),void 0===a?r=void 0:(r=new a(t),r._$AT(t,o,s)),void 0!==s?(o._$Co??=[])[s]=r:o._$Cl=r),void 0!==r&&(e=nt(t,r._$AS(t,e.values),r,s)),e}class M{constructor(t,e){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:e},parts:o}=this._$AD,s=(t?.creationScope??T).importNode(e,!0);ot.currentNode=s;let r=ot.nextNode(),a=0,l=0,c=o[0];for(;void 0!==c;){if(a===c.index){let e;2===c.type?e=new R(r,r.nextSibling,this,t):1===c.type?e=new c.ctor(r,c.name,c.strings,this,t):6===c.type&&(e=new z(r,this,t)),this._$AV.push(e),c=o[++l]}a!==c?.index&&(r=ot.nextNode(),a++)}return ot.currentNode=T,s}p(t){let e=0;for(const o of this._$AV)void 0!==o&&(void 0!==o.strings?(o._$AI(t,o,e),e+=o.strings.length-2):o._$AI(t[e])),e++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,e,o,s){this.type=2,this._$AH=et,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=o,this.options=s,this._$Cv=s?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t?.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=nt(this,t,e),B(t)?t===et||null==t||""===t?(this._$AH!==et&&this._$AR(),this._$AH=et):t!==this._$AH&&t!==tt&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):(t=>V(t)||"function"==typeof t?.[Symbol.iterator])(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==et&&B(this._$AH)?this._$AA.nextSibling.data=t:this.T(T.createTextNode(t)),this._$AH=t}$(t){const{values:e,_$litType$:o}=t,s="number"==typeof o?this._$AC(t):(void 0===o.el&&(o.el=N.createElement(st(o.h,o.h[0]),this.options)),o);if(this._$AH?._$AD===s)this._$AH.p(e);else{const t=new M(s,this),o=t.u(this.options);t.p(e),this.T(o),this._$AH=t}}_$AC(t){let e=it.get(t.strings);return void 0===e&&it.set(t.strings,e=new N(t)),e}k(t){V(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let o,s=0;for(const r of t)s===e.length?e.push(o=new R(this.O(j()),this.O(j()),this,this.options)):o=e[s],o._$AI(r),s++;s<e.length&&(this._$AR(o&&o._$AB.nextSibling,s),e.length=s)}_$AR(t=this._$AA.nextSibling,e){for(this._$AP?.(!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,e,o,s,r){this.type=1,this._$AH=et,this._$AN=void 0,this.element=t,this.name=e,this._$AM=s,this.options=r,o.length>2||""!==o[0]||""!==o[1]?(this._$AH=Array(o.length-1).fill(new String),this.strings=o):this._$AH=et}_$AI(t,e=this,o,s){const r=this.strings;let a=!1;if(void 0===r)t=nt(this,t,e,0),a=!B(t)||t!==this._$AH&&t!==tt,a&&(this._$AH=t);else{const s=t;let l,c;for(t=r[0],l=0;l<r.length-1;l++)c=nt(this,s[o+l],e,l),c===tt&&(c=this._$AH[l]),a||=!B(c)||c!==this._$AH[l],c===et?t=et:t!==et&&(t+=(c??"")+r[l+1]),this._$AH[l]=c}a&&!s&&this.j(t)}j(t){t===et?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===et?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==et)}}class L extends k{constructor(t,e,o,s,r){super(t,e,o,s,r),this.type=5}_$AI(t,e=this){if((t=nt(this,t,e,0)??et)===tt)return;const o=this._$AH,s=t===et&&o!==et||t.capture!==o.capture||t.once!==o.once||t.passive!==o.passive,r=t!==et&&(o===et||s);s&&this.element.removeEventListener(this.name,this,o),r&&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 z{constructor(t,e,o){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=o}get _$AU(){return this._$AM._$AU}_$AI(t){nt(this,t)}}const at=C.litHtmlPolyfillSupport;at?.(N,R),(C.litHtmlVersions??=[]).push("3.3.0");const lt=globalThis;let ct=class i extends A{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 e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=((t,e,o)=>{const s=o?.renderBefore??e;let r=s._$litPart$;if(void 0===r){const t=o?.renderBefore??null;s._$litPart$=r=new R(e.insertBefore(j(),t),t,void 0,o??{})}return r._$AI(t),r})(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return tt}};ct._$litElement$=!0,ct.finalized=!0,lt.litElementHydrateSupport?.({LitElement:ct});const ht=lt.litElementPolyfillSupport;ht?.({LitElement:ct}),(lt.litElementVersions??=[]).push("4.2.0");const dt=1;class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,o){this._$Ct=t,this._$AM=e,this._$Ci=o}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}const pt=(t=>(...e)=>({_$litDirective$:t,values:e}))(class extends i{constructor(t){if(super(t),t.type!==dt||"class"!==t.name||t.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter((e=>t[e])).join(" ")+" "}update(t,[e]){if(void 0===this.st){this.st=new Set,void 0!==t.strings&&(this.nt=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in e)e[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(e)}const o=t.element.classList;for(const t of this.st)t in e||(o.remove(t),this.st.delete(t));for(const t in e){const s=!!e[t];s===this.st.has(t)||this.nt?.has(t)||(s?(o.add(t),this.st.add(t)):(o.remove(t),this.st.delete(t)))}return tt}});var ut="https://static-files-concierge.staging.flybits.com/latest/zone.html",gt=2e3,yt="2.1.0-rc.0",ft=function(){var t=this;this.promise=new Promise((function(e,o){t.resolve=e,t.reject=o})),this.then=this.promise.then.bind(this.promise),this.catch=this.promise.catch.bind(this.promise)};const vt=function(t,e){var o={};return Object.keys(t).forEach((function(s){const r=t[s];r?e[s].type===Boolean?o[s]="true"===r?.toLowerCase():e[s].type===Number?o[s]=+r:o[s]=r:e[s].hasOwnProperty("default")&&(o[s]=protocolObj[s].default)})),o};class ActionLink{static protocol={DETAILS:"details",INAPPBROWSER:"web",BROWSER:"browser",HTTPS:"https",PHONE:"phone",APP:"app",CONCIERGE:"concierge",UNIVERSAL:"universalLink",MAIL:"mail",CUSTOM:"custom"};static PROTOCOLDEFS={details:{contentId:{type:String},overlay:{type:Boolean,default:!1},title:{type:String}},web:{url:{type:String}},browser:{url:{type:String}},https:{},phone:{phoneNumber:{type:String}},app:{name:{type:String}},concierge:{container:{type:String},zoneReferenceId:{type:String},filter:{type:String},style:{type:String},overlay:{type:Boolean,default:!1}},universalLink:{ios:{type:String},android:{type:String}},mail:{sendTo:{type:String},subject:{type:String},body:{type:String},cc:{type:String},bcc:{type:String}},custom:{}};constructor(t){this.rawStr="",this.protocol="",this.value="",this.protoValue="",this.params={},this.data={},this.fromLink(t)}_parseParams(t,e){var o={},s=[];return Object.keys(e).forEach((e=>{s.push({key:e,idx:t.indexOf(e+"=")})})),s.sort(((t,e)=>t.idx-e.idx)),s.forEach(((e,r)=>{e.idx<0||(s[r+1]?o[e.key]=t.slice(e.idx+e.key.length+1,s[r+1].idx-1):o[e.key]=t.slice(e.idx+e.key.length+1))})),o}fromLink(t){this.rawStr=t;var e=t.split("://")[0]||"";e=e.toLowerCase();var o=t.indexOf("://")>-1?t.substring(t.indexOf("://")+3):t,s=ActionLink.PROTOCOLDEFS.custom;if(ActionLink.PROTOCOLDEFS[e])s=ActionLink.PROTOCOLDEFS[e];else try{const e=new URL(t);this.protoValue=t.match(/:\/\/(.*?)\?/)[1],this.params=Object.fromEntries(e.searchParams.entries())}catch(t){console.warn("custom action is of unknown protocol scheme")}if(this.protocol=e,this.value=o,s&&Object.keys(s).length){var r=this._parseParams(o,s);r=vt(r,s),this.params=r}}toJSON(){return{rawStr:this.rawStr,protocol:this.protocol,protoValue:this.protoValue,value:this.value,params:this.params,data:this.data}}static parse(t){return new ActionLink(t)}}var mt={cachedContent:{},getCachedContentDetails:function(t){return this.cachedContent[t]},getContentDetails:function(t){const e=new ft;var o=this;return Flybits.api.Content.get(t).then((function(t){o.cachedContent[t.result.id]=t.result,e.resolve(t.result)})).catch((function(t){e.reject(t)})),e.promise},getZoneContent:function(t){const e=new ft;var o=this.cachedContent;return Flybits.api.Zones.getByReferenceId(t).then((function(s){s?.zone?.modules?(s.zone.modules.forEach((function(t){t.content.forEach((function(t){o[t.id]=t}))})),e.resolve(s.zone)):e.reject((new Flybits.Validation).addError("Zone not found","No valid Zone was found with specified reference ID",{code:Flybits.Validation.type.NOTFOUND,context:t}))})).catch((function(t){e.reject(t)})),e.promise}},bt=function(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)},$t={guid:function(t){var e="";if(t&&t>0){for(var o=0;o<t;o++)e+=""!==e?"-"+bt():bt();return e}return bt()+bt()+"-"+bt()+"-"+bt()+"-"+bt()+"-"+bt()+bt()+bt()},getByStr:function(t,e){for(var o=(e=(e=e.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split("."),s=0,r=o.length;s<r;++s){var a=o[s];if(!(a in t))return;t=t[a]}return t},setByStr:function(t,e,o){for(var s=(e=(e=e.replace(/\[(\w+)\]/g,".$1")).replace(/^\./,"")).split("."),r=0,a=s.length;r<a;r++){var l=s[r];if(l in t&&r+1<a)t=t[l];else{if(l in t||!(r+1<a))return t[l]=o,o;t[l]={},t=t[l]}}},removeObject:function(t,e,o){var s=t.indexOf(e);if(o){var r=t.filter(o);r.length>0&&(s=t.indexOf(r[0]))}return s>=0?t.splice(s,1):t},debounce:function(t,e,o){var s;return function(){var r=this,a=arguments,l=o&&!s;clearTimeout(s),s=setTimeout((function(){s=null,o||t.apply(r,a)}),e),l&&t.apply(r,a)}}};$t.extend=function(){function t(t){return t&&"object"==typeof t&&"[object RegExp]"!==Object.prototype.toString.call(t)&&"[object Date]"!==Object.prototype.toString.call(t)}function e(e,o){var r;return o&&!0===o.clone&&t(e)?s((r=e,Array.isArray(r)?[]:{}),e,o):e}function o(o,r,a){var l=o.slice();return r.forEach((function(r,c){void 0===l[c]?l[c]=e(r,a):t(r)?l[c]=s(o[c],r,a):-1===o.indexOf(r)&&l.push(e(r,a))})),l}function s(r,a,l){var c=Array.isArray(a),h=(l||{arrayMerge:o}).arrayMerge||o;return c?Array.isArray(r)?h(r,a,l):e(a,l):function(o,r,a){var l={};return t(o)&&Object.keys(o).forEach((function(t){l[t]=e(o[t],a)})),Object.keys(r).forEach((function(c){t(r[c])&&o[c]?l[c]=s(o[c],r[c],a):l[c]=e(r[c],a)})),l}(r,a,l)}return s.all=function(t,e){if(!Array.isArray(t)||t.length<2)throw new Error("first argument should be an array with at least two elements");return t.reduce((function(t,o){return s(t,o,e)}))},s}();class Zone{static generateOverlayPayload(t,e){var o=new Flybits.Zone;o.id=$t.guid(2),o.name="Overlay",o.referenceID="overlay";var s=new Flybits.Module;s.id=$t.guid(2),s.layout="overlay",s.content=[t],o.modules=[s];var r=o.toConciergeContainer(e);return r.containers[0].content[0].uiTemplate=t.detailsUI?.layoutHTML||"\x3c!-- --\x3e",r.containers[0].content[0].style=t.detailsUI?.styleCSSURL||"",r.containers[0].content[0].styleStr=t.detailsUI?.styleCSS||"",r}static generateDetailsPayload(t,e){var o=new Flybits.Zone;o.id=$t.guid(2),o.name="Content Details",o.referenceID="details";var s=new Flybits.Module;s.id=$t.guid(2),s.layout="vertical",s.content=[t],o.modules=[s];var r=o.toConciergeContainer(e);return r.containers[0].content[0].uiTemplate=t.detailsUI?.layoutHTML||"\x3c!-- --\x3e",r.containers[0].content[0].style=t.detailsUI?.styleCSSURL||"",r.containers[0].content[0].styleStr=t.detailsUI?.styleCSS||"",r}}var _t={_deferredCtxInit:!1,autoInitCtxManager:function(){this._deferredCtxInit||(this._deferredCtxInit=!0,Flybits.Session.ready.then((function(){"object"!=typeof window.Flybits||Flybits.context.Manager.isReporting||(Flybits.context.Manager.reportDelay=gt,Flybits.context.Manager.initialize())})))},handleContextPayload:function(t,e){e=e||console,Array.isArray(t)?Flybits.context.Manager.ready.then((function(){t.forEach((function(o){if(o.pluginId&&o.values){var s={};Object.keys(o.values).forEach((function(t){var e=t.replaceAll("query.","");s[e]=o.values[t]})),Flybits.context.Manager.reportCtx(o.pluginId,s)}else e.error("[ctxapi] malformed ctx payload object",t)}))})):e.error("[ctxapi] malformed ctx payload",t)},handleAnalyticsPayload:function(t,e){e=e||console,t?.contentInfo?.id?"viewed"!==t.type&&"engaged"!==t.type||t.component?"engaged"!==t.type&&"content_component_event"!==t.type||!t.component?e.error("[ctxapi] unsupported analytics event",t):Flybits.context.Manager.ready.then((function(){Flybits.analytics.Manager.reportContentID(t.contentInfo.id,Flybits.analytics.Manager.actions.COMPONENTENGAGED,{name:t.component.name,compID:t.component.id,type:t.component.compId})})):Flybits.context.Manager.ready.then((function(){Flybits.analytics.Manager.reportContentID(t.contentInfo.id,t.type)})):e.error("[ctxapi] missing content id in analytics event")}};class Logger{static modes={VERBOSE:"verbose",ERRORS:"errors",SILENT:"silent"};constructor(t){t=t||{},this.mode=t.mode||"errors"}get prefix(){const t=new Date;return`[fk-${t.getHours()}:${t.getMinutes()}:${t.getSeconds()}:${t.getMilliseconds()}.${(window?.performance.now().toFixed(2)+"").split(".")[1]}]`}log(...t){this.mode!==Logger.modes.SILENT&&this.mode===Logger.modes.VERBOSE&&(t.unshift(this.prefix),console.log.apply(null,t))}error(...t){this.mode!==Logger.modes.SILENT&&(t.unshift(this.prefix),console.error.apply(null,t))}warn(...t){this.mode!==Logger.modes.SILENT&&this.mode===Logger.modes.VERBOSE&&(t.unshift(this.prefix),console.warn.apply(null,t))}}var St=function(t){return!!t?.modules?.filter((t=>t?.content?.length))?.length};class FlybitsSlot extends ct{static get VERSION(){return yt}static get modes(){return{FIXEDHEIGHT:"fixedheight",DYNAMICHEIGHT:"dynamicheight"}}static properties={host:{type:String},projectID:{type:String,attribute:"project-id"},renderURL:{type:String,attribute:"render-url"},refID:{type:String,attribute:"ref-id"},pollingEnabled:{type:Boolean,attribute:"polling-enabled"},pollingInterval:{type:Number,attribute:"polling-interval"},renderMode:{type:String,attribute:"render-mode"},overlayOutlet:{type:String|HTMLElement,attribute:"overlay-outlet"},overrideOverlay:{type:Boolean,attribute:"override-overlay"},overrideURLs:{type:Boolean,attribute:"override-urls"},overrideActions:{type:Boolean,attribute:"override-actions"},overlayDismissUI:{type:Boolean,attribute:"overlay-dismiss-ui"},isLoadingOpen:{type:Boolean,attribute:"show-loading"},isErrorOpen:{type:Boolean,attribute:"show-error"},hasLoadingSlot:{type:Boolean},hasErrorSlot:{type:Boolean},logLevel:{type:String,attribute:"log-level"},localization:{type:String},textDirection:{type:String,attribute:"text-direction"}};static styles=l`
|
|
2
2
|
:host {
|
|
3
3
|
position: relative;
|
|
4
4
|
display: block;
|
|
@@ -28,7 +28,7 @@ const t=globalThis,o=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow
|
|
|
28
28
|
.overlay-loading{
|
|
29
29
|
display: none;
|
|
30
30
|
}
|
|
31
|
-
`;get $renderFrame(){return this.renderRoot?.querySelector(".flb-frame")??null}get $noContentUI(){const t=this.shadowRoot.querySelector('slot[name="no-content"]'),e=t?.assignedElements({flatten:!0});return e?.[0]}get $overlayLoadingUI(){const t=this.shadowRoot.querySelector('slot[name="overlay-loading"]'),e=t?.assignedElements({flatten:!0});return e?.length&&(this._$overlayLoadingOverride=e[0]),this._$overlayLoadingOverride}get $overlayErrorUI(){const t=this.shadowRoot.querySelector('slot[name="overlay-error"]'),e=t?.assignedElements({flatten:!0});return e?.length&&(this._$overlayErrorOverride=e[0]),this._$overlayErrorOverride}get browserLocale(){var t=navigator?.language||"en";return(t=t.toLowerCase()).indexOf("-")>-1&&(t=t.split("-")[0]),t}get resolvedLocale(){var t={locale:"",textDirection:"ltr"};switch("auto"===this.localization?t.locale=this.browserLocale:2===this.localization?.length&&(t.locale=this.localization),t.locale){case"ar":case"dv":case"ff":case"he":case"ku":case"fa":case"ur":t.textDirection="rtl"}return this.textDirection&&["ltr","rtl","auto"].indexOf(this.textDirection)>-1&&(t.textDirection=this.textDirection),t}get initParams(){return{host:this.host,refID:this.refID,projectID:this.projectID}}constructor(){super(),this.zone=null,this.pollingEnabled=!1,this.pollingInterval=2500,this.renderMode=FlybitsSlot.modes.DYNAMICHEIGHT,this.host="",this.renderURL=ut,this.refID="",this.projectID="",this._hasDeferredLoad=!1,this.overlayDismissUI=!1,this.overlayOutlet=document.body,this.overrideOverlay=!1,this.overrideURLs=!1,this.overrideActions=!1,this._loaderStack=[],this.isLoadingOpen=!1,this.isErrorOpen=!1,this.showNoContentUI=!1,this.hasLoadingSlot=!1,this.hasErrorSlot=!1,this.hasNoContentSlot=!1,this._$overlayLoadingOverride=null,this._$overlayErrorOverride=null,this._$evtSrcCtx=this,this.logger=new Logger({mode:this.logLevel||"errors"}),this.localization="disabled",this.textDirection=null}connectedCallback(){super.connectedCallback(),this.frameLoadDef=new ft,this.frameLoadPromise=this.frameLoadDef.promise,this.detectFlybits(),this._reboundHandleFrameEvent=this.handleFrameEvent.bind(this),window.addEventListener("message",this._reboundHandleFrameEvent)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this._reboundHandleFrameEvent)}init(t){if(t=t??{},this.pollingEnabled=t.pollingEnabled??this.pollingEnabled,this.pollingInterval=t.pollingInterval||this.pollingInterval,this.host=t.host||this.host,this.renderURL=t.renderURL||this.renderURL,this.refID=t.refID||this.refID,this.projectID=t.projectID,this.overlayOutlet=t.overlayOutlet||this.overlayOutlet,this.overrideOverlay=!!t.overrideOverlay,this.overrideURLs=!!t.overrideURLs,this.overrideActions=!!t.overrideActions,this.logger.mode=this.logLevel=t.logLevel||Logger.modes.ERRORS,"disabled"!==t.localization){const e=t.localization?.toLowerCase();"auto"!==e&&2!==e?.length||(this.localization=e)}if(t.textDirection)switch(t.textDirection){case"ltr":case"rtl":case"auto":this.textDirection=t.textDirection;break;default:this.logger.warn("invalid text direction specified:",t.textDirection)}}initElementMeta(){if(this.renderMode===FlybitsSlot.modes.DYNAMICHEIGHT)if(this.refID)if(Flybits.Session._projectID){var t=this;this.logger.log("fetching zone metadata",Flybits.Session._projectID),Flybits.api.Zones.getZoneMetadata(Flybits.Session._projectID,this.refID).then((function(e){t.logger.log("set from metadata height",e.height),t._setHeight(e.height)})).catch((function(e){t.logger.error(e)}))}else this.logger.warn("missing Flybits project ID");else this.logger.warn("missing Zone reference ID")}attributeChangedCallback(t,e,o){super.attributeChangedCallback(t,e,o),"ref-id"===t?(!e&&o&&!this._hasDeferredLoad||e&&o&&e!==o)&&this.detectFlybits():"log-level"===t&&(this.logger.mode=o)}loadZoneData(){const t=new ft,e=this;return this.refID&&"overlay"!==this.refID?(this.showNoContentUI=!1,this.isErrorOpen=!1,this.setLoading(!0),this.logger.log("fetching zone content",this.refID),mt.getZoneContent(this.refID).then((function(o){e.zone=o,e.logger.log("set height from loadzone"),e._setHeight(o.height),e._dispatchLoad(o),!St(o)&&e.$noContentUI&&(e.showNoContentUI=!0),e.injectData(o.toConciergeContainer(e.resolvedLocale)),t.resolve()})).catch((function(o){e.logger.error(o),e.isErrorOpen=!0,e._dispatchError(o),t.reject(o)})).then((function(){e._hasDeferredLoad=!1,e.setLoading(!1)})),t.promise):(e._hasDeferredLoad=!1,e.logger.warn("no refID detected"),Promise.reject())}injectData(t){t.appid={name:"flightkit",version:FlybitsSlot.VERSION,coreVersion:Flybits?.VERSION,logLevel:this.logLevel},this._framePostMessage(t)}_framePostMessage(t){this.frameLoadPromise?this.frameLoadPromise.then((()=>{var e=this.$renderFrame?.contentWindow;e?(this.logger.log("injecting payload",t),e.postMessage(t,this.renderURL)):this.logger.error("no frame window detected")})):this.$renderFrame?.contentWindow&&this.$renderFrame.contentWindow.postMessage(t,$el.renderURL)}handleAction(t){const o=new ft,s=this;if(t.protocol===ActionLink.protocol.DETAILS){if(!t.params.contentId&&t.data.content&&t.meta.contentID)return s.logger.error("details action missing content id",e),Promise.reject();if(t.data.content)this.injectData(Zone.generateDetailsPayload(t.data.content,s.resolvedLocale)),o.resolve();else{const e=t.params.contentId||t.meta.contentID;this._resolveContent(e).then((function(t){s.injectData(Zone.generateDetailsPayload(t,s.resolvedLocale)),o.resolve()})).catch((function(t){s.logger.error("cannot resolve content",t),o.reject()}))}}else if(t.protocol===ActionLink.protocol.CONCIERGE)return t.params.zoneReferenceId?(this.refID=t.params.zoneReferenceId,this.loadZoneData()):(s.logger.error("concierge action missing zone reference id",e),Promise.reject());return o.promise}setLoading(t){return t?(this.logger.log("open loading ui"),this.isLoadingOpen=!0,this._loaderStack.push(!0)):!t&&this._loaderStack.length>1?this._loaderStack.pop():t||(this.logger.log("closing loading ui"),this._loaderStack.pop(),this.isLoadingOpen=!1),this}_setHeight(t){null==t||isNaN(t)?this.logger.warn("not a valid height",t):this.renderMode===FlybitsSlot.modes.DYNAMICHEIGHT&&(this.logger.log("setting height",t),this.style.height=t+"px")}_resolveContent(t){const e=new ft,o=t?mt.getCachedContentDetails(t):null;if(o)return Promise.resolve(o);const s=this;return s.setLoading(!0),mt.getContentDetails(t).then((function(t){e.resolve(t)})).catch((function(t){e.reject(t)})).then((function(){s.setLoading(!1)})),e.promise}_dispatchActionLinks(t,e){const o=this,s=new ActionLink(t);if(!this.overrideActions){if(s.protocol===ActionLink.protocol.DETAILS&&!this.overrideOverlay){const t=s.params.contentId||e.contentID;return void this._resolveContent(t).then((function(t){s.data.content=t,Flightkit.outlet.openOverlay(s,o.overlayOutlet,o)})).catch((function(t){o.logger.error("failed to load content",t)}))}if(s.protocol===ActionLink.protocol.CONCIERGE&&!this.overrideOverlay)return void Flightkit.outlet.openOverlay(s,o.overlayOutlet,o);if(s.protocol===ActionLink.protocol.HTTPS&&!this.overrideURLs)return s.rawStr?void window.open(s.rawStr,"_blank"):void o.logger.error("invalid url",s.rawStr);if(s.protocol===ActionLink.protocol.BROWSER&&!this.overrideURLs)return s.params.url?void window.open(s.params.url,"_blank"):void o.logger.error("invalid url",s.params.url);if(s.protocol===ActionLink.protocol.INAPPBROWSER&&!this.overrideURLs)return s.params.url?void(window.location.href=s.params.url):void o.logger.error("invalid url",s.params.url)}const r=s.toJSON();e&&(r.meta=e);const a=new CustomEvent("action",{detail:r,bubbles:!0,composed:!0});this._$evtSrcCtx.dispatchEvent(a)}_dispatchLoad(t){var e=[];t?.modules?.forEach((t=>{t?.content?.forEach((t=>{e.push(t.id)}))})),this._$evtSrcCtx.dispatchEvent(new CustomEvent("zoneLoad",{detail:{zone:t,contentIDs:e},bubbles:!0,composed:!0}))}_dispatchError(t){t&&t instanceof Flybits.Validation?(delete t.stacktrace,this._$evtSrcCtx.dispatchEvent(new CustomEvent("error",{detail:{errors:t.errors},bubbles:!0,composed:!0}))):this.logger.error("invalid error type",t)}detectFlybits(){var t=this;window.Flybits?(_t.autoInitCtxManager(),this.host&&(Flybits.cfg.HOST=this.host),this.projectID&&(Flybits.Session._projectID=this.projectID),Flybits.Session._projectID?(this.initElementMeta(),Flybits.Session.userToken?this.loadZoneData().catch((function(){})):this._hasDeferredLoad||(this._hasDeferredLoad=!0,Flybits.Session.ready.then((function(){t.loadZoneData().catch((function(){}))})))):this._hasDeferredLoad||(this._hasDeferredLoad=!0,Flybits.Session.ready.then((function(){t.loadZoneData().catch((function(){}))})))):this.logger.error("Flybits.js Core SDK not detected.")}handleFrameEvent(t){try{var e=this.$renderFrame.contentWindow;if(t.source!==e||t.origin!==new URL(this.renderURL).origin)return;if(t.data&&t.data.flb){var o=t?.data?.value?JSON.parse(t.data.value):{};if(this.logger.log("frameEvt["+this.refID+"]["+t.data.type+"]",o),"context"===t.data.type)_t.handleContextPayload(o,this.logger);else if("action"===t.data.type)this._dispatchActionLinks(o.actionlink,{contentID:o?.contentInfo?.id});else if("analytics"===t.data.type)_t.handleAnalyticsPayload(o,this.logger);else if("error"===t.data.type);else if("dismiss"===t.data.type)"function"==typeof this._dispatchDismiss&&this._dispatchDismiss();else if("flb.heightupdate"===t.data.type){const e=+t.data.value;this.logger.log("set height from frame event",e),this._setHeight(e)}else this.logger.warn("Message not supported",t.data)}}catch(t){this.logger.error("Cannot parse message",t)}}_handleFrameLoad(t){this.frameLoadDef.resolve()}_handleLoadingSlotChange(t){const e=t.target.assignedNodes({flatten:!0});this.logger.log("loading slot change",e),e.length&&(this.hasLoadingSlot=!0)}_handleErrorSlotChange(t){const e=t.target.assignedNodes({flatten:!0});this.logger.log("error slot change",e),e.length&&(this.hasErrorSlot=!0)}_handleNoContentSlotChange(t){const e=t.target.assignedNodes({flatten:!0});this.logger.log("no content slot change",e),e.length&&(this.hasNoContentSlot=!0)}_handleSlotEvent(t){t.preventDefault(),t.stopPropagation(),"reload"===t?.type&&(this.loadZoneData(),this.isErrorOpen=!1)}render(){return Q`
|
|
31
|
+
`;get $renderFrame(){return this.renderRoot?.querySelector(".flb-frame")??null}get $noContentUI(){const t=this.shadowRoot.querySelector('slot[name="no-content"]'),e=t?.assignedElements({flatten:!0});return e?.[0]}get $overlayLoadingUI(){const t=this.shadowRoot.querySelector('slot[name="overlay-loading"]'),e=t?.assignedElements({flatten:!0});return e?.length&&(this._$overlayLoadingOverride=e[0]),this._$overlayLoadingOverride}get $overlayErrorUI(){const t=this.shadowRoot.querySelector('slot[name="overlay-error"]'),e=t?.assignedElements({flatten:!0});return e?.length&&(this._$overlayErrorOverride=e[0]),this._$overlayErrorOverride}get browserLocale(){var t=navigator?.language||"en";return(t=t.toLowerCase()).indexOf("-")>-1&&(t=t.split("-")[0]),t}get resolvedLocale(){var t={locale:"",textDirection:"ltr"};switch("auto"===this.localization?t.locale=this.browserLocale:2===this.localization?.length&&(t.locale=this.localization),t.locale){case"ar":case"dv":case"ff":case"he":case"ku":case"fa":case"ur":t.textDirection="rtl"}return this.textDirection&&["ltr","rtl","auto"].indexOf(this.textDirection)>-1&&(t.textDirection=this.textDirection),t}get initParams(){return{host:this.host,refID:this.refID,projectID:this.projectID}}constructor(){super(),this.zone=null,this.pollingEnabled=!1,this.pollingInterval=2500,this.renderMode=FlybitsSlot.modes.DYNAMICHEIGHT,this.host="",this.renderURL=ut,this.refID="",this.projectID="",this._hasDeferredLoad=!1,this.overlayDismissUI=!1,this.overlayOutlet=document.body,this.overrideOverlay=!1,this.overrideURLs=!1,this.overrideActions=!1,this._loaderStack=[],this.isLoadingOpen=!1,this.isErrorOpen=!1,this.showNoContentUI=!1,this.hasLoadingSlot=!1,this.hasErrorSlot=!1,this.hasNoContentSlot=!1,this._$overlayLoadingOverride=null,this._$overlayErrorOverride=null,this._$evtSrcCtx=this,this.logger=new Logger({mode:this.logLevel||"errors"}),this.localization="disabled",this.textDirection=null}connectedCallback(){super.connectedCallback(),this.frameLoadDef=new ft,this.frameLoadPromise=this.frameLoadDef.promise,this.detectFlybits(),this._reboundHandleFrameEvent=this.handleFrameEvent.bind(this),window.addEventListener("message",this._reboundHandleFrameEvent),window.addEventListener("resize",this._handleWindowResize),this.frameLoadPromise.then((()=>{this._handleWindowResize()}))}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("message",this._reboundHandleFrameEvent),window.removeEventListener("resize",this._handleWindowResize)}init(t){if(t=t??{},this.pollingEnabled=t.pollingEnabled??this.pollingEnabled,this.pollingInterval=t.pollingInterval||this.pollingInterval,this.host=t.host||this.host,this.renderURL=t.renderURL||this.renderURL,this.refID=t.refID||this.refID,this.projectID=t.projectID,this.overlayOutlet=t.overlayOutlet||this.overlayOutlet,this.overrideOverlay=!!t.overrideOverlay,this.overrideURLs=!!t.overrideURLs,this.overrideActions=!!t.overrideActions,this.logger.mode=this.logLevel=t.logLevel||Logger.modes.ERRORS,"disabled"!==t.localization){const e=t.localization?.toLowerCase();"auto"!==e&&2!==e?.length||(this.localization=e)}if(t.textDirection)switch(t.textDirection){case"ltr":case"rtl":case"auto":this.textDirection=t.textDirection;break;default:this.logger.warn("invalid text direction specified:",t.textDirection)}}initElementMeta(){if(this.renderMode===FlybitsSlot.modes.DYNAMICHEIGHT)if(this.refID)if(Flybits.Session._projectID){var t=this;this.logger.log("fetching zone metadata",Flybits.Session._projectID),Flybits.api.Zones.getZoneMetadata(Flybits.Session._projectID,this.refID).then((function(e){t.logger.log("set from metadata height",e.height),t._setHeight(e.height)})).catch((function(e){t.logger.error(e)}))}else this.logger.warn("missing Flybits project ID");else this.logger.warn("missing Zone reference ID")}attributeChangedCallback(t,e,o){super.attributeChangedCallback(t,e,o),"ref-id"===t?(!e&&o&&!this._hasDeferredLoad||e&&o&&e!==o)&&this.detectFlybits():"log-level"===t&&(this.logger.mode=o)}loadZoneData(){const t=new ft,e=this;return this.refID&&"overlay"!==this.refID?(this.showNoContentUI=!1,this.isErrorOpen=!1,this.setLoading(!0),this.logger.log("fetching zone content",this.refID),mt.getZoneContent(this.refID).then((function(o){e.zone=o,e.logger.log("set height from loadzone"),e._setHeight(o.height),e._dispatchLoad(o),!St(o)&&e.$noContentUI&&(e.showNoContentUI=!0),e.injectData(o.toConciergeContainer(e.resolvedLocale)),t.resolve()})).catch((function(o){e.logger.error(o),e.isErrorOpen=!0,e._dispatchError(o),t.reject(o)})).then((function(){e._hasDeferredLoad=!1,e.setLoading(!1)})),t.promise):(e._hasDeferredLoad=!1,e.logger.warn("no refID detected"),Promise.reject())}injectData(t){t={flb:!0,type:"flb.inject",appid:{name:"flightkit",version:FlybitsSlot.VERSION,coreVersion:Flybits?.VERSION,logLevel:this.logLevel},...t},this._framePostMessage(t)}_framePostMessage(t){this.frameLoadPromise?this.frameLoadPromise.then((()=>{var e=this.$renderFrame?.contentWindow;e?(this.logger.log("injecting payload",t),e.postMessage(t,this.renderURL)):this.logger.error("no frame window detected")})):this.$renderFrame?.contentWindow&&this.$renderFrame.contentWindow.postMessage(t,$el.renderURL)}handleAction(t){const o=new ft,s=this;if(t.protocol===ActionLink.protocol.DETAILS){if(!t.params.contentId&&t.data.content&&t.meta.contentID)return s.logger.error("details action missing content id",e),Promise.reject();if(t.data.content)this.injectData(Zone.generateDetailsPayload(t.data.content,s.resolvedLocale)),o.resolve();else{const e=t.params.contentId||t.meta.contentID;this._resolveContent(e).then((function(t){s.injectData(Zone.generateDetailsPayload(t,s.resolvedLocale)),o.resolve()})).catch((function(t){s.logger.error("cannot resolve content",t),o.reject()}))}}else if(t.protocol===ActionLink.protocol.CONCIERGE)return t.params.zoneReferenceId?(this.refID=t.params.zoneReferenceId,this.loadZoneData()):(s.logger.error("concierge action missing zone reference id",e),Promise.reject());return o.promise}setLoading(t){return t?(this.logger.log("open loading ui"),this.isLoadingOpen=!0,this._loaderStack.push(!0)):!t&&this._loaderStack.length>1?this._loaderStack.pop():t||(this.logger.log("closing loading ui"),this._loaderStack.pop(),this.isLoadingOpen=!1),this}_setHeight(t){null==t||isNaN(t)?this.logger.warn("not a valid height",t):this.renderMode===FlybitsSlot.modes.DYNAMICHEIGHT&&(this.logger.log("setting height",t),this.style.height=t+"px")}_resolveContent(t){const e=new ft,o=t?mt.getCachedContentDetails(t):null;if(o)return Promise.resolve(o);const s=this;return s.setLoading(!0),mt.getContentDetails(t).then((function(t){e.resolve(t)})).catch((function(t){e.reject(t)})).then((function(){s.setLoading(!1)})),e.promise}_dispatchActionLinks(t,e){const o=this,s=new ActionLink(t);if(!this.overrideActions){if(s.protocol===ActionLink.protocol.DETAILS&&!this.overrideOverlay){const t=s.params.contentId||e.contentID;return void this._resolveContent(t).then((function(t){s.data.content=t,Flightkit.outlet.openOverlay(s,o.overlayOutlet,o)})).catch((function(t){o.logger.error("failed to load content",t)}))}if(s.protocol===ActionLink.protocol.CONCIERGE&&!this.overrideOverlay)return void Flightkit.outlet.openOverlay(s,o.overlayOutlet,o);if(s.protocol===ActionLink.protocol.HTTPS&&!this.overrideURLs)return s.rawStr?void window.open(s.rawStr,"_blank"):void o.logger.error("invalid url",s.rawStr);if(s.protocol===ActionLink.protocol.BROWSER&&!this.overrideURLs)return s.params.url?void window.open(s.params.url,"_blank"):void o.logger.error("invalid url",s.params.url);if(s.protocol===ActionLink.protocol.INAPPBROWSER&&!this.overrideURLs)return s.params.url?void(window.location.href=s.params.url):void o.logger.error("invalid url",s.params.url)}const r=s.toJSON();e&&(r.meta=e);const a=new CustomEvent("action",{detail:r,bubbles:!0,composed:!0});this._$evtSrcCtx.dispatchEvent(a)}_dispatchLoad(t){var e=[];t?.modules?.forEach((t=>{t?.content?.forEach((t=>{e.push(t.id)}))})),this._$evtSrcCtx.dispatchEvent(new CustomEvent("zoneLoad",{detail:{zone:t,contentIDs:e},bubbles:!0,composed:!0}))}_dispatchError(t){t&&t instanceof Flybits.Validation?(delete t.stacktrace,this._$evtSrcCtx.dispatchEvent(new CustomEvent("error",{detail:{errors:t.errors},bubbles:!0,composed:!0}))):this.logger.error("invalid error type",t)}detectFlybits(){var t=this;window.Flybits?(_t.autoInitCtxManager(),this.host&&(Flybits.cfg.HOST=this.host),this.projectID&&(Flybits.Session._projectID=this.projectID),Flybits.Session._projectID?(this.initElementMeta(),Flybits.Session.userToken?this.loadZoneData().catch((function(){})):this._hasDeferredLoad||(this._hasDeferredLoad=!0,Flybits.Session.ready.then((function(){t.loadZoneData().catch((function(){}))})))):this._hasDeferredLoad||(this._hasDeferredLoad=!0,Flybits.Session.ready.then((function(){t.loadZoneData().catch((function(){}))})))):this.logger.error("Flybits.js Core SDK not detected.")}handleFrameEvent(t){try{var e=this.$renderFrame.contentWindow;if(t.source!==e||t.origin!==new URL(this.renderURL).origin)return;if(t.data&&t.data.flb){var o=t?.data?.value?JSON.parse(t.data.value):{};if(this.logger.log("frameEvt["+this.refID+"]["+t.data.type+"]",o),"context"===t.data.type)_t.handleContextPayload(o,this.logger);else if("action"===t.data.type)this._dispatchActionLinks(o.actionlink,{contentID:o?.contentInfo?.id});else if("analytics"===t.data.type)_t.handleAnalyticsPayload(o,this.logger);else if("error"===t.data.type);else if("dismiss"===t.data.type)"function"==typeof this._dispatchDismiss&&this._dispatchDismiss();else if("flb.heightupdate"===t.data.type){const e=+t.data.value;this.logger.log("set height from frame event",e),this._setHeight(e)}else this.logger.warn("Message not supported",t.data)}}catch(t){this.logger.error("Cannot parse message",t)}}_handleWindowResize=$t.debounce(function(t){this.injectData({flb:!0,type:"flb.inject.parent.resize",outer:{width:window.outerWidth,height:window.outerHeight},inner:{width:window.innerWidth,height:window.innerHeight},document:{width:document.documentElement.clientWidth,height:document.documentElement.clientHeight}})}.bind(this),150);_handleFrameLoad(t){this.frameLoadDef.resolve()}_handleLoadingSlotChange(t){const e=t.target.assignedNodes({flatten:!0});this.logger.log("loading slot change",e),e.length&&(this.hasLoadingSlot=!0)}_handleErrorSlotChange(t){const e=t.target.assignedNodes({flatten:!0});this.logger.log("error slot change",e),e.length&&(this.hasErrorSlot=!0)}_handleNoContentSlotChange(t){const e=t.target.assignedNodes({flatten:!0});this.logger.log("no content slot change",e),e.length&&(this.hasNoContentSlot=!0)}_handleSlotEvent(t){t.preventDefault(),t.stopPropagation(),"reload"===t?.type&&(this.loadZoneData(),this.isErrorOpen=!1)}render(){return Q`
|
|
32
32
|
<iframe src="${this.renderURL}" @load=${this._handleFrameLoad} frameborder="0" class="flb-frame" sandbox="allow-scripts allow-same-origin allow-downloads"></iframe>
|
|
33
33
|
${this.hasLoadingSlot?"":Q`
|
|
34
34
|
<div class=${pt({open:this.isLoadingOpen,"slot-default":!0,loading:!0})}>
|
|
@@ -190,4 +190,4 @@ const t=globalThis,o=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow
|
|
|
190
190
|
//# sourceMappingURL=flightkit.js.map
|
|
191
191
|
|
|
192
192
|
// @author Justin Lam
|
|
193
|
-
// @version 2.0.
|
|
193
|
+
// @version 2.1.0-rc.0:d1b4bd8
|
package/dist/flightkit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flightkit.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/directives/class-map.js","../src/config/cfg.js","../src/models/deferred.js","../src/models/actionLink.js","../src/apis/zone.js","../src/utils/obj.js","../src/models/zone.js","../src/apis/ctx.js","../src/utils/logger.js","../src/utils/zone.js","../src/components/flybits-slot.js","../src/components/flybits-overlay.js","../src/components/flybits-loading.js","../src/components/flybits-error.js","../src/core/outletManager.js","../src/core/core.js"],"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,css,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:h,getOwnPropertyNames:r,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),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y 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=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}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=[...r(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._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){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._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),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),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}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){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.0\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,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().toFixed(9).slice(2)}$`,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=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",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[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{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]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.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]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),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()),C.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 S(t,i,s=t,e){if(i===T)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=S(t,h._$AS(t,i.values),h,e)),i}class M{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);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.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 R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,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=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(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 R(this.O(l()),this.O(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 k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,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=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||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 z{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){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(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 R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B 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 r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i 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 r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((s=>t[s])).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","\nexport default {\n RENDERHOST: 'https://static-files-concierge.staging.flybits.com/latest/zone.html',\n DEFAULTFLBHOST: 'https://api.demo.flybits.com',\n DEFAULTREFID: 'homepage',\n DEFAULTCTXREPORTINTERVAL: 2000\n}","var Deferred = function(){\n var def = this;\n /**\n * @instance\n * @member {external:Promise} promise Instance of an ES6 Promise to be fulfilled.\n */\n this.promise = new Promise(function(resolve,reject){\n /**\n * @instance\n * @member {function} resolve Callback to be invoked when the asychronous task that initiated the promise is successfully completed.\n */\n def.resolve = resolve;\n /**\n * @instance\n * @member {function} reject Callback to be invoked when the asychronous task that initiated the promise has failed to complete successfully.\n */\n def.reject = reject;\n });\n\n this.then = this.promise.then.bind(this.promise);\n this.catch = this.promise.catch.bind(this.promise);\n};\n\nexport default Deferred;","\n// accounts for unencoded & ampersands\nconst validateParamObj = function(obj, protocolDef, linkStr){\n var retObj = {};\n var invalidArr = [];\n\n Object.keys(obj).forEach((key) => {\n if(!protocolDef[key]){\n var invalidParamStr = key;\n if(obj[key]){\n invalidParamStr = `${key}=${obj[key]}`;\n }\n invalidArr.push(invalidParamStr);\n } else{\n retObj[key] = obj[key];\n }\n });\n invalidArr.forEach((paramStr) => {\n const invalidParamIdx = linkStr.indexOf(paramStr);\n Object.keys(retObj).forEach((key) => {\n const validParamStr = `${key}=${retObj[key]}`;\n const validParamIdx = linkStr.indexOf(validParamStr);\n if((validParamIdx + validParamStr.length + 1) === invalidParamIdx){\n retObj[key] = `${retObj[key]}&${paramStr}`\n }\n })\n })\n\n return retObj;\n}\n\nconst coerceTypes = function(obj, protocolDef){\n var retObj = {};\n\n Object.keys(obj).forEach(function(key){\n const val = obj[key];\n if(val){\n if(protocolDef[key].type === Boolean){\n retObj[key] = val?.toLowerCase() === 'true';\n } else if(protocolDef[key].type === Number){\n retObj[key] = +val;\n } else{\n retObj[key] = val;\n }\n } else if(protocolDef[key].hasOwnProperty('default')){\n retObj[key] = protocolObj[key].default;\n }\n });\n\n return retObj;\n}\n\n/**\n * @class ActionLink\n * @classdesc An ActionLink is essentially a typical Uniform Resource Identifier (URI) for example, 'https://domain.com' or 'ftp://fileserver.com:3003' but with custom protocol schemes and parameters. Each Action Event carries an Action Link with details about what type of action has occurred (eg. web link, app deep link, overlay open, etc) and their associated parameters like email recipients if for example the Action Link were to initiate an email draft\n * @memberof Flightkit\n * @param {string} linkStr Raw ActionLink protocol string with scheme, value, and parameters (eg. details://?contentId=123). This string will be parsed and class instance will be hydrated.\n */\nclass ActionLink{\n\n /**\n * @member {Object} protocol Set of protocol scheme types\n * @memberof Flightkit.ActionLink\n * @static\n * @constant\n * @property {string} DETAILS (value=`details`) Opens a Content Instance details page as an overlay or can be injected into a FlybitsSlot for rendering. If a contentId is not provided, it is assumed to attempt opening the details page of the Content Instance from which the action originated from.\n * @property {string} INAPPBROWSER (value=`web`) Opens a web URL in an in app browser. This is dependent on application support.\n * @property {string} BROWSER (value=`browser`) Opens a web URL in the platform browser.\n * @property {string} HTTPS (value=`https`) Opens a web URL in the platform browser. Allows for standard URLs as the raw link string; useful for RTF fields containing hyperlinks.\n * @property {string} CONCIERGE (value=`concierge`) Opens a particular Zone as an overlay or can be injected into a FlybitsSlot for rendering.\n * @property {string} PHONE (value=`phone`) Opens platform phone application with pre-seeded phone number.\n * @property {string} APP (value=`app`) Useful for mobile platform application deep linking. Note URL must be registered in target application otherwise will default to be an simple web link opened in the platform browser.\n * @property {string} UNIVERSAL (value=`universalLink`) Meant for mobile platforms, it will open a platform specific URL and depending on the platform forward the action to specific applications with a failover as a webpage.\n * @property {string} MAIL (value=`mail`) Opens platform email application with pre-seeded body and details.\n */\n static protocol = {\n DETAILS: 'details',\n INAPPBROWSER: 'web',\n BROWSER: 'browser',\n HTTPS: 'https',\n PHONE: 'phone',\n APP: 'app',\n CONCIERGE: 'concierge',\n UNIVERSAL: 'universalLink',\n MAIL: 'mail',\n CUSTOM: 'custom'\n }\n\n /**\n * @typedef {Object} PROTOCOLDEFS Protocol scheme type definitions outlining what parameters corresponding ActionLink types contain.\n * @memberof Flightkit.ActionLink\n * @property {Object} details Type DETAILS\n * @property {string} details.contentId Flybits Content Instance ID\n * @property {boolean} [details.overlay=false] Flag to indicate Content details should be opened as an overlay.\n * @property {Object} web Type INAPPBROWSER\n * @property {string} web.url URL string to be opened in the browser.\n * @property {Object} browser Type BROWSER\n * @property {string} browser.url URL string to be opened in the browser.\n * @property {Object} https Type HTTPS; no additional properties.\n * @property {Object} phone Type PHONE\n * @property {string} phone.phoneNumber Phone number string that may contain dashes and plus symbols. \n * @property {Object} app Type APP\n * @property {string} app.name Predefined reference string for custom application logic.\n * @property {Object} concierge Type CONCIERGE\n * @property {string} concierge.zoneReferenceId Zone Reference ID to load based on the ActionLink.\n * @property {boolean} [concierge.overlay=false] Flag to indicate Zone should be opened as an overlay.\n * @property {Object} universalLink Type UNIVERSAL\n * @property {string} universalLink.ios iOS specific universal URL. Note URL must be registered in target application otherwise will default to be an simple web link opened in the platform browser.\n * @property {string} universalLink.android Android specific universal URL. Note URL must be registered in target application otherwise will default to be an simple web link opened in the platform browser.\n * @property {Object} mail Type MAIL\n * @property {string} mail.sendTo Recipient target email address.\n * @property {string} mail.subject Subject field of the email.\n * @property {string} mail.body Main email body.\n * @property {string} mail.cc Comma separated list of email addresses to be added to the Carbon Copy (CC) field.\n * @property {string} mail.bcc Comma separated list of email addresses to be added to the Bline Carbon Copy (BCC) field.\n */\n static PROTOCOLDEFS = {\n details: {\n contentId: {\n type: String,\n },\n overlay: {\n type: Boolean,\n default: false\n },\n title: {\n type: String\n }\n },\n web: {\n url: {\n type: String\n },\n },\n browser: {\n url: {\n type: String\n },\n },\n https: {},\n phone: {\n phoneNumber: {\n type: String // might contain dashes and plus symbols\n },\n },\n app: {\n name: {\n type: String\n },\n },\n concierge: {\n container: {\n type: String\n },\n zoneReferenceId: {\n type: String\n },\n filter: {\n type: String\n },\n style: {\n type: String\n }, \n overlay: {\n type: Boolean,\n default: false\n }, \n },\n universalLink: {\n ios: {\n type: String\n },\n android: {\n type: String\n },\n },\n mail: {\n sendTo: {\n type: String\n },\n subject: {\n type: String\n },\n body: {\n type: String\n },\n cc: {\n type: String\n },\n bcc: {\n type: String\n },\n },\n custom: {}\n };\n\n constructor(linkStr){\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {string} rawStr Raw ActionLink protocol string with scheme, value, and parameters.\n */\n this.rawStr = '';\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {string} protocol ActionLink protocol scheme (eg. details, browser, concierge, etc).\n */\n this.protocol = '';\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {string} value ActionLink protocol value after scheme including parameters (eg flybits.com?x=3).\n */\n this.value = '';\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {string} protoValue protocol value after scheme not including parameters (eg. flybits.com)\n */\n this.protoValue = '';\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {Object} params Map of ActionLink protocol {@link Flightkit.ActionLink.PROTOCOLDEFS|type parameters} depending on the {@link Flightkit.ActionLink.protocol|type}.\n */\n this.params = {};\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {Object} data ActionLink protocol {@link Flightkit.ActionLink.protocol|type} specific object that may contain entity instances (eg. hydrated Content Instances).\n */\n this.data = {};\n this.fromLink(linkStr);\n }\n\n fromLink(linkStr){\n this.rawStr = linkStr;\n var protocolStr = linkStr.split('://')[0] || '';\n protocolStr = protocolStr.toLowerCase();\n\n var valueStr = linkStr.indexOf('://') > -1 ? linkStr.substring(linkStr.indexOf('://') + 3) : linkStr;\n var protocolObj = ActionLink.PROTOCOLDEFS.custom;\n\n if(ActionLink.PROTOCOLDEFS[protocolStr]){\n protocolObj = ActionLink.PROTOCOLDEFS[protocolStr];\n } else{\n try{\n const parsedURL = new URL(linkStr);\n this.protoValue = linkStr.match(/:\\/\\/(.*?)\\?/)[1];\n this.params = Object.fromEntries(parsedURL.searchParams.entries());\n } catch(e){\n console.warn('custom action is of unknown protocol scheme');\n }\n }\n\n this.protocol = protocolStr;\n this.value = valueStr;\n\n if(protocolObj && Object.keys(protocolObj).length){\n var paramObj = {};\n const parsedURL = new URL(linkStr);\n paramObj = Object.fromEntries(parsedURL.searchParams.entries());\n paramObj = validateParamObj(paramObj, protocolObj, linkStr);\n paramObj = coerceTypes(paramObj, protocolObj);\n\n this.params = paramObj;\n }\n }\n\n toJSON(){\n return {\n rawStr: this.rawStr,\n protocol: this.protocol,\n protoValue: this.protoValue,\n value: this.value,\n params: this.params,\n data: this.data\n };\n }\n\n static parse(linkStr){\n return new ActionLink(linkStr);\n }\n}\n\nexport default ActionLink;","import Deferred from \"../models/deferred\";\n\nexport default {\n cachedContent: {},\n getCachedContentDetails: function(contentID){\n return this.cachedContent[contentID];\n },\n getContentDetails: function(contentID){\n const def = new Deferred();\n var api = this;\n Flybits.api.Content.get(contentID).then(function(res){\n api.cachedContent[res.result.id] = res.result;\n def.resolve(res.result);\n }).catch(function(e){\n def.reject(e);\n })\n\n return def.promise;\n },\n getZoneContent: function(refID){\n const def = new Deferred();\n var contentMap = this.cachedContent;\n\n Flybits.api.Zones.getByReferenceId(refID).then(function(zoneConfig){\n if(!zoneConfig?.zone?.modules){\n def.reject(new Flybits.Validation().addError('Zone not found','No valid Zone was found with specified reference ID',{\n code: Flybits.Validation.type.NOTFOUND,\n context: refID\n }));\n } else{\n zoneConfig.zone.modules.forEach(function(module){\n module.content.forEach(function(c){\n contentMap[c.id] = c;\n });\n });\n def.resolve(zoneConfig.zone);\n }\n }).catch(function(e){\n def.reject(e);\n });\n\n return def.promise;\n },\n}","\n\nvar s4 = function(){\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n};\n\nvar ObjUtil = {\n guid: function(tuples){\n var str = '';\n if (tuples && tuples > 0) {\n for (var i = 0; i < tuples; i++) {\n str += str !== '' ? '-' + s4() : s4();\n }\n return str;\n }\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n },\n getByStr: function (obj, keyStr) {\n // convert indexes to properties\n keyStr = keyStr.replace(/\\[(\\w+)\\]/g, '.$1');\n // strip a leading dot\n keyStr = keyStr.replace(/^\\./, '');\n var aKeys = keyStr.split('.');\n for (var i = 0, n = aKeys.length; i < n; ++i) {\n var key = aKeys[i];\n if (key in obj) {\n obj = obj[key];\n } else {\n return;\n }\n }\n return obj;\n },\n setByStr: function (obj, keyStr, val) {\n // convert indexes to properties\n keyStr = keyStr.replace(/\\[(\\w+)\\]/g, '.$1');\n // strip a leading dot\n keyStr = keyStr.replace(/^\\./, '');\n var aKeys = keyStr.split('.');\n for (var i = 0, n = aKeys.length; i < n; i++) {\n var key = aKeys[i];\n if (key in obj && i + 1 < n) {\n obj = obj[key];\n } else if (!(key in obj) && i + 1 < n) {\n obj[key] = {};\n obj = obj[key];\n } else {\n obj[key] = val;\n return val;\n }\n }\n },\n removeObject: function (arr, obj, findCallback) {\n var index = arr.indexOf(obj);\n\n if (findCallback) {\n var objs = arr.filter(findCallback);\n if (objs.length > 0) {\n index = arr.indexOf(objs[0]);\n }\n }\n\n if (index >= 0) {\n return arr.splice(index, 1);\n }\n return arr;\n },\n debounce: function (func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n },\n};\n\nObjUtil.extend = (function () {\n function isMergeableObject(val) {\n var nonNullObject = val && typeof val === 'object';\n\n return (\n nonNullObject &&\n Object.prototype.toString.call(val) !== '[object RegExp]' &&\n Object.prototype.toString.call(val) !== '[object Date]'\n );\n }\n\n function emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n }\n\n function cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return clone && isMergeableObject(value)\n ? deepmerge(emptyTarget(value), value, optionsArgument)\n : value;\n }\n\n function defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function (e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination;\n }\n\n function mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function (key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function (key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination;\n }\n\n function deepmerge(target, source, optionsArgument) {\n var array = Array.isArray(source);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n\n if (array) {\n return Array.isArray(target)\n ? arrayMerge(target, source, optionsArgument)\n : cloneIfNecessary(source, optionsArgument);\n } else {\n return mergeObject(target, source, optionsArgument);\n }\n }\n\n deepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements');\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, optionsArgument);\n });\n };\n\n return deepmerge;\n})();\n\nexport default ObjUtil;","import ObjUtil from \"../utils/obj\";\n\nclass Zone{\n static generateOverlayPayload(content, resolvedLocale){\n var tmpZone = new Flybits.Zone();\n tmpZone.id = ObjUtil.guid(2);\n tmpZone.name = 'Overlay';\n tmpZone.referenceID = 'overlay';\n \n var tmpModule = new Flybits.Module();\n tmpModule.id = ObjUtil.guid(2);\n tmpModule.layout = 'overlay';\n tmpModule.content = [content];\n tmpZone.modules = [tmpModule];\n\n var payload = tmpZone.toConciergeContainer(resolvedLocale);\n payload.containers[0].content[0].uiTemplate = content.detailsUI?.layoutHTML || '<!-- -->';\n payload.containers[0].content[0].style = content.detailsUI?.styleCSSURL || '';\n payload.containers[0].content[0].styleStr = content.detailsUI?.styleCSS || '';\n\n return payload;\n }\n\n static generateDetailsPayload(content, resolvedLocale){\n var tmpZone = new Flybits.Zone();\n tmpZone.id = ObjUtil.guid(2);\n tmpZone.name = 'Content Details';\n tmpZone.referenceID = 'details';\n \n var tmpModule = new Flybits.Module();\n tmpModule.id = ObjUtil.guid(2);\n tmpModule.layout = 'vertical';\n tmpModule.content = [content];\n tmpZone.modules = [tmpModule];\n\n var payload = tmpZone.toConciergeContainer(resolvedLocale);\n payload.containers[0].content[0].uiTemplate = content.detailsUI?.layoutHTML || '<!-- -->';\n payload.containers[0].content[0].style = content.detailsUI?.styleCSSURL || '';\n payload.containers[0].content[0].styleStr = content.detailsUI?.styleCSS || '';\n\n return payload;\n }\n}\n\nexport default Zone;","import Cfg from '../config/cfg';\n\nexport default {\n _deferredCtxInit: false,\n autoInitCtxManager: function(){\n if(this._deferredCtxInit){\n return;\n }\n this._deferredCtxInit = true;\n Flybits.Session.ready.then(function(){\n if(typeof window.Flybits === 'object' && !Flybits.context.Manager.isReporting){\n Flybits.context.Manager.reportDelay = Cfg.DEFAULTCTXREPORTINTERVAL;\n Flybits.context.Manager.initialize();\n }\n });\n },\n handleContextPayload: function(payload, logger){\n logger = logger || console;\n if(Array.isArray(payload)){\n Flybits.context.Manager.ready.then(function(){\n payload.forEach(function(ctxRep){\n if(ctxRep.pluginId && ctxRep.values){\n var cleansedValueObj = {};\n Object.keys(ctxRep.values).forEach(function(key){\n var cleansedKeyStr = key.replaceAll('query.','');\n cleansedValueObj[cleansedKeyStr] = ctxRep.values[key];\n });\n Flybits.context.Manager.reportCtx(ctxRep.pluginId,cleansedValueObj);\n } else{\n logger.error('[ctxapi] malformed ctx payload object', payload); \n }\n })\n })\n } else{\n logger.error('[ctxapi] malformed ctx payload', payload);\n }\n },\n handleAnalyticsPayload: function(payload, logger){\n logger = logger || console;\n if(!payload?.contentInfo?.id){\n logger.error('[ctxapi] missing content id in analytics event');\n return;\n }\n\n if((payload.type === 'viewed' || payload.type === 'engaged') && !payload.component){\n Flybits.context.Manager.ready.then(function(){\n Flybits.analytics.Manager.reportContentID(payload.contentInfo.id,payload.type);\n });\n } else if((payload.type === 'engaged' || payload.type === 'content_component_event') && payload.component){\n Flybits.context.Manager.ready.then(function(){\n Flybits.analytics.Manager.reportContentID(payload.contentInfo.id, Flybits.analytics.Manager.actions.COMPONENTENGAGED,{\n name: payload.component.name,\n compID: payload.component.id,\n type: payload.component.compId,\n });\n });\n } else{\n logger.error('[ctxapi] unsupported analytics event', payload);\n }\n }\n}","/**\n * @class Logger\n * @classdesc An internal logging utility.\n * @memberof Flightkit\n * @param {Object} opts Initialization options\n * @param {string} opts.mode Verbosity mode to control how granular logging is outputted to the console.\n */\nclass Logger {\n /**\n * @member {Object} modes Set of available logging verbosity modes.\n * @memberof Flightkit.Logger\n * @static\n * @constant\n * @property {string} VERBOSE (value=`verbose`) defines the most granular level of logging to be outputted into the console for debugging purposes.\n * @property {string} ERRORS (value=`errors`) defines the mode that will only output errors to the console.\n * @property {string} SILENT (value=`silent`) defines the mode that will not output any log to the console.\n */\n static modes = {\n VERBOSE: 'verbose',\n ERRORS: 'errors',\n SILENT: 'silent'\n };\n constructor(opts){\n opts = opts || {};\n /**\n * @instance\n * @memberof Flightkit.Logger\n * @member {string} mode Current logging verbosity mode.\n */\n this.mode = opts.mode || 'errors';\n }\n get prefix(){\n const now = new Date();\n return `[fk-${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}:${now.getMilliseconds()}.${(window?.performance.now().toFixed(2)+'').split('.')[1]}]`;\n }\n log(...args){\n if(this.mode === Logger.modes.SILENT || this.mode !== Logger.modes.VERBOSE){\n return;\n }\n args.unshift(this.prefix);\n console.log.apply(null, args);\n }\n error(...args){\n if(this.mode === Logger.modes.SILENT){\n return;\n }\n args.unshift(this.prefix);\n console.error.apply(null, args);\n }\n warn(...args){\n if(this.mode === Logger.modes.SILENT || this.mode !== Logger.modes.VERBOSE){\n return;\n }\n args.unshift(this.prefix);\n console.warn.apply(null, args);\n }\n}\n\nexport default Logger;","\nexport default {\n hasContent: function(zone) {\n return !!zone?.modules?.filter((module) => {\n return module?.content?.length;\n })?.length;\n },\n}","/*global Flybits, Flightkit, document*/\nimport { html, css, LitElement } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport cfg from '../config/cfg';\nimport pkg from '../../package.json';\nimport Deferred from '../models/deferred';\nimport ActionLink from '../models/actionLink';\nimport ZoneAPI from '../apis/zone';\nimport Zone from '../models/zone';\nimport CtxAPI from '../apis/ctx';\nimport Logger from '../utils/logger';\nimport ZoneUtil from '../utils/zone';\n\n/**\n * @class FlybitsSlot\n * @classdesc A FlybitsSlot is an HTML element used to embed full featured Flybits curated Content and UI within your application. It can take the form of a widget within an existing page of your application or it can take up a page in its entirety. It is used to render a Flybits Zone which is a composition of Modules (layouts) that can contain relevant personalized Flybits Content.\n * @memberof Flightkit\n * @extends external:LitElement\n * @example \n * <!-- declarative approach -->\n * <flybits-slot ref-id=\"homepage\"></flybits-slot>\n * @example\n * // imperative approach\n * const slot = new FlybitsSlot();\n * slot.init({\n * refID: 'homepage'\n * })\n * @fires Flightkit.FlybitsSlot#action\n * @fires Flightkit.FlybitsSlot#zoneLoad\n * @fires Flightkit.FlybitsSlot#error\n */\nexport default class FlybitsSlot extends LitElement {\n static get VERSION(){\n return pkg.version;\n }\n\n /**\n * @member {Object} modes Mode type constants.\n * @memberof Flightkit.FlybitsSlot\n * @static\n * @constant\n * @property {string} FIXEDHEIGHT Mode type string for fixed height FlybitsSlot instances where it is expected the implementing parent application will define a fixed height for the element within its own UI.\n * @property {string} DYNAMICHEIGHT Mode type string for dynamic height FlybitsSlot instances where height will automatically adjust based on Zone configuration and inner content height. \n */\n static get modes(){\n return {\n FIXEDHEIGHT: 'fixedheight',\n DYNAMICHEIGHT: 'dynamicheight'\n }\n }\n\n static properties = {\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} host (HTML attribute: `host`) Flybits environment specific API host URL from which all API calls will be made against. \n */\n host: {\n type: String\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} projectID (HTML attribute: `project-id`) Flybits project ID used to load tenant specific data. \n */\n projectID: {\n type: String,\n attribute: 'project-id'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} renderURL (HTML attribute: `render-url`) Render layer application URL. \n */\n renderURL: {\n type: String,\n attribute: 'render-url'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} refID (HTML attribute: `ref-id`) Flybits Zone Reference ID which can be found in the Experience Studio on the Concierge Management page. Every FlybitsSlot can render up to one Zone which may contain one or more Modules.\n */\n refID: {\n type: String,\n attribute: 'ref-id'\n },\n pollingEnabled: {\n type: Boolean,\n attribute: 'polling-enabled'\n },\n pollingInterval: {\n type: Number,\n attribute: 'polling-interval'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} renderMode (HTML attribute: `render-mode`) Mode setting to control automated sizing functionality. Refer to available render modes {@link Flightkit.FlybitsSlot.modes}.\n */\n renderMode: {\n type: String,\n attribute: 'render-mode'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string | HTMLElement} overlayOutlet (HTML attribute: `overlay-outlet`) FlybitsSlot elements can open {@link Flightkit.FlybitsOverlay|FlybitsOverlay} instances depending on ActionLinks that are intercepted from its internal children or externally from application logic. By default these overlays are appended to the `document.body`. This attribute allows for overriding and specifying a parent element that {@link Flightkit.FlybitsOverlay|FlybitsOverlays} are appended to if `document.body` is not preferred.\n * \n * Parent elements can be defined by either a CSS [selector string](https://developer.mozilla.org/en-US/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors) or an [HTMLElement instance](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement).\n * @example\n * <!-- declarative approach -->\n * <div class=\"home\">\n * <div class=\"container\"></div>\n * </div>\n * <flybits-slot ref-id=\"homepage\" overlay-outlet=\".home .container\"></flybits-slot>\n * @example \n * // imperative approach\n * const parentElem = document.createElement('div')\n * parentElem.classList.add('container');\n *\n * const slot = new FlybitsSlot();\n * slot.init({\n * refID: 'homepage',\n * overlayOutlet: parentElem\n * })\n */\n overlayOutlet: {\n type: String | HTMLElement,\n attribute: 'overlay-outlet'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {boolean} overrideOverlay (HTML attribute: `override-overlay`) By default FlybitsSlot elements will handle {@link Flightkit.ActionLink.protocol|DETAILS} and {@link Flightkit.ActionLink.protocol|CONCIERGE} Action Event types out of the box by opening them in {@link Flightkit.FlybitsOverlay|FlybitsOverlays}. However if you would like to handle these manually in your application logic, set this flag to `true`.\n */\n overrideOverlay: {\n type: Boolean,\n attribute: 'override-overlay'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {boolean} overrideURLs (HTML Attribute: `override-urls`) By default FlybitsSlot elements will handle {@link Flightkit.ActionLink.protocol|HTTPS}, {@link Flightkit.ActionLink.protocol|BROWSER}, and {@link Flightkit.ActionLink.protocol|INAPPBROWSER} Action Event types out of the box by either open a new tab/window to load the URL, or redirect the current tab/window in the case of {@link Flightkit.ActionLink.protocol|INAPPBROWSER}. However if you would like to handle these manually in your application logic, set this flag to `true`.\n */\n overrideURLs: {\n type: Boolean,\n attribute: 'override-urls'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {boolean} overrideActions (HTML Attribute: `override-actions`) By default FlybitsSlot elements will handle certain Action Event types automatically:\n * - {@link Flightkit.ActionLink.protocol|DETAILS}\n * - {@link Flightkit.ActionLink.protocol|CONCIERGE}\n * - {@link Flightkit.ActionLink.protocol|HTTPS}\n * - {@link Flightkit.ActionLink.protocol|BROWSER}\n * - {@link Flightkit.ActionLink.protocol|INAPPBROWSER}\n * \n * If you would like to handle all these manually in your application logic, set this flag to `true`.\n * > **note:** {@link Flightkit.FlybitsSlot#overrideActions|overrideActions}, {@link Flightkit.FlybitsSlot#overrideURLs|overrideURLs}, and {@link Flightkit.FlybitsSlot#overrideOverlay|overrideOverlay} are considered in a **logical OR'd** expression. Thus if {@link Flightkit.FlybitsSlot#overrideURLs|overrideURLs} was `false` but {@link Flightkit.FlybitsSlot#overrideActions|overrideActions} is `true`, FlybitsSlot will **not** automatically handle URL based Action Event links. \n * \n * > The inverse also applies, where if {@link Flightkit.FlybitsSlot#overrideURLs|overrideURLs} is `true` but {@link Flightkit.FlybitsSlot#overrideActions|overrideActions} is `false`, FlybitsSlot will again **not** automatically handle URL based Action Event links.\n */\n overrideActions: {\n type: Boolean,\n attribute: 'override-actions'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {boolean} [overlayDismissUI=false] (HTML attribute: `overlay-dismiss-ui`) By default FlybitsSlot elements will handle {@link Flightkit.ActionLink.protocol|DETAILS} and {@link Flightkit.ActionLink.protocol|CONCIERGE} Action Event types out of the box by opening them in {@link Flightkit.FlybitsOverlay|FlybitsOverlays}. The expectation is that each overlay Content will have its own overlay dismissal UI element. However if you would like a default overlay close button, set this flag to `true`.\n */\n overlayDismissUI: {\n type: Boolean,\n attribute: 'overlay-dismiss-ui'\n },\n isLoadingOpen: {\n type: Boolean,\n attribute: 'show-loading'\n },\n isErrorOpen: {\n type: Boolean,\n attribute: 'show-error'\n },\n hasLoadingSlot: {\n type: Boolean\n },\n hasErrorSlot: {\n type: Boolean\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} [logLevel=errors] Logging mode setting. By default FlybitsSlot will only output errors to the console. Changing this attribute to `verbose` will increase verbosity and output logs with much more detail for debugging purposes. All available values can be found {@link Flightkit.Logger.modes|here}.\n */\n logLevel: {\n type: String,\n attribute: 'log-level'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} [localization=disabled] Localization control setting. By default FlybitsSlot will render english content from Flybits Experience Studio. If this attribute is set to `auto` it will try to detect the browser langauge and render corresponding localization of Flybits content if available. Alternatively if you explicitly pass the [two character locale key](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) into this attribute (eg. en, fr, es, etc) the content will render accordingly.\n */\n localization: {\n type: String,\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} [textDirection=unset] Manual override for global text direction. When unset, the text direction will be automatically set based on the {@link Flightkit.FlybitsSlot#localization|localization} language set. Accepted values include: `ltr`, `rtl`, and `auto`.\n */\n textDirection: {\n type: String,\n attribute: 'text-direction'\n }\n };\n \n static styles = css`\n :host {\n position: relative;\n display: block;\n }\n .flb-frame {\n width: 100%;\n height: 100%;\n border: 0;\n z-index: 1;\n }\n .slot-default, ::slotted(*){\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.2s linear 0.2s, visibility 0s linear 0.2s;\n z-index: 2;\n }\n .slot-default.open, .open::slotted(*){\n visibility: visible;\n opacity: 1;\n transition: opacity 0.2s linear 0.2s, visibility 0s linear 0s;\n }\n .overlay-loading{\n display: none;\n }\n `\n\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {external:HTMLElement} $renderFrame Iframe that is used to render Flybits content, located within a FlybitsSlot element's {@link external:ShadowDOM|Shadow DOM}.\n */\n get $renderFrame() {\n return this.renderRoot?.querySelector('.flb-frame') ?? null;\n }\n\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {external:HTMLElement} $noContentUI Registered HTMLElement to be automatically displayed when a retrieved Flybits Zone contains no content. This element is rendered outside of the {@link external:ShadowDOM|Shadow DOM} as a child of the FlybitsSlot element. \n */\n get $noContentUI() {\n const slot = this.shadowRoot.querySelector('slot[name=\"no-content\"]');\n const childElems = slot?.assignedElements({flatten: true});\n return childElems?.[0];\n }\n\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {external:HTMLElement|null} $overlayLoadingUI Clone of user defined override of default loading UI for a FlybitsOverlay. This must be set via the `overlay-loading` slot.\n */\n get $overlayLoadingUI() {\n const slot = this.shadowRoot.querySelector('slot[name=\"overlay-loading\"]');\n const childElems = slot?.assignedElements({flatten: true});\n if(childElems?.length){\n this._$overlayLoadingOverride = childElems[0];\n }\n return this._$overlayLoadingOverride;\n }\n\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {external:HTMLElement|null} $overlayErrorUI Clone of user defined override of default error UI for a FlybitsOverlay. This must be set via the `overlay-error` slot.\n */\n get $overlayErrorUI() {\n const slot = this.shadowRoot.querySelector('slot[name=\"overlay-error\"]');\n const childElems = slot?.assignedElements({flatten: true});\n if(childElems?.length){\n this._$overlayErrorOverride = childElems[0];\n }\n return this._$overlayErrorOverride;\n }\n\n get browserLocale(){\n var locale = navigator?.language || 'en';\n locale = locale.toLowerCase();\n if(locale.indexOf('-') > -1){\n locale = locale.split('-')[0];\n }\n return locale;\n }\n\n get resolvedLocale(){\n var retObj = {\n locale: '',\n textDirection: 'ltr'\n }\n if(this.localization === 'auto'){\n retObj.locale = this.browserLocale;\n } else if(this.localization?.length === 2){\n retObj.locale = this.localization;\n }\n switch(retObj.locale){\n case 'ar':\n case 'dv':\n case 'ff':\n case 'he':\n case 'ku':\n case 'fa':\n case 'ur':\n retObj.textDirection = 'rtl';\n break;\n }\n\n if(this.textDirection && ['ltr','rtl','auto'].indexOf(this.textDirection) > -1){\n retObj.textDirection = this.textDirection;\n }\n\n return retObj;\n }\n\n get initParams() {\n return {\n host: this.host,\n refID: this.refID,\n projectID: this.projectID\n }\n }\n\n constructor() {\n super();\n this.zone = null;\n this.pollingEnabled = false;\n this.pollingInterval = 2500;\n this.renderMode = FlybitsSlot.modes.DYNAMICHEIGHT;\n this.host = '';\n this.renderURL = cfg.RENDERHOST;\n this.refID = '';\n this.projectID = '';\n this._hasDeferredLoad = false;\n this.overlayDismissUI = false;\n this.overlayOutlet = document.body;\n this.overrideOverlay = false;\n this.overrideURLs = false;\n this.overrideActions = false;\n this._loaderStack = [];\n this.isLoadingOpen = false;\n this.isErrorOpen = false;\n this.showNoContentUI = false;\n this.hasLoadingSlot = false;\n this.hasErrorSlot = false;\n this.hasNoContentSlot = false;\n this._$overlayLoadingOverride = null;\n this._$overlayErrorOverride = null;\n this._$evtSrcCtx = this;\n this.logger = new Logger({\n mode: this.logLevel || 'errors'\n });\n this.localization = 'disabled';\n this.textDirection = null;\n }\n \n connectedCallback() {\n super.connectedCallback()\n this.frameLoadDef = new Deferred();\n this.frameLoadPromise = this.frameLoadDef.promise;\n this.detectFlybits();\n this._reboundHandleFrameEvent = this.handleFrameEvent.bind(this);\n window.addEventListener('message', this._reboundHandleFrameEvent);\n }\n \n disconnectedCallback() {\n super.disconnectedCallback()\n window.removeEventListener('message', this._reboundHandleFrameEvent);\n }\n\n /**\n * Initialization function for imperative approaches to FlybitsSlot usage. This should be invoked immediately after FlybitsSlot instantiation.\n * @memberof Flightkit.FlybitsSlot\n * @instance\n * @function init\n * @param {Object} opts Initialization object containing FlybitsSlot class properties\n * @example\n * const slot = new FlybitsSlot();\n * slot.init({\n * refID: 'homepage'\n * })\n */\n init(opts) {\n opts = opts ?? {}\n this.pollingEnabled = opts.pollingEnabled ?? this.pollingEnabled;\n this.pollingInterval = opts.pollingInterval || this.pollingInterval;\n this.host = opts.host || this.host;\n this.renderURL = opts.renderURL || this.renderURL;\n this.refID = opts.refID || this.refID;\n this.projectID = opts.projectID;\n this.overlayOutlet = opts.overlayOutlet || this.overlayOutlet;\n this.overrideOverlay = !!opts.overrideOverlay;\n this.overrideURLs = !!opts.overrideURLs;\n this.overrideActions = !!opts.overrideActions;\n this.logger.mode = this.logLevel = opts.logLevel || Logger.modes.ERRORS;\n if(opts.localization !== 'disabled'){\n const val = opts.localization?.toLowerCase();\n if(val === 'auto' || val?.length === 2){\n this.localization = val;\n }\n }\n if(opts.textDirection){\n switch(opts.textDirection){\n case 'ltr':\n case 'rtl':\n case 'auto':\n this.textDirection = opts.textDirection;\n break;\n default:\n this.logger.warn('invalid text direction specified:', opts.textDirection);\n break;\n }\n }\n }\n\n initElementMeta() {\n if(this.renderMode !== FlybitsSlot.modes.DYNAMICHEIGHT){\n return;\n }\n if(!this.refID){\n this.logger.warn('missing Zone reference ID');\n return;\n }\n if(!Flybits.Session._projectID){\n this.logger.warn('missing Flybits project ID');\n return;\n }\n var $el = this;\n this.logger.log('fetching zone metadata', Flybits.Session._projectID);\n Flybits.api.Zones.getZoneMetadata(Flybits.Session._projectID, this.refID).then(function(meta){\n $el.logger.log('set from metadata height', meta.height);\n $el._setHeight(meta.height);\n }).catch(function(e){\n $el.logger.error(e);\n });\n }\n\n attributeChangedCallback(name, _old, value) {\n super.attributeChangedCallback(name, _old, value);\n if(name === 'ref-id'){\n if((!_old && value && !this._hasDeferredLoad) ||\n (_old && value && _old !== value)){\n this.detectFlybits();\n }\n } else if(name === 'log-level'){\n this.logger.mode = value;\n }\n }\n\n /**\n * Retrieves Zone data based on specified {@link Flightkit.FlybitsSlot.refID|Zone Reference ID} and injects it into the {@link Flightkit.FlybitsSlot.$renderFrame|internal render frame}.\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @function loadZoneData\n * @returns {external:Promise} a promise that will resolve or reject after Zone data is retrieved and injected into the {@link Flightkit.FlybitsSlot.$renderFrame|internal render frame}\n */\n loadZoneData() {\n const def = new Deferred();\n const $el = this;\n if(!this.refID || this.refID === 'overlay'){\n $el._hasDeferredLoad = false;\n $el.logger.warn('no refID detected');\n return Promise.reject();\n }\n \n this.showNoContentUI = false;\n this.isErrorOpen = false;\n this.setLoading(true);\n this.logger.log('fetching zone content', this.refID);\n ZoneAPI.getZoneContent(this.refID).then(function(zone){\n $el.zone = zone;\n $el.logger.log('set height from loadzone');\n $el._setHeight(zone.height);\n\n $el._dispatchLoad(zone);\n if(!ZoneUtil.hasContent(zone) && $el.$noContentUI){\n $el.showNoContentUI = true;\n }\n\n $el.injectData(zone.toConciergeContainer($el.resolvedLocale));\n def.resolve();\n }).catch(function(e){\n $el.logger.error(e);\n $el.isErrorOpen = true;\n $el._dispatchError(e);\n def.reject(e);\n }).then(function(){\n $el._hasDeferredLoad = false;\n $el.setLoading(false)\n });\n\n return def.promise;\n }\n\n injectData(payload){\n payload.appid = {\n name: 'flightkit',\n version: FlybitsSlot.VERSION,\n coreVersion: Flybits?.VERSION,\n logLevel: this.logLevel\n };\n this._framePostMessage(payload);\n }\n\n _framePostMessage(payload){\n if(this.frameLoadPromise){\n this.frameLoadPromise.then(() => {\n var $frameWindow = this.$renderFrame?.contentWindow;\n if($frameWindow){\n this.logger.log('injecting payload', payload);\n $frameWindow.postMessage(payload, this.renderURL);\n } else{\n this.logger.error('no frame window detected');\n }\n })\n } else if(this.$renderFrame?.contentWindow){\n this.$renderFrame.contentWindow.postMessage(payload, $el.renderURL);\n }\n }\n\n /**\n * Handles {@link Flightkit.ActionLink|ActionLink} instances that could have originated from other FlybitsSlot instances.\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @function handleAction\n * @param {Flightkit.ActionLink} actionLink Instance of ActionLink containing information to perform actions and/or render Content details and full Zones.\n * @returns {external:Promise} A promise resolving after action handling.\n */\n handleAction(actionLink){\n const def = new Deferred();\n const $el = this;\n if(actionLink.protocol === ActionLink.protocol.DETAILS){\n if(!actionLink.params.contentId && actionLink.data.content && actionLink.meta.contentID){\n $el.logger.error('details action missing content id', e);\n return Promise.reject();\n }\n\n if(!actionLink.data.content){\n const contentID = actionLink.params.contentId || actionLink.meta.contentID;\n this._resolveContent(contentID).then(function(content){\n $el.injectData(Zone.generateDetailsPayload(content, $el.resolvedLocale));\n def.resolve();\n }).catch(function(e){\n $el.logger.error('cannot resolve content', e);\n def.reject();\n })\n } else{\n this.injectData(Zone.generateDetailsPayload(actionLink.data.content, $el.resolvedLocale));\n def.resolve();\n }\n } else if(actionLink.protocol === ActionLink.protocol.CONCIERGE){\n if(!actionLink.params.zoneReferenceId){\n $el.logger.error('concierge action missing zone reference id', e);\n return Promise.reject();\n }\n \n this.refID = actionLink.params.zoneReferenceId;\n return this.loadZoneData();\n }\n\n return def.promise;\n }\n\n /**\n * Changes the visibility of the loading state UI.\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @function setLoading\n * @param {boolean} bool State of loading overlay\n * @returns {Flightkit.FlybitsSlot} Returns the FlybitsSlot element this function was invoked upon.\n */\n setLoading(bool){\n if(bool){\n this.logger.log('open loading ui');\n this.isLoadingOpen = true;\n this._loaderStack.push(true);\n } else if(!bool && this._loaderStack.length > 1){\n this._loaderStack.pop();\n } else if(!bool){\n this.logger.log('closing loading ui');\n this._loaderStack.pop();\n this.isLoadingOpen = false;\n }\n return this;\n }\n\n _setHeight(height){\n if(height === null || height === undefined || isNaN(height)){\n this.logger.warn('not a valid height', height);\n return;\n }\n\n if(this.renderMode === FlybitsSlot.modes.DYNAMICHEIGHT){\n this.logger.log('setting height', height);\n this.style.height = height+'px';\n }\n }\n\n _resolveContent(contentID) {\n const def = new Deferred();\n const cachedContent = contentID?ZoneAPI.getCachedContentDetails(contentID):null;\n if(cachedContent){\n return Promise.resolve(cachedContent);\n }\n\n const $el = this;\n $el.setLoading(true);\n ZoneAPI.getContentDetails(contentID).then(function(results){\n def.resolve(results);\n }).catch(function(e){\n def.reject(e);\n }).then(function(){\n $el.setLoading(false);\n });\n return def.promise;\n }\n\n /**\n * Action Events which contain an {@link Flightkit.ActionLink|ActionLink} payload that support standard DOM API methods for event listening as utilizes the native DOM element CustomEvent class.\n * @event Flightkit.FlybitsSlot#action\n * @type {external:CustomEvent}\n * @property {Flightkit.ActionLink} detail ActionLink type payload\n * @property {string} type=action\n * @example\n * const slot = new FlybitsSlot();\n * slot.addEventListener('action', function(payload){\n * const actionLink = payload.detail;\n * })\n */\n _dispatchActionLinks(actionLinkStr, metaObj) {\n const $el = this;\n const actionLink = new ActionLink(actionLinkStr);\n \n if(!this.overrideActions){\n if(actionLink.protocol === ActionLink.protocol.DETAILS && !this.overrideOverlay){\n const contentID = actionLink.params.contentId || metaObj.contentID;\n this._resolveContent(contentID).then(function(content){\n actionLink.data.content = content;\n Flightkit.outlet.openOverlay(\n actionLink, \n $el.overlayOutlet, \n $el\n );\n }).catch(function(e){\n $el.logger.error('failed to load content',e);\n });\n return;\n }\n\n if(actionLink.protocol === ActionLink.protocol.CONCIERGE && !this.overrideOverlay){\n Flightkit.outlet.openOverlay(\n actionLink, \n $el.overlayOutlet, \n $el\n );\n return;\n }\n \n if(actionLink.protocol === ActionLink.protocol.HTTPS && !this.overrideURLs){\n if(!actionLink.rawStr){\n $el.logger.error('invalid url', actionLink.rawStr)\n return;\n }\n \n window.open(actionLink.rawStr, '_blank');\n return;\n }\n \n if(actionLink.protocol === ActionLink.protocol.BROWSER && !this.overrideURLs){\n if(!actionLink.params.url){\n $el.logger.error('invalid url', actionLink.params.url)\n return;\n }\n \n window.open(actionLink.params.url, '_blank');\n return;\n }\n\n if(actionLink.protocol === ActionLink.protocol.INAPPBROWSER && !this.overrideURLs){\n if(!actionLink.params.url){\n $el.logger.error('invalid url', actionLink.params.url)\n return;\n }\n\n window.location.href = actionLink.params.url;\n return;\n }\n }\n\n const payload = actionLink.toJSON();\n if(metaObj){\n payload.meta = metaObj;\n }\n\n const evt = new CustomEvent('action', {\n detail: payload,\n bubbles: true,\n composed: true\n });\n this._$evtSrcCtx.dispatchEvent(evt);\n }\n\n /**\n * Zone Load Event \n * @event Flightkit.FlybitsSlot#zoneLoad\n * @type {external:CustomEvent}\n * @property {Object} detail Object containing event payload.\n * @property {Flybits.Zone} detail.zone Flybits Zone object containing modules and their respective content.\n * @property {string[]} detail.contentIDs An array of content IDs across all modules within the Zone.\n * @example\n * const slot = new FlybitsSlot();\n * slot.addEventListener('zoneLoad', function(payload){\n * const actionLink = payload.detail;\n * if(!payload?.contentIDs?.length){\n * // Zone has no content\n * } else if(!payload?.zone?.modules?.[1]?.content?.length){\n * // Second module has no content\n * }\n * })\n */\n _dispatchLoad(zone) {\n var cIDs = []\n zone?.modules?.forEach((m) => {\n m?.content?.forEach((c) => {\n cIDs.push(c.id);\n })\n });\n this._$evtSrcCtx.dispatchEvent(new CustomEvent('zoneLoad', {\n detail: {\n zone: zone,\n contentIDs: cIDs\n },\n bubbles: true,\n composed: true\n }))\n }\n\n /**\n * @typedef FlightkitError\n * @memberof Flightkit.FlybitsSlot\n * @type Object\n * @property {string} header Generally a short and broad error message\n * @property {string} message A more in depth explanation of the error.\n * @property {string} context This is populated if an error occurs that relates to one of the input properties of an operation and will be the property's key.\n * @property {number} code An internal error code indicating error type. This property is only populated when errors that can be discerned by the SDK occur. Errors that occur server side and cannot be discerned by the SDK will populate an HTTP status code in the `serverCode` property. For instance, if you forget to supply required property the `code` property would be populated with `Flybits.Validation.type.MISSINGARG`. On the other hand if there's a server outage, the `serverCode` would be populated with a 404 or 500.\n * @property {number} serverCode This is populated with an HTTP status code when a server side error occurs that cannot be discerned by the SDK.\n */\n /**\n * Flightkit Error Event\n * @event Flightkit.FlybitsSlot#error\n * @type {external:CustomEvent}\n * @property {Object} detail Object containing event payload.\n * @property {Flightkit.FlybitsSlot.FlightkitError[]} detail.errors List of errors\n */\n _dispatchError(validation){\n if(!validation || !(validation instanceof Flybits.Validation)){\n this.logger.error('invalid error type', validation);\n return;\n }\n\n delete validation.stacktrace;\n this._$evtSrcCtx.dispatchEvent(new CustomEvent('error', {\n detail: {\n errors: validation.errors\n },\n bubbles: true,\n composed: true\n }))\n }\n\n detectFlybits() {\n var $el = this;\n if(window.Flybits){\n CtxAPI.autoInitCtxManager();\n if(this.host){\n Flybits.cfg.HOST = this.host;\n }\n if(this.projectID){\n Flybits.Session._projectID = this.projectID;\n }\n\n if(Flybits.Session._projectID){\n this.initElementMeta();\n if(Flybits.Session.userToken){\n this.loadZoneData().catch(function(){})\n } else{\n if(!this._hasDeferredLoad){\n this._hasDeferredLoad = true;\n Flybits.Session.ready.then(function(){\n $el.loadZoneData().catch(function(){})\n })\n }\n }\n } else{\n if(!this._hasDeferredLoad){\n this._hasDeferredLoad = true;\n Flybits.Session.ready.then(function(){\n $el.loadZoneData().catch(function(){})\n })\n }\n }\n } else{\n this.logger.error('Flybits.js Core SDK not detected.');\n }\n }\n\n handleFrameEvent(payload) {\n try{\n var childContentWindow = this.$renderFrame.contentWindow;\n if(payload.source !== childContentWindow || payload.origin !== new URL(this.renderURL).origin){\n return;\n }\n\n if(payload.data && payload.data.flb){ \n var eventObj = payload?.data?.value ? JSON.parse(payload.data.value):{};\n this.logger.log('frameEvt['+this.refID+']['+payload.data.type+']', eventObj)\n if(payload.data.type === 'context'){\n CtxAPI.handleContextPayload(eventObj, this.logger);\n } else if(payload.data.type === 'action'){\n this._dispatchActionLinks(eventObj.actionlink, {\n contentID: eventObj?.contentInfo?.id\n });\n } else if(payload.data.type === 'analytics'){\n CtxAPI.handleAnalyticsPayload(eventObj, this.logger);\n } else if(payload.data.type === 'error'){\n } else if(payload.data.type === 'dismiss'){\n if(typeof this._dispatchDismiss === 'function'){\n this._dispatchDismiss();\n }\n } else if(payload.data.type === 'flb.heightupdate'){\n const heightNum = +payload.data.value;\n this.logger.log('set height from frame event', heightNum);\n this._setHeight(heightNum);\n } else{\n // not supported messages \n this.logger.warn('Message not supported', payload.data);\n }\n } else{\n // non-concierge messages \n }\n } catch(e){\n this.logger.error('Cannot parse message', e);\n }\n }\n\n _handleFrameLoad(e) {\n this.frameLoadDef.resolve();\n }\n\n _handleLoadingSlotChange(e) {\n const childNodes = e.target.assignedNodes({\n flatten: true\n })\n this.logger.log('loading slot change', childNodes);\n if(childNodes.length){\n this.hasLoadingSlot = true;\n }\n }\n\n _handleErrorSlotChange(e) {\n const childNodes = e.target.assignedNodes({\n flatten: true\n })\n this.logger.log('error slot change', childNodes);\n if(childNodes.length){\n this.hasErrorSlot = true;\n }\n }\n\n _handleNoContentSlotChange(e) {\n const childNodes = e.target.assignedNodes({\n flatten: true\n })\n this.logger.log('no content slot change', childNodes);\n if(childNodes.length){\n this.hasNoContentSlot = true;\n }\n }\n\n _handleSlotEvent(e){\n e.preventDefault();\n e.stopPropagation();\n if(e?.type === 'reload'){\n this.loadZoneData();\n this.isErrorOpen = false;\n }\n }\n\n render() {\n return html`\n <iframe src=\"${this.renderURL}\" @load=${this._handleFrameLoad} frameborder=\"0\" class=\"flb-frame\" sandbox=\"allow-scripts allow-same-origin allow-downloads\"></iframe>\n ${this.hasLoadingSlot?'':html`\n <div class=${classMap({open: this.isLoadingOpen,'slot-default':true,'loading': true})}>\n <flybits-loading></flybits-loading>\n </div>\n `}\n ${this.hasErrorSlot?'':html`\n <div class=${classMap({open: this.isErrorOpen,'slot-default':true,'error': true})}>\n <flybits-error @reload=${this._handleSlotEvent}></flybits-error>\n </div>\n `}\n <slot class=${classMap({open: this.isLoadingOpen})} name=\"loading\" @slotchange=${this._handleLoadingSlotChange}></slot>\n <slot class=${classMap({open: this.isErrorOpen})} name=\"error\" @reload=${this._handleSlotEvent} @slotchange=${this._handleErrorSlotChange}></slot>\n <slot class='overlay-loading' name=\"overlay-loading\"></slot>\n <slot class='overlay-error' name=\"overlay-error\"></slot>\n <slot class=${classMap({open: this.showNoContentUI})} name=\"no-content\" @slotchange=${this._handleNoContentSlotChange}></slot>\n `\n }\n}\ncustomElements.define('flybits-slot', FlybitsSlot);","/*global Flybits*/\nimport { html, css } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport Zone from '../models/zone';\nimport CtxAPI from '../apis/ctx';\nimport FlybitsSlot from './flybits-slot';\nimport ObjUtil from '../utils/obj';\n\n/**\n * @class FlybitsOverlay\n * @memberof Flightkit\n * @extends Flightkit.FlybitsSlot\n */\nexport default class FlybitsOverlay extends FlybitsSlot {\n static properties = {\n dismissUI: {\n type: Boolean,\n attribute: 'dismiss-ui'\n }\n }\n\n static styles = css`\n :host {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000000;\n }\n .flb-frame {\n width: 100%;\n height: 100%;\n border: 0;\n z-index: 1;\n }\n .dismiss.btn{\n position: fixed;\n top: 25px;\n right: 25px;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n font-size: 25px;\n cursor: pointer;\n background-color: white;\n }\n .dismiss.btn:hover{\n background-color: whitesmoke;\n transition: background-color 0.1s linear; \n }\n .slot-default flybits-loading{\n background-color: rgba(0,0,0,0.05);\n }\n .slot-default,::slotted(:first-child){\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.2s linear 0.2s, visibility 0s linear 0.2s;\n z-index: 2;\n }\n .slot-default.open,.open::slotted(:first-child) {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.2s linear 0.2s, visibility 0s linear 0s;\n }\n `\n\n constructor(){\n super();\n this.renderMode = FlybitsSlot.modes.FULLHEIGHT;\n this.refID = 'overlay';\n this.uid = ObjUtil.guid(2);\n this.dismissUI = false;\n }\n\n connectedCallback() {\n super.connectedCallback()\n this.setLoading(true);\n const $el = this;\n this.frameLoadPromise.then(function(){\n $el.setLoading(false);\n })\n\n if(window.Flybits?.evt){\n Flybits.evt.on(Flybits.evt.type.SESSIONEND+'.overlay-'+this.uid, function(){\n $el._dispatchDismiss();\n });\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if(window.Flybits?.evt){\n Flybits.evt.off(Flybits.evt.type.SESSIONEND+'.overlay-'+this.uid);\n }\n }\n \n _dispatchDismiss() {\n this.remove();\n }\n\n _adoptSlotContext(slot){\n if(!slot || !(slot instanceof FlybitsSlot)){\n this.logger.error('invalid argument: can only adopt the context of FlybitsSlot instances');\n return;\n }\n\n if(slot?.renderURL){\n this.renderURL = slot.renderURL;\n }\n if(slot?.overlayOutlet){\n this.overlayOutlet = slot.overlayOutlet;\n }\n if(slot?.overlayDismissUI){\n this.overlayDismissUI = slot.overlayDismissUI;\n }\n if(slot?.logger?.mode){\n this.logger.mode = slot.logger.mode;\n }\n if(slot?.logLevel){\n this.logLevel = slot.logLevel;\n }\n if(Object.prototype.hasOwnProperty.call(slot, 'dismissUI')){\n this.dismissUI = !!slot.dismissUI;\n }\n if(slot?.$overlayLoadingUI){\n slot.$overlayLoadingUI.setAttribute('slot', 'loading');\n this.append(slot.$overlayLoadingUI);\n }\n if(slot?.$overlayErrorUI){\n slot.$overlayErrorUI.setAttribute('slot', 'error');\n this.append(slot.$overlayErrorUI);\n }\n if(slot?.localization){\n this.localization = slot.localization;\n }\n if(slot?.textDirection){\n this.textDirection = slot.textDirection;\n }\n if(slot?._$evtSrcCtx){\n this._$evtSrcCtx = slot?._$evtSrcCtx;\n }\n if(slot?.overrideURLs){\n this.overrideURLs = slot?.overrideURLs;\n }\n }\n\n /**\n * \n * @instance\n * @memberof Flightkit.FlybitsOverlay\n * @function injectContent\n * @param {external:FlybitsContent} content \n */\n injectContent(content) {\n this.injectData(Zone.generateOverlayPayload(content, this.resolvedLocale));\n }\n\n detectFlybits() {\n CtxAPI.autoInitCtxManager();\n var $el = this;\n\n if(window.Flybits){\n if(this.host){\n Flybits.cfg.HOST = this.host;\n }\n if(this.projectID){\n Flybits.Session._projectID = this.projectID;\n }\n } else{\n this.logger.error('Flybits.js Core SDK not detected.');\n }\n }\n\n render() {\n let $dismissUI = html``;\n if(this.dismissUI){\n $dismissUI = html`\n <div class=\"dismiss btn\" @click=${this._dispatchDismiss}>×</div>\n `;\n }\n return html`\n ${$dismissUI}\n <iframe src=\"${this.renderURL}\" @load=${this._handleFrameLoad} frameborder=\"0\" class=\"flb-frame\" sandbox=\"allow-scripts allow-same-origin allow-downloads\"></iframe>\n ${this.hasLoadingSlot?'':html`\n <div class=${classMap({open: this.isLoadingOpen,'slot-default':true,'loading': true})}>\n <flybits-loading></flybits-loading>\n </div>\n `}\n ${this.hasErrorSlot?'':html`\n <div class=${classMap({open: this.isErrorOpen,'slot-default':true,'error': true})}>\n <flybits-error @reload=${this._handleSlotEvent}></flybits-error>\n </div>\n `}\n <slot class=${classMap({open: this.isLoadingOpen})} name=\"loading\" @slotchange=${this._handleLoadingSlotChange}></slot>\n <slot class=${classMap({open: this.isErrorOpen})} name=\"error\" @reload=${this._handleSlotEvent} @slotchange=${this._handleErrorSlotChange}></slot>\n `\n }\n}\ncustomElements.define('flybits-overlay', FlybitsOverlay);","/*global Flybits, Flightkit, document*/\nimport { html, css, LitElement } from 'lit';\n\n/**\n * @class FlybitsLoading\n * @classdesc A default loading UI for FlybitsSlot components.\n * @memberof Flightkit\n * @extends external:LitElement\n * @example \n * <!-- declarative approach -->\n * <flybits-slot ref-id=\"homepage\">\n * <flybits-loading slot=\"loading\"></flybits-loading>\n * </flybits-slot>\n */\nexport default class FlybitsLoading extends LitElement {\n\n static properties = {\n };\n \n static styles = css`\n :host {\n position: relative;\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n align-content: center;\n background-color: rgba(255,255,255,0.3);\n }\n :host svg{\n opacity: 0.7;\n }\n `\n\n constructor() {\n super();\n }\n \n connectedCallback() {\n super.connectedCallback()\n }\n \n disconnectedCallback() {\n super.disconnectedCallback()\n }\n\n render() {\n return html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"margin: auto; background: transparent; display: block; shape-rendering: auto;\" width=\"100px\" height=\"100px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <circle cx=\"84\" cy=\"50\" r=\"10\" fill=\"#292664\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"0.4807692307692307s\" calcMode=\"spline\" keyTimes=\"0;1\" values=\"10;0\" keySplines=\"0 0.5 0.5 1\" begin=\"0s\"></animate>\n <animate attributeName=\"fill\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"discrete\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"#292664;#b5ccf1;#94a9ce;#667395;#292664\" begin=\"0s\"></animate>\n </circle><circle cx=\"16\" cy=\"50\" r=\"10\" fill=\"#292664\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"0;0;10;10;10\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"0s\"></animate>\n <animate attributeName=\"cx\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"16;16;16;50;84\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"0s\"></animate>\n </circle><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"#667395\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"0;0;10;10;10\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-0.4807692307692307s\"></animate>\n <animate attributeName=\"cx\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"16;16;16;50;84\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-0.4807692307692307s\"></animate>\n </circle><circle cx=\"84\" cy=\"50\" r=\"10\" fill=\"#94a9ce\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"0;0;10;10;10\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-0.9615384615384615s\"></animate>\n <animate attributeName=\"cx\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"16;16;16;50;84\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-0.9615384615384615s\"></animate>\n </circle><circle cx=\"16\" cy=\"50\" r=\"10\" fill=\"#b5ccf1\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"0;0;10;10;10\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-1.4423076923076923s\"></animate>\n <animate attributeName=\"cx\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"16;16;16;50;84\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-1.4423076923076923s\"></animate>\n </circle>\n </svg>\n `\n }\n}\ncustomElements.define('flybits-loading', FlybitsLoading);","/*global Flybits, Flightkit, document*/\nimport { html, css, LitElement } from 'lit';\n\n/**\n * @class FlybitsError\n * @classdesc A default error UI for FlybitsSlot components.\n * @memberof Flightkit\n * @extends external:LitElement\n * @example \n * <!-- declarative approach -->\n * <flybits-slot ref-id=\"homepage\">\n * <flybits-error slot=\"error\"></flybits-error>\n * </flybits-slot>\n */\nexport default class FlybitsError extends LitElement {\n\n static properties = {\n };\n \n static styles = css`\n :host {\n position: relative;\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n align-content: center;\n background-color: rgba(255,255,255,0.8);\n }\n .inner-wrap{\n text-align: center;\n }\n .msg{\n display: block;\n font-weight: bold;\n font-size: 16px;\n margin-bottom: 10px;\n }\n .reload-trigger{\n display: inline-block;\n font-size: 14px;\n border-radius: 20px;\n min-width: 100px;\n background-color: #3258E9;\n color: white;\n text-align: center;\n line-height: 30px;\n cursor: pointer;\n user-select: none;\n }\n .reload-trigger:hover{\n background-color: #0c94f2;\n }\n `\n\n constructor() {\n super();\n }\n \n connectedCallback() {\n super.connectedCallback()\n }\n \n disconnectedCallback() {\n super.disconnectedCallback()\n }\n\n emitReload() {\n this.dispatchEvent(new CustomEvent('reload', {\n bubbles: true\n }))\n }\n\n render() {\n return html`\n <div class=\"inner-wrap\">\n <div class=\"msg\">Sorry, something went wrong.</div>\n <div class=\"reload-trigger\" @click=\"${this.emitReload}\">Try again</div>\n </div>\n `\n }\n}\ncustomElements.define('flybits-error', FlybitsError);","import FlybitsOverlay from \"../components/flybits-overlay\";\nimport ActionLink from \"../models/actionLink\";\n\nconst OutletManager = {\n $overlay: null,\n /**\n * \n * @param {string} actionLink Action Link protocol string\n * @param {HTMLElement|string} $outlet Either an HTML element to inject the outlet into or a query selector string by which to query the HTML element.\n * @param {Object} parent Parent FlybitsSlot instance to align overlay attributes to.\n * @returns {undefined}\n */\n openOverlay: function(actionLink, $outlet, parent){\n if(!this.$overlay){\n this.$overlay = new FlybitsOverlay();\n }\n\n if(actionLink.protocol === ActionLink.protocol.DETAILS && !actionLink.data.content){\n this.$overlay.logger.error('no content details to display')\n return;\n }\n\n if(actionLink.protocol === ActionLink.protocol.CONCIERGE && !actionLink?.params?.zoneReferenceId){\n this.$overlay.logger.error('no zone reference ID')\n return;\n }\n \n const existingLoadingUI = this.$overlay.querySelector('[slot=\"loading\"]');\n if(existingLoadingUI){\n existingLoadingUI.remove();\n }\n\n const existingErrorUI = this.$overlay.querySelector('[slot=\"error\"]');\n if(existingErrorUI){\n existingErrorUI.remove();\n }\n\n this.$overlay._adoptSlotContext(parent);\n\n var $outletEl = $outlet;\n if(typeof $outlet === 'string'){\n $outletEl = document.querySelector($outlet);\n }\n\n if(!$outletEl){\n this.$overlay.logger.error('invalid outlet', $outlet)\n return;\n }\n $outletEl.append(this.$overlay);\n\n if(actionLink.protocol === ActionLink.protocol.DETAILS){\n this.$overlay.injectContent(actionLink.data.content);\n } else if(actionLink.protocol === ActionLink.protocol.CONCIERGE){\n this.$overlay.handleAction(actionLink);\n } else {\n this.$overlay.logger.error('ActionLink type not yet supported in overlay', actionLink.rawStr);\n }\n }\n};\n\nexport default OutletManager;","import FlybitsSlot from \"../components/flybits-slot\";\nimport FlybitsOverlay from \"../components/flybits-overlay\";\nimport FlybitsLoading from \"../components/flybits-loading\";\nimport FlybitsError from \"../components/flybits-error\";\nimport ActionLink from \"../models/actionLink\";\nimport OutletManager from \"./outletManager\";\nimport cfg from '../../package.json';\n\n/**\n * Base CustomElement with reactive properties and internal state.\n * @external LitElement\n * @see {@link https://lit.dev/docs/api/LitElement/|LitElement Definition}\n * @see {@link https://lit.dev/|Lit library}\n */\n\n/**\n * Native DOM element event with custom data payloads\n * @external CustomEvent\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent|CustomEvent Definition}\n */\n\n/**\n * Native DOM element\n * @external HTMLElement\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement|HTMLElement Definition}\n */\n\n/**\n * Encapsulated DOM tree within a native Custom Element.\n * @external ShadowDOM\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM|Using Shadow DOM}\n */\n\n/**\n * ES6 Promise object.\n * @external Promise\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise|Promise API}\n * @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects|Promise spec}\n */\n\n/**\n * Flybits Content Instance\n * @external FlybitsContent\n * @see {@link https://js.flybits.app/docs/sdk/latest/Flybits.Content.html|Flybits Content Instance Definition}\n */\n\n/**\n * @member {string} VERSION Flightkit library semantic version string.\n * @memberof Flightkit\n * @static\n * @constant\n */\nconst VERSION = cfg.version;\n\n/**\n * This is the root namespace for the Flighkit SDK. This is accessible from the `window` object.\n * @namespace\n */\nconst Flightkit = {\n FlybitsSlot: FlybitsSlot,\n outlet: OutletManager,\n FlybitsOverlay: FlybitsOverlay,\n ActionLink: ActionLink,\n FlybitsLoading: FlybitsLoading,\n FlybitsError: FlybitsError,\n VERSION: VERSION\n};\n\nif(typeof window === 'object' && typeof window.Flightkit !== 'object'){\n window.Flightkit = Flightkit;\n}\n\n/**\n * @module flightkit\n * @desc This is the main Flightkit module which exports named values so you may import them as follows:\n * ```\n * import { FlybitsSlot, FlybitsOverlay, FlybitsLoading, FlybitsError, ActionLink, OutletManager } from 'flightkit'\n * ```\n */\nexport {\n FlybitsSlot,\n FlybitsOverlay,\n FlybitsLoading,\n FlybitsError,\n ActionLink,\n OutletManager,\n VERSION\n}"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$2","n","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y$1","y","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","v","_","m","RegExp","g","$","x","_$litType$","strings","values","T","for","E","A","createTreeWalker","P","V","lastIndex","exec","test","startsWith","N","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","H","I","L","k","tagName","append","data","indexOf","innerHTML","S","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","iterator","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","_$Ct","_$Ci","filter","join","st","nt","classList","cfg$1","Deferred","def","promise","resolve","then","bind","catch","coerceTypes","obj","protocolDef","retObj","key","val","protocolObj","default","ActionLink","static","DETAILS","INAPPBROWSER","BROWSER","HTTPS","PHONE","APP","CONCIERGE","UNIVERSAL","MAIL","CUSTOM","details","contentId","overlay","title","web","url","browser","https","phone","phoneNumber","app","concierge","container","zoneReferenceId","style","universalLink","ios","android","mail","sendTo","subject","body","cc","bcc","custom","linkStr","rawStr","protocol","value","protoValue","params","fromLink","protocolStr","valueStr","substring","PROTOCOLDEFS","parsedURL","URL","match","fromEntries","searchParams","entries","console","warn","paramObj","invalidArr","invalidParamStr","paramStr","invalidParamIdx","validParamStr","validateParamObj","toJSON","ZoneAPI","cachedContent","getCachedContentDetails","contentID","getContentDetails","api","Flybits","Content","res","result","id","getZoneContent","refID","contentMap","Zones","getByReferenceId","zoneConfig","zone","modules","module","Validation","addError","code","NOTFOUND","context","s4","floor","ObjUtil","guid","tuples","str","getByStr","keyStr","aKeys","replace","setByStr","removeObject","arr","findCallback","objs","splice","debounce","func","wait","immediate","timeout","args","callNow","clearTimeout","setTimeout","apply","extend","isMergeableObject","cloneIfNecessary","optionsArgument","clone","deepmerge","defaultArrayMerge","target","source","destination","array","arrayMerge","mergeObject","all","prev","next","Zone","generateOverlayPayload","resolvedLocale","tmpZone","referenceID","tmpModule","Module","layout","payload","toConciergeContainer","containers","uiTemplate","detailsUI","layoutHTML","styleCSSURL","styleStr","styleCSS","generateDetailsPayload","CtxAPI","_deferredCtxInit","autoInitCtxManager","Session","ready","window","Manager","isReporting","reportDelay","Cfg","initialize","handleContextPayload","logger","ctxRep","pluginId","cleansedValueObj","cleansedKeyStr","replaceAll","reportCtx","error","handleAnalyticsPayload","contentInfo","component","analytics","reportContentID","actions","COMPONENTENGAGED","compID","compId","Logger","VERBOSE","ERRORS","SILENT","opts","prefix","now","Date","getHours","getMinutes","getSeconds","getMilliseconds","performance","log","modes","ZoneUtil","FlybitsSlot","VERSION","pkg","FIXEDHEIGHT","DYNAMICHEIGHT","projectID","renderURL","pollingEnabled","pollingInterval","renderMode","overlayOutlet","overrideOverlay","overrideURLs","overrideActions","overlayDismissUI","isLoadingOpen","isErrorOpen","hasLoadingSlot","hasErrorSlot","logLevel","localization","textDirection","css","$renderFrame","querySelector","$noContentUI","slot","childElems","assignedElements","flatten","$overlayLoadingUI","_$overlayLoadingOverride","$overlayErrorUI","_$overlayErrorOverride","browserLocale","locale","navigator","language","initParams","cfg","_hasDeferredLoad","_loaderStack","showNoContentUI","hasNoContentSlot","_$evtSrcCtx","frameLoadDef","frameLoadPromise","detectFlybits","_reboundHandleFrameEvent","handleFrameEvent","init","initElementMeta","_projectID","$el","getZoneMetadata","meta","height","_setHeight","_old","loadZoneData","setLoading","_dispatchLoad","injectData","_dispatchError","appid","version","coreVersion","_framePostMessage","$frameWindow","contentWindow","postMessage","handleAction","actionLink","_resolveContent","bool","pop","isNaN","results","_dispatchActionLinks","actionLinkStr","metaObj","Flightkit","outlet","openOverlay","open","location","href","evt","CustomEvent","detail","bubbles","composed","dispatchEvent","cIDs","contentIDs","validation","stacktrace","errors","HOST","userToken","childContentWindow","origin","flb","eventObj","actionlink","_dispatchDismiss","heightNum","_handleFrameLoad","_handleLoadingSlotChange","assignedNodes","_handleErrorSlotChange","_handleNoContentSlotChange","_handleSlotEvent","preventDefault","stopPropagation","html","classMap","loading","customElements","define","FlybitsOverlay","dismissUI","FULLHEIGHT","uid","on","SESSIONEND","off","_adoptSlotContext","injectContent","$dismissUI","FlybitsLoading","FlybitsError","emitReload","OutletManager","$overlay","$outlet","parent","existingLoadingUI","existingErrorUI","$outletEl"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|
|
1
|
+
{"version":3,"file":"flightkit.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/lit-html/directive.js","../node_modules/lit-html/directives/class-map.js","../src/config/cfg.js","../src/models/deferred.js","../src/models/actionLink.js","../src/apis/zone.js","../src/utils/obj.js","../src/models/zone.js","../src/apis/ctx.js","../src/utils/logger.js","../src/utils/zone.js","../src/components/flybits-slot.js","../src/components/flybits-overlay.js","../src/components/flybits-loading.js","../src/components/flybits-error.js","../src/core/outletManager.js","../src/core/core.js"],"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,css,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:h,getOwnPropertyNames:r,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),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y 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=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}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=[...r(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._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){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._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),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),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=h.fromAttribute(s,t.type)??this._$Ej?.get(e)??null,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}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){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.0\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,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().toFixed(9).slice(2)}$`,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=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",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[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{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]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.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]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),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()),C.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 S(t,i,s=t,e){if(i===T)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=S(t,h._$AS(t,i.values),h,e)),i}class M{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);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.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 R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,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=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(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 R(this.O(l()),this.O(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 k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,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=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||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 z{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){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.0\");const B=(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 R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B 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 r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i 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 r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.0\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((s=>t[s])).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","\nexport default {\n RENDERHOST: 'https://static-files-concierge.staging.flybits.com/latest/zone.html',\n DEFAULTFLBHOST: 'https://api.demo.flybits.com',\n DEFAULTREFID: 'homepage',\n DEFAULTCTXREPORTINTERVAL: 2000\n}","var Deferred = function(){\n var def = this;\n /**\n * @instance\n * @member {external:Promise} promise Instance of an ES6 Promise to be fulfilled.\n */\n this.promise = new Promise(function(resolve,reject){\n /**\n * @instance\n * @member {function} resolve Callback to be invoked when the asychronous task that initiated the promise is successfully completed.\n */\n def.resolve = resolve;\n /**\n * @instance\n * @member {function} reject Callback to be invoked when the asychronous task that initiated the promise has failed to complete successfully.\n */\n def.reject = reject;\n });\n\n this.then = this.promise.then.bind(this.promise);\n this.catch = this.promise.catch.bind(this.promise);\n};\n\nexport default Deferred;","\nconst coerceTypes = function(obj, protocolDef){\n var retObj = {};\n\n Object.keys(obj).forEach(function(key){\n const val = obj[key];\n if(val){\n if(protocolDef[key].type === Boolean){\n retObj[key] = val?.toLowerCase() === 'true';\n } else if(protocolDef[key].type === Number){\n retObj[key] = +val;\n } else{\n retObj[key] = val;\n }\n } else if(protocolDef[key].hasOwnProperty('default')){\n retObj[key] = protocolObj[key].default;\n }\n });\n\n return retObj;\n}\n\n/**\n * @class ActionLink\n * @classdesc An ActionLink is essentially a typical Uniform Resource Identifier (URI) for example, 'https://domain.com' or 'ftp://fileserver.com:3003' but with custom protocol schemes and parameters. Each Action Event carries an Action Link with details about what type of action has occurred (eg. web link, app deep link, overlay open, etc) and their associated parameters like email recipients if for example the Action Link were to initiate an email draft\n * @memberof Flightkit\n * @param {string} linkStr Raw ActionLink protocol string with scheme, value, and parameters (eg. details://?contentId=123). This string will be parsed and class instance will be hydrated.\n */\nclass ActionLink{\n\n /**\n * @member {Object} protocol Set of protocol scheme types\n * @memberof Flightkit.ActionLink\n * @static\n * @constant\n * @property {string} DETAILS (value=`details`) Opens a Content Instance details page as an overlay or can be injected into a FlybitsSlot for rendering. If a contentId is not provided, it is assumed to attempt opening the details page of the Content Instance from which the action originated from.\n * @property {string} INAPPBROWSER (value=`web`) Opens a web URL in an in app browser. This is dependent on application support.\n * @property {string} BROWSER (value=`browser`) Opens a web URL in the platform browser.\n * @property {string} HTTPS (value=`https`) Opens a web URL in the platform browser. Allows for standard URLs as the raw link string; useful for RTF fields containing hyperlinks.\n * @property {string} CONCIERGE (value=`concierge`) Opens a particular Zone as an overlay or can be injected into a FlybitsSlot for rendering.\n * @property {string} PHONE (value=`phone`) Opens platform phone application with pre-seeded phone number.\n * @property {string} APP (value=`app`) Useful for mobile platform application deep linking. Note URL must be registered in target application otherwise will default to be an simple web link opened in the platform browser.\n * @property {string} UNIVERSAL (value=`universalLink`) Meant for mobile platforms, it will open a platform specific URL and depending on the platform forward the action to specific applications with a failover as a webpage.\n * @property {string} MAIL (value=`mail`) Opens platform email application with pre-seeded body and details.\n */\n static protocol = {\n DETAILS: 'details',\n INAPPBROWSER: 'web',\n BROWSER: 'browser',\n HTTPS: 'https',\n PHONE: 'phone',\n APP: 'app',\n CONCIERGE: 'concierge',\n UNIVERSAL: 'universalLink',\n MAIL: 'mail',\n CUSTOM: 'custom'\n }\n\n /**\n * @typedef {Object} PROTOCOLDEFS Protocol scheme type definitions outlining what parameters corresponding ActionLink types contain.\n * @memberof Flightkit.ActionLink\n * @property {Object} details Type DETAILS\n * @property {string} details.contentId Flybits Content Instance ID\n * @property {boolean} [details.overlay=false] Flag to indicate Content details should be opened as an overlay.\n * @property {Object} web Type INAPPBROWSER\n * @property {string} web.url URL string to be opened in the browser.\n * @property {Object} browser Type BROWSER\n * @property {string} browser.url URL string to be opened in the browser.\n * @property {Object} https Type HTTPS; no additional properties.\n * @property {Object} phone Type PHONE\n * @property {string} phone.phoneNumber Phone number string that may contain dashes and plus symbols. \n * @property {Object} app Type APP\n * @property {string} app.name Predefined reference string for custom application logic.\n * @property {Object} concierge Type CONCIERGE\n * @property {string} concierge.zoneReferenceId Zone Reference ID to load based on the ActionLink.\n * @property {boolean} [concierge.overlay=false] Flag to indicate Zone should be opened as an overlay.\n * @property {Object} universalLink Type UNIVERSAL\n * @property {string} universalLink.ios iOS specific universal URL. Note URL must be registered in target application otherwise will default to be an simple web link opened in the platform browser.\n * @property {string} universalLink.android Android specific universal URL. Note URL must be registered in target application otherwise will default to be an simple web link opened in the platform browser.\n * @property {Object} mail Type MAIL\n * @property {string} mail.sendTo Recipient target email address.\n * @property {string} mail.subject Subject field of the email.\n * @property {string} mail.body Main email body.\n * @property {string} mail.cc Comma separated list of email addresses to be added to the Carbon Copy (CC) field.\n * @property {string} mail.bcc Comma separated list of email addresses to be added to the Bline Carbon Copy (BCC) field.\n */\n static PROTOCOLDEFS = {\n details: {\n contentId: {\n type: String,\n },\n overlay: {\n type: Boolean,\n default: false\n },\n title: {\n type: String\n }\n },\n web: {\n url: {\n type: String\n },\n },\n browser: {\n url: {\n type: String\n },\n },\n https: {},\n phone: {\n phoneNumber: {\n type: String // might contain dashes and plus symbols\n },\n },\n app: {\n name: {\n type: String\n },\n },\n concierge: {\n container: {\n type: String\n },\n zoneReferenceId: {\n type: String\n },\n filter: {\n type: String\n },\n style: {\n type: String\n }, \n overlay: {\n type: Boolean,\n default: false\n }, \n },\n universalLink: {\n ios: {\n type: String\n },\n android: {\n type: String\n },\n },\n mail: {\n sendTo: {\n type: String\n },\n subject: {\n type: String\n },\n body: {\n type: String\n },\n cc: {\n type: String\n },\n bcc: {\n type: String\n },\n },\n custom: {}\n };\n\n constructor(linkStr){\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {string} rawStr Raw ActionLink protocol string with scheme, value, and parameters.\n */\n this.rawStr = '';\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {string} protocol ActionLink protocol scheme (eg. details, browser, concierge, etc).\n */\n this.protocol = '';\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {string} value ActionLink protocol value after scheme including parameters (eg flybits.com?x=3).\n */\n this.value = '';\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {string} protoValue protocol value after scheme not including parameters (eg. flybits.com)\n */\n this.protoValue = '';\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {Object} params Map of ActionLink protocol {@link Flightkit.ActionLink.PROTOCOLDEFS|type parameters} depending on the {@link Flightkit.ActionLink.protocol|type}.\n */\n this.params = {};\n /**\n * @instance\n * @memberof Flightkit.ActionLink\n * @member {Object} data ActionLink protocol {@link Flightkit.ActionLink.protocol|type} specific object that may contain entity instances (eg. hydrated Content Instances).\n */\n this.data = {};\n this.fromLink(linkStr);\n }\n\n _parseParams(valueStr, protocolObj){\n var retObj = {};\n var paramIndices = [];\n \n Object.keys(protocolObj).forEach((key) => {\n paramIndices.push({\n key: key,\n idx: valueStr.indexOf(key + '=')\n })\n });\n \n paramIndices.sort((a, b) => {\n return a.idx - b.idx;\n })\n\n paramIndices.forEach((obj, index) => {\n if(obj.idx < 0){\n return;\n }\n\n if(paramIndices[index+1]){\n retObj[obj.key] = valueStr.slice(obj.idx+obj.key.length+1, paramIndices[index+1].idx -1);\n } else{\n retObj[obj.key] = valueStr.slice(obj.idx+obj.key.length+1);\n }\n });\n\n return retObj;\n }\n\n fromLink(linkStr){\n this.rawStr = linkStr;\n var protocolStr = linkStr.split('://')[0] || '';\n protocolStr = protocolStr.toLowerCase();\n\n var valueStr = linkStr.indexOf('://') > -1 ? linkStr.substring(linkStr.indexOf('://') + 3) : linkStr;\n var protocolObj = ActionLink.PROTOCOLDEFS.custom;\n\n if(ActionLink.PROTOCOLDEFS[protocolStr]){\n protocolObj = ActionLink.PROTOCOLDEFS[protocolStr];\n } else{\n try{\n const parsedURL = new URL(linkStr);\n this.protoValue = linkStr.match(/:\\/\\/(.*?)\\?/)[1];\n this.params = Object.fromEntries(parsedURL.searchParams.entries());\n } catch(e){\n console.warn('custom action is of unknown protocol scheme');\n }\n }\n\n this.protocol = protocolStr;\n this.value = valueStr;\n\n if(protocolObj && Object.keys(protocolObj).length){\n var paramObj = this._parseParams(valueStr, protocolObj);\n paramObj = coerceTypes(paramObj, protocolObj);\n\n this.params = paramObj;\n }\n }\n\n toJSON(){\n return {\n rawStr: this.rawStr,\n protocol: this.protocol,\n protoValue: this.protoValue,\n value: this.value,\n params: this.params,\n data: this.data\n };\n }\n\n static parse(linkStr){\n return new ActionLink(linkStr);\n }\n}\n\nexport default ActionLink;","import Deferred from \"../models/deferred\";\n\nexport default {\n cachedContent: {},\n getCachedContentDetails: function(contentID){\n return this.cachedContent[contentID];\n },\n getContentDetails: function(contentID){\n const def = new Deferred();\n var api = this;\n Flybits.api.Content.get(contentID).then(function(res){\n api.cachedContent[res.result.id] = res.result;\n def.resolve(res.result);\n }).catch(function(e){\n def.reject(e);\n })\n\n return def.promise;\n },\n getZoneContent: function(refID){\n const def = new Deferred();\n var contentMap = this.cachedContent;\n\n Flybits.api.Zones.getByReferenceId(refID).then(function(zoneConfig){\n if(!zoneConfig?.zone?.modules){\n def.reject(new Flybits.Validation().addError('Zone not found','No valid Zone was found with specified reference ID',{\n code: Flybits.Validation.type.NOTFOUND,\n context: refID\n }));\n } else{\n zoneConfig.zone.modules.forEach(function(module){\n module.content.forEach(function(c){\n contentMap[c.id] = c;\n });\n });\n def.resolve(zoneConfig.zone);\n }\n }).catch(function(e){\n def.reject(e);\n });\n\n return def.promise;\n },\n}","\n\nvar s4 = function(){\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n};\n\nvar ObjUtil = {\n guid: function(tuples){\n var str = '';\n if (tuples && tuples > 0) {\n for (var i = 0; i < tuples; i++) {\n str += str !== '' ? '-' + s4() : s4();\n }\n return str;\n }\n return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();\n },\n getByStr: function (obj, keyStr) {\n // convert indexes to properties\n keyStr = keyStr.replace(/\\[(\\w+)\\]/g, '.$1');\n // strip a leading dot\n keyStr = keyStr.replace(/^\\./, '');\n var aKeys = keyStr.split('.');\n for (var i = 0, n = aKeys.length; i < n; ++i) {\n var key = aKeys[i];\n if (key in obj) {\n obj = obj[key];\n } else {\n return;\n }\n }\n return obj;\n },\n setByStr: function (obj, keyStr, val) {\n // convert indexes to properties\n keyStr = keyStr.replace(/\\[(\\w+)\\]/g, '.$1');\n // strip a leading dot\n keyStr = keyStr.replace(/^\\./, '');\n var aKeys = keyStr.split('.');\n for (var i = 0, n = aKeys.length; i < n; i++) {\n var key = aKeys[i];\n if (key in obj && i + 1 < n) {\n obj = obj[key];\n } else if (!(key in obj) && i + 1 < n) {\n obj[key] = {};\n obj = obj[key];\n } else {\n obj[key] = val;\n return val;\n }\n }\n },\n removeObject: function (arr, obj, findCallback) {\n var index = arr.indexOf(obj);\n\n if (findCallback) {\n var objs = arr.filter(findCallback);\n if (objs.length > 0) {\n index = arr.indexOf(objs[0]);\n }\n }\n\n if (index >= 0) {\n return arr.splice(index, 1);\n }\n return arr;\n },\n debounce: function (func, wait, immediate) {\n var timeout;\n return function () {\n var context = this,\n args = arguments;\n var later = function () {\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n },\n};\n\nObjUtil.extend = (function () {\n function isMergeableObject(val) {\n var nonNullObject = val && typeof val === 'object';\n\n return (\n nonNullObject &&\n Object.prototype.toString.call(val) !== '[object RegExp]' &&\n Object.prototype.toString.call(val) !== '[object Date]'\n );\n }\n\n function emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n }\n\n function cloneIfNecessary(value, optionsArgument) {\n var clone = optionsArgument && optionsArgument.clone === true;\n return clone && isMergeableObject(value)\n ? deepmerge(emptyTarget(value), value, optionsArgument)\n : value;\n }\n\n function defaultArrayMerge(target, source, optionsArgument) {\n var destination = target.slice();\n source.forEach(function (e, i) {\n if (typeof destination[i] === 'undefined') {\n destination[i] = cloneIfNecessary(e, optionsArgument);\n } else if (isMergeableObject(e)) {\n destination[i] = deepmerge(target[i], e, optionsArgument);\n } else if (target.indexOf(e) === -1) {\n destination.push(cloneIfNecessary(e, optionsArgument));\n }\n });\n return destination;\n }\n\n function mergeObject(target, source, optionsArgument) {\n var destination = {};\n if (isMergeableObject(target)) {\n Object.keys(target).forEach(function (key) {\n destination[key] = cloneIfNecessary(target[key], optionsArgument);\n });\n }\n Object.keys(source).forEach(function (key) {\n if (!isMergeableObject(source[key]) || !target[key]) {\n destination[key] = cloneIfNecessary(source[key], optionsArgument);\n } else {\n destination[key] = deepmerge(target[key], source[key], optionsArgument);\n }\n });\n return destination;\n }\n\n function deepmerge(target, source, optionsArgument) {\n var array = Array.isArray(source);\n var options = optionsArgument || { arrayMerge: defaultArrayMerge };\n var arrayMerge = options.arrayMerge || defaultArrayMerge;\n\n if (array) {\n return Array.isArray(target)\n ? arrayMerge(target, source, optionsArgument)\n : cloneIfNecessary(source, optionsArgument);\n } else {\n return mergeObject(target, source, optionsArgument);\n }\n }\n\n deepmerge.all = function deepmergeAll(array, optionsArgument) {\n if (!Array.isArray(array) || array.length < 2) {\n throw new Error('first argument should be an array with at least two elements');\n }\n\n // we are sure there are at least 2 values, so it is safe to have no initial value\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, optionsArgument);\n });\n };\n\n return deepmerge;\n})();\n\nexport default ObjUtil;","import ObjUtil from \"../utils/obj\";\n\nclass Zone{\n static generateOverlayPayload(content, resolvedLocale){\n var tmpZone = new Flybits.Zone();\n tmpZone.id = ObjUtil.guid(2);\n tmpZone.name = 'Overlay';\n tmpZone.referenceID = 'overlay';\n \n var tmpModule = new Flybits.Module();\n tmpModule.id = ObjUtil.guid(2);\n tmpModule.layout = 'overlay';\n tmpModule.content = [content];\n tmpZone.modules = [tmpModule];\n\n var payload = tmpZone.toConciergeContainer(resolvedLocale);\n payload.containers[0].content[0].uiTemplate = content.detailsUI?.layoutHTML || '<!-- -->';\n payload.containers[0].content[0].style = content.detailsUI?.styleCSSURL || '';\n payload.containers[0].content[0].styleStr = content.detailsUI?.styleCSS || '';\n\n return payload;\n }\n\n static generateDetailsPayload(content, resolvedLocale){\n var tmpZone = new Flybits.Zone();\n tmpZone.id = ObjUtil.guid(2);\n tmpZone.name = 'Content Details';\n tmpZone.referenceID = 'details';\n \n var tmpModule = new Flybits.Module();\n tmpModule.id = ObjUtil.guid(2);\n tmpModule.layout = 'vertical';\n tmpModule.content = [content];\n tmpZone.modules = [tmpModule];\n\n var payload = tmpZone.toConciergeContainer(resolvedLocale);\n payload.containers[0].content[0].uiTemplate = content.detailsUI?.layoutHTML || '<!-- -->';\n payload.containers[0].content[0].style = content.detailsUI?.styleCSSURL || '';\n payload.containers[0].content[0].styleStr = content.detailsUI?.styleCSS || '';\n\n return payload;\n }\n}\n\nexport default Zone;","import Cfg from '../config/cfg';\n\nexport default {\n _deferredCtxInit: false,\n autoInitCtxManager: function(){\n if(this._deferredCtxInit){\n return;\n }\n this._deferredCtxInit = true;\n Flybits.Session.ready.then(function(){\n if(typeof window.Flybits === 'object' && !Flybits.context.Manager.isReporting){\n Flybits.context.Manager.reportDelay = Cfg.DEFAULTCTXREPORTINTERVAL;\n Flybits.context.Manager.initialize();\n }\n });\n },\n handleContextPayload: function(payload, logger){\n logger = logger || console;\n if(Array.isArray(payload)){\n Flybits.context.Manager.ready.then(function(){\n payload.forEach(function(ctxRep){\n if(ctxRep.pluginId && ctxRep.values){\n var cleansedValueObj = {};\n Object.keys(ctxRep.values).forEach(function(key){\n var cleansedKeyStr = key.replaceAll('query.','');\n cleansedValueObj[cleansedKeyStr] = ctxRep.values[key];\n });\n Flybits.context.Manager.reportCtx(ctxRep.pluginId,cleansedValueObj);\n } else{\n logger.error('[ctxapi] malformed ctx payload object', payload); \n }\n })\n })\n } else{\n logger.error('[ctxapi] malformed ctx payload', payload);\n }\n },\n handleAnalyticsPayload: function(payload, logger){\n logger = logger || console;\n if(!payload?.contentInfo?.id){\n logger.error('[ctxapi] missing content id in analytics event');\n return;\n }\n\n if((payload.type === 'viewed' || payload.type === 'engaged') && !payload.component){\n Flybits.context.Manager.ready.then(function(){\n Flybits.analytics.Manager.reportContentID(payload.contentInfo.id,payload.type);\n });\n } else if((payload.type === 'engaged' || payload.type === 'content_component_event') && payload.component){\n Flybits.context.Manager.ready.then(function(){\n Flybits.analytics.Manager.reportContentID(payload.contentInfo.id, Flybits.analytics.Manager.actions.COMPONENTENGAGED,{\n name: payload.component.name,\n compID: payload.component.id,\n type: payload.component.compId,\n });\n });\n } else{\n logger.error('[ctxapi] unsupported analytics event', payload);\n }\n }\n}","/**\n * @class Logger\n * @classdesc An internal logging utility.\n * @memberof Flightkit\n * @param {Object} opts Initialization options\n * @param {string} opts.mode Verbosity mode to control how granular logging is outputted to the console.\n */\nclass Logger {\n /**\n * @member {Object} modes Set of available logging verbosity modes.\n * @memberof Flightkit.Logger\n * @static\n * @constant\n * @property {string} VERBOSE (value=`verbose`) defines the most granular level of logging to be outputted into the console for debugging purposes.\n * @property {string} ERRORS (value=`errors`) defines the mode that will only output errors to the console.\n * @property {string} SILENT (value=`silent`) defines the mode that will not output any log to the console.\n */\n static modes = {\n VERBOSE: 'verbose',\n ERRORS: 'errors',\n SILENT: 'silent'\n };\n constructor(opts){\n opts = opts || {};\n /**\n * @instance\n * @memberof Flightkit.Logger\n * @member {string} mode Current logging verbosity mode.\n */\n this.mode = opts.mode || 'errors';\n }\n get prefix(){\n const now = new Date();\n return `[fk-${now.getHours()}:${now.getMinutes()}:${now.getSeconds()}:${now.getMilliseconds()}.${(window?.performance.now().toFixed(2)+'').split('.')[1]}]`;\n }\n log(...args){\n if(this.mode === Logger.modes.SILENT || this.mode !== Logger.modes.VERBOSE){\n return;\n }\n args.unshift(this.prefix);\n console.log.apply(null, args);\n }\n error(...args){\n if(this.mode === Logger.modes.SILENT){\n return;\n }\n args.unshift(this.prefix);\n console.error.apply(null, args);\n }\n warn(...args){\n if(this.mode === Logger.modes.SILENT || this.mode !== Logger.modes.VERBOSE){\n return;\n }\n args.unshift(this.prefix);\n console.warn.apply(null, args);\n }\n}\n\nexport default Logger;","\nexport default {\n hasContent: function(zone) {\n return !!zone?.modules?.filter((module) => {\n return module?.content?.length;\n })?.length;\n },\n}","/*global Flybits, Flightkit, document*/\nimport { html, css, LitElement } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport cfg from '../config/cfg';\nimport pkg from '../../package.json';\nimport Deferred from '../models/deferred';\nimport ActionLink from '../models/actionLink';\nimport ZoneAPI from '../apis/zone';\nimport Zone from '../models/zone';\nimport CtxAPI from '../apis/ctx';\nimport Logger from '../utils/logger';\nimport ZoneUtil from '../utils/zone';\nimport ObjUtil from '../utils/obj';\n\n/**\n * @class FlybitsSlot\n * @classdesc A FlybitsSlot is an HTML element used to embed full featured Flybits curated Content and UI within your application. It can take the form of a widget within an existing page of your application or it can take up a page in its entirety. It is used to render a Flybits Zone which is a composition of Modules (layouts) that can contain relevant personalized Flybits Content.\n * @memberof Flightkit\n * @extends external:LitElement\n * @example \n * <!-- declarative approach -->\n * <flybits-slot ref-id=\"homepage\"></flybits-slot>\n * @example\n * // imperative approach\n * const slot = new FlybitsSlot();\n * slot.init({\n * refID: 'homepage'\n * })\n * @fires Flightkit.FlybitsSlot#action\n * @fires Flightkit.FlybitsSlot#zoneLoad\n * @fires Flightkit.FlybitsSlot#error\n */\nexport default class FlybitsSlot extends LitElement {\n static get VERSION(){\n return pkg.version;\n }\n\n /**\n * @member {Object} modes Mode type constants.\n * @memberof Flightkit.FlybitsSlot\n * @static\n * @constant\n * @property {string} FIXEDHEIGHT Mode type string for fixed height FlybitsSlot instances where it is expected the implementing parent application will define a fixed height for the element within its own UI.\n * @property {string} DYNAMICHEIGHT Mode type string for dynamic height FlybitsSlot instances where height will automatically adjust based on Zone configuration and inner content height. \n */\n static get modes(){\n return {\n FIXEDHEIGHT: 'fixedheight',\n DYNAMICHEIGHT: 'dynamicheight'\n }\n }\n\n static properties = {\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} host (HTML attribute: `host`) Flybits environment specific API host URL from which all API calls will be made against. \n */\n host: {\n type: String\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} projectID (HTML attribute: `project-id`) Flybits project ID used to load tenant specific data. \n */\n projectID: {\n type: String,\n attribute: 'project-id'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} renderURL (HTML attribute: `render-url`) Render layer application URL. \n */\n renderURL: {\n type: String,\n attribute: 'render-url'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} refID (HTML attribute: `ref-id`) Flybits Zone Reference ID which can be found in the Experience Studio on the Concierge Management page. Every FlybitsSlot can render up to one Zone which may contain one or more Modules.\n */\n refID: {\n type: String,\n attribute: 'ref-id'\n },\n pollingEnabled: {\n type: Boolean,\n attribute: 'polling-enabled'\n },\n pollingInterval: {\n type: Number,\n attribute: 'polling-interval'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} renderMode (HTML attribute: `render-mode`) Mode setting to control automated sizing functionality. Refer to available render modes {@link Flightkit.FlybitsSlot.modes}.\n */\n renderMode: {\n type: String,\n attribute: 'render-mode'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string | HTMLElement} overlayOutlet (HTML attribute: `overlay-outlet`) FlybitsSlot elements can open {@link Flightkit.FlybitsOverlay|FlybitsOverlay} instances depending on ActionLinks that are intercepted from its internal children or externally from application logic. By default these overlays are appended to the `document.body`. This attribute allows for overriding and specifying a parent element that {@link Flightkit.FlybitsOverlay|FlybitsOverlays} are appended to if `document.body` is not preferred.\n * \n * Parent elements can be defined by either a CSS [selector string](https://developer.mozilla.org/en-US/docs/Web/API/Document_object_model/Locating_DOM_elements_using_selectors) or an [HTMLElement instance](https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement).\n * @example\n * <!-- declarative approach -->\n * <div class=\"home\">\n * <div class=\"container\"></div>\n * </div>\n * <flybits-slot ref-id=\"homepage\" overlay-outlet=\".home .container\"></flybits-slot>\n * @example \n * // imperative approach\n * const parentElem = document.createElement('div')\n * parentElem.classList.add('container');\n *\n * const slot = new FlybitsSlot();\n * slot.init({\n * refID: 'homepage',\n * overlayOutlet: parentElem\n * })\n */\n overlayOutlet: {\n type: String | HTMLElement,\n attribute: 'overlay-outlet'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {boolean} overrideOverlay (HTML attribute: `override-overlay`) By default FlybitsSlot elements will handle {@link Flightkit.ActionLink.protocol|DETAILS} and {@link Flightkit.ActionLink.protocol|CONCIERGE} Action Event types out of the box by opening them in {@link Flightkit.FlybitsOverlay|FlybitsOverlays}. However if you would like to handle these manually in your application logic, set this flag to `true`.\n */\n overrideOverlay: {\n type: Boolean,\n attribute: 'override-overlay'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {boolean} overrideURLs (HTML Attribute: `override-urls`) By default FlybitsSlot elements will handle {@link Flightkit.ActionLink.protocol|HTTPS}, {@link Flightkit.ActionLink.protocol|BROWSER}, and {@link Flightkit.ActionLink.protocol|INAPPBROWSER} Action Event types out of the box by either open a new tab/window to load the URL, or redirect the current tab/window in the case of {@link Flightkit.ActionLink.protocol|INAPPBROWSER}. However if you would like to handle these manually in your application logic, set this flag to `true`.\n */\n overrideURLs: {\n type: Boolean,\n attribute: 'override-urls'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {boolean} overrideActions (HTML Attribute: `override-actions`) By default FlybitsSlot elements will handle certain Action Event types automatically:\n * - {@link Flightkit.ActionLink.protocol|DETAILS}\n * - {@link Flightkit.ActionLink.protocol|CONCIERGE}\n * - {@link Flightkit.ActionLink.protocol|HTTPS}\n * - {@link Flightkit.ActionLink.protocol|BROWSER}\n * - {@link Flightkit.ActionLink.protocol|INAPPBROWSER}\n * \n * If you would like to handle all these manually in your application logic, set this flag to `true`.\n * > **note:** {@link Flightkit.FlybitsSlot#overrideActions|overrideActions}, {@link Flightkit.FlybitsSlot#overrideURLs|overrideURLs}, and {@link Flightkit.FlybitsSlot#overrideOverlay|overrideOverlay} are considered in a **logical OR'd** expression. Thus if {@link Flightkit.FlybitsSlot#overrideURLs|overrideURLs} was `false` but {@link Flightkit.FlybitsSlot#overrideActions|overrideActions} is `true`, FlybitsSlot will **not** automatically handle URL based Action Event links. \n * \n * > The inverse also applies, where if {@link Flightkit.FlybitsSlot#overrideURLs|overrideURLs} is `true` but {@link Flightkit.FlybitsSlot#overrideActions|overrideActions} is `false`, FlybitsSlot will again **not** automatically handle URL based Action Event links.\n */\n overrideActions: {\n type: Boolean,\n attribute: 'override-actions'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {boolean} [overlayDismissUI=false] (HTML attribute: `overlay-dismiss-ui`) By default FlybitsSlot elements will handle {@link Flightkit.ActionLink.protocol|DETAILS} and {@link Flightkit.ActionLink.protocol|CONCIERGE} Action Event types out of the box by opening them in {@link Flightkit.FlybitsOverlay|FlybitsOverlays}. The expectation is that each overlay Content will have its own overlay dismissal UI element. However if you would like a default overlay close button, set this flag to `true`.\n */\n overlayDismissUI: {\n type: Boolean,\n attribute: 'overlay-dismiss-ui'\n },\n isLoadingOpen: {\n type: Boolean,\n attribute: 'show-loading'\n },\n isErrorOpen: {\n type: Boolean,\n attribute: 'show-error'\n },\n hasLoadingSlot: {\n type: Boolean\n },\n hasErrorSlot: {\n type: Boolean\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} [logLevel=errors] Logging mode setting. By default FlybitsSlot will only output errors to the console. Changing this attribute to `verbose` will increase verbosity and output logs with much more detail for debugging purposes. All available values can be found {@link Flightkit.Logger.modes|here}.\n */\n logLevel: {\n type: String,\n attribute: 'log-level'\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} [localization=disabled] Localization control setting. By default FlybitsSlot will render english content from Flybits Experience Studio. If this attribute is set to `auto` it will try to detect the browser langauge and render corresponding localization of Flybits content if available. Alternatively if you explicitly pass the [two character locale key](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements) into this attribute (eg. en, fr, es, etc) the content will render accordingly.\n */\n localization: {\n type: String,\n },\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {string} [textDirection=unset] Manual override for global text direction. When unset, the text direction will be automatically set based on the {@link Flightkit.FlybitsSlot#localization|localization} language set. Accepted values include: `ltr`, `rtl`, and `auto`.\n */\n textDirection: {\n type: String,\n attribute: 'text-direction'\n }\n };\n \n static styles = css`\n :host {\n position: relative;\n display: block;\n }\n .flb-frame {\n width: 100%;\n height: 100%;\n border: 0;\n z-index: 1;\n }\n .slot-default, ::slotted(*){\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.2s linear 0.2s, visibility 0s linear 0.2s;\n z-index: 2;\n }\n .slot-default.open, .open::slotted(*){\n visibility: visible;\n opacity: 1;\n transition: opacity 0.2s linear 0.2s, visibility 0s linear 0s;\n }\n .overlay-loading{\n display: none;\n }\n `\n\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {external:HTMLElement} $renderFrame Iframe that is used to render Flybits content, located within a FlybitsSlot element's {@link external:ShadowDOM|Shadow DOM}.\n */\n get $renderFrame() {\n return this.renderRoot?.querySelector('.flb-frame') ?? null;\n }\n\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {external:HTMLElement} $noContentUI Registered HTMLElement to be automatically displayed when a retrieved Flybits Zone contains no content. This element is rendered outside of the {@link external:ShadowDOM|Shadow DOM} as a child of the FlybitsSlot element. \n */\n get $noContentUI() {\n const slot = this.shadowRoot.querySelector('slot[name=\"no-content\"]');\n const childElems = slot?.assignedElements({flatten: true});\n return childElems?.[0];\n }\n\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {external:HTMLElement|null} $overlayLoadingUI Clone of user defined override of default loading UI for a FlybitsOverlay. This must be set via the `overlay-loading` slot.\n */\n get $overlayLoadingUI() {\n const slot = this.shadowRoot.querySelector('slot[name=\"overlay-loading\"]');\n const childElems = slot?.assignedElements({flatten: true});\n if(childElems?.length){\n this._$overlayLoadingOverride = childElems[0];\n }\n return this._$overlayLoadingOverride;\n }\n\n /**\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @member {external:HTMLElement|null} $overlayErrorUI Clone of user defined override of default error UI for a FlybitsOverlay. This must be set via the `overlay-error` slot.\n */\n get $overlayErrorUI() {\n const slot = this.shadowRoot.querySelector('slot[name=\"overlay-error\"]');\n const childElems = slot?.assignedElements({flatten: true});\n if(childElems?.length){\n this._$overlayErrorOverride = childElems[0];\n }\n return this._$overlayErrorOverride;\n }\n\n get browserLocale(){\n var locale = navigator?.language || 'en';\n locale = locale.toLowerCase();\n if(locale.indexOf('-') > -1){\n locale = locale.split('-')[0];\n }\n return locale;\n }\n\n get resolvedLocale(){\n var retObj = {\n locale: '',\n textDirection: 'ltr'\n }\n if(this.localization === 'auto'){\n retObj.locale = this.browserLocale;\n } else if(this.localization?.length === 2){\n retObj.locale = this.localization;\n }\n switch(retObj.locale){\n case 'ar':\n case 'dv':\n case 'ff':\n case 'he':\n case 'ku':\n case 'fa':\n case 'ur':\n retObj.textDirection = 'rtl';\n break;\n }\n\n if(this.textDirection && ['ltr','rtl','auto'].indexOf(this.textDirection) > -1){\n retObj.textDirection = this.textDirection;\n }\n\n return retObj;\n }\n\n get initParams() {\n return {\n host: this.host,\n refID: this.refID,\n projectID: this.projectID\n }\n }\n\n constructor() {\n super();\n this.zone = null;\n this.pollingEnabled = false;\n this.pollingInterval = 2500;\n this.renderMode = FlybitsSlot.modes.DYNAMICHEIGHT;\n this.host = '';\n this.renderURL = cfg.RENDERHOST;\n this.refID = '';\n this.projectID = '';\n this._hasDeferredLoad = false;\n this.overlayDismissUI = false;\n this.overlayOutlet = document.body;\n this.overrideOverlay = false;\n this.overrideURLs = false;\n this.overrideActions = false;\n this._loaderStack = [];\n this.isLoadingOpen = false;\n this.isErrorOpen = false;\n this.showNoContentUI = false;\n this.hasLoadingSlot = false;\n this.hasErrorSlot = false;\n this.hasNoContentSlot = false;\n this._$overlayLoadingOverride = null;\n this._$overlayErrorOverride = null;\n this._$evtSrcCtx = this;\n this.logger = new Logger({\n mode: this.logLevel || 'errors'\n });\n this.localization = 'disabled';\n this.textDirection = null;\n }\n \n connectedCallback() {\n super.connectedCallback()\n this.frameLoadDef = new Deferred();\n this.frameLoadPromise = this.frameLoadDef.promise;\n this.detectFlybits();\n this._reboundHandleFrameEvent = this.handleFrameEvent.bind(this);\n window.addEventListener('message', this._reboundHandleFrameEvent);\n window.addEventListener('resize', this._handleWindowResize);\n this.frameLoadPromise.then(() => {\n this._handleWindowResize();\n });\n }\n \n disconnectedCallback() {\n super.disconnectedCallback()\n window.removeEventListener('message', this._reboundHandleFrameEvent);\n window.removeEventListener('resize', this._handleWindowResize);\n }\n\n /**\n * Initialization function for imperative approaches to FlybitsSlot usage. This should be invoked immediately after FlybitsSlot instantiation.\n * @memberof Flightkit.FlybitsSlot\n * @instance\n * @function init\n * @param {Object} opts Initialization object containing FlybitsSlot class properties\n * @example\n * const slot = new FlybitsSlot();\n * slot.init({\n * refID: 'homepage'\n * })\n */\n init(opts) {\n opts = opts ?? {}\n this.pollingEnabled = opts.pollingEnabled ?? this.pollingEnabled;\n this.pollingInterval = opts.pollingInterval || this.pollingInterval;\n this.host = opts.host || this.host;\n this.renderURL = opts.renderURL || this.renderURL;\n this.refID = opts.refID || this.refID;\n this.projectID = opts.projectID;\n this.overlayOutlet = opts.overlayOutlet || this.overlayOutlet;\n this.overrideOverlay = !!opts.overrideOverlay;\n this.overrideURLs = !!opts.overrideURLs;\n this.overrideActions = !!opts.overrideActions;\n this.logger.mode = this.logLevel = opts.logLevel || Logger.modes.ERRORS;\n if(opts.localization !== 'disabled'){\n const val = opts.localization?.toLowerCase();\n if(val === 'auto' || val?.length === 2){\n this.localization = val;\n }\n }\n if(opts.textDirection){\n switch(opts.textDirection){\n case 'ltr':\n case 'rtl':\n case 'auto':\n this.textDirection = opts.textDirection;\n break;\n default:\n this.logger.warn('invalid text direction specified:', opts.textDirection);\n break;\n }\n }\n }\n\n initElementMeta() {\n if(this.renderMode !== FlybitsSlot.modes.DYNAMICHEIGHT){\n return;\n }\n if(!this.refID){\n this.logger.warn('missing Zone reference ID');\n return;\n }\n if(!Flybits.Session._projectID){\n this.logger.warn('missing Flybits project ID');\n return;\n }\n var $el = this;\n this.logger.log('fetching zone metadata', Flybits.Session._projectID);\n Flybits.api.Zones.getZoneMetadata(Flybits.Session._projectID, this.refID).then(function(meta){\n $el.logger.log('set from metadata height', meta.height);\n $el._setHeight(meta.height);\n }).catch(function(e){\n $el.logger.error(e);\n });\n }\n\n attributeChangedCallback(name, _old, value) {\n super.attributeChangedCallback(name, _old, value);\n if(name === 'ref-id'){\n if((!_old && value && !this._hasDeferredLoad) ||\n (_old && value && _old !== value)){\n this.detectFlybits();\n }\n } else if(name === 'log-level'){\n this.logger.mode = value;\n }\n }\n\n /**\n * Retrieves Zone data based on specified {@link Flightkit.FlybitsSlot.refID|Zone Reference ID} and injects it into the {@link Flightkit.FlybitsSlot.$renderFrame|internal render frame}.\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @function loadZoneData\n * @returns {external:Promise} a promise that will resolve or reject after Zone data is retrieved and injected into the {@link Flightkit.FlybitsSlot.$renderFrame|internal render frame}\n */\n loadZoneData() {\n const def = new Deferred();\n const $el = this;\n if(!this.refID || this.refID === 'overlay'){\n $el._hasDeferredLoad = false;\n $el.logger.warn('no refID detected');\n return Promise.reject();\n }\n \n this.showNoContentUI = false;\n this.isErrorOpen = false;\n this.setLoading(true);\n this.logger.log('fetching zone content', this.refID);\n ZoneAPI.getZoneContent(this.refID).then(function(zone){\n $el.zone = zone;\n $el.logger.log('set height from loadzone');\n $el._setHeight(zone.height);\n\n $el._dispatchLoad(zone);\n if(!ZoneUtil.hasContent(zone) && $el.$noContentUI){\n $el.showNoContentUI = true;\n }\n\n $el.injectData(zone.toConciergeContainer($el.resolvedLocale));\n def.resolve();\n }).catch(function(e){\n $el.logger.error(e);\n $el.isErrorOpen = true;\n $el._dispatchError(e);\n def.reject(e);\n }).then(function(){\n $el._hasDeferredLoad = false;\n $el.setLoading(false)\n });\n\n return def.promise;\n }\n\n injectData(payload){\n payload = {\n flb: true,\n type: 'flb.inject',\n appid: {\n name: 'flightkit',\n version: FlybitsSlot.VERSION,\n coreVersion: Flybits?.VERSION,\n logLevel: this.logLevel\n },\n ...payload\n }\n this._framePostMessage(payload);\n }\n\n _framePostMessage(payload){\n if(this.frameLoadPromise){\n this.frameLoadPromise.then(() => {\n var $frameWindow = this.$renderFrame?.contentWindow;\n if($frameWindow){\n this.logger.log('injecting payload', payload);\n $frameWindow.postMessage(payload, this.renderURL);\n } else{\n this.logger.error('no frame window detected');\n }\n })\n } else if(this.$renderFrame?.contentWindow){\n this.$renderFrame.contentWindow.postMessage(payload, $el.renderURL);\n }\n }\n\n /**\n * Handles {@link Flightkit.ActionLink|ActionLink} instances that could have originated from other FlybitsSlot instances.\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @function handleAction\n * @param {Flightkit.ActionLink} actionLink Instance of ActionLink containing information to perform actions and/or render Content details and full Zones.\n * @returns {external:Promise} A promise resolving after action handling.\n */\n handleAction(actionLink){\n const def = new Deferred();\n const $el = this;\n if(actionLink.protocol === ActionLink.protocol.DETAILS){\n if(!actionLink.params.contentId && actionLink.data.content && actionLink.meta.contentID){\n $el.logger.error('details action missing content id', e);\n return Promise.reject();\n }\n\n if(!actionLink.data.content){\n const contentID = actionLink.params.contentId || actionLink.meta.contentID;\n this._resolveContent(contentID).then(function(content){\n $el.injectData(Zone.generateDetailsPayload(content, $el.resolvedLocale));\n def.resolve();\n }).catch(function(e){\n $el.logger.error('cannot resolve content', e);\n def.reject();\n })\n } else{\n this.injectData(Zone.generateDetailsPayload(actionLink.data.content, $el.resolvedLocale));\n def.resolve();\n }\n } else if(actionLink.protocol === ActionLink.protocol.CONCIERGE){\n if(!actionLink.params.zoneReferenceId){\n $el.logger.error('concierge action missing zone reference id', e);\n return Promise.reject();\n }\n \n this.refID = actionLink.params.zoneReferenceId;\n return this.loadZoneData();\n }\n\n return def.promise;\n }\n\n /**\n * Changes the visibility of the loading state UI.\n * @instance\n * @memberof Flightkit.FlybitsSlot\n * @function setLoading\n * @param {boolean} bool State of loading overlay\n * @returns {Flightkit.FlybitsSlot} Returns the FlybitsSlot element this function was invoked upon.\n */\n setLoading(bool){\n if(bool){\n this.logger.log('open loading ui');\n this.isLoadingOpen = true;\n this._loaderStack.push(true);\n } else if(!bool && this._loaderStack.length > 1){\n this._loaderStack.pop();\n } else if(!bool){\n this.logger.log('closing loading ui');\n this._loaderStack.pop();\n this.isLoadingOpen = false;\n }\n return this;\n }\n\n _setHeight(height){\n if(height === null || height === undefined || isNaN(height)){\n this.logger.warn('not a valid height', height);\n return;\n }\n\n if(this.renderMode === FlybitsSlot.modes.DYNAMICHEIGHT){\n this.logger.log('setting height', height);\n this.style.height = height+'px';\n }\n }\n\n _resolveContent(contentID) {\n const def = new Deferred();\n const cachedContent = contentID?ZoneAPI.getCachedContentDetails(contentID):null;\n if(cachedContent){\n return Promise.resolve(cachedContent);\n }\n\n const $el = this;\n $el.setLoading(true);\n ZoneAPI.getContentDetails(contentID).then(function(results){\n def.resolve(results);\n }).catch(function(e){\n def.reject(e);\n }).then(function(){\n $el.setLoading(false);\n });\n return def.promise;\n }\n\n /**\n * Action Events which contain an {@link Flightkit.ActionLink|ActionLink} payload that support standard DOM API methods for event listening as utilizes the native DOM element CustomEvent class.\n * @event Flightkit.FlybitsSlot#action\n * @type {external:CustomEvent}\n * @property {Flightkit.ActionLink} detail ActionLink type payload\n * @property {string} type=action\n * @example\n * const slot = new FlybitsSlot();\n * slot.addEventListener('action', function(payload){\n * const actionLink = payload.detail;\n * })\n */\n _dispatchActionLinks(actionLinkStr, metaObj) {\n const $el = this;\n const actionLink = new ActionLink(actionLinkStr);\n \n if(!this.overrideActions){\n if(actionLink.protocol === ActionLink.protocol.DETAILS && !this.overrideOverlay){\n const contentID = actionLink.params.contentId || metaObj.contentID;\n this._resolveContent(contentID).then(function(content){\n actionLink.data.content = content;\n Flightkit.outlet.openOverlay(\n actionLink, \n $el.overlayOutlet, \n $el\n );\n }).catch(function(e){\n $el.logger.error('failed to load content',e);\n });\n return;\n }\n\n if(actionLink.protocol === ActionLink.protocol.CONCIERGE && !this.overrideOverlay){\n Flightkit.outlet.openOverlay(\n actionLink, \n $el.overlayOutlet, \n $el\n );\n return;\n }\n \n if(actionLink.protocol === ActionLink.protocol.HTTPS && !this.overrideURLs){\n if(!actionLink.rawStr){\n $el.logger.error('invalid url', actionLink.rawStr)\n return;\n }\n \n window.open(actionLink.rawStr, '_blank');\n return;\n }\n \n if(actionLink.protocol === ActionLink.protocol.BROWSER && !this.overrideURLs){\n if(!actionLink.params.url){\n $el.logger.error('invalid url', actionLink.params.url)\n return;\n }\n \n window.open(actionLink.params.url, '_blank');\n return;\n }\n\n if(actionLink.protocol === ActionLink.protocol.INAPPBROWSER && !this.overrideURLs){\n if(!actionLink.params.url){\n $el.logger.error('invalid url', actionLink.params.url)\n return;\n }\n\n window.location.href = actionLink.params.url;\n return;\n }\n }\n\n const payload = actionLink.toJSON();\n if(metaObj){\n payload.meta = metaObj;\n }\n\n const evt = new CustomEvent('action', {\n detail: payload,\n bubbles: true,\n composed: true\n });\n this._$evtSrcCtx.dispatchEvent(evt);\n }\n\n /**\n * Zone Load Event \n * @event Flightkit.FlybitsSlot#zoneLoad\n * @type {external:CustomEvent}\n * @property {Object} detail Object containing event payload.\n * @property {Flybits.Zone} detail.zone Flybits Zone object containing modules and their respective content.\n * @property {string[]} detail.contentIDs An array of content IDs across all modules within the Zone.\n * @example\n * const slot = new FlybitsSlot();\n * slot.addEventListener('zoneLoad', function(payload){\n * const actionLink = payload.detail;\n * if(!payload?.contentIDs?.length){\n * // Zone has no content\n * } else if(!payload?.zone?.modules?.[1]?.content?.length){\n * // Second module has no content\n * }\n * })\n */\n _dispatchLoad(zone) {\n var cIDs = []\n zone?.modules?.forEach((m) => {\n m?.content?.forEach((c) => {\n cIDs.push(c.id);\n })\n });\n this._$evtSrcCtx.dispatchEvent(new CustomEvent('zoneLoad', {\n detail: {\n zone: zone,\n contentIDs: cIDs\n },\n bubbles: true,\n composed: true\n }))\n }\n\n /**\n * @typedef FlightkitError\n * @memberof Flightkit.FlybitsSlot\n * @type Object\n * @property {string} header Generally a short and broad error message\n * @property {string} message A more in depth explanation of the error.\n * @property {string} context This is populated if an error occurs that relates to one of the input properties of an operation and will be the property's key.\n * @property {number} code An internal error code indicating error type. This property is only populated when errors that can be discerned by the SDK occur. Errors that occur server side and cannot be discerned by the SDK will populate an HTTP status code in the `serverCode` property. For instance, if you forget to supply required property the `code` property would be populated with `Flybits.Validation.type.MISSINGARG`. On the other hand if there's a server outage, the `serverCode` would be populated with a 404 or 500.\n * @property {number} serverCode This is populated with an HTTP status code when a server side error occurs that cannot be discerned by the SDK.\n */\n /**\n * Flightkit Error Event\n * @event Flightkit.FlybitsSlot#error\n * @type {external:CustomEvent}\n * @property {Object} detail Object containing event payload.\n * @property {Flightkit.FlybitsSlot.FlightkitError[]} detail.errors List of errors\n */\n _dispatchError(validation){\n if(!validation || !(validation instanceof Flybits.Validation)){\n this.logger.error('invalid error type', validation);\n return;\n }\n\n delete validation.stacktrace;\n this._$evtSrcCtx.dispatchEvent(new CustomEvent('error', {\n detail: {\n errors: validation.errors\n },\n bubbles: true,\n composed: true\n }))\n }\n\n detectFlybits() {\n var $el = this;\n if(window.Flybits){\n CtxAPI.autoInitCtxManager();\n if(this.host){\n Flybits.cfg.HOST = this.host;\n }\n if(this.projectID){\n Flybits.Session._projectID = this.projectID;\n }\n\n if(Flybits.Session._projectID){\n this.initElementMeta();\n if(Flybits.Session.userToken){\n this.loadZoneData().catch(function(){})\n } else{\n if(!this._hasDeferredLoad){\n this._hasDeferredLoad = true;\n Flybits.Session.ready.then(function(){\n $el.loadZoneData().catch(function(){})\n })\n }\n }\n } else{\n if(!this._hasDeferredLoad){\n this._hasDeferredLoad = true;\n Flybits.Session.ready.then(function(){\n $el.loadZoneData().catch(function(){})\n })\n }\n }\n } else{\n this.logger.error('Flybits.js Core SDK not detected.');\n }\n }\n\n handleFrameEvent(payload) {\n try{\n var childContentWindow = this.$renderFrame.contentWindow;\n if(payload.source !== childContentWindow || payload.origin !== new URL(this.renderURL).origin){\n return;\n }\n\n if(payload.data && payload.data.flb){ \n var eventObj = payload?.data?.value ? JSON.parse(payload.data.value):{};\n this.logger.log('frameEvt['+this.refID+']['+payload.data.type+']', eventObj)\n if(payload.data.type === 'context'){\n CtxAPI.handleContextPayload(eventObj, this.logger);\n } else if(payload.data.type === 'action'){\n this._dispatchActionLinks(eventObj.actionlink, {\n contentID: eventObj?.contentInfo?.id\n });\n } else if(payload.data.type === 'analytics'){\n CtxAPI.handleAnalyticsPayload(eventObj, this.logger);\n } else if(payload.data.type === 'error'){\n } else if(payload.data.type === 'dismiss'){\n if(typeof this._dispatchDismiss === 'function'){\n this._dispatchDismiss();\n }\n } else if(payload.data.type === 'flb.heightupdate'){\n const heightNum = +payload.data.value;\n this.logger.log('set height from frame event', heightNum);\n this._setHeight(heightNum);\n } else{\n // not supported messages \n this.logger.warn('Message not supported', payload.data);\n }\n } else{\n // non-concierge messages \n }\n } catch(e){\n this.logger.error('Cannot parse message', e);\n }\n }\n\n _handleWindowResize = ObjUtil.debounce(function(e){\n this.injectData({\n flb: true,\n type: 'flb.inject.parent.resize',\n outer: {\n width: window.outerWidth,\n height: window.outerHeight\n },\n inner: {\n width: window.innerWidth,\n height: window.innerHeight \n },\n document: {\n width: document.documentElement.clientWidth,\n height: document.documentElement.clientHeight\n }\n });\n }.bind(this), 150)\n\n _handleFrameLoad(e) {\n this.frameLoadDef.resolve();\n }\n\n _handleLoadingSlotChange(e) {\n const childNodes = e.target.assignedNodes({\n flatten: true\n })\n this.logger.log('loading slot change', childNodes);\n if(childNodes.length){\n this.hasLoadingSlot = true;\n }\n }\n\n _handleErrorSlotChange(e) {\n const childNodes = e.target.assignedNodes({\n flatten: true\n })\n this.logger.log('error slot change', childNodes);\n if(childNodes.length){\n this.hasErrorSlot = true;\n }\n }\n\n _handleNoContentSlotChange(e) {\n const childNodes = e.target.assignedNodes({\n flatten: true\n })\n this.logger.log('no content slot change', childNodes);\n if(childNodes.length){\n this.hasNoContentSlot = true;\n }\n }\n\n _handleSlotEvent(e){\n e.preventDefault();\n e.stopPropagation();\n if(e?.type === 'reload'){\n this.loadZoneData();\n this.isErrorOpen = false;\n }\n }\n\n render() {\n return html`\n <iframe src=\"${this.renderURL}\" @load=${this._handleFrameLoad} frameborder=\"0\" class=\"flb-frame\" sandbox=\"allow-scripts allow-same-origin allow-downloads\"></iframe>\n ${this.hasLoadingSlot?'':html`\n <div class=${classMap({open: this.isLoadingOpen,'slot-default':true,'loading': true})}>\n <flybits-loading></flybits-loading>\n </div>\n `}\n ${this.hasErrorSlot?'':html`\n <div class=${classMap({open: this.isErrorOpen,'slot-default':true,'error': true})}>\n <flybits-error @reload=${this._handleSlotEvent}></flybits-error>\n </div>\n `}\n <slot class=${classMap({open: this.isLoadingOpen})} name=\"loading\" @slotchange=${this._handleLoadingSlotChange}></slot>\n <slot class=${classMap({open: this.isErrorOpen})} name=\"error\" @reload=${this._handleSlotEvent} @slotchange=${this._handleErrorSlotChange}></slot>\n <slot class='overlay-loading' name=\"overlay-loading\"></slot>\n <slot class='overlay-error' name=\"overlay-error\"></slot>\n <slot class=${classMap({open: this.showNoContentUI})} name=\"no-content\" @slotchange=${this._handleNoContentSlotChange}></slot>\n `\n }\n}\ncustomElements.define('flybits-slot', FlybitsSlot);","/*global Flybits*/\nimport { html, css } from 'lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport Zone from '../models/zone';\nimport CtxAPI from '../apis/ctx';\nimport FlybitsSlot from './flybits-slot';\nimport ObjUtil from '../utils/obj';\n\n/**\n * @class FlybitsOverlay\n * @memberof Flightkit\n * @extends Flightkit.FlybitsSlot\n */\nexport default class FlybitsOverlay extends FlybitsSlot {\n static properties = {\n dismissUI: {\n type: Boolean,\n attribute: 'dismiss-ui'\n }\n }\n\n static styles = css`\n :host {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n z-index: 1000000;\n }\n .flb-frame {\n width: 100%;\n height: 100%;\n border: 0;\n z-index: 1;\n }\n .dismiss.btn{\n position: fixed;\n top: 25px;\n right: 25px;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n line-height: 40px;\n text-align: center;\n font-size: 25px;\n cursor: pointer;\n background-color: white;\n }\n .dismiss.btn:hover{\n background-color: whitesmoke;\n transition: background-color 0.1s linear; \n }\n .slot-default flybits-loading{\n background-color: rgba(0,0,0,0.05);\n }\n .slot-default,::slotted(:first-child){\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n visibility: hidden;\n opacity: 0;\n transition: opacity 0.2s linear 0.2s, visibility 0s linear 0.2s;\n z-index: 2;\n }\n .slot-default.open,.open::slotted(:first-child) {\n visibility: visible;\n opacity: 1;\n transition: opacity 0.2s linear 0.2s, visibility 0s linear 0s;\n }\n `\n\n constructor(){\n super();\n this.renderMode = FlybitsSlot.modes.FULLHEIGHT;\n this.refID = 'overlay';\n this.uid = ObjUtil.guid(2);\n this.dismissUI = false;\n }\n\n connectedCallback() {\n super.connectedCallback()\n this.setLoading(true);\n const $el = this;\n this.frameLoadPromise.then(function(){\n $el.setLoading(false);\n })\n\n if(window.Flybits?.evt){\n Flybits.evt.on(Flybits.evt.type.SESSIONEND+'.overlay-'+this.uid, function(){\n $el._dispatchDismiss();\n });\n }\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n if(window.Flybits?.evt){\n Flybits.evt.off(Flybits.evt.type.SESSIONEND+'.overlay-'+this.uid);\n }\n }\n \n _dispatchDismiss() {\n this.remove();\n }\n\n _adoptSlotContext(slot){\n if(!slot || !(slot instanceof FlybitsSlot)){\n this.logger.error('invalid argument: can only adopt the context of FlybitsSlot instances');\n return;\n }\n\n if(slot?.renderURL){\n this.renderURL = slot.renderURL;\n }\n if(slot?.overlayOutlet){\n this.overlayOutlet = slot.overlayOutlet;\n }\n if(slot?.overlayDismissUI){\n this.overlayDismissUI = slot.overlayDismissUI;\n }\n if(slot?.logger?.mode){\n this.logger.mode = slot.logger.mode;\n }\n if(slot?.logLevel){\n this.logLevel = slot.logLevel;\n }\n if(Object.prototype.hasOwnProperty.call(slot, 'dismissUI')){\n this.dismissUI = !!slot.dismissUI;\n }\n if(slot?.$overlayLoadingUI){\n slot.$overlayLoadingUI.setAttribute('slot', 'loading');\n this.append(slot.$overlayLoadingUI);\n }\n if(slot?.$overlayErrorUI){\n slot.$overlayErrorUI.setAttribute('slot', 'error');\n this.append(slot.$overlayErrorUI);\n }\n if(slot?.localization){\n this.localization = slot.localization;\n }\n if(slot?.textDirection){\n this.textDirection = slot.textDirection;\n }\n if(slot?._$evtSrcCtx){\n this._$evtSrcCtx = slot?._$evtSrcCtx;\n }\n if(slot?.overrideURLs){\n this.overrideURLs = slot?.overrideURLs;\n }\n }\n\n /**\n * \n * @instance\n * @memberof Flightkit.FlybitsOverlay\n * @function injectContent\n * @param {external:FlybitsContent} content \n */\n injectContent(content) {\n this.injectData(Zone.generateOverlayPayload(content, this.resolvedLocale));\n }\n\n detectFlybits() {\n CtxAPI.autoInitCtxManager();\n var $el = this;\n\n if(window.Flybits){\n if(this.host){\n Flybits.cfg.HOST = this.host;\n }\n if(this.projectID){\n Flybits.Session._projectID = this.projectID;\n }\n } else{\n this.logger.error('Flybits.js Core SDK not detected.');\n }\n }\n\n render() {\n let $dismissUI = html``;\n if(this.dismissUI){\n $dismissUI = html`\n <div class=\"dismiss btn\" @click=${this._dispatchDismiss}>×</div>\n `;\n }\n return html`\n ${$dismissUI}\n <iframe src=\"${this.renderURL}\" @load=${this._handleFrameLoad} frameborder=\"0\" class=\"flb-frame\" sandbox=\"allow-scripts allow-same-origin allow-downloads\"></iframe>\n ${this.hasLoadingSlot?'':html`\n <div class=${classMap({open: this.isLoadingOpen,'slot-default':true,'loading': true})}>\n <flybits-loading></flybits-loading>\n </div>\n `}\n ${this.hasErrorSlot?'':html`\n <div class=${classMap({open: this.isErrorOpen,'slot-default':true,'error': true})}>\n <flybits-error @reload=${this._handleSlotEvent}></flybits-error>\n </div>\n `}\n <slot class=${classMap({open: this.isLoadingOpen})} name=\"loading\" @slotchange=${this._handleLoadingSlotChange}></slot>\n <slot class=${classMap({open: this.isErrorOpen})} name=\"error\" @reload=${this._handleSlotEvent} @slotchange=${this._handleErrorSlotChange}></slot>\n `\n }\n}\ncustomElements.define('flybits-overlay', FlybitsOverlay);","/*global Flybits, Flightkit, document*/\nimport { html, css, LitElement } from 'lit';\n\n/**\n * @class FlybitsLoading\n * @classdesc A default loading UI for FlybitsSlot components.\n * @memberof Flightkit\n * @extends external:LitElement\n * @example \n * <!-- declarative approach -->\n * <flybits-slot ref-id=\"homepage\">\n * <flybits-loading slot=\"loading\"></flybits-loading>\n * </flybits-slot>\n */\nexport default class FlybitsLoading extends LitElement {\n\n static properties = {\n };\n \n static styles = css`\n :host {\n position: relative;\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n align-content: center;\n background-color: rgba(255,255,255,0.3);\n }\n :host svg{\n opacity: 0.7;\n }\n `\n\n constructor() {\n super();\n }\n \n connectedCallback() {\n super.connectedCallback()\n }\n \n disconnectedCallback() {\n super.disconnectedCallback()\n }\n\n render() {\n return html`\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"margin: auto; background: transparent; display: block; shape-rendering: auto;\" width=\"100px\" height=\"100px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <circle cx=\"84\" cy=\"50\" r=\"10\" fill=\"#292664\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"0.4807692307692307s\" calcMode=\"spline\" keyTimes=\"0;1\" values=\"10;0\" keySplines=\"0 0.5 0.5 1\" begin=\"0s\"></animate>\n <animate attributeName=\"fill\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"discrete\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"#292664;#b5ccf1;#94a9ce;#667395;#292664\" begin=\"0s\"></animate>\n </circle><circle cx=\"16\" cy=\"50\" r=\"10\" fill=\"#292664\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"0;0;10;10;10\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"0s\"></animate>\n <animate attributeName=\"cx\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"16;16;16;50;84\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"0s\"></animate>\n </circle><circle cx=\"50\" cy=\"50\" r=\"10\" fill=\"#667395\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"0;0;10;10;10\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-0.4807692307692307s\"></animate>\n <animate attributeName=\"cx\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"16;16;16;50;84\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-0.4807692307692307s\"></animate>\n </circle><circle cx=\"84\" cy=\"50\" r=\"10\" fill=\"#94a9ce\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"0;0;10;10;10\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-0.9615384615384615s\"></animate>\n <animate attributeName=\"cx\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"16;16;16;50;84\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-0.9615384615384615s\"></animate>\n </circle><circle cx=\"16\" cy=\"50\" r=\"10\" fill=\"#b5ccf1\">\n <animate attributeName=\"r\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"0;0;10;10;10\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-1.4423076923076923s\"></animate>\n <animate attributeName=\"cx\" repeatCount=\"indefinite\" dur=\"1.923076923076923s\" calcMode=\"spline\" keyTimes=\"0;0.25;0.5;0.75;1\" values=\"16;16;16;50;84\" keySplines=\"0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1;0 0.5 0.5 1\" begin=\"-1.4423076923076923s\"></animate>\n </circle>\n </svg>\n `\n }\n}\ncustomElements.define('flybits-loading', FlybitsLoading);","/*global Flybits, Flightkit, document*/\nimport { html, css, LitElement } from 'lit';\n\n/**\n * @class FlybitsError\n * @classdesc A default error UI for FlybitsSlot components.\n * @memberof Flightkit\n * @extends external:LitElement\n * @example \n * <!-- declarative approach -->\n * <flybits-slot ref-id=\"homepage\">\n * <flybits-error slot=\"error\"></flybits-error>\n * </flybits-slot>\n */\nexport default class FlybitsError extends LitElement {\n\n static properties = {\n };\n \n static styles = css`\n :host {\n position: relative;\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n align-content: center;\n background-color: rgba(255,255,255,0.8);\n }\n .inner-wrap{\n text-align: center;\n }\n .msg{\n display: block;\n font-weight: bold;\n font-size: 16px;\n margin-bottom: 10px;\n }\n .reload-trigger{\n display: inline-block;\n font-size: 14px;\n border-radius: 20px;\n min-width: 100px;\n background-color: #3258E9;\n color: white;\n text-align: center;\n line-height: 30px;\n cursor: pointer;\n user-select: none;\n }\n .reload-trigger:hover{\n background-color: #0c94f2;\n }\n `\n\n constructor() {\n super();\n }\n \n connectedCallback() {\n super.connectedCallback()\n }\n \n disconnectedCallback() {\n super.disconnectedCallback()\n }\n\n emitReload() {\n this.dispatchEvent(new CustomEvent('reload', {\n bubbles: true\n }))\n }\n\n render() {\n return html`\n <div class=\"inner-wrap\">\n <div class=\"msg\">Sorry, something went wrong.</div>\n <div class=\"reload-trigger\" @click=\"${this.emitReload}\">Try again</div>\n </div>\n `\n }\n}\ncustomElements.define('flybits-error', FlybitsError);","import FlybitsOverlay from \"../components/flybits-overlay\";\nimport ActionLink from \"../models/actionLink\";\n\nconst OutletManager = {\n $overlay: null,\n /**\n * \n * @param {string} actionLink Action Link protocol string\n * @param {HTMLElement|string} $outlet Either an HTML element to inject the outlet into or a query selector string by which to query the HTML element.\n * @param {Object} parent Parent FlybitsSlot instance to align overlay attributes to.\n * @returns {undefined}\n */\n openOverlay: function(actionLink, $outlet, parent){\n if(!this.$overlay){\n this.$overlay = new FlybitsOverlay();\n }\n\n if(actionLink.protocol === ActionLink.protocol.DETAILS && !actionLink.data.content){\n this.$overlay.logger.error('no content details to display')\n return;\n }\n\n if(actionLink.protocol === ActionLink.protocol.CONCIERGE && !actionLink?.params?.zoneReferenceId){\n this.$overlay.logger.error('no zone reference ID')\n return;\n }\n \n const existingLoadingUI = this.$overlay.querySelector('[slot=\"loading\"]');\n if(existingLoadingUI){\n existingLoadingUI.remove();\n }\n\n const existingErrorUI = this.$overlay.querySelector('[slot=\"error\"]');\n if(existingErrorUI){\n existingErrorUI.remove();\n }\n\n this.$overlay._adoptSlotContext(parent);\n\n var $outletEl = $outlet;\n if(typeof $outlet === 'string'){\n $outletEl = document.querySelector($outlet);\n }\n\n if(!$outletEl){\n this.$overlay.logger.error('invalid outlet', $outlet)\n return;\n }\n $outletEl.append(this.$overlay);\n\n if(actionLink.protocol === ActionLink.protocol.DETAILS){\n this.$overlay.injectContent(actionLink.data.content);\n } else if(actionLink.protocol === ActionLink.protocol.CONCIERGE){\n this.$overlay.handleAction(actionLink);\n } else {\n this.$overlay.logger.error('ActionLink type not yet supported in overlay', actionLink.rawStr);\n }\n }\n};\n\nexport default OutletManager;","import FlybitsSlot from \"../components/flybits-slot\";\nimport FlybitsOverlay from \"../components/flybits-overlay\";\nimport FlybitsLoading from \"../components/flybits-loading\";\nimport FlybitsError from \"../components/flybits-error\";\nimport ActionLink from \"../models/actionLink\";\nimport OutletManager from \"./outletManager\";\nimport cfg from '../../package.json';\n\n/**\n * Base CustomElement with reactive properties and internal state.\n * @external LitElement\n * @see {@link https://lit.dev/docs/api/LitElement/|LitElement Definition}\n * @see {@link https://lit.dev/|Lit library}\n */\n\n/**\n * Native DOM element event with custom data payloads\n * @external CustomEvent\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent|CustomEvent Definition}\n */\n\n/**\n * Native DOM element\n * @external HTMLElement\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement|HTMLElement Definition}\n */\n\n/**\n * Encapsulated DOM tree within a native Custom Element.\n * @external ShadowDOM\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_shadow_DOM|Using Shadow DOM}\n */\n\n/**\n * ES6 Promise object.\n * @external Promise\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise|Promise API}\n * @see {@link http://www.ecma-international.org/ecma-262/6.0/#sec-promise-objects|Promise spec}\n */\n\n/**\n * Flybits Content Instance\n * @external FlybitsContent\n * @see {@link https://js.flybits.app/docs/sdk/latest/Flybits.Content.html|Flybits Content Instance Definition}\n */\n\n/**\n * @member {string} VERSION Flightkit library semantic version string.\n * @memberof Flightkit\n * @static\n * @constant\n */\nconst VERSION = cfg.version;\n\n/**\n * This is the root namespace for the Flighkit SDK. This is accessible from the `window` object.\n * @namespace\n */\nconst Flightkit = {\n FlybitsSlot: FlybitsSlot,\n outlet: OutletManager,\n FlybitsOverlay: FlybitsOverlay,\n ActionLink: ActionLink,\n FlybitsLoading: FlybitsLoading,\n FlybitsError: FlybitsError,\n VERSION: VERSION\n};\n\nif(typeof window === 'object' && typeof window.Flightkit !== 'object'){\n window.Flightkit = Flightkit;\n}\n\n/**\n * @module flightkit\n * @desc This is the main Flightkit module which exports named values so you may import them as follows:\n * ```\n * import { FlybitsSlot, FlybitsOverlay, FlybitsLoading, FlybitsError, ActionLink, OutletManager } from 'flightkit'\n * ```\n */\nexport {\n FlybitsSlot,\n FlybitsOverlay,\n FlybitsLoading,\n FlybitsError,\n ActionLink,\n OutletManager,\n VERSION\n}"],"names":["t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","prototype","CSSStyleSheet","s","Symbol","o","WeakMap","n$2","n","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","get","replaceSync","set","toString","i","reduce","c","cssRules","r","is","defineProperty","getOwnPropertyDescriptor","h","getOwnPropertyNames","getOwnPropertySymbols","getPrototypeOf","Object","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","b","attribute","type","String","converter","reflect","useDefault","hasChanged","metadata","litPropertyMetadata","y$1","y","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","hasOwnProperty","create","wrapped","elementProperties","noAccessor","getPropertyDescriptor","call","requestUpdate","configurable","enumerable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$ET","removeAttribute","_$Ej","hasAttribute","C","_$EP","has","_$Eq","reject","scheduleUpdate","performUpdate","shouldUpdate","willUpdate","hostUpdate","update","_$EM","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","v","_","m","RegExp","g","$","x","_$litType$","strings","values","T","for","E","A","createTreeWalker","P","V","lastIndex","exec","test","startsWith","N","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","H","I","L","k","tagName","append","data","indexOf","innerHTML","S","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","M","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","R","nextSibling","z","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","iterator","O","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","_$Ct","_$Ci","filter","join","st","nt","classList","cfg$1","Deferred","def","promise","resolve","then","bind","catch","coerceTypes","obj","protocolDef","retObj","key","val","protocolObj","default","ActionLink","static","DETAILS","INAPPBROWSER","BROWSER","HTTPS","PHONE","APP","CONCIERGE","UNIVERSAL","MAIL","CUSTOM","details","contentId","overlay","title","web","url","browser","https","phone","phoneNumber","app","concierge","container","zoneReferenceId","style","universalLink","ios","android","mail","sendTo","subject","body","cc","bcc","custom","linkStr","rawStr","protocol","value","protoValue","params","fromLink","_parseParams","valueStr","paramIndices","idx","sort","protocolStr","substring","PROTOCOLDEFS","parsedURL","URL","match","fromEntries","searchParams","entries","console","warn","paramObj","toJSON","ZoneAPI","cachedContent","getCachedContentDetails","contentID","getContentDetails","api","Flybits","Content","res","result","id","getZoneContent","refID","contentMap","Zones","getByReferenceId","zoneConfig","zone","modules","module","Validation","addError","code","NOTFOUND","context","s4","floor","ObjUtil","guid","tuples","str","getByStr","keyStr","aKeys","replace","setByStr","removeObject","arr","findCallback","objs","splice","debounce","func","wait","immediate","timeout","args","callNow","clearTimeout","setTimeout","apply","extend","isMergeableObject","cloneIfNecessary","optionsArgument","clone","deepmerge","defaultArrayMerge","target","source","destination","array","arrayMerge","mergeObject","all","prev","next","Zone","generateOverlayPayload","resolvedLocale","tmpZone","referenceID","tmpModule","Module","layout","payload","toConciergeContainer","containers","uiTemplate","detailsUI","layoutHTML","styleCSSURL","styleStr","styleCSS","generateDetailsPayload","CtxAPI","_deferredCtxInit","autoInitCtxManager","Session","ready","window","Manager","isReporting","reportDelay","Cfg","initialize","handleContextPayload","logger","ctxRep","pluginId","cleansedValueObj","cleansedKeyStr","replaceAll","reportCtx","error","handleAnalyticsPayload","contentInfo","component","analytics","reportContentID","actions","COMPONENTENGAGED","compID","compId","Logger","VERBOSE","ERRORS","SILENT","opts","prefix","now","Date","getHours","getMinutes","getSeconds","getMilliseconds","performance","log","modes","ZoneUtil","FlybitsSlot","VERSION","pkg","FIXEDHEIGHT","DYNAMICHEIGHT","projectID","renderURL","pollingEnabled","pollingInterval","renderMode","overlayOutlet","overrideOverlay","overrideURLs","overrideActions","overlayDismissUI","isLoadingOpen","isErrorOpen","hasLoadingSlot","hasErrorSlot","logLevel","localization","textDirection","css","$renderFrame","querySelector","$noContentUI","slot","childElems","assignedElements","flatten","$overlayLoadingUI","_$overlayLoadingOverride","$overlayErrorUI","_$overlayErrorOverride","browserLocale","locale","navigator","language","initParams","cfg","_hasDeferredLoad","_loaderStack","showNoContentUI","hasNoContentSlot","_$evtSrcCtx","frameLoadDef","frameLoadPromise","detectFlybits","_reboundHandleFrameEvent","handleFrameEvent","_handleWindowResize","init","initElementMeta","_projectID","$el","getZoneMetadata","meta","height","_setHeight","_old","loadZoneData","setLoading","_dispatchLoad","injectData","_dispatchError","flb","appid","version","coreVersion","_framePostMessage","$frameWindow","contentWindow","postMessage","handleAction","actionLink","_resolveContent","bool","pop","isNaN","results","_dispatchActionLinks","actionLinkStr","metaObj","Flightkit","outlet","openOverlay","open","location","href","evt","CustomEvent","detail","bubbles","composed","dispatchEvent","cIDs","contentIDs","validation","stacktrace","errors","HOST","userToken","childContentWindow","origin","eventObj","actionlink","_dispatchDismiss","heightNum","outer","width","outerWidth","outerHeight","inner","innerWidth","innerHeight","documentElement","clientWidth","clientHeight","_handleFrameLoad","_handleLoadingSlotChange","assignedNodes","_handleErrorSlotChange","_handleNoContentSlotChange","_handleSlotEvent","preventDefault","stopPropagation","html","classMap","loading","customElements","define","FlybitsOverlay","dismissUI","FULLHEIGHT","uid","on","SESSIONEND","off","_adoptSlotContext","injectContent","$dismissUI","FlybitsLoading","FlybitsError","emitReload","OutletManager","$overlay","$outlet","parent","existingLoadingUI","existingErrorUI","$outletEl"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "flightkit",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.1.0-rc.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/flightkit.js",
|
|
6
6
|
"scripts": {
|
|
@@ -22,23 +22,21 @@
|
|
|
22
22
|
],
|
|
23
23
|
"license": "Apache-2.0",
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"lit": "^3.3.
|
|
25
|
+
"lit": "^3.3.2"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@playwright/test": "^1.
|
|
28
|
+
"@playwright/test": "^1.58.2",
|
|
29
29
|
"@rollup/plugin-json": "^6.1.0",
|
|
30
|
-
"@rollup/plugin-node-resolve": "^16.0.
|
|
30
|
+
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
31
31
|
"@rollup/plugin-terser": "^0.4.4",
|
|
32
|
-
"@vitest/coverage-v8": "^
|
|
33
|
-
"browser-sync": "^3.0.
|
|
34
|
-
"del": "^6.1.1",
|
|
32
|
+
"@vitest/coverage-v8": "^4.0.18",
|
|
33
|
+
"browser-sync": "^3.0.4",
|
|
35
34
|
"docdash": "^2.0.2",
|
|
36
35
|
"git-rev-sync": "^3.0.2",
|
|
37
|
-
"gulp": "^5.0.
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"vitest": "^3.2.4"
|
|
36
|
+
"gulp": "^5.0.1",
|
|
37
|
+
"jsdoc": "^4.0.5",
|
|
38
|
+
"jsdom": "^28.0.0",
|
|
39
|
+
"rollup": "^4.57.1",
|
|
40
|
+
"vitest": "^4.0.18"
|
|
43
41
|
}
|
|
44
42
|
}
|