@fluid-topics/ft-infinite-scroll 1.1.1 → 1.1.3

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.
@@ -12,38 +12,38 @@
12
12
  * subject to an additional IP rights grant found at
13
13
  * http://polymer.github.io/PATENTS.txt
14
14
  */
15
- if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,o=window.customElements.define,e=window.customElements.get,r=window.customElements,i=new WeakMap,n=new WeakMap,a=new WeakMap,s=new WeakMap;let c;window.CustomElementRegistry=class{constructor(){this._definitionsByTag=new Map,this._definitionsByClass=new Map,this._whenDefinedPromises=new Map,this._awaitingUpgrade=new Map}define(t,i){if(t=t.toLowerCase(),void 0!==this._getDefinition(t))throw new DOMException(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(void 0!==this._definitionsByClass.get(i))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const s=i.prototype.attributeChangedCallback,c=new Set(i.observedAttributes||[]);p(i,c,s);const l={elementClass:i,connectedCallback:i.prototype.connectedCallback,disconnectedCallback:i.prototype.disconnectedCallback,adoptedCallback:i.prototype.adoptedCallback,attributeChangedCallback:s,formAssociated:i.formAssociated,formAssociatedCallback:i.prototype.formAssociatedCallback,formDisabledCallback:i.prototype.formDisabledCallback,formResetCallback:i.prototype.formResetCallback,formStateRestoreCallback:i.prototype.formStateRestoreCallback,observedAttributes:c};this._definitionsByTag.set(t,l),this._definitionsByClass.set(i,l);let h=e.call(r,t);h||(h=f(t),o.call(r,t,h)),this===window.customElements&&(a.set(i,l),l.standInClass=h);const d=this._awaitingUpgrade.get(t);if(d){this._awaitingUpgrade.delete(t);for(const t of d)n.delete(t),y(t,l,!0)}const u=this._whenDefinedPromises.get(t);return void 0!==u&&(u.resolve(i),this._whenDefinedPromises.delete(t)),i}upgrade(){g.push(this),r.upgrade.apply(r,arguments),g.pop()}get(t){const o=this._definitionsByTag.get(t);return o?.elementClass}_getDefinition(t){return this._definitionsByTag.get(t)}whenDefined(t){const o=this._getDefinition(t);if(void 0!==o)return Promise.resolve(o.elementClass);let e=this._whenDefinedPromises.get(t);return void 0===e&&(e={},e.promise=new Promise((t=>e.resolve=t)),this._whenDefinedPromises.set(t,e)),e.promise}_upgradeWhenDefined(t,o,e){let r=this._awaitingUpgrade.get(o);r||this._awaitingUpgrade.set(o,r=new Set),e?r.add(t):r.delete(t)}},window.HTMLElement=function(){let o=c;if(o)return c=void 0,o;const e=a.get(this.constructor);if(!e)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return o=Reflect.construct(t,[],e.standInClass),Object.setPrototypeOf(o,this.constructor.prototype),i.set(o,e),o},window.HTMLElement.prototype=t.prototype;const l=t=>t===document||t instanceof ShadowRoot,h=t=>{let o=t.getRootNode();if(!l(o)){const t=g[g.length-1];if(t instanceof CustomElementRegistry)return t;o=t.getRootNode(),l(o)||(o=s.get(o)?.getRootNode()||document)}return o.customElements},f=o=>class{static get formAssociated(){return!0}constructor(){const e=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(e,HTMLElement.prototype);const r=h(e)||window.customElements,i=r._getDefinition(o);return i?y(e,i):n.set(e,r),e}connectedCallback(){const t=i.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):n.get(this)._upgradeWhenDefined(this,o,!0)}disconnectedCallback(){const t=i.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):n.get(this)._upgradeWhenDefined(this,o,!1)}adoptedCallback(){const t=i.get(this);t?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=i.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=i.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=i.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=i.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},p=(t,o,e)=>{if(0===o.size||void 0===e)return;const r=t.prototype.setAttribute;r&&(t.prototype.setAttribute=function(t,i){const n=t.toLowerCase();if(o.has(n)){const t=this.getAttribute(n);r.call(this,n,i),e.call(this,n,t,i)}else r.call(this,n,i)});const i=t.prototype.removeAttribute;i&&(t.prototype.removeAttribute=function(t){const r=t.toLowerCase();if(o.has(r)){const t=this.getAttribute(r);i.call(this,r),e.call(this,r,t,null)}else i.call(this,r)});const n=t.prototype.toggleAttribute;n&&(t.prototype.toggleAttribute=function(t,r){const i=t.toLowerCase();if(o.has(i)){const t=this.getAttribute(i);n.call(this,i,r);const o=this.getAttribute(i);e.call(this,i,t,o)}else n.call(this,i,r)})},d=o=>{const e=Object.getPrototypeOf(o);if(e!==window.HTMLElement)return e===t?Object.setPrototypeOf(o,window.HTMLElement):d(e)},y=(t,o,e=!1)=>{Object.setPrototypeOf(t,o.elementClass.prototype),i.set(t,o),c=t;try{new o.elementClass}catch(t){d(o.elementClass),new o.elementClass}o.attributeChangedCallback&&o.observedAttributes.forEach((e=>{t.hasAttribute(e)&&o.attributeChangedCallback.call(t,e,null,t.getAttribute(e))})),e&&o.connectedCallback&&t.isConnected&&o.connectedCallback.call(t)},u=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){const o=u.apply(this,arguments);return t.customElements&&(o.customElements=t.customElements),o};let g=[document];const b=(t,o,e=void 0)=>{const r=(e?Object.getPrototypeOf(e):t.prototype)[o];t.prototype[o]=function(){g.push(this);const t=r.apply(e||this,arguments);return void 0!==t&&s.set(t,this),g.pop(),t}};b(ShadowRoot,"createElement",document),b(ShadowRoot,"importNode",document),b(Element,"insertAdjacentHTML");const m=(t,o)=>{const e=Object.getOwnPropertyDescriptor(t.prototype,o);Object.defineProperty(t.prototype,o,{...e,set(t){g.push(this),e.set.call(this,t),g.pop()}})};if(m(Element,"innerHTML"),m(ShadowRoot,"innerHTML"),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){const t=new WeakMap,o=HTMLElement.prototype.attachInternals,e=["setFormValue","setValidity","checkValidity","reportValidity"];HTMLElement.prototype.attachInternals=function(...e){const r=o.call(this,...e);return t.set(r,this),r},e.forEach((o=>{const e=window.ElementInternals.prototype,r=e[o];e[o]=function(...o){const e=t.get(this);if(!0===i.get(e).formAssociated)return r?.call(this,...o);throw new DOMException(`Failed to execute ${r} on 'ElementInternals': The target element is not a form-associated custom element.`)}}));class r extends Array{constructor(t){super(...t),this._elements=t}get value(){return this._elements.find((t=>!0===t.checked))?.value||""}}class n{constructor(t){const o=new Map;t.forEach(((t,e)=>{const r=t.getAttribute("name"),i=o.get(r)||[];this[+e]=t,i.push(t),o.set(r,i)})),this.length=t.length,o.forEach(((t,o)=>{t&&(1===t.length?this[o]=t[0]:this[o]=new r(t))}))}namedItem(t){return this[t]}}const a=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){const t=a.get.call(this,[]),o=[];for(const e of t){const t=i.get(e);t&&!0!==t.formAssociated||o.push(e)}return new n(o)}})}}try{window.customElements.define("custom-element",null)}catch(jo){const t=window.customElements.define;window.customElements.define=(o,e,r)=>{if(null!==e)try{t.bind(window.customElements)(o,e,r)}catch(t){console.info(o,e,r,t)}}}class o{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,o){return this.callbacks=[t],this.debounce(o)}queue(t,o){return this.callbacks.push(t),this.debounce(o)}cancel(){this.clearTimeout(),this.resolvePromise&&this.resolvePromise(!1),this.clearPromise()}debounce(t){return null==this.promise&&(this.promise=new Promise(((t,o)=>{this.resolvePromise=t,this.rejectPromise=o}))),this.clearTimeout(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout),this.promise}async runCallbacks(){var t,o;const e=[...this.callbacks];this.callbacks=[];const r=null!==(t=this.rejectPromise)&&void 0!==t?t:()=>null,i=null!==(o=this.resolvePromise)&&void 0!==o?o:()=>null;this.clearPromise();for(let t of e)try{await t()}catch(t){return void r(t)}i(!0)}clearTimeout(){null!=this._debounce&&window.clearTimeout(this._debounce)}clearPromise(){this.promise=void 0,this.resolvePromise=void 0,this.rejectPromise=void 0}}
15
+ if(!ShadowRoot.prototype.createElement){const t=window.HTMLElement,o=window.customElements.define,e=window.customElements.get,r=window.customElements,i=new WeakMap,n=new WeakMap,a=new WeakMap,s=new WeakMap;let c;window.CustomElementRegistry=class{constructor(){this._definitionsByTag=new Map,this._definitionsByClass=new Map,this._whenDefinedPromises=new Map,this._awaitingUpgrade=new Map}define(t,i){if(t=t.toLowerCase(),void 0!==this._getDefinition(t))throw new DOMException(`Failed to execute 'define' on 'CustomElementRegistry': the name "${t}" has already been used with this registry`);if(void 0!==this._definitionsByClass.get(i))throw new DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");const s=i.prototype.attributeChangedCallback,c=new Set(i.observedAttributes||[]);p(i,c,s);const l={elementClass:i,connectedCallback:i.prototype.connectedCallback,disconnectedCallback:i.prototype.disconnectedCallback,adoptedCallback:i.prototype.adoptedCallback,attributeChangedCallback:s,formAssociated:i.formAssociated,formAssociatedCallback:i.prototype.formAssociatedCallback,formDisabledCallback:i.prototype.formDisabledCallback,formResetCallback:i.prototype.formResetCallback,formStateRestoreCallback:i.prototype.formStateRestoreCallback,observedAttributes:c};this._definitionsByTag.set(t,l),this._definitionsByClass.set(i,l);let h=e.call(r,t);h||(h=f(t),o.call(r,t,h)),this===window.customElements&&(a.set(i,l),l.standInClass=h);const d=this._awaitingUpgrade.get(t);if(d){this._awaitingUpgrade.delete(t);for(const t of d)n.delete(t),y(t,l,!0)}const u=this._whenDefinedPromises.get(t);return void 0!==u&&(u.resolve(i),this._whenDefinedPromises.delete(t)),i}upgrade(){g.push(this),r.upgrade.apply(r,arguments),g.pop()}get(t){const o=this._definitionsByTag.get(t);return o?.elementClass}_getDefinition(t){return this._definitionsByTag.get(t)}whenDefined(t){const o=this._getDefinition(t);if(void 0!==o)return Promise.resolve(o.elementClass);let e=this._whenDefinedPromises.get(t);return void 0===e&&(e={},e.promise=new Promise((t=>e.resolve=t)),this._whenDefinedPromises.set(t,e)),e.promise}_upgradeWhenDefined(t,o,e){let r=this._awaitingUpgrade.get(o);r||this._awaitingUpgrade.set(o,r=new Set),e?r.add(t):r.delete(t)}},window.HTMLElement=function(){let o=c;if(o)return c=void 0,o;const e=a.get(this.constructor);if(!e)throw new TypeError("Illegal constructor (custom element class must be registered with global customElements registry to be newable)");return o=Reflect.construct(t,[],e.standInClass),Object.setPrototypeOf(o,this.constructor.prototype),i.set(o,e),o},window.HTMLElement.prototype=t.prototype;const l=t=>t===document||t instanceof ShadowRoot,h=t=>{let o=t.getRootNode();if(!l(o)){const t=g[g.length-1];if(t instanceof CustomElementRegistry)return t;o=t.getRootNode(),l(o)||(o=s.get(o)?.getRootNode()||document)}return o.customElements},f=o=>class{static get formAssociated(){return!0}constructor(){const e=Reflect.construct(t,[],this.constructor);Object.setPrototypeOf(e,HTMLElement.prototype);const r=h(e)||window.customElements,i=r._getDefinition(o);return i?y(e,i):n.set(e,r),e}connectedCallback(){const t=i.get(this);t?t.connectedCallback&&t.connectedCallback.apply(this,arguments):n.get(this)._upgradeWhenDefined(this,o,!0)}disconnectedCallback(){const t=i.get(this);t?t.disconnectedCallback&&t.disconnectedCallback.apply(this,arguments):n.get(this)._upgradeWhenDefined(this,o,!1)}adoptedCallback(){const t=i.get(this);t?.adoptedCallback?.apply(this,arguments)}formAssociatedCallback(){const t=i.get(this);t&&t.formAssociated&&t?.formAssociatedCallback?.apply(this,arguments)}formDisabledCallback(){const t=i.get(this);t?.formAssociated&&t?.formDisabledCallback?.apply(this,arguments)}formResetCallback(){const t=i.get(this);t?.formAssociated&&t?.formResetCallback?.apply(this,arguments)}formStateRestoreCallback(){const t=i.get(this);t?.formAssociated&&t?.formStateRestoreCallback?.apply(this,arguments)}},p=(t,o,e)=>{if(0===o.size||void 0===e)return;const r=t.prototype.setAttribute;r&&(t.prototype.setAttribute=function(t,i){const n=t.toLowerCase();if(o.has(n)){const t=this.getAttribute(n);r.call(this,n,i),e.call(this,n,t,i)}else r.call(this,n,i)});const i=t.prototype.removeAttribute;i&&(t.prototype.removeAttribute=function(t){const r=t.toLowerCase();if(o.has(r)){const t=this.getAttribute(r);i.call(this,r),e.call(this,r,t,null)}else i.call(this,r)});const n=t.prototype.toggleAttribute;n&&(t.prototype.toggleAttribute=function(t,r){const i=t.toLowerCase();if(o.has(i)){const t=this.getAttribute(i);n.call(this,i,r);const o=this.getAttribute(i);e.call(this,i,t,o)}else n.call(this,i,r)})},d=o=>{const e=Object.getPrototypeOf(o);if(e!==window.HTMLElement)return e===t?Object.setPrototypeOf(o,window.HTMLElement):d(e)},y=(t,o,e=!1)=>{Object.setPrototypeOf(t,o.elementClass.prototype),i.set(t,o),c=t;try{new o.elementClass}catch(t){d(o.elementClass),new o.elementClass}o.attributeChangedCallback&&o.observedAttributes.forEach((e=>{t.hasAttribute(e)&&o.attributeChangedCallback.call(t,e,null,t.getAttribute(e))})),e&&o.connectedCallback&&t.isConnected&&o.connectedCallback.call(t)},u=Element.prototype.attachShadow;Element.prototype.attachShadow=function(t){const o=u.apply(this,arguments);return t.customElements&&(o.customElements=t.customElements),o};let g=[document];const b=(t,o,e=void 0)=>{const r=(e?Object.getPrototypeOf(e):t.prototype)[o];t.prototype[o]=function(){g.push(this);const t=r.apply(e||this,arguments);return void 0!==t&&s.set(t,this),g.pop(),t}};b(ShadowRoot,"createElement",document),b(ShadowRoot,"importNode",document),b(Element,"insertAdjacentHTML");const m=(t,o)=>{const e=Object.getOwnPropertyDescriptor(t.prototype,o);Object.defineProperty(t.prototype,o,{...e,set(t){g.push(this),e.set.call(this,t),g.pop()}})};if(m(Element,"innerHTML"),m(ShadowRoot,"innerHTML"),Object.defineProperty(window,"customElements",{value:new CustomElementRegistry,configurable:!0,writable:!0}),window.ElementInternals&&window.ElementInternals.prototype.setFormValue){const t=new WeakMap,o=HTMLElement.prototype.attachInternals,e=["setFormValue","setValidity","checkValidity","reportValidity"];HTMLElement.prototype.attachInternals=function(...e){const r=o.call(this,...e);return t.set(r,this),r},e.forEach((o=>{const e=window.ElementInternals.prototype,r=e[o];e[o]=function(...o){const e=t.get(this);if(!0===i.get(e).formAssociated)return r?.call(this,...o);throw new DOMException(`Failed to execute ${r} on 'ElementInternals': The target element is not a form-associated custom element.`)}}));class r extends Array{constructor(t){super(...t),this._elements=t}get value(){return this._elements.find((t=>!0===t.checked))?.value||""}}class n{constructor(t){const o=new Map;t.forEach(((t,e)=>{const r=t.getAttribute("name"),i=o.get(r)||[];this[+e]=t,i.push(t),o.set(r,i)})),this.length=t.length,o.forEach(((t,o)=>{t&&(1===t.length?this[o]=t[0]:this[o]=new r(t))}))}namedItem(t){return this[t]}}const a=Object.getOwnPropertyDescriptor(HTMLFormElement.prototype,"elements");Object.defineProperty(HTMLFormElement.prototype,"elements",{get:function(){const t=a.get.call(this,[]),o=[];for(const e of t){const t=i.get(e);t&&!0!==t.formAssociated||o.push(e)}return new n(o)}})}}try{window.customElements.define("custom-element",null)}catch(Ho){const t=window.customElements.define;window.customElements.define=(o,e,r)=>{if(null!==e)try{t.bind(window.customElements)(o,e,r)}catch(t){console.info(o,e,r,t)}}}
16
16
  /**
17
17
  * @license
18
18
  * Copyright 2019 Google LLC
19
19
  * SPDX-License-Identifier: BSD-3-Clause
20
- */const e=globalThis,r=e.ShadowRoot&&(void 0===e.ShadyCSS||e.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,i=Symbol(),n=new WeakMap;const a=t=>new class{constructor(t,o,e){if(this._$cssResult$=!0,e!==i)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=o}get styleSheet(){let t=this.o;const o=this.t;if(r&&void 0===t){const e=void 0!==o&&1===o.length;e&&(t=n.get(o)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(o,t))}return t}toString(){return this.cssText}}("string"==typeof t?t:t+"",void 0,i),s=r?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let o="";for(const e of t.cssRules)o+=e.cssText;return a(o)})(t):t
20
+ */const o=globalThis,e=o.ShadowRoot&&(void 0===o.ShadyCSS||o.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,r=Symbol(),i=new WeakMap;const n=t=>new class{constructor(t,o,e){if(this._$cssResult$=!0,e!==r)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=o}get styleSheet(){let t=this.o;const o=this.t;if(e&&void 0===t){const e=void 0!==o&&1===o.length;e&&(t=i.get(o)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&i.set(o,t))}return t}toString(){return this.cssText}}("string"==typeof t?t:t+"",void 0,r),a=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let o="";for(const e of t.cssRules)o+=e.cssText;return n(o)})(t):t
21
21
  /**
22
22
  * @license
23
23
  * Copyright 2017 Google LLC
24
24
  * SPDX-License-Identifier: BSD-3-Clause
25
- */,{is:c,defineProperty:l,getOwnPropertyDescriptor:h,getOwnPropertyNames:f,getOwnPropertySymbols:p,getPrototypeOf:d}=Object,y=globalThis,u=y.trustedTypes,g=u?u.emptyScript:"",b=y.reactiveElementPolyfillSupport,m=(t,o)=>t,O={toAttribute(t,o){switch(o){case Boolean:t=t?g:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,o){let e=t;switch(o){case Boolean:e=null!==t;break;case Number:e=null===t?null:Number(t);break;case Object:case Array:try{e=JSON.parse(t)}catch(t){e=null}}return e}},N=(t,o)=>!c(t,o),v={attribute:!0,type:String,converter:O,reflect:!1,hasChanged:N};Symbol.metadata??=Symbol("metadata"),y.litPropertyMetadata??=new WeakMap;let S=class 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,o=v){if(o.state&&(o.attribute=!1),this._$Ei(),this.elementProperties.set(t,o),!o.noAccessor){const e=Symbol(),r=this.getPropertyDescriptor(t,e,o);void 0!==r&&l(this.prototype,t,r)}}static getPropertyDescriptor(t,o,e){const{get:r,set:i}=h(this.prototype,t)??{get(){return this[o]},set(t){this[o]=t}};return{get(){return r?.call(this)},set(o){const n=r?.call(this);i.call(this,o),this.requestUpdate(t,n,e)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??v}static _$Ei(){if(this.hasOwnProperty(m("elementProperties")))return;const t=d(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(m("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(m("properties"))){const t=this.properties,o=[...f(t),...p(t)];for(const e of o)this.createProperty(e,t[e])}const t=this[Symbol.metadata];if(null!==t){const o=litPropertyMetadata.get(t);if(void 0!==o)for(const[t,e]of o)this.elementProperties.set(t,e)}this._$Eh=new Map;for(const[t,o]of this.elementProperties){const e=this._$Eu(t,o);void 0!==e&&this._$Eh.set(e,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const o=[];if(Array.isArray(t)){const e=new Set(t.flat(1/0).reverse());for(const t of e)o.unshift(s(t))}else void 0!==t&&o.push(s(t));return o}static _$Eu(t,o){const e=o.attribute;return!1===e?void 0:"string"==typeof e?e:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$ES(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$E_??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$E_?.delete(t)}_$ES(){const t=new Map,o=this.constructor.elementProperties;for(const e of o.keys())this.hasOwnProperty(e)&&(t.set(e,this[e]),delete this[e]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((t,o)=>{if(r)t.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const r of o){const o=document.createElement("style"),i=e.litNonce;void 0!==i&&o.setAttribute("nonce",i),o.textContent=r.cssText,t.appendChild(o)}})(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$E_?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$E_?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,o,e){this._$AK(t,e)}_$EO(t,o){const e=this.constructor.elementProperties.get(t),r=this.constructor._$Eu(t,e);if(void 0!==r&&!0===e.reflect){const i=(void 0!==e.converter?.toAttribute?e.converter:O).toAttribute(o,e.type);this._$Em=t,null==i?this.removeAttribute(r):this.setAttribute(r,i),this._$Em=null}}_$AK(t,o){const e=this.constructor,r=e._$Eh.get(t);if(void 0!==r&&this._$Em!==r){const t=e.getPropertyOptions(r),i="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:O;this._$Em=r,this[r]=i.fromAttribute(o,t.type),this._$Em=null}}requestUpdate(t,o,e,r=!1,i){if(void 0!==t){if(e??=this.constructor.getPropertyOptions(t),!(e.hasChanged??N)(r?i:this[t],o))return;this.C(t,o,e)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,o,e){this._$AL.has(t)||this._$AL.set(t,o),!0===e.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,o]of this._$Ep)this[t]=o;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[o,e]of t)!0!==e.wrapped||this._$AL.has(o)||void 0===this[o]||this.C(o,this[o],e)}let t=!1;const o=this._$AL;try{t=this.shouldUpdate(o),t?(this.willUpdate(o),this._$E_?.forEach((t=>t.hostUpdate?.())),this.update(o)):this._$ET()}catch(o){throw t=!1,this._$ET(),o}t&&this._$AE(o)}willUpdate(t){}_$AE(t){this._$E_?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$ET(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET()}updated(t){}firstUpdated(t){}};S.elementStyles=[],S.shadowRootOptions={mode:"open"},S[m("elementProperties")]=new Map,S[m("finalized")]=new Map,b?.({ReactiveElement:S}),(y.reactiveElementVersions??=[]).push("2.0.2");
25
+ */,{is:s,defineProperty:c,getOwnPropertyDescriptor:l,getOwnPropertyNames:h,getOwnPropertySymbols:f,getPrototypeOf:p}=Object,d=globalThis,y=d.trustedTypes,u=y?y.emptyScript:"",g=d.reactiveElementPolyfillSupport,b=(t,o)=>t,m={toAttribute(t,o){switch(o){case Boolean:t=t?u:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,o){let e=t;switch(o){case Boolean:e=null!==t;break;case Number:e=null===t?null:Number(t);break;case Object:case Array:try{e=JSON.parse(t)}catch(t){e=null}}return e}},O=(t,o)=>!s(t,o),N={attribute:!0,type:String,converter:m,reflect:!1,hasChanged:O};Symbol.metadata??=Symbol("metadata"),d.litPropertyMetadata??=new WeakMap;let v=class 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,o=N){if(o.state&&(o.attribute=!1),this._$Ei(),this.elementProperties.set(t,o),!o.noAccessor){const e=Symbol(),r=this.getPropertyDescriptor(t,e,o);void 0!==r&&c(this.prototype,t,r)}}static getPropertyDescriptor(t,o,e){const{get:r,set:i}=l(this.prototype,t)??{get(){return this[o]},set(t){this[o]=t}};return{get(){return r?.call(this)},set(o){const n=r?.call(this);i.call(this,o),this.requestUpdate(t,n,e)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??N}static _$Ei(){if(this.hasOwnProperty(b("elementProperties")))return;const t=p(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(b("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(b("properties"))){const t=this.properties,o=[...h(t),...f(t)];for(const e of o)this.createProperty(e,t[e])}const t=this[Symbol.metadata];if(null!==t){const o=litPropertyMetadata.get(t);if(void 0!==o)for(const[t,e]of o)this.elementProperties.set(t,e)}this._$Eh=new Map;for(const[t,o]of this.elementProperties){const e=this._$Eu(t,o);void 0!==e&&this._$Eh.set(e,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(t){const o=[];if(Array.isArray(t)){const e=new Set(t.flat(1/0).reverse());for(const t of e)o.unshift(a(t))}else void 0!==t&&o.push(a(t));return o}static _$Eu(t,o){const e=o.attribute;return!1===e?void 0:"string"==typeof e?e:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$Eg=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$ES(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$E_??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$E_?.delete(t)}_$ES(){const t=new Map,o=this.constructor.elementProperties;for(const e of o.keys())this.hasOwnProperty(e)&&(t.set(e,this[e]),delete this[e]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return((t,r)=>{if(e)t.adoptedStyleSheets=r.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of r){const r=document.createElement("style"),i=o.litNonce;void 0!==i&&r.setAttribute("nonce",i),r.textContent=e.cssText,t.appendChild(r)}})(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$E_?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$E_?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,o,e){this._$AK(t,e)}_$EO(t,o){const e=this.constructor.elementProperties.get(t),r=this.constructor._$Eu(t,e);if(void 0!==r&&!0===e.reflect){const i=(void 0!==e.converter?.toAttribute?e.converter:m).toAttribute(o,e.type);this._$Em=t,null==i?this.removeAttribute(r):this.setAttribute(r,i),this._$Em=null}}_$AK(t,o){const e=this.constructor,r=e._$Eh.get(t);if(void 0!==r&&this._$Em!==r){const t=e.getPropertyOptions(r),i="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:m;this._$Em=r,this[r]=i.fromAttribute(o,t.type),this._$Em=null}}requestUpdate(t,o,e,r=!1,i){if(void 0!==t){if(e??=this.constructor.getPropertyOptions(t),!(e.hasChanged??O)(r?i:this[t],o))return;this.C(t,o,e)}!1===this.isUpdatePending&&(this._$Eg=this._$EP())}C(t,o,e){this._$AL.has(t)||this._$AL.set(t,o),!0===e.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$EP(){this.isUpdatePending=!0;try{await this._$Eg}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,o]of this._$Ep)this[t]=o;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[o,e]of t)!0!==e.wrapped||this._$AL.has(o)||void 0===this[o]||this.C(o,this[o],e)}let t=!1;const o=this._$AL;try{t=this.shouldUpdate(o),t?(this.willUpdate(o),this._$E_?.forEach((t=>t.hostUpdate?.())),this.update(o)):this._$ET()}catch(o){throw t=!1,this._$ET(),o}t&&this._$AE(o)}willUpdate(t){}_$AE(t){this._$E_?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$ET(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$Eg}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EO(t,this[t]))),this._$ET()}updated(t){}firstUpdated(t){}};v.elementStyles=[],v.shadowRootOptions={mode:"open"},v[b("elementProperties")]=new Map,v[b("finalized")]=new Map,g?.({ReactiveElement:v}),(d.reactiveElementVersions??=[]).push("2.0.2");
26
26
  /**
27
27
  * @license
28
28
  * Copyright 2017 Google LLC
29
29
  * SPDX-License-Identifier: BSD-3-Clause
30
30
  */
