{"version":3,"file":"banners.mjs","names":["s","n","s","t","s","e","i","s","t","e","t","c","t","t","e","s","o","n","r","i","S","c","i","e","r","h","o","n","a","c","l","p","d","u","f","y","b","t","s","s","i","h","r","t","t","e","s","o","n","r","i","S","c","i","e","h","r","o","n","a","c","l","p","d","u","f","b","y","t","s","t","i","s","o","n","r","t","e","r","o","o","t","e","t"],"sources":["../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/context-request-event.js","../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/create-context.js","../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/controllers/context-consumer.js","../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/value-notifier.js","../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/controllers/context-provider.js","../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/decorators/provide.js","../node_modules/.pnpm/@lit+context@1.1.6/node_modules/@lit/context/lib/decorators/consume.js","../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/css-tag.js","../node_modules/.pnpm/@lit+reactive-element@2.0.4/node_modules/@lit/reactive-element/reactive-element.js","../node_modules/.pnpm/@lit+task@1.0.3/node_modules/@lit/task/task.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/reactive-element.js","../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js","../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.js","../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/if-defined.js","../src/errors.ts","../src/user-id.ts","../src/auction.ts","../src/mixin.ts","../src/translations.ts","../src/template.ts","../src/visibility.ts","../src/index.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s extends Event{constructor(s,t,e,o){super(\"context-request\",{bubbles:!0,composed:!0}),this.context=s,this.contextTarget=t,this.callback=e,this.subscribe=o??!1}}export{s as ContextRequestEvent};\n//# sourceMappingURL=context-request-event.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nfunction n(n){return n}export{n as createContext};\n//# sourceMappingURL=create-context.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s{constructor(t,s,i,h){if(this.subscribe=!1,this.provided=!1,this.value=void 0,this.t=(t,s)=>{this.unsubscribe&&(this.unsubscribe!==s&&(this.provided=!1,this.unsubscribe()),this.subscribe||this.unsubscribe()),this.value=t,this.host.requestUpdate(),this.provided&&!this.subscribe||(this.provided=!0,this.callback&&this.callback(t,s)),this.unsubscribe=s},this.host=t,void 0!==s.context){const t=s;this.context=t.context,this.callback=t.callback,this.subscribe=t.subscribe??!1}else this.context=s,this.callback=i,this.subscribe=h??!1;this.host.addController(this)}hostConnected(){this.dispatchRequest()}hostDisconnected(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=void 0)}dispatchRequest(){this.host.dispatchEvent(new t(this.context,this.host,this.t,this.subscribe))}}export{s as ContextConsumer};\n//# sourceMappingURL=context-consumer.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextProvider as t}from\"../controllers/context-provider.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e({context:e}){return(n,i)=>{const r=new WeakMap;if(\"object\"==typeof i)return{get(){return n.get.call(this)},set(t){return r.get(this).setValue(t),n.set.call(this,t)},init(n){return r.set(this,new t(this,{context:e,initialValue:n})),n}};{n.constructor.addInitializer((n=>{r.set(n,new t(n,{context:e}))}));const o=Object.getOwnPropertyDescriptor(n,i);let s;if(void 0===o){const t=new WeakMap;s={get(){return t.get(this)},set(e){r.get(this).setValue(e),t.set(this,e)},configurable:!0,enumerable:!0}}else{const t=o.set;s={...o,set(e){r.get(this).setValue(e),t?.call(this,e)}}}return void Object.defineProperty(n,i,s)}}}export{e as provide};\n//# sourceMappingURL=provide.js.map\n","import{ContextConsumer as t}from\"../controllers/context-consumer.js\";\n/**\n * @license\n * Copyright 2022 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function c({context:c,subscribe:e}){return(o,n)=>{\"object\"==typeof n?n.addInitializer((function(){new t(this,{context:c,callback:t=>{o.set.call(this,t)},subscribe:e})})):o.constructor.addInitializer((o=>{new t(o,{context:c,callback:t=>{o[n]=t},subscribe:e})}))}}export{c as consume};\n//# sourceMappingURL=consume.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$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)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){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)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}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._$EU()}catch(s){throw t=!1,this._$EU(),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)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","import{notEqual as t}from\"@lit/reactive-element\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s={INITIAL:0,PENDING:1,COMPLETE:2,ERROR:3},i=Symbol();class h{get taskComplete(){return this.t||(1===this.i?this.t=new Promise(((t,s)=>{this.o=t,this.h=s})):3===this.i?this.t=Promise.reject(this.l):this.t=Promise.resolve(this.u)),this.t}constructor(t,s,i){this.p=0,this.i=0,(this._=t).addController(this);const h=\"object\"==typeof s?s:{task:s,args:i};this.v=h.task,this.j=h.args,this.m=h.argsEqual??r,this.k=h.onComplete,this.A=h.onError,this.autoRun=h.autoRun??!0,\"initialValue\"in h&&(this.u=h.initialValue,this.i=2,this.O=this.T?.())}hostUpdate(){!0===this.autoRun&&this.S()}hostUpdated(){\"afterUpdate\"===this.autoRun&&this.S()}T(){if(void 0===this.j)return;const t=this.j();if(!Array.isArray(t))throw Error(\"The args function must return an array\");return t}async S(){const t=this.T(),s=this.O;this.O=t,t===s||void 0===t||void 0!==s&&this.m(s,t)||await this.run(t)}async run(t){let s,h;t??=this.T(),this.O=t,1===this.i?this.q?.abort():(this.t=void 0,this.o=void 0,this.h=void 0),this.i=1,\"afterUpdate\"===this.autoRun?queueMicrotask((()=>this._.requestUpdate())):this._.requestUpdate();const r=++this.p;this.q=new AbortController;let e=!1;try{s=await this.v(t,{signal:this.q.signal})}catch(t){e=!0,h=t}if(this.p===r){if(s===i)this.i=0;else{if(!1===e){try{this.k?.(s)}catch{}this.i=2,this.o?.(s)}else{try{this.A?.(h)}catch{}this.i=3,this.h?.(h)}this.u=s,this.l=h}this._.requestUpdate()}}abort(t){1===this.i&&this.q?.abort(t)}get value(){return this.u}get error(){return this.l}get status(){return this.i}render(t){switch(this.i){case 0:return t.initial?.();case 1:return t.pending?.();case 2:return t.complete?.(this.value);case 3:return t.error?.(this.error);default:throw Error(\"Unexpected status: \"+this.i)}}}const r=(s,i)=>s===i||s.length===i.length&&s.every(((s,h)=>!t(s,i[h])));export{h as Task,s as TaskStatus,i as initialState,r as shallowArrayEquals};\n//# sourceMappingURL=task.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,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;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,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.1\");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!==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.1\");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.1\");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=t=>(e,o)=>{void 0!==o?o.addInitializer((()=>{customElements.define(t,e)})):customElements.define(t,e)};export{t as customElement};\n//# sourceMappingURL=custom-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","export class TopsortRequestError extends Error {\n  readonly name: string;\n  readonly status: number;\n  constructor(message: string, status: number) {\n    super(message);\n    this.name = \"TopsortRequestError\";\n    this.status = status;\n  }\n\n  static isTopsortRequestError(error: Error): error is TopsortRequestError {\n    return error.name === \"TopsortRequestError\";\n  }\n}\n\nexport class TopsortConfigurationError extends Error {\n  readonly name: string;\n  readonly slotId?: string;\n  readonly apiKey?: string;\n  constructor(apiKey?: string, slotId?: string) {\n    let message = \"Missing \";\n    if (!slotId && !apiKey) {\n      message += \"API Key and Slot ID\";\n    } else if (!slotId) {\n      message += \"Slot ID\";\n    } else if (!apiKey) {\n      message += \"API Key\";\n    }\n    super(message);\n    this.name = \"TopsortConfigurationError\";\n  }\n\n  static isTopsortConfigurationError(error: Error): error is TopsortConfigurationError {\n    return error.name === \"TopsortConfigurationError\";\n  }\n}\n","/**\n * Gets the opaque user ID for auction requests\n * Uses analytics.js getUserId function if available\n */\n\n/**\n * Gets the opaque user ID to use for auctions\n * Calls window.TS.getUserId() which is provided by analytics.js\n * Returns undefined if analytics.js is not loaded or getUserId is not available\n */\nexport function getOpaqueUserId(): string | undefined {\n  // Use getUserId from analytics.js if available\n  if (window.TS?.getUserId && typeof window.TS.getUserId === \"function\") {\n    return window.TS.getUserId();\n  }\n\n  // Analytics.js not loaded yet or getUserId not available\n  return undefined;\n}\n","import { TopsortRequestError } from \"./errors\";\nimport type { Auction, Banner } from \"./types\";\nimport { getOpaqueUserId } from \"./user-id\";\n\nexport const getDeviceType = (): \"mobile\" | \"desktop\" => {\n  const ua = navigator.userAgent;\n  if (/(tablet|ipad|playbook|silk)|(android(?!.*mobi))/i.test(ua)) {\n    //return \"tablet\";\n    return \"mobile\";\n  }\n  if (\n    /Mobile|iP(hone|od)|Android|BlackBerry|IEMobile|Kindle|Silk-Accelerated|(hpw|web)OS|Opera M(obi|ini)/.test(\n      ua,\n    )\n  ) {\n    return \"mobile\";\n  }\n  return \"desktop\";\n};\n\ninterface AuctionOptions {\n  signal: AbortSignal;\n  logError: (error: unknown) => void;\n}\n\nexport async function runAuction(\n  auction: Auction,\n  { signal, logError }: AuctionOptions,\n): Promise<Banner[]> {\n  const { device } = auction;\n  const token = window.TS.token;\n  const url = window.TS.url || \"https://api.topsort.com\";\n\n  const opaqueUserId = getOpaqueUserId();\n  if (opaqueUserId) {\n    auction.opaqueUserId = opaqueUserId;\n  }\n\n  const res = await fetch(new URL(`${url}/v2/auctions`), {\n    method: \"POST\",\n    mode: \"cors\",\n    headers: {\n      Authorization: `Bearer ${token}`,\n      \"Content-Type\": \"application/json\",\n      \"X-UA\": `topsort/banners-${import.meta.env.PACKAGE_VERSION} (${device})`,\n    },\n    body: JSON.stringify({\n      auctions: [auction],\n    }),\n    signal,\n  });\n  if (!res.ok) {\n    const error = (await res.json().catch((): { message?: string } => ({}))) as {\n      message?: string;\n    };\n    logError(error);\n    throw new TopsortRequestError(error.message ?? `HTTP ${res.status}`, res.status);\n  }\n  const data = await res.json();\n  const result = data.results[0];\n  if (!result) throw new TopsortRequestError(\"No auction results\", res.status);\n  if (result.error) {\n    logError(result.error);\n    throw new Error(result.error);\n  }\n  return result.winners;\n}\n","import type { LitElement } from \"lit\";\nimport { property } from \"lit/decorators.js\";\nimport { getDeviceType } from \"./auction\";\nimport type { Auction } from \"./types\";\n\n// biome-ignore lint/suspicious/noExplicitAny: We need to use `any` here\ntype Constructor<T> = new (...args: any[]) => T;\n\nexport declare class BannerComponentInterface {\n  slotId: string;\n  width: number;\n  height: number;\n  categoryId?: string;\n  categoryIds?: string;\n  categoryDisjunctions?: string;\n  searchQuery?: string;\n  location?: string;\n  newTab: boolean;\n\n  emitEvent(status: string): void;\n  buildAuction(slots: number): Auction;\n}\n\nexport const BannerComponent = <T extends Constructor<LitElement>>(Base: T) => {\n  class BannerComponent extends Base {\n    @property({ type: Number })\n    readonly width: number = 0;\n\n    @property({ type: Number })\n    readonly height: number = 0;\n\n    @property({ attribute: \"id\", type: String })\n    readonly slotId: string = \"\";\n\n    @property({ attribute: \"category-id\", type: String })\n    readonly categoryId?: string;\n\n    @property({ attribute: \"category-ids\", type: String })\n    readonly categoryIds?: string;\n\n    @property({ attribute: \"category-disjunctions\", type: String })\n    readonly categoryDisjunctions?: string;\n\n    @property({ attribute: \"search-query\", type: String })\n    readonly searchQuery?: string;\n\n    @property({ attribute: \"location\", type: String })\n    readonly location?: string;\n\n    @property({ attribute: \"new-tab\", type: Boolean })\n    readonly newTab: boolean = false;\n\n    buildAuction(slots: number): Auction {\n      const device = getDeviceType();\n      const auction: Auction = {\n        type: \"banners\",\n        slots: slots,\n        device,\n        slotId: this.slotId,\n      };\n      if (this.categoryId) {\n        auction.category = {\n          id: this.categoryId,\n        };\n      } else if (this.categoryIds) {\n        auction.category = {\n          ids: this.categoryIds.split(\",\").map((item) => item.trim()),\n        };\n      } else if (this.categoryDisjunctions) {\n        auction.category = {\n          disjunctions: [this.categoryDisjunctions.split(\",\").map((item) => item.trim())],\n        };\n      }\n      if (this.searchQuery) {\n        auction.searchQuery = this.searchQuery;\n      }\n      if (this.location) {\n        auction.geoTargeting = {\n          location: this.location,\n        };\n      }\n      return auction;\n    }\n\n    emitEvent(status: string) {\n      const event = new CustomEvent(\"statechange\", {\n        detail: { slotId: this.slotId, status },\n        bubbles: true,\n        composed: true,\n      });\n      this.dispatchEvent(event);\n    }\n  }\n  return BannerComponent as Constructor<BannerComponentInterface> & T;\n};\n","/**\n * Derive a content-field prefix from a 2-part locale code.\n * Accepts both `en-US` (BCP-47) and `en_US` (POSIX/Java) separators.\n * `en-US` → `enUS`, `pt_BR` → `ptBR`. Returns `\"\"` for empty input.\n */\nexport function languageToPrefix(language: string): string {\n  if (!language) return \"\";\n  const [first, ...rest] = language.split(/[-_]/);\n  if (!first) return \"\";\n  return first.toLowerCase() + rest.map((p) => p.toUpperCase()).join(\"\");\n}\n\n/**\n * Returns a new content object where any key matching `<prefix><PascalField>`\n * overrides the corresponding base field. Original `content` is not mutated.\n * Returns `content` unchanged when `language` is empty/undefined.\n *\n * Assumes the backend only emits prefixed keys for translations — a\n * non-translation field colliding with a known prefix would be misinterpreted.\n */\nexport function resolveTranslations<T extends Record<string, string>>(\n  content: T,\n  language?: string,\n): T {\n  if (!language) return content;\n  const prefix = languageToPrefix(language);\n  if (!prefix) return content;\n\n  const resolved: Record<string, string> = { ...content };\n  for (const key of Object.keys(content)) {\n    if (key.length <= prefix.length || !key.startsWith(prefix)) continue;\n    const rest = key.slice(prefix.length);\n    const baseField = rest.charAt(0).toLowerCase() + rest.slice(1);\n    resolved[baseField] = content[key];\n  }\n  return resolved as T;\n}\n","import { resolveTranslations } from \"./translations\";\nimport type { Banner } from \"./types\";\n\ninterface Binding {\n  key: string;\n  target: string | null;\n}\n\nlet deprecationWarned = false;\n\nfunction parseBindings(raw: string): Binding[] {\n  const bindings: Binding[] = [];\n  for (const part of raw.split(\",\")) {\n    const trimmed = part.trim();\n    if (!trimmed) continue;\n    const colonIdx = trimmed.indexOf(\":\");\n    if (colonIdx === -1) {\n      bindings.push({ key: trimmed, target: null });\n    } else {\n      bindings.push({ key: trimmed.slice(0, colonIdx), target: trimmed.slice(colonIdx + 1) });\n    }\n  }\n  return bindings;\n}\n\nfunction resolveTarget(el: Element, target: string | null): string {\n  if (target) return target;\n  const tag = el.tagName.toLowerCase();\n  if (tag === \"a\") return \"href\";\n  if (tag === \"img\" || tag === \"video\" || tag === \"source\") return \"src\";\n  return \"textContent\";\n}\n\n/**\n * Sets a value on `el`. Returns `false` when the resolved target is an\n * attribute that does not already exist on the element (binding skipped).\n */\nfunction setFieldValue(el: Element, value: string, target: string): boolean {\n  if (target === \"textContent\") {\n    el.textContent = value;\n    return true;\n  }\n  if (!el.hasAttribute(target)) {\n    return false;\n  }\n  el.setAttribute(target, value);\n  return true;\n}\n\n/**\n * Mutates `container` in place with auction data from `banner`.\n *\n * Intentionally does not apply any sizing or layout styles — predefined mode\n * gives the merchant full control over the template's appearance. Only content\n * fields (`data-ts-field`) and telemetry attributes are written.\n */\nexport function applyTemplate(container: Element, banner: Banner, language?: string) {\n  const rawContent = banner.asset?.[0]?.content;\n  const content = rawContent ? resolveTranslations(rawContent, language) : rawContent;\n\n  if (content) {\n    const fields = container.querySelectorAll<HTMLElement>(\"[data-ts-field]\");\n    for (const el of fields) {\n      const raw = el.dataset.tsField;\n      if (!raw) continue;\n\n      const bindings = parseBindings(raw);\n      const isExplicit = bindings.some((b) => b.target !== null);\n\n      for (const { key, target } of bindings) {\n        if (!(key in content)) continue;\n\n        let resolved: string;\n        if (!isExplicit && target === null) {\n          // Bare key — check data-ts-attr override for backwards compat\n          const attrOverride = el.dataset.tsAttr;\n          if (!deprecationWarned) {\n            deprecationWarned = true;\n            console.warn(\n              '[banners.js] Implicit data-ts-field binding is deprecated. Use explicit \"key:target\" syntax instead (e.g. data-ts-field=\"image:src\").',\n            );\n          }\n          resolved = resolveTarget(el, attrOverride ?? null);\n        } else {\n          resolved = resolveTarget(el, target);\n        }\n\n        if (!setFieldValue(el, content[key], resolved)) {\n          const tag = el.tagName.toLowerCase();\n          console.warn(\n            `[banners.js] Binding \"${key}\" → \"${resolved}\" skipped: <${tag}> has no \"${resolved}\" attribute. Add a fallback value (e.g. ${resolved}=\"...\") to your template.`,\n          );\n        }\n      }\n    }\n  }\n\n  const wrapper = container.querySelector(\"[data-ts-clickable]\") || container.firstElementChild;\n  if (wrapper) {\n    wrapper.setAttribute(\"data-ts-clickable\", \"\");\n    if (!banner.isFallback) {\n      // Stage the bid; the component promotes it to the analytics-observed\n      // `data-ts-resolved-bid` only once the element is genuinely visible\n      // (see promoteWhenVisible in index.ts / whenVisible in visibility.ts).\n      wrapper.setAttribute(\"data-ts-bid\", banner.resolvedBidId);\n    }\n  }\n}\n\n/** @internal — exposed for testing only */\nexport function _resetDeprecationWarning() {\n  deprecationWarned = false;\n}\n","/**\n * Real-visibility gate for impression telemetry.\n *\n * Background: impressions are fired by `@topsort/analytics.js`, which observes\n * `data-ts-resolved-bid` with an `IntersectionObserver` (threshold 0.5). That\n * observer is purely geometric — it treats `visibility:hidden` / `opacity:0`\n * elements as visible as long as their box overlaps the viewport, and only\n * respects `display:none`. Merchants that preload markup into a hidden\n * container (e.g. a mega-menu revealed on hover) therefore get phantom\n * impressions the moment the auction writes `data-ts-resolved-bid`.\n *\n * banners.js closes this gap by withholding `data-ts-resolved-bid` until the\n * element is *genuinely rendered* — not `display:none`, `visibility:hidden`,\n * `opacity:0`, or `content-visibility:hidden`. Viewport gating stays with\n * analytics.js; this module only answers \"is it actually painted right now?\".\n */\n\n/**\n * True when `el` is genuinely rendered — accounts for display, visibility,\n * opacity and content-visibility on the element and its ancestors.\n */\nexport function isRendered(el: HTMLElement): boolean {\n  const check = (el as unknown as { checkVisibility?: (opts?: unknown) => boolean })\n    .checkVisibility;\n  if (typeof check === \"function\") {\n    return check.call(el, {\n      contentVisibilityAuto: true,\n      opacityProperty: true,\n      visibilityProperty: true,\n    });\n  }\n  // Fallback for engines without Element.checkVisibility(): walk ancestors.\n  let node: HTMLElement | null = el;\n  while (node) {\n    const style = getComputedStyle(node);\n    // Only an explicit \"0\" counts as hidden — an unset opacity resolves to \"\"\n    // in some engines (e.g. jsdom), which must NOT be read as transparent.\n    if (\n      style.display === \"none\" ||\n      style.visibility === \"hidden\" ||\n      style.visibility === \"collapse\" ||\n      style.opacity === \"0\"\n    ) {\n      return false;\n    }\n    node = node.parentElement;\n  }\n  return true;\n}\n\n/**\n * Calls `onVisible` once, the first time `el` is both near the viewport and\n * genuinely rendered. Handles CSS-only reveals (e.g. a menu toggled via\n * visibility/opacity, which produce no geometry change and thus no\n * IntersectionObserver callback) by polling `isRendered` while the element is\n * near the viewport. Polling is bounded — it never runs while the element is\n * far off-screen. Returns a cleanup function.\n */\nexport function whenVisible(el: HTMLElement, onVisible: () => void): () => void {\n  // No IntersectionObserver (old engines / SSR) → preserve eager behavior.\n  if (typeof IntersectionObserver === \"undefined\") {\n    onVisible();\n    return () => {};\n  }\n\n  let done = false;\n  let timer: ReturnType<typeof setInterval> | undefined;\n\n  const stopTimer = () => {\n    if (timer !== undefined) {\n      clearInterval(timer);\n      timer = undefined;\n    }\n  };\n\n  const finish = () => {\n    if (done) return;\n    done = true;\n    stopTimer();\n    io.disconnect();\n    onVisible();\n  };\n\n  const io = new IntersectionObserver(\n    (entries) => {\n      for (const entry of entries) {\n        if (!entry.isIntersecting) {\n          // Far off-screen: don't waste cycles polling for a CSS reveal.\n          stopTimer();\n          continue;\n        }\n        if (isRendered(el)) {\n          finish();\n          return;\n        }\n        // On-screen geometrically but CSS-hidden (closed menu): watch for the\n        // reveal, which won't trigger another IntersectionObserver callback.\n        if (timer === undefined) {\n          timer = setInterval(() => {\n            // Stop if the element was removed from the DOM before it ever\n            // became visible — otherwise the poll would run forever.\n            if (!el.isConnected) {\n              done = true;\n              stopTimer();\n              io.disconnect();\n              return;\n            }\n            if (isRendered(el)) finish();\n          }, 200);\n        }\n      }\n    },\n    // Start watching a little before it scrolls in; analytics.js still applies\n    // the precise 0.5 viewport threshold before it fires the impression.\n    { threshold: 0, rootMargin: \"200px 0px\" },\n  );\n  io.observe(el);\n\n  return () => {\n    done = true;\n    stopTimer();\n    io.disconnect();\n  };\n}\n","import { consume, createContext, provide } from \"@lit/context\";\nimport { Task, TaskStatus } from \"@lit/task\";\nimport { html, LitElement, nothing, type TemplateResult } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { ifDefined } from \"lit/directives/if-defined.js\";\nimport { runAuction } from \"./auction\";\nimport { TopsortConfigurationError } from \"./errors\";\nimport { BannerComponent } from \"./mixin\";\nimport { applyTemplate } from \"./template\";\nimport type { Banner, BannerContext, HlsConstructor } from \"./types\";\nimport { whenVisible } from \"./visibility\";\n\n/* Set up global environment for TS_BANNERS */\n\ndeclare global {\n  interface Window {\n    TS_BANNERS: {\n      getLink(banner: Banner): string;\n      getLoadingElement(): HTMLElement;\n      getErrorElement(error: unknown): HTMLElement;\n      getNoWinnersElement(): HTMLElement;\n      getBannerElement(banner: Banner): HTMLElement;\n    };\n    TS: {\n      readonly token: string;\n      readonly url?: string;\n      getUserId?: () => string;\n    };\n  }\n}\n\nwindow.TS_BANNERS = window.TS_BANNERS || {};\n\nfunction logError(error: unknown) {\n  if (import.meta.env.DEV) {\n    console.error(error);\n  }\n}\n\n// The following methods are used to customize the appearance of the banner component.\nfunction getLink(banner: Banner): string {\n  if (window.TS_BANNERS.getLink) {\n    return window.TS_BANNERS.getLink(banner);\n  }\n  if (banner.type === \"url\") {\n    return banner.id;\n  }\n  return `${banner.type}/${banner.id}`;\n}\n\nfunction getLoadingElement(): TemplateResult {\n  if (window.TS_BANNERS.getLoadingElement) {\n    const element = window.TS_BANNERS.getLoadingElement();\n    return html`${element}`;\n  }\n  // By default, hide the component while loading\n  return html``;\n}\n\nfunction getErrorElement(error: unknown): TemplateResult {\n  if (window.TS_BANNERS.getErrorElement) {\n    const element = window.TS_BANNERS.getErrorElement(error);\n    return html`${element}`;\n  }\n  // By default, hide the component if there is an error\n  return html``;\n}\n\nfunction getNoWinnersElement(): TemplateResult {\n  if (window.TS_BANNERS.getNoWinnersElement) {\n    const element = window.TS_BANNERS.getNoWinnersElement();\n    return html`${element}`;\n  }\n  // By default, hide the component if there are no winners\n  return html``;\n}\n\nfunction getBannerElement(\n  banner: Banner,\n  width: number,\n  height: number,\n  newTab: boolean,\n): TemplateResult {\n  if (window.TS_BANNERS.getBannerElement) {\n    const element = window.TS_BANNERS.getBannerElement(banner);\n    return html`${element}`;\n  }\n\n  if (!banner.asset?.[0]?.url) {\n    logError(new Error(\"Invalid banner asset: missing URL\"));\n    return html``;\n  }\n  const src = banner.asset[0].url;\n\n  // width/height default to 0 when the attribute is omitted; treat 0 as \"not set\"\n  // and let the banner fluidly fill its container at the asset's native aspect ratio.\n  const widthStyle = width > 0 ? `${width}px` : \"100%\";\n  const heightStyle = height > 0 ? `${height}px` : \"auto\";\n\n  const isVideo = (() => {\n    try {\n      const url = new URL(src);\n      const parts = url.pathname.split(\"/\");\n      const manifestIndex = parts.indexOf(\"manifest\");\n      if (manifestIndex >= 0) {\n        const nextSegment = parts[manifestIndex + 1];\n        return nextSegment?.startsWith(\"video\") ?? false;\n      }\n      return false;\n    } catch {\n      return false;\n    }\n  })();\n\n  const media = isVideo\n    ? html`\n        <hls-video\n          src=\"${src}\"\n          width=\"${widthStyle}\"\n          height=\"${heightStyle}\"\n        ></hls-video>\n      `\n    : html`\n        <img\n          src=\"${src}\"\n          alt=\"Topsort banner\"\n          style=\"width:${widthStyle}; height:${heightStyle}; object-fit:cover;\"\n        />\n      `;\n\n  const href = getLink(banner);\n  const wrappedMedia = newTab\n    ? html`<a href=\"${href}\" target=\"_blank\">${media}</a>`\n    : html`<a href=\"${href}\">${media}</a>`;\n  // Stage the bid in `data-ts-bid`, not `data-ts-resolved-bid`. The observed\n  // telemetry attribute is promoted only once the element is genuinely visible\n  // (see promoteWhenVisible), so analytics.js cannot fire a phantom impression\n  // for a banner that is in the DOM but hidden (e.g. a preloaded mega-menu).\n  return html`\n    <div\n      data-ts-clickable\n      data-ts-bid=${ifDefined(banner.isFallback ? undefined : banner.resolvedBidId)}\n      class=\"ts-banner\"\n    >\n      ${wrappedMedia}\n    </div>\n  `;\n}\n\n// Tracks elements already handed to the visibility gate so repeated `updated()`\n// calls don't attach duplicate observers.\nconst gated = new WeakSet<Element>();\n\n/**\n * Promotes staged `data-ts-bid` → `data-ts-resolved-bid` once each carrier\n * element is genuinely rendered. analytics.js observes `data-ts-resolved-bid`,\n * so this defers the impression trigger until the banner is actually visible.\n *\n * Each visibility watcher's cleanup is recorded on `cleanups` so the host\n * component can tear observers/timers down in `disconnectedCallback` — without\n * this, a watcher for a never-revealed hidden banner would run indefinitely and\n * detached elements would leak their observers.\n */\nfunction promoteWhenVisible(root: Element, cleanups: Array<{ el: Element; cleanup: () => void }>) {\n  const pending = root.querySelectorAll<HTMLElement>(\"[data-ts-bid]:not([data-ts-resolved-bid])\");\n  for (const el of pending) {\n    if (gated.has(el)) continue;\n    const bid = el.getAttribute(\"data-ts-bid\");\n    if (!bid) continue;\n    gated.add(el);\n    const cleanup = whenVisible(el, () => {\n      el.setAttribute(\"data-ts-resolved-bid\", bid);\n      el.removeAttribute(\"data-ts-bid\");\n    });\n    cleanups.push({ el, cleanup });\n  }\n}\n\n/** Disconnects visibility watchers and releases their elements for re-gating. */\nfunction teardownVisibility(cleanups: Array<{ el: Element; cleanup: () => void }>) {\n  for (const { el, cleanup } of cleanups) {\n    cleanup();\n    gated.delete(el);\n  }\n  cleanups.length = 0;\n}\n\nconst bannerContext = createContext<BannerContext>(Symbol(\"banner-context\"));\nconst bannerContextHasChanged = (newVal: BannerContext, oldVal?: BannerContext) => {\n  if (!oldVal && newVal) {\n    return true;\n  }\n  if (newVal == null || oldVal == null) {\n    return false;\n  }\n  return (\n    newVal.width !== oldVal.width ||\n    newVal.height !== oldVal.height ||\n    newVal.newTab !== oldVal.newTab ||\n    newVal.language !== oldVal.language ||\n    !!newVal.error !== !!oldVal.error ||\n    newVal.banners?.length !== oldVal.banners?.length\n  );\n};\n\n/**\n * A banner web component that runs an auction and renders the winning banner.\n */\n@customElement(\"topsort-banner\")\nexport class TopsortBanner extends BannerComponent(LitElement) {\n  private task = new Task(this, {\n    task: ([slots], options) =>\n      runAuction(this.buildAuction(slots), { ...options, logError })\n        .then((winners) => {\n          options.signal.throwIfAborted();\n          if (this.isContext) {\n            this.context = { ...this.context, banners: winners };\n          }\n          return winners;\n        })\n        .catch((error) => {\n          options.signal.throwIfAborted();\n          if (this.isContext) {\n            this.context = { ...this.context, error };\n          }\n          throw error;\n        }),\n    args: () => [this.slots?.length || 1],\n  });\n\n  @provide({ context: bannerContext })\n  @property({ attribute: false, hasChanged: bannerContextHasChanged })\n  private context: BannerContext = {\n    width: this.width,\n    height: this.height,\n    newTab: this.newTab,\n    language: this.language,\n  };\n\n  @property({ type: Boolean, attribute: \"context\" })\n  readonly isContext: boolean = false;\n\n  @property({ type: Boolean })\n  readonly predefined: boolean = false;\n\n  @property({ attribute: \"language\", type: String })\n  readonly language?: string;\n\n  private _prevTaskStatus: TaskStatus = TaskStatus.INITIAL;\n\n  @property({ attribute: false, state: true })\n  private slots?: NodeListOf<Element>;\n\n  protected render() {\n    if (!window.TS.token || !this.slotId) {\n      return getErrorElement(new TopsortConfigurationError(window.TS.token, this.slotId));\n    }\n    if (this.isContext) {\n      return html``;\n    }\n    if (this.predefined) {\n      return nothing;\n    }\n    return this.task.render({\n      pending: () => getLoadingElement(),\n      complete: (banners) => {\n        if (!banners.length) {\n          return getNoWinnersElement();\n        }\n        if (banners[0].asset?.[0]?.content) {\n          const err = new Error(\n            \"Banner has predefined content but component is not in predefined mode\",\n          );\n          logError(err);\n          return getErrorElement(err);\n        }\n        return getBannerElement(banners[0], this.width, this.height, this.newTab);\n      },\n      error: (error) => getErrorElement(error),\n    });\n  }\n\n  updated(changedProperties: Map<string | number | symbol, unknown>) {\n    super.updated(changedProperties);\n\n    // Always track task status transitions — used by both predefined and standard modes\n    const prevStatus = this._prevTaskStatus;\n    const currStatus = this.task.status;\n    this._prevTaskStatus = currStatus;\n    const banners = this.task.value ?? [];\n\n    if (\n      this.predefined &&\n      prevStatus !== TaskStatus.COMPLETE &&\n      currStatus === TaskStatus.COMPLETE\n    ) {\n      if (banners.length && banners[0].asset?.[0]?.content) {\n        try {\n          applyTemplate(this, banners[0], this.language);\n        } catch (e) {\n          logError(e);\n        }\n      } else if (banners.length) {\n        console.warn(\n          `[topsort-banner] Predefined mode is set but the auction response for slot \"${this.slotId}\" contains no content map. Template was not mutated.`,\n        );\n      }\n    }\n\n    // context-mode banner is a container; event emission is the caller's responsibility\n    if (!this.isContext) {\n      if (prevStatus !== TaskStatus.COMPLETE && currStatus === TaskStatus.COMPLETE) {\n        this.emitEvent(banners.length ? \"ready\" : \"nowinners\");\n      } else if (prevStatus !== TaskStatus.ERROR && currStatus === TaskStatus.ERROR) {\n        this.emitEvent(\"error\");\n      }\n    }\n\n    if (this.isContext && !changedProperties.has(\"slots\")) {\n      Promise.resolve().then(() => {\n        this.slots = this.renderRoot.querySelectorAll(\"topsort-banner-slot\");\n      });\n    }\n\n    if (changedProperties.has(\"width\")) {\n      this.style.setProperty(\"--ts-banner-width\", this.width > 0 ? `${this.width}px` : \"100%\");\n    }\n    if (changedProperties.has(\"height\")) {\n      this.style.setProperty(\"--ts-banner-height\", this.height > 0 ? `${this.height}px` : \"auto\");\n    }\n\n    if (\n      changedProperties.has(\"width\") ||\n      changedProperties.has(\"height\") ||\n      changedProperties.has(\"newTab\") ||\n      changedProperties.has(\"language\")\n    ) {\n      Promise.resolve().then(() => {\n        this.context = {\n          ...this.context,\n          width: this.width,\n          height: this.height,\n          newTab: this.newTab,\n          language: this.language,\n        };\n      });\n    }\n\n    // Runtime language change in predefined mode: re-apply template without\n    // re-running the auction. Skip the initial transition (handled above).\n    if (\n      this.predefined &&\n      changedProperties.has(\"language\") &&\n      prevStatus === TaskStatus.COMPLETE &&\n      currStatus === TaskStatus.COMPLETE &&\n      banners.length &&\n      banners[0].asset?.[0]?.content\n    ) {\n      try {\n        applyTemplate(this, banners[0], this.language);\n      } catch (e) {\n        logError(e);\n      }\n    }\n\n    // Gate the impression trigger on real visibility (default + predefined mode).\n    promoteWhenVisible(this, this._visibilityCleanups);\n  }\n\n  private readonly _visibilityCleanups: Array<{ el: Element; cleanup: () => void }> = [];\n\n  disconnectedCallback() {\n    super.disconnectedCallback();\n    teardownVisibility(this._visibilityCleanups);\n  }\n\n  // avoid shadow dom since we cannot attach to events via analytics.js\n  protected createRenderRoot() {\n    return this;\n  }\n}\n\n@customElement(\"topsort-banner-slot\")\nexport class TopsortBannerSlot extends LitElement {\n  @consume({ context: bannerContext, subscribe: true })\n  @property({ attribute: false })\n  readonly context?: BannerContext;\n\n  @property({ attribute: \"rank\", type: Number })\n  readonly rank = 1;\n\n  @property({ type: Boolean })\n  readonly predefined: boolean = false;\n\n  private _bannerForRank(): Banner | undefined {\n    if (\n      !this.context?.banners?.length ||\n      this.rank < 1 ||\n      this.context.banners.length < this.rank\n    ) {\n      return undefined;\n    }\n    return this.context.banners[this.rank - 1];\n  }\n\n  protected render() {\n    if (this.predefined) {\n      return nothing;\n    }\n    if (!this.context) {\n      return html``;\n    }\n    if (!this.context.banners) {\n      return getLoadingElement();\n    }\n    if (this.context.error) {\n      return getErrorElement(this.context.error);\n    }\n    if (!this.context.banners.length || this.context.banners.length < this.rank) {\n      return getNoWinnersElement();\n    }\n    const banner = this.context.banners[this.rank - 1];\n    if (banner.asset?.[0]?.content) {\n      const err = new Error(\n        \"Banner has predefined content but component is not in predefined mode\",\n      );\n      logError(err);\n      return getErrorElement(err);\n    }\n    return getBannerElement(banner, this.context.width, this.context.height, this.context.newTab);\n  }\n\n  updated(changedProperties: Map<string | number | symbol, unknown>) {\n    super.updated(changedProperties);\n\n    if (changedProperties.has(\"context\")) {\n      const oldContext = changedProperties.get(\"context\") as BannerContext | undefined;\n      const bannersJustArrived = !oldContext?.banners && !!this.context?.banners;\n\n      if (bannersJustArrived) {\n        if (this.predefined) {\n          const banner = this._bannerForRank();\n          if (banner?.asset?.[0]?.content) {\n            try {\n              applyTemplate(this, banner, this.context?.language);\n            } catch (e) {\n              logError(e);\n            }\n          } else if (banner) {\n            console.warn(\n              `[topsort-banner-slot] Predefined mode is set but the auction response for rank ${this.rank} contains no content map. Template was not mutated.`,\n            );\n          }\n          // No banner (no-winners): predefined content stays as-is, no warning needed\n        }\n\n        const banner = this._bannerForRank();\n        this._emitStateChange(banner ? \"ready\" : \"nowinners\");\n      } else if (this.predefined && !!this.context?.banners) {\n        // Language changed after banners already arrived: re-apply template\n        // using the new language, without re-emitting state or re-running auction.\n        const languageChanged = oldContext?.language !== this.context?.language;\n        if (languageChanged) {\n          const banner = this._bannerForRank();\n          if (banner?.asset?.[0]?.content) {\n            try {\n              applyTemplate(this, banner, this.context?.language);\n            } catch (e) {\n              logError(e);\n            }\n          }\n        }\n      }\n\n      if (!oldContext?.error && this.context?.error) {\n        this._emitStateChange(\"error\");\n      }\n    }\n\n    // Gate the impression trigger on real visibility (default + predefined mode).\n    promoteWhenVisible(this, this._visibilityCleanups);\n  }\n\n  private readonly _visibilityCleanups: Array<{ el: Element; cleanup: () => void }> = [];\n\n  disconnectedCallback() {\n    super.disconnectedCallback();\n    teardownVisibility(this._visibilityCleanups);\n  }\n\n  private _emitStateChange(status: string) {\n    this.dispatchEvent(\n      new CustomEvent(\"statechange\", {\n        detail: { rank: this.rank, status },\n        bubbles: true,\n        composed: true,\n      }),\n    );\n  }\n\n  // avoid shadow dom since we cannot attach to events via analytics.js\n  protected createRenderRoot() {\n    return this;\n  }\n}\n\n@customElement(\"hls-video\")\nexport class HlsVideo extends LitElement {\n  @property({ type: String }) src = \"\"; // HLS manifest URL\n  @property({ type: String }) width = \"800px\";\n  @property({ type: String }) height = \"400px\";\n\n  private get videoId() {\n    try {\n      return new URL(this.src).pathname.split(\"/\")[1]; // safer and clearer\n    } catch {\n      return \"hls-video\";\n    }\n  }\n\n  render() {\n    return html`\n      <video\n        id=\"${this.videoId}\"\n        style=\"width:${this.width}; height:${this.height}; object-fit:cover;\"\n        muted\n        autoplay\n        loop\n        playsinline\n      ></video>\n    `;\n  }\n\n  async firstUpdated() {\n    const video = this.shadowRoot?.getElementById(this.videoId) as HTMLVideoElement;\n    if (!video) return;\n\n    let Hls: HlsConstructor;\n    try {\n      Hls = await loadHls();\n    } catch (err) {\n      console.error(\"Failed to load HLS.js:\", err);\n      return;\n    }\n\n    if (!Hls) {\n      console.error(\"HLS.js not available after load\");\n      return;\n    }\n\n    const hls = new Hls();\n    hls.loadSource(this.src);\n    hls.attachMedia(video);\n    hls.on(Hls.Events.MANIFEST_PARSED, () => {\n      video.play().catch((err) => console.warn(\"Autoplay failed:\", err));\n    });\n  }\n}\n\nlet _hlsLoadPromise: Promise<HlsConstructor> | null = null;\n\nfunction loadHls(): Promise<HlsConstructor> {\n  if (_hlsLoadPromise) return _hlsLoadPromise;\n  if (window.Hls) {\n    _hlsLoadPromise = Promise.resolve(window.Hls);\n    return _hlsLoadPromise;\n  }\n  _hlsLoadPromise = new Promise<HlsConstructor>((resolve, reject) => {\n    const script = document.createElement(\"script\");\n    script.src = \"https://cdn.jsdelivr.net/npm/hls.js@1.6.13/dist/hls.min.js\";\n    script.onload = () =>\n      window.Hls ? resolve(window.Hls) : reject(new Error(\"HLS.js loaded but not available\"));\n    script.onerror = () => reject(new Error(\"Failed to load HLS.js\"));\n    document.head.appendChild(script);\n  }).catch((err) => {\n    _hlsLoadPromise = null;\n    throw err;\n  });\n  return _hlsLoadPromise;\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"mappings":"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"}