31
- const w={attribute:!0,type:String,converter:O,reflect:!1,hasChanged:N},C=(t=w,o,e)=>{const{kind:r,metadata:i}=e;let n=globalThis.litPropertyMetadata.get(i);if(void 0===n&&globalThis.litPropertyMetadata.set(i,n=new Map),n.set(e.name,t),"accessor"===r){const{name:r}=e;return{set(e){const i=o.get.call(this);o.set.call(this,e),this.requestUpdate(r,i,t)},init(o){return void 0!==o&&this.C(r,void 0,t),o}}}if("setter"===r){const{name:r}=e;return function(e){const i=this[r];o.call(this,e),this.requestUpdate(r,i,t)}}throw Error("Unsupported decorator location: "+r)};function x(t){return(o,e)=>"object"==typeof e?C(t,o,e):((t,o,e)=>{const r=o.hasOwnProperty(e);return o.constructor.createProperty(e,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(o,e):void 0})(t,o,e)
31
+ const S={attribute:!0,type:String,converter:m,reflect:!1,hasChanged:O},w=(t=S,o,e)=>{const{kind:r,metadata:i}=e;let n=globalThis.litPropertyMetadata.get(i);if(void 0===n&&globalThis.litPropertyMetadata.set(i,n=new Map),n.set(e.name,t),"accessor"===r){const{name:r}=e;return{set(e){const i=o.get.call(this);o.set.call(this,e),this.requestUpdate(r,i,t)},init(o){return void 0!==o&&this.C(r,void 0,t),o}}}if("setter"===r){const{name:r}=e;return function(e){const i=this[r];o.call(this,e),this.requestUpdate(r,i,t)}}throw Error("Unsupported decorator location: "+r)};function C(t){return(o,e)=>"object"==typeof e?w(t,o,e):((t,o,e)=>{const r=o.hasOwnProperty(e);return o.constructor.createProperty(e,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(o,e):void 0})(t,o,e)
32
32
  /**
33
33
  * @license
34
34
  * Copyright 2017 Google LLC
35
35
  * SPDX-License-Identifier: BSD-3-Clause
36
- */}function R(t){return x({...t,state:!0,attribute:!1})}
36
+ */}function x(t){return C({...t,state:!0,attribute:!1})}
37
37
  /**
38
38
  * @license
39
39
  * Copyright 2017 Google LLC
40
40
  * SPDX-License-Identifier: BSD-3-Clause
41
- */const U=(t,o,e)=>(e.configurable=!0,e.enumerable=!0,e)
41
+ */const R=(t,o,e)=>(e.configurable=!0,e.enumerable=!0,e)
42
42
  /**
43
43
  * @license
44
44
  * Copyright 2017 Google LLC
45
45
  * SPDX-License-Identifier: BSD-3-Clause
46
- */;function E(t,o){return(e,r,i)=>{const n=o=>o.renderRoot?.querySelector(t)??null;if(o){const{get:t,set:o}="object"==typeof r?e:i??(()=>{const t=Symbol();return{get(){return this[t]},set(o){this[t]=o}}})();return U(0,0,{get(){let e=t.call(this);return void 0===e&&(e=n(this),(null!==e||this.hasUpdated)&&o.call(this,e)),e}})}return U(0,0,{get(){return n(this)}})}}function I(t,o){try{return function(t,o){if(t===o)return!0;if(t&&o&&"object"==typeof t&&"object"==typeof o){if(t.constructor!==o.constructor)return!1;var e,r,i;if(Array.isArray(t)){if((e=t.length)!=o.length)return!1;for(r=e;0!=r--;)if(!I(t[r],o[r]))return!1;return!0}if(t instanceof Map&&o instanceof Map){if(t.size!==o.size)return!1;for(r of t.entries())if(!o.has(r[0]))return!1;for(r of t.entries())if(!I(r[1],o.get(r[0])))return!1;return!0}if(t instanceof Set&&o instanceof Set){if(t.size!==o.size)return!1;for(r of t.entries())if(!o.has(r[0]))return!1;return!0}if(t.constructor===RegExp)return t.source===o.source&&t.flags===o.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===o.valueOf();if((e=(i=Object.keys(t)).length)!==Object.keys(o).length)return!1;for(r=e;0!=r--;)if(!Object.prototype.hasOwnProperty.call(o,i[r]))return!1;for(r=e;0!=r--;){var n=i[r];if(!I(t[n],o[n]))return!1}return!0}return t!=t&&o!=o}(t,o)}catch(t){return!1}}
46
+ */;function U(t,o){return(e,r,i)=>{const n=o=>o.renderRoot?.querySelector(t)??null;if(o){const{get:t,set:o}="object"==typeof r?e:i??(()=>{const t=Symbol();return{get(){return this[t]},set(o){this[t]=o}}})();return R(0,0,{get(){let e=t.call(this);return void 0===e&&(e=n(this),(null!==e||this.hasUpdated)&&o.call(this,e)),e}})}return R(0,0,{get(){return n(this)}})}}class E{constructor(t=0){this.timeout=t,this.callbacks=[]}run(t,o){return this.callbacks=[t],this.debounce(o)}queue(t,o){return this.callbacks.push(t),this.debounce(o)}cancel(){this.clearTimeout(),this.resolvePromise&&this.resolvePromise(!1),this.clearPromise()}debounce(t){return null==this.promise&&(this.promise=new Promise(((t,o)=>{this.resolvePromise=t,this.rejectPromise=o}))),this.clearTimeout(),this._debounce=window.setTimeout((()=>this.runCallbacks()),null!=t?t:this.timeout),this.promise}async runCallbacks(){var t,o;const e=[...this.callbacks];this.callbacks=[];const r=null!==(t=this.rejectPromise)&&void 0!==t?t:()=>null,i=null!==(o=this.resolvePromise)&&void 0!==o?o:()=>null;this.clearPromise();for(let t of e)try{await t()}catch(t){return void r(t)}i(!0)}clearTimeout(){null!=this._debounce&&window.clearTimeout(this._debounce)}clearPromise(){this.promise=void 0,this.resolvePromise=void 0,this.rejectPromise=void 0}}function I(t,o){try{return function(t,o){if(t===o)return!0;if(t&&o&&"object"==typeof t&&"object"==typeof o){if(t.constructor!==o.constructor)return!1;var e,r,i;if(Array.isArray(t)){if((e=t.length)!=o.length)return!1;for(r=e;0!=r--;)if(!I(t[r],o[r]))return!1;return!0}if(t instanceof Map&&o instanceof Map){if(t.size!==o.size)return!1;for(r of t.entries())if(!o.has(r[0]))return!1;for(r of t.entries())if(!I(r[1],o.get(r[0])))return!1;return!0}if(t instanceof Set&&o instanceof Set){if(t.size!==o.size)return!1;for(r of t.entries())if(!o.has(r[0]))return!1;return!0}if(t.constructor===RegExp)return t.source===o.source&&t.flags===o.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===o.valueOf();if((e=(i=Object.keys(t)).length)!==Object.keys(o).length)return!1;for(r=e;0!=r--;)if(!Object.prototype.hasOwnProperty.call(o,i[r]))return!1;for(r=e;0!=r--;){var n=i[r];if(!I(t[n],o[n]))return!1}return!0}return t!=t&&o!=o}(t,o)}catch(t){return!1}}
47
47
  /**
48
48
  * @license
49
49
  * Copyright 2017 Google LLC
@@ -78,7 +78,11 @@ let mo=class extends $t{constructor(){super(...arguments),this.renderOptions={ho
78
78
  * Copyright 2019 Google LLC
79
79
  * SPDX-License-Identifier: BSD-3-Clause
80
80
  */
81
- const Co=window,xo=Co.ShadowRoot&&(void 0===Co.ShadyCSS||Co.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype;class Ro extends mo{createRenderRoot(){const t=this.constructor;t.elementDefinitions&&!t.registry&&(t.registry=new CustomElementRegistry,Object.entries(t.elementDefinitions).forEach((([o,e])=>t.registry.define(o,e))));const o={...t.shadowRootOptions,customElements:t.registry},e=this.renderOptions.creationScope=this.attachShadow(o);return((t,o)=>{xo?t.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):o.forEach((o=>{const e=document.createElement("style"),r=Co.litNonce;void 0!==r&&e.setAttribute("nonce",r),e.textContent=o.cssText,t.appendChild(e)}))})(e,t.elementStyles),e}}var Uo,Eo=function(t,o,e,r){for(var i,n=arguments.length,a=n<3?o:null===r?r=Object.getOwnPropertyDescriptor(o,e):r,s=t.length-1;s>=0;s--)(i=t[s])&&(a=(n<3?i(a):n>3?i(o,e,a):i(o,e))||a);return n>3&&a&&Object.defineProperty(o,e,a),a};const Io=Symbol("constructorPrototype"),Lo=Symbol("constructorName"),Wo=Symbol("exportpartsDebouncer");class ko extends Ro{constructor(){super(),this[Uo]=new o(5),this[Lo]=this.constructor.name,this[Io]=this.constructor.prototype}adoptedCallback(){this.constructor.name!==this[Lo]&&Object.setPrototypeOf(this,this[Io])}updated(t){super.updated(t),setTimeout((()=>{this.contentAvailableCallback(t),this.scheduleExportpartsUpdate()}),0)}contentAvailableCallback(t){var o,e;if((null!==(e=null===(o=this.shadowRoot)||void 0===o?void 0:o.querySelectorAll(".ft-lit-element--custom-stylesheet"))&&void 0!==e?e:[]).forEach((t=>t.remove())),this.customStylesheet){const t=document.createElement("style");t.classList.add("ft-lit-element--custom-stylesheet"),t.innerHTML=this.customStylesheet,this.shadowRoot.append(t)}}scheduleExportpartsUpdate(){this[Wo].run((()=>{var t;(null===(t=this.exportpartsPrefix)||void 0===t?void 0:t.trim())?this.setExportpartsAttribute([this.exportpartsPrefix]):null!=this.exportpartsPrefixes&&this.exportpartsPrefixes.length>0&&this.setExportpartsAttribute(this.exportpartsPrefixes)}))}setExportpartsAttribute(t){var o,e,r,i,n,a;const s=t=>null!=t&&t.trim().length>0,c=t.filter(s).map((t=>t.trim()));if(0===c.length)return void this.removeAttribute("exportparts");const l=new Set;for(let t of null!==(e=null===(o=this.shadowRoot)||void 0===o?void 0:o.querySelectorAll("[part],[exportparts]"))&&void 0!==e?e:[]){const o=null!==(i=null===(r=t.getAttribute("part"))||void 0===r?void 0:r.split(" "))&&void 0!==i?i:[],e=null!==(a=null===(n=t.getAttribute("exportparts"))||void 0===n?void 0:n.split(",").map((t=>t.split(":")[1])))&&void 0!==a?a:[];new Array(...o,...e).filter(s).map((t=>t.trim())).forEach((t=>l.add(t)))}if(0===l.size)return void this.removeAttribute("exportparts");const h=[...l.values()].flatMap((t=>c.map((o=>`${t}:${o}--${t}`))));this.setAttribute("exportparts",[...this.part,...h].join(", "))}}var Ko,Zo;Uo=Wo,Eo([x()],ko.prototype,"exportpartsPrefix",void 0),Eo([function(t,o){const e=()=>JSON.parse(JSON.stringify(t));return x({type:Object,converter:{fromAttribute:t=>{if(null==t)return e();try{return JSON.parse(t)}catch{return e()}},toAttribute:t=>JSON.stringify(t)},hasChanged:(t,o)=>!I(t,o),...null!=o?o:{}})}([])],ko.prototype,"exportpartsPrefixes",void 0),Eo([x()],ko.prototype,"customStylesheet",void 0),Ot`
81
+ const Co=window,xo=Co.ShadowRoot&&(void 0===Co.ShadyCSS||Co.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype;class Ro extends mo{createRenderRoot(){const t=this.constructor;t.elementDefinitions&&!t.registry&&(t.registry=new CustomElementRegistry,Object.entries(t.elementDefinitions).forEach((([o,e])=>t.registry.define(o,e))));const o={...t.shadowRootOptions,customElements:t.registry},e=this.renderOptions.creationScope=this.attachShadow(o);return((t,o)=>{xo?t.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):o.forEach((o=>{const e=document.createElement("style"),r=Co.litNonce;void 0!==r&&e.setAttribute("nonce",r),e.textContent=o.cssText,t.appendChild(e)}))})(e,t.elementStyles),e}}var Uo,Eo=function(t,o,e,r){for(var i,n=arguments.length,a=n<3?o:null===r?r=Object.getOwnPropertyDescriptor(o,e):r,s=t.length-1;s>=0;s--)(i=t[s])&&(a=(n<3?i(a):n>3?i(o,e,a):i(o,e))||a);return n>3&&a&&Object.defineProperty(o,e,a),a};const Io=Symbol("constructorPrototype"),Lo=Symbol("constructorName"),Wo=Symbol("exportpartsDebouncer");class ko extends Ro{constructor(){super(),this[Uo]=new E(5),this[Lo]=this.constructor.name,this[Io]=this.constructor.prototype}adoptedCallback(){this.constructor.name!==this[Lo]&&Object.setPrototypeOf(this,this[Io])}updated(t){super.updated(t),setTimeout((()=>{this.contentAvailableCallback(t),this.scheduleExportpartsUpdate()}),0)}contentAvailableCallback(t){var o,e;if((null!==(e=null===(o=this.shadowRoot)||void 0===o?void 0:o.querySelectorAll(".ft-lit-element--custom-stylesheet"))&&void 0!==e?e:[]).forEach((t=>t.remove())),this.customStylesheet){const t=document.createElement("style");t.classList.add("ft-lit-element--custom-stylesheet"),t.innerHTML=this.customStylesheet,this.shadowRoot.append(t)}}scheduleExportpartsUpdate(){this[Wo].run((()=>{var t;(null===(t=this.exportpartsPrefix)||void 0===t?void 0:t.trim())?this.setExportpartsAttribute([this.exportpartsPrefix]):null!=this.exportpartsPrefixes&&this.exportpartsPrefixes.length>0&&this.setExportpartsAttribute(this.exportpartsPrefixes)}))}setExportpartsAttribute(t){var o,e,r,i,n,a;const s=t=>null!=t&&t.trim().length>0,c=t.filter(s).map((t=>t.trim()));if(0===c.length)return void this.removeAttribute("exportparts");const l=new Set;for(let t of null!==(e=null===(o=this.shadowRoot)||void 0===o?void 0:o.querySelectorAll("[part],[exportparts]"))&&void 0!==e?e:[]){const o=null!==(i=null===(r=t.getAttribute("part"))||void 0===r?void 0:r.split(" "))&&void 0!==i?i:[],e=null!==(a=null===(n=t.getAttribute("exportparts"))||void 0===n?void 0:n.split(",").map((t=>t.split(":")[1])))&&void 0!==a?a:[];new Array(...o,...e).filter(s).map((t=>t.trim())).forEach((t=>l.add(t)))}if(0===l.size)return void this.removeAttribute("exportparts");const h=[...l.values()].flatMap((t=>c.map((o=>`${t}:${o}--${t}`))));this.setAttribute("exportparts",[...this.part,...h].join(", "))}}Uo=Wo,Eo([C()],ko.prototype,"exportpartsPrefix",void 0),Eo([function(t,o){const e=()=>JSON.parse(JSON.stringify(t));return C({type:Object,converter:{fromAttribute:t=>{if(null==t)return e();try{return JSON.parse(t)}catch{return e()}},toAttribute:t=>JSON.stringify(t)},hasChanged:(t,o)=>!I(t,o),...null!=o?o:{}})}([])],ko.prototype,"exportpartsPrefixes",void 0),Eo([C()],ko.prototype,"customStylesheet",void 0);const Ko=vo.create("--ft-utils-highlight-html-background-color","","COLOR","#FFF26E");var Zo,$o;Ot`
82
+ .highlight-html-match {
83
+ background: ${Ko};
84
+ }
85
+ `,Ot`
82
86
  .ft-no-text-select {
83
87
  -webkit-touch-callout: none;
84
88
  -webkit-user-select: none;
@@ -110,18 +114,18 @@ const Co=window,xo=Co.ShadowRoot&&(void 0===Co.ShadyCSS||Co.ShadyCSS.nativeShado
110
114
  display: inline-block;
111
115
  width: 0;
112
116
  }
113
- `,window.ftReduxStores||(window.ftReduxStores={}),navigator.vendor&&navigator.vendor.match(/apple/i)||(null===(Zo=null===(Ko=window.safari)||void 0===Ko?void 0:Ko.pushNotification)||void 0===Zo||Zo.toString());
117
+ `,window.ftReduxStores||(window.ftReduxStores={}),navigator.vendor&&navigator.vendor.match(/apple/i)||(null===($o=null===(Zo=window.safari)||void 0===Zo?void 0:Zo.pushNotification)||void 0===$o||$o.toString());
114
118
  /**
115
119
  * @license
116
120
  * Copyright 2017 Google LLC
117
121
  * SPDX-License-Identifier: BSD-3-Clause
118
122
  */
119
- const $o=2,Ao=t=>(...o)=>({_$litDirective$:t,values:o});class Mo{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,o,e){this._$Ct=t,this._$AM=o,this._$Ci=e}_$AS(t,o){return this.update(t,o)}update(t,o){return this.render(...o)}}
123
+ const Ao=2,Mo=t=>(...o)=>({_$litDirective$:t,values:o});class Fo{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,o,e){this._$Ct=t,this._$AM=o,this._$Ci=e}_$AS(t,o){return this.update(t,o)}update(t,o){return this.render(...o)}}
120
124
  /**
121
125
  * @license
122
126
  * Copyright 2020 Google LLC
123
127
  * SPDX-License-Identifier: BSD-3-Clause
124
- */const{D:Fo}=ft,Bo=()=>document.createComment(""),zo=(t,o,e)=>{const r=t._$AA.parentNode,i=void 0===o?t._$AB:o._$AA;if(void 0===e){const o=r.insertBefore(Bo(),i),n=r.insertBefore(Bo(),i);e=new Fo(o,n,t,t.options)}else{const o=e._$AB.nextSibling,n=e._$AM,a=n!==t;if(a){let o;e._$AQ?.(t),e._$AM=t,void 0!==e._$AP&&(o=t._$AU)!==n._$AU&&e._$AP(o)}if(o!==i||a){let t=e._$AA;for(;t!==o;){const o=t.nextSibling;r.insertBefore(t,i),t=o}}}return e},Do=(t,o,e=t)=>(t._$AI(o,e),t),Po={},_o=t=>{t._$AP?.(!1,!0);let o=t._$AA;const e=t._$AB.nextSibling;for(;o!==e;){const t=o.nextSibling;o.remove(),o=t}},To=(t,o,e)=>{const r=new Map;for(let i=o;i<=e;i++)r.set(t[i],i);return r},Go=Ao(class extends Mo{constructor(t){if(super(t),t.type!==$o)throw Error("repeat() can only be used in text expressions")}ht(t,o,e){let r;void 0===e?e=o:void 0!==o&&(r=o);const i=[],n=[];let a=0;for(const o of t)i[a]=r?r(o,a):a,n[a]=e(o,a),a++;return{values:n,keys:i}}render(t,o,e){return this.ht(t,o,e).values}update(t,[o,e,r]){const i=(t=>t._$AH)(t),{values:n,keys:a}=this.ht(o,e,r);if(!Array.isArray(i))return this.dt=a,n;const s=this.dt??=[],c=[];let l,h,f=0,p=i.length-1,d=0,y=n.length-1;for(;f<=p&&d<=y;)if(null===i[f])f++;else if(null===i[p])p--;else if(s[f]===a[d])c[d]=Do(i[f],n[d]),f++,d++;else if(s[p]===a[y])c[y]=Do(i[p],n[y]),p--,y--;else if(s[f]===a[y])c[y]=Do(i[f],n[y]),zo(t,c[y+1],i[f]),f++,y--;else if(s[p]===a[d])c[d]=Do(i[p],n[d]),zo(t,i[f],i[p]),p--,d++;else if(void 0===l&&(l=To(a,d,y),h=To(s,f,p)),l.has(s[f]))if(l.has(s[p])){const o=h.get(a[d]),e=void 0!==o?i[o]:null;if(null===e){const o=zo(t,i[f]);Do(o,n[d]),c[d]=o}else c[d]=Do(e,n[d]),zo(t,i[f],e),i[o]=null;d++}else _o(i[p]),p--;else _o(i[f]),f++;for(;d<=y;){const o=zo(t,c[y+1]);Do(o,n[d]),c[d++]=o}for(;f<=p;){const t=i[f++];null!==t&&_o(t)}return this.dt=a,((t,o=Po)=>{t._$AH=o})(t,c),V}});
128
+ */const{D:Bo}=ft,zo=()=>document.createComment(""),Do=(t,o,e)=>{const r=t._$AA.parentNode,i=void 0===o?t._$AB:o._$AA;if(void 0===e){const o=r.insertBefore(zo(),i),n=r.insertBefore(zo(),i);e=new Bo(o,n,t,t.options)}else{const o=e._$AB.nextSibling,n=e._$AM,a=n!==t;if(a){let o;e._$AQ?.(t),e._$AM=t,void 0!==e._$AP&&(o=t._$AU)!==n._$AU&&e._$AP(o)}if(o!==i||a){let t=e._$AA;for(;t!==o;){const o=t.nextSibling;r.insertBefore(t,i),t=o}}}return e},Po=(t,o,e=t)=>(t._$AI(o,e),t),_o={},To=t=>{t._$AP?.(!1,!0);let o=t._$AA;const e=t._$AB.nextSibling;for(;o!==e;){const t=o.nextSibling;o.remove(),o=t}},Go=(t,o,e)=>{const r=new Map;for(let i=o;i<=e;i++)r.set(t[i],i);return r},jo=Mo(class extends Fo{constructor(t){if(super(t),t.type!==Ao)throw Error("repeat() can only be used in text expressions")}ht(t,o,e){let r;void 0===e?e=o:void 0!==o&&(r=o);const i=[],n=[];let a=0;for(const o of t)i[a]=r?r(o,a):a,n[a]=e(o,a),a++;return{values:n,keys:i}}render(t,o,e){return this.ht(t,o,e).values}update(t,[o,e,r]){const i=(t=>t._$AH)(t),{values:n,keys:a}=this.ht(o,e,r);if(!Array.isArray(i))return this.dt=a,n;const s=this.dt??=[],c=[];let l,h,f=0,p=i.length-1,d=0,y=n.length-1;for(;f<=p&&d<=y;)if(null===i[f])f++;else if(null===i[p])p--;else if(s[f]===a[d])c[d]=Po(i[f],n[d]),f++,d++;else if(s[p]===a[y])c[y]=Po(i[p],n[y]),p--,y--;else if(s[f]===a[y])c[y]=Po(i[f],n[y]),Do(t,c[y+1],i[f]),f++,y--;else if(s[p]===a[d])c[d]=Po(i[p],n[d]),Do(t,i[f],i[p]),p--,d++;else if(void 0===l&&(l=Go(a,d,y),h=Go(s,f,p)),l.has(s[f]))if(l.has(s[p])){const o=h.get(a[d]),e=void 0!==o?i[o]:null;if(null===e){const o=Do(t,i[f]);Po(o,n[d]),c[d]=o}else c[d]=Po(e,n[d]),Do(t,i[f],e),i[o]=null;d++}else To(i[p]),p--;else To(i[f]),f++;for(;d<=y;){const o=Do(t,c[y+1]);Po(o,n[d]),c[d++]=o}for(;f<=p;){const t=i[f++];null!==t&&To(t)}return this.dt=a,((t,o=_o)=>{t._$AH=o})(t,c),V}});
125
129
  /**
126
130
  * @license
127
131
  * Copyright 2017 Google LLC
@@ -132,10 +136,10 @@ const $o=2,Ao=t=>(...o)=>({_$litDirective$:t,values:o});class Mo{constructor(t){
132
136
  * Copyright 2017 Google LLC
133
137
  * SPDX-License-Identifier: BSD-3-Clause
134
138
  */
135
- class jo extends Mo{constructor(t){if(super(t),this.et=q,t.type!==$o)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===q||null==t)return this.vt=void 0,this.et=t;if(t===V)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.vt;this.et=t;const o=[t];return o.raw=o,this.vt={_$litType$:this.constructor.resultType,strings:o,values:[]}}}jo.directiveName="unsafeHTML",jo.resultType=1;const Ho=Ao(jo),Yo={padding:vo.create("--ft-infinite-scroll-padding","","SIZE","0"),itemsGap:vo.create("--ft-infinite-scroll-items-gap","","SIZE","4px"),itemContainerMinHeight:vo.create("--ft-infinite-scroll-item-container-min-height","","SIZE",".1px")},Jo=Ot`
139
+ class Ho extends Fo{constructor(t){if(super(t),this.et=q,t.type!==Ao)throw Error(this.constructor.directiveName+"() can only be used in child bindings")}render(t){if(t===q||null==t)return this.vt=void 0,this.et=t;if(t===V)return t;if("string"!=typeof t)throw Error(this.constructor.directiveName+"() called with a non-string value");if(t===this.et)return this.vt;this.et=t;const o=[t];return o.raw=o,this.vt={_$litType$:this.constructor.resultType,strings:o,values:[]}}}Ho.directiveName="unsafeHTML",Ho.resultType=1;const Yo=Mo(Ho),Jo={padding:vo.create("--ft-infinite-scroll-padding","","SIZE","0"),itemsGap:vo.create("--ft-infinite-scroll-items-gap","","SIZE","4px"),itemContainerMinHeight:vo.create("--ft-infinite-scroll-item-container-min-height","","SIZE",".1px")},Vo=Ot`
136
140
  .items-container {
137
141
  position: relative;
138
- padding: ${Yo.padding};
142
+ padding: ${Jo.padding};
139
143
  outline: none;
140
144
  }
141
145
 
@@ -157,7 +161,7 @@ class jo extends Mo{constructor(t){if(super(t),this.et=q,t.type!==$o)throw Error
157
161
  By adding this gap we ensure that the previous item will be fully hidden
158
162
  and even if its size changes, it will not impact the scroll offset
159
163
  */
160
- margin-top: ${Yo.itemsGap};
164
+ margin-top: ${Jo.itemsGap};
161
165
  }
162
166
 
163
167
  .resizable:not(.rendered) {
@@ -165,24 +169,24 @@ class jo extends Mo{constructor(t){if(super(t),this.et=q,t.type!==$o)throw Error
165
169
  }
166
170
 
167
171
  .item-container, .resizable.rendered {
168
- min-height: ${Yo.itemContainerMinHeight}
172
+ min-height: ${Jo.itemContainerMinHeight}
169
173
  }
170
174
 
171
175
  .rendered {
172
176
  display: flow-root;
173
177
  }
174
- `;var Vo=function(t,o,e,r){for(var i,n=arguments.length,a=n<3?o:null===r?r=Object.getOwnPropertyDescriptor(o,e):r,s=t.length-1;s>=0;s--)(i=t[s])&&(a=(n<3?i(a):n>3?i(o,e,a):i(o,e))||a);return n>3&&a&&Object.defineProperty(o,e,a),a};class qo extends CustomEvent{constructor(t,o){super("visible-items-change",{detail:{visibleIndexes:t,visibleItems:o}})}}class Xo extends Event{constructor(){super("scrolled-to-target")}}class Qo extends ko{constructor(){super(...arguments),this.items=[],this.renderItem=()=>oo``,this.getItemKey=(t,o)=>`${o} - ${JSON.stringify(t)}`,this.internalScroll=!1,this.renderBeforeFirst=1,this.renderAfterLast=1,this.visibleItems=[],this.scrolledToTarget=!1,this.scrolling=!1,this.alreadyRenderedIndexes=new Set,this.scrollDebouncer=new o(5),this.scrollDoneDebouncer=new o(10),this.onVisibilityChange=t=>{let o=new Set(this.visibleItems),e=new Set;for(let r of t){let t=+r.target.attributes.getNamedItem("data-item-index").value;r.intersectionRect.height>0?(o.add(t),e.add(t)):e.has(t)||o.delete(t)}this.visibleItems=[...o].sort(((t,o)=>t-o))},this.intersectionObserver=new IntersectionObserver(this.onVisibilityChange),this.scrollingDebouncer=new o(100),this.scrollListener=()=>{this.scrolling=!0,this.scrollingDebouncer.run((()=>{this.scrolling=!1}))},this.onResize=t=>{this.triggerFindScrollableParent();let o=this.searchFirstVisibleItem([...this.itemsContainer.children]),e=this.scrollable.scrollTop-this.getOffset(o);for(const o of t){const t=+o.target.parentElement.getAttribute("data-item-index");(this.alreadyRenderedIndexes.has(t)||o.target.classList.contains("rendered"))&&(o.target.parentElement.style.height=o.target.clientHeight+"px")}null!=o&&null!=e&&this.scrolledToTarget&&(this.scrollable.scrollTop=this.getOffset(o)+Math.min(e,o.clientHeight))},this.resizeObserver=new ResizeObserver(this.onResize),this.onMutation=()=>{[...this.itemsContainer.children].forEach((t=>{this.resizeObserver.observe(t.children.item(0)),this.intersectionObserver.observe(t)}))},this.mutationObserver=new MutationObserver(this.onMutation),this.resetVisibleItemsDebouncer=new o(10)}get scrollable(){var t;return null!==(t=this.internalScroll?this.internalScrollable:this.firstScrollableParent)&&void 0!==t?t:document.body}render(){return oo`
178
+ `;var qo=function(t,o,e,r){for(var i,n=arguments.length,a=n<3?o:null===r?r=Object.getOwnPropertyDescriptor(o,e):r,s=t.length-1;s>=0;s--)(i=t[s])&&(a=(n<3?i(a):n>3?i(o,e,a):i(o,e))||a);return n>3&&a&&Object.defineProperty(o,e,a),a};class Xo extends CustomEvent{constructor(t,o){super("visible-items-change",{detail:{visibleIndexes:t,visibleItems:o}})}}class Qo extends Event{constructor(){super("scrolled-to-target")}}class te extends ko{constructor(){super(...arguments),this.items=[],this.renderItem=()=>oo``,this.getItemKey=(t,o)=>`${o} - ${JSON.stringify(t)}`,this.internalScroll=!1,this.renderBeforeFirst=1,this.renderAfterLast=1,this.visibleItems=[],this.scrolledToTarget=!1,this.scrolling=!1,this.alreadyRenderedIndexes=new Set,this.scrollDebouncer=new E(5),this.scrollDoneDebouncer=new E(10),this.onVisibilityChange=t=>{let o=new Set(this.visibleItems),e=new Set;for(let r of t){let t=+r.target.attributes.getNamedItem("data-item-index").value;r.intersectionRect.height>0?(o.add(t),e.add(t)):e.has(t)||o.delete(t)}this.visibleItems=[...o].sort(((t,o)=>t-o))},this.intersectionObserver=new IntersectionObserver(this.onVisibilityChange),this.scrollingDebouncer=new E(100),this.scrollListener=()=>{this.scrolling=!0,this.scrollingDebouncer.run((()=>{this.scrolling=!1}))},this.onResize=t=>{this.triggerFindScrollableParent();let o=this.searchFirstVisibleItem([...this.itemsContainer.children]),e=this.scrollable.scrollTop-this.getOffset(o);for(const o of t){const t=+o.target.parentElement.getAttribute("data-item-index");(this.alreadyRenderedIndexes.has(t)||o.target.classList.contains("rendered"))&&(o.target.parentElement.style.height=o.target.clientHeight+"px")}null!=o&&null!=e&&this.scrolledToTarget&&(this.scrollable.scrollTop=this.getOffset(o)+Math.min(e,o.clientHeight))},this.resizeObserver=new ResizeObserver(this.onResize),this.onMutation=()=>{[...this.itemsContainer.children].forEach((t=>{this.resizeObserver.observe(t.children.item(0)),this.intersectionObserver.observe(t)}))},this.mutationObserver=new MutationObserver(this.onMutation),this.resetVisibleItemsDebouncer=new E(10)}get scrollable(){var t;return null!==(t=this.internalScroll?this.internalScrollable:this.firstScrollableParent)&&void 0!==t?t:document.body}render(){return oo`
175
179
  <div class="items-container ${this.internalScroll?"scrollable":""}"
176
180
  tabindex="-1"
177
181
  @find-scrollable-parent=${this.findScrollableParent}>
178
- ${Go(this.items,((t,o)=>this.getItemKey(t,o)),((t,o)=>this.renderItemContainer(t,o)))}
182
+ ${jo(this.items,((t,o)=>this.getItemKey(t,o)),((t,o)=>this.renderItemContainer(t,o)))}
179
183
  </div>
180
184
  `}renderItemContainer(t,o){const e=!this.scrolling&&this.scrolledToTarget&&this.visibleItems.includes(o),r=this.alreadyRenderedIndexes.has(o)||this.scrolledToTarget&&o>=this.visibleItems[0]-this.renderBeforeFirst&&o<=(null!=(i=this.visibleItems)?i:[])[(null!=i?i:[]).length-1]+this.renderAfterLast;var i;r&&this.alreadyRenderedIndexes.add(o);return oo`
181
185
  <div id="item-${o}"
182
186
  class="item-container ${e?"visible":""}"
183
187
  data-item-index="${o}">
184
188
  <div class="resizable ${e?"visible":""} ${r?"rendered":""}">
185
- ${r?(()=>{const e=this.renderItem(t,o);return"string"==typeof e?oo`${Ho(e)}`:e})():null}
189
+ ${r?(()=>{const e=this.renderItem(t,o);return"string"==typeof e?oo`${Yo(e)}`:e})():null}
186
190
  </div>
187
191
  </div>
188
- `}resetScroll(){this.triggerFindScrollableParent(),this.intersectionObserver.disconnect(),this.resizeObserver.disconnect(),this.visibleItems=[],this.scrolledToTarget=!1,this.scrollDebouncer.run((()=>{var t;let o=null!==(t=this.scrollToIndex)&&void 0!==t?t:this.scrollToItem?this.items.indexOf(this.scrollToItem):-1;o>=this.items.length&&(o=-1);let e=this.getItem(o);this.scrollToTarget(e),this.scrollDoneDebouncer.run((()=>{this.onMutation(),this.scrolledToTarget=!0}))}))}getItem(t){var o;return null===(o=this.shadowRoot)||void 0===o?void 0:o.querySelector(`#item-${t}`)}scrollToTarget(t){var o;if(t){let e=+(null!==(o=t.getAttribute("data-item-index"))&&void 0!==o?o:"0");this.scrollable&&0===e?this.scrollable.scrollTop=0:this.scrollable.scrollTop=this.getOffset(t)}}getOffset(t){var o;let e=0,r=t;for(;r&&r.offsetParent!==this.scrollable.offsetParent;)e+=r.offsetTop,r=r.offsetParent;return e+(null!==(o=null==r?void 0:r.offsetTop)&&void 0!==o?o:0)-this.scrollable.offsetTop}getBottomOffset(t){var o;return this.getOffset(t)+(null!==(o=null==t?void 0:t.clientHeight)&&void 0!==o?o:0)}appendItems(...t){this.items=[...this.items,...t]}prependItems(...t){this.items=[...t,...this.items]}connectedCallback(){super.connectedCallback(),setTimeout((()=>{this.triggerFindScrollableParent(),this.initIntersectionObserver(),this.mutationObserver.disconnect(),this.mutationObserver.observe(this.itemsContainer,{childList:!0})}),0)}initIntersectionObserver(){this.intersectionObserver.disconnect(),this.intersectionObserver=new IntersectionObserver(this.onVisibilityChange,{root:this.scrollable,rootMargin:"-8px",threshold:[0,.01,.1,1]})}triggerFindScrollableParent(){var t;null===(t=this.itemsContainer)||void 0===t||t.dispatchEvent(new Event("find-scrollable-parent",{composed:!0}))}findScrollableParent(t){var o;let e,r;t.stopPropagation();for(let o of t.composedPath()){const t=o,i=this.elementCanScroll(t);if(t.clientHeight&&t.clientHeight<t.scrollHeight&&i){e=t;break}i&&(r=t)}let i=e||r;i!==this.firstScrollableParent&&(null===(o=this.firstScrollableParent)||void 0===o||o.removeEventListener("scroll",this.scrollListener),null==i||i.addEventListener("scroll",this.scrollListener),this.firstScrollableParent=i,this.initIntersectionObserver(),this.resetScroll())}elementCanScroll(t){try{return["auto","scroll"].includes(getComputedStyle(t).overflowY)}catch(t){return!1}}searchFirstVisibleItem(t,o,e){if(o=null!=o?o:0,(e=null!=e?e:t.length-1)-o<=0)return t[o];const r=Math.floor((e-o)/2)+o;return this.getOffset(t[r])>this.scrollable.scrollTop?this.searchFirstVisibleItem(t,o,r-1):this.getBottomOffset(t[r])<this.scrollable.scrollTop?this.searchFirstVisibleItem(t,r+1,e):t[r]}disconnectedCallback(){super.disconnectedCallback(),this.intersectionObserver.disconnect(),this.resizeObserver.disconnect(),this.mutationObserver.disconnect()}firstUpdated(t){super.firstUpdated(t),this.resetScroll()}update(t){super.update(t),t.has("items")&&(this.alreadyRenderedIndexes=new Set),!t.has("scrollToItem")&&!t.has("scrollToIndex")||null==this.scrollToItem&&null==this.scrollToIndex||this.resetScroll()}updated(t){super.updated(t),(t.has("visibleItems")||t.has("items"))&&this.onVisibleItemsChange(),t.has("scrolledToTarget")&&this.scrolledToTarget&&(null!=this.scrollToItem||null!=this.scrollToIndex)&&this.dispatchEvent(new Xo)}onVisibleItemsChange(){const t=this.visibleItems.every(((t,o)=>null==this.visibleItems[o+1]||t+1===this.visibleItems[o+1]));t||I(this.visibleItems,this.lastNotOkVisibleItems)?(this.resetVisibleItemsDebouncer.cancel(),this.dispatchEvent(new qo(this.visibleItems,this.visibleItems.map((t=>this.items[t]))))):this.resetVisibleItemsDebouncer.run((()=>{this.lastNotOkVisibleItems=[...this.visibleItems],this.visibleItems=[],this.initIntersectionObserver(),this.onMutation()}))}}var te;Qo.styles=Jo,Vo([x({type:Array})],Qo.prototype,"items",void 0),Vo([x({attribute:!1})],Qo.prototype,"renderItem",void 0),Vo([x({attribute:!1})],Qo.prototype,"getItemKey",void 0),Vo([x({type:Object})],Qo.prototype,"scrollToItem",void 0),Vo([x({type:Number})],Qo.prototype,"scrollToIndex",void 0),Vo([x({type:Boolean})],Qo.prototype,"internalScroll",void 0),Vo([x({type:Number})],Qo.prototype,"renderBeforeFirst",void 0),Vo([x({type:Number})],Qo.prototype,"renderAfterLast",void 0),Vo([R({hasChanged:(t,o)=>null!=t&&null==o||t.length!==o.length||t[0]!==o[0]})],Qo.prototype,"visibleItems",void 0),Vo([E(".scrollable")],Qo.prototype,"internalScrollable",void 0),Vo([E(".items-container")],Qo.prototype,"itemsContainer",void 0),Vo([R()],Qo.prototype,"scrolledToTarget",void 0),Vo([R()],Qo.prototype,"scrolling",void 0),(te="ft-infinite-scroll",t=>{window.customElements.get(te)||window.customElements.define(te,t)})(Qo),t.FtInfiniteScroll=Qo,t.FtInfiniteScrollCssVariables=Yo,t.ScrolledToTargetEvent=Xo,t.VisibleItemsChangeEvent=qo,t.styles=Jo}({});
192
+ `}resetScroll(){this.triggerFindScrollableParent(),this.intersectionObserver.disconnect(),this.resizeObserver.disconnect(),this.visibleItems=[],this.scrolledToTarget=!1,this.scrollDebouncer.run((()=>{var t;let o=null!==(t=this.scrollToIndex)&&void 0!==t?t:this.scrollToItem?this.items.indexOf(this.scrollToItem):-1;o>=this.items.length&&(o=-1);let e=this.getItem(o);this.scrollToTarget(e),this.scrollDoneDebouncer.run((()=>{this.onMutation(),this.scrolledToTarget=!0}))}))}getItem(t){var o;return null===(o=this.shadowRoot)||void 0===o?void 0:o.querySelector(`#item-${t}`)}scrollToTarget(t){var o;if(t){let e=+(null!==(o=t.getAttribute("data-item-index"))&&void 0!==o?o:"0");this.scrollable&&0===e?this.scrollable.scrollTop=0:this.scrollable.scrollTop=this.getOffset(t)}}getOffset(t){var o;let e=0,r=t;for(;r&&r.offsetParent!==this.scrollable.offsetParent;)e+=r.offsetTop,r=r.offsetParent;return e+(null!==(o=null==r?void 0:r.offsetTop)&&void 0!==o?o:0)-this.scrollable.offsetTop}getBottomOffset(t){var o;return this.getOffset(t)+(null!==(o=null==t?void 0:t.clientHeight)&&void 0!==o?o:0)}appendItems(...t){this.items=[...this.items,...t]}prependItems(...t){this.items=[...t,...this.items]}connectedCallback(){super.connectedCallback(),setTimeout((()=>{this.triggerFindScrollableParent(),this.initIntersectionObserver(),this.mutationObserver.disconnect(),this.mutationObserver.observe(this.itemsContainer,{childList:!0})}),0)}initIntersectionObserver(){this.intersectionObserver.disconnect(),this.intersectionObserver=new IntersectionObserver(this.onVisibilityChange,{root:this.scrollable,rootMargin:"-8px",threshold:[0,.01,.1,1]})}triggerFindScrollableParent(){var t;null===(t=this.itemsContainer)||void 0===t||t.dispatchEvent(new Event("find-scrollable-parent",{composed:!0}))}findScrollableParent(t){var o;let e,r;t.stopPropagation();for(let o of t.composedPath()){const t=o,i=this.elementCanScroll(t);if(t.clientHeight&&t.clientHeight<t.scrollHeight&&i){e=t;break}i&&(r=t)}let i=e||r;i!==this.firstScrollableParent&&(null===(o=this.firstScrollableParent)||void 0===o||o.removeEventListener("scroll",this.scrollListener),null==i||i.addEventListener("scroll",this.scrollListener),this.firstScrollableParent=i,this.initIntersectionObserver(),this.resetScroll())}elementCanScroll(t){try{return["auto","scroll"].includes(getComputedStyle(t).overflowY)}catch(t){return!1}}searchFirstVisibleItem(t,o,e){if(o=null!=o?o:0,(e=null!=e?e:t.length-1)-o<=0)return t[o];const r=Math.floor((e-o)/2)+o;return this.getOffset(t[r])>this.scrollable.scrollTop?this.searchFirstVisibleItem(t,o,r-1):this.getBottomOffset(t[r])<this.scrollable.scrollTop?this.searchFirstVisibleItem(t,r+1,e):t[r]}disconnectedCallback(){super.disconnectedCallback(),this.intersectionObserver.disconnect(),this.resizeObserver.disconnect(),this.mutationObserver.disconnect()}firstUpdated(t){super.firstUpdated(t),this.resetScroll()}update(t){super.update(t),t.has("items")&&(this.alreadyRenderedIndexes=new Set),!t.has("scrollToItem")&&!t.has("scrollToIndex")||null==this.scrollToItem&&null==this.scrollToIndex||this.resetScroll()}updated(t){super.updated(t),(t.has("visibleItems")||t.has("items"))&&this.onVisibleItemsChange(),t.has("scrolledToTarget")&&this.scrolledToTarget&&(null!=this.scrollToItem||null!=this.scrollToIndex)&&this.dispatchEvent(new Qo)}onVisibleItemsChange(){const t=this.visibleItems.every(((t,o)=>null==this.visibleItems[o+1]||t+1===this.visibleItems[o+1]));t||I(this.visibleItems,this.lastNotOkVisibleItems)?(this.resetVisibleItemsDebouncer.cancel(),this.dispatchEvent(new Xo(this.visibleItems,this.visibleItems.map((t=>this.items[t]))))):this.resetVisibleItemsDebouncer.run((()=>{this.lastNotOkVisibleItems=[...this.visibleItems],this.visibleItems=[],this.initIntersectionObserver(),this.onMutation()}))}}var oe;te.styles=Vo,qo([C({type:Array})],te.prototype,"items",void 0),qo([C({attribute:!1})],te.prototype,"renderItem",void 0),qo([C({attribute:!1})],te.prototype,"getItemKey",void 0),qo([C({type:Object})],te.prototype,"scrollToItem",void 0),qo([C({type:Number})],te.prototype,"scrollToIndex",void 0),qo([C({type:Boolean})],te.prototype,"internalScroll",void 0),qo([C({type:Number})],te.prototype,"renderBeforeFirst",void 0),qo([C({type:Number})],te.prototype,"renderAfterLast",void 0),qo([x({hasChanged:(t,o)=>null!=t&&null==o||t.length!==o.length||t[0]!==o[0]})],te.prototype,"visibleItems",void 0),qo([U(".scrollable")],te.prototype,"internalScrollable",void 0),qo([U(".items-container")],te.prototype,"itemsContainer",void 0),qo([x()],te.prototype,"scrolledToTarget",void 0),qo([x()],te.prototype,"scrolling",void 0),(oe="ft-infinite-scroll",t=>{window.customElements.get(oe)||window.customElements.define(oe,t)})(te),t.FtInfiniteScroll=te,t.FtInfiniteScrollCssVariables=Jo,t.ScrolledToTargetEvent=Qo,t.VisibleItemsChangeEvent=Xo,t.styles=Vo}({});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-infinite-scroll",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "description": "An infinite scroller.",
5
5
  "keywords": [
6
6
  "Lit"
@@ -19,8 +19,8 @@
19
19
  "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
20
  },
21
21
  "dependencies": {
22
- "@fluid-topics/ft-wc-utils": "1.1.1",
22
+ "@fluid-topics/ft-wc-utils": "1.1.3",
23
23
  "lit": "3.1.0"
24
24
  },
25
- "gitHead": "ceae4aed142c27cbf6034f45bb6e3f562163cc15"
25
+ "gitHead": "0d44a470e710f185c37e42ee87be4481a3bdf793"
26
26
  }