diff --git a/dist/pwa-install.bundle.js b/dist/pwa-install.bundle.js index 30e399a..18edf5e 100644 --- a/dist/pwa-install.bundle.js +++ b/dist/pwa-install.bundle.js @@ -1,2 +1,2 @@ -var PWAInstallComponent;(()=>{"use strict";var e={d:(t,a)=>{for(var i in a)e.o(a,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:a[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{PWAInstallElement:()=>aa});var a={};e.r(a),e.d(a,{templates:()=>dt});var i={};e.r(i),e.d(i,{templates:()=>ct});var o={};e.r(o),e.d(o,{templates:()=>pt});var s={};e.r(s),e.d(s,{templates:()=>ht});var l={};e.r(l),e.d(l,{templates:()=>bt});var n={};e.r(n),e.d(n,{templates:()=>gt});var r={};e.r(r),e.d(r,{templates:()=>ut});var d={};e.r(d),e.d(d,{templates:()=>mt});var c={};e.r(c),e.d(c,{templates:()=>ft});var p={};e.r(p),e.d(p,{templates:()=>vt});var h={};e.r(h),e.d(h,{templates:()=>wt});var b={};e.r(b),e.d(b,{templates:()=>yt});var g={};e.r(g),e.d(g,{templates:()=>xt});var u={};e.r(u),e.d(u,{templates:()=>kt});var m={};e.r(m),e.d(m,{templates:()=>_t});var f={};e.r(f),e.d(f,{templates:()=>$t});var v={};e.r(v),e.d(v,{templates:()=>At});var w={};e.r(w),e.d(w,{templates:()=>St});var y={};e.r(y),e.d(y,{templates:()=>Et});var x={};e.r(x),e.d(x,{templates:()=>Dt});const k=globalThis,_=k.ShadowRoot&&(void 0===k.ShadyCSS||k.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,$=Symbol(),A=new WeakMap;class S{constructor(e,t,a){if(this._$cssResult$=!0,a!==$)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(_&&void 0===e){const a=void 0!==t&&1===t.length;a&&(e=A.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),a&&A.set(t,e))}return e}toString(){return this.cssText}}const E=(e,...t)=>{const a=1===e.length?e[0]:t.reduce(((t,a,i)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(a)+e[i+1]),e[0]);return new S(a,e,$)},D=(e,t)=>{if(_)e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const a of t){const t=document.createElement("style"),i=k.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=a.cssText,e.appendChild(t)}},P=_?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const a of e.cssRules)t+=a.cssText;return(e=>new S("string"==typeof e?e:e+"",void 0,$))(t)})(e):e,{is:C,defineProperty:j,getOwnPropertyDescriptor:z,getOwnPropertyNames:R,getOwnPropertySymbols:M,getPrototypeOf:T}=Object,I=globalThis,L=I.trustedTypes,U=L?L.emptyScript:"",H=I.reactiveElementPolyfillSupport,O=(e,t)=>e,B={toAttribute(e,t){switch(t){case Boolean:e=e?U:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let a=e;switch(t){case Boolean:a=null!==e;break;case Number:a=null===e?null:Number(e);break;case Object:case Array:try{a=JSON.parse(e)}catch(e){a=null}}return a}},N=(e,t)=>!C(e,t),q={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:N};Symbol.metadata??=Symbol("metadata"),I.litPropertyMetadata??=new WeakMap;class W extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=q){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const a=Symbol(),i=this.getPropertyDescriptor(e,a,t);void 0!==i&&j(this.prototype,e,i)}}static getPropertyDescriptor(e,t,a){const{get:i,set:o}=z(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return i?.call(this)},set(t){const s=i?.call(this);o.call(this,t),this.requestUpdate(e,s,a)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??q}static _$Ei(){if(this.hasOwnProperty(O("elementProperties")))return;const e=T(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(O("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(O("properties"))){const e=this.properties,t=[...R(e),...M(e)];for(const a of t)this.createProperty(a,e[a])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,a]of t)this.elementProperties.set(e,a)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const a=this._$Eu(e,t);void 0!==a&&this._$Eh.set(a,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const a=new Set(e.flat(1/0).reverse());for(const e of a)t.unshift(P(e))}else void 0!==e&&t.push(P(e));return t}static _$Eu(e,t){const a=t.attribute;return!1===a?void 0:"string"==typeof a?a:"string"==typeof e?e.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((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const a of t.keys())this.hasOwnProperty(a)&&(e.set(a,this[a]),delete this[a]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return D(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,a){this._$AK(e,a)}_$EC(e,t){const a=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,a);if(void 0!==i&&!0===a.reflect){const o=(void 0!==a.converter?.toAttribute?a.converter:B).toAttribute(t,a.type);this._$Em=e,null==o?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(e,t){const a=this.constructor,i=a._$Eh.get(e);if(void 0!==i&&this._$Em!==i){const e=a.getPropertyOptions(i),o="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:B;this._$Em=i,this[i]=o.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,a){if(void 0!==e){if(a??=this.constructor.getPropertyOptions(e),!(a.hasChanged??N)(this[e],t))return;this.P(e,t,a)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,a){this._$AL.has(e)||this._$AL.set(e,t),!0===a.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,a]of e)!0!==a.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],a)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}W.elementStyles=[],W.shadowRootOptions={mode:"open"},W[O("elementProperties")]=new Map,W[O("finalized")]=new Map,H?.({ReactiveElement:W}),(I.reactiveElementVersions??=[]).push("2.0.4");const Z=globalThis,V=Z.trustedTypes,Y=V?V.createPolicy("lit-html",{createHTML:e=>e}):void 0,F="$lit$",G=`lit$${Math.random().toFixed(9).slice(2)}$`,J="?"+G,K=`<${J}>`,Q=document,X=()=>Q.createComment(""),ee=e=>null===e||"object"!=typeof e&&"function"!=typeof e,te=Array.isArray,ae=e=>te(e)||"function"==typeof e?.[Symbol.iterator],ie="[ \t\n\f\r]",oe=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,se=/-->/g,le=/>/g,ne=RegExp(`>|${ie}(?:([^\\s"'>=/]+)(${ie}*=${ie}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),re=/'/g,de=/"/g,ce=/^(?:script|style|textarea|title)$/i,pe=e=>(t,...a)=>({_$litType$:e,strings:t,values:a}),he=pe(1),be=(pe(2),Symbol.for("lit-noChange")),ge=Symbol.for("lit-nothing"),ue=new WeakMap,me=Q.createTreeWalker(Q,129);function fe(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==Y?Y.createHTML(t):t}const ve=(e,t)=>{const a=e.length-1,i=[];let o,s=2===t?"":"",l=oe;for(let t=0;t"===r[0]?(l=o??oe,d=-1):void 0===r[1]?d=-2:(d=l.lastIndex-r[2].length,n=r[1],l=void 0===r[3]?ne:'"'===r[3]?de:re):l===de||l===re?l=ne:l===se||l===le?l=oe:(l=ne,o=void 0);const p=l===ne&&e[t+1].startsWith("/>")?" ":"";s+=l===oe?a+K:d>=0?(i.push(n),a.slice(0,d)+F+a.slice(d)+G+p):a+G+(-2===d?t:p)}return[fe(e,s+(e[a]||"")+(2===t?"":"")),i]};class we{constructor({strings:e,_$litType$:t},a){let i;this.parts=[];let o=0,s=0;const l=e.length-1,n=this.parts,[r,d]=ve(e,t);if(this.el=we.createElement(r,a),me.currentNode=this.el.content,2===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(i=me.nextNode())&&n.length0){i.textContent=V?V.emptyScript:"";for(let a=0;a2||""!==a[0]||""!==a[1]?(this._$AH=Array(a.length-1).fill(new String),this.strings=a):this._$AH=ge}_$AI(e,t=this,a,i){const o=this.strings;let s=!1;if(void 0===o)e=ye(this,e,t,0),s=!ee(e)||e!==this._$AH&&e!==be,s&&(this._$AH=e);else{const i=e;let l,n;for(e=o[0],l=0;l{const i=a?.renderBefore??t;let o=i._$litPart$;if(void 0===o){const e=a?.renderBefore??null;i._$litPart$=o=new ke(t.insertBefore(X(),e),e,void 0,a??{})}return o._$AI(e),o})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return be}}Pe._$litElement$=!0,Pe.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:Pe});const Ce=globalThis.litElementPolyfillSupport;Ce?.({LitElement:Pe});(globalThis.litElementVersions??=[]).push("4.0.6");const je=(e,t,a)=>{let i=e[0];for(let o=1;o{return"string"!=typeof(t=e)&&"strTag"in t?je(e.strings,e.values):e;var t},Re="lit-localize-status";class Me{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(Re,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(Re,this.__litLocalizeEventHandler)}}const Te=e=>e.addController(new Me(e));class Ie{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const Le=[];for(let e=0;e<256;e++)Le[e]=(e>>4&15).toString(16)+(15&e).toString(16);const Ue="",He="h",Oe="s";function Be(e,t){return(t?He:Oe)+function(e){let t=0,a=8997,i=0,o=33826,s=0,l=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,s+=i>>>16,o=65535&i,r=n+(s>>>16)&65535,l=65535&s;return Le[r>>8]+Le[255&r]+Le[l>>8]+Le[255&l]+Le[o>>8]+Le[255&o]+Le[a>>8]+Le[255&a]}("string"==typeof e?e:e.join(Ue))}const Ne=new WeakMap,qe=new Map;function We(e,t,a){if(e){const i=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=qe.get(t);void 0===a&&(a=Be(t,"string"!=typeof e&&!("strTag"in e)),qe.set(t,a));return a}(t),o=e[i];if(o){if("string"==typeof o)return o;if("strTag"in o)return je(o.strings,t.values,o.values);{let e=Ne.get(o);return void 0===e&&(e=o.values,Ne.set(o,e)),{...o,values:e.map((e=>t.values[e]))}}}}return ze(t)}function Ze(e){window.dispatchEvent(new CustomEvent(Re,{detail:e}))}let Ve,Ye,Fe,Ge,Je,Ke="",Qe=new Ie;Qe.resolve();let Xe=0;const et=()=>Ke,tt=e=>{if(e===(Ve??Ke))return Qe.promise;if(!Fe||!Ge)throw Error("Internal error");if(!Fe.has(e))throw Error("Invalid locale code");Xe++;const t=Xe;Ve=e,Qe.settled&&(Qe=new Ie),Ze({status:"loading",loadingLocale:e});return(e===Ye?Promise.resolve({templates:void 0}):Ge(e)).then((a=>{Xe===t&&(Ke=e,Ve=void 0,Je=a.templates,Ze({status:"ready",readyLocale:e}),Qe.resolve())}),(a=>{Xe===t&&(Ze({status:"error",errorLocale:e,errorMessage:a.toString()}),Qe.reject(a))})),Qe.promise};let at=ze,it=!1;const ot=e=>(t,a)=>{void 0!==a?a.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)},st={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:N},lt=(e=st,t,a)=>{const{kind:i,metadata:o}=a;let s=globalThis.litPropertyMetadata.get(o);if(void 0===s&&globalThis.litPropertyMetadata.set(o,s=new Map),s.set(a.name,e),"accessor"===i){const{name:i}=a;return{set(a){const o=t.get.call(this);t.set.call(this,a),this.requestUpdate(i,o,e)},init(t){return void 0!==t&&this.P(i,void 0,e),t}}}if("setter"===i){const{name:i}=a;return function(a){const o=this[i];t.call(this,a),this.requestUpdate(i,o,e)}}throw Error("Unsupported decorator location: "+i)};function nt(e){return(t,a)=>"object"==typeof a?lt(e,t,a):((e,t,a)=>{const i=t.hasOwnProperty(a);return t.constructor.createProperty(a,i?{...e,wrapped:!0}:e),i?Object.getOwnPropertyDescriptor(t,a):void 0})(e,t,a)}const rt=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],dt={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},ct={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},pt={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},ht={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},bt={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},gt={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},ut={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},mt={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},ft={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},vt={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},wt={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},yt={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击加入主画面",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App加入主画面",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},xt={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},kt={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},_t={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},$t={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},At={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},St={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},Et={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},Dt={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},Pt=new Map([["ru",a],["tr",i],["de",o],["es",s],["nl",l],["el",n],["fr",r],["sr",d],["pl",c],["uk",p],["zh",h],["zh-CN",b],["it",g],["cs",u],["no",m],["pt",f],["ja",v],["sv",w],["ko",y],["km",x]]),{getLocale:Ct,setLocale:jt}=(zt={sourceLocale:"en",targetLocales:rt,loadLocale:async e=>Pt.get(e)},function(e){if(it)throw Error("lit-localize can only be configured once");at=e,it=!0}(((e,t)=>We(Je,e,t))),Ke=Ye=zt.sourceLocale,Fe=new Set(zt.targetLocales),Fe.add(zt.sourceLocale),Ge=zt.loadLocale,{getLocale:et,setLocale:tt});var zt;class Rt{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const Mt=E`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,Tt=(e,t,a,i)=>he`${e?he``:""}`;var It=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},Lt=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Ut=class extends Pe{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const i=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return i?{scroller:t,item:i}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return Mt}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return he`${Tt(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};It([nt(),Lt("design:type",Object)],Ut.prototype,"screenshots",void 0),It([nt(),Lt("design:type",String)],Ut.prototype,"theme",void 0),Ut=It([ot("pwa-gallery")],Ut);const Ht=Ut,Ot=(e,t,a,i)=>he`
icon
${location.hostname}
${t?he`
${t}
`:""}`,Bt=(e,t,a)=>{const i=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(i)};class Nt{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),i=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&i}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Bt(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Bt(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Bt(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Bt(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Bt(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Bt(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var qt=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},Wt=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Zt=class extends Pe{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let i=0;const o=t.clientHeight+a.clientHeight,s=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),l=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),i=s(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&s(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-s(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Nt.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-o-35)},r=t=>{const a=s(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+i||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-i}px)`))},d=(a,i,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!i&&s(a)>=window.innerHeight-o?e.style.setProperty("--translateY",`translateY(calc(100vh - ${o}px))`):e.style.setProperty("--translateY",`translateY(${(i||s(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",l),t.removeEventListener("touchstart",l),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",l),t.addEventListener("touchstart",l,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-o-35),{touchElement:t,listener:l}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return he`${Ot(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};qt([nt({type:Object}),Wt("design:type",Object)],Zt.prototype,"props",void 0),qt([nt({type:Object}),Wt("design:type",Object)],Zt.prototype,"install",void 0),qt([nt(),Wt("design:type",Object)],Zt.prototype,"hideDialog",void 0),qt([nt(),Wt("design:type",Object)],Zt.prototype,"disableClose",void 0),Zt=qt([ot("pwa-bottom-sheet")],Zt);const Vt=Zt,Yt=E`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Ft=E`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`,Gt=1;class Jt{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,a){this._$Ct=e,this._$AM=t,this._$Ci=a}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}const Kt=(e=>(...t)=>({_$litDirective$:e,values:t}))(class extends Jt{constructor(e){if(super(e),e.type!==Gt||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const a=e.element.classList;for(const e of this.st)e in t||(a.remove(e),this.st.delete(e));for(const e in t){const i=!!t[e];i===this.st.has(e)||this.nt?.has(e)||(i?(a.add(e),this.st.add(e)):(a.remove(e),this.st.delete(e)))}return be}}),Qt=(e,t,a,i,o,s,l,n,r,d,c,p,h)=>{const b=()=>({available:r,gallery:h}),g=!o&&n.screenshots&&n.screenshots.length;return he`
icon
${s?"":he``}
${location.hostname}
${t?he`
${t}
`:""} ${i?"":he`
${a||`${at("This site has app functionality.")} ${at("Install it on your device for extensive experience and easy access.")}`}
`} ${g?he``:""}
${g?he``:""}
${g?he``:""}
`},Xt=(e,t,a,i,o,s,l,n,r,d,c,p,h,b,g)=>{const u=!o&&n.screenshots&&n.screenshots.length;return he``};var ea=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},ta=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let aa=class extends Pe{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new Rt,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Nt.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Nt.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Nt.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Nt.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Nt.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Nt.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Nt.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Nt.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Nt.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Nt.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Yt,Ft]}async _checkInstalled(){this.isUnderStandaloneMode=Nt.isStandalone(),this.isRelatedAppsInstalled=await Nt.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Nt.isAppleMobile(),this.isAppleDesktopPlatform=Nt.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Nt.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e&&(e="no");try{Pt.get(e)?jt(e):jt(e.slice(0,2))}catch{}})(navigator.language),this._init(),Ht.finalized,Vt.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?he`${Xt(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:he`${Qt(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};ea([nt({attribute:"manifest-url"}),ta("design:type",Object)],aa.prototype,"manifestUrl",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"icon",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"name",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"description",void 0),ea([nt({attribute:"install-description"}),ta("design:type",Object)],aa.prototype,"installDescription",void 0),ea([nt({attribute:"disable-install-description",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableDescription",void 0),ea([nt({attribute:"disable-screenshots",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshots",void 0),ea([nt({attribute:"disable-screenshots-apple",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshotsApple",void 0),ea([nt({attribute:"disable-screenshots-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshotsChrome",void 0),ea([nt({attribute:"manual-apple",type:Boolean}),ta("design:type",Object)],aa.prototype,"manualApple",void 0),ea([nt({attribute:"manual-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"manualChrome",void 0),ea([nt({attribute:"disable-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableChrome",void 0),ea([nt({attribute:"disable-close",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableClose",void 0),ea([function(e){return nt({...e,state:!0,attribute:!1})}(),ta("design:type",Object)],aa.prototype,"externalPromptEvent",void 0),aa=ea([(e,t)=>(e.addInitializer(Te),e),ot("pwa-install")],aa),PWAInstallComponent=t})(); +var PWAInstallComponent;(()=>{"use strict";var e={d:(t,a)=>{for(var i in a)e.o(a,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:a[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{PWAInstallElement:()=>aa});var a={};e.r(a),e.d(a,{templates:()=>dt});var i={};e.r(i),e.d(i,{templates:()=>ct});var o={};e.r(o),e.d(o,{templates:()=>pt});var s={};e.r(s),e.d(s,{templates:()=>ht});var l={};e.r(l),e.d(l,{templates:()=>bt});var n={};e.r(n),e.d(n,{templates:()=>gt});var r={};e.r(r),e.d(r,{templates:()=>ut});var d={};e.r(d),e.d(d,{templates:()=>mt});var c={};e.r(c),e.d(c,{templates:()=>ft});var p={};e.r(p),e.d(p,{templates:()=>vt});var h={};e.r(h),e.d(h,{templates:()=>wt});var b={};e.r(b),e.d(b,{templates:()=>yt});var g={};e.r(g),e.d(g,{templates:()=>xt});var u={};e.r(u),e.d(u,{templates:()=>kt});var m={};e.r(m),e.d(m,{templates:()=>_t});var f={};e.r(f),e.d(f,{templates:()=>$t});var v={};e.r(v),e.d(v,{templates:()=>At});var w={};e.r(w),e.d(w,{templates:()=>St});var y={};e.r(y),e.d(y,{templates:()=>Et});var x={};e.r(x),e.d(x,{templates:()=>Dt});const k=globalThis,_=k.ShadowRoot&&(void 0===k.ShadyCSS||k.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,$=Symbol(),A=new WeakMap;class S{constructor(e,t,a){if(this._$cssResult$=!0,a!==$)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(_&&void 0===e){const a=void 0!==t&&1===t.length;a&&(e=A.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),a&&A.set(t,e))}return e}toString(){return this.cssText}}const E=(e,...t)=>{const a=1===e.length?e[0]:t.reduce(((t,a,i)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(a)+e[i+1]),e[0]);return new S(a,e,$)},D=(e,t)=>{if(_)e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const a of t){const t=document.createElement("style"),i=k.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=a.cssText,e.appendChild(t)}},P=_?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const a of e.cssRules)t+=a.cssText;return(e=>new S("string"==typeof e?e:e+"",void 0,$))(t)})(e):e,{is:j,defineProperty:z,getOwnPropertyDescriptor:C,getOwnPropertyNames:R,getOwnPropertySymbols:M,getPrototypeOf:T}=Object,I=globalThis,L=I.trustedTypes,U=L?L.emptyScript:"",O=I.reactiveElementPolyfillSupport,H=(e,t)=>e,B={toAttribute(e,t){switch(t){case Boolean:e=e?U:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let a=e;switch(t){case Boolean:a=null!==e;break;case Number:a=null===e?null:Number(e);break;case Object:case Array:try{a=JSON.parse(e)}catch(e){a=null}}return a}},N=(e,t)=>!j(e,t),q={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:N};Symbol.metadata??=Symbol("metadata"),I.litPropertyMetadata??=new WeakMap;class W extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=q){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const a=Symbol(),i=this.getPropertyDescriptor(e,a,t);void 0!==i&&z(this.prototype,e,i)}}static getPropertyDescriptor(e,t,a){const{get:i,set:o}=C(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return i?.call(this)},set(t){const s=i?.call(this);o.call(this,t),this.requestUpdate(e,s,a)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??q}static _$Ei(){if(this.hasOwnProperty(H("elementProperties")))return;const e=T(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(H("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(H("properties"))){const e=this.properties,t=[...R(e),...M(e)];for(const a of t)this.createProperty(a,e[a])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,a]of t)this.elementProperties.set(e,a)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const a=this._$Eu(e,t);void 0!==a&&this._$Eh.set(a,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const a=new Set(e.flat(1/0).reverse());for(const e of a)t.unshift(P(e))}else void 0!==e&&t.push(P(e));return t}static _$Eu(e,t){const a=t.attribute;return!1===a?void 0:"string"==typeof a?a:"string"==typeof e?e.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((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const a of t.keys())this.hasOwnProperty(a)&&(e.set(a,this[a]),delete this[a]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return D(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,a){this._$AK(e,a)}_$EC(e,t){const a=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,a);if(void 0!==i&&!0===a.reflect){const o=(void 0!==a.converter?.toAttribute?a.converter:B).toAttribute(t,a.type);this._$Em=e,null==o?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(e,t){const a=this.constructor,i=a._$Eh.get(e);if(void 0!==i&&this._$Em!==i){const e=a.getPropertyOptions(i),o="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:B;this._$Em=i,this[i]=o.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,a){if(void 0!==e){if(a??=this.constructor.getPropertyOptions(e),!(a.hasChanged??N)(this[e],t))return;this.P(e,t,a)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,a){this._$AL.has(e)||this._$AL.set(e,t),!0===a.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,a]of e)!0!==a.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],a)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}W.elementStyles=[],W.shadowRootOptions={mode:"open"},W[H("elementProperties")]=new Map,W[H("finalized")]=new Map,O?.({ReactiveElement:W}),(I.reactiveElementVersions??=[]).push("2.0.4");const Z=globalThis,V=Z.trustedTypes,Y=V?V.createPolicy("lit-html",{createHTML:e=>e}):void 0,F="$lit$",G=`lit$${Math.random().toFixed(9).slice(2)}$`,J="?"+G,K=`<${J}>`,Q=document,X=()=>Q.createComment(""),ee=e=>null===e||"object"!=typeof e&&"function"!=typeof e,te=Array.isArray,ae=e=>te(e)||"function"==typeof e?.[Symbol.iterator],ie="[ \t\n\f\r]",oe=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,se=/-->/g,le=/>/g,ne=RegExp(`>|${ie}(?:([^\\s"'>=/]+)(${ie}*=${ie}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),re=/'/g,de=/"/g,ce=/^(?:script|style|textarea|title)$/i,pe=e=>(t,...a)=>({_$litType$:e,strings:t,values:a}),he=pe(1),be=(pe(2),pe(3),Symbol.for("lit-noChange")),ge=Symbol.for("lit-nothing"),ue=new WeakMap,me=Q.createTreeWalker(Q,129);function fe(e,t){if(!te(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==Y?Y.createHTML(t):t}const ve=(e,t)=>{const a=e.length-1,i=[];let o,s=2===t?"":3===t?"":"",l=oe;for(let t=0;t"===r[0]?(l=o??oe,d=-1):void 0===r[1]?d=-2:(d=l.lastIndex-r[2].length,n=r[1],l=void 0===r[3]?ne:'"'===r[3]?de:re):l===de||l===re?l=ne:l===se||l===le?l=oe:(l=ne,o=void 0);const p=l===ne&&e[t+1].startsWith("/>")?" ":"";s+=l===oe?a+K:d>=0?(i.push(n),a.slice(0,d)+F+a.slice(d)+G+p):a+G+(-2===d?t:p)}return[fe(e,s+(e[a]||"")+(2===t?"":3===t?"":"")),i]};class we{constructor({strings:e,_$litType$:t},a){let i;this.parts=[];let o=0,s=0;const l=e.length-1,n=this.parts,[r,d]=ve(e,t);if(this.el=we.createElement(r,a),me.currentNode=this.el.content,2===t||3===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(i=me.nextNode())&&n.length0){i.textContent=V?V.emptyScript:"";for(let a=0;a2||""!==a[0]||""!==a[1]?(this._$AH=Array(a.length-1).fill(new String),this.strings=a):this._$AH=ge}_$AI(e,t=this,a,i){const o=this.strings;let s=!1;if(void 0===o)e=ye(this,e,t,0),s=!ee(e)||e!==this._$AH&&e!==be,s&&(this._$AH=e);else{const i=e;let l,n;for(e=o[0],l=0;l{const i=a?.renderBefore??t;let o=i._$litPart$;if(void 0===o){const e=a?.renderBefore??null;i._$litPart$=o=new ke(t.insertBefore(X(),e),e,void 0,a??{})}return o._$AI(e),o})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this.o?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this.o?.setConnected(!1)}render(){return be}}Pe._$litElement$=!0,Pe.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:Pe});const je=globalThis.litElementPolyfillSupport;je?.({LitElement:Pe});(globalThis.litElementVersions??=[]).push("4.1.0");const ze=(e,t,a)=>{let i=e[0];for(let o=1;o{return"string"!=typeof(t=e)&&"strTag"in t?ze(e.strings,e.values):e;var t};let Re=Ce,Me=!1;const Te="lit-localize-status";class Ie{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(Te,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(Te,this.__litLocalizeEventHandler)}}const Le=e=>e.addController(new Ie(e));class Ue{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const Oe=[];for(let e=0;e<256;e++)Oe[e]=(e>>4&15).toString(16)+(15&e).toString(16);const He="",Be="h",Ne="s";function qe(e,t){return(t?Be:Ne)+function(e){let t=0,a=8997,i=0,o=33826,s=0,l=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,s+=i>>>16,o=65535&i,r=n+(s>>>16)&65535,l=65535&s;return Oe[r>>8]+Oe[255&r]+Oe[l>>8]+Oe[255&l]+Oe[o>>8]+Oe[255&o]+Oe[a>>8]+Oe[255&a]}("string"==typeof e?e:e.join(He))}const We=new WeakMap,Ze=new Map;function Ve(e,t,a){if(e){const i=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=Ze.get(t);void 0===a&&(a=qe(t,"string"!=typeof e&&!("strTag"in e)),Ze.set(t,a));return a}(t),o=e[i];if(o){if("string"==typeof o)return o;if("strTag"in o)return ze(o.strings,t.values,o.values);{let e=We.get(o);return void 0===e&&(e=o.values,We.set(o,e)),{...o,values:e.map((e=>t.values[e]))}}}}return Ce(t)}function Ye(e){window.dispatchEvent(new CustomEvent(Te,{detail:e}))}let Fe,Ge,Je,Ke,Qe,Xe="",et=new Ue;et.resolve();let tt=0;const at=()=>Xe,it=e=>{if(e===(Fe??Xe))return et.promise;if(!Je||!Ke)throw Error("Internal error");if(!Je.has(e))throw Error("Invalid locale code");tt++;const t=tt;Fe=e,et.settled&&(et=new Ue),Ye({status:"loading",loadingLocale:e});return(e===Ge?Promise.resolve({templates:void 0}):Ke(e)).then((a=>{tt===t&&(Xe=e,Fe=void 0,Qe=a.templates,Ye({status:"ready",readyLocale:e}),et.resolve())}),(a=>{tt===t&&(Ye({status:"error",errorLocale:e,errorMessage:a.toString()}),et.reject(a))})),et.promise},ot=e=>(t,a)=>{void 0!==a?a.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)},st={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:N},lt=(e=st,t,a)=>{const{kind:i,metadata:o}=a;let s=globalThis.litPropertyMetadata.get(o);if(void 0===s&&globalThis.litPropertyMetadata.set(o,s=new Map),s.set(a.name,e),"accessor"===i){const{name:i}=a;return{set(a){const o=t.get.call(this);t.set.call(this,a),this.requestUpdate(i,o,e)},init(t){return void 0!==t&&this.P(i,void 0,e),t}}}if("setter"===i){const{name:i}=a;return function(a){const o=this[i];t.call(this,a),this.requestUpdate(i,o,e)}}throw Error("Unsupported decorator location: "+i)};function nt(e){return(t,a)=>"object"==typeof a?lt(e,t,a):((e,t,a)=>{const i=t.hasOwnProperty(a);return t.constructor.createProperty(a,i?{...e,wrapped:!0}:e),i?Object.getOwnPropertyDescriptor(t,a):void 0})(e,t,a)}const rt=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],dt={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},ct={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},pt={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},ht={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},bt={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},gt={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},ut={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},mt={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},ft={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},vt={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},wt={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},yt={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击添加到主屏幕",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App添加到主屏幕",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},xt={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},kt={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},_t={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},$t={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},At={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},St={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},Et={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},Dt={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},Pt=new Map([["ru",a],["tr",i],["de",o],["es",s],["nl",l],["el",n],["fr",r],["sr",d],["pl",c],["uk",p],["zh",h],["zh-CN",b],["it",g],["cs",u],["no",m],["pt",f],["ja",v],["sv",w],["ko",y],["km",x]]),{getLocale:jt,setLocale:zt}=(Ct={sourceLocale:"en",targetLocales:rt,loadLocale:async e=>Pt.get(e)},function(e){if(Me)throw Error("lit-localize can only be configured once");Re=e,Me=!0}(((e,t)=>Ve(Qe,e,t))),Xe=Ge=Ct.sourceLocale,Je=new Set(Ct.targetLocales),Je.add(Ct.sourceLocale),Ke=Ct.loadLocale,{getLocale:at,setLocale:it});var Ct;class Rt{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const Mt=E`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,Tt=(e,t,a,i)=>he`${e?he``:""}`;var It=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},Lt=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Ut=class extends Pe{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const i=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return i?{scroller:t,item:i}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return Mt}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return he`${Tt(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};It([nt(),Lt("design:type",Object)],Ut.prototype,"screenshots",void 0),It([nt(),Lt("design:type",String)],Ut.prototype,"theme",void 0),Ut=It([ot("pwa-gallery")],Ut);const Ot=Ut,Ht=(e,t,a,i)=>he`
icon
${location.hostname}
${t?he`
${t}
`:""}`,Bt=(e,t,a)=>{const i=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(i)};class Nt{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),i=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&i}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Bt(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Bt(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Bt(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Bt(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Bt(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Bt(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var qt=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},Wt=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Zt=class extends Pe{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let i=0;const o=t.clientHeight+a.clientHeight,s=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),l=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),i=s(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&s(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-s(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Nt.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-o-35)},r=t=>{const a=s(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+i||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-i}px)`))},d=(a,i,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!i&&s(a)>=window.innerHeight-o?e.style.setProperty("--translateY",`translateY(calc(100vh - ${o}px))`):e.style.setProperty("--translateY",`translateY(${(i||s(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",l),t.removeEventListener("touchstart",l),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",l),t.addEventListener("touchstart",l,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-o-35),{touchElement:t,listener:l}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return he`${Ht(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};qt([nt({type:Object}),Wt("design:type",Object)],Zt.prototype,"props",void 0),qt([nt({type:Object}),Wt("design:type",Object)],Zt.prototype,"install",void 0),qt([nt(),Wt("design:type",Object)],Zt.prototype,"hideDialog",void 0),qt([nt(),Wt("design:type",Object)],Zt.prototype,"disableClose",void 0),Zt=qt([ot("pwa-bottom-sheet")],Zt);const Vt=Zt,Yt=E`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Ft=E`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`,Gt=1;class Jt{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,a){this.t=e,this._$AM=t,this.i=a}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}const Kt=(e=>(...t)=>({_$litDirective$:e,values:t}))(class extends Jt{constructor(e){if(super(e),e.type!==Gt||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const a=e.element.classList;for(const e of this.st)e in t||(a.remove(e),this.st.delete(e));for(const e in t){const i=!!t[e];i===this.st.has(e)||this.nt?.has(e)||(i?(a.add(e),this.st.add(e)):(a.remove(e),this.st.delete(e)))}return be}}),Qt=(e,t,a,i,o,s,l,n,r,d,c,p,h)=>{const b=()=>({available:r,gallery:h}),g=!o&&n.screenshots&&n.screenshots.length;return he`
icon
${s?"":he``}
${location.hostname}
${t?he`
${t}
`:""} ${i?"":he`
${a||`${Re("This site has app functionality.")} ${Re("Install it on your device for extensive experience and easy access.")}`}
`} ${g?he``:""}
${g?he``:""}
${g?he``:""}
`},Xt=(e,t,a,i,o,s,l,n,r,d,c,p,h,b,g)=>{const u=!o&&n.screenshots&&n.screenshots.length;return he``};var ea=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},ta=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let aa=class extends Pe{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new Rt,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Nt.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Nt.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Nt.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Nt.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Nt.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Nt.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Nt.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Nt.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Nt.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Nt.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Yt,Ft]}async _checkInstalled(){this.isUnderStandaloneMode=Nt.isStandalone(),this.isRelatedAppsInstalled=await Nt.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Nt.isAppleMobile(),this.isAppleDesktopPlatform=Nt.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Nt.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e.slice(0,2)&&(e="no");try{Pt.get(e)?zt(e):zt(e.slice(0,2))}catch{}})(navigator.language),this._init(),Ot.finalized,Vt.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?he`${Xt(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:he`${Qt(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};ea([nt({attribute:"manifest-url"}),ta("design:type",Object)],aa.prototype,"manifestUrl",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"icon",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"name",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"description",void 0),ea([nt({attribute:"install-description"}),ta("design:type",Object)],aa.prototype,"installDescription",void 0),ea([nt({attribute:"disable-install-description",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableDescription",void 0),ea([nt({attribute:"disable-screenshots",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshots",void 0),ea([nt({attribute:"disable-screenshots-apple",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshotsApple",void 0),ea([nt({attribute:"disable-screenshots-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshotsChrome",void 0),ea([nt({attribute:"manual-apple",type:Boolean}),ta("design:type",Object)],aa.prototype,"manualApple",void 0),ea([nt({attribute:"manual-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"manualChrome",void 0),ea([nt({attribute:"disable-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableChrome",void 0),ea([nt({attribute:"disable-close",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableClose",void 0),ea([function(e){return nt({...e,state:!0,attribute:!1})}(),ta("design:type",Object)],aa.prototype,"externalPromptEvent",void 0),aa=ea([(e,t)=>(e.addInitializer(Le),e),ot("pwa-install")],aa),PWAInstallComponent=t})(); //# sourceMappingURL=pwa-install.bundle.js.map \ No newline at end of file diff --git a/dist/pwa-install.bundle.js.map b/dist/pwa-install.bundle.js.map index 4e7d382..a0ca35b 100644 --- a/dist/pwa-install.bundle.js.map +++ b/dist/pwa-install.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"pwa-install.bundle.js","mappings":"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","sources":["webpack://PWAInstallComponent/webpack/bootstrap","webpack://PWAInstallComponent/webpack/runtime/define property getters","webpack://PWAInstallComponent/webpack/runtime/hasOwnProperty shorthand","webpack://PWAInstallComponent/webpack/runtime/make namespace object","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/css-tag.js","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/reactive-element.js","webpack://PWAInstallComponent/./node_modules/lit-html/lit-html.js","webpack://PWAInstallComponent/./node_modules/lit-element/lit-element.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/str-tag.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/default-msg.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/locale-status-event.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/localized-controller.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/deferred.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/fnv1a64.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/id-generation.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/runtime-msg.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/init/runtime.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/lit-localize.js","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/decorators/custom-element.js","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/decorators/property.js","webpack://PWAInstallComponent/./src/localization/locale-codes.ts","webpack://PWAInstallComponent/./src/localization/locales/ru.ts","webpack://PWAInstallComponent/./src/localization/locales/tr.ts","webpack://PWAInstallComponent/./src/localization/locales/de.ts","webpack://PWAInstallComponent/./src/localization/locales/es.ts","webpack://PWAInstallComponent/./src/localization/locales/nl.ts","webpack://PWAInstallComponent/./src/localization/locales/el.ts","webpack://PWAInstallComponent/./src/localization/locales/fr.ts","webpack://PWAInstallComponent/./src/localization/locales/sr.ts","webpack://PWAInstallComponent/./src/localization/locales/pl.ts","webpack://PWAInstallComponent/./src/localization/locales/uk.ts","webpack://PWAInstallComponent/./src/localization/locales/zh.ts","webpack://PWAInstallComponent/./src/localization/locales/zh-CN.ts","webpack://PWAInstallComponent/./src/localization/locales/it.ts","webpack://PWAInstallComponent/./src/localization/locales/cs.ts","webpack://PWAInstallComponent/./src/localization/locales/no.ts","webpack://PWAInstallComponent/./src/localization/locales/pt.ts","webpack://PWAInstallComponent/./src/localization/locales/ja.ts","webpack://PWAInstallComponent/./src/localization/locales/sv.ts","webpack://PWAInstallComponent/./src/localization/locales/ko.ts","webpack://PWAInstallComponent/./src/localization/locales/km.ts","webpack://PWAInstallComponent/./src/localization/index.ts","webpack://PWAInstallComponent/./src/types/types.ts","webpack://PWAInstallComponent/./src/gallery/styles-gallery.scss","webpack://PWAInstallComponent/./src/gallery/template-gallery.ts","webpack://PWAInstallComponent/./src/gallery/index.ts","webpack://PWAInstallComponent/./src/templates/chrome/bottom-sheet/template-bottom-sheet.ts","webpack://PWAInstallComponent/./src/utils.ts","webpack://PWAInstallComponent/./src/templates/chrome/bottom-sheet/index.ts","webpack://PWAInstallComponent/./src/templates/chrome/styles.scss","webpack://PWAInstallComponent/./src/templates/apple/styles-apple.scss","webpack://PWAInstallComponent/./node_modules/lit-html/directive.js","webpack://PWAInstallComponent/./node_modules/lit-html/directives/class-map.js","webpack://PWAInstallComponent/./src/templates/chrome/template.ts","webpack://PWAInstallComponent/./src/templates/apple/template-apple.ts","webpack://PWAInstallComponent/./src/index.ts","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/decorators/state.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/localized-decorator.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\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","/**\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=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),A=new WeakMap,E=r.createTreeWalker(r,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[C(t,l+(t[s]||\"\")+(2===i?\"\":\"\")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=E.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{z as _$LH,x as html,w as noChange,T as nothing,j as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return i}}s._$litElement$=!0,s[(\"finalized\",\"finalized\")]=!0,globalThis.litElementHydrateSupport?.({LitElement:s});const r=globalThis.litElementPolyfillSupport;r?.({LitElement:s});const o={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.0.6\");export{s as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Tag that allows expressions to be used in localized non-HTML template\n * strings.\n *\n * Example: msg(str`Hello ${this.user}!`);\n *\n * The Lit html tag can also be used for this purpose, but HTML will need to be\n * escaped, and there is a small overhead for HTML parsing.\n *\n * Untagged template strings with expressions aren't supported by lit-localize\n * because they don't allow for values to be captured at runtime.\n */\nconst _str = (strings, ...values) => ({\n strTag: true,\n strings,\n values,\n});\nexport const str = _str;\nexport const isStrTagged = (val) => typeof val !== 'string' && 'strTag' in val;\n/**\n * Render the result of a `str` tagged template to a string. Note we don't need\n * to do this for Lit templates, since Lit itself handles rendering.\n */\nexport const joinStringsAndValues = (strings, values, valueOrder) => {\n let concat = strings[0];\n for (let i = 1; i < strings.length; i++) {\n concat += values[valueOrder ? valueOrder[i - 1] : i - 1];\n concat += strings[i];\n }\n return concat;\n};\n//# sourceMappingURL=str-tag.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isStrTagged, joinStringsAndValues } from './str-tag.js';\n/**\n * Default identity msg implementation. Simply returns the input template with\n * no awareness of translations. If the template is str-tagged, returns it in\n * string form.\n */\nexport const defaultMsg = ((template) => isStrTagged(template)\n ? joinStringsAndValues(template.strings, template.values)\n : template);\n//# sourceMappingURL=default-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Name of the event dispatched to `window` whenever a locale change starts,\n * finishes successfully, or fails. Only relevant to runtime mode.\n *\n * The `detail` of this event is an object with a `status` string that can be:\n * \"loading\", \"ready\", or \"error\", along with the relevant locale code, and\n * error message if applicable.\n *\n * You can listen for this event to know when your application should be\n * re-rendered following a locale change. See also the Localized mixin, which\n * automatically re-renders LitElement classes using this event.\n */\nexport const LOCALE_STATUS_EVENT = 'lit-localize-status';\n//# sourceMappingURL=locale-status-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { LOCALE_STATUS_EVENT } from './locale-status-event.js';\nclass LocalizeController {\n constructor(host) {\n this.__litLocalizeEventHandler = (event) => {\n if (event.detail.status === 'ready') {\n this.host.requestUpdate();\n }\n };\n this.host = host;\n }\n hostConnected() {\n window.addEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n hostDisconnected() {\n window.removeEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n}\n/**\n * Re-render the given LitElement whenever a new active locale has loaded.\n *\n * See also {@link localized} for the same functionality as a decorator.\n *\n * When using lit-localize in transform mode, calls to this function are\n * replaced with undefined.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {msg, updateWhenLocaleChanges} from '@lit/localize';\n *\n * class MyElement extends LitElement {\n * constructor() {\n * super();\n * updateWhenLocaleChanges(this);\n * }\n *\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nconst _updateWhenLocaleChanges = (host) => host.addController(new LocalizeController(host));\nexport const updateWhenLocaleChanges = _updateWhenLocaleChanges;\n//# sourceMappingURL=localized-controller.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport class Deferred {\n constructor() {\n this.settled = false;\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n resolve(value) {\n this.settled = true;\n this._resolve(value);\n }\n reject(error) {\n this.settled = true;\n this._reject(error);\n }\n}\n//# sourceMappingURL=deferred.js.map","/**\n * @license\n * Copyright 2014 Travis Webb\n * SPDX-License-Identifier: MIT\n */\n// This module is derived from the file:\n// https://github.com/tjwebb/fnv-plus/blob/1e2ce68a07cb7dd4c3c85364f3d8d96c95919474/index.js#L309\n//\n// Changes:\n// - Only the _hash64_1a_fast function is included.\n// - Removed loop unrolling.\n// - Converted to TypeScript ES module.\n// - var -> let/const\n//\n// TODO(aomarks) Upstream improvements to https://github.com/tjwebb/fnv-plus/.\nconst hl = [];\nfor (let i = 0; i < 256; i++) {\n hl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n}\n/**\n * Perform a FNV-1A 64-bit hash of the given string (as UTF-16 code units), and\n * return a hexadecimal digest (left zero padded to 16 characters).\n *\n * @see {@link http://tools.ietf.org/html/draft-eastlake-fnv-06}\n */\nexport function fnv1a64(str) {\n let t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n for (let i = 0; i < str.length; i++) {\n v0 ^= str.charCodeAt(i);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n return (hl[v3 >> 8] +\n hl[v3 & 255] +\n hl[v2 >> 8] +\n hl[v2 & 255] +\n hl[v1 >> 8] +\n hl[v1 & 255] +\n hl[v0 >> 8] +\n hl[v0 & 255]);\n}\n//# sourceMappingURL=fnv1a64.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { fnv1a64 } from './fnv1a64.js';\n/**\n * Delimiter used between each template string component before hashing. Used to\n * prevent e.g. \"foobar\" and \"foo${baz}bar\" from sharing a hash.\n *\n * This is the \"record separator\" ASCII character.\n */\nexport const HASH_DELIMITER = '\\x1e';\n/**\n * Id prefix on html-tagged templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst HTML_PREFIX = 'h';\n/**\n * Id prefix on plain string templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst STRING_PREFIX = 's';\n/**\n * Generate a unique ID for a lit-localize message.\n *\n * Example:\n * Template: html`Hello ${who}!`\n * Params: [\"Hello \", \"!\"], true\n * Output: h82ccc38d4d46eaa9\n *\n * The ID is constructed as:\n *\n * [0] Kind of template: [h]tml or [s]tring.\n * [1,16] 64-bit FNV-1a hash hex digest of the template strings, as UTF-16\n * code points, delineated by an ASCII \"record separator\" character.\n *\n * We choose FNV-1a because:\n *\n * 1. It's pretty fast (e.g. much faster than SHA-1).\n * 2. It's pretty small (0.25 KiB minified + brotli).\n * 3. We don't require cryptographic security, and 64 bits should give\n * sufficient collision resistance for any one application. Worst\n * case, we will always detect collisions during analysis.\n * 4. We can't use Web Crypto API (e.g. SHA-1), because it's asynchronous.\n * 5. It's a well known non-cryptographic hash with implementations in many\n * languages.\n * 6. There was an existing JavaScript implementation that doesn't require\n * BigInt, for IE11 compatibility.\n */\nexport function generateMsgId(strings, isHtmlTagged) {\n return ((isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) +\n fnv1a64(typeof strings === 'string' ? strings : strings.join(HASH_DELIMITER)));\n}\n//# sourceMappingURL=id-generation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './default-msg.js';\nimport { joinStringsAndValues } from './str-tag.js';\nimport { generateMsgId } from './id-generation.js';\nconst expressionOrders = new WeakMap();\nconst hashCache = new Map();\nexport function runtimeMsg(templates, template, options) {\n if (templates) {\n const id = options?.id ?? generateId(template);\n const localized = templates[id];\n if (localized) {\n if (typeof localized === 'string') {\n // E.g. \"Hello World!\"\n return localized;\n }\n else if ('strTag' in localized) {\n // E.g. str`Hello ${name}!`\n //\n // Localized templates have ${number} in place of real template\n // expressions. They can't have real template values, because the\n // variable scope would be wrong. The number tells us the index of the\n // source value to substitute in its place, because expressions can be\n // moved to a different position during translation.\n return joinStringsAndValues(localized.strings, \n // Cast `template` because its type wasn't automatically narrowed (but\n // we know it must be the same type as `localized`).\n template.values, localized.values);\n }\n else {\n // E.g. html`Hello ${name}!`\n //\n // We have to keep our own mapping of expression ordering because we do\n // an in-place update of `values`, and otherwise we'd lose ordering for\n // subsequent renders.\n let order = expressionOrders.get(localized);\n if (order === undefined) {\n order = localized.values;\n expressionOrders.set(localized, order);\n }\n return {\n ...localized,\n values: order.map((i) => template.values[i]),\n };\n }\n }\n }\n return defaultMsg(template);\n}\nfunction generateId(template) {\n const strings = typeof template === 'string' ? template : template.strings;\n let id = hashCache.get(strings);\n if (id === undefined) {\n id = generateMsgId(strings, typeof template !== 'string' && !('strTag' in template));\n hashCache.set(strings, id);\n }\n return id;\n}\n//# sourceMappingURL=runtime-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { _installMsgImplementation } from '../lit-localize.js';\nimport { Deferred } from '../internal/deferred.js';\nimport { LOCALE_STATUS_EVENT } from '../internal/locale-status-event.js';\nimport { runtimeMsg } from '../internal/runtime-msg.js';\n/**\n * Dispatch a \"lit-localize-status\" event to `window` with the given detail.\n */\nfunction dispatchStatusEvent(detail) {\n window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));\n}\nlet activeLocale = '';\nlet loadingLocale;\nlet sourceLocale;\nlet validLocales;\nlet loadLocale;\nlet templates;\nlet loading = new Deferred();\n// The loading promise must be initially resolved, because that's what we should\n// return if the user immediately calls setLocale(sourceLocale).\nloading.resolve();\nlet requestId = 0;\n/**\n * Set configuration parameters for lit-localize when in runtime mode. Returns\n * an object with functions:\n *\n * - `getLocale`: Return the active locale code.\n * - `setLocale`: Set the active locale code.\n *\n * Throws if called more than once.\n */\nexport const configureLocalization = (config) => {\n _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));\n activeLocale = sourceLocale = config.sourceLocale;\n validLocales = new Set(config.targetLocales);\n validLocales.add(config.sourceLocale);\n loadLocale = config.loadLocale;\n return { getLocale, setLocale };\n};\n/**\n * Return the active locale code.\n */\nconst getLocale = () => {\n return activeLocale;\n};\n/**\n * Set the active locale code, and begin loading templates for that locale using\n * the `loadLocale` function that was passed to `configureLocalization`. Returns\n * a promise that resolves when the next locale is ready to be rendered.\n *\n * Note that if a second call to `setLocale` is made while the first requested\n * locale is still loading, then the second call takes precedence, and the\n * promise returned from the first call will resolve when second locale is\n * ready. If you need to know whether a particular locale was loaded, check\n * `getLocale` after the promise resolves.\n *\n * Throws if the given locale is not contained by the configured `sourceLocale`\n * or `targetLocales`.\n */\nconst setLocale = (newLocale) => {\n if (newLocale === (loadingLocale ?? activeLocale)) {\n return loading.promise;\n }\n if (!validLocales || !loadLocale) {\n throw new Error('Internal error');\n }\n if (!validLocales.has(newLocale)) {\n throw new Error('Invalid locale code');\n }\n requestId++;\n const thisRequestId = requestId;\n loadingLocale = newLocale;\n if (loading.settled) {\n loading = new Deferred();\n }\n dispatchStatusEvent({ status: 'loading', loadingLocale: newLocale });\n const localePromise = newLocale === sourceLocale\n ? // We could switch to the source locale synchronously, but we prefer to\n // queue it on a microtask so that switching locales is consistently\n // asynchronous.\n Promise.resolve({ templates: undefined })\n : loadLocale(newLocale);\n localePromise.then((mod) => {\n if (requestId === thisRequestId) {\n activeLocale = newLocale;\n loadingLocale = undefined;\n templates = mod.templates;\n dispatchStatusEvent({ status: 'ready', readyLocale: newLocale });\n loading.resolve();\n }\n // Else another locale was requested in the meantime. Don't resolve or\n // reject, because the newer load call is going to use the same promise.\n // Note the user can call getLocale() after the promise resolves if they\n // need to check if the locale is still the one they expected to load.\n }, (err) => {\n if (requestId === thisRequestId) {\n dispatchStatusEvent({\n status: 'error',\n errorLocale: newLocale,\n errorMessage: err.toString(),\n });\n loading.reject(err);\n }\n });\n return loading.promise;\n};\n//# sourceMappingURL=runtime.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './internal/default-msg.js';\nexport * from './internal/locale-status-event.js';\nexport * from './internal/str-tag.js';\nexport * from './internal/types.js';\n// TODO(aomarks) In a future breaking version, remove these imports so that the\n// bulk of the code isn't included in bundles by default. In particular imagine\n// the component library use-case where msg() calls are made, but there is no\n// need to actually initialize any of the localization runtime.\nexport * from './internal/localized-controller.js';\nexport * from './internal/localized-decorator.js';\nexport * from './init/runtime.js';\nexport * from './init/transform.js';\n/**\n * Make a string or lit-html template localizable.\n *\n * @param template A string, a lit-html template, or a function that returns\n * either a string or lit-html template.\n * @param options Optional configuration object with the following properties:\n * - id: Optional project-wide unique identifier for this template. If\n * omitted, an id will be automatically generated from the template strings.\n * - desc: Optional description\n */\nexport let msg = defaultMsg;\nlet installed = false;\n/**\n * Internal only. Do not use this function.\n *\n * Installs an implementation of the msg function to replace the default\n * identity function. Throws if called more than once.\n *\n * @internal\n */\nexport function _installMsgImplementation(impl) {\n if (installed) {\n throw new Error('lit-localize can only be configured once');\n }\n msg = impl;\n installed = true;\n}\n//# sourceMappingURL=lit-localize.js.map","/**\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),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.P(o,void 0,t),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,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","// Do not modify this file by hand!\n// Re-generate this file by running lit-localize.\n\n/**\n * The locale code that templates in this source code are written in.\n */\nexport const sourceLocale = `en`;\n\n/**\n * The other locale codes that this application is localized into. Sorted\n * lexicographically.\n */\nexport const targetLocales = [\n `cs`,\n `de`,\n `el`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n\n/**\n * All valid project locale codes. Sorted lexicographically.\n */\nexport const allLocales = [\n `cs`,\n `de`,\n `el`,\n `en`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.`,\n's1b9047d53d9f9d22': `2) Нажать \"Поделиться\"`,\n's37a9e8aec5713460': `Подробнее`,\n's5c6aad7a7e4a1437': `3) Нажать \"На экран «Домой»\"`,\n's6196153c4b0c1ea0': `Установить`,\n's922329d6f6213590': `Добавить в Dock`,\n'sa5ef80b4bb9b39f8': `Свернуть`,\n'sa7551383d1897fcc': `2) Нажмите \"Добавить в Dock\"`,\n'sba52286c21552a4e': `Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.`,\n'sc79fd7641eb9a975': `Спрятать Инструкцию`,\n'scdaf4bbff76674c8': `На экран «Домой»`,\n'sdfe23506a3b0cdc8': `1) Открыть в Safari браузере`,\n'se740f75b95a51807': `Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.`,\n'sfea652f6580ff086': `Этот веб-сайт имеет функционал приложения.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.`,\n's1b9047d53d9f9d22': `2) Gezinme çubuğunda Paylaş'a basın`,\n's37a9e8aec5713460': `Daha Fazla`,\n's5c6aad7a7e4a1437': `3) Ana Ekrana Ekle'ye basın`,\n's6196153c4b0c1ea0': `Yükle`,\n's922329d6f6213590': `Dock’a Ekle`,\n'sa5ef80b4bb9b39f8': `Küçült`,\n'sa7551383d1897fcc': `2) Dock’a ekleye basın`,\n'sba52286c21552a4e': `Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.`,\n'sc79fd7641eb9a975': `Talimatları gizle`,\n'scdaf4bbff76674c8': `Ana Ekrana Ekle`,\n'sdfe23506a3b0cdc8': `1) Safari tarayıcısında açın`,\n'se740f75b95a51807': `Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.`,\n'sfea652f6580ff086': `Bu site uygulama işlevselliğine sahiptir.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n's1b9047d53d9f9d22': `2) Drücken Sie auf Teilen in der Navigationsleiste`,\n's37a9e8aec5713460': `Mehr`,\n's5c6aad7a7e4a1437': `3) Drücken Sie Hinzufügen zum Startbildschirm`,\n's6196153c4b0c1ea0': `Installieren`,\n's922329d6f6213590': `Zum Dock hinzufügen`,\n'sa5ef80b4bb9b39f8': `Weniger`,\n'sa7551383d1897fcc': `2) Drücken Sie auf Zum Dock hinzufügen`,\n'sba52286c21552a4e': `Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.`,\n'sc79fd7641eb9a975': `Anleitung ausblenden`,\n'scdaf4bbff76674c8': `Hinzufügen zum Startbildschirm`,\n'sdfe23506a3b0cdc8': `1) In Safari-Browser öffnen`,\n'se740f75b95a51807': `Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n'sfea652f6580ff086': `Diese Website verfügt über App-Funktionalität.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.`,\n's1b9047d53d9f9d22': `2) Presionar Compartir en la barra de direcciones`,\n's37a9e8aec5713460': `Más`,\n's5c6aad7a7e4a1437': `3) Presionar Añadir a pantalla de inicio`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Añadir al Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Presionar Añadir al Dock`,\n'sba52286c21552a4e': `Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.`,\n'sc79fd7641eb9a975': `Esconder instrucciones`,\n'scdaf4bbff76674c8': `Añadir a pantalla de inicio`,\n'sdfe23506a3b0cdc8': `1) Abrir en el navegador web Safari`,\n'se740f75b95a51807': `Añádelo a tu Dock para una experiencia amplia y acceso fácil.`,\n'sfea652f6580ff086': `Este sitio tiene funcionalidad de aplicación.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.`,\n's1b9047d53d9f9d22': `2) Druk op delen in de navigatiebalk`,\n's37a9e8aec5713460': `Meer`,\n's5c6aad7a7e4a1437': `3) Druk op Toevoegen aan het startscherm`,\n's6196153c4b0c1ea0': `Installeren`,\n's922329d6f6213590': `Toevoegen aan Dock`,\n'sa5ef80b4bb9b39f8': `Minder`,\n'sa7551383d1897fcc': `2) Druk op Toevoegen aan Dock`,\n'sba52286c21552a4e': `Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.`,\n'sc79fd7641eb9a975': `Instructie verbergen`,\n'scdaf4bbff76674c8': `Toevoegen aan het startscherm`,\n'sdfe23506a3b0cdc8': `1) Open in Safari-browser`,\n'se740f75b95a51807': `Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.`,\n'sfea652f6580ff086': `Deze site heeft app-functionaliteit.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n's1b9047d53d9f9d22': `2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης`,\n's37a9e8aec5713460': `Περισσότερα`,\n's5c6aad7a7e4a1437': `3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας`,\n's6196153c4b0c1ea0': `Εγκατάσταση`,\n's922329d6f6213590': `Προσθήκη στην Πρόσβαση`,\n'sa5ef80b4bb9b39f8': `Λιγότερα`,\n'sa7551383d1897fcc': `2) Πατήστε Προσθήκη στην Πρόσβαση`,\n'sba52286c21552a4e': `Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sc79fd7641eb9a975': `Απόκρυψη Οδηγιών`,\n'scdaf4bbff76674c8': `Προσθήκη στην Οθόνη Αφετηρίας`,\n'sdfe23506a3b0cdc8': `1) Ανοίξτε τον περιηγητή Safari`,\n'se740f75b95a51807': `Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sfea652f6580ff086': `Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.`,\n's1b9047d53d9f9d22': `2) Appuyez sur Partager dans la barre de navigation`,\n's37a9e8aec5713460': `Plus`,\n's5c6aad7a7e4a1437': `3) Appuyez sur Ajouter à l'écran d'accueil`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Ajouter au Dock`,\n'sa5ef80b4bb9b39f8': `Moins`,\n'sa7551383d1897fcc': `2) Appuyez sur Ajouter au Dock`,\n'sba52286c21552a4e': `Installez-le sur votre appareil pour une expérience complète et un accès facile.`,\n'sc79fd7641eb9a975': `Masquer les instructions`,\n'scdaf4bbff76674c8': `Ajouter à l'écran d'accueil`,\n'sdfe23506a3b0cdc8': `1) Ouvrir dans le navigateur Safari`,\n'se740f75b95a51807': `Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.`,\n'sfea652f6580ff086': `Ce site possède des fonctionnalités d'application.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додајте га на Home Screen за широке могућности и лак приступ.`,\n's1b9047d53d9f9d22': `2) Притисните Share у навигационој траци`,\n's37a9e8aec5713460': `Више`,\n's5c6aad7a7e4a1437': `3) Притисните Add to Home Screen`,\n's6196153c4b0c1ea0': `Инсталирај`,\n'sa5ef80b4bb9b39f8': `Мање`,\n'sa7551383d1897fcc': `3) Притисните Add to Dock`,\n'sba52286c21552a4e': `Инсталирајте га на вашем уређају за широке могућности и лак приступ.`,\n'sc79fd7641eb9a975': `Сакриј упутство`,\n'sdfe23506a3b0cdc8': `1) Отворите у Safari прегледачу`,\n'se740f75b95a51807': `Додајте га у вашу Dock за широке могућности и лак приступ.`,\n'sfea652f6580ff086': `Овај сајт има функционалност апликације.`,\n's922329d6f6213590': `Add to Dock`,\n'scdaf4bbff76674c8': `Add to Home Screen`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n's1b9047d53d9f9d22': `2) Wybierz \"Udostępnij\"`,\n's37a9e8aec5713460': `Więcej`,\n's5c6aad7a7e4a1437': `3) Wybierz \"Dodaj do Ekranu Głównego\"`,\n's6196153c4b0c1ea0': `Zainstaluj`,\n's922329d6f6213590': `Dodaj do Docka`,\n'sa5ef80b4bb9b39f8': `Mniej`,\n'sa7551383d1897fcc': `2) Wybierz \"Dodaj do Docka\"`,\n'sba52286c21552a4e': `Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sc79fd7641eb9a975': `Ukryj instrukcję`,\n'scdaf4bbff76674c8': `Dodaj do Ekranu Głównego`,\n'sdfe23506a3b0cdc8': `1) Otwórz przeglądarkę Safari`,\n'se740f75b95a51807': `Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sfea652f6580ff086': `Ta strona posiada funkcje aplikacji.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додайте на Домашній екран для зручного доступу та ширших можливостей.`,\n's1b9047d53d9f9d22': `2) Натиснути «Поділитися»`,\n's37a9e8aec5713460': `Детальніше`,\n's5c6aad7a7e4a1437': `3) Натиснути «На Початковий екран»`,\n's6196153c4b0c1ea0': `Встановити`,\n's922329d6f6213590': `Додати на Dock`,\n'sa5ef80b4bb9b39f8': `Згорнути`,\n'sa7551383d1897fcc': `2) Натиснути «Додати на Dock»`,\n'sba52286c21552a4e': `Встановіть на ваш пристрій для зручного доступу та ширших можливостей.`,\n'sc79fd7641eb9a975': `Сховати Інструкцію`,\n'scdaf4bbff76674c8': `На Початковий экран`,\n'sdfe23506a3b0cdc8': `1) Відкрити в Safari браузері`,\n'se740f75b95a51807': `Додайте на панель Dock для зручного доступу та ширших можливостей.`,\n'sfea652f6580ff086': `Цей сайт має функції додатку.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。`,\n's1b9047d53d9f9d22': `2) 點擊列表上的分享按鈕`,\n's37a9e8aec5713460': `詳細資訊`,\n's5c6aad7a7e4a1437': `3) 點擊加入主畫面`,\n's6196153c4b0c1ea0': `安裝`,\n's922329d6f6213590': `添加到Dock欄`,\n'sa5ef80b4bb9b39f8': `簡短資訊`,\n'sa7551383d1897fcc': `2) 點選添加到Dock欄`,\n'sba52286c21552a4e': `在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。`,\n'sc79fd7641eb9a975': `隱藏安裝流程`,\n'scdaf4bbff76674c8': `將App加入主畫面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上瀏覽此網頁`,\n'se740f75b95a51807': `將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。`,\n'sfea652f6580ff086': `此網站具有應用程式功能。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`,\n's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`,\n's37a9e8aec5713460': `详细资讯`,\n's5c6aad7a7e4a1437': `3) 点击加入主画面`,\n's6196153c4b0c1ea0': `安装`,\n's922329d6f6213590': `添加到Dock`,\n'sa5ef80b4bb9b39f8': `简短资讯`,\n'sa7551383d1897fcc': `2) 按下添加到Dock`,\n'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`,\n'sc79fd7641eb9a975': `隐藏安装流程`,\n'scdaf4bbff76674c8': `将App加入主画面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`,\n'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`,\n'sfea652f6580ff086': `此网站具备app的功能性。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.`,\n's1b9047d53d9f9d22': `2) Premi Condividi nella barra di navigazione`,\n's37a9e8aec5713460': `Più`,\n's5c6aad7a7e4a1437': `3) Premi Aggiungi alla schermata principale`,\n's6196153c4b0c1ea0': `Installa`,\n's922329d6f6213590': `Aggiungi al Dock`,\n'sa5ef80b4bb9b39f8': `Meno`,\n'sa7551383d1897fcc': `2) Premi Aggiungi al Dock`,\n'sba52286c21552a4e': `Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.`,\n'sc79fd7641eb9a975': `Nascondi istruzioni`,\n'scdaf4bbff76674c8': `Aggiungi alla schermata principale`,\n'sdfe23506a3b0cdc8': `1) Apri nel browser Safari`,\n'se740f75b95a51807': `Aggiungilo al Dock per un'esperienza più completa e un accesso facile.`,\n'sfea652f6580ff086': `Questo sito ha funzionalità di app.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Přidejte jej na plochu pro rozšířené využití a snadný přístup.`,\n's1b9047d53d9f9d22': `2) Stiskněte tlačítko Sdílet na navigačním panelu`,\n's37a9e8aec5713460': `Vice`,\n's5c6aad7a7e4a1437': `3) Stiskněte tlačítko Přidat na plochu`,\n's6196153c4b0c1ea0': `Nainstalovat`,\n's922329d6f6213590': `Přidat do Docku`,\n'sa5ef80b4bb9b39f8': `Méně`,\n'sa7551383d1897fcc': `2) Stiskněte Přidat do Docku`,\n'sba52286c21552a4e': `Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.`,\n'sc79fd7641eb9a975': `Skrýt instrukce`,\n'scdaf4bbff76674c8': `Přidat na plochu`,\n'sdfe23506a3b0cdc8': `1) Otevřete v prohlížeči Safari`,\n'se740f75b95a51807': `Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.`,\n'sfea652f6580ff086': `Tento web má funkce aplikace.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.`,\n's1b9047d53d9f9d22': `2) Trykk på Del-knappen i navigasjonslinjen`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Velg Legg til på Hjem-skjerm`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Legg til i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Velg Legg til i Dock`,\n'sba52286c21552a4e': `Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sc79fd7641eb9a975': `Skjul instruksjoner`,\n'scdaf4bbff76674c8': `Legg til på Hjem-skjerm`,\n'sdfe23506a3b0cdc8': `1) Åpne i Safari`,\n'se740f75b95a51807': `Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sfea652f6580ff086': `Denne siden har app-funksjonalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.`,\n's1b9047d53d9f9d22': `2) Pressione Compartilhar na barra de endereço`,\n's37a9e8aec5713460': `Mais`,\n's5c6aad7a7e4a1437': `3) Pressione Adicionar à Tela de Início`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Adicionar ao Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Pressione Adicionar ao Dock`,\n'sba52286c21552a4e': `Instale no dispositivo para uma melhor experiência e mais fácil acesso.`,\n'sc79fd7641eb9a975': `Ocultar Instruções`,\n'scdaf4bbff76674c8': `Adicionar à Tela de Início`,\n'sdfe23506a3b0cdc8': `1) Abra no navegador Safari`,\n'se740f75b95a51807': `Adicione ao Dock para uma melhor experiência e mais fácil acesso.`,\n'sfea652f6580ff086': `Este site possui funcionalidade de aplicativo.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。`,\n's1b9047d53d9f9d22': `2) ナビゲーションバーで共有を押す`,\n's37a9e8aec5713460': `展開`,\n's5c6aad7a7e4a1437': `3) 「ホーム画面に追加」を押す`,\n's6196153c4b0c1ea0': `インストール`,\n's922329d6f6213590': `Dockに追加`,\n'sa5ef80b4bb9b39f8': `折りたたむ`,\n'sa7551383d1897fcc': `2) 「Dockに追加」を押す`,\n'sba52286c21552a4e': `デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。`,\n'sc79fd7641eb9a975': `説明を非表示`,\n'scdaf4bbff76674c8': `ホーム画面に追加`,\n'sdfe23506a3b0cdc8': `1) Safariで開く`,\n'se740f75b95a51807': `ドックに追加して、幅広い体験と簡単なアクセスを実現してください。`,\n'sfea652f6580ff086': `このサイトはアプリ機能があります。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.`,\n's1b9047d53d9f9d22': `2) Tryck på Dela-knappen i verktygsfältet`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Välj Lägg till på hemskärmen`,\n's6196153c4b0c1ea0': `Installera`,\n's922329d6f6213590': `Lägg till i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Välj Lägg till i Dock`,\n'sba52286c21552a4e': `Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sc79fd7641eb9a975': `Göm instruktioner`,\n'scdaf4bbff76674c8': `Lägg till på hemskärmen`,\n'sdfe23506a3b0cdc8': `1) Öppna i Safari`,\n'se740f75b95a51807': `Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sfea652f6580ff086': `Denna webbsajt har app-funktionalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.`,\n's1b9047d53d9f9d22': `2) 내비게이션 바에서 공유 버튼 누르기`,\n's37a9e8aec5713460': `더보기`,\n's5c6aad7a7e4a1437': `3) 홈 화면에 추가 버튼 누르기`,\n's6196153c4b0c1ea0': `설치`,\n's922329d6f6213590': `Dock에 추가`,\n'sa5ef80b4bb9b39f8': `닫기`,\n'sa7551383d1897fcc': `2) Dock에 추가 버튼 누르기`,\n'sba52286c21552a4e': `더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.`,\n'sc79fd7641eb9a975': `안내 숨기기`,\n'scdaf4bbff76674c8': `홈 화면에 추가`,\n'sdfe23506a3b0cdc8': `1) Safari 브라우저에서 열기`,\n'se740f75b95a51807': `더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.`,\n'sfea652f6580ff086': `이 사이트는 앱 기능을 가지고 있습니다.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n's1b9047d53d9f9d22': `2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ`,\n's37a9e8aec5713460': `បង្ហាញបន្ថែម`,\n's5c6aad7a7e4a1437': `3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n's6196153c4b0c1ea0': `តំឡើង`,\n's922329d6f6213590': `បន្ថែមទៅកាន់ Dock`,\n'sa5ef80b4bb9b39f8': `បង្ហាញតិច`,\n'sa7551383d1897fcc': `2) ចុចលើ បន្ថែមទៅកាន់ Dock`,\n'sba52286c21552a4e': `តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sc79fd7641eb9a975': `បិទការណែនាំ`,\n'scdaf4bbff76674c8': `បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n'sdfe23506a3b0cdc8': `1) បើកនៅក្នុងកម្មវិធី Safari`,\n'se740f75b95a51807': `បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sfea652f6580ff086': `គេហទំព័រនេះមានមុខងារជាកម្មវិធី។`,\n };\n ","import { configureLocalization } from '@lit/localize';\r\nimport {\r\n sourceLocale,\r\n targetLocales,\r\n} from './locale-codes';\r\n\r\nimport * as ru from './locales/ru';\r\nimport * as tr from './locales/tr';\r\nimport * as de from \"./locales/de\";\r\nimport * as es from \"./locales/es\";\r\nimport * as nl from \"./locales/nl\";\r\nimport * as el from \"./locales/el\";\r\nimport * as fr from \"./locales/fr\";\r\nimport * as sr from \"./locales/sr\";\r\nimport * as pl from \"./locales/pl\";\r\nimport * as uk from \"./locales/uk\";\r\nimport * as zh from \"./locales/zh\";\r\nimport * as zhCN from \"./locales/zh-CN\";\r\nimport * as it from \"./locales/it\";\r\nimport * as cs from \"./locales/cs\";\r\nimport * as no from \"./locales/no\";\r\nimport * as pt from \"./locales/pt\";\r\nimport * as ja from \"./locales/ja\";\r\nimport * as sv from \"./locales/sv\";\r\nimport * as ko from \"./locales/ko\";\r\nimport * as km from \"./locales/km\";\r\n\r\nconst localizedTemplates = new Map([\r\n ['ru', ru],\r\n ['tr', tr],\r\n ['de', de],\r\n ['es', es],\r\n ['nl', nl],\r\n ['el', el],\r\n ['fr', fr],\r\n ['sr', sr],\r\n ['pl', pl],\r\n ['uk', uk],\r\n ['zh', zh],\r\n ['zh-CN', zhCN],\r\n ['it', it],\r\n ['cs', cs],\r\n ['no', no], // + nb\r\n ['pt', pt],\r\n ['ja', ja],\r\n ['sv', sv],\r\n ['ko', ko],\r\n ['km', km]\r\n])\r\n\r\nexport const { getLocale, setLocale } = configureLocalization({\r\n sourceLocale,\r\n targetLocales,\r\n // @ts-ignore\r\n loadLocale: async (lang: string) => localizedTemplates.get(lang)\r\n});\r\n\r\nexport const changeLocale = (lang: string) => {\r\n // Norwegian Bokmål is same as Norwegian\r\n switch (lang) {\r\n case 'nb':\r\n lang = 'no';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n try {\r\n if (localizedTemplates.get(lang))\r\n setLocale(lang);\r\n else\r\n setLocale(lang.slice(0, 2));\r\n }\r\n catch {\r\n console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);\r\n }\r\n};\r\n","import { ImageResource } from 'web-app-manifest';\r\n\r\nexport interface IRelatedApp {\r\n id: string,\r\n platform: string,\r\n url: string\r\n}\r\n\r\nexport interface IWindow extends Window {\r\n defferedPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\ntype Booleanish = 'true' | 'false';\r\n\r\nexport interface PWAInstallAttributes {\r\n ['manual-apple']?: Booleanish;\r\n ['manual-chrome']?: Booleanish;\r\n ['disable-chrome']?: Booleanish;\r\n ['install-description']?: string;\r\n ['disable-install-description']?: Booleanish;\r\n ['manifest-url']?: string;\r\n name?: string;\r\n description?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class Manifest {\r\n constructor() {\r\n this.icons = [{ src: '' }];\r\n this.screenshots = undefined;\r\n this.short_name = 'PWA';\r\n this.name = 'Progressive web application';\r\n this.description = 'Progressive web application';\r\n }\r\n short_name: string;\r\n icons: ImageResource[];\r\n screenshots?: ImageResource[];\r\n name: string;\r\n description: string;\r\n}\r\n","import {css} from 'lit'; export default css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`;\n ","import { html } from 'lit';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nconst template = (screenshots: WebAppManifest['screenshots'], theme: string, scrollToNextPage: any, scrollToPrevPage: any) => {\r\n return html`\r\n ${screenshots? html`\r\n
\r\n
\r\n
\r\n ${screenshots.map(screenshot => html``)}\r\n
\r\n
\r\n \r\n ${theme != 'default'?\r\n html``\r\n :\r\n html``\r\n }\r\n \r\n \r\n ${theme != 'default'?\r\n html`\r\n \r\n `\r\n :\r\n html`\r\n \r\n \r\n \r\n `\r\n }\r\n \r\n
`\r\n : ''}`;\r\n};\r\nexport default template;\r\n","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nimport styles from './styles-gallery.scss';\r\nimport template from './template-gallery';\r\n\r\n@customElement('pwa-gallery')\r\nexport default class PWAGalleryElement extends LitElement {\r\n\t@property() screenshots: WebAppManifest['screenshots'] = [];\r\n\t@property() theme: 'default' | 'apple_desktop' | 'apple_mobile' = 'default';\r\n\r\n\tstatic get styles() {\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tpublic calcScrollSize = () => {\r\n\t\t//@ts-ignore\r\n\t\tconst gallery = this.shadowRoot.querySelector('#paginated_gallery');\r\n\t\tif (!gallery)\r\n\t\t\treturn;\r\n\t\tconst gallery_scroller = gallery.querySelector('.gallery_scroller');\r\n\t\tif (!gallery_scroller)\r\n\t\t\treturn;\r\n\t\tconst gallery_items = Array.from(gallery_scroller.querySelectorAll('img'));\r\n\t\tif (!gallery_items)\r\n\t\t\treturn;\r\n\t\tconst gallery_item = gallery_items.find((item) => { return (item.offsetWidth + item.offsetLeft) >= gallery_scroller.scrollLeft})\r\n\t\tif (!gallery_item)\r\n\t\t\treturn;\r\n\r\n\t\treturn {\r\n\t\t\tscroller: gallery_scroller,\r\n\t\t\titem: gallery_item\r\n\t\t}\r\n\t}\r\n\tpublic scrollToNextPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.nextElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft + _tools.scroller.clientWidth + _tools.item.nextElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\tpublic scrollToPrevPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.previousElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft - _tools.scroller.clientWidth - _tools.item.previousElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\tprivate _init = () => {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools)\r\n\t\t\tsetTimeout(\r\n\t\t\t\t() => {\r\n\t\t\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t)\r\n\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\tthis._init();\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(\r\n this.screenshots,\r\n\t\t\tthis.theme,\r\n\t\t\tthis.scrollToNextPage,\r\n\t\t\tthis.scrollToPrevPage\r\n )}`;\r\n\t}\r\n}\r\n","import { html } from 'lit';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, icon: string, install: any) => {\r\n return html`\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n
${location.hostname}
\r\n
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n `;\r\n};\r\nexport default template;\r\n","import { WebAppManifest } from 'web-app-manifest';\r\nimport { IRelatedApp } from './types/types';\r\n\r\nconst _eventDispatcher = (_element: Element, name: string, message: string) => {\r\n const event = new CustomEvent(name, {\r\n detail: {\r\n message\r\n }\r\n });\r\n _element.dispatchEvent(event);\r\n}\r\nexport default class Utils {\r\n static isAppleMobile(): boolean {\r\n\t\tif (\r\n (\r\n ['iPhone', 'iPad', 'iPod'].includes(navigator.platform) ||\r\n (navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n )\r\n && ('serviceWorker' in navigator)\r\n )\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static isAppleDesktop(): boolean {\r\n // check if it's a mac\r\n const userAgent = navigator.userAgent.toLowerCase();\r\n if (navigator.maxTouchPoints || !userAgent.match(/macintosh/))\r\n return false;\r\n // check safari version >= 17\r\n const version = /version\\/(\\d{2})\\./.exec(userAgent)\r\n if (!version || !version[1] || !(parseInt(version[1]) >= 17))\r\n return false;\r\n // hacky way to detect Sonoma\r\n const audioCheck = document.createElement('audio').canPlayType('audio/wav; codecs=\"1\"') ? true : false;\r\n const webGLCheck = new OffscreenCanvas(1, 1).getContext('webgl') ? true : false;\r\n\r\n return audioCheck && webGLCheck;\r\n }\r\n \r\n static isStandalone() {\r\n\t\tif (window.matchMedia('(display-mode: standalone)').matches || ('standalone' in navigator && (navigator as any).standalone === true))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static async getInstalledRelatedApps(): Promise {\r\n if ('getInstalledRelatedApps' in navigator)\r\n try{\r\n await (navigator as any).getInstalledRelatedApps().then((relatedApps: IRelatedApp[]) => {\r\n return relatedApps;\r\n });\r\n } catch (e) {}\r\n \r\n return [];\r\n }\r\n \r\n static async isRelatedAppsInstalled(): Promise {\r\n const _relatedApps = await this.getInstalledRelatedApps();\r\n return _relatedApps.length? true : false;\r\n }\r\n\r\n static eventInstalledSuccess(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-success-event', 'App install success (Chromium/Android only)');\r\n }\r\n static eventInstalledFail(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-fail-event', 'App install failed (Chromium/Android only)');\r\n }\r\n static eventUserChoiceResult(_element: Element, message: string) {\r\n _eventDispatcher(_element, 'pwa-user-choice-result-event', message);\r\n }\r\n static eventInstallAvailable(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-available-event', 'App install available');\r\n }\r\n static eventInstallHowTo(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-how-to-event', 'App install instruction showed');\r\n }\r\n static eventGallery(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-gallery-event', 'App install gallery showed');\r\n }\r\n\r\n static normalizeManifestAssetUrls(manifest: WebAppManifest, manifestUrl: string) {\r\n const normalizedManifestUrl = new URL(manifestUrl, document.location.href);\r\n [...manifest.icons || [], ...manifest.screenshots || []].forEach(asset => {\r\n asset.src = new URL(asset.src, normalizedManifestUrl).href;\r\n })\r\n }\r\n}","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\n\r\n// import TouchDragListener from \"./touch-listener\";\r\n\r\ntype IProps = {\r\n name: string,\r\n description: string,\r\n icon: string\r\n}\r\n\r\nimport template from './template-bottom-sheet';\r\nimport Utils from '../../../utils';\r\n\r\n@customElement('pwa-bottom-sheet')\r\nexport default class PWABottomSheetElement extends LitElement {\r\n\t@property({type: Object}) props: IProps = {\r\n name: '',\r\n description: '',\r\n icon: ''\r\n };\r\n @property({type: Object}) install = {handleEvent: () => {}};\r\n\t@property() hideDialog = () => {};\r\n\t@property() disableClose = false;\r\n\r\n\tprivate _callInstall = () => {\r\n\t\tthis.install.handleEvent();\r\n\t}\r\n\r\n\tprivate _callHide = () => {\r\n\t\tthis.hideDialog();\r\n\t\tthis.setupAppearence();\r\n\t}\r\n\r\n\tprivate bindedElement: {\r\n\t\ttouchElement: HTMLElement,\r\n\t\tlistener: any }| null = null;\r\n\tprivate readonly _saveBodyStyle = document.body.style.overscrollBehaviorY;\r\n\tprivate dragMobileSheet = (element: HTMLElement | null | undefined, touchTargetElement: HTMLElement | undefined, infoElement: HTMLElement | undefined) => {\r\n\t\tif (!element || !touchTargetElement || !infoElement)\r\n\t\t\treturn null;\r\n\r\n\t\tlet dragOffset = 0;\r\n\t\tconst bounceOffset = 35;\r\n\t\tconst bottomSize = touchTargetElement.clientHeight + infoElement.clientHeight;\r\n\r\n\t\tconst getYCoord = (e: MouseEvent | TouchEvent): number => {\r\n\t\t\treturn (e as MouseEvent).clientY || ((e as TouchEvent).changedTouches && (e as TouchEvent).changedTouches.length? (e as TouchEvent).changedTouches[0].clientY : 0);\r\n\t\t}\r\n\r\n\t\tconst dragMouseDown = (e: MouseEvent | TouchEvent) => {\r\n\t\t\twindow.addEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.addEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.addEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.addEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tdragOffset = getYCoord(e) - touchTargetElement.getBoundingClientRect().top;\r\n\r\n\t\t\tdocument.body.style.overscrollBehaviorY = 'none';\r\n\t\t}\r\n\t\tconst dragMouseUp = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tdocument.body.style.overscrollBehaviorY = this._saveBodyStyle;\r\n\r\n\t\t\tif (!this.disableClose && getYCoord(e) >= window.innerHeight - 25) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight + 50, true);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (window.innerHeight - getYCoord(e) > element.clientHeight / 2.5) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - element.clientHeight);\r\n\t\t\t\t\r\n\t\t\t\ttry {\r\n\t\t\t\t\tUtils.eventGallery((this.getRootNode() as ShadowRoot).host);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - bottomSize - bounceOffset);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dragMouseMove = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tconst currentY = getYCoord(e);\r\n\r\n\t\t\tif (this.disableClose && window.innerHeight - currentY < 70) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (currentY <= (window.innerHeight - element.clientHeight + dragOffset)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`none`\r\n\t\t\t)\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"--translateY\",\r\n\t\t\t\t`translateY(${currentY - dragOffset}px)`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => {\r\n\t\t\twindow.removeEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.removeEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.removeEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.removeEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tif (window.innerWidth >= 768)\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!toPoint && getYCoord(e) >= window.innerHeight - bottomSize)\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(calc(100vh - ${bottomSize}px))`\r\n\t\t\t\t);\r\n\t\t\telse\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(${(toPoint || getYCoord(e)) + bounceOffset}px)`\r\n\t\t\t\t);\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s`\r\n\t\t\t);\r\n\r\n\t\t\tif (hideDialog){\r\n\t\t\t\ttouchTargetElement.removeEventListener('mousedown', dragMouseDown);\r\n\t\t\t\ttouchTargetElement.removeEventListener('touchstart', dragMouseDown);\r\n\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\tthis._callHide,\r\n\t\t\t\t\t250\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\ttouchTargetElement.addEventListener('mousedown', dragMouseDown);\r\n\t\ttouchTargetElement.addEventListener('touchstart', dragMouseDown, {passive: true});\r\n\r\n\t\tcloseDragElement(new MouseEvent('mouseup'), window.innerHeight - bottomSize - bounceOffset);\r\n\r\n\t\treturn {\r\n\t\t\ttouchElement: touchTargetElement,\r\n\t\t\tlistener: dragMouseDown\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupAppearence = () => {\r\n\t\tif (this.bindedElement) {\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('mousedown', this.bindedElement.listener);\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('touchstart', this.bindedElement.listener);\r\n\t\t}\r\n\r\n\t\tthis.bindedElement = this.dragMobileSheet(\r\n\t\t\tthis.parentElement?.parentElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement);\r\n\t}\r\n\tprivate _init = () => {\r\n\t\tthis.setupAppearence();\r\n\r\n\t\twindow.addEventListener('resize', this.setupAppearence);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tthis._init();\r\n return;\r\n\t}\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(this.props.name, this.props.description, this.props.icon, this._callInstall)}`;\r\n\t}\r\n}\r\n","import {css} from 'lit'; export default css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,\"Segoe UI\",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:\"\";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,\"Segoe UI\",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:\"\";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`;\n ","import {css} from 'lit'; export default css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,\"Segoe UI\";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon description\" \"welcome welcome\" \"how-to how-to\" \"gallery gallery\" \"button button\";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon\" \"description\" \"welcome\" \"how-to\" \"gallery\" \"button\";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;\n ","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as s,Directive as i,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=s(class extends i{constructor(t){if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||t.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((s=>t[s])).join(\" \")+\" \"}update(s,[i]){if(void 0===this.st){this.st=new Set,void 0!==s.strings&&(this.nt=new Set(s.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in i)i[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(i)}const r=s.element.classList;for(const t of this.st)t in i||(r.remove(t),this.st.delete(t));for(const t in i){const s=!!i[t];s===this.st.has(t)||this.nt?.has(t)||(s?(r.add(t),this.st.add(t)):(r.remove(t),this.st.delete(t)))}return t}});export{e as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n
\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n ${!disableClose? html`` : ''}\r\n
\r\n
${location.hostname}
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n ${!disableDescription? \r\n html`
${installDescription? installDescription: `${msg('This site has app functionality.')} ${msg('Install it on your device for extensive experience and easy access.')}`}
` \r\n : ''}\r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n ${screenshotsAvailable? html``:''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n
\r\n
`;\r\n};\r\nexport default template;\r\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, isDesktop: boolean, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested, desktop: isDesktop}};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n `;\r\n};\r\nexport default template;\r\n","import { LitElement, PropertyValues, html } from 'lit';\r\nimport { localized } from '@lit/localize';\r\nimport { property, state, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { changeLocale } from './localization';\r\n\r\nimport { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types';\r\n\r\nimport PWAGalleryElement from './gallery';\r\nimport PWABottomSheetElement from './templates/chrome/bottom-sheet';\r\n\r\nimport Utils from './utils';\r\n\r\ndeclare const window: IWindow;\r\n\r\nimport styles from './templates/chrome/styles.scss';\r\nimport stylesApple from './templates/apple/styles-apple.scss';\r\n\r\nimport template from './templates/chrome/template';\r\nimport templateApple from './templates/apple/template-apple';\r\n\r\n/**\r\n * @event {CustomEvent} pwa-install-success-event - App install success (Chromium/Android only)\r\n * @event {CustomEvent} pwa-install-fail-event - App install failed (Chromium/Android only)\r\n * @event {CustomEvent} pwa-user-choice-result-event - dismissed, accepted\r\n * @event {CustomEvent} pwa-install-available-event - App install available\r\n * @event {CustomEvent} pwa-install-how-to-event - App install instruction showed\r\n * @event {CustomEvent} pwa-install-gallery-event - App install gallery showed\r\n */\r\n@localized()\r\n@customElement('pwa-install')\r\nexport class PWAInstallElement extends LitElement {\r\n\t@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json';\r\n\t@property() icon = '';\r\n\t@property() name = '';\r\n\t@property() description = '';\r\n\t@property({attribute: 'install-description'}) installDescription = '';\r\n\t@property({attribute: 'disable-install-description', type: Boolean}) disableDescription = false;\r\n\t@property({attribute: 'disable-screenshots', type: Boolean}) disableScreenshots = false;\r\n\t@property({attribute: 'disable-screenshots-apple', type: Boolean}) disableScreenshotsApple = false;\r\n\t@property({attribute: 'disable-screenshots-chrome', type: Boolean}) disableScreenshotsChrome = false;\r\n\t@property({attribute: 'manual-apple', type: Boolean}) manualApple = false;\r\n\t@property({attribute: 'manual-chrome', type: Boolean}) manualChrome = false;\r\n\t@property({attribute: 'disable-chrome', type: Boolean}) disableChrome = false;\r\n\t@property({attribute: 'disable-close', type: Boolean}) disableClose = false;\r\n\r\n\tstatic get styles() {\r\n\t\treturn [ styles, stylesApple ];\r\n\t}\r\n\r\n\t@state() externalPromptEvent: BeforeInstallPromptEvent | null = null;\r\n\r\n\tpublic platforms: BeforeInstallPromptEvent['platforms'] = [];\r\n\tpublic userChoiceResult = '';\r\n\r\n\tpublic isDialogHidden: boolean = JSON.parse(window.sessionStorage.getItem('pwa-hide-install') || 'false');\r\n\tpublic isInstallAvailable = false;\r\n\tpublic isAppleMobilePlatform = false;\r\n\tpublic isAppleDesktopPlatform = false;\r\n\tpublic isUnderStandaloneMode = false;\r\n\tpublic isRelatedAppsInstalled = false;\r\n\r\n\t/** @internal */\r\n\tprivate _manifest: WebAppManifest = new Manifest();\r\n\t/** @internal */\r\n\tprivate _howToRequested = false;\r\n\t/** @internal */\r\n\tprivate _galleryRequested = false;\r\n\t/** @internal */\r\n\tprivate _install = {\r\n\t\thandleEvent: () => {\r\n\t\t\tif (window.defferedPromptEvent) {\r\n\t\t\t\tthis.hideDialog();\r\n\t\t\t\twindow.defferedPromptEvent.prompt();\r\n\t\t\t\twindow.defferedPromptEvent.userChoice\r\n\t\t\t\t\t.then((choiceResult: PromptResponseObject) => {\r\n\t\t\t\t\t\tthis.userChoiceResult = choiceResult.outcome;\r\n\t\t\t\t\t\tUtils.eventUserChoiceResult(this, this.userChoiceResult);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tUtils.eventInstalledFail(this);\r\n\t\t\t\t\t});\r\n\t\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\tpublic install = () => {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tthis._howToRequested = true;\r\n\t\t\tthis.requestUpdate();\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis._install.handleEvent();\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialog = {\r\n\t\thandleEvent: () => {\r\n\t\t\tthis.isDialogHidden = true;\r\n\t\t\twindow.sessionStorage.setItem('pwa-hide-install', 'true');\r\n\t\t\tthis.requestUpdate();\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialogUser = () => {\r\n\t\tUtils.eventUserChoiceResult(this, 'dismissed');\r\n\t\tthis.userChoiceResult = 'dismissed';\r\n\t\tthis.hideDialog();\r\n\t}\r\n\tpublic hideDialog = () => {\r\n\t\tthis._hideDialog.handleEvent();\r\n\t}\r\n\tpublic showDialog = (forced = false) => {\r\n\t\tthis.isDialogHidden = false;\r\n\t\tif (forced)\r\n\t\t\tthis.isInstallAvailable = true;\r\n\t\twindow.sessionStorage.setItem('pwa-hide-install', 'false');\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tpublic getInstalledRelatedApps = async (): Promise => {\r\n\t\treturn await Utils.getInstalledRelatedApps();\r\n\t}\r\n\r\n\t/** @internal */\r\n\tprivate _howToForApple = {\r\n handleEvent: () => {\r\n\t\t\tthis._howToRequested = !this._howToRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._galleryRequested = false;\r\n\t\t\tthis.requestUpdate();\r\n\r\n\t\t\tif (this._howToRequested) {\r\n\t\t\t\tUtils.eventInstallHowTo(this);\r\n\t\t\t\t\r\n\t\t\t\t// Looks like it's not needed anymore\r\n\t\t\t\t// if (this._manifest.start_url){\r\n\t\t\t\t// \ttry {\r\n\t\t\t\t// \t\thistory.replaceState({}, '', this._manifest.start_url);\r\n\t\t\t\t// \t} catch (e) {}\r\n\t\t\t\t// }\r\n\t\t\t}\t\t\t\t\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate _toggleGallery = {\r\n handleEvent: () => {\r\n\t\t\tthis._galleryRequested = !this._galleryRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._howToRequested = false;\r\n\r\n\t\t\tthis._galleryRequested && Utils.eventGallery(this);\r\n\r\n\t\t\tthis.requestUpdate();\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate async _checkInstalled() {\r\n\t\tthis.isUnderStandaloneMode = Utils.isStandalone();\r\n\t\tthis.isRelatedAppsInstalled = await Utils.isRelatedAppsInstalled();\r\n\t\tthis.isAppleMobilePlatform = Utils.isAppleMobile();\r\n\t\tthis.isAppleDesktopPlatform = Utils.isAppleDesktop();\r\n\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tif (!this.isUnderStandaloneMode) {\r\n\t\t\t\tthis.manualApple && this.hideDialog();\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1000\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.manualChrome && this.hideDialog();\r\n\t\t}\r\n\t}\r\n\t/** @internal */\r\n\tprivate _init = async () => {\r\n\t\twindow.defferedPromptEvent = null;\r\n\r\n\t\tthis._checkInstalled();\r\n\r\n\t\tif (!this.disableChrome) {\r\n\t\t\tconst _promptHandler = (e: BeforeInstallPromptEvent) => {\r\n\t\t\t\twindow.defferedPromptEvent = e;\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.platforms = e.platforms;\r\n\r\n\t\t\t\tif (this.isRelatedAppsInstalled || this.isUnderStandaloneMode) {\r\n\t\t\t\t\tthis.isInstallAvailable = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.userChoiceResult === 'accepted'){\r\n\t\t\t\t\tthis.isDialogHidden = true;\r\n\t\t\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t}\r\n\t\t\tif (this.externalPromptEvent != null)\r\n\t\t\t\tsetTimeout(() => _promptHandler(this.externalPromptEvent!), 300);\r\n\t\t\telse\r\n\t\t\t\twindow.addEventListener('beforeinstallprompt', _promptHandler);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('appinstalled', (e) => {\r\n\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\tthis.isInstallAvailable = false;\r\n\r\n\t\t\tthis.requestUpdate();\r\n\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t});\r\n\r\n\r\n\t\ttry{\r\n\t\t\tconst _response = await fetch(this.manifestUrl);\r\n\t\t\tconst _json = await _response.json() as WebAppManifest;\r\n\t\t\tif (!_response.ok || !_json || !Object.keys(_json))\r\n\t\t\t\tthrow new Error('Manifest not found');\r\n\t\t\tUtils.normalizeManifestAssetUrls(_json, this.manifestUrl);\r\n\t\t\t\r\n\t\t\tthis.icon = this.icon || _json.icons?.length ? _json.icons![0].src : '';\r\n\t\t\tthis.name = this.name || _json['short_name'] || _json.name || '';\r\n\t\t\tthis.description = this.description || _json.description || '';\r\n\t\t\tthis._manifest = _json;\r\n\t\t}\r\n\t\tcatch(e) {\r\n\t\t\tthis.icon = this.icon || this._manifest.icons?.[0].src || '';\r\n\t\t\tthis.name = this.name || this._manifest['short_name'] || '';\r\n\t\t\tthis.description = this.description || this._manifest.description || '';\r\n\t\t}\r\n\t};\r\n\t/** @internal */\r\n\tprivate _requestUpdate = () => {\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tchangeLocale(navigator.language);\r\n\t\tthis._init();\r\n\t\tPWAGalleryElement.finalized;\r\n\t\tPWABottomSheetElement.finalized;\r\n\t\tsuper.connectedCallback();\r\n\t}\r\n\twillUpdate(changedProperties: PropertyValues) {\r\n\t\tif (this.externalPromptEvent && changedProperties.has('externalPromptEvent') && typeof this.externalPromptEvent == 'object') {\r\n\t\t this._init();\r\n\t\t}\r\n\t}\r\n\r\n\t// firstUpdated() {\r\n\t// \treturn;\r\n\t// }\r\n\r\n\trender() {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform)\r\n\t\t\treturn html`${templateApple(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsApple,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._howToForApple,\r\n\t\t\t\tthis.isAppleDesktopPlatform,\r\n\t\t\t\tthis._howToRequested,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t\telse\r\n\t\t\treturn html`${template(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsChrome,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._install,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t}\r\n}\r\n\r\nexport { PWAInstallAttributes };\r\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { updateWhenLocaleChanges } from './localized-controller.js';\n/**\n * Class decorator to enable re-rendering the given LitElement whenever a new\n * active locale has loaded.\n *\n * See also {@link updateWhenLocaleChanges} for the same functionality without\n * the use of decorators.\n *\n * When using lit-localize in transform mode, applications of this decorator are\n * removed.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {customElement} from 'lit/decorators.js';\n * import {msg, localized} from '@lit/localize';\n *\n * @localized()\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nexport const localized = () => (clazz, _context) => {\n clazz.addInitializer(updateWhenLocaleChanges);\n return clazz;\n};\n//# sourceMappingURL=localized-decorator.js.map"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","s","WeakMap","n","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","replaceSync","set","toString","i","reduce","S","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","c","cssRules","r","is","getOwnPropertyDescriptor","getOwnPropertyNames","h","getOwnPropertySymbols","getPrototypeOf","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","y","attribute","type","String","converter","reflect","hasChanged","metadata","litPropertyMetadata","b","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","elementProperties","noAccessor","getPropertyDescriptor","requestUpdate","configurable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EC","removeAttribute","P","_$ET","has","_$Ej","reject","scheduleUpdate","performUpdate","wrapped","shouldUpdate","willUpdate","hostUpdate","update","_$EU","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","Math","random","toFixed","slice","createComment","iterator","v","_","m","RegExp","g","$","_$litType$","strings","values","x","w","for","T","A","E","createTreeWalker","C","lastIndex","exec","test","startsWith","V","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","k","H","I","R","tagName","append","data","indexOf","innerHTML","N","_$Co","_$Cl","_$litDirective$","_$AO","_$AT","_$AS","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","M","nextSibling","L","_$AI","_$Cv","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","j","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","Z","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","joinStringsAndValues","valueOrder","concat","template","isStrTagged","val","LOCALE_STATUS_EVENT","LocalizeController","__litLocalizeEventHandler","event","detail","status","window","updateWhenLocaleChanges","Deferred","settled","promise","resolve","_resolve","_reject","error","hl","HASH_DELIMITER","HTML_PREFIX","STRING_PREFIX","generateMsgId","isHtmlTagged","str","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","fnv1a64","join","expressionOrders","hashCache","runtimeMsg","templates","id","undefined","generateId","localized","order","dispatchStatusEvent","dispatchEvent","CustomEvent","loadingLocale","sourceLocale","validLocales","loadLocale","activeLocale","loading","requestId","getLocale","setLocale","newLocale","thisRequestId","then","mod","readyLocale","err","errorLocale","errorMessage","msg","installed","customElements","define","kind","init","targetLocales","localizedTemplates","config","async","lang","impl","Manifest","icons","src","screenshots","short_name","description","theme","scrollToNextPage","scrollToPrevPage","PWAGalleryElement","calcScrollSize","gallery","querySelector","gallery_scroller","gallery_items","from","querySelectorAll","gallery_item","find","item","offsetWidth","offsetLeft","scrollLeft","scroller","_tools","nextElementSibling","scrollTo","top","left","clientWidth","behavior","previousElementSibling","_init","setTimeout","icon","install","_eventDispatcher","_element","message","Utils","isAppleMobile","includes","navigator","platform","userAgent","match","maxTouchPoints","isAppleDesktop","version","parseInt","audioCheck","canPlayType","webGLCheck","OffscreenCanvas","getContext","isStandalone","matchMedia","matches","standalone","getInstalledRelatedApps","relatedApps","isRelatedAppsInstalled","eventInstalledSuccess","eventInstalledFail","eventUserChoiceResult","eventInstallAvailable","eventInstallHowTo","eventGallery","normalizeManifestAssetUrls","manifest","manifestUrl","normalizedManifestUrl","URL","location","href","asset","PWABottomSheetElement","props","hideDialog","disableClose","_callInstall","_callHide","setupAppearence","bindedElement","_saveBodyStyle","body","style","overscrollBehaviorY","dragMobileSheet","touchTargetElement","infoElement","dragOffset","bottomSize","clientHeight","getYCoord","clientY","changedTouches","dragMouseDown","dragMouseUp","dragMouseMove","getBoundingClientRect","innerHeight","closeDragElement","getRootNode","currentY","setProperty","toPoint","innerWidth","MouseEvent","touchElement","listener","parentElement","getElementsByClassName","_$Ct","_$Ci","filter","st","nt","classList","installDescription","disableDescription","disableScreenshots","installAvailable","toggleGallery","galleryRequested","installDialogClasses","available","screenshotsAvailable","howToForApple","isDesktop","howToRequested","desktop","PWAInstallElement","disableScreenshotsApple","disableScreenshotsChrome","manualApple","manualChrome","disableChrome","externalPromptEvent","platforms","userChoiceResult","isDialogHidden","sessionStorage","getItem","isInstallAvailable","isAppleMobilePlatform","isAppleDesktopPlatform","isUnderStandaloneMode","_manifest","_howToRequested","_galleryRequested","_install","defferedPromptEvent","prompt","userChoice","choiceResult","outcome","catch","_hideDialog","setItem","_hideDialogUser","showDialog","forced","_howToForApple","_toggleGallery","_checkInstalled","_promptHandler","preventDefault","_response","fetch","_json","json","ok","_requestUpdate","changeLocale","language","changedProperties","clazz","_context"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"pwa-install.bundle.js","mappings":"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","sources":["webpack://PWAInstallComponent/webpack/bootstrap","webpack://PWAInstallComponent/webpack/runtime/define property getters","webpack://PWAInstallComponent/webpack/runtime/hasOwnProperty shorthand","webpack://PWAInstallComponent/webpack/runtime/make namespace object","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/css-tag.js","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/reactive-element.js","webpack://PWAInstallComponent/./node_modules/lit-html/lit-html.js","webpack://PWAInstallComponent/./node_modules/lit-element/lit-element.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/str-tag.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/default-msg.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/init/install.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/locale-status-event.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/localized-controller.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/deferred.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/fnv1a64.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/id-generation.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/runtime-msg.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/init/runtime.js","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/decorators/custom-element.js","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/decorators/property.js","webpack://PWAInstallComponent/./src/localization/locale-codes.ts","webpack://PWAInstallComponent/./src/localization/locales/ru.ts","webpack://PWAInstallComponent/./src/localization/locales/tr.ts","webpack://PWAInstallComponent/./src/localization/locales/de.ts","webpack://PWAInstallComponent/./src/localization/locales/es.ts","webpack://PWAInstallComponent/./src/localization/locales/nl.ts","webpack://PWAInstallComponent/./src/localization/locales/el.ts","webpack://PWAInstallComponent/./src/localization/locales/fr.ts","webpack://PWAInstallComponent/./src/localization/locales/sr.ts","webpack://PWAInstallComponent/./src/localization/locales/pl.ts","webpack://PWAInstallComponent/./src/localization/locales/uk.ts","webpack://PWAInstallComponent/./src/localization/locales/zh.ts","webpack://PWAInstallComponent/./src/localization/locales/zh-CN.ts","webpack://PWAInstallComponent/./src/localization/locales/it.ts","webpack://PWAInstallComponent/./src/localization/locales/cs.ts","webpack://PWAInstallComponent/./src/localization/locales/no.ts","webpack://PWAInstallComponent/./src/localization/locales/pt.ts","webpack://PWAInstallComponent/./src/localization/locales/ja.ts","webpack://PWAInstallComponent/./src/localization/locales/sv.ts","webpack://PWAInstallComponent/./src/localization/locales/ko.ts","webpack://PWAInstallComponent/./src/localization/locales/km.ts","webpack://PWAInstallComponent/./src/localization/index.ts","webpack://PWAInstallComponent/./src/types/types.ts","webpack://PWAInstallComponent/./src/gallery/styles-gallery.scss","webpack://PWAInstallComponent/./src/gallery/template-gallery.ts","webpack://PWAInstallComponent/./src/gallery/index.ts","webpack://PWAInstallComponent/./src/templates/chrome/bottom-sheet/template-bottom-sheet.ts","webpack://PWAInstallComponent/./src/utils.ts","webpack://PWAInstallComponent/./src/templates/chrome/bottom-sheet/index.ts","webpack://PWAInstallComponent/./src/templates/chrome/styles.scss","webpack://PWAInstallComponent/./src/templates/apple/styles-apple.scss","webpack://PWAInstallComponent/./node_modules/lit-html/directive.js","webpack://PWAInstallComponent/./node_modules/lit-html/directives/class-map.js","webpack://PWAInstallComponent/./src/templates/chrome/template.ts","webpack://PWAInstallComponent/./src/templates/apple/template-apple.ts","webpack://PWAInstallComponent/./src/index.ts","webpack://PWAInstallComponent/./node_modules/@lit/reactive-element/decorators/state.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/localized-decorator.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\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","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst n=globalThis,c=n.trustedTypes,h=c?c.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,f=\"$lit$\",v=`lit$${Math.random().toFixed(9).slice(2)}$`,m=\"?\"+v,_=`<${m}>`,w=document,lt=()=>w.createComment(\"\"),st=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,g=Array.isArray,$=t=>g(t)||\"function\"==typeof t?.[Symbol.iterator],x=\"[ \\t\\n\\f\\r]\",T=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,E=/-->/g,k=/>/g,O=RegExp(`>|${x}(?:([^\\\\s\"'>=/]+)(${x}*=${x}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),S=/'/g,j=/\"/g,M=/^(?:script|style|textarea|title)$/i,P=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),ke=P(1),Oe=P(2),Se=P(3),R=Symbol.for(\"lit-noChange\"),D=Symbol.for(\"lit-nothing\"),V=new WeakMap,I=w.createTreeWalker(w,129);function N(t,i){if(!g(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==h?h.createHTML(i):i}const U=(t,i)=>{const s=t.length-1,e=[];let h,o=2===i?\"\":3===i?\"\":\"\",n=T;for(let i=0;i\"===l[0]?(n=h??T,c=-1):void 0===l[1]?c=-2:(c=n.lastIndex-l[2].length,r=l[1],n=void 0===l[3]?O:'\"'===l[3]?j:S):n===j||n===S?n=O:n===E||n===k?n=T:(n=O,h=void 0);const u=n===O&&t[i+1].startsWith(\"/>\")?\" \":\"\";o+=n===T?s+_:c>=0?(e.push(r),s.slice(0,c)+f+s.slice(c)+v+u):s+v+(-2===c?i:u)}return[N(t,o+(t[s]||\"\")+(2===i?\"\":3===i?\"\":\"\")),e]};class B{constructor({strings:t,_$litType$:i},s){let e;this.parts=[];let h=0,o=0;const n=t.length-1,r=this.parts,[l,a]=U(t,i);if(this.el=B.createElement(l,s),I.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(e=I.nextNode())&&r.length0){e.textContent=c?c.emptyScript:\"\";for(let s=0;s2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=D}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=z(this,t,i,0),o=!st(t)||t!==this._$AH&&t!==R,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new et(i.insertBefore(lt(),t),t,void 0,s??{})}return h._$AI(t),h};export{si as _$LH,ke as html,Se as mathml,R as noChange,D as nothing,Q as render,Oe as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as e}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as n,noChange as l}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class h extends e{constructor(){super(...arguments),this.renderOptions={host:this},this.o=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this.o=n(e,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this.o?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this.o?.setConnected(!1)}render(){return l}}h._$litElement$=!0,h[\"finalized\"]=!0,globalThis.litElementHydrateSupport?.({LitElement:h});const f=globalThis.litElementPolyfillSupport;f?.({LitElement:h});const x={_$AK:(t,e,s)=>{t._$AK(e,s)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.1.0\");export{h as LitElement,x as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Tag that allows expressions to be used in localized non-HTML template\n * strings.\n *\n * Example: msg(str`Hello ${this.user}!`);\n *\n * The Lit html tag can also be used for this purpose, but HTML will need to be\n * escaped, and there is a small overhead for HTML parsing.\n *\n * Untagged template strings with expressions aren't supported by lit-localize\n * because they don't allow for values to be captured at runtime.\n */\nconst _str = (strings, ...values) => ({\n strTag: true,\n strings,\n values,\n});\nexport const str = _str;\nexport const isStrTagged = (val) => typeof val !== 'string' && 'strTag' in val;\n/**\n * Render the result of a `str` tagged template to a string. Note we don't need\n * to do this for Lit templates, since Lit itself handles rendering.\n */\nexport const joinStringsAndValues = (strings, values, valueOrder) => {\n let concat = strings[0];\n for (let i = 1; i < strings.length; i++) {\n concat += values[valueOrder ? valueOrder[i - 1] : i - 1];\n concat += strings[i];\n }\n return concat;\n};\n//# sourceMappingURL=str-tag.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isStrTagged, joinStringsAndValues } from './str-tag.js';\n/**\n * Default identity msg implementation. Simply returns the input template with\n * no awareness of translations. If the template is str-tagged, returns it in\n * string form.\n */\nexport const defaultMsg = ((template) => isStrTagged(template)\n ? joinStringsAndValues(template.strings, template.values)\n : template);\n//# sourceMappingURL=default-msg.js.map","import { defaultMsg } from '../internal/default-msg.js';\n/**\n * Make a string or lit-html template localizable.\n *\n * @param template A string, a lit-html template, or a function that returns\n * either a string or lit-html template.\n * @param options Optional configuration object with the following properties:\n * - id: Optional project-wide unique identifier for this template. If\n * omitted, an id will be automatically generated from the template strings.\n * - desc: Optional description\n */\nexport let msg = defaultMsg;\nlet installed = false;\n/**\n * Internal only. Do not use this function.\n *\n * Installs an implementation of the msg function to replace the default\n * identity function. Throws if called more than once.\n *\n * @internal\n */\nexport function _installMsgImplementation(impl) {\n if (installed) {\n throw new Error('lit-localize can only be configured once');\n }\n msg = impl;\n installed = true;\n}\n//# sourceMappingURL=install.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Name of the event dispatched to `window` whenever a locale change starts,\n * finishes successfully, or fails. Only relevant to runtime mode.\n *\n * The `detail` of this event is an object with a `status` string that can be:\n * \"loading\", \"ready\", or \"error\", along with the relevant locale code, and\n * error message if applicable.\n *\n * You can listen for this event to know when your application should be\n * re-rendered following a locale change. See also the Localized mixin, which\n * automatically re-renders LitElement classes using this event.\n */\nexport const LOCALE_STATUS_EVENT = 'lit-localize-status';\n//# sourceMappingURL=locale-status-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { LOCALE_STATUS_EVENT } from './locale-status-event.js';\nclass LocalizeController {\n constructor(host) {\n this.__litLocalizeEventHandler = (event) => {\n if (event.detail.status === 'ready') {\n this.host.requestUpdate();\n }\n };\n this.host = host;\n }\n hostConnected() {\n window.addEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n hostDisconnected() {\n window.removeEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n}\n/**\n * Re-render the given LitElement whenever a new active locale has loaded.\n *\n * See also {@link localized} for the same functionality as a decorator.\n *\n * When using lit-localize in transform mode, calls to this function are\n * replaced with undefined.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {msg, updateWhenLocaleChanges} from '@lit/localize';\n *\n * class MyElement extends LitElement {\n * constructor() {\n * super();\n * updateWhenLocaleChanges(this);\n * }\n *\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nconst _updateWhenLocaleChanges = (host) => host.addController(new LocalizeController(host));\nexport const updateWhenLocaleChanges = _updateWhenLocaleChanges;\n//# sourceMappingURL=localized-controller.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport class Deferred {\n constructor() {\n this.settled = false;\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n resolve(value) {\n this.settled = true;\n this._resolve(value);\n }\n reject(error) {\n this.settled = true;\n this._reject(error);\n }\n}\n//# sourceMappingURL=deferred.js.map","/**\n * @license\n * Copyright 2014 Travis Webb\n * SPDX-License-Identifier: MIT\n */\n// This module is derived from the file:\n// https://github.com/tjwebb/fnv-plus/blob/1e2ce68a07cb7dd4c3c85364f3d8d96c95919474/index.js#L309\n//\n// Changes:\n// - Only the _hash64_1a_fast function is included.\n// - Removed loop unrolling.\n// - Converted to TypeScript ES module.\n// - var -> let/const\n//\n// TODO(aomarks) Upstream improvements to https://github.com/tjwebb/fnv-plus/.\nconst hl = [];\nfor (let i = 0; i < 256; i++) {\n hl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n}\n/**\n * Perform a FNV-1A 64-bit hash of the given string (as UTF-16 code units), and\n * return a hexadecimal digest (left zero padded to 16 characters).\n *\n * @see {@link http://tools.ietf.org/html/draft-eastlake-fnv-06}\n */\nexport function fnv1a64(str) {\n let t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n for (let i = 0; i < str.length; i++) {\n v0 ^= str.charCodeAt(i);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n return (hl[v3 >> 8] +\n hl[v3 & 255] +\n hl[v2 >> 8] +\n hl[v2 & 255] +\n hl[v1 >> 8] +\n hl[v1 & 255] +\n hl[v0 >> 8] +\n hl[v0 & 255]);\n}\n//# sourceMappingURL=fnv1a64.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { fnv1a64 } from './fnv1a64.js';\n/**\n * Delimiter used between each template string component before hashing. Used to\n * prevent e.g. \"foobar\" and \"foo${baz}bar\" from sharing a hash.\n *\n * This is the \"record separator\" ASCII character.\n */\nexport const HASH_DELIMITER = '\\x1e';\n/**\n * Id prefix on html-tagged templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst HTML_PREFIX = 'h';\n/**\n * Id prefix on plain string templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst STRING_PREFIX = 's';\n/**\n * Generate a unique ID for a lit-localize message.\n *\n * Example:\n * Template: html`Hello ${who}!`\n * Params: [\"Hello \", \"!\"], true\n * Output: h82ccc38d4d46eaa9\n *\n * The ID is constructed as:\n *\n * [0] Kind of template: [h]tml or [s]tring.\n * [1,16] 64-bit FNV-1a hash hex digest of the template strings, as UTF-16\n * code points, delineated by an ASCII \"record separator\" character.\n *\n * We choose FNV-1a because:\n *\n * 1. It's pretty fast (e.g. much faster than SHA-1).\n * 2. It's pretty small (0.25 KiB minified + brotli).\n * 3. We don't require cryptographic security, and 64 bits should give\n * sufficient collision resistance for any one application. Worst\n * case, we will always detect collisions during analysis.\n * 4. We can't use Web Crypto API (e.g. SHA-1), because it's asynchronous.\n * 5. It's a well known non-cryptographic hash with implementations in many\n * languages.\n * 6. There was an existing JavaScript implementation that doesn't require\n * BigInt, for IE11 compatibility.\n */\nexport function generateMsgId(strings, isHtmlTagged) {\n return ((isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) +\n fnv1a64(typeof strings === 'string' ? strings : strings.join(HASH_DELIMITER)));\n}\n//# sourceMappingURL=id-generation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './default-msg.js';\nimport { joinStringsAndValues } from './str-tag.js';\nimport { generateMsgId } from './id-generation.js';\nconst expressionOrders = new WeakMap();\nconst hashCache = new Map();\nexport function runtimeMsg(templates, template, options) {\n if (templates) {\n const id = options?.id ?? generateId(template);\n const localized = templates[id];\n if (localized) {\n if (typeof localized === 'string') {\n // E.g. \"Hello World!\"\n return localized;\n }\n else if ('strTag' in localized) {\n // E.g. str`Hello ${name}!`\n //\n // Localized templates have ${number} in place of real template\n // expressions. They can't have real template values, because the\n // variable scope would be wrong. The number tells us the index of the\n // source value to substitute in its place, because expressions can be\n // moved to a different position during translation.\n return joinStringsAndValues(localized.strings, \n // Cast `template` because its type wasn't automatically narrowed (but\n // we know it must be the same type as `localized`).\n template.values, localized.values);\n }\n else {\n // E.g. html`Hello ${name}!`\n //\n // We have to keep our own mapping of expression ordering because we do\n // an in-place update of `values`, and otherwise we'd lose ordering for\n // subsequent renders.\n let order = expressionOrders.get(localized);\n if (order === undefined) {\n order = localized.values;\n expressionOrders.set(localized, order);\n }\n return {\n ...localized,\n values: order.map((i) => template.values[i]),\n };\n }\n }\n }\n return defaultMsg(template);\n}\nfunction generateId(template) {\n const strings = typeof template === 'string' ? template : template.strings;\n let id = hashCache.get(strings);\n if (id === undefined) {\n id = generateMsgId(strings, typeof template !== 'string' && !('strTag' in template));\n hashCache.set(strings, id);\n }\n return id;\n}\n//# sourceMappingURL=runtime-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { Deferred } from '../internal/deferred.js';\nimport { LOCALE_STATUS_EVENT } from '../internal/locale-status-event.js';\nimport { runtimeMsg } from '../internal/runtime-msg.js';\nimport { _installMsgImplementation } from './install.js';\n/**\n * Dispatch a \"lit-localize-status\" event to `window` with the given detail.\n */\nfunction dispatchStatusEvent(detail) {\n window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));\n}\nlet activeLocale = '';\nlet loadingLocale;\nlet sourceLocale;\nlet validLocales;\nlet loadLocale;\nlet templates;\nlet loading = new Deferred();\n// The loading promise must be initially resolved, because that's what we should\n// return if the user immediately calls setLocale(sourceLocale).\nloading.resolve();\nlet requestId = 0;\n/**\n * Set configuration parameters for lit-localize when in runtime mode. Returns\n * an object with functions:\n *\n * - `getLocale`: Return the active locale code.\n * - `setLocale`: Set the active locale code.\n *\n * Throws if called more than once.\n */\nexport const configureLocalization = (config) => {\n _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));\n activeLocale = sourceLocale = config.sourceLocale;\n validLocales = new Set(config.targetLocales);\n validLocales.add(config.sourceLocale);\n loadLocale = config.loadLocale;\n return { getLocale, setLocale };\n};\n/**\n * Return the active locale code.\n */\nconst getLocale = () => {\n return activeLocale;\n};\n/**\n * Set the active locale code, and begin loading templates for that locale using\n * the `loadLocale` function that was passed to `configureLocalization`. Returns\n * a promise that resolves when the next locale is ready to be rendered.\n *\n * Note that if a second call to `setLocale` is made while the first requested\n * locale is still loading, then the second call takes precedence, and the\n * promise returned from the first call will resolve when second locale is\n * ready. If you need to know whether a particular locale was loaded, check\n * `getLocale` after the promise resolves.\n *\n * Throws if the given locale is not contained by the configured `sourceLocale`\n * or `targetLocales`.\n */\nconst setLocale = (newLocale) => {\n if (newLocale === (loadingLocale ?? activeLocale)) {\n return loading.promise;\n }\n if (!validLocales || !loadLocale) {\n throw new Error('Internal error');\n }\n if (!validLocales.has(newLocale)) {\n throw new Error('Invalid locale code');\n }\n requestId++;\n const thisRequestId = requestId;\n loadingLocale = newLocale;\n if (loading.settled) {\n loading = new Deferred();\n }\n dispatchStatusEvent({ status: 'loading', loadingLocale: newLocale });\n const localePromise = newLocale === sourceLocale\n ? // We could switch to the source locale synchronously, but we prefer to\n // queue it on a microtask so that switching locales is consistently\n // asynchronous.\n Promise.resolve({ templates: undefined })\n : loadLocale(newLocale);\n localePromise.then((mod) => {\n if (requestId === thisRequestId) {\n activeLocale = newLocale;\n loadingLocale = undefined;\n templates = mod.templates;\n dispatchStatusEvent({ status: 'ready', readyLocale: newLocale });\n loading.resolve();\n }\n // Else another locale was requested in the meantime. Don't resolve or\n // reject, because the newer load call is going to use the same promise.\n // Note the user can call getLocale() after the promise resolves if they\n // need to check if the locale is still the one they expected to load.\n }, (err) => {\n if (requestId === thisRequestId) {\n dispatchStatusEvent({\n status: 'error',\n errorLocale: newLocale,\n errorMessage: err.toString(),\n });\n loading.reject(err);\n }\n });\n return loading.promise;\n};\n//# sourceMappingURL=runtime.js.map","/**\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),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.P(o,void 0,t),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,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","// Do not modify this file by hand!\n// Re-generate this file by running lit-localize.\n\n/**\n * The locale code that templates in this source code are written in.\n */\nexport const sourceLocale = `en`;\n\n/**\n * The other locale codes that this application is localized into. Sorted\n * lexicographically.\n */\nexport const targetLocales = [\n `cs`,\n `de`,\n `el`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n\n/**\n * All valid project locale codes. Sorted lexicographically.\n */\nexport const allLocales = [\n `cs`,\n `de`,\n `el`,\n `en`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.`,\n's1b9047d53d9f9d22': `2) Нажать \"Поделиться\"`,\n's37a9e8aec5713460': `Подробнее`,\n's5c6aad7a7e4a1437': `3) Нажать \"На экран «Домой»\"`,\n's6196153c4b0c1ea0': `Установить`,\n's922329d6f6213590': `Добавить в Dock`,\n'sa5ef80b4bb9b39f8': `Свернуть`,\n'sa7551383d1897fcc': `2) Нажмите \"Добавить в Dock\"`,\n'sba52286c21552a4e': `Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.`,\n'sc79fd7641eb9a975': `Спрятать Инструкцию`,\n'scdaf4bbff76674c8': `На экран «Домой»`,\n'sdfe23506a3b0cdc8': `1) Открыть в Safari браузере`,\n'se740f75b95a51807': `Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.`,\n'sfea652f6580ff086': `Этот веб-сайт имеет функционал приложения.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.`,\n's1b9047d53d9f9d22': `2) Gezinme çubuğunda Paylaş'a basın`,\n's37a9e8aec5713460': `Daha Fazla`,\n's5c6aad7a7e4a1437': `3) Ana Ekrana Ekle'ye basın`,\n's6196153c4b0c1ea0': `Yükle`,\n's922329d6f6213590': `Dock’a Ekle`,\n'sa5ef80b4bb9b39f8': `Küçült`,\n'sa7551383d1897fcc': `2) Dock’a ekleye basın`,\n'sba52286c21552a4e': `Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.`,\n'sc79fd7641eb9a975': `Talimatları gizle`,\n'scdaf4bbff76674c8': `Ana Ekrana Ekle`,\n'sdfe23506a3b0cdc8': `1) Safari tarayıcısında açın`,\n'se740f75b95a51807': `Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.`,\n'sfea652f6580ff086': `Bu site uygulama işlevselliğine sahiptir.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n's1b9047d53d9f9d22': `2) Drücken Sie auf Teilen in der Navigationsleiste`,\n's37a9e8aec5713460': `Mehr`,\n's5c6aad7a7e4a1437': `3) Drücken Sie Hinzufügen zum Startbildschirm`,\n's6196153c4b0c1ea0': `Installieren`,\n's922329d6f6213590': `Zum Dock hinzufügen`,\n'sa5ef80b4bb9b39f8': `Weniger`,\n'sa7551383d1897fcc': `2) Drücken Sie auf Zum Dock hinzufügen`,\n'sba52286c21552a4e': `Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.`,\n'sc79fd7641eb9a975': `Anleitung ausblenden`,\n'scdaf4bbff76674c8': `Hinzufügen zum Startbildschirm`,\n'sdfe23506a3b0cdc8': `1) In Safari-Browser öffnen`,\n'se740f75b95a51807': `Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n'sfea652f6580ff086': `Diese Website verfügt über App-Funktionalität.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.`,\n's1b9047d53d9f9d22': `2) Presionar Compartir en la barra de direcciones`,\n's37a9e8aec5713460': `Más`,\n's5c6aad7a7e4a1437': `3) Presionar Añadir a pantalla de inicio`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Añadir al Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Presionar Añadir al Dock`,\n'sba52286c21552a4e': `Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.`,\n'sc79fd7641eb9a975': `Esconder instrucciones`,\n'scdaf4bbff76674c8': `Añadir a pantalla de inicio`,\n'sdfe23506a3b0cdc8': `1) Abrir en el navegador web Safari`,\n'se740f75b95a51807': `Añádelo a tu Dock para una experiencia amplia y acceso fácil.`,\n'sfea652f6580ff086': `Este sitio tiene funcionalidad de aplicación.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.`,\n's1b9047d53d9f9d22': `2) Druk op delen in de navigatiebalk`,\n's37a9e8aec5713460': `Meer`,\n's5c6aad7a7e4a1437': `3) Druk op Toevoegen aan het startscherm`,\n's6196153c4b0c1ea0': `Installeren`,\n's922329d6f6213590': `Toevoegen aan Dock`,\n'sa5ef80b4bb9b39f8': `Minder`,\n'sa7551383d1897fcc': `2) Druk op Toevoegen aan Dock`,\n'sba52286c21552a4e': `Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.`,\n'sc79fd7641eb9a975': `Instructie verbergen`,\n'scdaf4bbff76674c8': `Toevoegen aan het startscherm`,\n'sdfe23506a3b0cdc8': `1) Open in Safari-browser`,\n'se740f75b95a51807': `Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.`,\n'sfea652f6580ff086': `Deze site heeft app-functionaliteit.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n's1b9047d53d9f9d22': `2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης`,\n's37a9e8aec5713460': `Περισσότερα`,\n's5c6aad7a7e4a1437': `3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας`,\n's6196153c4b0c1ea0': `Εγκατάσταση`,\n's922329d6f6213590': `Προσθήκη στην Πρόσβαση`,\n'sa5ef80b4bb9b39f8': `Λιγότερα`,\n'sa7551383d1897fcc': `2) Πατήστε Προσθήκη στην Πρόσβαση`,\n'sba52286c21552a4e': `Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sc79fd7641eb9a975': `Απόκρυψη Οδηγιών`,\n'scdaf4bbff76674c8': `Προσθήκη στην Οθόνη Αφετηρίας`,\n'sdfe23506a3b0cdc8': `1) Ανοίξτε τον περιηγητή Safari`,\n'se740f75b95a51807': `Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sfea652f6580ff086': `Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.`,\n's1b9047d53d9f9d22': `2) Appuyez sur Partager dans la barre de navigation`,\n's37a9e8aec5713460': `Plus`,\n's5c6aad7a7e4a1437': `3) Appuyez sur Ajouter à l'écran d'accueil`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Ajouter au Dock`,\n'sa5ef80b4bb9b39f8': `Moins`,\n'sa7551383d1897fcc': `2) Appuyez sur Ajouter au Dock`,\n'sba52286c21552a4e': `Installez-le sur votre appareil pour une expérience complète et un accès facile.`,\n'sc79fd7641eb9a975': `Masquer les instructions`,\n'scdaf4bbff76674c8': `Ajouter à l'écran d'accueil`,\n'sdfe23506a3b0cdc8': `1) Ouvrir dans le navigateur Safari`,\n'se740f75b95a51807': `Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.`,\n'sfea652f6580ff086': `Ce site possède des fonctionnalités d'application.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додајте га на Home Screen за широке могућности и лак приступ.`,\n's1b9047d53d9f9d22': `2) Притисните Share у навигационој траци`,\n's37a9e8aec5713460': `Више`,\n's5c6aad7a7e4a1437': `3) Притисните Add to Home Screen`,\n's6196153c4b0c1ea0': `Инсталирај`,\n'sa5ef80b4bb9b39f8': `Мање`,\n'sa7551383d1897fcc': `3) Притисните Add to Dock`,\n'sba52286c21552a4e': `Инсталирајте га на вашем уређају за широке могућности и лак приступ.`,\n'sc79fd7641eb9a975': `Сакриј упутство`,\n'sdfe23506a3b0cdc8': `1) Отворите у Safari прегледачу`,\n'se740f75b95a51807': `Додајте га у вашу Dock за широке могућности и лак приступ.`,\n'sfea652f6580ff086': `Овај сајт има функционалност апликације.`,\n's922329d6f6213590': `Add to Dock`,\n'scdaf4bbff76674c8': `Add to Home Screen`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n's1b9047d53d9f9d22': `2) Wybierz \"Udostępnij\"`,\n's37a9e8aec5713460': `Więcej`,\n's5c6aad7a7e4a1437': `3) Wybierz \"Dodaj do Ekranu Głównego\"`,\n's6196153c4b0c1ea0': `Zainstaluj`,\n's922329d6f6213590': `Dodaj do Docka`,\n'sa5ef80b4bb9b39f8': `Mniej`,\n'sa7551383d1897fcc': `2) Wybierz \"Dodaj do Docka\"`,\n'sba52286c21552a4e': `Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sc79fd7641eb9a975': `Ukryj instrukcję`,\n'scdaf4bbff76674c8': `Dodaj do Ekranu Głównego`,\n'sdfe23506a3b0cdc8': `1) Otwórz przeglądarkę Safari`,\n'se740f75b95a51807': `Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sfea652f6580ff086': `Ta strona posiada funkcje aplikacji.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додайте на Домашній екран для зручного доступу та ширших можливостей.`,\n's1b9047d53d9f9d22': `2) Натиснути «Поділитися»`,\n's37a9e8aec5713460': `Детальніше`,\n's5c6aad7a7e4a1437': `3) Натиснути «На Початковий екран»`,\n's6196153c4b0c1ea0': `Встановити`,\n's922329d6f6213590': `Додати на Dock`,\n'sa5ef80b4bb9b39f8': `Згорнути`,\n'sa7551383d1897fcc': `2) Натиснути «Додати на Dock»`,\n'sba52286c21552a4e': `Встановіть на ваш пристрій для зручного доступу та ширших можливостей.`,\n'sc79fd7641eb9a975': `Сховати Інструкцію`,\n'scdaf4bbff76674c8': `На Початковий экран`,\n'sdfe23506a3b0cdc8': `1) Відкрити в Safari браузері`,\n'se740f75b95a51807': `Додайте на панель Dock для зручного доступу та ширших можливостей.`,\n'sfea652f6580ff086': `Цей сайт має функції додатку.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。`,\n's1b9047d53d9f9d22': `2) 點擊列表上的分享按鈕`,\n's37a9e8aec5713460': `詳細資訊`,\n's5c6aad7a7e4a1437': `3) 點擊加入主畫面`,\n's6196153c4b0c1ea0': `安裝`,\n's922329d6f6213590': `添加到Dock欄`,\n'sa5ef80b4bb9b39f8': `簡短資訊`,\n'sa7551383d1897fcc': `2) 點選添加到Dock欄`,\n'sba52286c21552a4e': `在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。`,\n'sc79fd7641eb9a975': `隱藏安裝流程`,\n'scdaf4bbff76674c8': `將App加入主畫面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上瀏覽此網頁`,\n'se740f75b95a51807': `將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。`,\n'sfea652f6580ff086': `此網站具有應用程式功能。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`,\n's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`,\n's37a9e8aec5713460': `详细资讯`,\n's5c6aad7a7e4a1437': `3) 点击添加到主屏幕`,\n's6196153c4b0c1ea0': `安装`,\n's922329d6f6213590': `添加到Dock`,\n'sa5ef80b4bb9b39f8': `简短资讯`,\n'sa7551383d1897fcc': `2) 按下添加到Dock`,\n'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`,\n'sc79fd7641eb9a975': `隐藏安装流程`,\n'scdaf4bbff76674c8': `将App添加到主屏幕`,\n'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`,\n'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`,\n'sfea652f6580ff086': `此网站具备app的功能性。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.`,\n's1b9047d53d9f9d22': `2) Premi Condividi nella barra di navigazione`,\n's37a9e8aec5713460': `Più`,\n's5c6aad7a7e4a1437': `3) Premi Aggiungi alla schermata principale`,\n's6196153c4b0c1ea0': `Installa`,\n's922329d6f6213590': `Aggiungi al Dock`,\n'sa5ef80b4bb9b39f8': `Meno`,\n'sa7551383d1897fcc': `2) Premi Aggiungi al Dock`,\n'sba52286c21552a4e': `Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.`,\n'sc79fd7641eb9a975': `Nascondi istruzioni`,\n'scdaf4bbff76674c8': `Aggiungi alla schermata principale`,\n'sdfe23506a3b0cdc8': `1) Apri nel browser Safari`,\n'se740f75b95a51807': `Aggiungilo al Dock per un'esperienza più completa e un accesso facile.`,\n'sfea652f6580ff086': `Questo sito ha funzionalità di app.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Přidejte jej na plochu pro rozšířené využití a snadný přístup.`,\n's1b9047d53d9f9d22': `2) Stiskněte tlačítko Sdílet na navigačním panelu`,\n's37a9e8aec5713460': `Vice`,\n's5c6aad7a7e4a1437': `3) Stiskněte tlačítko Přidat na plochu`,\n's6196153c4b0c1ea0': `Nainstalovat`,\n's922329d6f6213590': `Přidat do Docku`,\n'sa5ef80b4bb9b39f8': `Méně`,\n'sa7551383d1897fcc': `2) Stiskněte Přidat do Docku`,\n'sba52286c21552a4e': `Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.`,\n'sc79fd7641eb9a975': `Skrýt instrukce`,\n'scdaf4bbff76674c8': `Přidat na plochu`,\n'sdfe23506a3b0cdc8': `1) Otevřete v prohlížeči Safari`,\n'se740f75b95a51807': `Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.`,\n'sfea652f6580ff086': `Tento web má funkce aplikace.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.`,\n's1b9047d53d9f9d22': `2) Trykk på Del-knappen i navigasjonslinjen`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Velg Legg til på Hjem-skjerm`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Legg til i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Velg Legg til i Dock`,\n'sba52286c21552a4e': `Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sc79fd7641eb9a975': `Skjul instruksjoner`,\n'scdaf4bbff76674c8': `Legg til på Hjem-skjerm`,\n'sdfe23506a3b0cdc8': `1) Åpne i Safari`,\n'se740f75b95a51807': `Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sfea652f6580ff086': `Denne siden har app-funksjonalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.`,\n's1b9047d53d9f9d22': `2) Pressione Compartilhar na barra de endereço`,\n's37a9e8aec5713460': `Mais`,\n's5c6aad7a7e4a1437': `3) Pressione Adicionar à Tela de Início`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Adicionar ao Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Pressione Adicionar ao Dock`,\n'sba52286c21552a4e': `Instale no dispositivo para uma melhor experiência e mais fácil acesso.`,\n'sc79fd7641eb9a975': `Ocultar Instruções`,\n'scdaf4bbff76674c8': `Adicionar à Tela de Início`,\n'sdfe23506a3b0cdc8': `1) Abra no navegador Safari`,\n'se740f75b95a51807': `Adicione ao Dock para uma melhor experiência e mais fácil acesso.`,\n'sfea652f6580ff086': `Este site possui funcionalidade de aplicativo.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。`,\n's1b9047d53d9f9d22': `2) ナビゲーションバーで共有を押す`,\n's37a9e8aec5713460': `展開`,\n's5c6aad7a7e4a1437': `3) 「ホーム画面に追加」を押す`,\n's6196153c4b0c1ea0': `インストール`,\n's922329d6f6213590': `Dockに追加`,\n'sa5ef80b4bb9b39f8': `折りたたむ`,\n'sa7551383d1897fcc': `2) 「Dockに追加」を押す`,\n'sba52286c21552a4e': `デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。`,\n'sc79fd7641eb9a975': `説明を非表示`,\n'scdaf4bbff76674c8': `ホーム画面に追加`,\n'sdfe23506a3b0cdc8': `1) Safariで開く`,\n'se740f75b95a51807': `ドックに追加して、幅広い体験と簡単なアクセスを実現してください。`,\n'sfea652f6580ff086': `このサイトはアプリ機能があります。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.`,\n's1b9047d53d9f9d22': `2) Tryck på Dela-knappen i verktygsfältet`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Välj Lägg till på hemskärmen`,\n's6196153c4b0c1ea0': `Installera`,\n's922329d6f6213590': `Lägg till i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Välj Lägg till i Dock`,\n'sba52286c21552a4e': `Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sc79fd7641eb9a975': `Göm instruktioner`,\n'scdaf4bbff76674c8': `Lägg till på hemskärmen`,\n'sdfe23506a3b0cdc8': `1) Öppna i Safari`,\n'se740f75b95a51807': `Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sfea652f6580ff086': `Denna webbsajt har app-funktionalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.`,\n's1b9047d53d9f9d22': `2) 내비게이션 바에서 공유 버튼 누르기`,\n's37a9e8aec5713460': `더보기`,\n's5c6aad7a7e4a1437': `3) 홈 화면에 추가 버튼 누르기`,\n's6196153c4b0c1ea0': `설치`,\n's922329d6f6213590': `Dock에 추가`,\n'sa5ef80b4bb9b39f8': `닫기`,\n'sa7551383d1897fcc': `2) Dock에 추가 버튼 누르기`,\n'sba52286c21552a4e': `더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.`,\n'sc79fd7641eb9a975': `안내 숨기기`,\n'scdaf4bbff76674c8': `홈 화면에 추가`,\n'sdfe23506a3b0cdc8': `1) Safari 브라우저에서 열기`,\n'se740f75b95a51807': `더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.`,\n'sfea652f6580ff086': `이 사이트는 앱 기능을 가지고 있습니다.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n's1b9047d53d9f9d22': `2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ`,\n's37a9e8aec5713460': `បង្ហាញបន្ថែម`,\n's5c6aad7a7e4a1437': `3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n's6196153c4b0c1ea0': `តំឡើង`,\n's922329d6f6213590': `បន្ថែមទៅកាន់ Dock`,\n'sa5ef80b4bb9b39f8': `បង្ហាញតិច`,\n'sa7551383d1897fcc': `2) ចុចលើ បន្ថែមទៅកាន់ Dock`,\n'sba52286c21552a4e': `តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sc79fd7641eb9a975': `បិទការណែនាំ`,\n'scdaf4bbff76674c8': `បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n'sdfe23506a3b0cdc8': `1) បើកនៅក្នុងកម្មវិធី Safari`,\n'se740f75b95a51807': `បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sfea652f6580ff086': `គេហទំព័រនេះមានមុខងារជាកម្មវិធី។`,\n };\n ","import { configureLocalization } from '@lit/localize';\r\nimport {\r\n sourceLocale,\r\n targetLocales,\r\n} from './locale-codes';\r\n\r\nimport * as ru from './locales/ru';\r\nimport * as tr from './locales/tr';\r\nimport * as de from \"./locales/de\";\r\nimport * as es from \"./locales/es\";\r\nimport * as nl from \"./locales/nl\";\r\nimport * as el from \"./locales/el\";\r\nimport * as fr from \"./locales/fr\";\r\nimport * as sr from \"./locales/sr\";\r\nimport * as pl from \"./locales/pl\";\r\nimport * as uk from \"./locales/uk\";\r\nimport * as zh from \"./locales/zh\";\r\nimport * as zhCN from \"./locales/zh-CN\";\r\nimport * as it from \"./locales/it\";\r\nimport * as cs from \"./locales/cs\";\r\nimport * as no from \"./locales/no\";\r\nimport * as pt from \"./locales/pt\";\r\nimport * as ja from \"./locales/ja\";\r\nimport * as sv from \"./locales/sv\";\r\nimport * as ko from \"./locales/ko\";\r\nimport * as km from \"./locales/km\";\r\n\r\nconst localizedTemplates = new Map([\r\n ['ru', ru],\r\n ['tr', tr],\r\n ['de', de],\r\n ['es', es],\r\n ['nl', nl],\r\n ['el', el],\r\n ['fr', fr],\r\n ['sr', sr],\r\n ['pl', pl],\r\n ['uk', uk],\r\n ['zh', zh],\r\n ['zh-CN', zhCN],\r\n ['it', it],\r\n ['cs', cs],\r\n ['no', no], // + nb\r\n ['pt', pt],\r\n ['ja', ja],\r\n ['sv', sv],\r\n ['ko', ko],\r\n ['km', km]\r\n])\r\n\r\nexport const { getLocale, setLocale } = configureLocalization({\r\n sourceLocale,\r\n targetLocales,\r\n // @ts-ignore\r\n loadLocale: async (lang: string) => localizedTemplates.get(lang)\r\n});\r\n\r\nexport const changeLocale = (lang: string) => {\r\n // Norwegian Bokmål is same as Norwegian\r\n switch (lang.slice(0, 2)) {\r\n case 'nb':\r\n lang = 'no';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n try {\r\n if (localizedTemplates.get(lang))\r\n setLocale(lang);\r\n else\r\n setLocale(lang.slice(0, 2));\r\n }\r\n catch {\r\n console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);\r\n }\r\n};\r\n","import { ImageResource } from 'web-app-manifest';\r\n\r\nexport interface IRelatedApp {\r\n id: string,\r\n platform: string,\r\n url: string\r\n}\r\n\r\nexport interface IWindow extends Window {\r\n defferedPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\ntype Booleanish = 'true' | 'false';\r\n\r\nexport interface PWAInstallAttributes {\r\n ['manual-apple']?: Booleanish;\r\n ['manual-chrome']?: Booleanish;\r\n ['disable-chrome']?: Booleanish;\r\n ['install-description']?: string;\r\n ['disable-install-description']?: Booleanish;\r\n ['manifest-url']?: string;\r\n name?: string;\r\n description?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class Manifest {\r\n constructor() {\r\n this.icons = [{ src: '' }];\r\n this.screenshots = undefined;\r\n this.short_name = 'PWA';\r\n this.name = 'Progressive web application';\r\n this.description = 'Progressive web application';\r\n }\r\n short_name: string;\r\n icons: ImageResource[];\r\n screenshots?: ImageResource[];\r\n name: string;\r\n description: string;\r\n}\r\n","import {css} from 'lit'; export default css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`;\n ","import { html } from 'lit';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nconst template = (screenshots: WebAppManifest['screenshots'], theme: string, scrollToNextPage: any, scrollToPrevPage: any) => {\r\n return html`\r\n ${screenshots? html`\r\n
\r\n
\r\n
\r\n ${screenshots.map(screenshot => html``)}\r\n
\r\n
\r\n \r\n ${theme != 'default'?\r\n html``\r\n :\r\n html``\r\n }\r\n \r\n \r\n ${theme != 'default'?\r\n html`\r\n \r\n `\r\n :\r\n html`\r\n \r\n \r\n \r\n `\r\n }\r\n \r\n
`\r\n : ''}`;\r\n};\r\nexport default template;\r\n","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nimport styles from './styles-gallery.scss';\r\nimport template from './template-gallery';\r\n\r\n@customElement('pwa-gallery')\r\nexport default class PWAGalleryElement extends LitElement {\r\n\t@property() screenshots: WebAppManifest['screenshots'] = [];\r\n\t@property() theme: 'default' | 'apple_desktop' | 'apple_mobile' = 'default';\r\n\r\n\tstatic get styles() {\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tpublic calcScrollSize = () => {\r\n\t\t//@ts-ignore\r\n\t\tconst gallery = this.shadowRoot.querySelector('#paginated_gallery');\r\n\t\tif (!gallery)\r\n\t\t\treturn;\r\n\t\tconst gallery_scroller = gallery.querySelector('.gallery_scroller');\r\n\t\tif (!gallery_scroller)\r\n\t\t\treturn;\r\n\t\tconst gallery_items = Array.from(gallery_scroller.querySelectorAll('img'));\r\n\t\tif (!gallery_items)\r\n\t\t\treturn;\r\n\t\tconst gallery_item = gallery_items.find((item) => { return (item.offsetWidth + item.offsetLeft) >= gallery_scroller.scrollLeft})\r\n\t\tif (!gallery_item)\r\n\t\t\treturn;\r\n\r\n\t\treturn {\r\n\t\t\tscroller: gallery_scroller,\r\n\t\t\titem: gallery_item\r\n\t\t}\r\n\t}\r\n\tpublic scrollToNextPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.nextElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft + _tools.scroller.clientWidth + _tools.item.nextElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\tpublic scrollToPrevPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.previousElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft - _tools.scroller.clientWidth - _tools.item.previousElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\tprivate _init = () => {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools)\r\n\t\t\tsetTimeout(\r\n\t\t\t\t() => {\r\n\t\t\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t)\r\n\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\tthis._init();\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(\r\n this.screenshots,\r\n\t\t\tthis.theme,\r\n\t\t\tthis.scrollToNextPage,\r\n\t\t\tthis.scrollToPrevPage\r\n )}`;\r\n\t}\r\n}\r\n","import { html } from 'lit';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, icon: string, install: any) => {\r\n return html`\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n
${location.hostname}
\r\n
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n `;\r\n};\r\nexport default template;\r\n","import { WebAppManifest } from 'web-app-manifest';\r\nimport { IRelatedApp } from './types/types';\r\n\r\nconst _eventDispatcher = (_element: Element, name: string, message: string) => {\r\n const event = new CustomEvent(name, {\r\n detail: {\r\n message\r\n }\r\n });\r\n _element.dispatchEvent(event);\r\n}\r\nexport default class Utils {\r\n static isAppleMobile(): boolean {\r\n\t\tif (\r\n (\r\n ['iPhone', 'iPad', 'iPod'].includes(navigator.platform) ||\r\n (navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n )\r\n && ('serviceWorker' in navigator)\r\n )\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static isAppleDesktop(): boolean {\r\n // check if it's a mac\r\n const userAgent = navigator.userAgent.toLowerCase();\r\n if (navigator.maxTouchPoints || !userAgent.match(/macintosh/))\r\n return false;\r\n // check safari version >= 17\r\n const version = /version\\/(\\d{2})\\./.exec(userAgent)\r\n if (!version || !version[1] || !(parseInt(version[1]) >= 17))\r\n return false;\r\n // hacky way to detect Sonoma\r\n const audioCheck = document.createElement('audio').canPlayType('audio/wav; codecs=\"1\"') ? true : false;\r\n const webGLCheck = new OffscreenCanvas(1, 1).getContext('webgl') ? true : false;\r\n\r\n return audioCheck && webGLCheck;\r\n }\r\n \r\n static isStandalone() {\r\n\t\tif (window.matchMedia('(display-mode: standalone)').matches || ('standalone' in navigator && (navigator as any).standalone === true))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static async getInstalledRelatedApps(): Promise {\r\n if ('getInstalledRelatedApps' in navigator)\r\n try{\r\n await (navigator as any).getInstalledRelatedApps().then((relatedApps: IRelatedApp[]) => {\r\n return relatedApps;\r\n });\r\n } catch (e) {}\r\n \r\n return [];\r\n }\r\n \r\n static async isRelatedAppsInstalled(): Promise {\r\n const _relatedApps = await this.getInstalledRelatedApps();\r\n return _relatedApps.length? true : false;\r\n }\r\n\r\n static eventInstalledSuccess(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-success-event', 'App install success (Chromium/Android only)');\r\n }\r\n static eventInstalledFail(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-fail-event', 'App install failed (Chromium/Android only)');\r\n }\r\n static eventUserChoiceResult(_element: Element, message: string) {\r\n _eventDispatcher(_element, 'pwa-user-choice-result-event', message);\r\n }\r\n static eventInstallAvailable(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-available-event', 'App install available');\r\n }\r\n static eventInstallHowTo(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-how-to-event', 'App install instruction showed');\r\n }\r\n static eventGallery(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-gallery-event', 'App install gallery showed');\r\n }\r\n\r\n static normalizeManifestAssetUrls(manifest: WebAppManifest, manifestUrl: string) {\r\n const normalizedManifestUrl = new URL(manifestUrl, document.location.href);\r\n [...manifest.icons || [], ...manifest.screenshots || []].forEach(asset => {\r\n asset.src = new URL(asset.src, normalizedManifestUrl).href;\r\n })\r\n }\r\n}","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\n\r\n// import TouchDragListener from \"./touch-listener\";\r\n\r\ntype IProps = {\r\n name: string,\r\n description: string,\r\n icon: string\r\n}\r\n\r\nimport template from './template-bottom-sheet';\r\nimport Utils from '../../../utils';\r\n\r\n@customElement('pwa-bottom-sheet')\r\nexport default class PWABottomSheetElement extends LitElement {\r\n\t@property({type: Object}) props: IProps = {\r\n name: '',\r\n description: '',\r\n icon: ''\r\n };\r\n @property({type: Object}) install = {handleEvent: () => {}};\r\n\t@property() hideDialog = () => {};\r\n\t@property() disableClose = false;\r\n\r\n\tprivate _callInstall = () => {\r\n\t\tthis.install.handleEvent();\r\n\t}\r\n\r\n\tprivate _callHide = () => {\r\n\t\tthis.hideDialog();\r\n\t\tthis.setupAppearence();\r\n\t}\r\n\r\n\tprivate bindedElement: {\r\n\t\ttouchElement: HTMLElement,\r\n\t\tlistener: any }| null = null;\r\n\tprivate readonly _saveBodyStyle = document.body.style.overscrollBehaviorY;\r\n\tprivate dragMobileSheet = (element: HTMLElement | null | undefined, touchTargetElement: HTMLElement | undefined, infoElement: HTMLElement | undefined) => {\r\n\t\tif (!element || !touchTargetElement || !infoElement)\r\n\t\t\treturn null;\r\n\r\n\t\tlet dragOffset = 0;\r\n\t\tconst bounceOffset = 35;\r\n\t\tconst bottomSize = touchTargetElement.clientHeight + infoElement.clientHeight;\r\n\r\n\t\tconst getYCoord = (e: MouseEvent | TouchEvent): number => {\r\n\t\t\treturn (e as MouseEvent).clientY || ((e as TouchEvent).changedTouches && (e as TouchEvent).changedTouches.length? (e as TouchEvent).changedTouches[0].clientY : 0);\r\n\t\t}\r\n\r\n\t\tconst dragMouseDown = (e: MouseEvent | TouchEvent) => {\r\n\t\t\twindow.addEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.addEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.addEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.addEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tdragOffset = getYCoord(e) - touchTargetElement.getBoundingClientRect().top;\r\n\r\n\t\t\tdocument.body.style.overscrollBehaviorY = 'none';\r\n\t\t}\r\n\t\tconst dragMouseUp = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tdocument.body.style.overscrollBehaviorY = this._saveBodyStyle;\r\n\r\n\t\t\tif (!this.disableClose && getYCoord(e) >= window.innerHeight - 25) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight + 50, true);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (window.innerHeight - getYCoord(e) > element.clientHeight / 2.5) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - element.clientHeight);\r\n\t\t\t\t\r\n\t\t\t\ttry {\r\n\t\t\t\t\tUtils.eventGallery((this.getRootNode() as ShadowRoot).host);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - bottomSize - bounceOffset);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dragMouseMove = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tconst currentY = getYCoord(e);\r\n\r\n\t\t\tif (this.disableClose && window.innerHeight - currentY < 70) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (currentY <= (window.innerHeight - element.clientHeight + dragOffset)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`none`\r\n\t\t\t)\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"--translateY\",\r\n\t\t\t\t`translateY(${currentY - dragOffset}px)`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => {\r\n\t\t\twindow.removeEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.removeEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.removeEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.removeEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tif (window.innerWidth >= 768)\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!toPoint && getYCoord(e) >= window.innerHeight - bottomSize)\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(calc(100vh - ${bottomSize}px))`\r\n\t\t\t\t);\r\n\t\t\telse\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(${(toPoint || getYCoord(e)) + bounceOffset}px)`\r\n\t\t\t\t);\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s`\r\n\t\t\t);\r\n\r\n\t\t\tif (hideDialog){\r\n\t\t\t\ttouchTargetElement.removeEventListener('mousedown', dragMouseDown);\r\n\t\t\t\ttouchTargetElement.removeEventListener('touchstart', dragMouseDown);\r\n\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\tthis._callHide,\r\n\t\t\t\t\t250\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\ttouchTargetElement.addEventListener('mousedown', dragMouseDown);\r\n\t\ttouchTargetElement.addEventListener('touchstart', dragMouseDown, {passive: true});\r\n\r\n\t\tcloseDragElement(new MouseEvent('mouseup'), window.innerHeight - bottomSize - bounceOffset);\r\n\r\n\t\treturn {\r\n\t\t\ttouchElement: touchTargetElement,\r\n\t\t\tlistener: dragMouseDown\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupAppearence = () => {\r\n\t\tif (this.bindedElement) {\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('mousedown', this.bindedElement.listener);\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('touchstart', this.bindedElement.listener);\r\n\t\t}\r\n\r\n\t\tthis.bindedElement = this.dragMobileSheet(\r\n\t\t\tthis.parentElement?.parentElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement);\r\n\t}\r\n\tprivate _init = () => {\r\n\t\tthis.setupAppearence();\r\n\r\n\t\twindow.addEventListener('resize', this.setupAppearence);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tthis._init();\r\n return;\r\n\t}\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(this.props.name, this.props.description, this.props.icon, this._callInstall)}`;\r\n\t}\r\n}\r\n","import {css} from 'lit'; export default css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,\"Segoe UI\",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:\"\";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,\"Segoe UI\",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:\"\";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`;\n ","import {css} from 'lit'; export default css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,\"Segoe UI\";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon description\" \"welcome welcome\" \"how-to how-to\" \"gallery gallery\" \"button button\";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon\" \"description\" \"welcome\" \"how-to\" \"gallery\" \"button\";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;\n ","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this.t=t,this._$AM=e,this.i=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{noChange as R}from\"../lit-html.js\";import{directive as e,Directive as i,PartType as t}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const Rt=e(class extends i{constructor(s){if(super(s),s.type!==t.ATTRIBUTE||\"class\"!==s.name||s.strings?.length>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((s=>t[s])).join(\" \")+\" \"}update(t,[s]){if(void 0===this.st){this.st=new Set,void 0!==t.strings&&(this.nt=new Set(t.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!this.nt?.has(t)&&this.st.add(t);return this.render(s)}const i=t.element.classList;for(const t of this.st)t in s||(i.remove(t),this.st.delete(t));for(const t in s){const r=!!s[t];r===this.st.has(t)||this.nt?.has(t)||(r?(i.add(t),this.st.add(t)):(i.remove(t),this.st.delete(t)))}return R}});export{Rt as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n
\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n ${!disableClose? html`` : ''}\r\n
\r\n
${location.hostname}
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n ${!disableDescription? \r\n html`
${installDescription? installDescription: `${msg('This site has app functionality.')} ${msg('Install it on your device for extensive experience and easy access.')}`}
` \r\n : ''}\r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n ${screenshotsAvailable? html``:''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n
\r\n
`;\r\n};\r\nexport default template;\r\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, isDesktop: boolean, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested, desktop: isDesktop}};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n `;\r\n};\r\nexport default template;\r\n","import { LitElement, PropertyValues, html } from 'lit';\r\nimport { localized } from '@lit/localize';\r\nimport { property, state, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { changeLocale } from './localization';\r\n\r\nimport { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types';\r\n\r\nimport PWAGalleryElement from './gallery';\r\nimport PWABottomSheetElement from './templates/chrome/bottom-sheet';\r\n\r\nimport Utils from './utils';\r\n\r\ndeclare const window: IWindow;\r\n\r\nimport styles from './templates/chrome/styles.scss';\r\nimport stylesApple from './templates/apple/styles-apple.scss';\r\n\r\nimport template from './templates/chrome/template';\r\nimport templateApple from './templates/apple/template-apple';\r\n\r\n/**\r\n * @event {CustomEvent} pwa-install-success-event - App install success (Chromium/Android only)\r\n * @event {CustomEvent} pwa-install-fail-event - App install failed (Chromium/Android only)\r\n * @event {CustomEvent} pwa-user-choice-result-event - dismissed, accepted\r\n * @event {CustomEvent} pwa-install-available-event - App install available\r\n * @event {CustomEvent} pwa-install-how-to-event - App install instruction showed\r\n * @event {CustomEvent} pwa-install-gallery-event - App install gallery showed\r\n */\r\n@localized()\r\n@customElement('pwa-install')\r\nexport class PWAInstallElement extends LitElement {\r\n\t@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json';\r\n\t@property() icon = '';\r\n\t@property() name = '';\r\n\t@property() description = '';\r\n\t@property({attribute: 'install-description'}) installDescription = '';\r\n\t@property({attribute: 'disable-install-description', type: Boolean}) disableDescription = false;\r\n\t@property({attribute: 'disable-screenshots', type: Boolean}) disableScreenshots = false;\r\n\t@property({attribute: 'disable-screenshots-apple', type: Boolean}) disableScreenshotsApple = false;\r\n\t@property({attribute: 'disable-screenshots-chrome', type: Boolean}) disableScreenshotsChrome = false;\r\n\t@property({attribute: 'manual-apple', type: Boolean}) manualApple = false;\r\n\t@property({attribute: 'manual-chrome', type: Boolean}) manualChrome = false;\r\n\t@property({attribute: 'disable-chrome', type: Boolean}) disableChrome = false;\r\n\t@property({attribute: 'disable-close', type: Boolean}) disableClose = false;\r\n\r\n\tstatic get styles() {\r\n\t\treturn [ styles, stylesApple ];\r\n\t}\r\n\r\n\t@state() externalPromptEvent: BeforeInstallPromptEvent | null = null;\r\n\r\n\tpublic platforms: BeforeInstallPromptEvent['platforms'] = [];\r\n\tpublic userChoiceResult = '';\r\n\r\n\tpublic isDialogHidden: boolean = JSON.parse(window.sessionStorage.getItem('pwa-hide-install') || 'false');\r\n\tpublic isInstallAvailable = false;\r\n\tpublic isAppleMobilePlatform = false;\r\n\tpublic isAppleDesktopPlatform = false;\r\n\tpublic isUnderStandaloneMode = false;\r\n\tpublic isRelatedAppsInstalled = false;\r\n\r\n\t/** @internal */\r\n\tprivate _manifest: WebAppManifest = new Manifest();\r\n\t/** @internal */\r\n\tprivate _howToRequested = false;\r\n\t/** @internal */\r\n\tprivate _galleryRequested = false;\r\n\t/** @internal */\r\n\tprivate _install = {\r\n\t\thandleEvent: () => {\r\n\t\t\tif (window.defferedPromptEvent) {\r\n\t\t\t\tthis.hideDialog();\r\n\t\t\t\twindow.defferedPromptEvent.prompt();\r\n\t\t\t\twindow.defferedPromptEvent.userChoice\r\n\t\t\t\t\t.then((choiceResult: PromptResponseObject) => {\r\n\t\t\t\t\t\tthis.userChoiceResult = choiceResult.outcome;\r\n\t\t\t\t\t\tUtils.eventUserChoiceResult(this, this.userChoiceResult);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tUtils.eventInstalledFail(this);\r\n\t\t\t\t\t});\r\n\t\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\tpublic install = () => {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tthis._howToRequested = true;\r\n\t\t\tthis.requestUpdate();\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis._install.handleEvent();\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialog = {\r\n\t\thandleEvent: () => {\r\n\t\t\tthis.isDialogHidden = true;\r\n\t\t\twindow.sessionStorage.setItem('pwa-hide-install', 'true');\r\n\t\t\tthis.requestUpdate();\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialogUser = () => {\r\n\t\tUtils.eventUserChoiceResult(this, 'dismissed');\r\n\t\tthis.userChoiceResult = 'dismissed';\r\n\t\tthis.hideDialog();\r\n\t}\r\n\tpublic hideDialog = () => {\r\n\t\tthis._hideDialog.handleEvent();\r\n\t}\r\n\tpublic showDialog = (forced = false) => {\r\n\t\tthis.isDialogHidden = false;\r\n\t\tif (forced)\r\n\t\t\tthis.isInstallAvailable = true;\r\n\t\twindow.sessionStorage.setItem('pwa-hide-install', 'false');\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tpublic getInstalledRelatedApps = async (): Promise => {\r\n\t\treturn await Utils.getInstalledRelatedApps();\r\n\t}\r\n\r\n\t/** @internal */\r\n\tprivate _howToForApple = {\r\n handleEvent: () => {\r\n\t\t\tthis._howToRequested = !this._howToRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._galleryRequested = false;\r\n\t\t\tthis.requestUpdate();\r\n\r\n\t\t\tif (this._howToRequested) {\r\n\t\t\t\tUtils.eventInstallHowTo(this);\r\n\t\t\t\t\r\n\t\t\t\t// Looks like it's not needed anymore\r\n\t\t\t\t// if (this._manifest.start_url){\r\n\t\t\t\t// \ttry {\r\n\t\t\t\t// \t\thistory.replaceState({}, '', this._manifest.start_url);\r\n\t\t\t\t// \t} catch (e) {}\r\n\t\t\t\t// }\r\n\t\t\t}\t\t\t\t\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate _toggleGallery = {\r\n handleEvent: () => {\r\n\t\t\tthis._galleryRequested = !this._galleryRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._howToRequested = false;\r\n\r\n\t\t\tthis._galleryRequested && Utils.eventGallery(this);\r\n\r\n\t\t\tthis.requestUpdate();\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate async _checkInstalled() {\r\n\t\tthis.isUnderStandaloneMode = Utils.isStandalone();\r\n\t\tthis.isRelatedAppsInstalled = await Utils.isRelatedAppsInstalled();\r\n\t\tthis.isAppleMobilePlatform = Utils.isAppleMobile();\r\n\t\tthis.isAppleDesktopPlatform = Utils.isAppleDesktop();\r\n\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tif (!this.isUnderStandaloneMode) {\r\n\t\t\t\tthis.manualApple && this.hideDialog();\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1000\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.manualChrome && this.hideDialog();\r\n\t\t}\r\n\t}\r\n\t/** @internal */\r\n\tprivate _init = async () => {\r\n\t\twindow.defferedPromptEvent = null;\r\n\r\n\t\tthis._checkInstalled();\r\n\r\n\t\tif (!this.disableChrome) {\r\n\t\t\tconst _promptHandler = (e: BeforeInstallPromptEvent) => {\r\n\t\t\t\twindow.defferedPromptEvent = e;\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.platforms = e.platforms;\r\n\r\n\t\t\t\tif (this.isRelatedAppsInstalled || this.isUnderStandaloneMode) {\r\n\t\t\t\t\tthis.isInstallAvailable = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.userChoiceResult === 'accepted'){\r\n\t\t\t\t\tthis.isDialogHidden = true;\r\n\t\t\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t}\r\n\t\t\tif (this.externalPromptEvent != null)\r\n\t\t\t\tsetTimeout(() => _promptHandler(this.externalPromptEvent!), 300);\r\n\t\t\telse\r\n\t\t\t\twindow.addEventListener('beforeinstallprompt', _promptHandler);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('appinstalled', (e) => {\r\n\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\tthis.isInstallAvailable = false;\r\n\r\n\t\t\tthis.requestUpdate();\r\n\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t});\r\n\r\n\r\n\t\ttry{\r\n\t\t\tconst _response = await fetch(this.manifestUrl);\r\n\t\t\tconst _json = await _response.json() as WebAppManifest;\r\n\t\t\tif (!_response.ok || !_json || !Object.keys(_json))\r\n\t\t\t\tthrow new Error('Manifest not found');\r\n\t\t\tUtils.normalizeManifestAssetUrls(_json, this.manifestUrl);\r\n\t\t\t\r\n\t\t\tthis.icon = this.icon || _json.icons?.length ? _json.icons![0].src : '';\r\n\t\t\tthis.name = this.name || _json['short_name'] || _json.name || '';\r\n\t\t\tthis.description = this.description || _json.description || '';\r\n\t\t\tthis._manifest = _json;\r\n\t\t}\r\n\t\tcatch(e) {\r\n\t\t\tthis.icon = this.icon || this._manifest.icons?.[0].src || '';\r\n\t\t\tthis.name = this.name || this._manifest['short_name'] || '';\r\n\t\t\tthis.description = this.description || this._manifest.description || '';\r\n\t\t}\r\n\t};\r\n\t/** @internal */\r\n\tprivate _requestUpdate = () => {\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tchangeLocale(navigator.language);\r\n\t\tthis._init();\r\n\t\tPWAGalleryElement.finalized;\r\n\t\tPWABottomSheetElement.finalized;\r\n\t\tsuper.connectedCallback();\r\n\t}\r\n\twillUpdate(changedProperties: PropertyValues) {\r\n\t\tif (this.externalPromptEvent && changedProperties.has('externalPromptEvent') && typeof this.externalPromptEvent == 'object') {\r\n\t\t this._init();\r\n\t\t}\r\n\t}\r\n\r\n\t// firstUpdated() {\r\n\t// \treturn;\r\n\t// }\r\n\r\n\trender() {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform)\r\n\t\t\treturn html`${templateApple(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsApple,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._howToForApple,\r\n\t\t\t\tthis.isAppleDesktopPlatform,\r\n\t\t\t\tthis._howToRequested,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t\telse\r\n\t\t\treturn html`${template(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsChrome,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._install,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t}\r\n}\r\n\r\nexport { PWAInstallAttributes };\r\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { updateWhenLocaleChanges } from './localized-controller.js';\n/**\n * Class decorator to enable re-rendering the given LitElement whenever a new\n * active locale has loaded.\n *\n * See also {@link updateWhenLocaleChanges} for the same functionality without\n * the use of decorators.\n *\n * When using lit-localize in transform mode, applications of this decorator are\n * removed.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {customElement} from 'lit/decorators.js';\n * import {msg, localized} from '@lit/localize';\n *\n * @localized()\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nexport const localized = () => (clazz, _context) => {\n clazz.addInitializer(updateWhenLocaleChanges);\n return clazz;\n};\n//# sourceMappingURL=localized-decorator.js.map"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","t","globalThis","e","ShadowRoot","ShadyCSS","nativeShadow","Document","CSSStyleSheet","s","WeakMap","n","constructor","this","_$cssResult$","Error","cssText","styleSheet","length","replaceSync","set","toString","i","reduce","S","adoptedStyleSheets","map","document","createElement","litNonce","setAttribute","textContent","appendChild","c","cssRules","r","is","getOwnPropertyDescriptor","getOwnPropertyNames","h","getOwnPropertySymbols","getPrototypeOf","a","trustedTypes","l","emptyScript","p","reactiveElementPolyfillSupport","d","u","toAttribute","Boolean","Array","JSON","stringify","fromAttribute","Number","parse","f","y","attribute","type","String","converter","reflect","hasChanged","metadata","litPropertyMetadata","b","HTMLElement","addInitializer","_$Ei","push","observedAttributes","finalize","_$Eh","keys","createProperty","state","elementProperties","noAccessor","getPropertyDescriptor","requestUpdate","configurable","getPropertyOptions","Map","finalized","properties","_$Eu","elementStyles","finalizeStyles","styles","isArray","Set","flat","reverse","unshift","toLowerCase","super","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","Promise","enableUpdating","_$AL","_$E_","forEach","addController","_$EO","add","renderRoot","isConnected","hostConnected","removeController","delete","size","createRenderRoot","shadowRoot","attachShadow","shadowRootOptions","connectedCallback","disconnectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EC","removeAttribute","P","_$ET","has","_$Ej","reject","scheduleUpdate","performUpdate","wrapped","shouldUpdate","willUpdate","hostUpdate","update","_$EU","_$AE","hostUpdated","firstUpdated","updated","updateComplete","getUpdateComplete","mode","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","v","Math","random","toFixed","slice","m","_","w","lt","createComment","st","g","$","iterator","x","T","E","k","O","RegExp","j","M","_$litType$","strings","values","ke","R","for","D","V","I","createTreeWalker","N","U","lastIndex","exec","test","startsWith","B","parts","el","currentNode","content","firstChild","replaceWith","childNodes","nextNode","nodeType","hasAttributes","getAttributeNames","endsWith","getAttribute","split","index","name","ctor","Y","Z","q","G","tagName","append","data","indexOf","innerHTML","z","_$litDirective$","_$AO","_$AT","_$AS","F","_$AV","_$AN","_$AD","_$AM","parentNode","_$AU","creationScope","importNode","et","nextSibling","K","_$AI","_$AH","_$AA","_$AB","options","startNode","endNode","_$AR","insertBefore","createTextNode","_$AC","_$AP","remove","setConnected","element","fill","arguments","toggleAttribute","capture","once","passive","removeEventListener","addEventListener","handleEvent","host","Re","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","renderBefore","render","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","joinStringsAndValues","valueOrder","concat","defaultMsg","template","isStrTagged","val","msg","installed","LOCALE_STATUS_EVENT","LocalizeController","__litLocalizeEventHandler","event","detail","status","window","updateWhenLocaleChanges","Deferred","settled","promise","resolve","_resolve","_reject","error","hl","HASH_DELIMITER","HTML_PREFIX","STRING_PREFIX","generateMsgId","isHtmlTagged","str","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","fnv1a64","join","expressionOrders","hashCache","runtimeMsg","templates","id","undefined","generateId","localized","order","dispatchStatusEvent","dispatchEvent","CustomEvent","loadingLocale","sourceLocale","validLocales","loadLocale","activeLocale","loading","requestId","getLocale","setLocale","newLocale","thisRequestId","then","mod","readyLocale","err","errorLocale","errorMessage","customElements","define","kind","init","targetLocales","localizedTemplates","config","async","lang","impl","_installMsgImplementation","Manifest","icons","src","screenshots","short_name","description","theme","scrollToNextPage","scrollToPrevPage","PWAGalleryElement","calcScrollSize","gallery","querySelector","gallery_scroller","gallery_items","from","querySelectorAll","gallery_item","find","item","offsetWidth","offsetLeft","scrollLeft","scroller","_tools","nextElementSibling","scrollTo","top","left","clientWidth","behavior","previousElementSibling","_init","setTimeout","icon","install","_eventDispatcher","_element","message","Utils","isAppleMobile","includes","navigator","platform","userAgent","match","maxTouchPoints","isAppleDesktop","version","parseInt","audioCheck","canPlayType","webGLCheck","OffscreenCanvas","getContext","isStandalone","matchMedia","matches","standalone","getInstalledRelatedApps","relatedApps","isRelatedAppsInstalled","eventInstalledSuccess","eventInstalledFail","eventUserChoiceResult","eventInstallAvailable","eventInstallHowTo","eventGallery","normalizeManifestAssetUrls","manifest","manifestUrl","normalizedManifestUrl","URL","location","href","asset","PWABottomSheetElement","props","hideDialog","disableClose","_callInstall","_callHide","setupAppearence","bindedElement","_saveBodyStyle","body","style","overscrollBehaviorY","dragMobileSheet","touchTargetElement","infoElement","dragOffset","bottomSize","clientHeight","getYCoord","clientY","changedTouches","dragMouseDown","dragMouseUp","dragMouseMove","getBoundingClientRect","innerHeight","closeDragElement","getRootNode","currentY","setProperty","toPoint","innerWidth","MouseEvent","touchElement","listener","parentElement","getElementsByClassName","Rt","filter","nt","classList","installDescription","disableDescription","disableScreenshots","installAvailable","toggleGallery","galleryRequested","installDialogClasses","available","screenshotsAvailable","howToForApple","isDesktop","howToRequested","desktop","PWAInstallElement","disableScreenshotsApple","disableScreenshotsChrome","manualApple","manualChrome","disableChrome","externalPromptEvent","platforms","userChoiceResult","isDialogHidden","sessionStorage","getItem","isInstallAvailable","isAppleMobilePlatform","isAppleDesktopPlatform","isUnderStandaloneMode","_manifest","_howToRequested","_galleryRequested","_install","defferedPromptEvent","prompt","userChoice","choiceResult","outcome","catch","_hideDialog","setItem","_hideDialogUser","showDialog","forced","_howToForApple","_toggleGallery","_checkInstalled","_promptHandler","preventDefault","_response","fetch","_json","json","ok","_requestUpdate","changeLocale","language","changedProperties","clazz","_context"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/pwa-install.es.js b/dist/pwa-install.es.js index dbd0b31..f070921 100644 --- a/dist/pwa-install.es.js +++ b/dist/pwa-install.es.js @@ -1,2 +1,2 @@ -import*as e from"lit";import*as t from"lit/decorators.js";import*as a from"lit/directives/class-map.js";var l={d:(e,t)=>{for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},i={};l.d(i,{w:()=>Ne});var o={};l.r(o),l.d(o,{templates:()=>te});var s={};l.r(s),l.d(s,{templates:()=>ae});var n={};l.r(n),l.d(n,{templates:()=>le});var r={};l.r(r),l.d(r,{templates:()=>ie});var d={};l.r(d),l.d(d,{templates:()=>oe});var c={};l.r(c),l.d(c,{templates:()=>se});var p={};l.r(p),l.d(p,{templates:()=>ne});var b={};l.r(b),l.d(b,{templates:()=>re});var g={};l.r(g),l.d(g,{templates:()=>de});var h={};l.r(h),l.d(h,{templates:()=>ce});var m={};l.r(m),l.d(m,{templates:()=>pe});var f={};l.r(f),l.d(f,{templates:()=>be});var u={};l.r(u),l.d(u,{templates:()=>ge});var w={};l.r(w),l.d(w,{templates:()=>he});var v={};l.r(v),l.d(v,{templates:()=>me});var y={};l.r(y),l.d(y,{templates:()=>fe});var x={};l.r(x),l.d(x,{templates:()=>ue});var k={};l.r(k),l.d(k,{templates:()=>we});var D={};l.r(D),l.d(D,{templates:()=>ve});var A={};l.r(A),l.d(A,{templates:()=>ye});const E=(e=>{var t={};return l.d(t,e),t})({LitElement:()=>e.LitElement,css:()=>e.css,html:()=>e.html}),j=(e,t,a)=>{let l=e[0];for(let i=1;i{return"string"!=typeof(t=e)&&"strTag"in t?j(e.strings,e.values):e;var t},S="lit-localize-status";class _{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(S,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(S,this.__litLocalizeEventHandler)}}const P=e=>e.addController(new _(e));class L{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const $=[];for(let e=0;e<256;e++)$[e]=(e>>4&15).toString(16)+(15&e).toString(16);const I="",C="h",R="s";function M(e,t){return(t?C:R)+function(e){let t=0,a=8997,l=0,i=33826,o=0,s=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,o+=l>>>16,i=65535&l,r=n+(o>>>16)&65535,s=65535&o;return $[r>>8]+$[255&r]+$[s>>8]+$[255&s]+$[i>>8]+$[255&i]+$[a>>8]+$[255&a]}("string"==typeof e?e:e.join(I))}const T=new WeakMap,H=new Map;function O(e,t,a){if(e){const l=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=H.get(t);void 0===a&&(a=M(t,"string"!=typeof e&&!("strTag"in e)),H.set(t,a));return a}(t),i=e[l];if(i){if("string"==typeof i)return i;if("strTag"in i)return j(i.strings,t.values,i.values);{let e=T.get(i);return void 0===e&&(e=i.values,T.set(i,e)),{...i,values:e.map((e=>t.values[e]))}}}}return z(t)}function U(e){window.dispatchEvent(new CustomEvent(S,{detail:e}))}let B,q,Y,Z,W,N="",V=new L;V.resolve();let F=0;const G=()=>N,J=e=>{if(e===(B??N))return V.promise;if(!Y||!Z)throw Error("Internal error");if(!Y.has(e))throw Error("Invalid locale code");F++;const t=F;B=e,V.settled&&(V=new L),U({status:"loading",loadingLocale:e});return(e===q?Promise.resolve({templates:void 0}):Z(e)).then((a=>{F===t&&(N=e,B=void 0,W=a.templates,U({status:"ready",readyLocale:e}),V.resolve())}),(a=>{F===t&&(U({status:"error",errorLocale:e,errorMessage:a.toString()}),V.reject(a))})),V.promise};let K=z,Q=!1;const X=(e=>{var t={};return l.d(t,e),t})({customElement:()=>t.customElement,property:()=>t.property,state:()=>t.state}),ee=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],te={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},ae={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},le={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},ie={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},oe={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},se={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},ne={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},re={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},de={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},ce={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},pe={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},be={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击加入主画面",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App加入主画面",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},ge={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},he={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},me={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},fe={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},ue={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},we={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},ve={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},ye={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},xe=new Map([["ru",o],["tr",s],["de",n],["es",r],["nl",d],["el",c],["fr",p],["sr",b],["pl",g],["uk",h],["zh",m],["zh-CN",f],["it",u],["cs",w],["no",v],["pt",y],["ja",x],["sv",k],["ko",D],["km",A]]),{getLocale:ke,setLocale:De}=(Ae={sourceLocale:"en",targetLocales:ee,loadLocale:async e=>xe.get(e)},function(e){if(Q)throw Error("lit-localize can only be configured once");K=e,Q=!0}(((e,t)=>O(W,e,t))),N=q=Ae.sourceLocale,Y=new Set(Ae.targetLocales),Y.add(Ae.sourceLocale),Z=Ae.loadLocale,{getLocale:G,setLocale:J});var Ae;class Ee{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const je=E.css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,ze=(e,t,a,l)=>E.html`${e?E.html``:""}`;var Se=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},_e=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Pe=class extends E.LitElement{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const l=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return l?{scroller:t,item:l}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return je}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return E.html`${ze(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};Se([(0,X.property)(),_e("design:type",Object)],Pe.prototype,"screenshots",void 0),Se([(0,X.property)(),_e("design:type",String)],Pe.prototype,"theme",void 0),Pe=Se([(0,X.customElement)("pwa-gallery")],Pe);const Le=Pe,$e=(e,t,a,l)=>E.html`
icon
${location.hostname}
${t?E.html`
${t}
`:""}`,Ie=(e,t,a)=>{const l=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(l)};class Ce{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),l=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&l}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Ie(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Ie(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Ie(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Ie(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Ie(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Ie(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var Re=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Me=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Te=class extends E.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let l=0;const i=t.clientHeight+a.clientHeight,o=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),s=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),l=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&o(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-o(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Ce.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-i-35)},r=t=>{const a=o(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+l||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-l}px)`))},d=(a,l,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!l&&o(a)>=window.innerHeight-i?e.style.setProperty("--translateY",`translateY(calc(100vh - ${i}px))`):e.style.setProperty("--translateY",`translateY(${(l||o(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",s),t.removeEventListener("touchstart",s),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",s),t.addEventListener("touchstart",s,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-i-35),{touchElement:t,listener:s}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return E.html`${$e(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};Re([(0,X.property)({type:Object}),Me("design:type",Object)],Te.prototype,"props",void 0),Re([(0,X.property)({type:Object}),Me("design:type",Object)],Te.prototype,"install",void 0),Re([(0,X.property)(),Me("design:type",Object)],Te.prototype,"hideDialog",void 0),Re([(0,X.property)(),Me("design:type",Object)],Te.prototype,"disableClose",void 0),Te=Re([(0,X.customElement)("pwa-bottom-sheet")],Te);const He=Te,Oe=E.css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Ue=E.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;const Be=(e=>{var t={};return l.d(t,e),t})({classMap:()=>a.classMap}),qe=(e,t,a,l,i,o,s,n,r,d,c,p,b)=>{const g=()=>({available:r,gallery:b}),h=!i&&n.screenshots&&n.screenshots.length;return E.html`
icon
${o?"":E.html``}
${location.hostname}
${t?E.html`
${t}
`:""} ${l?"":E.html`
${a||`${K("This site has app functionality.")} ${K("Install it on your device for extensive experience and easy access.")}`}
`} ${h?E.html``:""}
${h?E.html``:""}
${h?E.html``:""}
`},Ye=(e,t,a,l,i,o,s,n,r,d,c,p,b,g,h)=>{const m=!i&&n.screenshots&&n.screenshots.length;return E.html``};var Ze=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},We=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Ne=class extends E.LitElement{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new Ee,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Ce.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Ce.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Ce.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Ce.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Ce.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Ce.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Ce.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Ce.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Ce.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Ce.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Oe,Ue]}async _checkInstalled(){this.isUnderStandaloneMode=Ce.isStandalone(),this.isRelatedAppsInstalled=await Ce.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Ce.isAppleMobile(),this.isAppleDesktopPlatform=Ce.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Ce.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e&&(e="no");try{xe.get(e)?De(e):De(e.slice(0,2))}catch{}})(navigator.language),this._init(),Le.finalized,He.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?E.html`${Ye(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:E.html`${qe(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};Ze([(0,X.property)({attribute:"manifest-url"}),We("design:type",Object)],Ne.prototype,"manifestUrl",void 0),Ze([(0,X.property)(),We("design:type",Object)],Ne.prototype,"icon",void 0),Ze([(0,X.property)(),We("design:type",Object)],Ne.prototype,"name",void 0),Ze([(0,X.property)(),We("design:type",Object)],Ne.prototype,"description",void 0),Ze([(0,X.property)({attribute:"install-description"}),We("design:type",Object)],Ne.prototype,"installDescription",void 0),Ze([(0,X.property)({attribute:"disable-install-description",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableDescription",void 0),Ze([(0,X.property)({attribute:"disable-screenshots",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableScreenshots",void 0),Ze([(0,X.property)({attribute:"disable-screenshots-apple",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableScreenshotsApple",void 0),Ze([(0,X.property)({attribute:"disable-screenshots-chrome",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableScreenshotsChrome",void 0),Ze([(0,X.property)({attribute:"manual-apple",type:Boolean}),We("design:type",Object)],Ne.prototype,"manualApple",void 0),Ze([(0,X.property)({attribute:"manual-chrome",type:Boolean}),We("design:type",Object)],Ne.prototype,"manualChrome",void 0),Ze([(0,X.property)({attribute:"disable-chrome",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableChrome",void 0),Ze([(0,X.property)({attribute:"disable-close",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableClose",void 0),Ze([(0,X.state)(),We("design:type",Object)],Ne.prototype,"externalPromptEvent",void 0),Ne=Ze([(e,t)=>(e.addInitializer(P),e),(0,X.customElement)("pwa-install")],Ne);var Ve=i.w;export{Ve as PWAInstallElement}; +import*as e from"lit";import*as t from"lit/decorators.js";import*as a from"lit/directives/class-map.js";var l={d:(e,t)=>{for(var a in t)l.o(t,a)&&!l.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},i={};l.d(i,{w:()=>Ne});var o={};l.r(o),l.d(o,{templates:()=>te});var s={};l.r(s),l.d(s,{templates:()=>ae});var n={};l.r(n),l.d(n,{templates:()=>le});var r={};l.r(r),l.d(r,{templates:()=>ie});var d={};l.r(d),l.d(d,{templates:()=>oe});var c={};l.r(c),l.d(c,{templates:()=>se});var p={};l.r(p),l.d(p,{templates:()=>ne});var b={};l.r(b),l.d(b,{templates:()=>re});var g={};l.r(g),l.d(g,{templates:()=>de});var h={};l.r(h),l.d(h,{templates:()=>ce});var m={};l.r(m),l.d(m,{templates:()=>pe});var f={};l.r(f),l.d(f,{templates:()=>be});var u={};l.r(u),l.d(u,{templates:()=>ge});var w={};l.r(w),l.d(w,{templates:()=>he});var v={};l.r(v),l.d(v,{templates:()=>me});var y={};l.r(y),l.d(y,{templates:()=>fe});var x={};l.r(x),l.d(x,{templates:()=>ue});var k={};l.r(k),l.d(k,{templates:()=>we});var D={};l.r(D),l.d(D,{templates:()=>ve});var A={};l.r(A),l.d(A,{templates:()=>ye});const E=(e=>{var t={};return l.d(t,e),t})({LitElement:()=>e.LitElement,css:()=>e.css,html:()=>e.html}),j=(e,t,a)=>{let l=e[0];for(let i=1;i{return"string"!=typeof(t=e)&&"strTag"in t?j(e.strings,e.values):e;var t};let S=z,_=!1;const P="lit-localize-status";class L{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(P,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(P,this.__litLocalizeEventHandler)}}const $=e=>e.addController(new L(e));class I{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const C=[];for(let e=0;e<256;e++)C[e]=(e>>4&15).toString(16)+(15&e).toString(16);const R="",M="h",T="s";function H(e,t){return(t?M:T)+function(e){let t=0,a=8997,l=0,i=33826,o=0,s=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,o+=l>>>16,i=65535&l,r=n+(o>>>16)&65535,s=65535&o;return C[r>>8]+C[255&r]+C[s>>8]+C[255&s]+C[i>>8]+C[255&i]+C[a>>8]+C[255&a]}("string"==typeof e?e:e.join(R))}const O=new WeakMap,U=new Map;function B(e,t,a){if(e){const l=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=U.get(t);void 0===a&&(a=H(t,"string"!=typeof e&&!("strTag"in e)),U.set(t,a));return a}(t),i=e[l];if(i){if("string"==typeof i)return i;if("strTag"in i)return j(i.strings,t.values,i.values);{let e=O.get(i);return void 0===e&&(e=i.values,O.set(i,e)),{...i,values:e.map((e=>t.values[e]))}}}}return z(t)}function q(e){window.dispatchEvent(new CustomEvent(P,{detail:e}))}let Y,Z,W,N,V,F="",G=new I;G.resolve();let J=0;const K=()=>F,Q=e=>{if(e===(Y??F))return G.promise;if(!W||!N)throw Error("Internal error");if(!W.has(e))throw Error("Invalid locale code");J++;const t=J;Y=e,G.settled&&(G=new I),q({status:"loading",loadingLocale:e});return(e===Z?Promise.resolve({templates:void 0}):N(e)).then((a=>{J===t&&(F=e,Y=void 0,V=a.templates,q({status:"ready",readyLocale:e}),G.resolve())}),(a=>{J===t&&(q({status:"error",errorLocale:e,errorMessage:a.toString()}),G.reject(a))})),G.promise};const X=(e=>{var t={};return l.d(t,e),t})({customElement:()=>t.customElement,property:()=>t.property,state:()=>t.state}),ee=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],te={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},ae={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},le={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},ie={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},oe={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},se={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},ne={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},re={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},de={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},ce={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},pe={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},be={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击添加到主屏幕",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App添加到主屏幕",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},ge={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},he={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},me={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},fe={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},ue={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},we={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},ve={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},ye={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},xe=new Map([["ru",o],["tr",s],["de",n],["es",r],["nl",d],["el",c],["fr",p],["sr",b],["pl",g],["uk",h],["zh",m],["zh-CN",f],["it",u],["cs",w],["no",v],["pt",y],["ja",x],["sv",k],["ko",D],["km",A]]),{getLocale:ke,setLocale:De}=(Ae={sourceLocale:"en",targetLocales:ee,loadLocale:async e=>xe.get(e)},function(e){if(_)throw Error("lit-localize can only be configured once");S=e,_=!0}(((e,t)=>B(V,e,t))),F=Z=Ae.sourceLocale,W=new Set(Ae.targetLocales),W.add(Ae.sourceLocale),N=Ae.loadLocale,{getLocale:K,setLocale:Q});var Ae;class Ee{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const je=E.css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,ze=(e,t,a,l)=>E.html`${e?E.html``:""}`;var Se=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},_e=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Pe=class extends E.LitElement{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const l=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return l?{scroller:t,item:l}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return je}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return E.html`${ze(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};Se([(0,X.property)(),_e("design:type",Object)],Pe.prototype,"screenshots",void 0),Se([(0,X.property)(),_e("design:type",String)],Pe.prototype,"theme",void 0),Pe=Se([(0,X.customElement)("pwa-gallery")],Pe);const Le=Pe,$e=(e,t,a,l)=>E.html`
icon
${location.hostname}
${t?E.html`
${t}
`:""}`,Ie=(e,t,a)=>{const l=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(l)};class Ce{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),l=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&l}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Ie(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Ie(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Ie(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Ie(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Ie(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Ie(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var Re=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Me=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Te=class extends E.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let l=0;const i=t.clientHeight+a.clientHeight,o=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),s=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),l=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&o(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-o(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Ce.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-i-35)},r=t=>{const a=o(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+l||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-l}px)`))},d=(a,l,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!l&&o(a)>=window.innerHeight-i?e.style.setProperty("--translateY",`translateY(calc(100vh - ${i}px))`):e.style.setProperty("--translateY",`translateY(${(l||o(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",s),t.removeEventListener("touchstart",s),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",s),t.addEventListener("touchstart",s,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-i-35),{touchElement:t,listener:s}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return E.html`${$e(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};Re([(0,X.property)({type:Object}),Me("design:type",Object)],Te.prototype,"props",void 0),Re([(0,X.property)({type:Object}),Me("design:type",Object)],Te.prototype,"install",void 0),Re([(0,X.property)(),Me("design:type",Object)],Te.prototype,"hideDialog",void 0),Re([(0,X.property)(),Me("design:type",Object)],Te.prototype,"disableClose",void 0),Te=Re([(0,X.customElement)("pwa-bottom-sheet")],Te);const He=Te,Oe=E.css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Ue=E.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;const Be=(e=>{var t={};return l.d(t,e),t})({classMap:()=>a.classMap}),qe=(e,t,a,l,i,o,s,n,r,d,c,p,b)=>{const g=()=>({available:r,gallery:b}),h=!i&&n.screenshots&&n.screenshots.length;return E.html`
icon
${o?"":E.html``}
${location.hostname}
${t?E.html`
${t}
`:""} ${l?"":E.html`
${a||`${S("This site has app functionality.")} ${S("Install it on your device for extensive experience and easy access.")}`}
`} ${h?E.html``:""}
${h?E.html``:""}
${h?E.html``:""}
`},Ye=(e,t,a,l,i,o,s,n,r,d,c,p,b,g,h)=>{const m=!i&&n.screenshots&&n.screenshots.length;return E.html``};var Ze=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},We=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Ne=class extends E.LitElement{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new Ee,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Ce.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Ce.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Ce.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Ce.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Ce.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Ce.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Ce.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Ce.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Ce.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Ce.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Oe,Ue]}async _checkInstalled(){this.isUnderStandaloneMode=Ce.isStandalone(),this.isRelatedAppsInstalled=await Ce.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Ce.isAppleMobile(),this.isAppleDesktopPlatform=Ce.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Ce.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e.slice(0,2)&&(e="no");try{xe.get(e)?De(e):De(e.slice(0,2))}catch{}})(navigator.language),this._init(),Le.finalized,He.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?E.html`${Ye(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:E.html`${qe(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};Ze([(0,X.property)({attribute:"manifest-url"}),We("design:type",Object)],Ne.prototype,"manifestUrl",void 0),Ze([(0,X.property)(),We("design:type",Object)],Ne.prototype,"icon",void 0),Ze([(0,X.property)(),We("design:type",Object)],Ne.prototype,"name",void 0),Ze([(0,X.property)(),We("design:type",Object)],Ne.prototype,"description",void 0),Ze([(0,X.property)({attribute:"install-description"}),We("design:type",Object)],Ne.prototype,"installDescription",void 0),Ze([(0,X.property)({attribute:"disable-install-description",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableDescription",void 0),Ze([(0,X.property)({attribute:"disable-screenshots",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableScreenshots",void 0),Ze([(0,X.property)({attribute:"disable-screenshots-apple",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableScreenshotsApple",void 0),Ze([(0,X.property)({attribute:"disable-screenshots-chrome",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableScreenshotsChrome",void 0),Ze([(0,X.property)({attribute:"manual-apple",type:Boolean}),We("design:type",Object)],Ne.prototype,"manualApple",void 0),Ze([(0,X.property)({attribute:"manual-chrome",type:Boolean}),We("design:type",Object)],Ne.prototype,"manualChrome",void 0),Ze([(0,X.property)({attribute:"disable-chrome",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableChrome",void 0),Ze([(0,X.property)({attribute:"disable-close",type:Boolean}),We("design:type",Object)],Ne.prototype,"disableClose",void 0),Ze([(0,X.state)(),We("design:type",Object)],Ne.prototype,"externalPromptEvent",void 0),Ne=Ze([(e,t)=>(e.addInitializer($),e),(0,X.customElement)("pwa-install")],Ne);var Ve=i.w;export{Ve as PWAInstallElement}; //# sourceMappingURL=pwa-install.es.js.map \ No newline at end of file diff --git a/dist/pwa-install.es.js.map b/dist/pwa-install.es.js.map index c684b49..2ea7f51 100644 --- a/dist/pwa-install.es.js.map +++ b/dist/pwa-install.es.js.map @@ -1 +1 @@ -{"version":3,"file":"pwa-install.es.js","mappings":"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","sources":["webpack://@khmyznikov/pwa-install/webpack/bootstrap","webpack://@khmyznikov/pwa-install/webpack/runtime/define property getters","webpack://@khmyznikov/pwa-install/webpack/runtime/hasOwnProperty shorthand","webpack://@khmyznikov/pwa-install/webpack/runtime/make namespace object","webpack://@khmyznikov/pwa-install/external module \"lit\"","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/str-tag.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/default-msg.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/locale-status-event.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/localized-controller.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/deferred.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/fnv1a64.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/id-generation.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/runtime-msg.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/init/runtime.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/lit-localize.js","webpack://@khmyznikov/pwa-install/external module \"lit/decorators.js\"","webpack://@khmyznikov/pwa-install/./src/localization/locale-codes.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ru.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/tr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/de.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/es.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/nl.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/el.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/fr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/sr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/pl.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/uk.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/zh.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/zh-CN.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/it.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/cs.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/no.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/pt.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ja.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/sv.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ko.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/km.ts","webpack://@khmyznikov/pwa-install/./src/localization/index.ts","webpack://@khmyznikov/pwa-install/./src/types/types.ts","webpack://@khmyznikov/pwa-install/./src/gallery/styles-gallery.scss","webpack://@khmyznikov/pwa-install/./src/gallery/template-gallery.ts","webpack://@khmyznikov/pwa-install/./src/gallery/index.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/bottom-sheet/template-bottom-sheet.ts","webpack://@khmyznikov/pwa-install/./src/utils.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/bottom-sheet/index.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/styles.scss","webpack://@khmyznikov/pwa-install/./src/templates/apple/styles-apple.scss","webpack://@khmyznikov/pwa-install/external module \"lit/directives/class-map.js\"","webpack://@khmyznikov/pwa-install/./src/templates/chrome/template.ts","webpack://@khmyznikov/pwa-install/./src/templates/apple/template-apple.ts","webpack://@khmyznikov/pwa-install/./src/index.ts","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/localized-decorator.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"LitElement\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.LitElement), [\"css\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.css), [\"html\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.html) });","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Tag that allows expressions to be used in localized non-HTML template\n * strings.\n *\n * Example: msg(str`Hello ${this.user}!`);\n *\n * The Lit html tag can also be used for this purpose, but HTML will need to be\n * escaped, and there is a small overhead for HTML parsing.\n *\n * Untagged template strings with expressions aren't supported by lit-localize\n * because they don't allow for values to be captured at runtime.\n */\nconst _str = (strings, ...values) => ({\n strTag: true,\n strings,\n values,\n});\nexport const str = _str;\nexport const isStrTagged = (val) => typeof val !== 'string' && 'strTag' in val;\n/**\n * Render the result of a `str` tagged template to a string. Note we don't need\n * to do this for Lit templates, since Lit itself handles rendering.\n */\nexport const joinStringsAndValues = (strings, values, valueOrder) => {\n let concat = strings[0];\n for (let i = 1; i < strings.length; i++) {\n concat += values[valueOrder ? valueOrder[i - 1] : i - 1];\n concat += strings[i];\n }\n return concat;\n};\n//# sourceMappingURL=str-tag.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isStrTagged, joinStringsAndValues } from './str-tag.js';\n/**\n * Default identity msg implementation. Simply returns the input template with\n * no awareness of translations. If the template is str-tagged, returns it in\n * string form.\n */\nexport const defaultMsg = ((template) => isStrTagged(template)\n ? joinStringsAndValues(template.strings, template.values)\n : template);\n//# sourceMappingURL=default-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Name of the event dispatched to `window` whenever a locale change starts,\n * finishes successfully, or fails. Only relevant to runtime mode.\n *\n * The `detail` of this event is an object with a `status` string that can be:\n * \"loading\", \"ready\", or \"error\", along with the relevant locale code, and\n * error message if applicable.\n *\n * You can listen for this event to know when your application should be\n * re-rendered following a locale change. See also the Localized mixin, which\n * automatically re-renders LitElement classes using this event.\n */\nexport const LOCALE_STATUS_EVENT = 'lit-localize-status';\n//# sourceMappingURL=locale-status-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { LOCALE_STATUS_EVENT } from './locale-status-event.js';\nclass LocalizeController {\n constructor(host) {\n this.__litLocalizeEventHandler = (event) => {\n if (event.detail.status === 'ready') {\n this.host.requestUpdate();\n }\n };\n this.host = host;\n }\n hostConnected() {\n window.addEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n hostDisconnected() {\n window.removeEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n}\n/**\n * Re-render the given LitElement whenever a new active locale has loaded.\n *\n * See also {@link localized} for the same functionality as a decorator.\n *\n * When using lit-localize in transform mode, calls to this function are\n * replaced with undefined.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {msg, updateWhenLocaleChanges} from '@lit/localize';\n *\n * class MyElement extends LitElement {\n * constructor() {\n * super();\n * updateWhenLocaleChanges(this);\n * }\n *\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nconst _updateWhenLocaleChanges = (host) => host.addController(new LocalizeController(host));\nexport const updateWhenLocaleChanges = _updateWhenLocaleChanges;\n//# sourceMappingURL=localized-controller.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport class Deferred {\n constructor() {\n this.settled = false;\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n resolve(value) {\n this.settled = true;\n this._resolve(value);\n }\n reject(error) {\n this.settled = true;\n this._reject(error);\n }\n}\n//# sourceMappingURL=deferred.js.map","/**\n * @license\n * Copyright 2014 Travis Webb\n * SPDX-License-Identifier: MIT\n */\n// This module is derived from the file:\n// https://github.com/tjwebb/fnv-plus/blob/1e2ce68a07cb7dd4c3c85364f3d8d96c95919474/index.js#L309\n//\n// Changes:\n// - Only the _hash64_1a_fast function is included.\n// - Removed loop unrolling.\n// - Converted to TypeScript ES module.\n// - var -> let/const\n//\n// TODO(aomarks) Upstream improvements to https://github.com/tjwebb/fnv-plus/.\nconst hl = [];\nfor (let i = 0; i < 256; i++) {\n hl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n}\n/**\n * Perform a FNV-1A 64-bit hash of the given string (as UTF-16 code units), and\n * return a hexadecimal digest (left zero padded to 16 characters).\n *\n * @see {@link http://tools.ietf.org/html/draft-eastlake-fnv-06}\n */\nexport function fnv1a64(str) {\n let t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n for (let i = 0; i < str.length; i++) {\n v0 ^= str.charCodeAt(i);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n return (hl[v3 >> 8] +\n hl[v3 & 255] +\n hl[v2 >> 8] +\n hl[v2 & 255] +\n hl[v1 >> 8] +\n hl[v1 & 255] +\n hl[v0 >> 8] +\n hl[v0 & 255]);\n}\n//# sourceMappingURL=fnv1a64.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { fnv1a64 } from './fnv1a64.js';\n/**\n * Delimiter used between each template string component before hashing. Used to\n * prevent e.g. \"foobar\" and \"foo${baz}bar\" from sharing a hash.\n *\n * This is the \"record separator\" ASCII character.\n */\nexport const HASH_DELIMITER = '\\x1e';\n/**\n * Id prefix on html-tagged templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst HTML_PREFIX = 'h';\n/**\n * Id prefix on plain string templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst STRING_PREFIX = 's';\n/**\n * Generate a unique ID for a lit-localize message.\n *\n * Example:\n * Template: html`Hello ${who}!`\n * Params: [\"Hello \", \"!\"], true\n * Output: h82ccc38d4d46eaa9\n *\n * The ID is constructed as:\n *\n * [0] Kind of template: [h]tml or [s]tring.\n * [1,16] 64-bit FNV-1a hash hex digest of the template strings, as UTF-16\n * code points, delineated by an ASCII \"record separator\" character.\n *\n * We choose FNV-1a because:\n *\n * 1. It's pretty fast (e.g. much faster than SHA-1).\n * 2. It's pretty small (0.25 KiB minified + brotli).\n * 3. We don't require cryptographic security, and 64 bits should give\n * sufficient collision resistance for any one application. Worst\n * case, we will always detect collisions during analysis.\n * 4. We can't use Web Crypto API (e.g. SHA-1), because it's asynchronous.\n * 5. It's a well known non-cryptographic hash with implementations in many\n * languages.\n * 6. There was an existing JavaScript implementation that doesn't require\n * BigInt, for IE11 compatibility.\n */\nexport function generateMsgId(strings, isHtmlTagged) {\n return ((isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) +\n fnv1a64(typeof strings === 'string' ? strings : strings.join(HASH_DELIMITER)));\n}\n//# sourceMappingURL=id-generation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './default-msg.js';\nimport { joinStringsAndValues } from './str-tag.js';\nimport { generateMsgId } from './id-generation.js';\nconst expressionOrders = new WeakMap();\nconst hashCache = new Map();\nexport function runtimeMsg(templates, template, options) {\n if (templates) {\n const id = options?.id ?? generateId(template);\n const localized = templates[id];\n if (localized) {\n if (typeof localized === 'string') {\n // E.g. \"Hello World!\"\n return localized;\n }\n else if ('strTag' in localized) {\n // E.g. str`Hello ${name}!`\n //\n // Localized templates have ${number} in place of real template\n // expressions. They can't have real template values, because the\n // variable scope would be wrong. The number tells us the index of the\n // source value to substitute in its place, because expressions can be\n // moved to a different position during translation.\n return joinStringsAndValues(localized.strings, \n // Cast `template` because its type wasn't automatically narrowed (but\n // we know it must be the same type as `localized`).\n template.values, localized.values);\n }\n else {\n // E.g. html`Hello ${name}!`\n //\n // We have to keep our own mapping of expression ordering because we do\n // an in-place update of `values`, and otherwise we'd lose ordering for\n // subsequent renders.\n let order = expressionOrders.get(localized);\n if (order === undefined) {\n order = localized.values;\n expressionOrders.set(localized, order);\n }\n return {\n ...localized,\n values: order.map((i) => template.values[i]),\n };\n }\n }\n }\n return defaultMsg(template);\n}\nfunction generateId(template) {\n const strings = typeof template === 'string' ? template : template.strings;\n let id = hashCache.get(strings);\n if (id === undefined) {\n id = generateMsgId(strings, typeof template !== 'string' && !('strTag' in template));\n hashCache.set(strings, id);\n }\n return id;\n}\n//# sourceMappingURL=runtime-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { _installMsgImplementation } from '../lit-localize.js';\nimport { Deferred } from '../internal/deferred.js';\nimport { LOCALE_STATUS_EVENT } from '../internal/locale-status-event.js';\nimport { runtimeMsg } from '../internal/runtime-msg.js';\n/**\n * Dispatch a \"lit-localize-status\" event to `window` with the given detail.\n */\nfunction dispatchStatusEvent(detail) {\n window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));\n}\nlet activeLocale = '';\nlet loadingLocale;\nlet sourceLocale;\nlet validLocales;\nlet loadLocale;\nlet templates;\nlet loading = new Deferred();\n// The loading promise must be initially resolved, because that's what we should\n// return if the user immediately calls setLocale(sourceLocale).\nloading.resolve();\nlet requestId = 0;\n/**\n * Set configuration parameters for lit-localize when in runtime mode. Returns\n * an object with functions:\n *\n * - `getLocale`: Return the active locale code.\n * - `setLocale`: Set the active locale code.\n *\n * Throws if called more than once.\n */\nexport const configureLocalization = (config) => {\n _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));\n activeLocale = sourceLocale = config.sourceLocale;\n validLocales = new Set(config.targetLocales);\n validLocales.add(config.sourceLocale);\n loadLocale = config.loadLocale;\n return { getLocale, setLocale };\n};\n/**\n * Return the active locale code.\n */\nconst getLocale = () => {\n return activeLocale;\n};\n/**\n * Set the active locale code, and begin loading templates for that locale using\n * the `loadLocale` function that was passed to `configureLocalization`. Returns\n * a promise that resolves when the next locale is ready to be rendered.\n *\n * Note that if a second call to `setLocale` is made while the first requested\n * locale is still loading, then the second call takes precedence, and the\n * promise returned from the first call will resolve when second locale is\n * ready. If you need to know whether a particular locale was loaded, check\n * `getLocale` after the promise resolves.\n *\n * Throws if the given locale is not contained by the configured `sourceLocale`\n * or `targetLocales`.\n */\nconst setLocale = (newLocale) => {\n if (newLocale === (loadingLocale ?? activeLocale)) {\n return loading.promise;\n }\n if (!validLocales || !loadLocale) {\n throw new Error('Internal error');\n }\n if (!validLocales.has(newLocale)) {\n throw new Error('Invalid locale code');\n }\n requestId++;\n const thisRequestId = requestId;\n loadingLocale = newLocale;\n if (loading.settled) {\n loading = new Deferred();\n }\n dispatchStatusEvent({ status: 'loading', loadingLocale: newLocale });\n const localePromise = newLocale === sourceLocale\n ? // We could switch to the source locale synchronously, but we prefer to\n // queue it on a microtask so that switching locales is consistently\n // asynchronous.\n Promise.resolve({ templates: undefined })\n : loadLocale(newLocale);\n localePromise.then((mod) => {\n if (requestId === thisRequestId) {\n activeLocale = newLocale;\n loadingLocale = undefined;\n templates = mod.templates;\n dispatchStatusEvent({ status: 'ready', readyLocale: newLocale });\n loading.resolve();\n }\n // Else another locale was requested in the meantime. Don't resolve or\n // reject, because the newer load call is going to use the same promise.\n // Note the user can call getLocale() after the promise resolves if they\n // need to check if the locale is still the one they expected to load.\n }, (err) => {\n if (requestId === thisRequestId) {\n dispatchStatusEvent({\n status: 'error',\n errorLocale: newLocale,\n errorMessage: err.toString(),\n });\n loading.reject(err);\n }\n });\n return loading.promise;\n};\n//# sourceMappingURL=runtime.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './internal/default-msg.js';\nexport * from './internal/locale-status-event.js';\nexport * from './internal/str-tag.js';\nexport * from './internal/types.js';\n// TODO(aomarks) In a future breaking version, remove these imports so that the\n// bulk of the code isn't included in bundles by default. In particular imagine\n// the component library use-case where msg() calls are made, but there is no\n// need to actually initialize any of the localization runtime.\nexport * from './internal/localized-controller.js';\nexport * from './internal/localized-decorator.js';\nexport * from './init/runtime.js';\nexport * from './init/transform.js';\n/**\n * Make a string or lit-html template localizable.\n *\n * @param template A string, a lit-html template, or a function that returns\n * either a string or lit-html template.\n * @param options Optional configuration object with the following properties:\n * - id: Optional project-wide unique identifier for this template. If\n * omitted, an id will be automatically generated from the template strings.\n * - desc: Optional description\n */\nexport let msg = defaultMsg;\nlet installed = false;\n/**\n * Internal only. Do not use this function.\n *\n * Installs an implementation of the msg function to replace the default\n * identity function. Throws if called more than once.\n *\n * @internal\n */\nexport function _installMsgImplementation(impl) {\n if (installed) {\n throw new Error('lit-localize can only be configured once');\n }\n msg = impl;\n installed = true;\n}\n//# sourceMappingURL=lit-localize.js.map","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"customElement\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.customElement), [\"property\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.property), [\"state\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.state) });","// Do not modify this file by hand!\n// Re-generate this file by running lit-localize.\n\n/**\n * The locale code that templates in this source code are written in.\n */\nexport const sourceLocale = `en`;\n\n/**\n * The other locale codes that this application is localized into. Sorted\n * lexicographically.\n */\nexport const targetLocales = [\n `cs`,\n `de`,\n `el`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n\n/**\n * All valid project locale codes. Sorted lexicographically.\n */\nexport const allLocales = [\n `cs`,\n `de`,\n `el`,\n `en`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.`,\n's1b9047d53d9f9d22': `2) Нажать \"Поделиться\"`,\n's37a9e8aec5713460': `Подробнее`,\n's5c6aad7a7e4a1437': `3) Нажать \"На экран «Домой»\"`,\n's6196153c4b0c1ea0': `Установить`,\n's922329d6f6213590': `Добавить в Dock`,\n'sa5ef80b4bb9b39f8': `Свернуть`,\n'sa7551383d1897fcc': `2) Нажмите \"Добавить в Dock\"`,\n'sba52286c21552a4e': `Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.`,\n'sc79fd7641eb9a975': `Спрятать Инструкцию`,\n'scdaf4bbff76674c8': `На экран «Домой»`,\n'sdfe23506a3b0cdc8': `1) Открыть в Safari браузере`,\n'se740f75b95a51807': `Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.`,\n'sfea652f6580ff086': `Этот веб-сайт имеет функционал приложения.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.`,\n's1b9047d53d9f9d22': `2) Gezinme çubuğunda Paylaş'a basın`,\n's37a9e8aec5713460': `Daha Fazla`,\n's5c6aad7a7e4a1437': `3) Ana Ekrana Ekle'ye basın`,\n's6196153c4b0c1ea0': `Yükle`,\n's922329d6f6213590': `Dock’a Ekle`,\n'sa5ef80b4bb9b39f8': `Küçült`,\n'sa7551383d1897fcc': `2) Dock’a ekleye basın`,\n'sba52286c21552a4e': `Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.`,\n'sc79fd7641eb9a975': `Talimatları gizle`,\n'scdaf4bbff76674c8': `Ana Ekrana Ekle`,\n'sdfe23506a3b0cdc8': `1) Safari tarayıcısında açın`,\n'se740f75b95a51807': `Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.`,\n'sfea652f6580ff086': `Bu site uygulama işlevselliğine sahiptir.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n's1b9047d53d9f9d22': `2) Drücken Sie auf Teilen in der Navigationsleiste`,\n's37a9e8aec5713460': `Mehr`,\n's5c6aad7a7e4a1437': `3) Drücken Sie Hinzufügen zum Startbildschirm`,\n's6196153c4b0c1ea0': `Installieren`,\n's922329d6f6213590': `Zum Dock hinzufügen`,\n'sa5ef80b4bb9b39f8': `Weniger`,\n'sa7551383d1897fcc': `2) Drücken Sie auf Zum Dock hinzufügen`,\n'sba52286c21552a4e': `Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.`,\n'sc79fd7641eb9a975': `Anleitung ausblenden`,\n'scdaf4bbff76674c8': `Hinzufügen zum Startbildschirm`,\n'sdfe23506a3b0cdc8': `1) In Safari-Browser öffnen`,\n'se740f75b95a51807': `Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n'sfea652f6580ff086': `Diese Website verfügt über App-Funktionalität.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.`,\n's1b9047d53d9f9d22': `2) Presionar Compartir en la barra de direcciones`,\n's37a9e8aec5713460': `Más`,\n's5c6aad7a7e4a1437': `3) Presionar Añadir a pantalla de inicio`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Añadir al Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Presionar Añadir al Dock`,\n'sba52286c21552a4e': `Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.`,\n'sc79fd7641eb9a975': `Esconder instrucciones`,\n'scdaf4bbff76674c8': `Añadir a pantalla de inicio`,\n'sdfe23506a3b0cdc8': `1) Abrir en el navegador web Safari`,\n'se740f75b95a51807': `Añádelo a tu Dock para una experiencia amplia y acceso fácil.`,\n'sfea652f6580ff086': `Este sitio tiene funcionalidad de aplicación.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.`,\n's1b9047d53d9f9d22': `2) Druk op delen in de navigatiebalk`,\n's37a9e8aec5713460': `Meer`,\n's5c6aad7a7e4a1437': `3) Druk op Toevoegen aan het startscherm`,\n's6196153c4b0c1ea0': `Installeren`,\n's922329d6f6213590': `Toevoegen aan Dock`,\n'sa5ef80b4bb9b39f8': `Minder`,\n'sa7551383d1897fcc': `2) Druk op Toevoegen aan Dock`,\n'sba52286c21552a4e': `Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.`,\n'sc79fd7641eb9a975': `Instructie verbergen`,\n'scdaf4bbff76674c8': `Toevoegen aan het startscherm`,\n'sdfe23506a3b0cdc8': `1) Open in Safari-browser`,\n'se740f75b95a51807': `Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.`,\n'sfea652f6580ff086': `Deze site heeft app-functionaliteit.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n's1b9047d53d9f9d22': `2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης`,\n's37a9e8aec5713460': `Περισσότερα`,\n's5c6aad7a7e4a1437': `3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας`,\n's6196153c4b0c1ea0': `Εγκατάσταση`,\n's922329d6f6213590': `Προσθήκη στην Πρόσβαση`,\n'sa5ef80b4bb9b39f8': `Λιγότερα`,\n'sa7551383d1897fcc': `2) Πατήστε Προσθήκη στην Πρόσβαση`,\n'sba52286c21552a4e': `Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sc79fd7641eb9a975': `Απόκρυψη Οδηγιών`,\n'scdaf4bbff76674c8': `Προσθήκη στην Οθόνη Αφετηρίας`,\n'sdfe23506a3b0cdc8': `1) Ανοίξτε τον περιηγητή Safari`,\n'se740f75b95a51807': `Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sfea652f6580ff086': `Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.`,\n's1b9047d53d9f9d22': `2) Appuyez sur Partager dans la barre de navigation`,\n's37a9e8aec5713460': `Plus`,\n's5c6aad7a7e4a1437': `3) Appuyez sur Ajouter à l'écran d'accueil`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Ajouter au Dock`,\n'sa5ef80b4bb9b39f8': `Moins`,\n'sa7551383d1897fcc': `2) Appuyez sur Ajouter au Dock`,\n'sba52286c21552a4e': `Installez-le sur votre appareil pour une expérience complète et un accès facile.`,\n'sc79fd7641eb9a975': `Masquer les instructions`,\n'scdaf4bbff76674c8': `Ajouter à l'écran d'accueil`,\n'sdfe23506a3b0cdc8': `1) Ouvrir dans le navigateur Safari`,\n'se740f75b95a51807': `Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.`,\n'sfea652f6580ff086': `Ce site possède des fonctionnalités d'application.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додајте га на Home Screen за широке могућности и лак приступ.`,\n's1b9047d53d9f9d22': `2) Притисните Share у навигационој траци`,\n's37a9e8aec5713460': `Више`,\n's5c6aad7a7e4a1437': `3) Притисните Add to Home Screen`,\n's6196153c4b0c1ea0': `Инсталирај`,\n'sa5ef80b4bb9b39f8': `Мање`,\n'sa7551383d1897fcc': `3) Притисните Add to Dock`,\n'sba52286c21552a4e': `Инсталирајте га на вашем уређају за широке могућности и лак приступ.`,\n'sc79fd7641eb9a975': `Сакриј упутство`,\n'sdfe23506a3b0cdc8': `1) Отворите у Safari прегледачу`,\n'se740f75b95a51807': `Додајте га у вашу Dock за широке могућности и лак приступ.`,\n'sfea652f6580ff086': `Овај сајт има функционалност апликације.`,\n's922329d6f6213590': `Add to Dock`,\n'scdaf4bbff76674c8': `Add to Home Screen`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n's1b9047d53d9f9d22': `2) Wybierz \"Udostępnij\"`,\n's37a9e8aec5713460': `Więcej`,\n's5c6aad7a7e4a1437': `3) Wybierz \"Dodaj do Ekranu Głównego\"`,\n's6196153c4b0c1ea0': `Zainstaluj`,\n's922329d6f6213590': `Dodaj do Docka`,\n'sa5ef80b4bb9b39f8': `Mniej`,\n'sa7551383d1897fcc': `2) Wybierz \"Dodaj do Docka\"`,\n'sba52286c21552a4e': `Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sc79fd7641eb9a975': `Ukryj instrukcję`,\n'scdaf4bbff76674c8': `Dodaj do Ekranu Głównego`,\n'sdfe23506a3b0cdc8': `1) Otwórz przeglądarkę Safari`,\n'se740f75b95a51807': `Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sfea652f6580ff086': `Ta strona posiada funkcje aplikacji.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додайте на Домашній екран для зручного доступу та ширших можливостей.`,\n's1b9047d53d9f9d22': `2) Натиснути «Поділитися»`,\n's37a9e8aec5713460': `Детальніше`,\n's5c6aad7a7e4a1437': `3) Натиснути «На Початковий екран»`,\n's6196153c4b0c1ea0': `Встановити`,\n's922329d6f6213590': `Додати на Dock`,\n'sa5ef80b4bb9b39f8': `Згорнути`,\n'sa7551383d1897fcc': `2) Натиснути «Додати на Dock»`,\n'sba52286c21552a4e': `Встановіть на ваш пристрій для зручного доступу та ширших можливостей.`,\n'sc79fd7641eb9a975': `Сховати Інструкцію`,\n'scdaf4bbff76674c8': `На Початковий экран`,\n'sdfe23506a3b0cdc8': `1) Відкрити в Safari браузері`,\n'se740f75b95a51807': `Додайте на панель Dock для зручного доступу та ширших можливостей.`,\n'sfea652f6580ff086': `Цей сайт має функції додатку.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。`,\n's1b9047d53d9f9d22': `2) 點擊列表上的分享按鈕`,\n's37a9e8aec5713460': `詳細資訊`,\n's5c6aad7a7e4a1437': `3) 點擊加入主畫面`,\n's6196153c4b0c1ea0': `安裝`,\n's922329d6f6213590': `添加到Dock欄`,\n'sa5ef80b4bb9b39f8': `簡短資訊`,\n'sa7551383d1897fcc': `2) 點選添加到Dock欄`,\n'sba52286c21552a4e': `在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。`,\n'sc79fd7641eb9a975': `隱藏安裝流程`,\n'scdaf4bbff76674c8': `將App加入主畫面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上瀏覽此網頁`,\n'se740f75b95a51807': `將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。`,\n'sfea652f6580ff086': `此網站具有應用程式功能。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`,\n's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`,\n's37a9e8aec5713460': `详细资讯`,\n's5c6aad7a7e4a1437': `3) 点击加入主画面`,\n's6196153c4b0c1ea0': `安装`,\n's922329d6f6213590': `添加到Dock`,\n'sa5ef80b4bb9b39f8': `简短资讯`,\n'sa7551383d1897fcc': `2) 按下添加到Dock`,\n'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`,\n'sc79fd7641eb9a975': `隐藏安装流程`,\n'scdaf4bbff76674c8': `将App加入主画面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`,\n'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`,\n'sfea652f6580ff086': `此网站具备app的功能性。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.`,\n's1b9047d53d9f9d22': `2) Premi Condividi nella barra di navigazione`,\n's37a9e8aec5713460': `Più`,\n's5c6aad7a7e4a1437': `3) Premi Aggiungi alla schermata principale`,\n's6196153c4b0c1ea0': `Installa`,\n's922329d6f6213590': `Aggiungi al Dock`,\n'sa5ef80b4bb9b39f8': `Meno`,\n'sa7551383d1897fcc': `2) Premi Aggiungi al Dock`,\n'sba52286c21552a4e': `Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.`,\n'sc79fd7641eb9a975': `Nascondi istruzioni`,\n'scdaf4bbff76674c8': `Aggiungi alla schermata principale`,\n'sdfe23506a3b0cdc8': `1) Apri nel browser Safari`,\n'se740f75b95a51807': `Aggiungilo al Dock per un'esperienza più completa e un accesso facile.`,\n'sfea652f6580ff086': `Questo sito ha funzionalità di app.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Přidejte jej na plochu pro rozšířené využití a snadný přístup.`,\n's1b9047d53d9f9d22': `2) Stiskněte tlačítko Sdílet na navigačním panelu`,\n's37a9e8aec5713460': `Vice`,\n's5c6aad7a7e4a1437': `3) Stiskněte tlačítko Přidat na plochu`,\n's6196153c4b0c1ea0': `Nainstalovat`,\n's922329d6f6213590': `Přidat do Docku`,\n'sa5ef80b4bb9b39f8': `Méně`,\n'sa7551383d1897fcc': `2) Stiskněte Přidat do Docku`,\n'sba52286c21552a4e': `Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.`,\n'sc79fd7641eb9a975': `Skrýt instrukce`,\n'scdaf4bbff76674c8': `Přidat na plochu`,\n'sdfe23506a3b0cdc8': `1) Otevřete v prohlížeči Safari`,\n'se740f75b95a51807': `Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.`,\n'sfea652f6580ff086': `Tento web má funkce aplikace.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.`,\n's1b9047d53d9f9d22': `2) Trykk på Del-knappen i navigasjonslinjen`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Velg Legg til på Hjem-skjerm`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Legg til i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Velg Legg til i Dock`,\n'sba52286c21552a4e': `Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sc79fd7641eb9a975': `Skjul instruksjoner`,\n'scdaf4bbff76674c8': `Legg til på Hjem-skjerm`,\n'sdfe23506a3b0cdc8': `1) Åpne i Safari`,\n'se740f75b95a51807': `Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sfea652f6580ff086': `Denne siden har app-funksjonalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.`,\n's1b9047d53d9f9d22': `2) Pressione Compartilhar na barra de endereço`,\n's37a9e8aec5713460': `Mais`,\n's5c6aad7a7e4a1437': `3) Pressione Adicionar à Tela de Início`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Adicionar ao Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Pressione Adicionar ao Dock`,\n'sba52286c21552a4e': `Instale no dispositivo para uma melhor experiência e mais fácil acesso.`,\n'sc79fd7641eb9a975': `Ocultar Instruções`,\n'scdaf4bbff76674c8': `Adicionar à Tela de Início`,\n'sdfe23506a3b0cdc8': `1) Abra no navegador Safari`,\n'se740f75b95a51807': `Adicione ao Dock para uma melhor experiência e mais fácil acesso.`,\n'sfea652f6580ff086': `Este site possui funcionalidade de aplicativo.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。`,\n's1b9047d53d9f9d22': `2) ナビゲーションバーで共有を押す`,\n's37a9e8aec5713460': `展開`,\n's5c6aad7a7e4a1437': `3) 「ホーム画面に追加」を押す`,\n's6196153c4b0c1ea0': `インストール`,\n's922329d6f6213590': `Dockに追加`,\n'sa5ef80b4bb9b39f8': `折りたたむ`,\n'sa7551383d1897fcc': `2) 「Dockに追加」を押す`,\n'sba52286c21552a4e': `デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。`,\n'sc79fd7641eb9a975': `説明を非表示`,\n'scdaf4bbff76674c8': `ホーム画面に追加`,\n'sdfe23506a3b0cdc8': `1) Safariで開く`,\n'se740f75b95a51807': `ドックに追加して、幅広い体験と簡単なアクセスを実現してください。`,\n'sfea652f6580ff086': `このサイトはアプリ機能があります。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.`,\n's1b9047d53d9f9d22': `2) Tryck på Dela-knappen i verktygsfältet`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Välj Lägg till på hemskärmen`,\n's6196153c4b0c1ea0': `Installera`,\n's922329d6f6213590': `Lägg till i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Välj Lägg till i Dock`,\n'sba52286c21552a4e': `Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sc79fd7641eb9a975': `Göm instruktioner`,\n'scdaf4bbff76674c8': `Lägg till på hemskärmen`,\n'sdfe23506a3b0cdc8': `1) Öppna i Safari`,\n'se740f75b95a51807': `Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sfea652f6580ff086': `Denna webbsajt har app-funktionalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.`,\n's1b9047d53d9f9d22': `2) 내비게이션 바에서 공유 버튼 누르기`,\n's37a9e8aec5713460': `더보기`,\n's5c6aad7a7e4a1437': `3) 홈 화면에 추가 버튼 누르기`,\n's6196153c4b0c1ea0': `설치`,\n's922329d6f6213590': `Dock에 추가`,\n'sa5ef80b4bb9b39f8': `닫기`,\n'sa7551383d1897fcc': `2) Dock에 추가 버튼 누르기`,\n'sba52286c21552a4e': `더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.`,\n'sc79fd7641eb9a975': `안내 숨기기`,\n'scdaf4bbff76674c8': `홈 화면에 추가`,\n'sdfe23506a3b0cdc8': `1) Safari 브라우저에서 열기`,\n'se740f75b95a51807': `더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.`,\n'sfea652f6580ff086': `이 사이트는 앱 기능을 가지고 있습니다.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n's1b9047d53d9f9d22': `2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ`,\n's37a9e8aec5713460': `បង្ហាញបន្ថែម`,\n's5c6aad7a7e4a1437': `3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n's6196153c4b0c1ea0': `តំឡើង`,\n's922329d6f6213590': `បន្ថែមទៅកាន់ Dock`,\n'sa5ef80b4bb9b39f8': `បង្ហាញតិច`,\n'sa7551383d1897fcc': `2) ចុចលើ បន្ថែមទៅកាន់ Dock`,\n'sba52286c21552a4e': `តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sc79fd7641eb9a975': `បិទការណែនាំ`,\n'scdaf4bbff76674c8': `បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n'sdfe23506a3b0cdc8': `1) បើកនៅក្នុងកម្មវិធី Safari`,\n'se740f75b95a51807': `បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sfea652f6580ff086': `គេហទំព័រនេះមានមុខងារជាកម្មវិធី។`,\n };\n ","import { configureLocalization } from '@lit/localize';\r\nimport {\r\n sourceLocale,\r\n targetLocales,\r\n} from './locale-codes';\r\n\r\nimport * as ru from './locales/ru';\r\nimport * as tr from './locales/tr';\r\nimport * as de from \"./locales/de\";\r\nimport * as es from \"./locales/es\";\r\nimport * as nl from \"./locales/nl\";\r\nimport * as el from \"./locales/el\";\r\nimport * as fr from \"./locales/fr\";\r\nimport * as sr from \"./locales/sr\";\r\nimport * as pl from \"./locales/pl\";\r\nimport * as uk from \"./locales/uk\";\r\nimport * as zh from \"./locales/zh\";\r\nimport * as zhCN from \"./locales/zh-CN\";\r\nimport * as it from \"./locales/it\";\r\nimport * as cs from \"./locales/cs\";\r\nimport * as no from \"./locales/no\";\r\nimport * as pt from \"./locales/pt\";\r\nimport * as ja from \"./locales/ja\";\r\nimport * as sv from \"./locales/sv\";\r\nimport * as ko from \"./locales/ko\";\r\nimport * as km from \"./locales/km\";\r\n\r\nconst localizedTemplates = new Map([\r\n ['ru', ru],\r\n ['tr', tr],\r\n ['de', de],\r\n ['es', es],\r\n ['nl', nl],\r\n ['el', el],\r\n ['fr', fr],\r\n ['sr', sr],\r\n ['pl', pl],\r\n ['uk', uk],\r\n ['zh', zh],\r\n ['zh-CN', zhCN],\r\n ['it', it],\r\n ['cs', cs],\r\n ['no', no], // + nb\r\n ['pt', pt],\r\n ['ja', ja],\r\n ['sv', sv],\r\n ['ko', ko],\r\n ['km', km]\r\n])\r\n\r\nexport const { getLocale, setLocale } = configureLocalization({\r\n sourceLocale,\r\n targetLocales,\r\n // @ts-ignore\r\n loadLocale: async (lang: string) => localizedTemplates.get(lang)\r\n});\r\n\r\nexport const changeLocale = (lang: string) => {\r\n // Norwegian Bokmål is same as Norwegian\r\n switch (lang) {\r\n case 'nb':\r\n lang = 'no';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n try {\r\n if (localizedTemplates.get(lang))\r\n setLocale(lang);\r\n else\r\n setLocale(lang.slice(0, 2));\r\n }\r\n catch {\r\n console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);\r\n }\r\n};\r\n","import { ImageResource } from 'web-app-manifest';\r\n\r\nexport interface IRelatedApp {\r\n id: string,\r\n platform: string,\r\n url: string\r\n}\r\n\r\nexport interface IWindow extends Window {\r\n defferedPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\ntype Booleanish = 'true' | 'false';\r\n\r\nexport interface PWAInstallAttributes {\r\n ['manual-apple']?: Booleanish;\r\n ['manual-chrome']?: Booleanish;\r\n ['disable-chrome']?: Booleanish;\r\n ['install-description']?: string;\r\n ['disable-install-description']?: Booleanish;\r\n ['manifest-url']?: string;\r\n name?: string;\r\n description?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class Manifest {\r\n constructor() {\r\n this.icons = [{ src: '' }];\r\n this.screenshots = undefined;\r\n this.short_name = 'PWA';\r\n this.name = 'Progressive web application';\r\n this.description = 'Progressive web application';\r\n }\r\n short_name: string;\r\n icons: ImageResource[];\r\n screenshots?: ImageResource[];\r\n name: string;\r\n description: string;\r\n}\r\n","import {css} from 'lit'; export default css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`;\n ","import { html } from 'lit';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nconst template = (screenshots: WebAppManifest['screenshots'], theme: string, scrollToNextPage: any, scrollToPrevPage: any) => {\r\n return html`\r\n ${screenshots? html`\r\n
\r\n
\r\n
\r\n ${screenshots.map(screenshot => html``)}\r\n
\r\n
\r\n \r\n ${theme != 'default'?\r\n html``\r\n :\r\n html``\r\n }\r\n \r\n \r\n ${theme != 'default'?\r\n html`\r\n \r\n `\r\n :\r\n html`\r\n \r\n \r\n \r\n `\r\n }\r\n \r\n
`\r\n : ''}`;\r\n};\r\nexport default template;\r\n","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nimport styles from './styles-gallery.scss';\r\nimport template from './template-gallery';\r\n\r\n@customElement('pwa-gallery')\r\nexport default class PWAGalleryElement extends LitElement {\r\n\t@property() screenshots: WebAppManifest['screenshots'] = [];\r\n\t@property() theme: 'default' | 'apple_desktop' | 'apple_mobile' = 'default';\r\n\r\n\tstatic get styles() {\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tpublic calcScrollSize = () => {\r\n\t\t//@ts-ignore\r\n\t\tconst gallery = this.shadowRoot.querySelector('#paginated_gallery');\r\n\t\tif (!gallery)\r\n\t\t\treturn;\r\n\t\tconst gallery_scroller = gallery.querySelector('.gallery_scroller');\r\n\t\tif (!gallery_scroller)\r\n\t\t\treturn;\r\n\t\tconst gallery_items = Array.from(gallery_scroller.querySelectorAll('img'));\r\n\t\tif (!gallery_items)\r\n\t\t\treturn;\r\n\t\tconst gallery_item = gallery_items.find((item) => { return (item.offsetWidth + item.offsetLeft) >= gallery_scroller.scrollLeft})\r\n\t\tif (!gallery_item)\r\n\t\t\treturn;\r\n\r\n\t\treturn {\r\n\t\t\tscroller: gallery_scroller,\r\n\t\t\titem: gallery_item\r\n\t\t}\r\n\t}\r\n\tpublic scrollToNextPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.nextElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft + _tools.scroller.clientWidth + _tools.item.nextElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\tpublic scrollToPrevPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.previousElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft - _tools.scroller.clientWidth - _tools.item.previousElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\tprivate _init = () => {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools)\r\n\t\t\tsetTimeout(\r\n\t\t\t\t() => {\r\n\t\t\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t)\r\n\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\tthis._init();\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(\r\n this.screenshots,\r\n\t\t\tthis.theme,\r\n\t\t\tthis.scrollToNextPage,\r\n\t\t\tthis.scrollToPrevPage\r\n )}`;\r\n\t}\r\n}\r\n","import { html } from 'lit';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, icon: string, install: any) => {\r\n return html`\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n
${location.hostname}
\r\n
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n `;\r\n};\r\nexport default template;\r\n","import { WebAppManifest } from 'web-app-manifest';\r\nimport { IRelatedApp } from './types/types';\r\n\r\nconst _eventDispatcher = (_element: Element, name: string, message: string) => {\r\n const event = new CustomEvent(name, {\r\n detail: {\r\n message\r\n }\r\n });\r\n _element.dispatchEvent(event);\r\n}\r\nexport default class Utils {\r\n static isAppleMobile(): boolean {\r\n\t\tif (\r\n (\r\n ['iPhone', 'iPad', 'iPod'].includes(navigator.platform) ||\r\n (navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n )\r\n && ('serviceWorker' in navigator)\r\n )\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static isAppleDesktop(): boolean {\r\n // check if it's a mac\r\n const userAgent = navigator.userAgent.toLowerCase();\r\n if (navigator.maxTouchPoints || !userAgent.match(/macintosh/))\r\n return false;\r\n // check safari version >= 17\r\n const version = /version\\/(\\d{2})\\./.exec(userAgent)\r\n if (!version || !version[1] || !(parseInt(version[1]) >= 17))\r\n return false;\r\n // hacky way to detect Sonoma\r\n const audioCheck = document.createElement('audio').canPlayType('audio/wav; codecs=\"1\"') ? true : false;\r\n const webGLCheck = new OffscreenCanvas(1, 1).getContext('webgl') ? true : false;\r\n\r\n return audioCheck && webGLCheck;\r\n }\r\n \r\n static isStandalone() {\r\n\t\tif (window.matchMedia('(display-mode: standalone)').matches || ('standalone' in navigator && (navigator as any).standalone === true))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static async getInstalledRelatedApps(): Promise {\r\n if ('getInstalledRelatedApps' in navigator)\r\n try{\r\n await (navigator as any).getInstalledRelatedApps().then((relatedApps: IRelatedApp[]) => {\r\n return relatedApps;\r\n });\r\n } catch (e) {}\r\n \r\n return [];\r\n }\r\n \r\n static async isRelatedAppsInstalled(): Promise {\r\n const _relatedApps = await this.getInstalledRelatedApps();\r\n return _relatedApps.length? true : false;\r\n }\r\n\r\n static eventInstalledSuccess(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-success-event', 'App install success (Chromium/Android only)');\r\n }\r\n static eventInstalledFail(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-fail-event', 'App install failed (Chromium/Android only)');\r\n }\r\n static eventUserChoiceResult(_element: Element, message: string) {\r\n _eventDispatcher(_element, 'pwa-user-choice-result-event', message);\r\n }\r\n static eventInstallAvailable(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-available-event', 'App install available');\r\n }\r\n static eventInstallHowTo(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-how-to-event', 'App install instruction showed');\r\n }\r\n static eventGallery(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-gallery-event', 'App install gallery showed');\r\n }\r\n\r\n static normalizeManifestAssetUrls(manifest: WebAppManifest, manifestUrl: string) {\r\n const normalizedManifestUrl = new URL(manifestUrl, document.location.href);\r\n [...manifest.icons || [], ...manifest.screenshots || []].forEach(asset => {\r\n asset.src = new URL(asset.src, normalizedManifestUrl).href;\r\n })\r\n }\r\n}","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\n\r\n// import TouchDragListener from \"./touch-listener\";\r\n\r\ntype IProps = {\r\n name: string,\r\n description: string,\r\n icon: string\r\n}\r\n\r\nimport template from './template-bottom-sheet';\r\nimport Utils from '../../../utils';\r\n\r\n@customElement('pwa-bottom-sheet')\r\nexport default class PWABottomSheetElement extends LitElement {\r\n\t@property({type: Object}) props: IProps = {\r\n name: '',\r\n description: '',\r\n icon: ''\r\n };\r\n @property({type: Object}) install = {handleEvent: () => {}};\r\n\t@property() hideDialog = () => {};\r\n\t@property() disableClose = false;\r\n\r\n\tprivate _callInstall = () => {\r\n\t\tthis.install.handleEvent();\r\n\t}\r\n\r\n\tprivate _callHide = () => {\r\n\t\tthis.hideDialog();\r\n\t\tthis.setupAppearence();\r\n\t}\r\n\r\n\tprivate bindedElement: {\r\n\t\ttouchElement: HTMLElement,\r\n\t\tlistener: any }| null = null;\r\n\tprivate readonly _saveBodyStyle = document.body.style.overscrollBehaviorY;\r\n\tprivate dragMobileSheet = (element: HTMLElement | null | undefined, touchTargetElement: HTMLElement | undefined, infoElement: HTMLElement | undefined) => {\r\n\t\tif (!element || !touchTargetElement || !infoElement)\r\n\t\t\treturn null;\r\n\r\n\t\tlet dragOffset = 0;\r\n\t\tconst bounceOffset = 35;\r\n\t\tconst bottomSize = touchTargetElement.clientHeight + infoElement.clientHeight;\r\n\r\n\t\tconst getYCoord = (e: MouseEvent | TouchEvent): number => {\r\n\t\t\treturn (e as MouseEvent).clientY || ((e as TouchEvent).changedTouches && (e as TouchEvent).changedTouches.length? (e as TouchEvent).changedTouches[0].clientY : 0);\r\n\t\t}\r\n\r\n\t\tconst dragMouseDown = (e: MouseEvent | TouchEvent) => {\r\n\t\t\twindow.addEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.addEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.addEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.addEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tdragOffset = getYCoord(e) - touchTargetElement.getBoundingClientRect().top;\r\n\r\n\t\t\tdocument.body.style.overscrollBehaviorY = 'none';\r\n\t\t}\r\n\t\tconst dragMouseUp = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tdocument.body.style.overscrollBehaviorY = this._saveBodyStyle;\r\n\r\n\t\t\tif (!this.disableClose && getYCoord(e) >= window.innerHeight - 25) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight + 50, true);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (window.innerHeight - getYCoord(e) > element.clientHeight / 2.5) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - element.clientHeight);\r\n\t\t\t\t\r\n\t\t\t\ttry {\r\n\t\t\t\t\tUtils.eventGallery((this.getRootNode() as ShadowRoot).host);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - bottomSize - bounceOffset);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dragMouseMove = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tconst currentY = getYCoord(e);\r\n\r\n\t\t\tif (this.disableClose && window.innerHeight - currentY < 70) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (currentY <= (window.innerHeight - element.clientHeight + dragOffset)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`none`\r\n\t\t\t)\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"--translateY\",\r\n\t\t\t\t`translateY(${currentY - dragOffset}px)`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => {\r\n\t\t\twindow.removeEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.removeEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.removeEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.removeEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tif (window.innerWidth >= 768)\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!toPoint && getYCoord(e) >= window.innerHeight - bottomSize)\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(calc(100vh - ${bottomSize}px))`\r\n\t\t\t\t);\r\n\t\t\telse\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(${(toPoint || getYCoord(e)) + bounceOffset}px)`\r\n\t\t\t\t);\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s`\r\n\t\t\t);\r\n\r\n\t\t\tif (hideDialog){\r\n\t\t\t\ttouchTargetElement.removeEventListener('mousedown', dragMouseDown);\r\n\t\t\t\ttouchTargetElement.removeEventListener('touchstart', dragMouseDown);\r\n\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\tthis._callHide,\r\n\t\t\t\t\t250\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\ttouchTargetElement.addEventListener('mousedown', dragMouseDown);\r\n\t\ttouchTargetElement.addEventListener('touchstart', dragMouseDown, {passive: true});\r\n\r\n\t\tcloseDragElement(new MouseEvent('mouseup'), window.innerHeight - bottomSize - bounceOffset);\r\n\r\n\t\treturn {\r\n\t\t\ttouchElement: touchTargetElement,\r\n\t\t\tlistener: dragMouseDown\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupAppearence = () => {\r\n\t\tif (this.bindedElement) {\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('mousedown', this.bindedElement.listener);\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('touchstart', this.bindedElement.listener);\r\n\t\t}\r\n\r\n\t\tthis.bindedElement = this.dragMobileSheet(\r\n\t\t\tthis.parentElement?.parentElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement);\r\n\t}\r\n\tprivate _init = () => {\r\n\t\tthis.setupAppearence();\r\n\r\n\t\twindow.addEventListener('resize', this.setupAppearence);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tthis._init();\r\n return;\r\n\t}\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(this.props.name, this.props.description, this.props.icon, this._callInstall)}`;\r\n\t}\r\n}\r\n","import {css} from 'lit'; export default css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,\"Segoe UI\",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:\"\";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,\"Segoe UI\",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:\"\";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`;\n ","import {css} from 'lit'; export default css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,\"Segoe UI\";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon description\" \"welcome welcome\" \"how-to how-to\" \"gallery gallery\" \"button button\";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon\" \"description\" \"welcome\" \"how-to\" \"gallery\" \"button\";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;\n ","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"classMap\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_directives_class_map_js_2f88e643__.classMap) });","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n
\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n ${!disableClose? html`` : ''}\r\n
\r\n
${location.hostname}
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n ${!disableDescription? \r\n html`
${installDescription? installDescription: `${msg('This site has app functionality.')} ${msg('Install it on your device for extensive experience and easy access.')}`}
` \r\n : ''}\r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n ${screenshotsAvailable? html``:''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n
\r\n
`;\r\n};\r\nexport default template;\r\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, isDesktop: boolean, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested, desktop: isDesktop}};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n `;\r\n};\r\nexport default template;\r\n","import { LitElement, PropertyValues, html } from 'lit';\r\nimport { localized } from '@lit/localize';\r\nimport { property, state, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { changeLocale } from './localization';\r\n\r\nimport { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types';\r\n\r\nimport PWAGalleryElement from './gallery';\r\nimport PWABottomSheetElement from './templates/chrome/bottom-sheet';\r\n\r\nimport Utils from './utils';\r\n\r\ndeclare const window: IWindow;\r\n\r\nimport styles from './templates/chrome/styles.scss';\r\nimport stylesApple from './templates/apple/styles-apple.scss';\r\n\r\nimport template from './templates/chrome/template';\r\nimport templateApple from './templates/apple/template-apple';\r\n\r\n/**\r\n * @event {CustomEvent} pwa-install-success-event - App install success (Chromium/Android only)\r\n * @event {CustomEvent} pwa-install-fail-event - App install failed (Chromium/Android only)\r\n * @event {CustomEvent} pwa-user-choice-result-event - dismissed, accepted\r\n * @event {CustomEvent} pwa-install-available-event - App install available\r\n * @event {CustomEvent} pwa-install-how-to-event - App install instruction showed\r\n * @event {CustomEvent} pwa-install-gallery-event - App install gallery showed\r\n */\r\n@localized()\r\n@customElement('pwa-install')\r\nexport class PWAInstallElement extends LitElement {\r\n\t@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json';\r\n\t@property() icon = '';\r\n\t@property() name = '';\r\n\t@property() description = '';\r\n\t@property({attribute: 'install-description'}) installDescription = '';\r\n\t@property({attribute: 'disable-install-description', type: Boolean}) disableDescription = false;\r\n\t@property({attribute: 'disable-screenshots', type: Boolean}) disableScreenshots = false;\r\n\t@property({attribute: 'disable-screenshots-apple', type: Boolean}) disableScreenshotsApple = false;\r\n\t@property({attribute: 'disable-screenshots-chrome', type: Boolean}) disableScreenshotsChrome = false;\r\n\t@property({attribute: 'manual-apple', type: Boolean}) manualApple = false;\r\n\t@property({attribute: 'manual-chrome', type: Boolean}) manualChrome = false;\r\n\t@property({attribute: 'disable-chrome', type: Boolean}) disableChrome = false;\r\n\t@property({attribute: 'disable-close', type: Boolean}) disableClose = false;\r\n\r\n\tstatic get styles() {\r\n\t\treturn [ styles, stylesApple ];\r\n\t}\r\n\r\n\t@state() externalPromptEvent: BeforeInstallPromptEvent | null = null;\r\n\r\n\tpublic platforms: BeforeInstallPromptEvent['platforms'] = [];\r\n\tpublic userChoiceResult = '';\r\n\r\n\tpublic isDialogHidden: boolean = JSON.parse(window.sessionStorage.getItem('pwa-hide-install') || 'false');\r\n\tpublic isInstallAvailable = false;\r\n\tpublic isAppleMobilePlatform = false;\r\n\tpublic isAppleDesktopPlatform = false;\r\n\tpublic isUnderStandaloneMode = false;\r\n\tpublic isRelatedAppsInstalled = false;\r\n\r\n\t/** @internal */\r\n\tprivate _manifest: WebAppManifest = new Manifest();\r\n\t/** @internal */\r\n\tprivate _howToRequested = false;\r\n\t/** @internal */\r\n\tprivate _galleryRequested = false;\r\n\t/** @internal */\r\n\tprivate _install = {\r\n\t\thandleEvent: () => {\r\n\t\t\tif (window.defferedPromptEvent) {\r\n\t\t\t\tthis.hideDialog();\r\n\t\t\t\twindow.defferedPromptEvent.prompt();\r\n\t\t\t\twindow.defferedPromptEvent.userChoice\r\n\t\t\t\t\t.then((choiceResult: PromptResponseObject) => {\r\n\t\t\t\t\t\tthis.userChoiceResult = choiceResult.outcome;\r\n\t\t\t\t\t\tUtils.eventUserChoiceResult(this, this.userChoiceResult);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tUtils.eventInstalledFail(this);\r\n\t\t\t\t\t});\r\n\t\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\tpublic install = () => {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tthis._howToRequested = true;\r\n\t\t\tthis.requestUpdate();\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis._install.handleEvent();\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialog = {\r\n\t\thandleEvent: () => {\r\n\t\t\tthis.isDialogHidden = true;\r\n\t\t\twindow.sessionStorage.setItem('pwa-hide-install', 'true');\r\n\t\t\tthis.requestUpdate();\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialogUser = () => {\r\n\t\tUtils.eventUserChoiceResult(this, 'dismissed');\r\n\t\tthis.userChoiceResult = 'dismissed';\r\n\t\tthis.hideDialog();\r\n\t}\r\n\tpublic hideDialog = () => {\r\n\t\tthis._hideDialog.handleEvent();\r\n\t}\r\n\tpublic showDialog = (forced = false) => {\r\n\t\tthis.isDialogHidden = false;\r\n\t\tif (forced)\r\n\t\t\tthis.isInstallAvailable = true;\r\n\t\twindow.sessionStorage.setItem('pwa-hide-install', 'false');\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tpublic getInstalledRelatedApps = async (): Promise => {\r\n\t\treturn await Utils.getInstalledRelatedApps();\r\n\t}\r\n\r\n\t/** @internal */\r\n\tprivate _howToForApple = {\r\n handleEvent: () => {\r\n\t\t\tthis._howToRequested = !this._howToRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._galleryRequested = false;\r\n\t\t\tthis.requestUpdate();\r\n\r\n\t\t\tif (this._howToRequested) {\r\n\t\t\t\tUtils.eventInstallHowTo(this);\r\n\t\t\t\t\r\n\t\t\t\t// Looks like it's not needed anymore\r\n\t\t\t\t// if (this._manifest.start_url){\r\n\t\t\t\t// \ttry {\r\n\t\t\t\t// \t\thistory.replaceState({}, '', this._manifest.start_url);\r\n\t\t\t\t// \t} catch (e) {}\r\n\t\t\t\t// }\r\n\t\t\t}\t\t\t\t\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate _toggleGallery = {\r\n handleEvent: () => {\r\n\t\t\tthis._galleryRequested = !this._galleryRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._howToRequested = false;\r\n\r\n\t\t\tthis._galleryRequested && Utils.eventGallery(this);\r\n\r\n\t\t\tthis.requestUpdate();\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate async _checkInstalled() {\r\n\t\tthis.isUnderStandaloneMode = Utils.isStandalone();\r\n\t\tthis.isRelatedAppsInstalled = await Utils.isRelatedAppsInstalled();\r\n\t\tthis.isAppleMobilePlatform = Utils.isAppleMobile();\r\n\t\tthis.isAppleDesktopPlatform = Utils.isAppleDesktop();\r\n\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tif (!this.isUnderStandaloneMode) {\r\n\t\t\t\tthis.manualApple && this.hideDialog();\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1000\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.manualChrome && this.hideDialog();\r\n\t\t}\r\n\t}\r\n\t/** @internal */\r\n\tprivate _init = async () => {\r\n\t\twindow.defferedPromptEvent = null;\r\n\r\n\t\tthis._checkInstalled();\r\n\r\n\t\tif (!this.disableChrome) {\r\n\t\t\tconst _promptHandler = (e: BeforeInstallPromptEvent) => {\r\n\t\t\t\twindow.defferedPromptEvent = e;\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.platforms = e.platforms;\r\n\r\n\t\t\t\tif (this.isRelatedAppsInstalled || this.isUnderStandaloneMode) {\r\n\t\t\t\t\tthis.isInstallAvailable = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.userChoiceResult === 'accepted'){\r\n\t\t\t\t\tthis.isDialogHidden = true;\r\n\t\t\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t}\r\n\t\t\tif (this.externalPromptEvent != null)\r\n\t\t\t\tsetTimeout(() => _promptHandler(this.externalPromptEvent!), 300);\r\n\t\t\telse\r\n\t\t\t\twindow.addEventListener('beforeinstallprompt', _promptHandler);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('appinstalled', (e) => {\r\n\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\tthis.isInstallAvailable = false;\r\n\r\n\t\t\tthis.requestUpdate();\r\n\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t});\r\n\r\n\r\n\t\ttry{\r\n\t\t\tconst _response = await fetch(this.manifestUrl);\r\n\t\t\tconst _json = await _response.json() as WebAppManifest;\r\n\t\t\tif (!_response.ok || !_json || !Object.keys(_json))\r\n\t\t\t\tthrow new Error('Manifest not found');\r\n\t\t\tUtils.normalizeManifestAssetUrls(_json, this.manifestUrl);\r\n\t\t\t\r\n\t\t\tthis.icon = this.icon || _json.icons?.length ? _json.icons![0].src : '';\r\n\t\t\tthis.name = this.name || _json['short_name'] || _json.name || '';\r\n\t\t\tthis.description = this.description || _json.description || '';\r\n\t\t\tthis._manifest = _json;\r\n\t\t}\r\n\t\tcatch(e) {\r\n\t\t\tthis.icon = this.icon || this._manifest.icons?.[0].src || '';\r\n\t\t\tthis.name = this.name || this._manifest['short_name'] || '';\r\n\t\t\tthis.description = this.description || this._manifest.description || '';\r\n\t\t}\r\n\t};\r\n\t/** @internal */\r\n\tprivate _requestUpdate = () => {\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tchangeLocale(navigator.language);\r\n\t\tthis._init();\r\n\t\tPWAGalleryElement.finalized;\r\n\t\tPWABottomSheetElement.finalized;\r\n\t\tsuper.connectedCallback();\r\n\t}\r\n\twillUpdate(changedProperties: PropertyValues) {\r\n\t\tif (this.externalPromptEvent && changedProperties.has('externalPromptEvent') && typeof this.externalPromptEvent == 'object') {\r\n\t\t this._init();\r\n\t\t}\r\n\t}\r\n\r\n\t// firstUpdated() {\r\n\t// \treturn;\r\n\t// }\r\n\r\n\trender() {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform)\r\n\t\t\treturn html`${templateApple(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsApple,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._howToForApple,\r\n\t\t\t\tthis.isAppleDesktopPlatform,\r\n\t\t\t\tthis._howToRequested,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t\telse\r\n\t\t\treturn html`${template(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsChrome,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._install,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t}\r\n}\r\n\r\nexport { PWAInstallAttributes };\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { updateWhenLocaleChanges } from './localized-controller.js';\n/**\n * Class decorator to enable re-rendering the given LitElement whenever a new\n * active locale has loaded.\n *\n * See also {@link updateWhenLocaleChanges} for the same functionality without\n * the use of decorators.\n *\n * When using lit-localize in transform mode, applications of this decorator are\n * removed.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {customElement} from 'lit/decorators.js';\n * import {msg, localized} from '@lit/localize';\n *\n * @localized()\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nexport const localized = () => (clazz, _context) => {\n clazz.addInitializer(updateWhenLocaleChanges);\n return clazz;\n};\n//# sourceMappingURL=localized-decorator.js.map"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","y","x","d","__WEBPACK_EXTERNAL_MODULE_lit__","joinStringsAndValues","strings","values","valueOrder","concat","i","length","template","isStrTagged","val","LOCALE_STATUS_EVENT","LocalizeController","constructor","host","this","__litLocalizeEventHandler","event","detail","status","requestUpdate","hostConnected","window","addEventListener","hostDisconnected","removeEventListener","updateWhenLocaleChanges","addController","Deferred","settled","promise","Promise","resolve","reject","_resolve","_reject","error","hl","toString","HASH_DELIMITER","HTML_PREFIX","STRING_PREFIX","generateMsgId","isHtmlTagged","str","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","fnv1a64","join","expressionOrders","WeakMap","hashCache","Map","runtimeMsg","templates","options","id","undefined","set","generateId","localized","order","map","dispatchStatusEvent","dispatchEvent","CustomEvent","loadingLocale","sourceLocale","validLocales","loadLocale","activeLocale","loading","requestId","getLocale","setLocale","newLocale","Error","has","thisRequestId","then","mod","readyLocale","err","errorLocale","errorMessage","msg","installed","__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__","targetLocales","localizedTemplates","config","async","lang","impl","Set","add","Manifest","icons","src","screenshots","short_name","name","description","css","theme","scrollToNextPage","scrollToPrevPage","html","PWAGalleryElement","LitElement","calcScrollSize","gallery","shadowRoot","querySelector","gallery_scroller","gallery_items","Array","from","querySelectorAll","gallery_item","find","item","offsetWidth","offsetLeft","scrollLeft","scroller","_tools","nextElementSibling","scrollTo","top","left","clientWidth","behavior","previousElementSibling","_init","styles","firstUpdated","setTimeout","connectedCallback","super","render","property","customElement","icon","install","_eventDispatcher","_element","message","Utils","isAppleMobile","includes","navigator","platform","userAgent","match","maxTouchPoints","isAppleDesktop","toLowerCase","version","exec","parseInt","audioCheck","document","createElement","canPlayType","webGLCheck","OffscreenCanvas","getContext","isStandalone","matchMedia","matches","standalone","getInstalledRelatedApps","relatedApps","e","isRelatedAppsInstalled","eventInstalledSuccess","eventInstalledFail","eventUserChoiceResult","eventInstallAvailable","eventInstallHowTo","eventGallery","normalizeManifestAssetUrls","manifest","manifestUrl","normalizedManifestUrl","URL","location","href","forEach","asset","PWABottomSheetElement","props","handleEvent","hideDialog","disableClose","_callInstall","_callHide","setupAppearence","bindedElement","_saveBodyStyle","body","style","overscrollBehaviorY","dragMobileSheet","element","touchTargetElement","infoElement","dragOffset","bottomSize","clientHeight","getYCoord","clientY","changedTouches","dragMouseDown","dragMouseUp","dragMouseMove","getBoundingClientRect","innerHeight","closeDragElement","getRootNode","currentY","setProperty","toPoint","innerWidth","passive","MouseEvent","touchElement","listener","parentElement","getElementsByClassName","createRenderRoot","type","__WEBPACK_EXTERNAL_MODULE_lit_directives_class_map_js_2f88e643__","installDescription","disableDescription","disableScreenshots","installAvailable","toggleGallery","galleryRequested","installDialogClasses","available","screenshotsAvailable","howToForApple","isDesktop","howToRequested","desktop","PWAInstallElement","disableScreenshotsApple","disableScreenshotsChrome","manualApple","manualChrome","disableChrome","externalPromptEvent","platforms","userChoiceResult","isDialogHidden","JSON","parse","sessionStorage","getItem","isInstallAvailable","isAppleMobilePlatform","isAppleDesktopPlatform","isUnderStandaloneMode","_manifest","_howToRequested","_galleryRequested","_install","defferedPromptEvent","prompt","userChoice","choiceResult","outcome","catch","_hideDialog","setItem","_hideDialogUser","showDialog","forced","_howToForApple","_toggleGallery","_checkInstalled","_promptHandler","preventDefault","_response","fetch","_json","json","ok","keys","_requestUpdate","slice","changeLocale","language","finalized","willUpdate","changedProperties","attribute","Boolean","state","clazz","_context","addInitializer"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"pwa-install.es.js","mappings":"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","sources":["webpack://@khmyznikov/pwa-install/webpack/bootstrap","webpack://@khmyznikov/pwa-install/webpack/runtime/define property getters","webpack://@khmyznikov/pwa-install/webpack/runtime/hasOwnProperty shorthand","webpack://@khmyznikov/pwa-install/webpack/runtime/make namespace object","webpack://@khmyznikov/pwa-install/external module \"lit\"","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/str-tag.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/default-msg.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/init/install.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/locale-status-event.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/localized-controller.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/deferred.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/fnv1a64.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/id-generation.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/runtime-msg.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/init/runtime.js","webpack://@khmyznikov/pwa-install/external module \"lit/decorators.js\"","webpack://@khmyznikov/pwa-install/./src/localization/locale-codes.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ru.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/tr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/de.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/es.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/nl.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/el.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/fr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/sr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/pl.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/uk.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/zh.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/zh-CN.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/it.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/cs.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/no.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/pt.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ja.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/sv.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ko.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/km.ts","webpack://@khmyznikov/pwa-install/./src/localization/index.ts","webpack://@khmyznikov/pwa-install/./src/types/types.ts","webpack://@khmyznikov/pwa-install/./src/gallery/styles-gallery.scss","webpack://@khmyznikov/pwa-install/./src/gallery/template-gallery.ts","webpack://@khmyznikov/pwa-install/./src/gallery/index.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/bottom-sheet/template-bottom-sheet.ts","webpack://@khmyznikov/pwa-install/./src/utils.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/bottom-sheet/index.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/styles.scss","webpack://@khmyznikov/pwa-install/./src/templates/apple/styles-apple.scss","webpack://@khmyznikov/pwa-install/external module \"lit/directives/class-map.js\"","webpack://@khmyznikov/pwa-install/./src/templates/chrome/template.ts","webpack://@khmyznikov/pwa-install/./src/templates/apple/template-apple.ts","webpack://@khmyznikov/pwa-install/./src/index.ts","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/localized-decorator.js"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"LitElement\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.LitElement), [\"css\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.css), [\"html\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.html) });","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Tag that allows expressions to be used in localized non-HTML template\n * strings.\n *\n * Example: msg(str`Hello ${this.user}!`);\n *\n * The Lit html tag can also be used for this purpose, but HTML will need to be\n * escaped, and there is a small overhead for HTML parsing.\n *\n * Untagged template strings with expressions aren't supported by lit-localize\n * because they don't allow for values to be captured at runtime.\n */\nconst _str = (strings, ...values) => ({\n strTag: true,\n strings,\n values,\n});\nexport const str = _str;\nexport const isStrTagged = (val) => typeof val !== 'string' && 'strTag' in val;\n/**\n * Render the result of a `str` tagged template to a string. Note we don't need\n * to do this for Lit templates, since Lit itself handles rendering.\n */\nexport const joinStringsAndValues = (strings, values, valueOrder) => {\n let concat = strings[0];\n for (let i = 1; i < strings.length; i++) {\n concat += values[valueOrder ? valueOrder[i - 1] : i - 1];\n concat += strings[i];\n }\n return concat;\n};\n//# sourceMappingURL=str-tag.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isStrTagged, joinStringsAndValues } from './str-tag.js';\n/**\n * Default identity msg implementation. Simply returns the input template with\n * no awareness of translations. If the template is str-tagged, returns it in\n * string form.\n */\nexport const defaultMsg = ((template) => isStrTagged(template)\n ? joinStringsAndValues(template.strings, template.values)\n : template);\n//# sourceMappingURL=default-msg.js.map","import { defaultMsg } from '../internal/default-msg.js';\n/**\n * Make a string or lit-html template localizable.\n *\n * @param template A string, a lit-html template, or a function that returns\n * either a string or lit-html template.\n * @param options Optional configuration object with the following properties:\n * - id: Optional project-wide unique identifier for this template. If\n * omitted, an id will be automatically generated from the template strings.\n * - desc: Optional description\n */\nexport let msg = defaultMsg;\nlet installed = false;\n/**\n * Internal only. Do not use this function.\n *\n * Installs an implementation of the msg function to replace the default\n * identity function. Throws if called more than once.\n *\n * @internal\n */\nexport function _installMsgImplementation(impl) {\n if (installed) {\n throw new Error('lit-localize can only be configured once');\n }\n msg = impl;\n installed = true;\n}\n//# sourceMappingURL=install.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Name of the event dispatched to `window` whenever a locale change starts,\n * finishes successfully, or fails. Only relevant to runtime mode.\n *\n * The `detail` of this event is an object with a `status` string that can be:\n * \"loading\", \"ready\", or \"error\", along with the relevant locale code, and\n * error message if applicable.\n *\n * You can listen for this event to know when your application should be\n * re-rendered following a locale change. See also the Localized mixin, which\n * automatically re-renders LitElement classes using this event.\n */\nexport const LOCALE_STATUS_EVENT = 'lit-localize-status';\n//# sourceMappingURL=locale-status-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { LOCALE_STATUS_EVENT } from './locale-status-event.js';\nclass LocalizeController {\n constructor(host) {\n this.__litLocalizeEventHandler = (event) => {\n if (event.detail.status === 'ready') {\n this.host.requestUpdate();\n }\n };\n this.host = host;\n }\n hostConnected() {\n window.addEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n hostDisconnected() {\n window.removeEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n}\n/**\n * Re-render the given LitElement whenever a new active locale has loaded.\n *\n * See also {@link localized} for the same functionality as a decorator.\n *\n * When using lit-localize in transform mode, calls to this function are\n * replaced with undefined.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {msg, updateWhenLocaleChanges} from '@lit/localize';\n *\n * class MyElement extends LitElement {\n * constructor() {\n * super();\n * updateWhenLocaleChanges(this);\n * }\n *\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nconst _updateWhenLocaleChanges = (host) => host.addController(new LocalizeController(host));\nexport const updateWhenLocaleChanges = _updateWhenLocaleChanges;\n//# sourceMappingURL=localized-controller.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport class Deferred {\n constructor() {\n this.settled = false;\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n resolve(value) {\n this.settled = true;\n this._resolve(value);\n }\n reject(error) {\n this.settled = true;\n this._reject(error);\n }\n}\n//# sourceMappingURL=deferred.js.map","/**\n * @license\n * Copyright 2014 Travis Webb\n * SPDX-License-Identifier: MIT\n */\n// This module is derived from the file:\n// https://github.com/tjwebb/fnv-plus/blob/1e2ce68a07cb7dd4c3c85364f3d8d96c95919474/index.js#L309\n//\n// Changes:\n// - Only the _hash64_1a_fast function is included.\n// - Removed loop unrolling.\n// - Converted to TypeScript ES module.\n// - var -> let/const\n//\n// TODO(aomarks) Upstream improvements to https://github.com/tjwebb/fnv-plus/.\nconst hl = [];\nfor (let i = 0; i < 256; i++) {\n hl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n}\n/**\n * Perform a FNV-1A 64-bit hash of the given string (as UTF-16 code units), and\n * return a hexadecimal digest (left zero padded to 16 characters).\n *\n * @see {@link http://tools.ietf.org/html/draft-eastlake-fnv-06}\n */\nexport function fnv1a64(str) {\n let t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n for (let i = 0; i < str.length; i++) {\n v0 ^= str.charCodeAt(i);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n return (hl[v3 >> 8] +\n hl[v3 & 255] +\n hl[v2 >> 8] +\n hl[v2 & 255] +\n hl[v1 >> 8] +\n hl[v1 & 255] +\n hl[v0 >> 8] +\n hl[v0 & 255]);\n}\n//# sourceMappingURL=fnv1a64.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { fnv1a64 } from './fnv1a64.js';\n/**\n * Delimiter used between each template string component before hashing. Used to\n * prevent e.g. \"foobar\" and \"foo${baz}bar\" from sharing a hash.\n *\n * This is the \"record separator\" ASCII character.\n */\nexport const HASH_DELIMITER = '\\x1e';\n/**\n * Id prefix on html-tagged templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst HTML_PREFIX = 'h';\n/**\n * Id prefix on plain string templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst STRING_PREFIX = 's';\n/**\n * Generate a unique ID for a lit-localize message.\n *\n * Example:\n * Template: html`Hello ${who}!`\n * Params: [\"Hello \", \"!\"], true\n * Output: h82ccc38d4d46eaa9\n *\n * The ID is constructed as:\n *\n * [0] Kind of template: [h]tml or [s]tring.\n * [1,16] 64-bit FNV-1a hash hex digest of the template strings, as UTF-16\n * code points, delineated by an ASCII \"record separator\" character.\n *\n * We choose FNV-1a because:\n *\n * 1. It's pretty fast (e.g. much faster than SHA-1).\n * 2. It's pretty small (0.25 KiB minified + brotli).\n * 3. We don't require cryptographic security, and 64 bits should give\n * sufficient collision resistance for any one application. Worst\n * case, we will always detect collisions during analysis.\n * 4. We can't use Web Crypto API (e.g. SHA-1), because it's asynchronous.\n * 5. It's a well known non-cryptographic hash with implementations in many\n * languages.\n * 6. There was an existing JavaScript implementation that doesn't require\n * BigInt, for IE11 compatibility.\n */\nexport function generateMsgId(strings, isHtmlTagged) {\n return ((isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) +\n fnv1a64(typeof strings === 'string' ? strings : strings.join(HASH_DELIMITER)));\n}\n//# sourceMappingURL=id-generation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './default-msg.js';\nimport { joinStringsAndValues } from './str-tag.js';\nimport { generateMsgId } from './id-generation.js';\nconst expressionOrders = new WeakMap();\nconst hashCache = new Map();\nexport function runtimeMsg(templates, template, options) {\n if (templates) {\n const id = options?.id ?? generateId(template);\n const localized = templates[id];\n if (localized) {\n if (typeof localized === 'string') {\n // E.g. \"Hello World!\"\n return localized;\n }\n else if ('strTag' in localized) {\n // E.g. str`Hello ${name}!`\n //\n // Localized templates have ${number} in place of real template\n // expressions. They can't have real template values, because the\n // variable scope would be wrong. The number tells us the index of the\n // source value to substitute in its place, because expressions can be\n // moved to a different position during translation.\n return joinStringsAndValues(localized.strings, \n // Cast `template` because its type wasn't automatically narrowed (but\n // we know it must be the same type as `localized`).\n template.values, localized.values);\n }\n else {\n // E.g. html`Hello ${name}!`\n //\n // We have to keep our own mapping of expression ordering because we do\n // an in-place update of `values`, and otherwise we'd lose ordering for\n // subsequent renders.\n let order = expressionOrders.get(localized);\n if (order === undefined) {\n order = localized.values;\n expressionOrders.set(localized, order);\n }\n return {\n ...localized,\n values: order.map((i) => template.values[i]),\n };\n }\n }\n }\n return defaultMsg(template);\n}\nfunction generateId(template) {\n const strings = typeof template === 'string' ? template : template.strings;\n let id = hashCache.get(strings);\n if (id === undefined) {\n id = generateMsgId(strings, typeof template !== 'string' && !('strTag' in template));\n hashCache.set(strings, id);\n }\n return id;\n}\n//# sourceMappingURL=runtime-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { Deferred } from '../internal/deferred.js';\nimport { LOCALE_STATUS_EVENT } from '../internal/locale-status-event.js';\nimport { runtimeMsg } from '../internal/runtime-msg.js';\nimport { _installMsgImplementation } from './install.js';\n/**\n * Dispatch a \"lit-localize-status\" event to `window` with the given detail.\n */\nfunction dispatchStatusEvent(detail) {\n window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));\n}\nlet activeLocale = '';\nlet loadingLocale;\nlet sourceLocale;\nlet validLocales;\nlet loadLocale;\nlet templates;\nlet loading = new Deferred();\n// The loading promise must be initially resolved, because that's what we should\n// return if the user immediately calls setLocale(sourceLocale).\nloading.resolve();\nlet requestId = 0;\n/**\n * Set configuration parameters for lit-localize when in runtime mode. Returns\n * an object with functions:\n *\n * - `getLocale`: Return the active locale code.\n * - `setLocale`: Set the active locale code.\n *\n * Throws if called more than once.\n */\nexport const configureLocalization = (config) => {\n _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));\n activeLocale = sourceLocale = config.sourceLocale;\n validLocales = new Set(config.targetLocales);\n validLocales.add(config.sourceLocale);\n loadLocale = config.loadLocale;\n return { getLocale, setLocale };\n};\n/**\n * Return the active locale code.\n */\nconst getLocale = () => {\n return activeLocale;\n};\n/**\n * Set the active locale code, and begin loading templates for that locale using\n * the `loadLocale` function that was passed to `configureLocalization`. Returns\n * a promise that resolves when the next locale is ready to be rendered.\n *\n * Note that if a second call to `setLocale` is made while the first requested\n * locale is still loading, then the second call takes precedence, and the\n * promise returned from the first call will resolve when second locale is\n * ready. If you need to know whether a particular locale was loaded, check\n * `getLocale` after the promise resolves.\n *\n * Throws if the given locale is not contained by the configured `sourceLocale`\n * or `targetLocales`.\n */\nconst setLocale = (newLocale) => {\n if (newLocale === (loadingLocale ?? activeLocale)) {\n return loading.promise;\n }\n if (!validLocales || !loadLocale) {\n throw new Error('Internal error');\n }\n if (!validLocales.has(newLocale)) {\n throw new Error('Invalid locale code');\n }\n requestId++;\n const thisRequestId = requestId;\n loadingLocale = newLocale;\n if (loading.settled) {\n loading = new Deferred();\n }\n dispatchStatusEvent({ status: 'loading', loadingLocale: newLocale });\n const localePromise = newLocale === sourceLocale\n ? // We could switch to the source locale synchronously, but we prefer to\n // queue it on a microtask so that switching locales is consistently\n // asynchronous.\n Promise.resolve({ templates: undefined })\n : loadLocale(newLocale);\n localePromise.then((mod) => {\n if (requestId === thisRequestId) {\n activeLocale = newLocale;\n loadingLocale = undefined;\n templates = mod.templates;\n dispatchStatusEvent({ status: 'ready', readyLocale: newLocale });\n loading.resolve();\n }\n // Else another locale was requested in the meantime. Don't resolve or\n // reject, because the newer load call is going to use the same promise.\n // Note the user can call getLocale() after the promise resolves if they\n // need to check if the locale is still the one they expected to load.\n }, (err) => {\n if (requestId === thisRequestId) {\n dispatchStatusEvent({\n status: 'error',\n errorLocale: newLocale,\n errorMessage: err.toString(),\n });\n loading.reject(err);\n }\n });\n return loading.promise;\n};\n//# sourceMappingURL=runtime.js.map","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"customElement\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.customElement), [\"property\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.property), [\"state\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.state) });","// Do not modify this file by hand!\n// Re-generate this file by running lit-localize.\n\n/**\n * The locale code that templates in this source code are written in.\n */\nexport const sourceLocale = `en`;\n\n/**\n * The other locale codes that this application is localized into. Sorted\n * lexicographically.\n */\nexport const targetLocales = [\n `cs`,\n `de`,\n `el`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n\n/**\n * All valid project locale codes. Sorted lexicographically.\n */\nexport const allLocales = [\n `cs`,\n `de`,\n `el`,\n `en`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.`,\n's1b9047d53d9f9d22': `2) Нажать \"Поделиться\"`,\n's37a9e8aec5713460': `Подробнее`,\n's5c6aad7a7e4a1437': `3) Нажать \"На экран «Домой»\"`,\n's6196153c4b0c1ea0': `Установить`,\n's922329d6f6213590': `Добавить в Dock`,\n'sa5ef80b4bb9b39f8': `Свернуть`,\n'sa7551383d1897fcc': `2) Нажмите \"Добавить в Dock\"`,\n'sba52286c21552a4e': `Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.`,\n'sc79fd7641eb9a975': `Спрятать Инструкцию`,\n'scdaf4bbff76674c8': `На экран «Домой»`,\n'sdfe23506a3b0cdc8': `1) Открыть в Safari браузере`,\n'se740f75b95a51807': `Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.`,\n'sfea652f6580ff086': `Этот веб-сайт имеет функционал приложения.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.`,\n's1b9047d53d9f9d22': `2) Gezinme çubuğunda Paylaş'a basın`,\n's37a9e8aec5713460': `Daha Fazla`,\n's5c6aad7a7e4a1437': `3) Ana Ekrana Ekle'ye basın`,\n's6196153c4b0c1ea0': `Yükle`,\n's922329d6f6213590': `Dock’a Ekle`,\n'sa5ef80b4bb9b39f8': `Küçült`,\n'sa7551383d1897fcc': `2) Dock’a ekleye basın`,\n'sba52286c21552a4e': `Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.`,\n'sc79fd7641eb9a975': `Talimatları gizle`,\n'scdaf4bbff76674c8': `Ana Ekrana Ekle`,\n'sdfe23506a3b0cdc8': `1) Safari tarayıcısında açın`,\n'se740f75b95a51807': `Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.`,\n'sfea652f6580ff086': `Bu site uygulama işlevselliğine sahiptir.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n's1b9047d53d9f9d22': `2) Drücken Sie auf Teilen in der Navigationsleiste`,\n's37a9e8aec5713460': `Mehr`,\n's5c6aad7a7e4a1437': `3) Drücken Sie Hinzufügen zum Startbildschirm`,\n's6196153c4b0c1ea0': `Installieren`,\n's922329d6f6213590': `Zum Dock hinzufügen`,\n'sa5ef80b4bb9b39f8': `Weniger`,\n'sa7551383d1897fcc': `2) Drücken Sie auf Zum Dock hinzufügen`,\n'sba52286c21552a4e': `Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.`,\n'sc79fd7641eb9a975': `Anleitung ausblenden`,\n'scdaf4bbff76674c8': `Hinzufügen zum Startbildschirm`,\n'sdfe23506a3b0cdc8': `1) In Safari-Browser öffnen`,\n'se740f75b95a51807': `Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n'sfea652f6580ff086': `Diese Website verfügt über App-Funktionalität.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.`,\n's1b9047d53d9f9d22': `2) Presionar Compartir en la barra de direcciones`,\n's37a9e8aec5713460': `Más`,\n's5c6aad7a7e4a1437': `3) Presionar Añadir a pantalla de inicio`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Añadir al Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Presionar Añadir al Dock`,\n'sba52286c21552a4e': `Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.`,\n'sc79fd7641eb9a975': `Esconder instrucciones`,\n'scdaf4bbff76674c8': `Añadir a pantalla de inicio`,\n'sdfe23506a3b0cdc8': `1) Abrir en el navegador web Safari`,\n'se740f75b95a51807': `Añádelo a tu Dock para una experiencia amplia y acceso fácil.`,\n'sfea652f6580ff086': `Este sitio tiene funcionalidad de aplicación.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.`,\n's1b9047d53d9f9d22': `2) Druk op delen in de navigatiebalk`,\n's37a9e8aec5713460': `Meer`,\n's5c6aad7a7e4a1437': `3) Druk op Toevoegen aan het startscherm`,\n's6196153c4b0c1ea0': `Installeren`,\n's922329d6f6213590': `Toevoegen aan Dock`,\n'sa5ef80b4bb9b39f8': `Minder`,\n'sa7551383d1897fcc': `2) Druk op Toevoegen aan Dock`,\n'sba52286c21552a4e': `Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.`,\n'sc79fd7641eb9a975': `Instructie verbergen`,\n'scdaf4bbff76674c8': `Toevoegen aan het startscherm`,\n'sdfe23506a3b0cdc8': `1) Open in Safari-browser`,\n'se740f75b95a51807': `Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.`,\n'sfea652f6580ff086': `Deze site heeft app-functionaliteit.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n's1b9047d53d9f9d22': `2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης`,\n's37a9e8aec5713460': `Περισσότερα`,\n's5c6aad7a7e4a1437': `3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας`,\n's6196153c4b0c1ea0': `Εγκατάσταση`,\n's922329d6f6213590': `Προσθήκη στην Πρόσβαση`,\n'sa5ef80b4bb9b39f8': `Λιγότερα`,\n'sa7551383d1897fcc': `2) Πατήστε Προσθήκη στην Πρόσβαση`,\n'sba52286c21552a4e': `Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sc79fd7641eb9a975': `Απόκρυψη Οδηγιών`,\n'scdaf4bbff76674c8': `Προσθήκη στην Οθόνη Αφετηρίας`,\n'sdfe23506a3b0cdc8': `1) Ανοίξτε τον περιηγητή Safari`,\n'se740f75b95a51807': `Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sfea652f6580ff086': `Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.`,\n's1b9047d53d9f9d22': `2) Appuyez sur Partager dans la barre de navigation`,\n's37a9e8aec5713460': `Plus`,\n's5c6aad7a7e4a1437': `3) Appuyez sur Ajouter à l'écran d'accueil`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Ajouter au Dock`,\n'sa5ef80b4bb9b39f8': `Moins`,\n'sa7551383d1897fcc': `2) Appuyez sur Ajouter au Dock`,\n'sba52286c21552a4e': `Installez-le sur votre appareil pour une expérience complète et un accès facile.`,\n'sc79fd7641eb9a975': `Masquer les instructions`,\n'scdaf4bbff76674c8': `Ajouter à l'écran d'accueil`,\n'sdfe23506a3b0cdc8': `1) Ouvrir dans le navigateur Safari`,\n'se740f75b95a51807': `Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.`,\n'sfea652f6580ff086': `Ce site possède des fonctionnalités d'application.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додајте га на Home Screen за широке могућности и лак приступ.`,\n's1b9047d53d9f9d22': `2) Притисните Share у навигационој траци`,\n's37a9e8aec5713460': `Више`,\n's5c6aad7a7e4a1437': `3) Притисните Add to Home Screen`,\n's6196153c4b0c1ea0': `Инсталирај`,\n'sa5ef80b4bb9b39f8': `Мање`,\n'sa7551383d1897fcc': `3) Притисните Add to Dock`,\n'sba52286c21552a4e': `Инсталирајте га на вашем уређају за широке могућности и лак приступ.`,\n'sc79fd7641eb9a975': `Сакриј упутство`,\n'sdfe23506a3b0cdc8': `1) Отворите у Safari прегледачу`,\n'se740f75b95a51807': `Додајте га у вашу Dock за широке могућности и лак приступ.`,\n'sfea652f6580ff086': `Овај сајт има функционалност апликације.`,\n's922329d6f6213590': `Add to Dock`,\n'scdaf4bbff76674c8': `Add to Home Screen`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n's1b9047d53d9f9d22': `2) Wybierz \"Udostępnij\"`,\n's37a9e8aec5713460': `Więcej`,\n's5c6aad7a7e4a1437': `3) Wybierz \"Dodaj do Ekranu Głównego\"`,\n's6196153c4b0c1ea0': `Zainstaluj`,\n's922329d6f6213590': `Dodaj do Docka`,\n'sa5ef80b4bb9b39f8': `Mniej`,\n'sa7551383d1897fcc': `2) Wybierz \"Dodaj do Docka\"`,\n'sba52286c21552a4e': `Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sc79fd7641eb9a975': `Ukryj instrukcję`,\n'scdaf4bbff76674c8': `Dodaj do Ekranu Głównego`,\n'sdfe23506a3b0cdc8': `1) Otwórz przeglądarkę Safari`,\n'se740f75b95a51807': `Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sfea652f6580ff086': `Ta strona posiada funkcje aplikacji.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додайте на Домашній екран для зручного доступу та ширших можливостей.`,\n's1b9047d53d9f9d22': `2) Натиснути «Поділитися»`,\n's37a9e8aec5713460': `Детальніше`,\n's5c6aad7a7e4a1437': `3) Натиснути «На Початковий екран»`,\n's6196153c4b0c1ea0': `Встановити`,\n's922329d6f6213590': `Додати на Dock`,\n'sa5ef80b4bb9b39f8': `Згорнути`,\n'sa7551383d1897fcc': `2) Натиснути «Додати на Dock»`,\n'sba52286c21552a4e': `Встановіть на ваш пристрій для зручного доступу та ширших можливостей.`,\n'sc79fd7641eb9a975': `Сховати Інструкцію`,\n'scdaf4bbff76674c8': `На Початковий экран`,\n'sdfe23506a3b0cdc8': `1) Відкрити в Safari браузері`,\n'se740f75b95a51807': `Додайте на панель Dock для зручного доступу та ширших можливостей.`,\n'sfea652f6580ff086': `Цей сайт має функції додатку.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。`,\n's1b9047d53d9f9d22': `2) 點擊列表上的分享按鈕`,\n's37a9e8aec5713460': `詳細資訊`,\n's5c6aad7a7e4a1437': `3) 點擊加入主畫面`,\n's6196153c4b0c1ea0': `安裝`,\n's922329d6f6213590': `添加到Dock欄`,\n'sa5ef80b4bb9b39f8': `簡短資訊`,\n'sa7551383d1897fcc': `2) 點選添加到Dock欄`,\n'sba52286c21552a4e': `在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。`,\n'sc79fd7641eb9a975': `隱藏安裝流程`,\n'scdaf4bbff76674c8': `將App加入主畫面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上瀏覽此網頁`,\n'se740f75b95a51807': `將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。`,\n'sfea652f6580ff086': `此網站具有應用程式功能。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`,\n's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`,\n's37a9e8aec5713460': `详细资讯`,\n's5c6aad7a7e4a1437': `3) 点击添加到主屏幕`,\n's6196153c4b0c1ea0': `安装`,\n's922329d6f6213590': `添加到Dock`,\n'sa5ef80b4bb9b39f8': `简短资讯`,\n'sa7551383d1897fcc': `2) 按下添加到Dock`,\n'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`,\n'sc79fd7641eb9a975': `隐藏安装流程`,\n'scdaf4bbff76674c8': `将App添加到主屏幕`,\n'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`,\n'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`,\n'sfea652f6580ff086': `此网站具备app的功能性。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.`,\n's1b9047d53d9f9d22': `2) Premi Condividi nella barra di navigazione`,\n's37a9e8aec5713460': `Più`,\n's5c6aad7a7e4a1437': `3) Premi Aggiungi alla schermata principale`,\n's6196153c4b0c1ea0': `Installa`,\n's922329d6f6213590': `Aggiungi al Dock`,\n'sa5ef80b4bb9b39f8': `Meno`,\n'sa7551383d1897fcc': `2) Premi Aggiungi al Dock`,\n'sba52286c21552a4e': `Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.`,\n'sc79fd7641eb9a975': `Nascondi istruzioni`,\n'scdaf4bbff76674c8': `Aggiungi alla schermata principale`,\n'sdfe23506a3b0cdc8': `1) Apri nel browser Safari`,\n'se740f75b95a51807': `Aggiungilo al Dock per un'esperienza più completa e un accesso facile.`,\n'sfea652f6580ff086': `Questo sito ha funzionalità di app.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Přidejte jej na plochu pro rozšířené využití a snadný přístup.`,\n's1b9047d53d9f9d22': `2) Stiskněte tlačítko Sdílet na navigačním panelu`,\n's37a9e8aec5713460': `Vice`,\n's5c6aad7a7e4a1437': `3) Stiskněte tlačítko Přidat na plochu`,\n's6196153c4b0c1ea0': `Nainstalovat`,\n's922329d6f6213590': `Přidat do Docku`,\n'sa5ef80b4bb9b39f8': `Méně`,\n'sa7551383d1897fcc': `2) Stiskněte Přidat do Docku`,\n'sba52286c21552a4e': `Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.`,\n'sc79fd7641eb9a975': `Skrýt instrukce`,\n'scdaf4bbff76674c8': `Přidat na plochu`,\n'sdfe23506a3b0cdc8': `1) Otevřete v prohlížeči Safari`,\n'se740f75b95a51807': `Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.`,\n'sfea652f6580ff086': `Tento web má funkce aplikace.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.`,\n's1b9047d53d9f9d22': `2) Trykk på Del-knappen i navigasjonslinjen`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Velg Legg til på Hjem-skjerm`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Legg til i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Velg Legg til i Dock`,\n'sba52286c21552a4e': `Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sc79fd7641eb9a975': `Skjul instruksjoner`,\n'scdaf4bbff76674c8': `Legg til på Hjem-skjerm`,\n'sdfe23506a3b0cdc8': `1) Åpne i Safari`,\n'se740f75b95a51807': `Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sfea652f6580ff086': `Denne siden har app-funksjonalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.`,\n's1b9047d53d9f9d22': `2) Pressione Compartilhar na barra de endereço`,\n's37a9e8aec5713460': `Mais`,\n's5c6aad7a7e4a1437': `3) Pressione Adicionar à Tela de Início`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Adicionar ao Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Pressione Adicionar ao Dock`,\n'sba52286c21552a4e': `Instale no dispositivo para uma melhor experiência e mais fácil acesso.`,\n'sc79fd7641eb9a975': `Ocultar Instruções`,\n'scdaf4bbff76674c8': `Adicionar à Tela de Início`,\n'sdfe23506a3b0cdc8': `1) Abra no navegador Safari`,\n'se740f75b95a51807': `Adicione ao Dock para uma melhor experiência e mais fácil acesso.`,\n'sfea652f6580ff086': `Este site possui funcionalidade de aplicativo.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。`,\n's1b9047d53d9f9d22': `2) ナビゲーションバーで共有を押す`,\n's37a9e8aec5713460': `展開`,\n's5c6aad7a7e4a1437': `3) 「ホーム画面に追加」を押す`,\n's6196153c4b0c1ea0': `インストール`,\n's922329d6f6213590': `Dockに追加`,\n'sa5ef80b4bb9b39f8': `折りたたむ`,\n'sa7551383d1897fcc': `2) 「Dockに追加」を押す`,\n'sba52286c21552a4e': `デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。`,\n'sc79fd7641eb9a975': `説明を非表示`,\n'scdaf4bbff76674c8': `ホーム画面に追加`,\n'sdfe23506a3b0cdc8': `1) Safariで開く`,\n'se740f75b95a51807': `ドックに追加して、幅広い体験と簡単なアクセスを実現してください。`,\n'sfea652f6580ff086': `このサイトはアプリ機能があります。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.`,\n's1b9047d53d9f9d22': `2) Tryck på Dela-knappen i verktygsfältet`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Välj Lägg till på hemskärmen`,\n's6196153c4b0c1ea0': `Installera`,\n's922329d6f6213590': `Lägg till i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Välj Lägg till i Dock`,\n'sba52286c21552a4e': `Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sc79fd7641eb9a975': `Göm instruktioner`,\n'scdaf4bbff76674c8': `Lägg till på hemskärmen`,\n'sdfe23506a3b0cdc8': `1) Öppna i Safari`,\n'se740f75b95a51807': `Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sfea652f6580ff086': `Denna webbsajt har app-funktionalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.`,\n's1b9047d53d9f9d22': `2) 내비게이션 바에서 공유 버튼 누르기`,\n's37a9e8aec5713460': `더보기`,\n's5c6aad7a7e4a1437': `3) 홈 화면에 추가 버튼 누르기`,\n's6196153c4b0c1ea0': `설치`,\n's922329d6f6213590': `Dock에 추가`,\n'sa5ef80b4bb9b39f8': `닫기`,\n'sa7551383d1897fcc': `2) Dock에 추가 버튼 누르기`,\n'sba52286c21552a4e': `더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.`,\n'sc79fd7641eb9a975': `안내 숨기기`,\n'scdaf4bbff76674c8': `홈 화면에 추가`,\n'sdfe23506a3b0cdc8': `1) Safari 브라우저에서 열기`,\n'se740f75b95a51807': `더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.`,\n'sfea652f6580ff086': `이 사이트는 앱 기능을 가지고 있습니다.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n's1b9047d53d9f9d22': `2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ`,\n's37a9e8aec5713460': `បង្ហាញបន្ថែម`,\n's5c6aad7a7e4a1437': `3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n's6196153c4b0c1ea0': `តំឡើង`,\n's922329d6f6213590': `បន្ថែមទៅកាន់ Dock`,\n'sa5ef80b4bb9b39f8': `បង្ហាញតិច`,\n'sa7551383d1897fcc': `2) ចុចលើ បន្ថែមទៅកាន់ Dock`,\n'sba52286c21552a4e': `តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sc79fd7641eb9a975': `បិទការណែនាំ`,\n'scdaf4bbff76674c8': `បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n'sdfe23506a3b0cdc8': `1) បើកនៅក្នុងកម្មវិធី Safari`,\n'se740f75b95a51807': `បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sfea652f6580ff086': `គេហទំព័រនេះមានមុខងារជាកម្មវិធី។`,\n };\n ","import { configureLocalization } from '@lit/localize';\r\nimport {\r\n sourceLocale,\r\n targetLocales,\r\n} from './locale-codes';\r\n\r\nimport * as ru from './locales/ru';\r\nimport * as tr from './locales/tr';\r\nimport * as de from \"./locales/de\";\r\nimport * as es from \"./locales/es\";\r\nimport * as nl from \"./locales/nl\";\r\nimport * as el from \"./locales/el\";\r\nimport * as fr from \"./locales/fr\";\r\nimport * as sr from \"./locales/sr\";\r\nimport * as pl from \"./locales/pl\";\r\nimport * as uk from \"./locales/uk\";\r\nimport * as zh from \"./locales/zh\";\r\nimport * as zhCN from \"./locales/zh-CN\";\r\nimport * as it from \"./locales/it\";\r\nimport * as cs from \"./locales/cs\";\r\nimport * as no from \"./locales/no\";\r\nimport * as pt from \"./locales/pt\";\r\nimport * as ja from \"./locales/ja\";\r\nimport * as sv from \"./locales/sv\";\r\nimport * as ko from \"./locales/ko\";\r\nimport * as km from \"./locales/km\";\r\n\r\nconst localizedTemplates = new Map([\r\n ['ru', ru],\r\n ['tr', tr],\r\n ['de', de],\r\n ['es', es],\r\n ['nl', nl],\r\n ['el', el],\r\n ['fr', fr],\r\n ['sr', sr],\r\n ['pl', pl],\r\n ['uk', uk],\r\n ['zh', zh],\r\n ['zh-CN', zhCN],\r\n ['it', it],\r\n ['cs', cs],\r\n ['no', no], // + nb\r\n ['pt', pt],\r\n ['ja', ja],\r\n ['sv', sv],\r\n ['ko', ko],\r\n ['km', km]\r\n])\r\n\r\nexport const { getLocale, setLocale } = configureLocalization({\r\n sourceLocale,\r\n targetLocales,\r\n // @ts-ignore\r\n loadLocale: async (lang: string) => localizedTemplates.get(lang)\r\n});\r\n\r\nexport const changeLocale = (lang: string) => {\r\n // Norwegian Bokmål is same as Norwegian\r\n switch (lang.slice(0, 2)) {\r\n case 'nb':\r\n lang = 'no';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n try {\r\n if (localizedTemplates.get(lang))\r\n setLocale(lang);\r\n else\r\n setLocale(lang.slice(0, 2));\r\n }\r\n catch {\r\n console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);\r\n }\r\n};\r\n","import { ImageResource } from 'web-app-manifest';\r\n\r\nexport interface IRelatedApp {\r\n id: string,\r\n platform: string,\r\n url: string\r\n}\r\n\r\nexport interface IWindow extends Window {\r\n defferedPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\ntype Booleanish = 'true' | 'false';\r\n\r\nexport interface PWAInstallAttributes {\r\n ['manual-apple']?: Booleanish;\r\n ['manual-chrome']?: Booleanish;\r\n ['disable-chrome']?: Booleanish;\r\n ['install-description']?: string;\r\n ['disable-install-description']?: Booleanish;\r\n ['manifest-url']?: string;\r\n name?: string;\r\n description?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class Manifest {\r\n constructor() {\r\n this.icons = [{ src: '' }];\r\n this.screenshots = undefined;\r\n this.short_name = 'PWA';\r\n this.name = 'Progressive web application';\r\n this.description = 'Progressive web application';\r\n }\r\n short_name: string;\r\n icons: ImageResource[];\r\n screenshots?: ImageResource[];\r\n name: string;\r\n description: string;\r\n}\r\n","import {css} from 'lit'; export default css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`;\n ","import { html } from 'lit';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nconst template = (screenshots: WebAppManifest['screenshots'], theme: string, scrollToNextPage: any, scrollToPrevPage: any) => {\r\n return html`\r\n ${screenshots? html`\r\n
\r\n
\r\n
\r\n ${screenshots.map(screenshot => html``)}\r\n
\r\n
\r\n \r\n ${theme != 'default'?\r\n html``\r\n :\r\n html``\r\n }\r\n \r\n \r\n ${theme != 'default'?\r\n html`\r\n \r\n `\r\n :\r\n html`\r\n \r\n \r\n \r\n `\r\n }\r\n \r\n
`\r\n : ''}`;\r\n};\r\nexport default template;\r\n","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nimport styles from './styles-gallery.scss';\r\nimport template from './template-gallery';\r\n\r\n@customElement('pwa-gallery')\r\nexport default class PWAGalleryElement extends LitElement {\r\n\t@property() screenshots: WebAppManifest['screenshots'] = [];\r\n\t@property() theme: 'default' | 'apple_desktop' | 'apple_mobile' = 'default';\r\n\r\n\tstatic get styles() {\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tpublic calcScrollSize = () => {\r\n\t\t//@ts-ignore\r\n\t\tconst gallery = this.shadowRoot.querySelector('#paginated_gallery');\r\n\t\tif (!gallery)\r\n\t\t\treturn;\r\n\t\tconst gallery_scroller = gallery.querySelector('.gallery_scroller');\r\n\t\tif (!gallery_scroller)\r\n\t\t\treturn;\r\n\t\tconst gallery_items = Array.from(gallery_scroller.querySelectorAll('img'));\r\n\t\tif (!gallery_items)\r\n\t\t\treturn;\r\n\t\tconst gallery_item = gallery_items.find((item) => { return (item.offsetWidth + item.offsetLeft) >= gallery_scroller.scrollLeft})\r\n\t\tif (!gallery_item)\r\n\t\t\treturn;\r\n\r\n\t\treturn {\r\n\t\t\tscroller: gallery_scroller,\r\n\t\t\titem: gallery_item\r\n\t\t}\r\n\t}\r\n\tpublic scrollToNextPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.nextElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft + _tools.scroller.clientWidth + _tools.item.nextElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\tpublic scrollToPrevPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.previousElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft - _tools.scroller.clientWidth - _tools.item.previousElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\tprivate _init = () => {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools)\r\n\t\t\tsetTimeout(\r\n\t\t\t\t() => {\r\n\t\t\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t)\r\n\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\tthis._init();\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(\r\n this.screenshots,\r\n\t\t\tthis.theme,\r\n\t\t\tthis.scrollToNextPage,\r\n\t\t\tthis.scrollToPrevPage\r\n )}`;\r\n\t}\r\n}\r\n","import { html } from 'lit';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, icon: string, install: any) => {\r\n return html`\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n
${location.hostname}
\r\n
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n `;\r\n};\r\nexport default template;\r\n","import { WebAppManifest } from 'web-app-manifest';\r\nimport { IRelatedApp } from './types/types';\r\n\r\nconst _eventDispatcher = (_element: Element, name: string, message: string) => {\r\n const event = new CustomEvent(name, {\r\n detail: {\r\n message\r\n }\r\n });\r\n _element.dispatchEvent(event);\r\n}\r\nexport default class Utils {\r\n static isAppleMobile(): boolean {\r\n\t\tif (\r\n (\r\n ['iPhone', 'iPad', 'iPod'].includes(navigator.platform) ||\r\n (navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n )\r\n && ('serviceWorker' in navigator)\r\n )\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static isAppleDesktop(): boolean {\r\n // check if it's a mac\r\n const userAgent = navigator.userAgent.toLowerCase();\r\n if (navigator.maxTouchPoints || !userAgent.match(/macintosh/))\r\n return false;\r\n // check safari version >= 17\r\n const version = /version\\/(\\d{2})\\./.exec(userAgent)\r\n if (!version || !version[1] || !(parseInt(version[1]) >= 17))\r\n return false;\r\n // hacky way to detect Sonoma\r\n const audioCheck = document.createElement('audio').canPlayType('audio/wav; codecs=\"1\"') ? true : false;\r\n const webGLCheck = new OffscreenCanvas(1, 1).getContext('webgl') ? true : false;\r\n\r\n return audioCheck && webGLCheck;\r\n }\r\n \r\n static isStandalone() {\r\n\t\tif (window.matchMedia('(display-mode: standalone)').matches || ('standalone' in navigator && (navigator as any).standalone === true))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static async getInstalledRelatedApps(): Promise {\r\n if ('getInstalledRelatedApps' in navigator)\r\n try{\r\n await (navigator as any).getInstalledRelatedApps().then((relatedApps: IRelatedApp[]) => {\r\n return relatedApps;\r\n });\r\n } catch (e) {}\r\n \r\n return [];\r\n }\r\n \r\n static async isRelatedAppsInstalled(): Promise {\r\n const _relatedApps = await this.getInstalledRelatedApps();\r\n return _relatedApps.length? true : false;\r\n }\r\n\r\n static eventInstalledSuccess(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-success-event', 'App install success (Chromium/Android only)');\r\n }\r\n static eventInstalledFail(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-fail-event', 'App install failed (Chromium/Android only)');\r\n }\r\n static eventUserChoiceResult(_element: Element, message: string) {\r\n _eventDispatcher(_element, 'pwa-user-choice-result-event', message);\r\n }\r\n static eventInstallAvailable(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-available-event', 'App install available');\r\n }\r\n static eventInstallHowTo(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-how-to-event', 'App install instruction showed');\r\n }\r\n static eventGallery(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-gallery-event', 'App install gallery showed');\r\n }\r\n\r\n static normalizeManifestAssetUrls(manifest: WebAppManifest, manifestUrl: string) {\r\n const normalizedManifestUrl = new URL(manifestUrl, document.location.href);\r\n [...manifest.icons || [], ...manifest.screenshots || []].forEach(asset => {\r\n asset.src = new URL(asset.src, normalizedManifestUrl).href;\r\n })\r\n }\r\n}","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\n\r\n// import TouchDragListener from \"./touch-listener\";\r\n\r\ntype IProps = {\r\n name: string,\r\n description: string,\r\n icon: string\r\n}\r\n\r\nimport template from './template-bottom-sheet';\r\nimport Utils from '../../../utils';\r\n\r\n@customElement('pwa-bottom-sheet')\r\nexport default class PWABottomSheetElement extends LitElement {\r\n\t@property({type: Object}) props: IProps = {\r\n name: '',\r\n description: '',\r\n icon: ''\r\n };\r\n @property({type: Object}) install = {handleEvent: () => {}};\r\n\t@property() hideDialog = () => {};\r\n\t@property() disableClose = false;\r\n\r\n\tprivate _callInstall = () => {\r\n\t\tthis.install.handleEvent();\r\n\t}\r\n\r\n\tprivate _callHide = () => {\r\n\t\tthis.hideDialog();\r\n\t\tthis.setupAppearence();\r\n\t}\r\n\r\n\tprivate bindedElement: {\r\n\t\ttouchElement: HTMLElement,\r\n\t\tlistener: any }| null = null;\r\n\tprivate readonly _saveBodyStyle = document.body.style.overscrollBehaviorY;\r\n\tprivate dragMobileSheet = (element: HTMLElement | null | undefined, touchTargetElement: HTMLElement | undefined, infoElement: HTMLElement | undefined) => {\r\n\t\tif (!element || !touchTargetElement || !infoElement)\r\n\t\t\treturn null;\r\n\r\n\t\tlet dragOffset = 0;\r\n\t\tconst bounceOffset = 35;\r\n\t\tconst bottomSize = touchTargetElement.clientHeight + infoElement.clientHeight;\r\n\r\n\t\tconst getYCoord = (e: MouseEvent | TouchEvent): number => {\r\n\t\t\treturn (e as MouseEvent).clientY || ((e as TouchEvent).changedTouches && (e as TouchEvent).changedTouches.length? (e as TouchEvent).changedTouches[0].clientY : 0);\r\n\t\t}\r\n\r\n\t\tconst dragMouseDown = (e: MouseEvent | TouchEvent) => {\r\n\t\t\twindow.addEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.addEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.addEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.addEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tdragOffset = getYCoord(e) - touchTargetElement.getBoundingClientRect().top;\r\n\r\n\t\t\tdocument.body.style.overscrollBehaviorY = 'none';\r\n\t\t}\r\n\t\tconst dragMouseUp = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tdocument.body.style.overscrollBehaviorY = this._saveBodyStyle;\r\n\r\n\t\t\tif (!this.disableClose && getYCoord(e) >= window.innerHeight - 25) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight + 50, true);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (window.innerHeight - getYCoord(e) > element.clientHeight / 2.5) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - element.clientHeight);\r\n\t\t\t\t\r\n\t\t\t\ttry {\r\n\t\t\t\t\tUtils.eventGallery((this.getRootNode() as ShadowRoot).host);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - bottomSize - bounceOffset);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dragMouseMove = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tconst currentY = getYCoord(e);\r\n\r\n\t\t\tif (this.disableClose && window.innerHeight - currentY < 70) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (currentY <= (window.innerHeight - element.clientHeight + dragOffset)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`none`\r\n\t\t\t)\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"--translateY\",\r\n\t\t\t\t`translateY(${currentY - dragOffset}px)`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => {\r\n\t\t\twindow.removeEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.removeEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.removeEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.removeEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tif (window.innerWidth >= 768)\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!toPoint && getYCoord(e) >= window.innerHeight - bottomSize)\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(calc(100vh - ${bottomSize}px))`\r\n\t\t\t\t);\r\n\t\t\telse\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(${(toPoint || getYCoord(e)) + bounceOffset}px)`\r\n\t\t\t\t);\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s`\r\n\t\t\t);\r\n\r\n\t\t\tif (hideDialog){\r\n\t\t\t\ttouchTargetElement.removeEventListener('mousedown', dragMouseDown);\r\n\t\t\t\ttouchTargetElement.removeEventListener('touchstart', dragMouseDown);\r\n\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\tthis._callHide,\r\n\t\t\t\t\t250\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\ttouchTargetElement.addEventListener('mousedown', dragMouseDown);\r\n\t\ttouchTargetElement.addEventListener('touchstart', dragMouseDown, {passive: true});\r\n\r\n\t\tcloseDragElement(new MouseEvent('mouseup'), window.innerHeight - bottomSize - bounceOffset);\r\n\r\n\t\treturn {\r\n\t\t\ttouchElement: touchTargetElement,\r\n\t\t\tlistener: dragMouseDown\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupAppearence = () => {\r\n\t\tif (this.bindedElement) {\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('mousedown', this.bindedElement.listener);\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('touchstart', this.bindedElement.listener);\r\n\t\t}\r\n\r\n\t\tthis.bindedElement = this.dragMobileSheet(\r\n\t\t\tthis.parentElement?.parentElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement);\r\n\t}\r\n\tprivate _init = () => {\r\n\t\tthis.setupAppearence();\r\n\r\n\t\twindow.addEventListener('resize', this.setupAppearence);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tthis._init();\r\n return;\r\n\t}\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(this.props.name, this.props.description, this.props.icon, this._callInstall)}`;\r\n\t}\r\n}\r\n","import {css} from 'lit'; export default css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,\"Segoe UI\",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:\"\";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,\"Segoe UI\",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:\"\";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`;\n ","import {css} from 'lit'; export default css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,\"Segoe UI\";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon description\" \"welcome welcome\" \"how-to how-to\" \"gallery gallery\" \"button button\";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon\" \"description\" \"welcome\" \"how-to\" \"gallery\" \"button\";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;\n ","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"classMap\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_directives_class_map_js_2f88e643__.classMap) });","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n
\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n ${!disableClose? html`` : ''}\r\n
\r\n
${location.hostname}
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n ${!disableDescription? \r\n html`
${installDescription? installDescription: `${msg('This site has app functionality.')} ${msg('Install it on your device for extensive experience and easy access.')}`}
` \r\n : ''}\r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n ${screenshotsAvailable? html``:''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n
\r\n
`;\r\n};\r\nexport default template;\r\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, isDesktop: boolean, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested, desktop: isDesktop}};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n `;\r\n};\r\nexport default template;\r\n","import { LitElement, PropertyValues, html } from 'lit';\r\nimport { localized } from '@lit/localize';\r\nimport { property, state, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { changeLocale } from './localization';\r\n\r\nimport { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types';\r\n\r\nimport PWAGalleryElement from './gallery';\r\nimport PWABottomSheetElement from './templates/chrome/bottom-sheet';\r\n\r\nimport Utils from './utils';\r\n\r\ndeclare const window: IWindow;\r\n\r\nimport styles from './templates/chrome/styles.scss';\r\nimport stylesApple from './templates/apple/styles-apple.scss';\r\n\r\nimport template from './templates/chrome/template';\r\nimport templateApple from './templates/apple/template-apple';\r\n\r\n/**\r\n * @event {CustomEvent} pwa-install-success-event - App install success (Chromium/Android only)\r\n * @event {CustomEvent} pwa-install-fail-event - App install failed (Chromium/Android only)\r\n * @event {CustomEvent} pwa-user-choice-result-event - dismissed, accepted\r\n * @event {CustomEvent} pwa-install-available-event - App install available\r\n * @event {CustomEvent} pwa-install-how-to-event - App install instruction showed\r\n * @event {CustomEvent} pwa-install-gallery-event - App install gallery showed\r\n */\r\n@localized()\r\n@customElement('pwa-install')\r\nexport class PWAInstallElement extends LitElement {\r\n\t@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json';\r\n\t@property() icon = '';\r\n\t@property() name = '';\r\n\t@property() description = '';\r\n\t@property({attribute: 'install-description'}) installDescription = '';\r\n\t@property({attribute: 'disable-install-description', type: Boolean}) disableDescription = false;\r\n\t@property({attribute: 'disable-screenshots', type: Boolean}) disableScreenshots = false;\r\n\t@property({attribute: 'disable-screenshots-apple', type: Boolean}) disableScreenshotsApple = false;\r\n\t@property({attribute: 'disable-screenshots-chrome', type: Boolean}) disableScreenshotsChrome = false;\r\n\t@property({attribute: 'manual-apple', type: Boolean}) manualApple = false;\r\n\t@property({attribute: 'manual-chrome', type: Boolean}) manualChrome = false;\r\n\t@property({attribute: 'disable-chrome', type: Boolean}) disableChrome = false;\r\n\t@property({attribute: 'disable-close', type: Boolean}) disableClose = false;\r\n\r\n\tstatic get styles() {\r\n\t\treturn [ styles, stylesApple ];\r\n\t}\r\n\r\n\t@state() externalPromptEvent: BeforeInstallPromptEvent | null = null;\r\n\r\n\tpublic platforms: BeforeInstallPromptEvent['platforms'] = [];\r\n\tpublic userChoiceResult = '';\r\n\r\n\tpublic isDialogHidden: boolean = JSON.parse(window.sessionStorage.getItem('pwa-hide-install') || 'false');\r\n\tpublic isInstallAvailable = false;\r\n\tpublic isAppleMobilePlatform = false;\r\n\tpublic isAppleDesktopPlatform = false;\r\n\tpublic isUnderStandaloneMode = false;\r\n\tpublic isRelatedAppsInstalled = false;\r\n\r\n\t/** @internal */\r\n\tprivate _manifest: WebAppManifest = new Manifest();\r\n\t/** @internal */\r\n\tprivate _howToRequested = false;\r\n\t/** @internal */\r\n\tprivate _galleryRequested = false;\r\n\t/** @internal */\r\n\tprivate _install = {\r\n\t\thandleEvent: () => {\r\n\t\t\tif (window.defferedPromptEvent) {\r\n\t\t\t\tthis.hideDialog();\r\n\t\t\t\twindow.defferedPromptEvent.prompt();\r\n\t\t\t\twindow.defferedPromptEvent.userChoice\r\n\t\t\t\t\t.then((choiceResult: PromptResponseObject) => {\r\n\t\t\t\t\t\tthis.userChoiceResult = choiceResult.outcome;\r\n\t\t\t\t\t\tUtils.eventUserChoiceResult(this, this.userChoiceResult);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tUtils.eventInstalledFail(this);\r\n\t\t\t\t\t});\r\n\t\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\tpublic install = () => {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tthis._howToRequested = true;\r\n\t\t\tthis.requestUpdate();\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis._install.handleEvent();\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialog = {\r\n\t\thandleEvent: () => {\r\n\t\t\tthis.isDialogHidden = true;\r\n\t\t\twindow.sessionStorage.setItem('pwa-hide-install', 'true');\r\n\t\t\tthis.requestUpdate();\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialogUser = () => {\r\n\t\tUtils.eventUserChoiceResult(this, 'dismissed');\r\n\t\tthis.userChoiceResult = 'dismissed';\r\n\t\tthis.hideDialog();\r\n\t}\r\n\tpublic hideDialog = () => {\r\n\t\tthis._hideDialog.handleEvent();\r\n\t}\r\n\tpublic showDialog = (forced = false) => {\r\n\t\tthis.isDialogHidden = false;\r\n\t\tif (forced)\r\n\t\t\tthis.isInstallAvailable = true;\r\n\t\twindow.sessionStorage.setItem('pwa-hide-install', 'false');\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tpublic getInstalledRelatedApps = async (): Promise => {\r\n\t\treturn await Utils.getInstalledRelatedApps();\r\n\t}\r\n\r\n\t/** @internal */\r\n\tprivate _howToForApple = {\r\n handleEvent: () => {\r\n\t\t\tthis._howToRequested = !this._howToRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._galleryRequested = false;\r\n\t\t\tthis.requestUpdate();\r\n\r\n\t\t\tif (this._howToRequested) {\r\n\t\t\t\tUtils.eventInstallHowTo(this);\r\n\t\t\t\t\r\n\t\t\t\t// Looks like it's not needed anymore\r\n\t\t\t\t// if (this._manifest.start_url){\r\n\t\t\t\t// \ttry {\r\n\t\t\t\t// \t\thistory.replaceState({}, '', this._manifest.start_url);\r\n\t\t\t\t// \t} catch (e) {}\r\n\t\t\t\t// }\r\n\t\t\t}\t\t\t\t\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate _toggleGallery = {\r\n handleEvent: () => {\r\n\t\t\tthis._galleryRequested = !this._galleryRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._howToRequested = false;\r\n\r\n\t\t\tthis._galleryRequested && Utils.eventGallery(this);\r\n\r\n\t\t\tthis.requestUpdate();\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate async _checkInstalled() {\r\n\t\tthis.isUnderStandaloneMode = Utils.isStandalone();\r\n\t\tthis.isRelatedAppsInstalled = await Utils.isRelatedAppsInstalled();\r\n\t\tthis.isAppleMobilePlatform = Utils.isAppleMobile();\r\n\t\tthis.isAppleDesktopPlatform = Utils.isAppleDesktop();\r\n\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tif (!this.isUnderStandaloneMode) {\r\n\t\t\t\tthis.manualApple && this.hideDialog();\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1000\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.manualChrome && this.hideDialog();\r\n\t\t}\r\n\t}\r\n\t/** @internal */\r\n\tprivate _init = async () => {\r\n\t\twindow.defferedPromptEvent = null;\r\n\r\n\t\tthis._checkInstalled();\r\n\r\n\t\tif (!this.disableChrome) {\r\n\t\t\tconst _promptHandler = (e: BeforeInstallPromptEvent) => {\r\n\t\t\t\twindow.defferedPromptEvent = e;\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.platforms = e.platforms;\r\n\r\n\t\t\t\tif (this.isRelatedAppsInstalled || this.isUnderStandaloneMode) {\r\n\t\t\t\t\tthis.isInstallAvailable = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.userChoiceResult === 'accepted'){\r\n\t\t\t\t\tthis.isDialogHidden = true;\r\n\t\t\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t}\r\n\t\t\tif (this.externalPromptEvent != null)\r\n\t\t\t\tsetTimeout(() => _promptHandler(this.externalPromptEvent!), 300);\r\n\t\t\telse\r\n\t\t\t\twindow.addEventListener('beforeinstallprompt', _promptHandler);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('appinstalled', (e) => {\r\n\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\tthis.isInstallAvailable = false;\r\n\r\n\t\t\tthis.requestUpdate();\r\n\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t});\r\n\r\n\r\n\t\ttry{\r\n\t\t\tconst _response = await fetch(this.manifestUrl);\r\n\t\t\tconst _json = await _response.json() as WebAppManifest;\r\n\t\t\tif (!_response.ok || !_json || !Object.keys(_json))\r\n\t\t\t\tthrow new Error('Manifest not found');\r\n\t\t\tUtils.normalizeManifestAssetUrls(_json, this.manifestUrl);\r\n\t\t\t\r\n\t\t\tthis.icon = this.icon || _json.icons?.length ? _json.icons![0].src : '';\r\n\t\t\tthis.name = this.name || _json['short_name'] || _json.name || '';\r\n\t\t\tthis.description = this.description || _json.description || '';\r\n\t\t\tthis._manifest = _json;\r\n\t\t}\r\n\t\tcatch(e) {\r\n\t\t\tthis.icon = this.icon || this._manifest.icons?.[0].src || '';\r\n\t\t\tthis.name = this.name || this._manifest['short_name'] || '';\r\n\t\t\tthis.description = this.description || this._manifest.description || '';\r\n\t\t}\r\n\t};\r\n\t/** @internal */\r\n\tprivate _requestUpdate = () => {\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tchangeLocale(navigator.language);\r\n\t\tthis._init();\r\n\t\tPWAGalleryElement.finalized;\r\n\t\tPWABottomSheetElement.finalized;\r\n\t\tsuper.connectedCallback();\r\n\t}\r\n\twillUpdate(changedProperties: PropertyValues) {\r\n\t\tif (this.externalPromptEvent && changedProperties.has('externalPromptEvent') && typeof this.externalPromptEvent == 'object') {\r\n\t\t this._init();\r\n\t\t}\r\n\t}\r\n\r\n\t// firstUpdated() {\r\n\t// \treturn;\r\n\t// }\r\n\r\n\trender() {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform)\r\n\t\t\treturn html`${templateApple(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsApple,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._howToForApple,\r\n\t\t\t\tthis.isAppleDesktopPlatform,\r\n\t\t\t\tthis._howToRequested,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t\telse\r\n\t\t\treturn html`${template(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsChrome,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._install,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t}\r\n}\r\n\r\nexport { PWAInstallAttributes };\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { updateWhenLocaleChanges } from './localized-controller.js';\n/**\n * Class decorator to enable re-rendering the given LitElement whenever a new\n * active locale has loaded.\n *\n * See also {@link updateWhenLocaleChanges} for the same functionality without\n * the use of decorators.\n *\n * When using lit-localize in transform mode, applications of this decorator are\n * removed.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {customElement} from 'lit/decorators.js';\n * import {msg, localized} from '@lit/localize';\n *\n * @localized()\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nexport const localized = () => (clazz, _context) => {\n clazz.addInitializer(updateWhenLocaleChanges);\n return clazz;\n};\n//# sourceMappingURL=localized-decorator.js.map"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","y","x","d","__WEBPACK_EXTERNAL_MODULE_lit__","joinStringsAndValues","strings","values","valueOrder","concat","i","length","defaultMsg","template","isStrTagged","val","msg","installed","LOCALE_STATUS_EVENT","LocalizeController","constructor","host","this","__litLocalizeEventHandler","event","detail","status","requestUpdate","hostConnected","window","addEventListener","hostDisconnected","removeEventListener","updateWhenLocaleChanges","addController","Deferred","settled","promise","Promise","resolve","reject","_resolve","_reject","error","hl","toString","HASH_DELIMITER","HTML_PREFIX","STRING_PREFIX","generateMsgId","isHtmlTagged","str","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","fnv1a64","join","expressionOrders","WeakMap","hashCache","Map","runtimeMsg","templates","options","id","undefined","set","generateId","localized","order","map","dispatchStatusEvent","dispatchEvent","CustomEvent","loadingLocale","sourceLocale","validLocales","loadLocale","activeLocale","loading","requestId","getLocale","setLocale","newLocale","Error","has","thisRequestId","then","mod","readyLocale","err","errorLocale","errorMessage","__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__","targetLocales","localizedTemplates","config","async","lang","impl","_installMsgImplementation","Set","add","Manifest","icons","src","screenshots","short_name","name","description","css","theme","scrollToNextPage","scrollToPrevPage","html","PWAGalleryElement","LitElement","calcScrollSize","gallery","shadowRoot","querySelector","gallery_scroller","gallery_items","Array","from","querySelectorAll","gallery_item","find","item","offsetWidth","offsetLeft","scrollLeft","scroller","_tools","nextElementSibling","scrollTo","top","left","clientWidth","behavior","previousElementSibling","_init","styles","firstUpdated","setTimeout","connectedCallback","super","render","property","customElement","icon","install","_eventDispatcher","_element","message","Utils","isAppleMobile","includes","navigator","platform","userAgent","match","maxTouchPoints","isAppleDesktop","toLowerCase","version","exec","parseInt","audioCheck","document","createElement","canPlayType","webGLCheck","OffscreenCanvas","getContext","isStandalone","matchMedia","matches","standalone","getInstalledRelatedApps","relatedApps","e","isRelatedAppsInstalled","eventInstalledSuccess","eventInstalledFail","eventUserChoiceResult","eventInstallAvailable","eventInstallHowTo","eventGallery","normalizeManifestAssetUrls","manifest","manifestUrl","normalizedManifestUrl","URL","location","href","forEach","asset","PWABottomSheetElement","props","handleEvent","hideDialog","disableClose","_callInstall","_callHide","setupAppearence","bindedElement","_saveBodyStyle","body","style","overscrollBehaviorY","dragMobileSheet","element","touchTargetElement","infoElement","dragOffset","bottomSize","clientHeight","getYCoord","clientY","changedTouches","dragMouseDown","dragMouseUp","dragMouseMove","getBoundingClientRect","innerHeight","closeDragElement","getRootNode","currentY","setProperty","toPoint","innerWidth","passive","MouseEvent","touchElement","listener","parentElement","getElementsByClassName","createRenderRoot","type","__WEBPACK_EXTERNAL_MODULE_lit_directives_class_map_js_2f88e643__","installDescription","disableDescription","disableScreenshots","installAvailable","toggleGallery","galleryRequested","installDialogClasses","available","screenshotsAvailable","howToForApple","isDesktop","howToRequested","desktop","PWAInstallElement","disableScreenshotsApple","disableScreenshotsChrome","manualApple","manualChrome","disableChrome","externalPromptEvent","platforms","userChoiceResult","isDialogHidden","JSON","parse","sessionStorage","getItem","isInstallAvailable","isAppleMobilePlatform","isAppleDesktopPlatform","isUnderStandaloneMode","_manifest","_howToRequested","_galleryRequested","_install","defferedPromptEvent","prompt","userChoice","choiceResult","outcome","catch","_hideDialog","setItem","_hideDialogUser","showDialog","forced","_howToForApple","_toggleGallery","_checkInstalled","_promptHandler","preventDefault","_response","fetch","_json","json","ok","keys","_requestUpdate","slice","changeLocale","language","finalized","willUpdate","changedProperties","attribute","Boolean","state","clazz","_context","addInitializer"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/react-legacy/pwa-install.react-legacy.js b/dist/react-legacy/pwa-install.react-legacy.js index d338b6f..6eb0dab 100644 --- a/dist/react-legacy/pwa-install.react-legacy.js +++ b/dist/react-legacy/pwa-install.react-legacy.js @@ -1,2 +1,2 @@ -import*as e from"lit";import*as t from"lit/decorators.js";import*as a from"lit/directives/class-map.js";import*as l from"react";var i={d:(e,t)=>{for(var a in t)i.o(t,a)&&!i.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};i.d(o,{A:()=>Xe});var s={};i.r(s),i.d(s,{templates:()=>ae});var n={};i.r(n),i.d(n,{templates:()=>le});var r={};i.r(r),i.d(r,{templates:()=>ie});var d={};i.r(d),i.d(d,{templates:()=>oe});var c={};i.r(c),i.d(c,{templates:()=>se});var p={};i.r(p),i.d(p,{templates:()=>ne});var b={};i.r(b),i.d(b,{templates:()=>re});var g={};i.r(g),i.d(g,{templates:()=>de});var h={};i.r(h),i.d(h,{templates:()=>ce});var m={};i.r(m),i.d(m,{templates:()=>pe});var f={};i.r(f),i.d(f,{templates:()=>be});var u={};i.r(u),i.d(u,{templates:()=>ge});var v={};i.r(v),i.d(v,{templates:()=>he});var w={};i.r(w),i.d(w,{templates:()=>me});var y={};i.r(y),i.d(y,{templates:()=>fe});var x={};i.r(x),i.d(x,{templates:()=>ue});var k={};i.r(k),i.d(k,{templates:()=>ve});var D={};i.r(D),i.d(D,{templates:()=>we});var A={};i.r(A),i.d(A,{templates:()=>ye});var E={};i.r(E),i.d(E,{templates:()=>xe});const j=(e=>{var t={};return i.d(t,e),t})({LitElement:()=>e.LitElement,css:()=>e.css,html:()=>e.html}),S=(e,t,a)=>{let l=e[0];for(let i=1;i{return"string"!=typeof(t=e)&&"strTag"in t?S(e.strings,e.values):e;var t},_="lit-localize-status";class P{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(_,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(_,this.__litLocalizeEventHandler)}}const L=e=>e.addController(new P(e));class I{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const $=[];for(let e=0;e<256;e++)$[e]=(e>>4&15).toString(16)+(15&e).toString(16);const C="",R="h",M="s";function T(e,t){return(t?R:M)+function(e){let t=0,a=8997,l=0,i=33826,o=0,s=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,o+=l>>>16,i=65535&l,r=n+(o>>>16)&65535,s=65535&o;return $[r>>8]+$[255&r]+$[s>>8]+$[255&s]+$[i>>8]+$[255&i]+$[a>>8]+$[255&a]}("string"==typeof e?e:e.join(C))}const H=new WeakMap,O=new Map;function U(e,t,a){if(e){const l=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=O.get(t);void 0===a&&(a=T(t,"string"!=typeof e&&!("strTag"in e)),O.set(t,a));return a}(t),i=e[l];if(i){if("string"==typeof i)return i;if("strTag"in i)return S(i.strings,t.values,i.values);{let e=H.get(i);return void 0===e&&(e=i.values,H.set(i,e)),{...i,values:e.map((e=>t.values[e]))}}}}return z(t)}function B(e){window.dispatchEvent(new CustomEvent(_,{detail:e}))}let q,N,Y,Z,W,F="",G=new I;G.resolve();let V=0;const J=()=>F,K=e=>{if(e===(q??F))return G.promise;if(!Y||!Z)throw Error("Internal error");if(!Y.has(e))throw Error("Invalid locale code");V++;const t=V;q=e,G.settled&&(G=new I),B({status:"loading",loadingLocale:e});return(e===N?Promise.resolve({templates:void 0}):Z(e)).then((a=>{V===t&&(F=e,q=void 0,W=a.templates,B({status:"ready",readyLocale:e}),G.resolve())}),(a=>{V===t&&(B({status:"error",errorLocale:e,errorMessage:a.toString()}),G.reject(a))})),G.promise};let Q=z,X=!1;const ee=(e=>{var t={};return i.d(t,e),t})({customElement:()=>t.customElement,property:()=>t.property,state:()=>t.state}),te=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],ae={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},le={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},ie={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},oe={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},se={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},ne={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},re={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},de={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},ce={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},pe={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},be={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},ge={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击加入主画面",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App加入主画面",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},he={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},me={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},fe={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},ue={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},ve={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},we={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},ye={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},xe={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},ke=new Map([["ru",s],["tr",n],["de",r],["es",d],["nl",c],["el",p],["fr",b],["sr",g],["pl",h],["uk",m],["zh",f],["zh-CN",u],["it",v],["cs",w],["no",y],["pt",x],["ja",k],["sv",D],["ko",A],["km",E]]),{getLocale:De,setLocale:Ae}=(Ee={sourceLocale:"en",targetLocales:te,loadLocale:async e=>ke.get(e)},function(e){if(X)throw Error("lit-localize can only be configured once");Q=e,X=!0}(((e,t)=>U(W,e,t))),F=N=Ee.sourceLocale,Y=new Set(Ee.targetLocales),Y.add(Ee.sourceLocale),Z=Ee.loadLocale,{getLocale:J,setLocale:K});var Ee;class je{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const Se=j.css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,ze=(e,t,a,l)=>j.html`${e?j.html``:""}`;var _e=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Pe=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Le=class extends j.LitElement{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const l=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return l?{scroller:t,item:l}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return Se}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return j.html`${ze(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};_e([(0,ee.property)(),Pe("design:type",Object)],Le.prototype,"screenshots",void 0),_e([(0,ee.property)(),Pe("design:type",String)],Le.prototype,"theme",void 0),Le=_e([(0,ee.customElement)("pwa-gallery")],Le);const Ie=Le,$e=(e,t,a,l)=>j.html`
icon
${location.hostname}
${t?j.html`
${t}
`:""}`,Ce=(e,t,a)=>{const l=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(l)};class Re{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),l=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&l}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Ce(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Ce(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Ce(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Ce(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Ce(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Ce(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var Me=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Te=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let He=class extends j.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let l=0;const i=t.clientHeight+a.clientHeight,o=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),s=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),l=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&o(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-o(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Re.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-i-35)},r=t=>{const a=o(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+l||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-l}px)`))},d=(a,l,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!l&&o(a)>=window.innerHeight-i?e.style.setProperty("--translateY",`translateY(calc(100vh - ${i}px))`):e.style.setProperty("--translateY",`translateY(${(l||o(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",s),t.removeEventListener("touchstart",s),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",s),t.addEventListener("touchstart",s,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-i-35),{touchElement:t,listener:s}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return j.html`${$e(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};Me([(0,ee.property)({type:Object}),Te("design:type",Object)],He.prototype,"props",void 0),Me([(0,ee.property)({type:Object}),Te("design:type",Object)],He.prototype,"install",void 0),Me([(0,ee.property)(),Te("design:type",Object)],He.prototype,"hideDialog",void 0),Me([(0,ee.property)(),Te("design:type",Object)],He.prototype,"disableClose",void 0),He=Me([(0,ee.customElement)("pwa-bottom-sheet")],He);const Oe=He,Ue=j.css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Be=j.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;const qe=(e=>{var t={};return i.d(t,e),t})({classMap:()=>a.classMap}),Ne=(e,t,a,l,i,o,s,n,r,d,c,p,b)=>{const g=()=>({available:r,gallery:b}),h=!i&&n.screenshots&&n.screenshots.length;return j.html`
icon
${o?"":j.html``}
${location.hostname}
${t?j.html`
${t}
`:""} ${l?"":j.html`
${a||`${Q("This site has app functionality.")} ${Q("Install it on your device for extensive experience and easy access.")}`}
`} ${h?j.html``:""}
${h?j.html``:""}
${h?j.html``:""}
`},Ye=(e,t,a,l,i,o,s,n,r,d,c,p,b,g,h)=>{const m=!i&&n.screenshots&&n.screenshots.length;return j.html``};var Ze=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},We=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Fe=class extends j.LitElement{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new je,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Re.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Re.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Re.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Re.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Re.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Re.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Re.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Re.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Re.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Re.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Ue,Be]}async _checkInstalled(){this.isUnderStandaloneMode=Re.isStandalone(),this.isRelatedAppsInstalled=await Re.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Re.isAppleMobile(),this.isAppleDesktopPlatform=Re.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Re.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e&&(e="no");try{ke.get(e)?Ae(e):Ae(e.slice(0,2))}catch{}})(navigator.language),this._init(),Ie.finalized,Oe.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?j.html`${Ye(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:j.html`${Ne(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};Ze([(0,ee.property)({attribute:"manifest-url"}),We("design:type",Object)],Fe.prototype,"manifestUrl",void 0),Ze([(0,ee.property)(),We("design:type",Object)],Fe.prototype,"icon",void 0),Ze([(0,ee.property)(),We("design:type",Object)],Fe.prototype,"name",void 0),Ze([(0,ee.property)(),We("design:type",Object)],Fe.prototype,"description",void 0),Ze([(0,ee.property)({attribute:"install-description"}),We("design:type",Object)],Fe.prototype,"installDescription",void 0),Ze([(0,ee.property)({attribute:"disable-install-description",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableDescription",void 0),Ze([(0,ee.property)({attribute:"disable-screenshots",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableScreenshots",void 0),Ze([(0,ee.property)({attribute:"disable-screenshots-apple",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableScreenshotsApple",void 0),Ze([(0,ee.property)({attribute:"disable-screenshots-chrome",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableScreenshotsChrome",void 0),Ze([(0,ee.property)({attribute:"manual-apple",type:Boolean}),We("design:type",Object)],Fe.prototype,"manualApple",void 0),Ze([(0,ee.property)({attribute:"manual-chrome",type:Boolean}),We("design:type",Object)],Fe.prototype,"manualChrome",void 0),Ze([(0,ee.property)({attribute:"disable-chrome",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableChrome",void 0),Ze([(0,ee.property)({attribute:"disable-close",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableClose",void 0),Ze([(0,ee.state)(),We("design:type",Object)],Fe.prototype,"externalPromptEvent",void 0),Fe=Ze([(e,t)=>(e.addInitializer(L),e),(0,ee.customElement)("pwa-install")],Fe);const Ge=new Set(["children","localName","ref","style","className"]),Ve=new WeakMap,Je=(e,t,a,l,i)=>{const o=i?.[t];void 0===o?(e[t]=a,null==a&&t in HTMLElement.prototype&&e.removeAttribute(t)):a!==l&&((e,t,a)=>{let l=Ve.get(e);void 0===l&&Ve.set(e,l=new Map);let i=l.get(t);void 0!==a?void 0===i?(l.set(t,i={handleEvent:a}),e.addEventListener(t,i)):i.handleEvent=a:void 0!==i&&(l.delete(t),e.removeEventListener(t,i))})(e,o,a)};const Ke=(e=>{var t={};return i.d(t,e),t})({default:()=>l.default}),Qe=(({react:e,tagName:t,elementClass:a,events:l,displayName:i})=>{const o=new Set(Object.keys(l??{})),s=e.forwardRef(((i,s)=>{const n=e.useRef(new Map),r=e.useRef(null),d={},c={};for(const[e,t]of Object.entries(i))Ge.has(e)?d["className"===e?"class":e]=t:o.has(e)||e in a.prototype?c[e]=t:d[e]=t;return e.useLayoutEffect((()=>{if(null===r.current)return;const e=new Map;for(const t in c)Je(r.current,t,i[t],n.current.get(t),l),n.current.delete(t),e.set(t,i[t]);for(const[e,t]of n.current)Je(r.current,e,void 0,t,l);n.current=e})),e.useLayoutEffect((()=>{r.current?.removeAttribute("defer-hydration")}),[]),d.suppressHydrationWarning=!0,e.createElement(t,{...d,ref:e.useCallback((e=>{r.current=e,"function"==typeof s?s(e):null!==s&&(s.current=e)}),[s])})}));return s.displayName=i??a.name,s})({react:Ke.default,tagName:"pwa-install",elementClass:Fe,events:{onPwaInstallSuccessEvent:"pwa-install-success-event",onPwaInstallFailEvent:"pwa-install-fail-event",onPwaUserChoiceResultEvent:"pwa-user-choice-result-event",onPwaInstallAvailableEvent:"pwa-install-available-event",onPwaInstallHowToEvent:"pwa-install-how-to-event",onPwaInstallGalleryEvent:"pwa-install-gallery-event"}}),Xe=Qe;var et=o.A;export{et as default}; +import*as e from"lit";import*as t from"lit/decorators.js";import*as a from"lit/directives/class-map.js";import*as l from"react";var i={d:(e,t)=>{for(var a in t)i.o(t,a)&&!i.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},o={};i.d(o,{A:()=>Xe});var s={};i.r(s),i.d(s,{templates:()=>ae});var n={};i.r(n),i.d(n,{templates:()=>le});var r={};i.r(r),i.d(r,{templates:()=>ie});var d={};i.r(d),i.d(d,{templates:()=>oe});var c={};i.r(c),i.d(c,{templates:()=>se});var p={};i.r(p),i.d(p,{templates:()=>ne});var b={};i.r(b),i.d(b,{templates:()=>re});var g={};i.r(g),i.d(g,{templates:()=>de});var h={};i.r(h),i.d(h,{templates:()=>ce});var m={};i.r(m),i.d(m,{templates:()=>pe});var f={};i.r(f),i.d(f,{templates:()=>be});var u={};i.r(u),i.d(u,{templates:()=>ge});var v={};i.r(v),i.d(v,{templates:()=>he});var w={};i.r(w),i.d(w,{templates:()=>me});var y={};i.r(y),i.d(y,{templates:()=>fe});var x={};i.r(x),i.d(x,{templates:()=>ue});var k={};i.r(k),i.d(k,{templates:()=>ve});var D={};i.r(D),i.d(D,{templates:()=>we});var A={};i.r(A),i.d(A,{templates:()=>ye});var E={};i.r(E),i.d(E,{templates:()=>xe});const j=(e=>{var t={};return i.d(t,e),t})({LitElement:()=>e.LitElement,css:()=>e.css,html:()=>e.html}),S=(e,t,a)=>{let l=e[0];for(let i=1;i{return"string"!=typeof(t=e)&&"strTag"in t?S(e.strings,e.values):e;var t};let _=z,P=!1;const L="lit-localize-status";class I{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(L,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(L,this.__litLocalizeEventHandler)}}const $=e=>e.addController(new I(e));class C{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const R=[];for(let e=0;e<256;e++)R[e]=(e>>4&15).toString(16)+(15&e).toString(16);const M="",T="h",H="s";function O(e,t){return(t?T:H)+function(e){let t=0,a=8997,l=0,i=33826,o=0,s=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,o+=l>>>16,i=65535&l,r=n+(o>>>16)&65535,s=65535&o;return R[r>>8]+R[255&r]+R[s>>8]+R[255&s]+R[i>>8]+R[255&i]+R[a>>8]+R[255&a]}("string"==typeof e?e:e.join(M))}const U=new WeakMap,B=new Map;function q(e,t,a){if(e){const l=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=B.get(t);void 0===a&&(a=O(t,"string"!=typeof e&&!("strTag"in e)),B.set(t,a));return a}(t),i=e[l];if(i){if("string"==typeof i)return i;if("strTag"in i)return S(i.strings,t.values,i.values);{let e=U.get(i);return void 0===e&&(e=i.values,U.set(i,e)),{...i,values:e.map((e=>t.values[e]))}}}}return z(t)}function N(e){window.dispatchEvent(new CustomEvent(L,{detail:e}))}let Y,Z,W,F,G,V="",J=new C;J.resolve();let K=0;const Q=()=>V,X=e=>{if(e===(Y??V))return J.promise;if(!W||!F)throw Error("Internal error");if(!W.has(e))throw Error("Invalid locale code");K++;const t=K;Y=e,J.settled&&(J=new C),N({status:"loading",loadingLocale:e});return(e===Z?Promise.resolve({templates:void 0}):F(e)).then((a=>{K===t&&(V=e,Y=void 0,G=a.templates,N({status:"ready",readyLocale:e}),J.resolve())}),(a=>{K===t&&(N({status:"error",errorLocale:e,errorMessage:a.toString()}),J.reject(a))})),J.promise};const ee=(e=>{var t={};return i.d(t,e),t})({customElement:()=>t.customElement,property:()=>t.property,state:()=>t.state}),te=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],ae={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},le={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},ie={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},oe={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},se={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},ne={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},re={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},de={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},ce={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},pe={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},be={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},ge={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击添加到主屏幕",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App添加到主屏幕",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},he={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},me={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},fe={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},ue={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},ve={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},we={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},ye={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},xe={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},ke=new Map([["ru",s],["tr",n],["de",r],["es",d],["nl",c],["el",p],["fr",b],["sr",g],["pl",h],["uk",m],["zh",f],["zh-CN",u],["it",v],["cs",w],["no",y],["pt",x],["ja",k],["sv",D],["ko",A],["km",E]]),{getLocale:De,setLocale:Ae}=(Ee={sourceLocale:"en",targetLocales:te,loadLocale:async e=>ke.get(e)},function(e){if(P)throw Error("lit-localize can only be configured once");_=e,P=!0}(((e,t)=>q(G,e,t))),V=Z=Ee.sourceLocale,W=new Set(Ee.targetLocales),W.add(Ee.sourceLocale),F=Ee.loadLocale,{getLocale:Q,setLocale:X});var Ee;class je{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const Se=j.css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,ze=(e,t,a,l)=>j.html`${e?j.html``:""}`;var _e=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Pe=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Le=class extends j.LitElement{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const l=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return l?{scroller:t,item:l}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return Se}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return j.html`${ze(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};_e([(0,ee.property)(),Pe("design:type",Object)],Le.prototype,"screenshots",void 0),_e([(0,ee.property)(),Pe("design:type",String)],Le.prototype,"theme",void 0),Le=_e([(0,ee.customElement)("pwa-gallery")],Le);const Ie=Le,$e=(e,t,a,l)=>j.html`
icon
${location.hostname}
${t?j.html`
${t}
`:""}`,Ce=(e,t,a)=>{const l=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(l)};class Re{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),l=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&l}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Ce(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Ce(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Ce(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Ce(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Ce(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Ce(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var Me=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Te=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let He=class extends j.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let l=0;const i=t.clientHeight+a.clientHeight,o=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),s=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),l=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&o(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-o(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Re.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-i-35)},r=t=>{const a=o(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+l||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-l}px)`))},d=(a,l,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!l&&o(a)>=window.innerHeight-i?e.style.setProperty("--translateY",`translateY(calc(100vh - ${i}px))`):e.style.setProperty("--translateY",`translateY(${(l||o(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",s),t.removeEventListener("touchstart",s),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",s),t.addEventListener("touchstart",s,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-i-35),{touchElement:t,listener:s}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return j.html`${$e(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};Me([(0,ee.property)({type:Object}),Te("design:type",Object)],He.prototype,"props",void 0),Me([(0,ee.property)({type:Object}),Te("design:type",Object)],He.prototype,"install",void 0),Me([(0,ee.property)(),Te("design:type",Object)],He.prototype,"hideDialog",void 0),Me([(0,ee.property)(),Te("design:type",Object)],He.prototype,"disableClose",void 0),He=Me([(0,ee.customElement)("pwa-bottom-sheet")],He);const Oe=He,Ue=j.css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Be=j.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;const qe=(e=>{var t={};return i.d(t,e),t})({classMap:()=>a.classMap}),Ne=(e,t,a,l,i,o,s,n,r,d,c,p,b)=>{const g=()=>({available:r,gallery:b}),h=!i&&n.screenshots&&n.screenshots.length;return j.html`
icon
${o?"":j.html``}
${location.hostname}
${t?j.html`
${t}
`:""} ${l?"":j.html`
${a||`${_("This site has app functionality.")} ${_("Install it on your device for extensive experience and easy access.")}`}
`} ${h?j.html``:""}
${h?j.html``:""}
${h?j.html``:""}
`},Ye=(e,t,a,l,i,o,s,n,r,d,c,p,b,g,h)=>{const m=!i&&n.screenshots&&n.screenshots.length;return j.html``};var Ze=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},We=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Fe=class extends j.LitElement{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new je,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Re.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Re.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Re.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Re.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Re.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Re.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Re.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Re.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Re.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Re.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Ue,Be]}async _checkInstalled(){this.isUnderStandaloneMode=Re.isStandalone(),this.isRelatedAppsInstalled=await Re.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Re.isAppleMobile(),this.isAppleDesktopPlatform=Re.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Re.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e.slice(0,2)&&(e="no");try{ke.get(e)?Ae(e):Ae(e.slice(0,2))}catch{}})(navigator.language),this._init(),Ie.finalized,Oe.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?j.html`${Ye(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:j.html`${Ne(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};Ze([(0,ee.property)({attribute:"manifest-url"}),We("design:type",Object)],Fe.prototype,"manifestUrl",void 0),Ze([(0,ee.property)(),We("design:type",Object)],Fe.prototype,"icon",void 0),Ze([(0,ee.property)(),We("design:type",Object)],Fe.prototype,"name",void 0),Ze([(0,ee.property)(),We("design:type",Object)],Fe.prototype,"description",void 0),Ze([(0,ee.property)({attribute:"install-description"}),We("design:type",Object)],Fe.prototype,"installDescription",void 0),Ze([(0,ee.property)({attribute:"disable-install-description",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableDescription",void 0),Ze([(0,ee.property)({attribute:"disable-screenshots",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableScreenshots",void 0),Ze([(0,ee.property)({attribute:"disable-screenshots-apple",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableScreenshotsApple",void 0),Ze([(0,ee.property)({attribute:"disable-screenshots-chrome",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableScreenshotsChrome",void 0),Ze([(0,ee.property)({attribute:"manual-apple",type:Boolean}),We("design:type",Object)],Fe.prototype,"manualApple",void 0),Ze([(0,ee.property)({attribute:"manual-chrome",type:Boolean}),We("design:type",Object)],Fe.prototype,"manualChrome",void 0),Ze([(0,ee.property)({attribute:"disable-chrome",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableChrome",void 0),Ze([(0,ee.property)({attribute:"disable-close",type:Boolean}),We("design:type",Object)],Fe.prototype,"disableClose",void 0),Ze([(0,ee.state)(),We("design:type",Object)],Fe.prototype,"externalPromptEvent",void 0),Fe=Ze([(e,t)=>(e.addInitializer($),e),(0,ee.customElement)("pwa-install")],Fe);const Ge=new Set(["children","localName","ref","style","className"]),Ve=new WeakMap,Je=(e,t,a,l,i)=>{const o=i?.[t];void 0===o?(e[t]=a,null==a&&t in HTMLElement.prototype&&e.removeAttribute(t)):a!==l&&((e,t,a)=>{let l=Ve.get(e);void 0===l&&Ve.set(e,l=new Map);let i=l.get(t);void 0!==a?void 0===i?(l.set(t,i={handleEvent:a}),e.addEventListener(t,i)):i.handleEvent=a:void 0!==i&&(l.delete(t),e.removeEventListener(t,i))})(e,o,a)};const Ke=(e=>{var t={};return i.d(t,e),t})({default:()=>l.default}),Qe=(({react:e,tagName:t,elementClass:a,events:l,displayName:i})=>{const o=new Set(Object.keys(l??{})),s=e.forwardRef(((i,s)=>{const n=e.useRef(new Map),r=e.useRef(null),d={},c={};for(const[e,t]of Object.entries(i))Ge.has(e)?d["className"===e?"class":e]=t:o.has(e)||e in a.prototype?c[e]=t:d[e]=t;return e.useLayoutEffect((()=>{if(null===r.current)return;const e=new Map;for(const t in c)Je(r.current,t,i[t],n.current.get(t),l),n.current.delete(t),e.set(t,i[t]);for(const[e,t]of n.current)Je(r.current,e,void 0,t,l);n.current=e})),e.useLayoutEffect((()=>{r.current?.removeAttribute("defer-hydration")}),[]),d.suppressHydrationWarning=!0,e.createElement(t,{...d,ref:e.useCallback((e=>{r.current=e,"function"==typeof s?s(e):null!==s&&(s.current=e)}),[s])})}));return s.displayName=i??a.name,s})({react:Ke.default,tagName:"pwa-install",elementClass:Fe,events:{onPwaInstallSuccessEvent:"pwa-install-success-event",onPwaInstallFailEvent:"pwa-install-fail-event",onPwaUserChoiceResultEvent:"pwa-user-choice-result-event",onPwaInstallAvailableEvent:"pwa-install-available-event",onPwaInstallHowToEvent:"pwa-install-how-to-event",onPwaInstallGalleryEvent:"pwa-install-gallery-event"}}),Xe=Qe;var et=o.A;export{et as default}; //# sourceMappingURL=pwa-install.react-legacy.js.map \ No newline at end of file diff --git a/dist/react-legacy/pwa-install.react-legacy.js.map b/dist/react-legacy/pwa-install.react-legacy.js.map index 097db17..3b5b450 100644 --- a/dist/react-legacy/pwa-install.react-legacy.js.map +++ b/dist/react-legacy/pwa-install.react-legacy.js.map @@ -1 +1 @@ -{"version":3,"file":"pwa-install.react-legacy.js","mappings":"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","sources":["webpack://@khmyznikov/pwa-install/webpack/bootstrap","webpack://@khmyznikov/pwa-install/webpack/runtime/define property getters","webpack://@khmyznikov/pwa-install/webpack/runtime/hasOwnProperty shorthand","webpack://@khmyznikov/pwa-install/webpack/runtime/make namespace object","webpack://@khmyznikov/pwa-install/external module \"lit\"","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/str-tag.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/default-msg.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/locale-status-event.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/localized-controller.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/deferred.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/fnv1a64.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/id-generation.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/runtime-msg.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/init/runtime.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/lit-localize.js","webpack://@khmyznikov/pwa-install/external module \"lit/decorators.js\"","webpack://@khmyznikov/pwa-install/./src/localization/locale-codes.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ru.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/tr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/de.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/es.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/nl.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/el.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/fr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/sr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/pl.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/uk.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/zh.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/zh-CN.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/it.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/cs.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/no.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/pt.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ja.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/sv.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ko.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/km.ts","webpack://@khmyznikov/pwa-install/./src/localization/index.ts","webpack://@khmyznikov/pwa-install/./src/types/types.ts","webpack://@khmyznikov/pwa-install/./src/gallery/styles-gallery.scss","webpack://@khmyznikov/pwa-install/./src/gallery/template-gallery.ts","webpack://@khmyznikov/pwa-install/./src/gallery/index.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/bottom-sheet/template-bottom-sheet.ts","webpack://@khmyznikov/pwa-install/./src/utils.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/bottom-sheet/index.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/styles.scss","webpack://@khmyznikov/pwa-install/./src/templates/apple/styles-apple.scss","webpack://@khmyznikov/pwa-install/external module \"lit/directives/class-map.js\"","webpack://@khmyznikov/pwa-install/./src/templates/chrome/template.ts","webpack://@khmyznikov/pwa-install/./src/templates/apple/template-apple.ts","webpack://@khmyznikov/pwa-install/./src/index.ts","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/localized-decorator.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/react/create-component.js","webpack://@khmyznikov/pwa-install/external module \"react\"","webpack://@khmyznikov/pwa-install/./src/react-legacy/pwa-install.react-legacy.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"LitElement\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.LitElement), [\"css\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.css), [\"html\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.html) });","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Tag that allows expressions to be used in localized non-HTML template\n * strings.\n *\n * Example: msg(str`Hello ${this.user}!`);\n *\n * The Lit html tag can also be used for this purpose, but HTML will need to be\n * escaped, and there is a small overhead for HTML parsing.\n *\n * Untagged template strings with expressions aren't supported by lit-localize\n * because they don't allow for values to be captured at runtime.\n */\nconst _str = (strings, ...values) => ({\n strTag: true,\n strings,\n values,\n});\nexport const str = _str;\nexport const isStrTagged = (val) => typeof val !== 'string' && 'strTag' in val;\n/**\n * Render the result of a `str` tagged template to a string. Note we don't need\n * to do this for Lit templates, since Lit itself handles rendering.\n */\nexport const joinStringsAndValues = (strings, values, valueOrder) => {\n let concat = strings[0];\n for (let i = 1; i < strings.length; i++) {\n concat += values[valueOrder ? valueOrder[i - 1] : i - 1];\n concat += strings[i];\n }\n return concat;\n};\n//# sourceMappingURL=str-tag.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isStrTagged, joinStringsAndValues } from './str-tag.js';\n/**\n * Default identity msg implementation. Simply returns the input template with\n * no awareness of translations. If the template is str-tagged, returns it in\n * string form.\n */\nexport const defaultMsg = ((template) => isStrTagged(template)\n ? joinStringsAndValues(template.strings, template.values)\n : template);\n//# sourceMappingURL=default-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Name of the event dispatched to `window` whenever a locale change starts,\n * finishes successfully, or fails. Only relevant to runtime mode.\n *\n * The `detail` of this event is an object with a `status` string that can be:\n * \"loading\", \"ready\", or \"error\", along with the relevant locale code, and\n * error message if applicable.\n *\n * You can listen for this event to know when your application should be\n * re-rendered following a locale change. See also the Localized mixin, which\n * automatically re-renders LitElement classes using this event.\n */\nexport const LOCALE_STATUS_EVENT = 'lit-localize-status';\n//# sourceMappingURL=locale-status-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { LOCALE_STATUS_EVENT } from './locale-status-event.js';\nclass LocalizeController {\n constructor(host) {\n this.__litLocalizeEventHandler = (event) => {\n if (event.detail.status === 'ready') {\n this.host.requestUpdate();\n }\n };\n this.host = host;\n }\n hostConnected() {\n window.addEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n hostDisconnected() {\n window.removeEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n}\n/**\n * Re-render the given LitElement whenever a new active locale has loaded.\n *\n * See also {@link localized} for the same functionality as a decorator.\n *\n * When using lit-localize in transform mode, calls to this function are\n * replaced with undefined.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {msg, updateWhenLocaleChanges} from '@lit/localize';\n *\n * class MyElement extends LitElement {\n * constructor() {\n * super();\n * updateWhenLocaleChanges(this);\n * }\n *\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nconst _updateWhenLocaleChanges = (host) => host.addController(new LocalizeController(host));\nexport const updateWhenLocaleChanges = _updateWhenLocaleChanges;\n//# sourceMappingURL=localized-controller.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport class Deferred {\n constructor() {\n this.settled = false;\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n resolve(value) {\n this.settled = true;\n this._resolve(value);\n }\n reject(error) {\n this.settled = true;\n this._reject(error);\n }\n}\n//# sourceMappingURL=deferred.js.map","/**\n * @license\n * Copyright 2014 Travis Webb\n * SPDX-License-Identifier: MIT\n */\n// This module is derived from the file:\n// https://github.com/tjwebb/fnv-plus/blob/1e2ce68a07cb7dd4c3c85364f3d8d96c95919474/index.js#L309\n//\n// Changes:\n// - Only the _hash64_1a_fast function is included.\n// - Removed loop unrolling.\n// - Converted to TypeScript ES module.\n// - var -> let/const\n//\n// TODO(aomarks) Upstream improvements to https://github.com/tjwebb/fnv-plus/.\nconst hl = [];\nfor (let i = 0; i < 256; i++) {\n hl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n}\n/**\n * Perform a FNV-1A 64-bit hash of the given string (as UTF-16 code units), and\n * return a hexadecimal digest (left zero padded to 16 characters).\n *\n * @see {@link http://tools.ietf.org/html/draft-eastlake-fnv-06}\n */\nexport function fnv1a64(str) {\n let t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n for (let i = 0; i < str.length; i++) {\n v0 ^= str.charCodeAt(i);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n return (hl[v3 >> 8] +\n hl[v3 & 255] +\n hl[v2 >> 8] +\n hl[v2 & 255] +\n hl[v1 >> 8] +\n hl[v1 & 255] +\n hl[v0 >> 8] +\n hl[v0 & 255]);\n}\n//# sourceMappingURL=fnv1a64.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { fnv1a64 } from './fnv1a64.js';\n/**\n * Delimiter used between each template string component before hashing. Used to\n * prevent e.g. \"foobar\" and \"foo${baz}bar\" from sharing a hash.\n *\n * This is the \"record separator\" ASCII character.\n */\nexport const HASH_DELIMITER = '\\x1e';\n/**\n * Id prefix on html-tagged templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst HTML_PREFIX = 'h';\n/**\n * Id prefix on plain string templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst STRING_PREFIX = 's';\n/**\n * Generate a unique ID for a lit-localize message.\n *\n * Example:\n * Template: html`Hello ${who}!`\n * Params: [\"Hello \", \"!\"], true\n * Output: h82ccc38d4d46eaa9\n *\n * The ID is constructed as:\n *\n * [0] Kind of template: [h]tml or [s]tring.\n * [1,16] 64-bit FNV-1a hash hex digest of the template strings, as UTF-16\n * code points, delineated by an ASCII \"record separator\" character.\n *\n * We choose FNV-1a because:\n *\n * 1. It's pretty fast (e.g. much faster than SHA-1).\n * 2. It's pretty small (0.25 KiB minified + brotli).\n * 3. We don't require cryptographic security, and 64 bits should give\n * sufficient collision resistance for any one application. Worst\n * case, we will always detect collisions during analysis.\n * 4. We can't use Web Crypto API (e.g. SHA-1), because it's asynchronous.\n * 5. It's a well known non-cryptographic hash with implementations in many\n * languages.\n * 6. There was an existing JavaScript implementation that doesn't require\n * BigInt, for IE11 compatibility.\n */\nexport function generateMsgId(strings, isHtmlTagged) {\n return ((isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) +\n fnv1a64(typeof strings === 'string' ? strings : strings.join(HASH_DELIMITER)));\n}\n//# sourceMappingURL=id-generation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './default-msg.js';\nimport { joinStringsAndValues } from './str-tag.js';\nimport { generateMsgId } from './id-generation.js';\nconst expressionOrders = new WeakMap();\nconst hashCache = new Map();\nexport function runtimeMsg(templates, template, options) {\n if (templates) {\n const id = options?.id ?? generateId(template);\n const localized = templates[id];\n if (localized) {\n if (typeof localized === 'string') {\n // E.g. \"Hello World!\"\n return localized;\n }\n else if ('strTag' in localized) {\n // E.g. str`Hello ${name}!`\n //\n // Localized templates have ${number} in place of real template\n // expressions. They can't have real template values, because the\n // variable scope would be wrong. The number tells us the index of the\n // source value to substitute in its place, because expressions can be\n // moved to a different position during translation.\n return joinStringsAndValues(localized.strings, \n // Cast `template` because its type wasn't automatically narrowed (but\n // we know it must be the same type as `localized`).\n template.values, localized.values);\n }\n else {\n // E.g. html`Hello ${name}!`\n //\n // We have to keep our own mapping of expression ordering because we do\n // an in-place update of `values`, and otherwise we'd lose ordering for\n // subsequent renders.\n let order = expressionOrders.get(localized);\n if (order === undefined) {\n order = localized.values;\n expressionOrders.set(localized, order);\n }\n return {\n ...localized,\n values: order.map((i) => template.values[i]),\n };\n }\n }\n }\n return defaultMsg(template);\n}\nfunction generateId(template) {\n const strings = typeof template === 'string' ? template : template.strings;\n let id = hashCache.get(strings);\n if (id === undefined) {\n id = generateMsgId(strings, typeof template !== 'string' && !('strTag' in template));\n hashCache.set(strings, id);\n }\n return id;\n}\n//# sourceMappingURL=runtime-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { _installMsgImplementation } from '../lit-localize.js';\nimport { Deferred } from '../internal/deferred.js';\nimport { LOCALE_STATUS_EVENT } from '../internal/locale-status-event.js';\nimport { runtimeMsg } from '../internal/runtime-msg.js';\n/**\n * Dispatch a \"lit-localize-status\" event to `window` with the given detail.\n */\nfunction dispatchStatusEvent(detail) {\n window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));\n}\nlet activeLocale = '';\nlet loadingLocale;\nlet sourceLocale;\nlet validLocales;\nlet loadLocale;\nlet templates;\nlet loading = new Deferred();\n// The loading promise must be initially resolved, because that's what we should\n// return if the user immediately calls setLocale(sourceLocale).\nloading.resolve();\nlet requestId = 0;\n/**\n * Set configuration parameters for lit-localize when in runtime mode. Returns\n * an object with functions:\n *\n * - `getLocale`: Return the active locale code.\n * - `setLocale`: Set the active locale code.\n *\n * Throws if called more than once.\n */\nexport const configureLocalization = (config) => {\n _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));\n activeLocale = sourceLocale = config.sourceLocale;\n validLocales = new Set(config.targetLocales);\n validLocales.add(config.sourceLocale);\n loadLocale = config.loadLocale;\n return { getLocale, setLocale };\n};\n/**\n * Return the active locale code.\n */\nconst getLocale = () => {\n return activeLocale;\n};\n/**\n * Set the active locale code, and begin loading templates for that locale using\n * the `loadLocale` function that was passed to `configureLocalization`. Returns\n * a promise that resolves when the next locale is ready to be rendered.\n *\n * Note that if a second call to `setLocale` is made while the first requested\n * locale is still loading, then the second call takes precedence, and the\n * promise returned from the first call will resolve when second locale is\n * ready. If you need to know whether a particular locale was loaded, check\n * `getLocale` after the promise resolves.\n *\n * Throws if the given locale is not contained by the configured `sourceLocale`\n * or `targetLocales`.\n */\nconst setLocale = (newLocale) => {\n if (newLocale === (loadingLocale ?? activeLocale)) {\n return loading.promise;\n }\n if (!validLocales || !loadLocale) {\n throw new Error('Internal error');\n }\n if (!validLocales.has(newLocale)) {\n throw new Error('Invalid locale code');\n }\n requestId++;\n const thisRequestId = requestId;\n loadingLocale = newLocale;\n if (loading.settled) {\n loading = new Deferred();\n }\n dispatchStatusEvent({ status: 'loading', loadingLocale: newLocale });\n const localePromise = newLocale === sourceLocale\n ? // We could switch to the source locale synchronously, but we prefer to\n // queue it on a microtask so that switching locales is consistently\n // asynchronous.\n Promise.resolve({ templates: undefined })\n : loadLocale(newLocale);\n localePromise.then((mod) => {\n if (requestId === thisRequestId) {\n activeLocale = newLocale;\n loadingLocale = undefined;\n templates = mod.templates;\n dispatchStatusEvent({ status: 'ready', readyLocale: newLocale });\n loading.resolve();\n }\n // Else another locale was requested in the meantime. Don't resolve or\n // reject, because the newer load call is going to use the same promise.\n // Note the user can call getLocale() after the promise resolves if they\n // need to check if the locale is still the one they expected to load.\n }, (err) => {\n if (requestId === thisRequestId) {\n dispatchStatusEvent({\n status: 'error',\n errorLocale: newLocale,\n errorMessage: err.toString(),\n });\n loading.reject(err);\n }\n });\n return loading.promise;\n};\n//# sourceMappingURL=runtime.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './internal/default-msg.js';\nexport * from './internal/locale-status-event.js';\nexport * from './internal/str-tag.js';\nexport * from './internal/types.js';\n// TODO(aomarks) In a future breaking version, remove these imports so that the\n// bulk of the code isn't included in bundles by default. In particular imagine\n// the component library use-case where msg() calls are made, but there is no\n// need to actually initialize any of the localization runtime.\nexport * from './internal/localized-controller.js';\nexport * from './internal/localized-decorator.js';\nexport * from './init/runtime.js';\nexport * from './init/transform.js';\n/**\n * Make a string or lit-html template localizable.\n *\n * @param template A string, a lit-html template, or a function that returns\n * either a string or lit-html template.\n * @param options Optional configuration object with the following properties:\n * - id: Optional project-wide unique identifier for this template. If\n * omitted, an id will be automatically generated from the template strings.\n * - desc: Optional description\n */\nexport let msg = defaultMsg;\nlet installed = false;\n/**\n * Internal only. Do not use this function.\n *\n * Installs an implementation of the msg function to replace the default\n * identity function. Throws if called more than once.\n *\n * @internal\n */\nexport function _installMsgImplementation(impl) {\n if (installed) {\n throw new Error('lit-localize can only be configured once');\n }\n msg = impl;\n installed = true;\n}\n//# sourceMappingURL=lit-localize.js.map","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"customElement\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.customElement), [\"property\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.property), [\"state\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.state) });","// Do not modify this file by hand!\n// Re-generate this file by running lit-localize.\n\n/**\n * The locale code that templates in this source code are written in.\n */\nexport const sourceLocale = `en`;\n\n/**\n * The other locale codes that this application is localized into. Sorted\n * lexicographically.\n */\nexport const targetLocales = [\n `cs`,\n `de`,\n `el`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n\n/**\n * All valid project locale codes. Sorted lexicographically.\n */\nexport const allLocales = [\n `cs`,\n `de`,\n `el`,\n `en`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.`,\n's1b9047d53d9f9d22': `2) Нажать \"Поделиться\"`,\n's37a9e8aec5713460': `Подробнее`,\n's5c6aad7a7e4a1437': `3) Нажать \"На экран «Домой»\"`,\n's6196153c4b0c1ea0': `Установить`,\n's922329d6f6213590': `Добавить в Dock`,\n'sa5ef80b4bb9b39f8': `Свернуть`,\n'sa7551383d1897fcc': `2) Нажмите \"Добавить в Dock\"`,\n'sba52286c21552a4e': `Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.`,\n'sc79fd7641eb9a975': `Спрятать Инструкцию`,\n'scdaf4bbff76674c8': `На экран «Домой»`,\n'sdfe23506a3b0cdc8': `1) Открыть в Safari браузере`,\n'se740f75b95a51807': `Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.`,\n'sfea652f6580ff086': `Этот веб-сайт имеет функционал приложения.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.`,\n's1b9047d53d9f9d22': `2) Gezinme çubuğunda Paylaş'a basın`,\n's37a9e8aec5713460': `Daha Fazla`,\n's5c6aad7a7e4a1437': `3) Ana Ekrana Ekle'ye basın`,\n's6196153c4b0c1ea0': `Yükle`,\n's922329d6f6213590': `Dock’a Ekle`,\n'sa5ef80b4bb9b39f8': `Küçült`,\n'sa7551383d1897fcc': `2) Dock’a ekleye basın`,\n'sba52286c21552a4e': `Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.`,\n'sc79fd7641eb9a975': `Talimatları gizle`,\n'scdaf4bbff76674c8': `Ana Ekrana Ekle`,\n'sdfe23506a3b0cdc8': `1) Safari tarayıcısında açın`,\n'se740f75b95a51807': `Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.`,\n'sfea652f6580ff086': `Bu site uygulama işlevselliğine sahiptir.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n's1b9047d53d9f9d22': `2) Drücken Sie auf Teilen in der Navigationsleiste`,\n's37a9e8aec5713460': `Mehr`,\n's5c6aad7a7e4a1437': `3) Drücken Sie Hinzufügen zum Startbildschirm`,\n's6196153c4b0c1ea0': `Installieren`,\n's922329d6f6213590': `Zum Dock hinzufügen`,\n'sa5ef80b4bb9b39f8': `Weniger`,\n'sa7551383d1897fcc': `2) Drücken Sie auf Zum Dock hinzufügen`,\n'sba52286c21552a4e': `Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.`,\n'sc79fd7641eb9a975': `Anleitung ausblenden`,\n'scdaf4bbff76674c8': `Hinzufügen zum Startbildschirm`,\n'sdfe23506a3b0cdc8': `1) In Safari-Browser öffnen`,\n'se740f75b95a51807': `Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n'sfea652f6580ff086': `Diese Website verfügt über App-Funktionalität.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.`,\n's1b9047d53d9f9d22': `2) Presionar Compartir en la barra de direcciones`,\n's37a9e8aec5713460': `Más`,\n's5c6aad7a7e4a1437': `3) Presionar Añadir a pantalla de inicio`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Añadir al Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Presionar Añadir al Dock`,\n'sba52286c21552a4e': `Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.`,\n'sc79fd7641eb9a975': `Esconder instrucciones`,\n'scdaf4bbff76674c8': `Añadir a pantalla de inicio`,\n'sdfe23506a3b0cdc8': `1) Abrir en el navegador web Safari`,\n'se740f75b95a51807': `Añádelo a tu Dock para una experiencia amplia y acceso fácil.`,\n'sfea652f6580ff086': `Este sitio tiene funcionalidad de aplicación.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.`,\n's1b9047d53d9f9d22': `2) Druk op delen in de navigatiebalk`,\n's37a9e8aec5713460': `Meer`,\n's5c6aad7a7e4a1437': `3) Druk op Toevoegen aan het startscherm`,\n's6196153c4b0c1ea0': `Installeren`,\n's922329d6f6213590': `Toevoegen aan Dock`,\n'sa5ef80b4bb9b39f8': `Minder`,\n'sa7551383d1897fcc': `2) Druk op Toevoegen aan Dock`,\n'sba52286c21552a4e': `Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.`,\n'sc79fd7641eb9a975': `Instructie verbergen`,\n'scdaf4bbff76674c8': `Toevoegen aan het startscherm`,\n'sdfe23506a3b0cdc8': `1) Open in Safari-browser`,\n'se740f75b95a51807': `Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.`,\n'sfea652f6580ff086': `Deze site heeft app-functionaliteit.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n's1b9047d53d9f9d22': `2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης`,\n's37a9e8aec5713460': `Περισσότερα`,\n's5c6aad7a7e4a1437': `3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας`,\n's6196153c4b0c1ea0': `Εγκατάσταση`,\n's922329d6f6213590': `Προσθήκη στην Πρόσβαση`,\n'sa5ef80b4bb9b39f8': `Λιγότερα`,\n'sa7551383d1897fcc': `2) Πατήστε Προσθήκη στην Πρόσβαση`,\n'sba52286c21552a4e': `Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sc79fd7641eb9a975': `Απόκρυψη Οδηγιών`,\n'scdaf4bbff76674c8': `Προσθήκη στην Οθόνη Αφετηρίας`,\n'sdfe23506a3b0cdc8': `1) Ανοίξτε τον περιηγητή Safari`,\n'se740f75b95a51807': `Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sfea652f6580ff086': `Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.`,\n's1b9047d53d9f9d22': `2) Appuyez sur Partager dans la barre de navigation`,\n's37a9e8aec5713460': `Plus`,\n's5c6aad7a7e4a1437': `3) Appuyez sur Ajouter à l'écran d'accueil`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Ajouter au Dock`,\n'sa5ef80b4bb9b39f8': `Moins`,\n'sa7551383d1897fcc': `2) Appuyez sur Ajouter au Dock`,\n'sba52286c21552a4e': `Installez-le sur votre appareil pour une expérience complète et un accès facile.`,\n'sc79fd7641eb9a975': `Masquer les instructions`,\n'scdaf4bbff76674c8': `Ajouter à l'écran d'accueil`,\n'sdfe23506a3b0cdc8': `1) Ouvrir dans le navigateur Safari`,\n'se740f75b95a51807': `Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.`,\n'sfea652f6580ff086': `Ce site possède des fonctionnalités d'application.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додајте га на Home Screen за широке могућности и лак приступ.`,\n's1b9047d53d9f9d22': `2) Притисните Share у навигационој траци`,\n's37a9e8aec5713460': `Више`,\n's5c6aad7a7e4a1437': `3) Притисните Add to Home Screen`,\n's6196153c4b0c1ea0': `Инсталирај`,\n'sa5ef80b4bb9b39f8': `Мање`,\n'sa7551383d1897fcc': `3) Притисните Add to Dock`,\n'sba52286c21552a4e': `Инсталирајте га на вашем уређају за широке могућности и лак приступ.`,\n'sc79fd7641eb9a975': `Сакриј упутство`,\n'sdfe23506a3b0cdc8': `1) Отворите у Safari прегледачу`,\n'se740f75b95a51807': `Додајте га у вашу Dock за широке могућности и лак приступ.`,\n'sfea652f6580ff086': `Овај сајт има функционалност апликације.`,\n's922329d6f6213590': `Add to Dock`,\n'scdaf4bbff76674c8': `Add to Home Screen`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n's1b9047d53d9f9d22': `2) Wybierz \"Udostępnij\"`,\n's37a9e8aec5713460': `Więcej`,\n's5c6aad7a7e4a1437': `3) Wybierz \"Dodaj do Ekranu Głównego\"`,\n's6196153c4b0c1ea0': `Zainstaluj`,\n's922329d6f6213590': `Dodaj do Docka`,\n'sa5ef80b4bb9b39f8': `Mniej`,\n'sa7551383d1897fcc': `2) Wybierz \"Dodaj do Docka\"`,\n'sba52286c21552a4e': `Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sc79fd7641eb9a975': `Ukryj instrukcję`,\n'scdaf4bbff76674c8': `Dodaj do Ekranu Głównego`,\n'sdfe23506a3b0cdc8': `1) Otwórz przeglądarkę Safari`,\n'se740f75b95a51807': `Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sfea652f6580ff086': `Ta strona posiada funkcje aplikacji.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додайте на Домашній екран для зручного доступу та ширших можливостей.`,\n's1b9047d53d9f9d22': `2) Натиснути «Поділитися»`,\n's37a9e8aec5713460': `Детальніше`,\n's5c6aad7a7e4a1437': `3) Натиснути «На Початковий екран»`,\n's6196153c4b0c1ea0': `Встановити`,\n's922329d6f6213590': `Додати на Dock`,\n'sa5ef80b4bb9b39f8': `Згорнути`,\n'sa7551383d1897fcc': `2) Натиснути «Додати на Dock»`,\n'sba52286c21552a4e': `Встановіть на ваш пристрій для зручного доступу та ширших можливостей.`,\n'sc79fd7641eb9a975': `Сховати Інструкцію`,\n'scdaf4bbff76674c8': `На Початковий экран`,\n'sdfe23506a3b0cdc8': `1) Відкрити в Safari браузері`,\n'se740f75b95a51807': `Додайте на панель Dock для зручного доступу та ширших можливостей.`,\n'sfea652f6580ff086': `Цей сайт має функції додатку.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。`,\n's1b9047d53d9f9d22': `2) 點擊列表上的分享按鈕`,\n's37a9e8aec5713460': `詳細資訊`,\n's5c6aad7a7e4a1437': `3) 點擊加入主畫面`,\n's6196153c4b0c1ea0': `安裝`,\n's922329d6f6213590': `添加到Dock欄`,\n'sa5ef80b4bb9b39f8': `簡短資訊`,\n'sa7551383d1897fcc': `2) 點選添加到Dock欄`,\n'sba52286c21552a4e': `在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。`,\n'sc79fd7641eb9a975': `隱藏安裝流程`,\n'scdaf4bbff76674c8': `將App加入主畫面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上瀏覽此網頁`,\n'se740f75b95a51807': `將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。`,\n'sfea652f6580ff086': `此網站具有應用程式功能。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`,\n's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`,\n's37a9e8aec5713460': `详细资讯`,\n's5c6aad7a7e4a1437': `3) 点击加入主画面`,\n's6196153c4b0c1ea0': `安装`,\n's922329d6f6213590': `添加到Dock`,\n'sa5ef80b4bb9b39f8': `简短资讯`,\n'sa7551383d1897fcc': `2) 按下添加到Dock`,\n'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`,\n'sc79fd7641eb9a975': `隐藏安装流程`,\n'scdaf4bbff76674c8': `将App加入主画面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`,\n'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`,\n'sfea652f6580ff086': `此网站具备app的功能性。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.`,\n's1b9047d53d9f9d22': `2) Premi Condividi nella barra di navigazione`,\n's37a9e8aec5713460': `Più`,\n's5c6aad7a7e4a1437': `3) Premi Aggiungi alla schermata principale`,\n's6196153c4b0c1ea0': `Installa`,\n's922329d6f6213590': `Aggiungi al Dock`,\n'sa5ef80b4bb9b39f8': `Meno`,\n'sa7551383d1897fcc': `2) Premi Aggiungi al Dock`,\n'sba52286c21552a4e': `Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.`,\n'sc79fd7641eb9a975': `Nascondi istruzioni`,\n'scdaf4bbff76674c8': `Aggiungi alla schermata principale`,\n'sdfe23506a3b0cdc8': `1) Apri nel browser Safari`,\n'se740f75b95a51807': `Aggiungilo al Dock per un'esperienza più completa e un accesso facile.`,\n'sfea652f6580ff086': `Questo sito ha funzionalità di app.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Přidejte jej na plochu pro rozšířené využití a snadný přístup.`,\n's1b9047d53d9f9d22': `2) Stiskněte tlačítko Sdílet na navigačním panelu`,\n's37a9e8aec5713460': `Vice`,\n's5c6aad7a7e4a1437': `3) Stiskněte tlačítko Přidat na plochu`,\n's6196153c4b0c1ea0': `Nainstalovat`,\n's922329d6f6213590': `Přidat do Docku`,\n'sa5ef80b4bb9b39f8': `Méně`,\n'sa7551383d1897fcc': `2) Stiskněte Přidat do Docku`,\n'sba52286c21552a4e': `Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.`,\n'sc79fd7641eb9a975': `Skrýt instrukce`,\n'scdaf4bbff76674c8': `Přidat na plochu`,\n'sdfe23506a3b0cdc8': `1) Otevřete v prohlížeči Safari`,\n'se740f75b95a51807': `Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.`,\n'sfea652f6580ff086': `Tento web má funkce aplikace.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.`,\n's1b9047d53d9f9d22': `2) Trykk på Del-knappen i navigasjonslinjen`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Velg Legg til på Hjem-skjerm`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Legg til i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Velg Legg til i Dock`,\n'sba52286c21552a4e': `Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sc79fd7641eb9a975': `Skjul instruksjoner`,\n'scdaf4bbff76674c8': `Legg til på Hjem-skjerm`,\n'sdfe23506a3b0cdc8': `1) Åpne i Safari`,\n'se740f75b95a51807': `Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sfea652f6580ff086': `Denne siden har app-funksjonalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.`,\n's1b9047d53d9f9d22': `2) Pressione Compartilhar na barra de endereço`,\n's37a9e8aec5713460': `Mais`,\n's5c6aad7a7e4a1437': `3) Pressione Adicionar à Tela de Início`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Adicionar ao Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Pressione Adicionar ao Dock`,\n'sba52286c21552a4e': `Instale no dispositivo para uma melhor experiência e mais fácil acesso.`,\n'sc79fd7641eb9a975': `Ocultar Instruções`,\n'scdaf4bbff76674c8': `Adicionar à Tela de Início`,\n'sdfe23506a3b0cdc8': `1) Abra no navegador Safari`,\n'se740f75b95a51807': `Adicione ao Dock para uma melhor experiência e mais fácil acesso.`,\n'sfea652f6580ff086': `Este site possui funcionalidade de aplicativo.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。`,\n's1b9047d53d9f9d22': `2) ナビゲーションバーで共有を押す`,\n's37a9e8aec5713460': `展開`,\n's5c6aad7a7e4a1437': `3) 「ホーム画面に追加」を押す`,\n's6196153c4b0c1ea0': `インストール`,\n's922329d6f6213590': `Dockに追加`,\n'sa5ef80b4bb9b39f8': `折りたたむ`,\n'sa7551383d1897fcc': `2) 「Dockに追加」を押す`,\n'sba52286c21552a4e': `デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。`,\n'sc79fd7641eb9a975': `説明を非表示`,\n'scdaf4bbff76674c8': `ホーム画面に追加`,\n'sdfe23506a3b0cdc8': `1) Safariで開く`,\n'se740f75b95a51807': `ドックに追加して、幅広い体験と簡単なアクセスを実現してください。`,\n'sfea652f6580ff086': `このサイトはアプリ機能があります。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.`,\n's1b9047d53d9f9d22': `2) Tryck på Dela-knappen i verktygsfältet`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Välj Lägg till på hemskärmen`,\n's6196153c4b0c1ea0': `Installera`,\n's922329d6f6213590': `Lägg till i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Välj Lägg till i Dock`,\n'sba52286c21552a4e': `Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sc79fd7641eb9a975': `Göm instruktioner`,\n'scdaf4bbff76674c8': `Lägg till på hemskärmen`,\n'sdfe23506a3b0cdc8': `1) Öppna i Safari`,\n'se740f75b95a51807': `Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sfea652f6580ff086': `Denna webbsajt har app-funktionalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.`,\n's1b9047d53d9f9d22': `2) 내비게이션 바에서 공유 버튼 누르기`,\n's37a9e8aec5713460': `더보기`,\n's5c6aad7a7e4a1437': `3) 홈 화면에 추가 버튼 누르기`,\n's6196153c4b0c1ea0': `설치`,\n's922329d6f6213590': `Dock에 추가`,\n'sa5ef80b4bb9b39f8': `닫기`,\n'sa7551383d1897fcc': `2) Dock에 추가 버튼 누르기`,\n'sba52286c21552a4e': `더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.`,\n'sc79fd7641eb9a975': `안내 숨기기`,\n'scdaf4bbff76674c8': `홈 화면에 추가`,\n'sdfe23506a3b0cdc8': `1) Safari 브라우저에서 열기`,\n'se740f75b95a51807': `더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.`,\n'sfea652f6580ff086': `이 사이트는 앱 기능을 가지고 있습니다.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n's1b9047d53d9f9d22': `2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ`,\n's37a9e8aec5713460': `បង្ហាញបន្ថែម`,\n's5c6aad7a7e4a1437': `3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n's6196153c4b0c1ea0': `តំឡើង`,\n's922329d6f6213590': `បន្ថែមទៅកាន់ Dock`,\n'sa5ef80b4bb9b39f8': `បង្ហាញតិច`,\n'sa7551383d1897fcc': `2) ចុចលើ បន្ថែមទៅកាន់ Dock`,\n'sba52286c21552a4e': `តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sc79fd7641eb9a975': `បិទការណែនាំ`,\n'scdaf4bbff76674c8': `បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n'sdfe23506a3b0cdc8': `1) បើកនៅក្នុងកម្មវិធី Safari`,\n'se740f75b95a51807': `បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sfea652f6580ff086': `គេហទំព័រនេះមានមុខងារជាកម្មវិធី។`,\n };\n ","import { configureLocalization } from '@lit/localize';\r\nimport {\r\n sourceLocale,\r\n targetLocales,\r\n} from './locale-codes';\r\n\r\nimport * as ru from './locales/ru';\r\nimport * as tr from './locales/tr';\r\nimport * as de from \"./locales/de\";\r\nimport * as es from \"./locales/es\";\r\nimport * as nl from \"./locales/nl\";\r\nimport * as el from \"./locales/el\";\r\nimport * as fr from \"./locales/fr\";\r\nimport * as sr from \"./locales/sr\";\r\nimport * as pl from \"./locales/pl\";\r\nimport * as uk from \"./locales/uk\";\r\nimport * as zh from \"./locales/zh\";\r\nimport * as zhCN from \"./locales/zh-CN\";\r\nimport * as it from \"./locales/it\";\r\nimport * as cs from \"./locales/cs\";\r\nimport * as no from \"./locales/no\";\r\nimport * as pt from \"./locales/pt\";\r\nimport * as ja from \"./locales/ja\";\r\nimport * as sv from \"./locales/sv\";\r\nimport * as ko from \"./locales/ko\";\r\nimport * as km from \"./locales/km\";\r\n\r\nconst localizedTemplates = new Map([\r\n ['ru', ru],\r\n ['tr', tr],\r\n ['de', de],\r\n ['es', es],\r\n ['nl', nl],\r\n ['el', el],\r\n ['fr', fr],\r\n ['sr', sr],\r\n ['pl', pl],\r\n ['uk', uk],\r\n ['zh', zh],\r\n ['zh-CN', zhCN],\r\n ['it', it],\r\n ['cs', cs],\r\n ['no', no], // + nb\r\n ['pt', pt],\r\n ['ja', ja],\r\n ['sv', sv],\r\n ['ko', ko],\r\n ['km', km]\r\n])\r\n\r\nexport const { getLocale, setLocale } = configureLocalization({\r\n sourceLocale,\r\n targetLocales,\r\n // @ts-ignore\r\n loadLocale: async (lang: string) => localizedTemplates.get(lang)\r\n});\r\n\r\nexport const changeLocale = (lang: string) => {\r\n // Norwegian Bokmål is same as Norwegian\r\n switch (lang) {\r\n case 'nb':\r\n lang = 'no';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n try {\r\n if (localizedTemplates.get(lang))\r\n setLocale(lang);\r\n else\r\n setLocale(lang.slice(0, 2));\r\n }\r\n catch {\r\n console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);\r\n }\r\n};\r\n","import { ImageResource } from 'web-app-manifest';\r\n\r\nexport interface IRelatedApp {\r\n id: string,\r\n platform: string,\r\n url: string\r\n}\r\n\r\nexport interface IWindow extends Window {\r\n defferedPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\ntype Booleanish = 'true' | 'false';\r\n\r\nexport interface PWAInstallAttributes {\r\n ['manual-apple']?: Booleanish;\r\n ['manual-chrome']?: Booleanish;\r\n ['disable-chrome']?: Booleanish;\r\n ['install-description']?: string;\r\n ['disable-install-description']?: Booleanish;\r\n ['manifest-url']?: string;\r\n name?: string;\r\n description?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class Manifest {\r\n constructor() {\r\n this.icons = [{ src: '' }];\r\n this.screenshots = undefined;\r\n this.short_name = 'PWA';\r\n this.name = 'Progressive web application';\r\n this.description = 'Progressive web application';\r\n }\r\n short_name: string;\r\n icons: ImageResource[];\r\n screenshots?: ImageResource[];\r\n name: string;\r\n description: string;\r\n}\r\n","import {css} from 'lit'; export default css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`;\n ","import { html } from 'lit';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nconst template = (screenshots: WebAppManifest['screenshots'], theme: string, scrollToNextPage: any, scrollToPrevPage: any) => {\r\n return html`\r\n ${screenshots? html`\r\n
\r\n
\r\n
\r\n ${screenshots.map(screenshot => html``)}\r\n
\r\n
\r\n \r\n ${theme != 'default'?\r\n html``\r\n :\r\n html``\r\n }\r\n \r\n \r\n ${theme != 'default'?\r\n html`\r\n \r\n `\r\n :\r\n html`\r\n \r\n \r\n \r\n `\r\n }\r\n \r\n
`\r\n : ''}`;\r\n};\r\nexport default template;\r\n","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nimport styles from './styles-gallery.scss';\r\nimport template from './template-gallery';\r\n\r\n@customElement('pwa-gallery')\r\nexport default class PWAGalleryElement extends LitElement {\r\n\t@property() screenshots: WebAppManifest['screenshots'] = [];\r\n\t@property() theme: 'default' | 'apple_desktop' | 'apple_mobile' = 'default';\r\n\r\n\tstatic get styles() {\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tpublic calcScrollSize = () => {\r\n\t\t//@ts-ignore\r\n\t\tconst gallery = this.shadowRoot.querySelector('#paginated_gallery');\r\n\t\tif (!gallery)\r\n\t\t\treturn;\r\n\t\tconst gallery_scroller = gallery.querySelector('.gallery_scroller');\r\n\t\tif (!gallery_scroller)\r\n\t\t\treturn;\r\n\t\tconst gallery_items = Array.from(gallery_scroller.querySelectorAll('img'));\r\n\t\tif (!gallery_items)\r\n\t\t\treturn;\r\n\t\tconst gallery_item = gallery_items.find((item) => { return (item.offsetWidth + item.offsetLeft) >= gallery_scroller.scrollLeft})\r\n\t\tif (!gallery_item)\r\n\t\t\treturn;\r\n\r\n\t\treturn {\r\n\t\t\tscroller: gallery_scroller,\r\n\t\t\titem: gallery_item\r\n\t\t}\r\n\t}\r\n\tpublic scrollToNextPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.nextElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft + _tools.scroller.clientWidth + _tools.item.nextElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\tpublic scrollToPrevPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.previousElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft - _tools.scroller.clientWidth - _tools.item.previousElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\tprivate _init = () => {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools)\r\n\t\t\tsetTimeout(\r\n\t\t\t\t() => {\r\n\t\t\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t)\r\n\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\tthis._init();\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(\r\n this.screenshots,\r\n\t\t\tthis.theme,\r\n\t\t\tthis.scrollToNextPage,\r\n\t\t\tthis.scrollToPrevPage\r\n )}`;\r\n\t}\r\n}\r\n","import { html } from 'lit';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, icon: string, install: any) => {\r\n return html`\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n
${location.hostname}
\r\n
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n `;\r\n};\r\nexport default template;\r\n","import { WebAppManifest } from 'web-app-manifest';\r\nimport { IRelatedApp } from './types/types';\r\n\r\nconst _eventDispatcher = (_element: Element, name: string, message: string) => {\r\n const event = new CustomEvent(name, {\r\n detail: {\r\n message\r\n }\r\n });\r\n _element.dispatchEvent(event);\r\n}\r\nexport default class Utils {\r\n static isAppleMobile(): boolean {\r\n\t\tif (\r\n (\r\n ['iPhone', 'iPad', 'iPod'].includes(navigator.platform) ||\r\n (navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n )\r\n && ('serviceWorker' in navigator)\r\n )\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static isAppleDesktop(): boolean {\r\n // check if it's a mac\r\n const userAgent = navigator.userAgent.toLowerCase();\r\n if (navigator.maxTouchPoints || !userAgent.match(/macintosh/))\r\n return false;\r\n // check safari version >= 17\r\n const version = /version\\/(\\d{2})\\./.exec(userAgent)\r\n if (!version || !version[1] || !(parseInt(version[1]) >= 17))\r\n return false;\r\n // hacky way to detect Sonoma\r\n const audioCheck = document.createElement('audio').canPlayType('audio/wav; codecs=\"1\"') ? true : false;\r\n const webGLCheck = new OffscreenCanvas(1, 1).getContext('webgl') ? true : false;\r\n\r\n return audioCheck && webGLCheck;\r\n }\r\n \r\n static isStandalone() {\r\n\t\tif (window.matchMedia('(display-mode: standalone)').matches || ('standalone' in navigator && (navigator as any).standalone === true))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static async getInstalledRelatedApps(): Promise {\r\n if ('getInstalledRelatedApps' in navigator)\r\n try{\r\n await (navigator as any).getInstalledRelatedApps().then((relatedApps: IRelatedApp[]) => {\r\n return relatedApps;\r\n });\r\n } catch (e) {}\r\n \r\n return [];\r\n }\r\n \r\n static async isRelatedAppsInstalled(): Promise {\r\n const _relatedApps = await this.getInstalledRelatedApps();\r\n return _relatedApps.length? true : false;\r\n }\r\n\r\n static eventInstalledSuccess(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-success-event', 'App install success (Chromium/Android only)');\r\n }\r\n static eventInstalledFail(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-fail-event', 'App install failed (Chromium/Android only)');\r\n }\r\n static eventUserChoiceResult(_element: Element, message: string) {\r\n _eventDispatcher(_element, 'pwa-user-choice-result-event', message);\r\n }\r\n static eventInstallAvailable(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-available-event', 'App install available');\r\n }\r\n static eventInstallHowTo(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-how-to-event', 'App install instruction showed');\r\n }\r\n static eventGallery(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-gallery-event', 'App install gallery showed');\r\n }\r\n\r\n static normalizeManifestAssetUrls(manifest: WebAppManifest, manifestUrl: string) {\r\n const normalizedManifestUrl = new URL(manifestUrl, document.location.href);\r\n [...manifest.icons || [], ...manifest.screenshots || []].forEach(asset => {\r\n asset.src = new URL(asset.src, normalizedManifestUrl).href;\r\n })\r\n }\r\n}","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\n\r\n// import TouchDragListener from \"./touch-listener\";\r\n\r\ntype IProps = {\r\n name: string,\r\n description: string,\r\n icon: string\r\n}\r\n\r\nimport template from './template-bottom-sheet';\r\nimport Utils from '../../../utils';\r\n\r\n@customElement('pwa-bottom-sheet')\r\nexport default class PWABottomSheetElement extends LitElement {\r\n\t@property({type: Object}) props: IProps = {\r\n name: '',\r\n description: '',\r\n icon: ''\r\n };\r\n @property({type: Object}) install = {handleEvent: () => {}};\r\n\t@property() hideDialog = () => {};\r\n\t@property() disableClose = false;\r\n\r\n\tprivate _callInstall = () => {\r\n\t\tthis.install.handleEvent();\r\n\t}\r\n\r\n\tprivate _callHide = () => {\r\n\t\tthis.hideDialog();\r\n\t\tthis.setupAppearence();\r\n\t}\r\n\r\n\tprivate bindedElement: {\r\n\t\ttouchElement: HTMLElement,\r\n\t\tlistener: any }| null = null;\r\n\tprivate readonly _saveBodyStyle = document.body.style.overscrollBehaviorY;\r\n\tprivate dragMobileSheet = (element: HTMLElement | null | undefined, touchTargetElement: HTMLElement | undefined, infoElement: HTMLElement | undefined) => {\r\n\t\tif (!element || !touchTargetElement || !infoElement)\r\n\t\t\treturn null;\r\n\r\n\t\tlet dragOffset = 0;\r\n\t\tconst bounceOffset = 35;\r\n\t\tconst bottomSize = touchTargetElement.clientHeight + infoElement.clientHeight;\r\n\r\n\t\tconst getYCoord = (e: MouseEvent | TouchEvent): number => {\r\n\t\t\treturn (e as MouseEvent).clientY || ((e as TouchEvent).changedTouches && (e as TouchEvent).changedTouches.length? (e as TouchEvent).changedTouches[0].clientY : 0);\r\n\t\t}\r\n\r\n\t\tconst dragMouseDown = (e: MouseEvent | TouchEvent) => {\r\n\t\t\twindow.addEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.addEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.addEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.addEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tdragOffset = getYCoord(e) - touchTargetElement.getBoundingClientRect().top;\r\n\r\n\t\t\tdocument.body.style.overscrollBehaviorY = 'none';\r\n\t\t}\r\n\t\tconst dragMouseUp = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tdocument.body.style.overscrollBehaviorY = this._saveBodyStyle;\r\n\r\n\t\t\tif (!this.disableClose && getYCoord(e) >= window.innerHeight - 25) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight + 50, true);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (window.innerHeight - getYCoord(e) > element.clientHeight / 2.5) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - element.clientHeight);\r\n\t\t\t\t\r\n\t\t\t\ttry {\r\n\t\t\t\t\tUtils.eventGallery((this.getRootNode() as ShadowRoot).host);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - bottomSize - bounceOffset);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dragMouseMove = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tconst currentY = getYCoord(e);\r\n\r\n\t\t\tif (this.disableClose && window.innerHeight - currentY < 70) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (currentY <= (window.innerHeight - element.clientHeight + dragOffset)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`none`\r\n\t\t\t)\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"--translateY\",\r\n\t\t\t\t`translateY(${currentY - dragOffset}px)`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => {\r\n\t\t\twindow.removeEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.removeEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.removeEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.removeEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tif (window.innerWidth >= 768)\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!toPoint && getYCoord(e) >= window.innerHeight - bottomSize)\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(calc(100vh - ${bottomSize}px))`\r\n\t\t\t\t);\r\n\t\t\telse\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(${(toPoint || getYCoord(e)) + bounceOffset}px)`\r\n\t\t\t\t);\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s`\r\n\t\t\t);\r\n\r\n\t\t\tif (hideDialog){\r\n\t\t\t\ttouchTargetElement.removeEventListener('mousedown', dragMouseDown);\r\n\t\t\t\ttouchTargetElement.removeEventListener('touchstart', dragMouseDown);\r\n\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\tthis._callHide,\r\n\t\t\t\t\t250\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\ttouchTargetElement.addEventListener('mousedown', dragMouseDown);\r\n\t\ttouchTargetElement.addEventListener('touchstart', dragMouseDown, {passive: true});\r\n\r\n\t\tcloseDragElement(new MouseEvent('mouseup'), window.innerHeight - bottomSize - bounceOffset);\r\n\r\n\t\treturn {\r\n\t\t\ttouchElement: touchTargetElement,\r\n\t\t\tlistener: dragMouseDown\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupAppearence = () => {\r\n\t\tif (this.bindedElement) {\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('mousedown', this.bindedElement.listener);\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('touchstart', this.bindedElement.listener);\r\n\t\t}\r\n\r\n\t\tthis.bindedElement = this.dragMobileSheet(\r\n\t\t\tthis.parentElement?.parentElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement);\r\n\t}\r\n\tprivate _init = () => {\r\n\t\tthis.setupAppearence();\r\n\r\n\t\twindow.addEventListener('resize', this.setupAppearence);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tthis._init();\r\n return;\r\n\t}\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(this.props.name, this.props.description, this.props.icon, this._callInstall)}`;\r\n\t}\r\n}\r\n","import {css} from 'lit'; export default css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,\"Segoe UI\",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:\"\";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,\"Segoe UI\",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:\"\";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`;\n ","import {css} from 'lit'; export default css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,\"Segoe UI\";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon description\" \"welcome welcome\" \"how-to how-to\" \"gallery gallery\" \"button button\";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon\" \"description\" \"welcome\" \"how-to\" \"gallery\" \"button\";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;\n ","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"classMap\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_directives_class_map_js_2f88e643__.classMap) });","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n
\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n ${!disableClose? html`` : ''}\r\n
\r\n
${location.hostname}
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n ${!disableDescription? \r\n html`
${installDescription? installDescription: `${msg('This site has app functionality.')} ${msg('Install it on your device for extensive experience and easy access.')}`}
` \r\n : ''}\r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n ${screenshotsAvailable? html``:''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n
\r\n
`;\r\n};\r\nexport default template;\r\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, isDesktop: boolean, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested, desktop: isDesktop}};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n `;\r\n};\r\nexport default template;\r\n","import { LitElement, PropertyValues, html } from 'lit';\r\nimport { localized } from '@lit/localize';\r\nimport { property, state, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { changeLocale } from './localization';\r\n\r\nimport { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types';\r\n\r\nimport PWAGalleryElement from './gallery';\r\nimport PWABottomSheetElement from './templates/chrome/bottom-sheet';\r\n\r\nimport Utils from './utils';\r\n\r\ndeclare const window: IWindow;\r\n\r\nimport styles from './templates/chrome/styles.scss';\r\nimport stylesApple from './templates/apple/styles-apple.scss';\r\n\r\nimport template from './templates/chrome/template';\r\nimport templateApple from './templates/apple/template-apple';\r\n\r\n/**\r\n * @event {CustomEvent} pwa-install-success-event - App install success (Chromium/Android only)\r\n * @event {CustomEvent} pwa-install-fail-event - App install failed (Chromium/Android only)\r\n * @event {CustomEvent} pwa-user-choice-result-event - dismissed, accepted\r\n * @event {CustomEvent} pwa-install-available-event - App install available\r\n * @event {CustomEvent} pwa-install-how-to-event - App install instruction showed\r\n * @event {CustomEvent} pwa-install-gallery-event - App install gallery showed\r\n */\r\n@localized()\r\n@customElement('pwa-install')\r\nexport class PWAInstallElement extends LitElement {\r\n\t@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json';\r\n\t@property() icon = '';\r\n\t@property() name = '';\r\n\t@property() description = '';\r\n\t@property({attribute: 'install-description'}) installDescription = '';\r\n\t@property({attribute: 'disable-install-description', type: Boolean}) disableDescription = false;\r\n\t@property({attribute: 'disable-screenshots', type: Boolean}) disableScreenshots = false;\r\n\t@property({attribute: 'disable-screenshots-apple', type: Boolean}) disableScreenshotsApple = false;\r\n\t@property({attribute: 'disable-screenshots-chrome', type: Boolean}) disableScreenshotsChrome = false;\r\n\t@property({attribute: 'manual-apple', type: Boolean}) manualApple = false;\r\n\t@property({attribute: 'manual-chrome', type: Boolean}) manualChrome = false;\r\n\t@property({attribute: 'disable-chrome', type: Boolean}) disableChrome = false;\r\n\t@property({attribute: 'disable-close', type: Boolean}) disableClose = false;\r\n\r\n\tstatic get styles() {\r\n\t\treturn [ styles, stylesApple ];\r\n\t}\r\n\r\n\t@state() externalPromptEvent: BeforeInstallPromptEvent | null = null;\r\n\r\n\tpublic platforms: BeforeInstallPromptEvent['platforms'] = [];\r\n\tpublic userChoiceResult = '';\r\n\r\n\tpublic isDialogHidden: boolean = JSON.parse(window.sessionStorage.getItem('pwa-hide-install') || 'false');\r\n\tpublic isInstallAvailable = false;\r\n\tpublic isAppleMobilePlatform = false;\r\n\tpublic isAppleDesktopPlatform = false;\r\n\tpublic isUnderStandaloneMode = false;\r\n\tpublic isRelatedAppsInstalled = false;\r\n\r\n\t/** @internal */\r\n\tprivate _manifest: WebAppManifest = new Manifest();\r\n\t/** @internal */\r\n\tprivate _howToRequested = false;\r\n\t/** @internal */\r\n\tprivate _galleryRequested = false;\r\n\t/** @internal */\r\n\tprivate _install = {\r\n\t\thandleEvent: () => {\r\n\t\t\tif (window.defferedPromptEvent) {\r\n\t\t\t\tthis.hideDialog();\r\n\t\t\t\twindow.defferedPromptEvent.prompt();\r\n\t\t\t\twindow.defferedPromptEvent.userChoice\r\n\t\t\t\t\t.then((choiceResult: PromptResponseObject) => {\r\n\t\t\t\t\t\tthis.userChoiceResult = choiceResult.outcome;\r\n\t\t\t\t\t\tUtils.eventUserChoiceResult(this, this.userChoiceResult);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tUtils.eventInstalledFail(this);\r\n\t\t\t\t\t});\r\n\t\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\tpublic install = () => {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tthis._howToRequested = true;\r\n\t\t\tthis.requestUpdate();\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis._install.handleEvent();\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialog = {\r\n\t\thandleEvent: () => {\r\n\t\t\tthis.isDialogHidden = true;\r\n\t\t\twindow.sessionStorage.setItem('pwa-hide-install', 'true');\r\n\t\t\tthis.requestUpdate();\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialogUser = () => {\r\n\t\tUtils.eventUserChoiceResult(this, 'dismissed');\r\n\t\tthis.userChoiceResult = 'dismissed';\r\n\t\tthis.hideDialog();\r\n\t}\r\n\tpublic hideDialog = () => {\r\n\t\tthis._hideDialog.handleEvent();\r\n\t}\r\n\tpublic showDialog = (forced = false) => {\r\n\t\tthis.isDialogHidden = false;\r\n\t\tif (forced)\r\n\t\t\tthis.isInstallAvailable = true;\r\n\t\twindow.sessionStorage.setItem('pwa-hide-install', 'false');\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tpublic getInstalledRelatedApps = async (): Promise => {\r\n\t\treturn await Utils.getInstalledRelatedApps();\r\n\t}\r\n\r\n\t/** @internal */\r\n\tprivate _howToForApple = {\r\n handleEvent: () => {\r\n\t\t\tthis._howToRequested = !this._howToRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._galleryRequested = false;\r\n\t\t\tthis.requestUpdate();\r\n\r\n\t\t\tif (this._howToRequested) {\r\n\t\t\t\tUtils.eventInstallHowTo(this);\r\n\t\t\t\t\r\n\t\t\t\t// Looks like it's not needed anymore\r\n\t\t\t\t// if (this._manifest.start_url){\r\n\t\t\t\t// \ttry {\r\n\t\t\t\t// \t\thistory.replaceState({}, '', this._manifest.start_url);\r\n\t\t\t\t// \t} catch (e) {}\r\n\t\t\t\t// }\r\n\t\t\t}\t\t\t\t\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate _toggleGallery = {\r\n handleEvent: () => {\r\n\t\t\tthis._galleryRequested = !this._galleryRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._howToRequested = false;\r\n\r\n\t\t\tthis._galleryRequested && Utils.eventGallery(this);\r\n\r\n\t\t\tthis.requestUpdate();\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate async _checkInstalled() {\r\n\t\tthis.isUnderStandaloneMode = Utils.isStandalone();\r\n\t\tthis.isRelatedAppsInstalled = await Utils.isRelatedAppsInstalled();\r\n\t\tthis.isAppleMobilePlatform = Utils.isAppleMobile();\r\n\t\tthis.isAppleDesktopPlatform = Utils.isAppleDesktop();\r\n\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tif (!this.isUnderStandaloneMode) {\r\n\t\t\t\tthis.manualApple && this.hideDialog();\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1000\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.manualChrome && this.hideDialog();\r\n\t\t}\r\n\t}\r\n\t/** @internal */\r\n\tprivate _init = async () => {\r\n\t\twindow.defferedPromptEvent = null;\r\n\r\n\t\tthis._checkInstalled();\r\n\r\n\t\tif (!this.disableChrome) {\r\n\t\t\tconst _promptHandler = (e: BeforeInstallPromptEvent) => {\r\n\t\t\t\twindow.defferedPromptEvent = e;\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.platforms = e.platforms;\r\n\r\n\t\t\t\tif (this.isRelatedAppsInstalled || this.isUnderStandaloneMode) {\r\n\t\t\t\t\tthis.isInstallAvailable = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.userChoiceResult === 'accepted'){\r\n\t\t\t\t\tthis.isDialogHidden = true;\r\n\t\t\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t}\r\n\t\t\tif (this.externalPromptEvent != null)\r\n\t\t\t\tsetTimeout(() => _promptHandler(this.externalPromptEvent!), 300);\r\n\t\t\telse\r\n\t\t\t\twindow.addEventListener('beforeinstallprompt', _promptHandler);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('appinstalled', (e) => {\r\n\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\tthis.isInstallAvailable = false;\r\n\r\n\t\t\tthis.requestUpdate();\r\n\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t});\r\n\r\n\r\n\t\ttry{\r\n\t\t\tconst _response = await fetch(this.manifestUrl);\r\n\t\t\tconst _json = await _response.json() as WebAppManifest;\r\n\t\t\tif (!_response.ok || !_json || !Object.keys(_json))\r\n\t\t\t\tthrow new Error('Manifest not found');\r\n\t\t\tUtils.normalizeManifestAssetUrls(_json, this.manifestUrl);\r\n\t\t\t\r\n\t\t\tthis.icon = this.icon || _json.icons?.length ? _json.icons![0].src : '';\r\n\t\t\tthis.name = this.name || _json['short_name'] || _json.name || '';\r\n\t\t\tthis.description = this.description || _json.description || '';\r\n\t\t\tthis._manifest = _json;\r\n\t\t}\r\n\t\tcatch(e) {\r\n\t\t\tthis.icon = this.icon || this._manifest.icons?.[0].src || '';\r\n\t\t\tthis.name = this.name || this._manifest['short_name'] || '';\r\n\t\t\tthis.description = this.description || this._manifest.description || '';\r\n\t\t}\r\n\t};\r\n\t/** @internal */\r\n\tprivate _requestUpdate = () => {\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tchangeLocale(navigator.language);\r\n\t\tthis._init();\r\n\t\tPWAGalleryElement.finalized;\r\n\t\tPWABottomSheetElement.finalized;\r\n\t\tsuper.connectedCallback();\r\n\t}\r\n\twillUpdate(changedProperties: PropertyValues) {\r\n\t\tif (this.externalPromptEvent && changedProperties.has('externalPromptEvent') && typeof this.externalPromptEvent == 'object') {\r\n\t\t this._init();\r\n\t\t}\r\n\t}\r\n\r\n\t// firstUpdated() {\r\n\t// \treturn;\r\n\t// }\r\n\r\n\trender() {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform)\r\n\t\t\treturn html`${templateApple(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsApple,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._howToForApple,\r\n\t\t\t\tthis.isAppleDesktopPlatform,\r\n\t\t\t\tthis._howToRequested,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t\telse\r\n\t\t\treturn html`${template(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsChrome,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._install,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t}\r\n}\r\n\r\nexport { PWAInstallAttributes };\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { updateWhenLocaleChanges } from './localized-controller.js';\n/**\n * Class decorator to enable re-rendering the given LitElement whenever a new\n * active locale has loaded.\n *\n * See also {@link updateWhenLocaleChanges} for the same functionality without\n * the use of decorators.\n *\n * When using lit-localize in transform mode, applications of this decorator are\n * removed.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {customElement} from 'lit/decorators.js';\n * import {msg, localized} from '@lit/localize';\n *\n * @localized()\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nexport const localized = () => (clazz, _context) => {\n clazz.addInitializer(updateWhenLocaleChanges);\n return clazz;\n};\n//# sourceMappingURL=localized-decorator.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=new Set([\"children\",\"localName\",\"ref\",\"style\",\"className\"]),n=new WeakMap,t=(e,t,o,l,a)=>{const s=a?.[t];void 0===s?(e[t]=o,null==o&&t in HTMLElement.prototype&&e.removeAttribute(t)):o!==l&&((e,t,o)=>{let l=n.get(e);void 0===l&&n.set(e,l=new Map);let a=l.get(t);void 0!==o?void 0===a?(l.set(t,a={handleEvent:o}),e.addEventListener(t,a)):a.handleEvent=o:void 0!==a&&(l.delete(t),e.removeEventListener(t,a))})(e,s,o)},o=({react:n,tagName:o,elementClass:l,events:a,displayName:s})=>{const c=new Set(Object.keys(a??{})),r=n.forwardRef(((s,r)=>{const i=n.useRef(new Map),d=n.useRef(null),f={},u={};for(const[n,t]of Object.entries(s))e.has(n)?f[\"className\"===n?\"class\":n]=t:c.has(n)||n in l.prototype?u[n]=t:f[n]=t;return n.useLayoutEffect((()=>{if(null===d.current)return;const e=new Map;for(const n in u)t(d.current,n,s[n],i.current.get(n),a),i.current.delete(n),e.set(n,s[n]);for(const[e,n]of i.current)t(d.current,e,void 0,n,a);i.current=e})),n.useLayoutEffect((()=>{d.current?.removeAttribute(\"defer-hydration\")}),[]),f.suppressHydrationWarning=!0,n.createElement(o,{...f,ref:n.useCallback((e=>{d.current=e,\"function\"==typeof r?r(e):null!==r&&(r.current=e)}),[r])})}));return r.displayName=s??l.name,r};export{o as createComponent};\n//# sourceMappingURL=create-component.js.map\n","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => (__WEBPACK_EXTERNAL_MODULE_react__[\"default\"]) });","\r\nimport { PWAInstallElement } from '../index';\r\nimport { createComponent, ReactWebComponent } from '@lit/react';\r\nimport react from 'react';\r\n\r\nconst PWAInstall = createComponent({\r\n\treact,\r\n\ttagName: 'pwa-install',\r\n\telementClass: PWAInstallElement,\r\n\tevents: {\r\n\t onPwaInstallSuccessEvent: 'pwa-install-success-event',\r\n\t onPwaInstallFailEvent: 'pwa-install-fail-event',\r\n\t onPwaUserChoiceResultEvent: 'pwa-user-choice-result-event',\r\n\t onPwaInstallAvailableEvent: 'pwa-install-available-event',\r\n\t onPwaInstallHowToEvent: 'pwa-install-how-to-event',\r\n\t onPwaInstallGalleryEvent: 'pwa-install-gallery-event'\r\n\t}\r\n});\r\n\r\nexport default PWAInstall;"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","y","x","d","__WEBPACK_EXTERNAL_MODULE_lit__","joinStringsAndValues","strings","values","valueOrder","concat","i","length","template","isStrTagged","val","LOCALE_STATUS_EVENT","LocalizeController","constructor","host","this","__litLocalizeEventHandler","event","detail","status","requestUpdate","hostConnected","window","addEventListener","hostDisconnected","removeEventListener","updateWhenLocaleChanges","addController","Deferred","settled","promise","Promise","resolve","reject","_resolve","_reject","error","hl","toString","HASH_DELIMITER","HTML_PREFIX","STRING_PREFIX","generateMsgId","isHtmlTagged","str","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","fnv1a64","join","expressionOrders","WeakMap","hashCache","Map","runtimeMsg","templates","options","id","undefined","set","generateId","localized","order","map","dispatchStatusEvent","dispatchEvent","CustomEvent","loadingLocale","sourceLocale","validLocales","loadLocale","activeLocale","loading","requestId","getLocale","setLocale","newLocale","Error","has","thisRequestId","then","mod","readyLocale","err","errorLocale","errorMessage","msg","installed","__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__","targetLocales","localizedTemplates","config","async","lang","impl","Set","add","Manifest","icons","src","screenshots","short_name","name","description","css","theme","scrollToNextPage","scrollToPrevPage","html","PWAGalleryElement","LitElement","calcScrollSize","gallery","shadowRoot","querySelector","gallery_scroller","gallery_items","Array","from","querySelectorAll","gallery_item","find","item","offsetWidth","offsetLeft","scrollLeft","scroller","_tools","nextElementSibling","scrollTo","top","left","clientWidth","behavior","previousElementSibling","_init","styles","firstUpdated","setTimeout","connectedCallback","super","render","property","customElement","icon","install","_eventDispatcher","_element","message","Utils","isAppleMobile","includes","navigator","platform","userAgent","match","maxTouchPoints","isAppleDesktop","toLowerCase","version","exec","parseInt","audioCheck","document","createElement","canPlayType","webGLCheck","OffscreenCanvas","getContext","isStandalone","matchMedia","matches","standalone","getInstalledRelatedApps","relatedApps","e","isRelatedAppsInstalled","eventInstalledSuccess","eventInstalledFail","eventUserChoiceResult","eventInstallAvailable","eventInstallHowTo","eventGallery","normalizeManifestAssetUrls","manifest","manifestUrl","normalizedManifestUrl","URL","location","href","forEach","asset","PWABottomSheetElement","props","handleEvent","hideDialog","disableClose","_callInstall","_callHide","setupAppearence","bindedElement","_saveBodyStyle","body","style","overscrollBehaviorY","dragMobileSheet","element","touchTargetElement","infoElement","dragOffset","bottomSize","clientHeight","getYCoord","clientY","changedTouches","dragMouseDown","dragMouseUp","dragMouseMove","getBoundingClientRect","innerHeight","closeDragElement","getRootNode","currentY","setProperty","toPoint","innerWidth","passive","MouseEvent","touchElement","listener","parentElement","getElementsByClassName","createRenderRoot","type","__WEBPACK_EXTERNAL_MODULE_lit_directives_class_map_js_2f88e643__","installDescription","disableDescription","disableScreenshots","installAvailable","toggleGallery","galleryRequested","installDialogClasses","available","screenshotsAvailable","howToForApple","isDesktop","howToRequested","desktop","PWAInstallElement","disableScreenshotsApple","disableScreenshotsChrome","manualApple","manualChrome","disableChrome","externalPromptEvent","platforms","userChoiceResult","isDialogHidden","JSON","parse","sessionStorage","getItem","isInstallAvailable","isAppleMobilePlatform","isAppleDesktopPlatform","isUnderStandaloneMode","_manifest","_howToRequested","_galleryRequested","_install","defferedPromptEvent","prompt","userChoice","choiceResult","outcome","catch","_hideDialog","setItem","_hideDialogUser","showDialog","forced","_howToForApple","_toggleGallery","_checkInstalled","_promptHandler","preventDefault","_response","fetch","_json","json","ok","keys","_requestUpdate","slice","changeLocale","language","finalized","willUpdate","changedProperties","attribute","Boolean","state","clazz","_context","addInitializer","n","t","l","a","s","HTMLElement","removeAttribute","delete","__WEBPACK_EXTERNAL_MODULE_react__","PWAInstall","react","tagName","elementClass","events","displayName","c","r","forwardRef","useRef","f","u","entries","useLayoutEffect","current","suppressHydrationWarning","ref","useCallback","onPwaInstallSuccessEvent","onPwaInstallFailEvent","onPwaUserChoiceResultEvent","onPwaInstallAvailableEvent","onPwaInstallHowToEvent","onPwaInstallGalleryEvent"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"pwa-install.react-legacy.js","mappings":"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","sources":["webpack://@khmyznikov/pwa-install/webpack/bootstrap","webpack://@khmyznikov/pwa-install/webpack/runtime/define property getters","webpack://@khmyznikov/pwa-install/webpack/runtime/hasOwnProperty shorthand","webpack://@khmyznikov/pwa-install/webpack/runtime/make namespace object","webpack://@khmyznikov/pwa-install/external module \"lit\"","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/str-tag.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/default-msg.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/init/install.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/locale-status-event.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/localized-controller.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/deferred.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/fnv1a64.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/id-generation.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/runtime-msg.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/init/runtime.js","webpack://@khmyznikov/pwa-install/external module \"lit/decorators.js\"","webpack://@khmyznikov/pwa-install/./src/localization/locale-codes.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ru.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/tr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/de.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/es.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/nl.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/el.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/fr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/sr.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/pl.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/uk.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/zh.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/zh-CN.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/it.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/cs.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/no.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/pt.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ja.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/sv.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/ko.ts","webpack://@khmyznikov/pwa-install/./src/localization/locales/km.ts","webpack://@khmyznikov/pwa-install/./src/localization/index.ts","webpack://@khmyznikov/pwa-install/./src/types/types.ts","webpack://@khmyznikov/pwa-install/./src/gallery/styles-gallery.scss","webpack://@khmyznikov/pwa-install/./src/gallery/template-gallery.ts","webpack://@khmyznikov/pwa-install/./src/gallery/index.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/bottom-sheet/template-bottom-sheet.ts","webpack://@khmyznikov/pwa-install/./src/utils.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/bottom-sheet/index.ts","webpack://@khmyznikov/pwa-install/./src/templates/chrome/styles.scss","webpack://@khmyznikov/pwa-install/./src/templates/apple/styles-apple.scss","webpack://@khmyznikov/pwa-install/external module \"lit/directives/class-map.js\"","webpack://@khmyznikov/pwa-install/./src/templates/chrome/template.ts","webpack://@khmyznikov/pwa-install/./src/templates/apple/template-apple.ts","webpack://@khmyznikov/pwa-install/./src/index.ts","webpack://@khmyznikov/pwa-install/./node_modules/@lit/localize/internal/localized-decorator.js","webpack://@khmyznikov/pwa-install/./node_modules/@lit/react/create-component.js","webpack://@khmyznikov/pwa-install/external module \"react\"","webpack://@khmyznikov/pwa-install/./src/react-legacy/pwa-install.react-legacy.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"LitElement\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.LitElement), [\"css\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.css), [\"html\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit__.html) });","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Tag that allows expressions to be used in localized non-HTML template\n * strings.\n *\n * Example: msg(str`Hello ${this.user}!`);\n *\n * The Lit html tag can also be used for this purpose, but HTML will need to be\n * escaped, and there is a small overhead for HTML parsing.\n *\n * Untagged template strings with expressions aren't supported by lit-localize\n * because they don't allow for values to be captured at runtime.\n */\nconst _str = (strings, ...values) => ({\n strTag: true,\n strings,\n values,\n});\nexport const str = _str;\nexport const isStrTagged = (val) => typeof val !== 'string' && 'strTag' in val;\n/**\n * Render the result of a `str` tagged template to a string. Note we don't need\n * to do this for Lit templates, since Lit itself handles rendering.\n */\nexport const joinStringsAndValues = (strings, values, valueOrder) => {\n let concat = strings[0];\n for (let i = 1; i < strings.length; i++) {\n concat += values[valueOrder ? valueOrder[i - 1] : i - 1];\n concat += strings[i];\n }\n return concat;\n};\n//# sourceMappingURL=str-tag.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isStrTagged, joinStringsAndValues } from './str-tag.js';\n/**\n * Default identity msg implementation. Simply returns the input template with\n * no awareness of translations. If the template is str-tagged, returns it in\n * string form.\n */\nexport const defaultMsg = ((template) => isStrTagged(template)\n ? joinStringsAndValues(template.strings, template.values)\n : template);\n//# sourceMappingURL=default-msg.js.map","import { defaultMsg } from '../internal/default-msg.js';\n/**\n * Make a string or lit-html template localizable.\n *\n * @param template A string, a lit-html template, or a function that returns\n * either a string or lit-html template.\n * @param options Optional configuration object with the following properties:\n * - id: Optional project-wide unique identifier for this template. If\n * omitted, an id will be automatically generated from the template strings.\n * - desc: Optional description\n */\nexport let msg = defaultMsg;\nlet installed = false;\n/**\n * Internal only. Do not use this function.\n *\n * Installs an implementation of the msg function to replace the default\n * identity function. Throws if called more than once.\n *\n * @internal\n */\nexport function _installMsgImplementation(impl) {\n if (installed) {\n throw new Error('lit-localize can only be configured once');\n }\n msg = impl;\n installed = true;\n}\n//# sourceMappingURL=install.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Name of the event dispatched to `window` whenever a locale change starts,\n * finishes successfully, or fails. Only relevant to runtime mode.\n *\n * The `detail` of this event is an object with a `status` string that can be:\n * \"loading\", \"ready\", or \"error\", along with the relevant locale code, and\n * error message if applicable.\n *\n * You can listen for this event to know when your application should be\n * re-rendered following a locale change. See also the Localized mixin, which\n * automatically re-renders LitElement classes using this event.\n */\nexport const LOCALE_STATUS_EVENT = 'lit-localize-status';\n//# sourceMappingURL=locale-status-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { LOCALE_STATUS_EVENT } from './locale-status-event.js';\nclass LocalizeController {\n constructor(host) {\n this.__litLocalizeEventHandler = (event) => {\n if (event.detail.status === 'ready') {\n this.host.requestUpdate();\n }\n };\n this.host = host;\n }\n hostConnected() {\n window.addEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n hostDisconnected() {\n window.removeEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n}\n/**\n * Re-render the given LitElement whenever a new active locale has loaded.\n *\n * See also {@link localized} for the same functionality as a decorator.\n *\n * When using lit-localize in transform mode, calls to this function are\n * replaced with undefined.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {msg, updateWhenLocaleChanges} from '@lit/localize';\n *\n * class MyElement extends LitElement {\n * constructor() {\n * super();\n * updateWhenLocaleChanges(this);\n * }\n *\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nconst _updateWhenLocaleChanges = (host) => host.addController(new LocalizeController(host));\nexport const updateWhenLocaleChanges = _updateWhenLocaleChanges;\n//# sourceMappingURL=localized-controller.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport class Deferred {\n constructor() {\n this.settled = false;\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n resolve(value) {\n this.settled = true;\n this._resolve(value);\n }\n reject(error) {\n this.settled = true;\n this._reject(error);\n }\n}\n//# sourceMappingURL=deferred.js.map","/**\n * @license\n * Copyright 2014 Travis Webb\n * SPDX-License-Identifier: MIT\n */\n// This module is derived from the file:\n// https://github.com/tjwebb/fnv-plus/blob/1e2ce68a07cb7dd4c3c85364f3d8d96c95919474/index.js#L309\n//\n// Changes:\n// - Only the _hash64_1a_fast function is included.\n// - Removed loop unrolling.\n// - Converted to TypeScript ES module.\n// - var -> let/const\n//\n// TODO(aomarks) Upstream improvements to https://github.com/tjwebb/fnv-plus/.\nconst hl = [];\nfor (let i = 0; i < 256; i++) {\n hl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n}\n/**\n * Perform a FNV-1A 64-bit hash of the given string (as UTF-16 code units), and\n * return a hexadecimal digest (left zero padded to 16 characters).\n *\n * @see {@link http://tools.ietf.org/html/draft-eastlake-fnv-06}\n */\nexport function fnv1a64(str) {\n let t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n for (let i = 0; i < str.length; i++) {\n v0 ^= str.charCodeAt(i);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n return (hl[v3 >> 8] +\n hl[v3 & 255] +\n hl[v2 >> 8] +\n hl[v2 & 255] +\n hl[v1 >> 8] +\n hl[v1 & 255] +\n hl[v0 >> 8] +\n hl[v0 & 255]);\n}\n//# sourceMappingURL=fnv1a64.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { fnv1a64 } from './fnv1a64.js';\n/**\n * Delimiter used between each template string component before hashing. Used to\n * prevent e.g. \"foobar\" and \"foo${baz}bar\" from sharing a hash.\n *\n * This is the \"record separator\" ASCII character.\n */\nexport const HASH_DELIMITER = '\\x1e';\n/**\n * Id prefix on html-tagged templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst HTML_PREFIX = 'h';\n/**\n * Id prefix on plain string templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst STRING_PREFIX = 's';\n/**\n * Generate a unique ID for a lit-localize message.\n *\n * Example:\n * Template: html`Hello ${who}!`\n * Params: [\"Hello \", \"!\"], true\n * Output: h82ccc38d4d46eaa9\n *\n * The ID is constructed as:\n *\n * [0] Kind of template: [h]tml or [s]tring.\n * [1,16] 64-bit FNV-1a hash hex digest of the template strings, as UTF-16\n * code points, delineated by an ASCII \"record separator\" character.\n *\n * We choose FNV-1a because:\n *\n * 1. It's pretty fast (e.g. much faster than SHA-1).\n * 2. It's pretty small (0.25 KiB minified + brotli).\n * 3. We don't require cryptographic security, and 64 bits should give\n * sufficient collision resistance for any one application. Worst\n * case, we will always detect collisions during analysis.\n * 4. We can't use Web Crypto API (e.g. SHA-1), because it's asynchronous.\n * 5. It's a well known non-cryptographic hash with implementations in many\n * languages.\n * 6. There was an existing JavaScript implementation that doesn't require\n * BigInt, for IE11 compatibility.\n */\nexport function generateMsgId(strings, isHtmlTagged) {\n return ((isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) +\n fnv1a64(typeof strings === 'string' ? strings : strings.join(HASH_DELIMITER)));\n}\n//# sourceMappingURL=id-generation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './default-msg.js';\nimport { joinStringsAndValues } from './str-tag.js';\nimport { generateMsgId } from './id-generation.js';\nconst expressionOrders = new WeakMap();\nconst hashCache = new Map();\nexport function runtimeMsg(templates, template, options) {\n if (templates) {\n const id = options?.id ?? generateId(template);\n const localized = templates[id];\n if (localized) {\n if (typeof localized === 'string') {\n // E.g. \"Hello World!\"\n return localized;\n }\n else if ('strTag' in localized) {\n // E.g. str`Hello ${name}!`\n //\n // Localized templates have ${number} in place of real template\n // expressions. They can't have real template values, because the\n // variable scope would be wrong. The number tells us the index of the\n // source value to substitute in its place, because expressions can be\n // moved to a different position during translation.\n return joinStringsAndValues(localized.strings, \n // Cast `template` because its type wasn't automatically narrowed (but\n // we know it must be the same type as `localized`).\n template.values, localized.values);\n }\n else {\n // E.g. html`Hello ${name}!`\n //\n // We have to keep our own mapping of expression ordering because we do\n // an in-place update of `values`, and otherwise we'd lose ordering for\n // subsequent renders.\n let order = expressionOrders.get(localized);\n if (order === undefined) {\n order = localized.values;\n expressionOrders.set(localized, order);\n }\n return {\n ...localized,\n values: order.map((i) => template.values[i]),\n };\n }\n }\n }\n return defaultMsg(template);\n}\nfunction generateId(template) {\n const strings = typeof template === 'string' ? template : template.strings;\n let id = hashCache.get(strings);\n if (id === undefined) {\n id = generateMsgId(strings, typeof template !== 'string' && !('strTag' in template));\n hashCache.set(strings, id);\n }\n return id;\n}\n//# sourceMappingURL=runtime-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { Deferred } from '../internal/deferred.js';\nimport { LOCALE_STATUS_EVENT } from '../internal/locale-status-event.js';\nimport { runtimeMsg } from '../internal/runtime-msg.js';\nimport { _installMsgImplementation } from './install.js';\n/**\n * Dispatch a \"lit-localize-status\" event to `window` with the given detail.\n */\nfunction dispatchStatusEvent(detail) {\n window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));\n}\nlet activeLocale = '';\nlet loadingLocale;\nlet sourceLocale;\nlet validLocales;\nlet loadLocale;\nlet templates;\nlet loading = new Deferred();\n// The loading promise must be initially resolved, because that's what we should\n// return if the user immediately calls setLocale(sourceLocale).\nloading.resolve();\nlet requestId = 0;\n/**\n * Set configuration parameters for lit-localize when in runtime mode. Returns\n * an object with functions:\n *\n * - `getLocale`: Return the active locale code.\n * - `setLocale`: Set the active locale code.\n *\n * Throws if called more than once.\n */\nexport const configureLocalization = (config) => {\n _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));\n activeLocale = sourceLocale = config.sourceLocale;\n validLocales = new Set(config.targetLocales);\n validLocales.add(config.sourceLocale);\n loadLocale = config.loadLocale;\n return { getLocale, setLocale };\n};\n/**\n * Return the active locale code.\n */\nconst getLocale = () => {\n return activeLocale;\n};\n/**\n * Set the active locale code, and begin loading templates for that locale using\n * the `loadLocale` function that was passed to `configureLocalization`. Returns\n * a promise that resolves when the next locale is ready to be rendered.\n *\n * Note that if a second call to `setLocale` is made while the first requested\n * locale is still loading, then the second call takes precedence, and the\n * promise returned from the first call will resolve when second locale is\n * ready. If you need to know whether a particular locale was loaded, check\n * `getLocale` after the promise resolves.\n *\n * Throws if the given locale is not contained by the configured `sourceLocale`\n * or `targetLocales`.\n */\nconst setLocale = (newLocale) => {\n if (newLocale === (loadingLocale ?? activeLocale)) {\n return loading.promise;\n }\n if (!validLocales || !loadLocale) {\n throw new Error('Internal error');\n }\n if (!validLocales.has(newLocale)) {\n throw new Error('Invalid locale code');\n }\n requestId++;\n const thisRequestId = requestId;\n loadingLocale = newLocale;\n if (loading.settled) {\n loading = new Deferred();\n }\n dispatchStatusEvent({ status: 'loading', loadingLocale: newLocale });\n const localePromise = newLocale === sourceLocale\n ? // We could switch to the source locale synchronously, but we prefer to\n // queue it on a microtask so that switching locales is consistently\n // asynchronous.\n Promise.resolve({ templates: undefined })\n : loadLocale(newLocale);\n localePromise.then((mod) => {\n if (requestId === thisRequestId) {\n activeLocale = newLocale;\n loadingLocale = undefined;\n templates = mod.templates;\n dispatchStatusEvent({ status: 'ready', readyLocale: newLocale });\n loading.resolve();\n }\n // Else another locale was requested in the meantime. Don't resolve or\n // reject, because the newer load call is going to use the same promise.\n // Note the user can call getLocale() after the promise resolves if they\n // need to check if the locale is still the one they expected to load.\n }, (err) => {\n if (requestId === thisRequestId) {\n dispatchStatusEvent({\n status: 'error',\n errorLocale: newLocale,\n errorMessage: err.toString(),\n });\n loading.reject(err);\n }\n });\n return loading.promise;\n};\n//# sourceMappingURL=runtime.js.map","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"customElement\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.customElement), [\"property\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.property), [\"state\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__.state) });","// Do not modify this file by hand!\n// Re-generate this file by running lit-localize.\n\n/**\n * The locale code that templates in this source code are written in.\n */\nexport const sourceLocale = `en`;\n\n/**\n * The other locale codes that this application is localized into. Sorted\n * lexicographically.\n */\nexport const targetLocales = [\n `cs`,\n `de`,\n `el`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n\n/**\n * All valid project locale codes. Sorted lexicographically.\n */\nexport const allLocales = [\n `cs`,\n `de`,\n `el`,\n `en`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.`,\n's1b9047d53d9f9d22': `2) Нажать \"Поделиться\"`,\n's37a9e8aec5713460': `Подробнее`,\n's5c6aad7a7e4a1437': `3) Нажать \"На экран «Домой»\"`,\n's6196153c4b0c1ea0': `Установить`,\n's922329d6f6213590': `Добавить в Dock`,\n'sa5ef80b4bb9b39f8': `Свернуть`,\n'sa7551383d1897fcc': `2) Нажмите \"Добавить в Dock\"`,\n'sba52286c21552a4e': `Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.`,\n'sc79fd7641eb9a975': `Спрятать Инструкцию`,\n'scdaf4bbff76674c8': `На экран «Домой»`,\n'sdfe23506a3b0cdc8': `1) Открыть в Safari браузере`,\n'se740f75b95a51807': `Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.`,\n'sfea652f6580ff086': `Этот веб-сайт имеет функционал приложения.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.`,\n's1b9047d53d9f9d22': `2) Gezinme çubuğunda Paylaş'a basın`,\n's37a9e8aec5713460': `Daha Fazla`,\n's5c6aad7a7e4a1437': `3) Ana Ekrana Ekle'ye basın`,\n's6196153c4b0c1ea0': `Yükle`,\n's922329d6f6213590': `Dock’a Ekle`,\n'sa5ef80b4bb9b39f8': `Küçült`,\n'sa7551383d1897fcc': `2) Dock’a ekleye basın`,\n'sba52286c21552a4e': `Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.`,\n'sc79fd7641eb9a975': `Talimatları gizle`,\n'scdaf4bbff76674c8': `Ana Ekrana Ekle`,\n'sdfe23506a3b0cdc8': `1) Safari tarayıcısında açın`,\n'se740f75b95a51807': `Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.`,\n'sfea652f6580ff086': `Bu site uygulama işlevselliğine sahiptir.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n's1b9047d53d9f9d22': `2) Drücken Sie auf Teilen in der Navigationsleiste`,\n's37a9e8aec5713460': `Mehr`,\n's5c6aad7a7e4a1437': `3) Drücken Sie Hinzufügen zum Startbildschirm`,\n's6196153c4b0c1ea0': `Installieren`,\n's922329d6f6213590': `Zum Dock hinzufügen`,\n'sa5ef80b4bb9b39f8': `Weniger`,\n'sa7551383d1897fcc': `2) Drücken Sie auf Zum Dock hinzufügen`,\n'sba52286c21552a4e': `Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.`,\n'sc79fd7641eb9a975': `Anleitung ausblenden`,\n'scdaf4bbff76674c8': `Hinzufügen zum Startbildschirm`,\n'sdfe23506a3b0cdc8': `1) In Safari-Browser öffnen`,\n'se740f75b95a51807': `Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n'sfea652f6580ff086': `Diese Website verfügt über App-Funktionalität.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.`,\n's1b9047d53d9f9d22': `2) Presionar Compartir en la barra de direcciones`,\n's37a9e8aec5713460': `Más`,\n's5c6aad7a7e4a1437': `3) Presionar Añadir a pantalla de inicio`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Añadir al Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Presionar Añadir al Dock`,\n'sba52286c21552a4e': `Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.`,\n'sc79fd7641eb9a975': `Esconder instrucciones`,\n'scdaf4bbff76674c8': `Añadir a pantalla de inicio`,\n'sdfe23506a3b0cdc8': `1) Abrir en el navegador web Safari`,\n'se740f75b95a51807': `Añádelo a tu Dock para una experiencia amplia y acceso fácil.`,\n'sfea652f6580ff086': `Este sitio tiene funcionalidad de aplicación.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.`,\n's1b9047d53d9f9d22': `2) Druk op delen in de navigatiebalk`,\n's37a9e8aec5713460': `Meer`,\n's5c6aad7a7e4a1437': `3) Druk op Toevoegen aan het startscherm`,\n's6196153c4b0c1ea0': `Installeren`,\n's922329d6f6213590': `Toevoegen aan Dock`,\n'sa5ef80b4bb9b39f8': `Minder`,\n'sa7551383d1897fcc': `2) Druk op Toevoegen aan Dock`,\n'sba52286c21552a4e': `Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.`,\n'sc79fd7641eb9a975': `Instructie verbergen`,\n'scdaf4bbff76674c8': `Toevoegen aan het startscherm`,\n'sdfe23506a3b0cdc8': `1) Open in Safari-browser`,\n'se740f75b95a51807': `Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.`,\n'sfea652f6580ff086': `Deze site heeft app-functionaliteit.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n's1b9047d53d9f9d22': `2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης`,\n's37a9e8aec5713460': `Περισσότερα`,\n's5c6aad7a7e4a1437': `3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας`,\n's6196153c4b0c1ea0': `Εγκατάσταση`,\n's922329d6f6213590': `Προσθήκη στην Πρόσβαση`,\n'sa5ef80b4bb9b39f8': `Λιγότερα`,\n'sa7551383d1897fcc': `2) Πατήστε Προσθήκη στην Πρόσβαση`,\n'sba52286c21552a4e': `Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sc79fd7641eb9a975': `Απόκρυψη Οδηγιών`,\n'scdaf4bbff76674c8': `Προσθήκη στην Οθόνη Αφετηρίας`,\n'sdfe23506a3b0cdc8': `1) Ανοίξτε τον περιηγητή Safari`,\n'se740f75b95a51807': `Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sfea652f6580ff086': `Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.`,\n's1b9047d53d9f9d22': `2) Appuyez sur Partager dans la barre de navigation`,\n's37a9e8aec5713460': `Plus`,\n's5c6aad7a7e4a1437': `3) Appuyez sur Ajouter à l'écran d'accueil`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Ajouter au Dock`,\n'sa5ef80b4bb9b39f8': `Moins`,\n'sa7551383d1897fcc': `2) Appuyez sur Ajouter au Dock`,\n'sba52286c21552a4e': `Installez-le sur votre appareil pour une expérience complète et un accès facile.`,\n'sc79fd7641eb9a975': `Masquer les instructions`,\n'scdaf4bbff76674c8': `Ajouter à l'écran d'accueil`,\n'sdfe23506a3b0cdc8': `1) Ouvrir dans le navigateur Safari`,\n'se740f75b95a51807': `Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.`,\n'sfea652f6580ff086': `Ce site possède des fonctionnalités d'application.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додајте га на Home Screen за широке могућности и лак приступ.`,\n's1b9047d53d9f9d22': `2) Притисните Share у навигационој траци`,\n's37a9e8aec5713460': `Више`,\n's5c6aad7a7e4a1437': `3) Притисните Add to Home Screen`,\n's6196153c4b0c1ea0': `Инсталирај`,\n'sa5ef80b4bb9b39f8': `Мање`,\n'sa7551383d1897fcc': `3) Притисните Add to Dock`,\n'sba52286c21552a4e': `Инсталирајте га на вашем уређају за широке могућности и лак приступ.`,\n'sc79fd7641eb9a975': `Сакриј упутство`,\n'sdfe23506a3b0cdc8': `1) Отворите у Safari прегледачу`,\n'se740f75b95a51807': `Додајте га у вашу Dock за широке могућности и лак приступ.`,\n'sfea652f6580ff086': `Овај сајт има функционалност апликације.`,\n's922329d6f6213590': `Add to Dock`,\n'scdaf4bbff76674c8': `Add to Home Screen`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n's1b9047d53d9f9d22': `2) Wybierz \"Udostępnij\"`,\n's37a9e8aec5713460': `Więcej`,\n's5c6aad7a7e4a1437': `3) Wybierz \"Dodaj do Ekranu Głównego\"`,\n's6196153c4b0c1ea0': `Zainstaluj`,\n's922329d6f6213590': `Dodaj do Docka`,\n'sa5ef80b4bb9b39f8': `Mniej`,\n'sa7551383d1897fcc': `2) Wybierz \"Dodaj do Docka\"`,\n'sba52286c21552a4e': `Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sc79fd7641eb9a975': `Ukryj instrukcję`,\n'scdaf4bbff76674c8': `Dodaj do Ekranu Głównego`,\n'sdfe23506a3b0cdc8': `1) Otwórz przeglądarkę Safari`,\n'se740f75b95a51807': `Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sfea652f6580ff086': `Ta strona posiada funkcje aplikacji.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додайте на Домашній екран для зручного доступу та ширших можливостей.`,\n's1b9047d53d9f9d22': `2) Натиснути «Поділитися»`,\n's37a9e8aec5713460': `Детальніше`,\n's5c6aad7a7e4a1437': `3) Натиснути «На Початковий екран»`,\n's6196153c4b0c1ea0': `Встановити`,\n's922329d6f6213590': `Додати на Dock`,\n'sa5ef80b4bb9b39f8': `Згорнути`,\n'sa7551383d1897fcc': `2) Натиснути «Додати на Dock»`,\n'sba52286c21552a4e': `Встановіть на ваш пристрій для зручного доступу та ширших можливостей.`,\n'sc79fd7641eb9a975': `Сховати Інструкцію`,\n'scdaf4bbff76674c8': `На Початковий экран`,\n'sdfe23506a3b0cdc8': `1) Відкрити в Safari браузері`,\n'se740f75b95a51807': `Додайте на панель Dock для зручного доступу та ширших можливостей.`,\n'sfea652f6580ff086': `Цей сайт має функції додатку.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。`,\n's1b9047d53d9f9d22': `2) 點擊列表上的分享按鈕`,\n's37a9e8aec5713460': `詳細資訊`,\n's5c6aad7a7e4a1437': `3) 點擊加入主畫面`,\n's6196153c4b0c1ea0': `安裝`,\n's922329d6f6213590': `添加到Dock欄`,\n'sa5ef80b4bb9b39f8': `簡短資訊`,\n'sa7551383d1897fcc': `2) 點選添加到Dock欄`,\n'sba52286c21552a4e': `在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。`,\n'sc79fd7641eb9a975': `隱藏安裝流程`,\n'scdaf4bbff76674c8': `將App加入主畫面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上瀏覽此網頁`,\n'se740f75b95a51807': `將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。`,\n'sfea652f6580ff086': `此網站具有應用程式功能。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`,\n's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`,\n's37a9e8aec5713460': `详细资讯`,\n's5c6aad7a7e4a1437': `3) 点击添加到主屏幕`,\n's6196153c4b0c1ea0': `安装`,\n's922329d6f6213590': `添加到Dock`,\n'sa5ef80b4bb9b39f8': `简短资讯`,\n'sa7551383d1897fcc': `2) 按下添加到Dock`,\n'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`,\n'sc79fd7641eb9a975': `隐藏安装流程`,\n'scdaf4bbff76674c8': `将App添加到主屏幕`,\n'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`,\n'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`,\n'sfea652f6580ff086': `此网站具备app的功能性。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.`,\n's1b9047d53d9f9d22': `2) Premi Condividi nella barra di navigazione`,\n's37a9e8aec5713460': `Più`,\n's5c6aad7a7e4a1437': `3) Premi Aggiungi alla schermata principale`,\n's6196153c4b0c1ea0': `Installa`,\n's922329d6f6213590': `Aggiungi al Dock`,\n'sa5ef80b4bb9b39f8': `Meno`,\n'sa7551383d1897fcc': `2) Premi Aggiungi al Dock`,\n'sba52286c21552a4e': `Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.`,\n'sc79fd7641eb9a975': `Nascondi istruzioni`,\n'scdaf4bbff76674c8': `Aggiungi alla schermata principale`,\n'sdfe23506a3b0cdc8': `1) Apri nel browser Safari`,\n'se740f75b95a51807': `Aggiungilo al Dock per un'esperienza più completa e un accesso facile.`,\n'sfea652f6580ff086': `Questo sito ha funzionalità di app.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Přidejte jej na plochu pro rozšířené využití a snadný přístup.`,\n's1b9047d53d9f9d22': `2) Stiskněte tlačítko Sdílet na navigačním panelu`,\n's37a9e8aec5713460': `Vice`,\n's5c6aad7a7e4a1437': `3) Stiskněte tlačítko Přidat na plochu`,\n's6196153c4b0c1ea0': `Nainstalovat`,\n's922329d6f6213590': `Přidat do Docku`,\n'sa5ef80b4bb9b39f8': `Méně`,\n'sa7551383d1897fcc': `2) Stiskněte Přidat do Docku`,\n'sba52286c21552a4e': `Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.`,\n'sc79fd7641eb9a975': `Skrýt instrukce`,\n'scdaf4bbff76674c8': `Přidat na plochu`,\n'sdfe23506a3b0cdc8': `1) Otevřete v prohlížeči Safari`,\n'se740f75b95a51807': `Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.`,\n'sfea652f6580ff086': `Tento web má funkce aplikace.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.`,\n's1b9047d53d9f9d22': `2) Trykk på Del-knappen i navigasjonslinjen`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Velg Legg til på Hjem-skjerm`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Legg til i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Velg Legg til i Dock`,\n'sba52286c21552a4e': `Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sc79fd7641eb9a975': `Skjul instruksjoner`,\n'scdaf4bbff76674c8': `Legg til på Hjem-skjerm`,\n'sdfe23506a3b0cdc8': `1) Åpne i Safari`,\n'se740f75b95a51807': `Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sfea652f6580ff086': `Denne siden har app-funksjonalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.`,\n's1b9047d53d9f9d22': `2) Pressione Compartilhar na barra de endereço`,\n's37a9e8aec5713460': `Mais`,\n's5c6aad7a7e4a1437': `3) Pressione Adicionar à Tela de Início`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Adicionar ao Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Pressione Adicionar ao Dock`,\n'sba52286c21552a4e': `Instale no dispositivo para uma melhor experiência e mais fácil acesso.`,\n'sc79fd7641eb9a975': `Ocultar Instruções`,\n'scdaf4bbff76674c8': `Adicionar à Tela de Início`,\n'sdfe23506a3b0cdc8': `1) Abra no navegador Safari`,\n'se740f75b95a51807': `Adicione ao Dock para uma melhor experiência e mais fácil acesso.`,\n'sfea652f6580ff086': `Este site possui funcionalidade de aplicativo.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。`,\n's1b9047d53d9f9d22': `2) ナビゲーションバーで共有を押す`,\n's37a9e8aec5713460': `展開`,\n's5c6aad7a7e4a1437': `3) 「ホーム画面に追加」を押す`,\n's6196153c4b0c1ea0': `インストール`,\n's922329d6f6213590': `Dockに追加`,\n'sa5ef80b4bb9b39f8': `折りたたむ`,\n'sa7551383d1897fcc': `2) 「Dockに追加」を押す`,\n'sba52286c21552a4e': `デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。`,\n'sc79fd7641eb9a975': `説明を非表示`,\n'scdaf4bbff76674c8': `ホーム画面に追加`,\n'sdfe23506a3b0cdc8': `1) Safariで開く`,\n'se740f75b95a51807': `ドックに追加して、幅広い体験と簡単なアクセスを実現してください。`,\n'sfea652f6580ff086': `このサイトはアプリ機能があります。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.`,\n's1b9047d53d9f9d22': `2) Tryck på Dela-knappen i verktygsfältet`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Välj Lägg till på hemskärmen`,\n's6196153c4b0c1ea0': `Installera`,\n's922329d6f6213590': `Lägg till i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Välj Lägg till i Dock`,\n'sba52286c21552a4e': `Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sc79fd7641eb9a975': `Göm instruktioner`,\n'scdaf4bbff76674c8': `Lägg till på hemskärmen`,\n'sdfe23506a3b0cdc8': `1) Öppna i Safari`,\n'se740f75b95a51807': `Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sfea652f6580ff086': `Denna webbsajt har app-funktionalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.`,\n's1b9047d53d9f9d22': `2) 내비게이션 바에서 공유 버튼 누르기`,\n's37a9e8aec5713460': `더보기`,\n's5c6aad7a7e4a1437': `3) 홈 화면에 추가 버튼 누르기`,\n's6196153c4b0c1ea0': `설치`,\n's922329d6f6213590': `Dock에 추가`,\n'sa5ef80b4bb9b39f8': `닫기`,\n'sa7551383d1897fcc': `2) Dock에 추가 버튼 누르기`,\n'sba52286c21552a4e': `더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.`,\n'sc79fd7641eb9a975': `안내 숨기기`,\n'scdaf4bbff76674c8': `홈 화면에 추가`,\n'sdfe23506a3b0cdc8': `1) Safari 브라우저에서 열기`,\n'se740f75b95a51807': `더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.`,\n'sfea652f6580ff086': `이 사이트는 앱 기능을 가지고 있습니다.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n's1b9047d53d9f9d22': `2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ`,\n's37a9e8aec5713460': `បង្ហាញបន្ថែម`,\n's5c6aad7a7e4a1437': `3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n's6196153c4b0c1ea0': `តំឡើង`,\n's922329d6f6213590': `បន្ថែមទៅកាន់ Dock`,\n'sa5ef80b4bb9b39f8': `បង្ហាញតិច`,\n'sa7551383d1897fcc': `2) ចុចលើ បន្ថែមទៅកាន់ Dock`,\n'sba52286c21552a4e': `តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sc79fd7641eb9a975': `បិទការណែនាំ`,\n'scdaf4bbff76674c8': `បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n'sdfe23506a3b0cdc8': `1) បើកនៅក្នុងកម្មវិធី Safari`,\n'se740f75b95a51807': `បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sfea652f6580ff086': `គេហទំព័រនេះមានមុខងារជាកម្មវិធី។`,\n };\n ","import { configureLocalization } from '@lit/localize';\r\nimport {\r\n sourceLocale,\r\n targetLocales,\r\n} from './locale-codes';\r\n\r\nimport * as ru from './locales/ru';\r\nimport * as tr from './locales/tr';\r\nimport * as de from \"./locales/de\";\r\nimport * as es from \"./locales/es\";\r\nimport * as nl from \"./locales/nl\";\r\nimport * as el from \"./locales/el\";\r\nimport * as fr from \"./locales/fr\";\r\nimport * as sr from \"./locales/sr\";\r\nimport * as pl from \"./locales/pl\";\r\nimport * as uk from \"./locales/uk\";\r\nimport * as zh from \"./locales/zh\";\r\nimport * as zhCN from \"./locales/zh-CN\";\r\nimport * as it from \"./locales/it\";\r\nimport * as cs from \"./locales/cs\";\r\nimport * as no from \"./locales/no\";\r\nimport * as pt from \"./locales/pt\";\r\nimport * as ja from \"./locales/ja\";\r\nimport * as sv from \"./locales/sv\";\r\nimport * as ko from \"./locales/ko\";\r\nimport * as km from \"./locales/km\";\r\n\r\nconst localizedTemplates = new Map([\r\n ['ru', ru],\r\n ['tr', tr],\r\n ['de', de],\r\n ['es', es],\r\n ['nl', nl],\r\n ['el', el],\r\n ['fr', fr],\r\n ['sr', sr],\r\n ['pl', pl],\r\n ['uk', uk],\r\n ['zh', zh],\r\n ['zh-CN', zhCN],\r\n ['it', it],\r\n ['cs', cs],\r\n ['no', no], // + nb\r\n ['pt', pt],\r\n ['ja', ja],\r\n ['sv', sv],\r\n ['ko', ko],\r\n ['km', km]\r\n])\r\n\r\nexport const { getLocale, setLocale } = configureLocalization({\r\n sourceLocale,\r\n targetLocales,\r\n // @ts-ignore\r\n loadLocale: async (lang: string) => localizedTemplates.get(lang)\r\n});\r\n\r\nexport const changeLocale = (lang: string) => {\r\n // Norwegian Bokmål is same as Norwegian\r\n switch (lang.slice(0, 2)) {\r\n case 'nb':\r\n lang = 'no';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n try {\r\n if (localizedTemplates.get(lang))\r\n setLocale(lang);\r\n else\r\n setLocale(lang.slice(0, 2));\r\n }\r\n catch {\r\n console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);\r\n }\r\n};\r\n","import { ImageResource } from 'web-app-manifest';\r\n\r\nexport interface IRelatedApp {\r\n id: string,\r\n platform: string,\r\n url: string\r\n}\r\n\r\nexport interface IWindow extends Window {\r\n defferedPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\ntype Booleanish = 'true' | 'false';\r\n\r\nexport interface PWAInstallAttributes {\r\n ['manual-apple']?: Booleanish;\r\n ['manual-chrome']?: Booleanish;\r\n ['disable-chrome']?: Booleanish;\r\n ['install-description']?: string;\r\n ['disable-install-description']?: Booleanish;\r\n ['manifest-url']?: string;\r\n name?: string;\r\n description?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class Manifest {\r\n constructor() {\r\n this.icons = [{ src: '' }];\r\n this.screenshots = undefined;\r\n this.short_name = 'PWA';\r\n this.name = 'Progressive web application';\r\n this.description = 'Progressive web application';\r\n }\r\n short_name: string;\r\n icons: ImageResource[];\r\n screenshots?: ImageResource[];\r\n name: string;\r\n description: string;\r\n}\r\n","import {css} from 'lit'; export default css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`;\n ","import { html } from 'lit';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nconst template = (screenshots: WebAppManifest['screenshots'], theme: string, scrollToNextPage: any, scrollToPrevPage: any) => {\r\n return html`\r\n ${screenshots? html`\r\n
\r\n
\r\n
\r\n ${screenshots.map(screenshot => html``)}\r\n
\r\n
\r\n \r\n ${theme != 'default'?\r\n html``\r\n :\r\n html``\r\n }\r\n \r\n \r\n ${theme != 'default'?\r\n html`\r\n \r\n `\r\n :\r\n html`\r\n \r\n \r\n \r\n `\r\n }\r\n \r\n
`\r\n : ''}`;\r\n};\r\nexport default template;\r\n","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nimport styles from './styles-gallery.scss';\r\nimport template from './template-gallery';\r\n\r\n@customElement('pwa-gallery')\r\nexport default class PWAGalleryElement extends LitElement {\r\n\t@property() screenshots: WebAppManifest['screenshots'] = [];\r\n\t@property() theme: 'default' | 'apple_desktop' | 'apple_mobile' = 'default';\r\n\r\n\tstatic get styles() {\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tpublic calcScrollSize = () => {\r\n\t\t//@ts-ignore\r\n\t\tconst gallery = this.shadowRoot.querySelector('#paginated_gallery');\r\n\t\tif (!gallery)\r\n\t\t\treturn;\r\n\t\tconst gallery_scroller = gallery.querySelector('.gallery_scroller');\r\n\t\tif (!gallery_scroller)\r\n\t\t\treturn;\r\n\t\tconst gallery_items = Array.from(gallery_scroller.querySelectorAll('img'));\r\n\t\tif (!gallery_items)\r\n\t\t\treturn;\r\n\t\tconst gallery_item = gallery_items.find((item) => { return (item.offsetWidth + item.offsetLeft) >= gallery_scroller.scrollLeft})\r\n\t\tif (!gallery_item)\r\n\t\t\treturn;\r\n\r\n\t\treturn {\r\n\t\t\tscroller: gallery_scroller,\r\n\t\t\titem: gallery_item\r\n\t\t}\r\n\t}\r\n\tpublic scrollToNextPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.nextElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft + _tools.scroller.clientWidth + _tools.item.nextElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\tpublic scrollToPrevPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.previousElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft - _tools.scroller.clientWidth - _tools.item.previousElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\tprivate _init = () => {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools)\r\n\t\t\tsetTimeout(\r\n\t\t\t\t() => {\r\n\t\t\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t)\r\n\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\tthis._init();\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(\r\n this.screenshots,\r\n\t\t\tthis.theme,\r\n\t\t\tthis.scrollToNextPage,\r\n\t\t\tthis.scrollToPrevPage\r\n )}`;\r\n\t}\r\n}\r\n","import { html } from 'lit';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, icon: string, install: any) => {\r\n return html`\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n
${location.hostname}
\r\n
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n `;\r\n};\r\nexport default template;\r\n","import { WebAppManifest } from 'web-app-manifest';\r\nimport { IRelatedApp } from './types/types';\r\n\r\nconst _eventDispatcher = (_element: Element, name: string, message: string) => {\r\n const event = new CustomEvent(name, {\r\n detail: {\r\n message\r\n }\r\n });\r\n _element.dispatchEvent(event);\r\n}\r\nexport default class Utils {\r\n static isAppleMobile(): boolean {\r\n\t\tif (\r\n (\r\n ['iPhone', 'iPad', 'iPod'].includes(navigator.platform) ||\r\n (navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n )\r\n && ('serviceWorker' in navigator)\r\n )\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static isAppleDesktop(): boolean {\r\n // check if it's a mac\r\n const userAgent = navigator.userAgent.toLowerCase();\r\n if (navigator.maxTouchPoints || !userAgent.match(/macintosh/))\r\n return false;\r\n // check safari version >= 17\r\n const version = /version\\/(\\d{2})\\./.exec(userAgent)\r\n if (!version || !version[1] || !(parseInt(version[1]) >= 17))\r\n return false;\r\n // hacky way to detect Sonoma\r\n const audioCheck = document.createElement('audio').canPlayType('audio/wav; codecs=\"1\"') ? true : false;\r\n const webGLCheck = new OffscreenCanvas(1, 1).getContext('webgl') ? true : false;\r\n\r\n return audioCheck && webGLCheck;\r\n }\r\n \r\n static isStandalone() {\r\n\t\tif (window.matchMedia('(display-mode: standalone)').matches || ('standalone' in navigator && (navigator as any).standalone === true))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static async getInstalledRelatedApps(): Promise {\r\n if ('getInstalledRelatedApps' in navigator)\r\n try{\r\n await (navigator as any).getInstalledRelatedApps().then((relatedApps: IRelatedApp[]) => {\r\n return relatedApps;\r\n });\r\n } catch (e) {}\r\n \r\n return [];\r\n }\r\n \r\n static async isRelatedAppsInstalled(): Promise {\r\n const _relatedApps = await this.getInstalledRelatedApps();\r\n return _relatedApps.length? true : false;\r\n }\r\n\r\n static eventInstalledSuccess(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-success-event', 'App install success (Chromium/Android only)');\r\n }\r\n static eventInstalledFail(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-fail-event', 'App install failed (Chromium/Android only)');\r\n }\r\n static eventUserChoiceResult(_element: Element, message: string) {\r\n _eventDispatcher(_element, 'pwa-user-choice-result-event', message);\r\n }\r\n static eventInstallAvailable(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-available-event', 'App install available');\r\n }\r\n static eventInstallHowTo(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-how-to-event', 'App install instruction showed');\r\n }\r\n static eventGallery(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-gallery-event', 'App install gallery showed');\r\n }\r\n\r\n static normalizeManifestAssetUrls(manifest: WebAppManifest, manifestUrl: string) {\r\n const normalizedManifestUrl = new URL(manifestUrl, document.location.href);\r\n [...manifest.icons || [], ...manifest.screenshots || []].forEach(asset => {\r\n asset.src = new URL(asset.src, normalizedManifestUrl).href;\r\n })\r\n }\r\n}","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\n\r\n// import TouchDragListener from \"./touch-listener\";\r\n\r\ntype IProps = {\r\n name: string,\r\n description: string,\r\n icon: string\r\n}\r\n\r\nimport template from './template-bottom-sheet';\r\nimport Utils from '../../../utils';\r\n\r\n@customElement('pwa-bottom-sheet')\r\nexport default class PWABottomSheetElement extends LitElement {\r\n\t@property({type: Object}) props: IProps = {\r\n name: '',\r\n description: '',\r\n icon: ''\r\n };\r\n @property({type: Object}) install = {handleEvent: () => {}};\r\n\t@property() hideDialog = () => {};\r\n\t@property() disableClose = false;\r\n\r\n\tprivate _callInstall = () => {\r\n\t\tthis.install.handleEvent();\r\n\t}\r\n\r\n\tprivate _callHide = () => {\r\n\t\tthis.hideDialog();\r\n\t\tthis.setupAppearence();\r\n\t}\r\n\r\n\tprivate bindedElement: {\r\n\t\ttouchElement: HTMLElement,\r\n\t\tlistener: any }| null = null;\r\n\tprivate readonly _saveBodyStyle = document.body.style.overscrollBehaviorY;\r\n\tprivate dragMobileSheet = (element: HTMLElement | null | undefined, touchTargetElement: HTMLElement | undefined, infoElement: HTMLElement | undefined) => {\r\n\t\tif (!element || !touchTargetElement || !infoElement)\r\n\t\t\treturn null;\r\n\r\n\t\tlet dragOffset = 0;\r\n\t\tconst bounceOffset = 35;\r\n\t\tconst bottomSize = touchTargetElement.clientHeight + infoElement.clientHeight;\r\n\r\n\t\tconst getYCoord = (e: MouseEvent | TouchEvent): number => {\r\n\t\t\treturn (e as MouseEvent).clientY || ((e as TouchEvent).changedTouches && (e as TouchEvent).changedTouches.length? (e as TouchEvent).changedTouches[0].clientY : 0);\r\n\t\t}\r\n\r\n\t\tconst dragMouseDown = (e: MouseEvent | TouchEvent) => {\r\n\t\t\twindow.addEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.addEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.addEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.addEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tdragOffset = getYCoord(e) - touchTargetElement.getBoundingClientRect().top;\r\n\r\n\t\t\tdocument.body.style.overscrollBehaviorY = 'none';\r\n\t\t}\r\n\t\tconst dragMouseUp = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tdocument.body.style.overscrollBehaviorY = this._saveBodyStyle;\r\n\r\n\t\t\tif (!this.disableClose && getYCoord(e) >= window.innerHeight - 25) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight + 50, true);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (window.innerHeight - getYCoord(e) > element.clientHeight / 2.5) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - element.clientHeight);\r\n\t\t\t\t\r\n\t\t\t\ttry {\r\n\t\t\t\t\tUtils.eventGallery((this.getRootNode() as ShadowRoot).host);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - bottomSize - bounceOffset);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dragMouseMove = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tconst currentY = getYCoord(e);\r\n\r\n\t\t\tif (this.disableClose && window.innerHeight - currentY < 70) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (currentY <= (window.innerHeight - element.clientHeight + dragOffset)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`none`\r\n\t\t\t)\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"--translateY\",\r\n\t\t\t\t`translateY(${currentY - dragOffset}px)`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => {\r\n\t\t\twindow.removeEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.removeEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.removeEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.removeEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tif (window.innerWidth >= 768)\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!toPoint && getYCoord(e) >= window.innerHeight - bottomSize)\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(calc(100vh - ${bottomSize}px))`\r\n\t\t\t\t);\r\n\t\t\telse\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(${(toPoint || getYCoord(e)) + bounceOffset}px)`\r\n\t\t\t\t);\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s`\r\n\t\t\t);\r\n\r\n\t\t\tif (hideDialog){\r\n\t\t\t\ttouchTargetElement.removeEventListener('mousedown', dragMouseDown);\r\n\t\t\t\ttouchTargetElement.removeEventListener('touchstart', dragMouseDown);\r\n\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\tthis._callHide,\r\n\t\t\t\t\t250\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\ttouchTargetElement.addEventListener('mousedown', dragMouseDown);\r\n\t\ttouchTargetElement.addEventListener('touchstart', dragMouseDown, {passive: true});\r\n\r\n\t\tcloseDragElement(new MouseEvent('mouseup'), window.innerHeight - bottomSize - bounceOffset);\r\n\r\n\t\treturn {\r\n\t\t\ttouchElement: touchTargetElement,\r\n\t\t\tlistener: dragMouseDown\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupAppearence = () => {\r\n\t\tif (this.bindedElement) {\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('mousedown', this.bindedElement.listener);\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('touchstart', this.bindedElement.listener);\r\n\t\t}\r\n\r\n\t\tthis.bindedElement = this.dragMobileSheet(\r\n\t\t\tthis.parentElement?.parentElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement);\r\n\t}\r\n\tprivate _init = () => {\r\n\t\tthis.setupAppearence();\r\n\r\n\t\twindow.addEventListener('resize', this.setupAppearence);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tthis._init();\r\n return;\r\n\t}\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(this.props.name, this.props.description, this.props.icon, this._callInstall)}`;\r\n\t}\r\n}\r\n","import {css} from 'lit'; export default css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,\"Segoe UI\",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:\"\";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,\"Segoe UI\",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:\"\";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`;\n ","import {css} from 'lit'; export default css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,\"Segoe UI\";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon description\" \"welcome welcome\" \"how-to how-to\" \"gallery gallery\" \"button button\";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon\" \"description\" \"welcome\" \"how-to\" \"gallery\" \"button\";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;\n ","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"classMap\"]: () => (__WEBPACK_EXTERNAL_MODULE_lit_directives_class_map_js_2f88e643__.classMap) });","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n
\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n ${!disableClose? html`` : ''}\r\n
\r\n
${location.hostname}
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n ${!disableDescription? \r\n html`
${installDescription? installDescription: `${msg('This site has app functionality.')} ${msg('Install it on your device for extensive experience and easy access.')}`}
` \r\n : ''}\r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n ${screenshotsAvailable? html``:''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n
\r\n
`;\r\n};\r\nexport default template;\r\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, isDesktop: boolean, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested, desktop: isDesktop}};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n `;\r\n};\r\nexport default template;\r\n","import { LitElement, PropertyValues, html } from 'lit';\r\nimport { localized } from '@lit/localize';\r\nimport { property, state, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { changeLocale } from './localization';\r\n\r\nimport { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types';\r\n\r\nimport PWAGalleryElement from './gallery';\r\nimport PWABottomSheetElement from './templates/chrome/bottom-sheet';\r\n\r\nimport Utils from './utils';\r\n\r\ndeclare const window: IWindow;\r\n\r\nimport styles from './templates/chrome/styles.scss';\r\nimport stylesApple from './templates/apple/styles-apple.scss';\r\n\r\nimport template from './templates/chrome/template';\r\nimport templateApple from './templates/apple/template-apple';\r\n\r\n/**\r\n * @event {CustomEvent} pwa-install-success-event - App install success (Chromium/Android only)\r\n * @event {CustomEvent} pwa-install-fail-event - App install failed (Chromium/Android only)\r\n * @event {CustomEvent} pwa-user-choice-result-event - dismissed, accepted\r\n * @event {CustomEvent} pwa-install-available-event - App install available\r\n * @event {CustomEvent} pwa-install-how-to-event - App install instruction showed\r\n * @event {CustomEvent} pwa-install-gallery-event - App install gallery showed\r\n */\r\n@localized()\r\n@customElement('pwa-install')\r\nexport class PWAInstallElement extends LitElement {\r\n\t@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json';\r\n\t@property() icon = '';\r\n\t@property() name = '';\r\n\t@property() description = '';\r\n\t@property({attribute: 'install-description'}) installDescription = '';\r\n\t@property({attribute: 'disable-install-description', type: Boolean}) disableDescription = false;\r\n\t@property({attribute: 'disable-screenshots', type: Boolean}) disableScreenshots = false;\r\n\t@property({attribute: 'disable-screenshots-apple', type: Boolean}) disableScreenshotsApple = false;\r\n\t@property({attribute: 'disable-screenshots-chrome', type: Boolean}) disableScreenshotsChrome = false;\r\n\t@property({attribute: 'manual-apple', type: Boolean}) manualApple = false;\r\n\t@property({attribute: 'manual-chrome', type: Boolean}) manualChrome = false;\r\n\t@property({attribute: 'disable-chrome', type: Boolean}) disableChrome = false;\r\n\t@property({attribute: 'disable-close', type: Boolean}) disableClose = false;\r\n\r\n\tstatic get styles() {\r\n\t\treturn [ styles, stylesApple ];\r\n\t}\r\n\r\n\t@state() externalPromptEvent: BeforeInstallPromptEvent | null = null;\r\n\r\n\tpublic platforms: BeforeInstallPromptEvent['platforms'] = [];\r\n\tpublic userChoiceResult = '';\r\n\r\n\tpublic isDialogHidden: boolean = JSON.parse(window.sessionStorage.getItem('pwa-hide-install') || 'false');\r\n\tpublic isInstallAvailable = false;\r\n\tpublic isAppleMobilePlatform = false;\r\n\tpublic isAppleDesktopPlatform = false;\r\n\tpublic isUnderStandaloneMode = false;\r\n\tpublic isRelatedAppsInstalled = false;\r\n\r\n\t/** @internal */\r\n\tprivate _manifest: WebAppManifest = new Manifest();\r\n\t/** @internal */\r\n\tprivate _howToRequested = false;\r\n\t/** @internal */\r\n\tprivate _galleryRequested = false;\r\n\t/** @internal */\r\n\tprivate _install = {\r\n\t\thandleEvent: () => {\r\n\t\t\tif (window.defferedPromptEvent) {\r\n\t\t\t\tthis.hideDialog();\r\n\t\t\t\twindow.defferedPromptEvent.prompt();\r\n\t\t\t\twindow.defferedPromptEvent.userChoice\r\n\t\t\t\t\t.then((choiceResult: PromptResponseObject) => {\r\n\t\t\t\t\t\tthis.userChoiceResult = choiceResult.outcome;\r\n\t\t\t\t\t\tUtils.eventUserChoiceResult(this, this.userChoiceResult);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tUtils.eventInstalledFail(this);\r\n\t\t\t\t\t});\r\n\t\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\tpublic install = () => {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tthis._howToRequested = true;\r\n\t\t\tthis.requestUpdate();\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis._install.handleEvent();\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialog = {\r\n\t\thandleEvent: () => {\r\n\t\t\tthis.isDialogHidden = true;\r\n\t\t\twindow.sessionStorage.setItem('pwa-hide-install', 'true');\r\n\t\t\tthis.requestUpdate();\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialogUser = () => {\r\n\t\tUtils.eventUserChoiceResult(this, 'dismissed');\r\n\t\tthis.userChoiceResult = 'dismissed';\r\n\t\tthis.hideDialog();\r\n\t}\r\n\tpublic hideDialog = () => {\r\n\t\tthis._hideDialog.handleEvent();\r\n\t}\r\n\tpublic showDialog = (forced = false) => {\r\n\t\tthis.isDialogHidden = false;\r\n\t\tif (forced)\r\n\t\t\tthis.isInstallAvailable = true;\r\n\t\twindow.sessionStorage.setItem('pwa-hide-install', 'false');\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tpublic getInstalledRelatedApps = async (): Promise => {\r\n\t\treturn await Utils.getInstalledRelatedApps();\r\n\t}\r\n\r\n\t/** @internal */\r\n\tprivate _howToForApple = {\r\n handleEvent: () => {\r\n\t\t\tthis._howToRequested = !this._howToRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._galleryRequested = false;\r\n\t\t\tthis.requestUpdate();\r\n\r\n\t\t\tif (this._howToRequested) {\r\n\t\t\t\tUtils.eventInstallHowTo(this);\r\n\t\t\t\t\r\n\t\t\t\t// Looks like it's not needed anymore\r\n\t\t\t\t// if (this._manifest.start_url){\r\n\t\t\t\t// \ttry {\r\n\t\t\t\t// \t\thistory.replaceState({}, '', this._manifest.start_url);\r\n\t\t\t\t// \t} catch (e) {}\r\n\t\t\t\t// }\r\n\t\t\t}\t\t\t\t\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate _toggleGallery = {\r\n handleEvent: () => {\r\n\t\t\tthis._galleryRequested = !this._galleryRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._howToRequested = false;\r\n\r\n\t\t\tthis._galleryRequested && Utils.eventGallery(this);\r\n\r\n\t\t\tthis.requestUpdate();\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate async _checkInstalled() {\r\n\t\tthis.isUnderStandaloneMode = Utils.isStandalone();\r\n\t\tthis.isRelatedAppsInstalled = await Utils.isRelatedAppsInstalled();\r\n\t\tthis.isAppleMobilePlatform = Utils.isAppleMobile();\r\n\t\tthis.isAppleDesktopPlatform = Utils.isAppleDesktop();\r\n\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tif (!this.isUnderStandaloneMode) {\r\n\t\t\t\tthis.manualApple && this.hideDialog();\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1000\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.manualChrome && this.hideDialog();\r\n\t\t}\r\n\t}\r\n\t/** @internal */\r\n\tprivate _init = async () => {\r\n\t\twindow.defferedPromptEvent = null;\r\n\r\n\t\tthis._checkInstalled();\r\n\r\n\t\tif (!this.disableChrome) {\r\n\t\t\tconst _promptHandler = (e: BeforeInstallPromptEvent) => {\r\n\t\t\t\twindow.defferedPromptEvent = e;\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.platforms = e.platforms;\r\n\r\n\t\t\t\tif (this.isRelatedAppsInstalled || this.isUnderStandaloneMode) {\r\n\t\t\t\t\tthis.isInstallAvailable = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.userChoiceResult === 'accepted'){\r\n\t\t\t\t\tthis.isDialogHidden = true;\r\n\t\t\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t}\r\n\t\t\tif (this.externalPromptEvent != null)\r\n\t\t\t\tsetTimeout(() => _promptHandler(this.externalPromptEvent!), 300);\r\n\t\t\telse\r\n\t\t\t\twindow.addEventListener('beforeinstallprompt', _promptHandler);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('appinstalled', (e) => {\r\n\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\tthis.isInstallAvailable = false;\r\n\r\n\t\t\tthis.requestUpdate();\r\n\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t});\r\n\r\n\r\n\t\ttry{\r\n\t\t\tconst _response = await fetch(this.manifestUrl);\r\n\t\t\tconst _json = await _response.json() as WebAppManifest;\r\n\t\t\tif (!_response.ok || !_json || !Object.keys(_json))\r\n\t\t\t\tthrow new Error('Manifest not found');\r\n\t\t\tUtils.normalizeManifestAssetUrls(_json, this.manifestUrl);\r\n\t\t\t\r\n\t\t\tthis.icon = this.icon || _json.icons?.length ? _json.icons![0].src : '';\r\n\t\t\tthis.name = this.name || _json['short_name'] || _json.name || '';\r\n\t\t\tthis.description = this.description || _json.description || '';\r\n\t\t\tthis._manifest = _json;\r\n\t\t}\r\n\t\tcatch(e) {\r\n\t\t\tthis.icon = this.icon || this._manifest.icons?.[0].src || '';\r\n\t\t\tthis.name = this.name || this._manifest['short_name'] || '';\r\n\t\t\tthis.description = this.description || this._manifest.description || '';\r\n\t\t}\r\n\t};\r\n\t/** @internal */\r\n\tprivate _requestUpdate = () => {\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tchangeLocale(navigator.language);\r\n\t\tthis._init();\r\n\t\tPWAGalleryElement.finalized;\r\n\t\tPWABottomSheetElement.finalized;\r\n\t\tsuper.connectedCallback();\r\n\t}\r\n\twillUpdate(changedProperties: PropertyValues) {\r\n\t\tif (this.externalPromptEvent && changedProperties.has('externalPromptEvent') && typeof this.externalPromptEvent == 'object') {\r\n\t\t this._init();\r\n\t\t}\r\n\t}\r\n\r\n\t// firstUpdated() {\r\n\t// \treturn;\r\n\t// }\r\n\r\n\trender() {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform)\r\n\t\t\treturn html`${templateApple(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsApple,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._howToForApple,\r\n\t\t\t\tthis.isAppleDesktopPlatform,\r\n\t\t\t\tthis._howToRequested,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t\telse\r\n\t\t\treturn html`${template(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsChrome,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._install,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t}\r\n}\r\n\r\nexport { PWAInstallAttributes };\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { updateWhenLocaleChanges } from './localized-controller.js';\n/**\n * Class decorator to enable re-rendering the given LitElement whenever a new\n * active locale has loaded.\n *\n * See also {@link updateWhenLocaleChanges} for the same functionality without\n * the use of decorators.\n *\n * When using lit-localize in transform mode, applications of this decorator are\n * removed.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {customElement} from 'lit/decorators.js';\n * import {msg, localized} from '@lit/localize';\n *\n * @localized()\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nexport const localized = () => (clazz, _context) => {\n clazz.addInitializer(updateWhenLocaleChanges);\n return clazz;\n};\n//# sourceMappingURL=localized-decorator.js.map","/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=new Set([\"children\",\"localName\",\"ref\",\"style\",\"className\"]),n=new WeakMap,t=(e,t,o,l,a)=>{const s=a?.[t];void 0===s?(e[t]=o,null==o&&t in HTMLElement.prototype&&e.removeAttribute(t)):o!==l&&((e,t,o)=>{let l=n.get(e);void 0===l&&n.set(e,l=new Map);let a=l.get(t);void 0!==o?void 0===a?(l.set(t,a={handleEvent:o}),e.addEventListener(t,a)):a.handleEvent=o:void 0!==a&&(l.delete(t),e.removeEventListener(t,a))})(e,s,o)},o=({react:n,tagName:o,elementClass:l,events:a,displayName:s})=>{const c=new Set(Object.keys(a??{})),r=n.forwardRef(((s,r)=>{const i=n.useRef(new Map),d=n.useRef(null),f={},u={};for(const[n,t]of Object.entries(s))e.has(n)?f[\"className\"===n?\"class\":n]=t:c.has(n)||n in l.prototype?u[n]=t:f[n]=t;return n.useLayoutEffect((()=>{if(null===d.current)return;const e=new Map;for(const n in u)t(d.current,n,s[n],i.current.get(n),a),i.current.delete(n),e.set(n,s[n]);for(const[e,n]of i.current)t(d.current,e,void 0,n,a);i.current=e})),n.useLayoutEffect((()=>{d.current?.removeAttribute(\"defer-hydration\")}),[]),f.suppressHydrationWarning=!0,n.createElement(o,{...f,ref:n.useCallback((e=>{d.current=e,\"function\"==typeof r?r(e):null!==r&&(r.current=e)}),[r])})}));return r.displayName=s??l.name,r};export{o as createComponent};\n//# sourceMappingURL=create-component.js.map\n","var x = (y) => {\n\tvar x = {}; __webpack_require__.d(x, y); return x\n} \nvar y = (x) => (() => (x))\nconst __WEBPACK_NAMESPACE_OBJECT__ = x({ [\"default\"]: () => (__WEBPACK_EXTERNAL_MODULE_react__[\"default\"]) });","\r\nimport { PWAInstallElement } from '../index';\r\nimport { createComponent, ReactWebComponent } from '@lit/react';\r\nimport react from 'react';\r\n\r\nconst PWAInstall = createComponent({\r\n\treact,\r\n\ttagName: 'pwa-install',\r\n\telementClass: PWAInstallElement,\r\n\tevents: {\r\n\t onPwaInstallSuccessEvent: 'pwa-install-success-event',\r\n\t onPwaInstallFailEvent: 'pwa-install-fail-event',\r\n\t onPwaUserChoiceResultEvent: 'pwa-user-choice-result-event',\r\n\t onPwaInstallAvailableEvent: 'pwa-install-available-event',\r\n\t onPwaInstallHowToEvent: 'pwa-install-how-to-event',\r\n\t onPwaInstallGalleryEvent: 'pwa-install-gallery-event'\r\n\t}\r\n});\r\n\r\nexport default PWAInstall;"],"names":["__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","y","x","d","__WEBPACK_EXTERNAL_MODULE_lit__","joinStringsAndValues","strings","values","valueOrder","concat","i","length","defaultMsg","template","isStrTagged","val","msg","installed","LOCALE_STATUS_EVENT","LocalizeController","constructor","host","this","__litLocalizeEventHandler","event","detail","status","requestUpdate","hostConnected","window","addEventListener","hostDisconnected","removeEventListener","updateWhenLocaleChanges","addController","Deferred","settled","promise","Promise","resolve","reject","_resolve","_reject","error","hl","toString","HASH_DELIMITER","HTML_PREFIX","STRING_PREFIX","generateMsgId","isHtmlTagged","str","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","fnv1a64","join","expressionOrders","WeakMap","hashCache","Map","runtimeMsg","templates","options","id","undefined","set","generateId","localized","order","map","dispatchStatusEvent","dispatchEvent","CustomEvent","loadingLocale","sourceLocale","validLocales","loadLocale","activeLocale","loading","requestId","getLocale","setLocale","newLocale","Error","has","thisRequestId","then","mod","readyLocale","err","errorLocale","errorMessage","__WEBPACK_EXTERNAL_MODULE_lit_decorators_js_226d44c5__","targetLocales","localizedTemplates","config","async","lang","impl","_installMsgImplementation","Set","add","Manifest","icons","src","screenshots","short_name","name","description","css","theme","scrollToNextPage","scrollToPrevPage","html","PWAGalleryElement","LitElement","calcScrollSize","gallery","shadowRoot","querySelector","gallery_scroller","gallery_items","Array","from","querySelectorAll","gallery_item","find","item","offsetWidth","offsetLeft","scrollLeft","scroller","_tools","nextElementSibling","scrollTo","top","left","clientWidth","behavior","previousElementSibling","_init","styles","firstUpdated","setTimeout","connectedCallback","super","render","property","customElement","icon","install","_eventDispatcher","_element","message","Utils","isAppleMobile","includes","navigator","platform","userAgent","match","maxTouchPoints","isAppleDesktop","toLowerCase","version","exec","parseInt","audioCheck","document","createElement","canPlayType","webGLCheck","OffscreenCanvas","getContext","isStandalone","matchMedia","matches","standalone","getInstalledRelatedApps","relatedApps","e","isRelatedAppsInstalled","eventInstalledSuccess","eventInstalledFail","eventUserChoiceResult","eventInstallAvailable","eventInstallHowTo","eventGallery","normalizeManifestAssetUrls","manifest","manifestUrl","normalizedManifestUrl","URL","location","href","forEach","asset","PWABottomSheetElement","props","handleEvent","hideDialog","disableClose","_callInstall","_callHide","setupAppearence","bindedElement","_saveBodyStyle","body","style","overscrollBehaviorY","dragMobileSheet","element","touchTargetElement","infoElement","dragOffset","bottomSize","clientHeight","getYCoord","clientY","changedTouches","dragMouseDown","dragMouseUp","dragMouseMove","getBoundingClientRect","innerHeight","closeDragElement","getRootNode","currentY","setProperty","toPoint","innerWidth","passive","MouseEvent","touchElement","listener","parentElement","getElementsByClassName","createRenderRoot","type","__WEBPACK_EXTERNAL_MODULE_lit_directives_class_map_js_2f88e643__","installDescription","disableDescription","disableScreenshots","installAvailable","toggleGallery","galleryRequested","installDialogClasses","available","screenshotsAvailable","howToForApple","isDesktop","howToRequested","desktop","PWAInstallElement","disableScreenshotsApple","disableScreenshotsChrome","manualApple","manualChrome","disableChrome","externalPromptEvent","platforms","userChoiceResult","isDialogHidden","JSON","parse","sessionStorage","getItem","isInstallAvailable","isAppleMobilePlatform","isAppleDesktopPlatform","isUnderStandaloneMode","_manifest","_howToRequested","_galleryRequested","_install","defferedPromptEvent","prompt","userChoice","choiceResult","outcome","catch","_hideDialog","setItem","_hideDialogUser","showDialog","forced","_howToForApple","_toggleGallery","_checkInstalled","_promptHandler","preventDefault","_response","fetch","_json","json","ok","keys","_requestUpdate","slice","changeLocale","language","finalized","willUpdate","changedProperties","attribute","Boolean","state","clazz","_context","addInitializer","n","t","l","a","s","HTMLElement","removeAttribute","delete","__WEBPACK_EXTERNAL_MODULE_react__","PWAInstall","react","tagName","elementClass","events","displayName","c","r","forwardRef","useRef","f","u","entries","useLayoutEffect","current","suppressHydrationWarning","ref","useCallback","onPwaInstallSuccessEvent","onPwaInstallFailEvent","onPwaUserChoiceResultEvent","onPwaInstallAvailableEvent","onPwaInstallHowToEvent","onPwaInstallGalleryEvent"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/umd/pwa-install.umd.js b/dist/umd/pwa-install.umd.js index 25f110d..e578fb7 100644 --- a/dist/umd/pwa-install.umd.js +++ b/dist/umd/pwa-install.umd.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("lit"),require("lit/decorators.js"),require("lit/directives/class-map.js")):"function"==typeof define&&define.amd?define(["lit","lit/decorators.js","lit/directives/class-map.js"],t):"object"==typeof exports?exports.PWAInstallComponent=t(require("lit"),require("lit/decorators.js"),require("lit/directives/class-map.js")):e.PWAInstallComponent=t(e.lit,e["lit/decorators.js"],e["lit/directives/class-map.js"])}(globalThis,((e,t,a)=>(()=>{"use strict";var l={161:t=>{t.exports=e},429:e=>{e.exports=t},125:e=>{e.exports=a}},i={};function o(e){var t=i[e];if(void 0!==t)return t.exports;var a=i[e]={exports:{}};return l[e](a,a.exports,o),a.exports}o.d=(e,t)=>{for(var a in t)o.o(t,a)&&!o.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};o.r(s),o.d(s,{PWAInstallElement:()=>Fe});var n={};o.r(n),o.d(n,{templates:()=>le});var r={};o.r(r),o.d(r,{templates:()=>ie});var d={};o.r(d),o.d(d,{templates:()=>oe});var c={};o.r(c),o.d(c,{templates:()=>se});var p={};o.r(p),o.d(p,{templates:()=>ne});var b={};o.r(b),o.d(b,{templates:()=>re});var g={};o.r(g),o.d(g,{templates:()=>de});var h={};o.r(h),o.d(h,{templates:()=>ce});var m={};o.r(m),o.d(m,{templates:()=>pe});var f={};o.r(f),o.d(f,{templates:()=>be});var u={};o.r(u),o.d(u,{templates:()=>ge});var v={};o.r(v),o.d(v,{templates:()=>he});var w={};o.r(w),o.d(w,{templates:()=>me});var y={};o.r(y),o.d(y,{templates:()=>fe});var x={};o.r(x),o.d(x,{templates:()=>ue});var k={};o.r(k),o.d(k,{templates:()=>ve});var D={};o.r(D),o.d(D,{templates:()=>we});var A={};o.r(A),o.d(A,{templates:()=>ye});var j={};o.r(j),o.d(j,{templates:()=>xe});var z={};o.r(z),o.d(z,{templates:()=>ke});var S=o(161);const _=(e,t,a)=>{let l=e[0];for(let i=1;i{return"string"!=typeof(t=e)&&"strTag"in t?_(e.strings,e.values):e;var t},P="lit-localize-status";class I{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(P,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(P,this.__litLocalizeEventHandler)}}const L=e=>e.addController(new I(e));class ${constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const C=[];for(let e=0;e<256;e++)C[e]=(e>>4&15).toString(16)+(15&e).toString(16);const R="",M="h",T="s";function H(e,t){return(t?M:T)+function(e){let t=0,a=8997,l=0,i=33826,o=0,s=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,o+=l>>>16,i=65535&l,r=n+(o>>>16)&65535,s=65535&o;return C[r>>8]+C[255&r]+C[s>>8]+C[255&s]+C[i>>8]+C[255&i]+C[a>>8]+C[255&a]}("string"==typeof e?e:e.join(R))}const O=new WeakMap,q=new Map;function U(e,t,a){if(e){const l=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=q.get(t);void 0===a&&(a=H(t,"string"!=typeof e&&!("strTag"in e)),q.set(t,a));return a}(t),i=e[l];if(i){if("string"==typeof i)return i;if("strTag"in i)return _(i.strings,t.values,i.values);{let e=O.get(i);return void 0===e&&(e=i.values,O.set(i,e)),{...i,values:e.map((e=>t.values[e]))}}}}return E(t)}function B(e){window.dispatchEvent(new CustomEvent(P,{detail:e}))}let Y,Z,W,N,V,F="",G=new $;G.resolve();let J=0;const K=()=>F,Q=e=>{if(e===(Y??F))return G.promise;if(!W||!N)throw Error("Internal error");if(!W.has(e))throw Error("Invalid locale code");J++;const t=J;Y=e,G.settled&&(G=new $),B({status:"loading",loadingLocale:e});return(e===Z?Promise.resolve({templates:void 0}):N(e)).then((a=>{J===t&&(F=e,Y=void 0,V=a.templates,B({status:"ready",readyLocale:e}),G.resolve())}),(a=>{J===t&&(B({status:"error",errorLocale:e,errorMessage:a.toString()}),G.reject(a))})),G.promise};let X=E,ee=!1;var te=o(429);const ae=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],le={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},ie={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},oe={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},se={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},ne={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},re={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},de={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},ce={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},pe={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},be={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},ge={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},he={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击加入主画面",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App加入主画面",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},me={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},fe={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},ue={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},ve={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},we={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},ye={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},xe={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},ke={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},De=new Map([["ru",n],["tr",r],["de",d],["es",c],["nl",p],["el",b],["fr",g],["sr",h],["pl",m],["uk",f],["zh",u],["zh-CN",v],["it",w],["cs",y],["no",x],["pt",k],["ja",D],["sv",A],["ko",j],["km",z]]),{getLocale:Ae,setLocale:je}=(ze={sourceLocale:"en",targetLocales:ae,loadLocale:async e=>De.get(e)},function(e){if(ee)throw Error("lit-localize can only be configured once");X=e,ee=!0}(((e,t)=>U(V,e,t))),F=Z=ze.sourceLocale,W=new Set(ze.targetLocales),W.add(ze.sourceLocale),N=ze.loadLocale,{getLocale:K,setLocale:Q});var ze;class Se{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const _e=S.css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,Ee=(e,t,a,l)=>S.html`${e?S.html``:""}`;var Pe=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Ie=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Le=class extends S.LitElement{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const l=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return l?{scroller:t,item:l}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return _e}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return S.html`${Ee(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};Pe([(0,te.property)(),Ie("design:type",Object)],Le.prototype,"screenshots",void 0),Pe([(0,te.property)(),Ie("design:type",String)],Le.prototype,"theme",void 0),Le=Pe([(0,te.customElement)("pwa-gallery")],Le);const $e=Le,Ce=(e,t,a,l)=>S.html`
icon
${location.hostname}
${t?S.html`
${t}
`:""}`,Re=(e,t,a)=>{const l=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(l)};class Me{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),l=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&l}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Re(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Re(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Re(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Re(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Re(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Re(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var Te=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},He=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Oe=class extends S.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let l=0;const i=t.clientHeight+a.clientHeight,o=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),s=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),l=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&o(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-o(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Me.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-i-35)},r=t=>{const a=o(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+l||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-l}px)`))},d=(a,l,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!l&&o(a)>=window.innerHeight-i?e.style.setProperty("--translateY",`translateY(calc(100vh - ${i}px))`):e.style.setProperty("--translateY",`translateY(${(l||o(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",s),t.removeEventListener("touchstart",s),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",s),t.addEventListener("touchstart",s,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-i-35),{touchElement:t,listener:s}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return S.html`${Ce(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};Te([(0,te.property)({type:Object}),He("design:type",Object)],Oe.prototype,"props",void 0),Te([(0,te.property)({type:Object}),He("design:type",Object)],Oe.prototype,"install",void 0),Te([(0,te.property)(),He("design:type",Object)],Oe.prototype,"hideDialog",void 0),Te([(0,te.property)(),He("design:type",Object)],Oe.prototype,"disableClose",void 0),Oe=Te([(0,te.customElement)("pwa-bottom-sheet")],Oe);const qe=Oe,Ue=S.css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Be=S.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;var Ye=o(125);const Ze=(e,t,a,l,i,o,s,n,r,d,c,p,b)=>{const g=()=>({available:r,gallery:b}),h=!i&&n.screenshots&&n.screenshots.length;return S.html`
icon
${o?"":S.html``}
${location.hostname}
${t?S.html`
${t}
`:""} ${l?"":S.html`
${a||`${X("This site has app functionality.")} ${X("Install it on your device for extensive experience and easy access.")}`}
`} ${h?S.html``:""}
${h?S.html``:""}
${h?S.html``:""}
`},We=(e,t,a,l,i,o,s,n,r,d,c,p,b,g,h)=>{const m=!i&&n.screenshots&&n.screenshots.length;return S.html``};var Ne=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Ve=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Fe=class extends S.LitElement{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new Se,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Me.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Me.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Me.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Me.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Me.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Me.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Me.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Me.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Me.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Me.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Ue,Be]}async _checkInstalled(){this.isUnderStandaloneMode=Me.isStandalone(),this.isRelatedAppsInstalled=await Me.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Me.isAppleMobile(),this.isAppleDesktopPlatform=Me.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Me.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e&&(e="no");try{De.get(e)?je(e):je(e.slice(0,2))}catch{}})(navigator.language),this._init(),$e.finalized,qe.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?S.html`${We(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:S.html`${Ze(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};return Ne([(0,te.property)({attribute:"manifest-url"}),Ve("design:type",Object)],Fe.prototype,"manifestUrl",void 0),Ne([(0,te.property)(),Ve("design:type",Object)],Fe.prototype,"icon",void 0),Ne([(0,te.property)(),Ve("design:type",Object)],Fe.prototype,"name",void 0),Ne([(0,te.property)(),Ve("design:type",Object)],Fe.prototype,"description",void 0),Ne([(0,te.property)({attribute:"install-description"}),Ve("design:type",Object)],Fe.prototype,"installDescription",void 0),Ne([(0,te.property)({attribute:"disable-install-description",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableDescription",void 0),Ne([(0,te.property)({attribute:"disable-screenshots",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableScreenshots",void 0),Ne([(0,te.property)({attribute:"disable-screenshots-apple",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableScreenshotsApple",void 0),Ne([(0,te.property)({attribute:"disable-screenshots-chrome",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableScreenshotsChrome",void 0),Ne([(0,te.property)({attribute:"manual-apple",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"manualApple",void 0),Ne([(0,te.property)({attribute:"manual-chrome",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"manualChrome",void 0),Ne([(0,te.property)({attribute:"disable-chrome",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableChrome",void 0),Ne([(0,te.property)({attribute:"disable-close",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableClose",void 0),Ne([(0,te.state)(),Ve("design:type",Object)],Fe.prototype,"externalPromptEvent",void 0),Fe=Ne([(e,t)=>(e.addInitializer(L),e),(0,te.customElement)("pwa-install")],Fe),s})())); +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("lit"),require("lit/decorators.js"),require("lit/directives/class-map.js")):"function"==typeof define&&define.amd?define(["lit","lit/decorators.js","lit/directives/class-map.js"],t):"object"==typeof exports?exports.PWAInstallComponent=t(require("lit"),require("lit/decorators.js"),require("lit/directives/class-map.js")):e.PWAInstallComponent=t(e.lit,e["lit/decorators.js"],e["lit/directives/class-map.js"])}(globalThis,((e,t,a)=>(()=>{"use strict";var l={161:t=>{t.exports=e},429:e=>{e.exports=t},125:e=>{e.exports=a}},i={};function o(e){var t=i[e];if(void 0!==t)return t.exports;var a=i[e]={exports:{}};return l[e](a,a.exports,o),a.exports}o.d=(e,t)=>{for(var a in t)o.o(t,a)&&!o.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:t[a]})},o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var s={};o.r(s),o.d(s,{PWAInstallElement:()=>Fe});var n={};o.r(n),o.d(n,{templates:()=>le});var r={};o.r(r),o.d(r,{templates:()=>ie});var d={};o.r(d),o.d(d,{templates:()=>oe});var c={};o.r(c),o.d(c,{templates:()=>se});var p={};o.r(p),o.d(p,{templates:()=>ne});var b={};o.r(b),o.d(b,{templates:()=>re});var g={};o.r(g),o.d(g,{templates:()=>de});var h={};o.r(h),o.d(h,{templates:()=>ce});var m={};o.r(m),o.d(m,{templates:()=>pe});var f={};o.r(f),o.d(f,{templates:()=>be});var u={};o.r(u),o.d(u,{templates:()=>ge});var v={};o.r(v),o.d(v,{templates:()=>he});var w={};o.r(w),o.d(w,{templates:()=>me});var y={};o.r(y),o.d(y,{templates:()=>fe});var x={};o.r(x),o.d(x,{templates:()=>ue});var k={};o.r(k),o.d(k,{templates:()=>ve});var D={};o.r(D),o.d(D,{templates:()=>we});var A={};o.r(A),o.d(A,{templates:()=>ye});var j={};o.r(j),o.d(j,{templates:()=>xe});var z={};o.r(z),o.d(z,{templates:()=>ke});var S=o(161);const _=(e,t,a)=>{let l=e[0];for(let i=1;i{return"string"!=typeof(t=e)&&"strTag"in t?_(e.strings,e.values):e;var t};let P=E,I=!1;const L="lit-localize-status";class ${constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(L,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(L,this.__litLocalizeEventHandler)}}const C=e=>e.addController(new $(e));class R{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const M=[];for(let e=0;e<256;e++)M[e]=(e>>4&15).toString(16)+(15&e).toString(16);const T="",H="h",O="s";function q(e,t){return(t?H:O)+function(e){let t=0,a=8997,l=0,i=33826,o=0,s=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,o+=l>>>16,i=65535&l,r=n+(o>>>16)&65535,s=65535&o;return M[r>>8]+M[255&r]+M[s>>8]+M[255&s]+M[i>>8]+M[255&i]+M[a>>8]+M[255&a]}("string"==typeof e?e:e.join(T))}const U=new WeakMap,B=new Map;function Y(e,t,a){if(e){const l=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=B.get(t);void 0===a&&(a=q(t,"string"!=typeof e&&!("strTag"in e)),B.set(t,a));return a}(t),i=e[l];if(i){if("string"==typeof i)return i;if("strTag"in i)return _(i.strings,t.values,i.values);{let e=U.get(i);return void 0===e&&(e=i.values,U.set(i,e)),{...i,values:e.map((e=>t.values[e]))}}}}return E(t)}function Z(e){window.dispatchEvent(new CustomEvent(L,{detail:e}))}let W,N,V,F,G,J="",K=new R;K.resolve();let Q=0;const X=()=>J,ee=e=>{if(e===(W??J))return K.promise;if(!V||!F)throw Error("Internal error");if(!V.has(e))throw Error("Invalid locale code");Q++;const t=Q;W=e,K.settled&&(K=new R),Z({status:"loading",loadingLocale:e});return(e===N?Promise.resolve({templates:void 0}):F(e)).then((a=>{Q===t&&(J=e,W=void 0,G=a.templates,Z({status:"ready",readyLocale:e}),K.resolve())}),(a=>{Q===t&&(Z({status:"error",errorLocale:e,errorMessage:a.toString()}),K.reject(a))})),K.promise};var te=o(429);const ae=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],le={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},ie={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},oe={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},se={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},ne={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},re={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},de={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},ce={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},pe={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},be={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},ge={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},he={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击添加到主屏幕",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App添加到主屏幕",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},me={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},fe={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},ue={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},ve={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},we={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},ye={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},xe={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},ke={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},De=new Map([["ru",n],["tr",r],["de",d],["es",c],["nl",p],["el",b],["fr",g],["sr",h],["pl",m],["uk",f],["zh",u],["zh-CN",v],["it",w],["cs",y],["no",x],["pt",k],["ja",D],["sv",A],["ko",j],["km",z]]),{getLocale:Ae,setLocale:je}=(ze={sourceLocale:"en",targetLocales:ae,loadLocale:async e=>De.get(e)},function(e){if(I)throw Error("lit-localize can only be configured once");P=e,I=!0}(((e,t)=>Y(G,e,t))),J=N=ze.sourceLocale,V=new Set(ze.targetLocales),V.add(ze.sourceLocale),F=ze.loadLocale,{getLocale:X,setLocale:ee});var ze;class Se{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const _e=S.css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,Ee=(e,t,a,l)=>S.html`${e?S.html``:""}`;var Pe=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Ie=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Le=class extends S.LitElement{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const l=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return l?{scroller:t,item:l}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return _e}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return S.html`${Ee(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};Pe([(0,te.property)(),Ie("design:type",Object)],Le.prototype,"screenshots",void 0),Pe([(0,te.property)(),Ie("design:type",String)],Le.prototype,"theme",void 0),Le=Pe([(0,te.customElement)("pwa-gallery")],Le);const $e=Le,Ce=(e,t,a,l)=>S.html`
icon
${location.hostname}
${t?S.html`
${t}
`:""}`,Re=(e,t,a)=>{const l=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(l)};class Me{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),l=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&l}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Re(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Re(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Re(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Re(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Re(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Re(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var Te=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},He=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Oe=class extends S.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let l=0;const i=t.clientHeight+a.clientHeight,o=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),s=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),l=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&o(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-o(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Me.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-i-35)},r=t=>{const a=o(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+l||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-l}px)`))},d=(a,l,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!l&&o(a)>=window.innerHeight-i?e.style.setProperty("--translateY",`translateY(calc(100vh - ${i}px))`):e.style.setProperty("--translateY",`translateY(${(l||o(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",s),t.removeEventListener("touchstart",s),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",s),t.addEventListener("touchstart",s,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-i-35),{touchElement:t,listener:s}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return S.html`${Ce(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};Te([(0,te.property)({type:Object}),He("design:type",Object)],Oe.prototype,"props",void 0),Te([(0,te.property)({type:Object}),He("design:type",Object)],Oe.prototype,"install",void 0),Te([(0,te.property)(),He("design:type",Object)],Oe.prototype,"hideDialog",void 0),Te([(0,te.property)(),He("design:type",Object)],Oe.prototype,"disableClose",void 0),Oe=Te([(0,te.customElement)("pwa-bottom-sheet")],Oe);const qe=Oe,Ue=S.css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Be=S.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;var Ye=o(125);const Ze=(e,t,a,l,i,o,s,n,r,d,c,p,b)=>{const g=()=>({available:r,gallery:b}),h=!i&&n.screenshots&&n.screenshots.length;return S.html`
icon
${o?"":S.html``}
${location.hostname}
${t?S.html`
${t}
`:""} ${l?"":S.html`
${a||`${P("This site has app functionality.")} ${P("Install it on your device for extensive experience and easy access.")}`}
`} ${h?S.html``:""}
${h?S.html``:""}
${h?S.html``:""}
`},We=(e,t,a,l,i,o,s,n,r,d,c,p,b,g,h)=>{const m=!i&&n.screenshots&&n.screenshots.length;return S.html``};var Ne=function(e,t,a,l){var i,o=arguments.length,s=o<3?t:null===l?l=Object.getOwnPropertyDescriptor(t,a):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,a,l);else for(var n=e.length-1;n>=0;n--)(i=e[n])&&(s=(o<3?i(s):o>3?i(t,a,s):i(t,a))||s);return o>3&&s&&Object.defineProperty(t,a,s),s},Ve=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Fe=class extends S.LitElement{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new Se,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Me.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Me.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Me.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Me.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Me.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Me.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Me.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Me.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Me.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Me.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Ue,Be]}async _checkInstalled(){this.isUnderStandaloneMode=Me.isStandalone(),this.isRelatedAppsInstalled=await Me.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Me.isAppleMobile(),this.isAppleDesktopPlatform=Me.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Me.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e.slice(0,2)&&(e="no");try{De.get(e)?je(e):je(e.slice(0,2))}catch{}})(navigator.language),this._init(),$e.finalized,qe.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?S.html`${We(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:S.html`${Ze(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};return Ne([(0,te.property)({attribute:"manifest-url"}),Ve("design:type",Object)],Fe.prototype,"manifestUrl",void 0),Ne([(0,te.property)(),Ve("design:type",Object)],Fe.prototype,"icon",void 0),Ne([(0,te.property)(),Ve("design:type",Object)],Fe.prototype,"name",void 0),Ne([(0,te.property)(),Ve("design:type",Object)],Fe.prototype,"description",void 0),Ne([(0,te.property)({attribute:"install-description"}),Ve("design:type",Object)],Fe.prototype,"installDescription",void 0),Ne([(0,te.property)({attribute:"disable-install-description",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableDescription",void 0),Ne([(0,te.property)({attribute:"disable-screenshots",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableScreenshots",void 0),Ne([(0,te.property)({attribute:"disable-screenshots-apple",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableScreenshotsApple",void 0),Ne([(0,te.property)({attribute:"disable-screenshots-chrome",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableScreenshotsChrome",void 0),Ne([(0,te.property)({attribute:"manual-apple",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"manualApple",void 0),Ne([(0,te.property)({attribute:"manual-chrome",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"manualChrome",void 0),Ne([(0,te.property)({attribute:"disable-chrome",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableChrome",void 0),Ne([(0,te.property)({attribute:"disable-close",type:Boolean}),Ve("design:type",Object)],Fe.prototype,"disableClose",void 0),Ne([(0,te.state)(),Ve("design:type",Object)],Fe.prototype,"externalPromptEvent",void 0),Fe=Ne([(e,t)=>(e.addInitializer(C),e),(0,te.customElement)("pwa-install")],Fe),s})())); //# sourceMappingURL=pwa-install.umd.js.map \ No newline at end of file diff --git a/dist/umd/pwa-install.umd.js.map b/dist/umd/pwa-install.umd.js.map index 2c53d21..aa98010 100644 --- a/dist/umd/pwa-install.umd.js.map +++ b/dist/umd/pwa-install.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"pwa-install.umd.js","mappings":"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","sources":["webpack://PWAInstallComponent/webpack/universalModuleDefinition","webpack://PWAInstallComponent/external umd \"lit\"","webpack://PWAInstallComponent/external umd \"lit/decorators.js\"","webpack://PWAInstallComponent/external umd \"lit/directives/class-map.js\"","webpack://PWAInstallComponent/webpack/bootstrap","webpack://PWAInstallComponent/webpack/runtime/define property getters","webpack://PWAInstallComponent/webpack/runtime/hasOwnProperty shorthand","webpack://PWAInstallComponent/webpack/runtime/make namespace object","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/str-tag.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/default-msg.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/locale-status-event.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/localized-controller.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/deferred.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/fnv1a64.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/id-generation.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/runtime-msg.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/init/runtime.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/lit-localize.js","webpack://PWAInstallComponent/./src/localization/locale-codes.ts","webpack://PWAInstallComponent/./src/localization/locales/ru.ts","webpack://PWAInstallComponent/./src/localization/locales/tr.ts","webpack://PWAInstallComponent/./src/localization/locales/de.ts","webpack://PWAInstallComponent/./src/localization/locales/es.ts","webpack://PWAInstallComponent/./src/localization/locales/nl.ts","webpack://PWAInstallComponent/./src/localization/locales/el.ts","webpack://PWAInstallComponent/./src/localization/locales/fr.ts","webpack://PWAInstallComponent/./src/localization/locales/sr.ts","webpack://PWAInstallComponent/./src/localization/locales/pl.ts","webpack://PWAInstallComponent/./src/localization/locales/uk.ts","webpack://PWAInstallComponent/./src/localization/locales/zh.ts","webpack://PWAInstallComponent/./src/localization/locales/zh-CN.ts","webpack://PWAInstallComponent/./src/localization/locales/it.ts","webpack://PWAInstallComponent/./src/localization/locales/cs.ts","webpack://PWAInstallComponent/./src/localization/locales/no.ts","webpack://PWAInstallComponent/./src/localization/locales/pt.ts","webpack://PWAInstallComponent/./src/localization/locales/ja.ts","webpack://PWAInstallComponent/./src/localization/locales/sv.ts","webpack://PWAInstallComponent/./src/localization/locales/ko.ts","webpack://PWAInstallComponent/./src/localization/locales/km.ts","webpack://PWAInstallComponent/./src/localization/index.ts","webpack://PWAInstallComponent/./src/types/types.ts","webpack://PWAInstallComponent/./src/gallery/styles-gallery.scss","webpack://PWAInstallComponent/./src/gallery/template-gallery.ts","webpack://PWAInstallComponent/./src/gallery/index.ts","webpack://PWAInstallComponent/./src/templates/chrome/bottom-sheet/template-bottom-sheet.ts","webpack://PWAInstallComponent/./src/utils.ts","webpack://PWAInstallComponent/./src/templates/chrome/bottom-sheet/index.ts","webpack://PWAInstallComponent/./src/templates/chrome/styles.scss","webpack://PWAInstallComponent/./src/templates/apple/styles-apple.scss","webpack://PWAInstallComponent/./src/templates/chrome/template.ts","webpack://PWAInstallComponent/./src/templates/apple/template-apple.ts","webpack://PWAInstallComponent/./src/index.ts","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/localized-decorator.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"lit\"), require(\"lit/decorators.js\"), require(\"lit/directives/class-map.js\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"lit\", \"lit/decorators.js\", \"lit/directives/class-map.js\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PWAInstallComponent\"] = factory(require(\"lit\"), require(\"lit/decorators.js\"), require(\"lit/directives/class-map.js\"));\n\telse\n\t\troot[\"PWAInstallComponent\"] = factory(root[\"lit\"], root[\"lit/decorators.js\"], root[\"lit/directives/class-map.js\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE__161__, __WEBPACK_EXTERNAL_MODULE__429__, __WEBPACK_EXTERNAL_MODULE__125__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__161__;","module.exports = __WEBPACK_EXTERNAL_MODULE__429__;","module.exports = __WEBPACK_EXTERNAL_MODULE__125__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Tag that allows expressions to be used in localized non-HTML template\n * strings.\n *\n * Example: msg(str`Hello ${this.user}!`);\n *\n * The Lit html tag can also be used for this purpose, but HTML will need to be\n * escaped, and there is a small overhead for HTML parsing.\n *\n * Untagged template strings with expressions aren't supported by lit-localize\n * because they don't allow for values to be captured at runtime.\n */\nconst _str = (strings, ...values) => ({\n strTag: true,\n strings,\n values,\n});\nexport const str = _str;\nexport const isStrTagged = (val) => typeof val !== 'string' && 'strTag' in val;\n/**\n * Render the result of a `str` tagged template to a string. Note we don't need\n * to do this for Lit templates, since Lit itself handles rendering.\n */\nexport const joinStringsAndValues = (strings, values, valueOrder) => {\n let concat = strings[0];\n for (let i = 1; i < strings.length; i++) {\n concat += values[valueOrder ? valueOrder[i - 1] : i - 1];\n concat += strings[i];\n }\n return concat;\n};\n//# sourceMappingURL=str-tag.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isStrTagged, joinStringsAndValues } from './str-tag.js';\n/**\n * Default identity msg implementation. Simply returns the input template with\n * no awareness of translations. If the template is str-tagged, returns it in\n * string form.\n */\nexport const defaultMsg = ((template) => isStrTagged(template)\n ? joinStringsAndValues(template.strings, template.values)\n : template);\n//# sourceMappingURL=default-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Name of the event dispatched to `window` whenever a locale change starts,\n * finishes successfully, or fails. Only relevant to runtime mode.\n *\n * The `detail` of this event is an object with a `status` string that can be:\n * \"loading\", \"ready\", or \"error\", along with the relevant locale code, and\n * error message if applicable.\n *\n * You can listen for this event to know when your application should be\n * re-rendered following a locale change. See also the Localized mixin, which\n * automatically re-renders LitElement classes using this event.\n */\nexport const LOCALE_STATUS_EVENT = 'lit-localize-status';\n//# sourceMappingURL=locale-status-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { LOCALE_STATUS_EVENT } from './locale-status-event.js';\nclass LocalizeController {\n constructor(host) {\n this.__litLocalizeEventHandler = (event) => {\n if (event.detail.status === 'ready') {\n this.host.requestUpdate();\n }\n };\n this.host = host;\n }\n hostConnected() {\n window.addEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n hostDisconnected() {\n window.removeEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n}\n/**\n * Re-render the given LitElement whenever a new active locale has loaded.\n *\n * See also {@link localized} for the same functionality as a decorator.\n *\n * When using lit-localize in transform mode, calls to this function are\n * replaced with undefined.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {msg, updateWhenLocaleChanges} from '@lit/localize';\n *\n * class MyElement extends LitElement {\n * constructor() {\n * super();\n * updateWhenLocaleChanges(this);\n * }\n *\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nconst _updateWhenLocaleChanges = (host) => host.addController(new LocalizeController(host));\nexport const updateWhenLocaleChanges = _updateWhenLocaleChanges;\n//# sourceMappingURL=localized-controller.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport class Deferred {\n constructor() {\n this.settled = false;\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n resolve(value) {\n this.settled = true;\n this._resolve(value);\n }\n reject(error) {\n this.settled = true;\n this._reject(error);\n }\n}\n//# sourceMappingURL=deferred.js.map","/**\n * @license\n * Copyright 2014 Travis Webb\n * SPDX-License-Identifier: MIT\n */\n// This module is derived from the file:\n// https://github.com/tjwebb/fnv-plus/blob/1e2ce68a07cb7dd4c3c85364f3d8d96c95919474/index.js#L309\n//\n// Changes:\n// - Only the _hash64_1a_fast function is included.\n// - Removed loop unrolling.\n// - Converted to TypeScript ES module.\n// - var -> let/const\n//\n// TODO(aomarks) Upstream improvements to https://github.com/tjwebb/fnv-plus/.\nconst hl = [];\nfor (let i = 0; i < 256; i++) {\n hl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n}\n/**\n * Perform a FNV-1A 64-bit hash of the given string (as UTF-16 code units), and\n * return a hexadecimal digest (left zero padded to 16 characters).\n *\n * @see {@link http://tools.ietf.org/html/draft-eastlake-fnv-06}\n */\nexport function fnv1a64(str) {\n let t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n for (let i = 0; i < str.length; i++) {\n v0 ^= str.charCodeAt(i);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n return (hl[v3 >> 8] +\n hl[v3 & 255] +\n hl[v2 >> 8] +\n hl[v2 & 255] +\n hl[v1 >> 8] +\n hl[v1 & 255] +\n hl[v0 >> 8] +\n hl[v0 & 255]);\n}\n//# sourceMappingURL=fnv1a64.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { fnv1a64 } from './fnv1a64.js';\n/**\n * Delimiter used between each template string component before hashing. Used to\n * prevent e.g. \"foobar\" and \"foo${baz}bar\" from sharing a hash.\n *\n * This is the \"record separator\" ASCII character.\n */\nexport const HASH_DELIMITER = '\\x1e';\n/**\n * Id prefix on html-tagged templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst HTML_PREFIX = 'h';\n/**\n * Id prefix on plain string templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst STRING_PREFIX = 's';\n/**\n * Generate a unique ID for a lit-localize message.\n *\n * Example:\n * Template: html`Hello ${who}!`\n * Params: [\"Hello \", \"!\"], true\n * Output: h82ccc38d4d46eaa9\n *\n * The ID is constructed as:\n *\n * [0] Kind of template: [h]tml or [s]tring.\n * [1,16] 64-bit FNV-1a hash hex digest of the template strings, as UTF-16\n * code points, delineated by an ASCII \"record separator\" character.\n *\n * We choose FNV-1a because:\n *\n * 1. It's pretty fast (e.g. much faster than SHA-1).\n * 2. It's pretty small (0.25 KiB minified + brotli).\n * 3. We don't require cryptographic security, and 64 bits should give\n * sufficient collision resistance for any one application. Worst\n * case, we will always detect collisions during analysis.\n * 4. We can't use Web Crypto API (e.g. SHA-1), because it's asynchronous.\n * 5. It's a well known non-cryptographic hash with implementations in many\n * languages.\n * 6. There was an existing JavaScript implementation that doesn't require\n * BigInt, for IE11 compatibility.\n */\nexport function generateMsgId(strings, isHtmlTagged) {\n return ((isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) +\n fnv1a64(typeof strings === 'string' ? strings : strings.join(HASH_DELIMITER)));\n}\n//# sourceMappingURL=id-generation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './default-msg.js';\nimport { joinStringsAndValues } from './str-tag.js';\nimport { generateMsgId } from './id-generation.js';\nconst expressionOrders = new WeakMap();\nconst hashCache = new Map();\nexport function runtimeMsg(templates, template, options) {\n if (templates) {\n const id = options?.id ?? generateId(template);\n const localized = templates[id];\n if (localized) {\n if (typeof localized === 'string') {\n // E.g. \"Hello World!\"\n return localized;\n }\n else if ('strTag' in localized) {\n // E.g. str`Hello ${name}!`\n //\n // Localized templates have ${number} in place of real template\n // expressions. They can't have real template values, because the\n // variable scope would be wrong. The number tells us the index of the\n // source value to substitute in its place, because expressions can be\n // moved to a different position during translation.\n return joinStringsAndValues(localized.strings, \n // Cast `template` because its type wasn't automatically narrowed (but\n // we know it must be the same type as `localized`).\n template.values, localized.values);\n }\n else {\n // E.g. html`Hello ${name}!`\n //\n // We have to keep our own mapping of expression ordering because we do\n // an in-place update of `values`, and otherwise we'd lose ordering for\n // subsequent renders.\n let order = expressionOrders.get(localized);\n if (order === undefined) {\n order = localized.values;\n expressionOrders.set(localized, order);\n }\n return {\n ...localized,\n values: order.map((i) => template.values[i]),\n };\n }\n }\n }\n return defaultMsg(template);\n}\nfunction generateId(template) {\n const strings = typeof template === 'string' ? template : template.strings;\n let id = hashCache.get(strings);\n if (id === undefined) {\n id = generateMsgId(strings, typeof template !== 'string' && !('strTag' in template));\n hashCache.set(strings, id);\n }\n return id;\n}\n//# sourceMappingURL=runtime-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { _installMsgImplementation } from '../lit-localize.js';\nimport { Deferred } from '../internal/deferred.js';\nimport { LOCALE_STATUS_EVENT } from '../internal/locale-status-event.js';\nimport { runtimeMsg } from '../internal/runtime-msg.js';\n/**\n * Dispatch a \"lit-localize-status\" event to `window` with the given detail.\n */\nfunction dispatchStatusEvent(detail) {\n window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));\n}\nlet activeLocale = '';\nlet loadingLocale;\nlet sourceLocale;\nlet validLocales;\nlet loadLocale;\nlet templates;\nlet loading = new Deferred();\n// The loading promise must be initially resolved, because that's what we should\n// return if the user immediately calls setLocale(sourceLocale).\nloading.resolve();\nlet requestId = 0;\n/**\n * Set configuration parameters for lit-localize when in runtime mode. Returns\n * an object with functions:\n *\n * - `getLocale`: Return the active locale code.\n * - `setLocale`: Set the active locale code.\n *\n * Throws if called more than once.\n */\nexport const configureLocalization = (config) => {\n _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));\n activeLocale = sourceLocale = config.sourceLocale;\n validLocales = new Set(config.targetLocales);\n validLocales.add(config.sourceLocale);\n loadLocale = config.loadLocale;\n return { getLocale, setLocale };\n};\n/**\n * Return the active locale code.\n */\nconst getLocale = () => {\n return activeLocale;\n};\n/**\n * Set the active locale code, and begin loading templates for that locale using\n * the `loadLocale` function that was passed to `configureLocalization`. Returns\n * a promise that resolves when the next locale is ready to be rendered.\n *\n * Note that if a second call to `setLocale` is made while the first requested\n * locale is still loading, then the second call takes precedence, and the\n * promise returned from the first call will resolve when second locale is\n * ready. If you need to know whether a particular locale was loaded, check\n * `getLocale` after the promise resolves.\n *\n * Throws if the given locale is not contained by the configured `sourceLocale`\n * or `targetLocales`.\n */\nconst setLocale = (newLocale) => {\n if (newLocale === (loadingLocale ?? activeLocale)) {\n return loading.promise;\n }\n if (!validLocales || !loadLocale) {\n throw new Error('Internal error');\n }\n if (!validLocales.has(newLocale)) {\n throw new Error('Invalid locale code');\n }\n requestId++;\n const thisRequestId = requestId;\n loadingLocale = newLocale;\n if (loading.settled) {\n loading = new Deferred();\n }\n dispatchStatusEvent({ status: 'loading', loadingLocale: newLocale });\n const localePromise = newLocale === sourceLocale\n ? // We could switch to the source locale synchronously, but we prefer to\n // queue it on a microtask so that switching locales is consistently\n // asynchronous.\n Promise.resolve({ templates: undefined })\n : loadLocale(newLocale);\n localePromise.then((mod) => {\n if (requestId === thisRequestId) {\n activeLocale = newLocale;\n loadingLocale = undefined;\n templates = mod.templates;\n dispatchStatusEvent({ status: 'ready', readyLocale: newLocale });\n loading.resolve();\n }\n // Else another locale was requested in the meantime. Don't resolve or\n // reject, because the newer load call is going to use the same promise.\n // Note the user can call getLocale() after the promise resolves if they\n // need to check if the locale is still the one they expected to load.\n }, (err) => {\n if (requestId === thisRequestId) {\n dispatchStatusEvent({\n status: 'error',\n errorLocale: newLocale,\n errorMessage: err.toString(),\n });\n loading.reject(err);\n }\n });\n return loading.promise;\n};\n//# sourceMappingURL=runtime.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './internal/default-msg.js';\nexport * from './internal/locale-status-event.js';\nexport * from './internal/str-tag.js';\nexport * from './internal/types.js';\n// TODO(aomarks) In a future breaking version, remove these imports so that the\n// bulk of the code isn't included in bundles by default. In particular imagine\n// the component library use-case where msg() calls are made, but there is no\n// need to actually initialize any of the localization runtime.\nexport * from './internal/localized-controller.js';\nexport * from './internal/localized-decorator.js';\nexport * from './init/runtime.js';\nexport * from './init/transform.js';\n/**\n * Make a string or lit-html template localizable.\n *\n * @param template A string, a lit-html template, or a function that returns\n * either a string or lit-html template.\n * @param options Optional configuration object with the following properties:\n * - id: Optional project-wide unique identifier for this template. If\n * omitted, an id will be automatically generated from the template strings.\n * - desc: Optional description\n */\nexport let msg = defaultMsg;\nlet installed = false;\n/**\n * Internal only. Do not use this function.\n *\n * Installs an implementation of the msg function to replace the default\n * identity function. Throws if called more than once.\n *\n * @internal\n */\nexport function _installMsgImplementation(impl) {\n if (installed) {\n throw new Error('lit-localize can only be configured once');\n }\n msg = impl;\n installed = true;\n}\n//# sourceMappingURL=lit-localize.js.map","// Do not modify this file by hand!\n// Re-generate this file by running lit-localize.\n\n/**\n * The locale code that templates in this source code are written in.\n */\nexport const sourceLocale = `en`;\n\n/**\n * The other locale codes that this application is localized into. Sorted\n * lexicographically.\n */\nexport const targetLocales = [\n `cs`,\n `de`,\n `el`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n\n/**\n * All valid project locale codes. Sorted lexicographically.\n */\nexport const allLocales = [\n `cs`,\n `de`,\n `el`,\n `en`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.`,\n's1b9047d53d9f9d22': `2) Нажать \"Поделиться\"`,\n's37a9e8aec5713460': `Подробнее`,\n's5c6aad7a7e4a1437': `3) Нажать \"На экран «Домой»\"`,\n's6196153c4b0c1ea0': `Установить`,\n's922329d6f6213590': `Добавить в Dock`,\n'sa5ef80b4bb9b39f8': `Свернуть`,\n'sa7551383d1897fcc': `2) Нажмите \"Добавить в Dock\"`,\n'sba52286c21552a4e': `Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.`,\n'sc79fd7641eb9a975': `Спрятать Инструкцию`,\n'scdaf4bbff76674c8': `На экран «Домой»`,\n'sdfe23506a3b0cdc8': `1) Открыть в Safari браузере`,\n'se740f75b95a51807': `Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.`,\n'sfea652f6580ff086': `Этот веб-сайт имеет функционал приложения.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.`,\n's1b9047d53d9f9d22': `2) Gezinme çubuğunda Paylaş'a basın`,\n's37a9e8aec5713460': `Daha Fazla`,\n's5c6aad7a7e4a1437': `3) Ana Ekrana Ekle'ye basın`,\n's6196153c4b0c1ea0': `Yükle`,\n's922329d6f6213590': `Dock’a Ekle`,\n'sa5ef80b4bb9b39f8': `Küçült`,\n'sa7551383d1897fcc': `2) Dock’a ekleye basın`,\n'sba52286c21552a4e': `Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.`,\n'sc79fd7641eb9a975': `Talimatları gizle`,\n'scdaf4bbff76674c8': `Ana Ekrana Ekle`,\n'sdfe23506a3b0cdc8': `1) Safari tarayıcısında açın`,\n'se740f75b95a51807': `Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.`,\n'sfea652f6580ff086': `Bu site uygulama işlevselliğine sahiptir.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n's1b9047d53d9f9d22': `2) Drücken Sie auf Teilen in der Navigationsleiste`,\n's37a9e8aec5713460': `Mehr`,\n's5c6aad7a7e4a1437': `3) Drücken Sie Hinzufügen zum Startbildschirm`,\n's6196153c4b0c1ea0': `Installieren`,\n's922329d6f6213590': `Zum Dock hinzufügen`,\n'sa5ef80b4bb9b39f8': `Weniger`,\n'sa7551383d1897fcc': `2) Drücken Sie auf Zum Dock hinzufügen`,\n'sba52286c21552a4e': `Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.`,\n'sc79fd7641eb9a975': `Anleitung ausblenden`,\n'scdaf4bbff76674c8': `Hinzufügen zum Startbildschirm`,\n'sdfe23506a3b0cdc8': `1) In Safari-Browser öffnen`,\n'se740f75b95a51807': `Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n'sfea652f6580ff086': `Diese Website verfügt über App-Funktionalität.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.`,\n's1b9047d53d9f9d22': `2) Presionar Compartir en la barra de direcciones`,\n's37a9e8aec5713460': `Más`,\n's5c6aad7a7e4a1437': `3) Presionar Añadir a pantalla de inicio`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Añadir al Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Presionar Añadir al Dock`,\n'sba52286c21552a4e': `Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.`,\n'sc79fd7641eb9a975': `Esconder instrucciones`,\n'scdaf4bbff76674c8': `Añadir a pantalla de inicio`,\n'sdfe23506a3b0cdc8': `1) Abrir en el navegador web Safari`,\n'se740f75b95a51807': `Añádelo a tu Dock para una experiencia amplia y acceso fácil.`,\n'sfea652f6580ff086': `Este sitio tiene funcionalidad de aplicación.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.`,\n's1b9047d53d9f9d22': `2) Druk op delen in de navigatiebalk`,\n's37a9e8aec5713460': `Meer`,\n's5c6aad7a7e4a1437': `3) Druk op Toevoegen aan het startscherm`,\n's6196153c4b0c1ea0': `Installeren`,\n's922329d6f6213590': `Toevoegen aan Dock`,\n'sa5ef80b4bb9b39f8': `Minder`,\n'sa7551383d1897fcc': `2) Druk op Toevoegen aan Dock`,\n'sba52286c21552a4e': `Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.`,\n'sc79fd7641eb9a975': `Instructie verbergen`,\n'scdaf4bbff76674c8': `Toevoegen aan het startscherm`,\n'sdfe23506a3b0cdc8': `1) Open in Safari-browser`,\n'se740f75b95a51807': `Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.`,\n'sfea652f6580ff086': `Deze site heeft app-functionaliteit.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n's1b9047d53d9f9d22': `2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης`,\n's37a9e8aec5713460': `Περισσότερα`,\n's5c6aad7a7e4a1437': `3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας`,\n's6196153c4b0c1ea0': `Εγκατάσταση`,\n's922329d6f6213590': `Προσθήκη στην Πρόσβαση`,\n'sa5ef80b4bb9b39f8': `Λιγότερα`,\n'sa7551383d1897fcc': `2) Πατήστε Προσθήκη στην Πρόσβαση`,\n'sba52286c21552a4e': `Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sc79fd7641eb9a975': `Απόκρυψη Οδηγιών`,\n'scdaf4bbff76674c8': `Προσθήκη στην Οθόνη Αφετηρίας`,\n'sdfe23506a3b0cdc8': `1) Ανοίξτε τον περιηγητή Safari`,\n'se740f75b95a51807': `Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sfea652f6580ff086': `Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.`,\n's1b9047d53d9f9d22': `2) Appuyez sur Partager dans la barre de navigation`,\n's37a9e8aec5713460': `Plus`,\n's5c6aad7a7e4a1437': `3) Appuyez sur Ajouter à l'écran d'accueil`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Ajouter au Dock`,\n'sa5ef80b4bb9b39f8': `Moins`,\n'sa7551383d1897fcc': `2) Appuyez sur Ajouter au Dock`,\n'sba52286c21552a4e': `Installez-le sur votre appareil pour une expérience complète et un accès facile.`,\n'sc79fd7641eb9a975': `Masquer les instructions`,\n'scdaf4bbff76674c8': `Ajouter à l'écran d'accueil`,\n'sdfe23506a3b0cdc8': `1) Ouvrir dans le navigateur Safari`,\n'se740f75b95a51807': `Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.`,\n'sfea652f6580ff086': `Ce site possède des fonctionnalités d'application.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додајте га на Home Screen за широке могућности и лак приступ.`,\n's1b9047d53d9f9d22': `2) Притисните Share у навигационој траци`,\n's37a9e8aec5713460': `Више`,\n's5c6aad7a7e4a1437': `3) Притисните Add to Home Screen`,\n's6196153c4b0c1ea0': `Инсталирај`,\n'sa5ef80b4bb9b39f8': `Мање`,\n'sa7551383d1897fcc': `3) Притисните Add to Dock`,\n'sba52286c21552a4e': `Инсталирајте га на вашем уређају за широке могућности и лак приступ.`,\n'sc79fd7641eb9a975': `Сакриј упутство`,\n'sdfe23506a3b0cdc8': `1) Отворите у Safari прегледачу`,\n'se740f75b95a51807': `Додајте га у вашу Dock за широке могућности и лак приступ.`,\n'sfea652f6580ff086': `Овај сајт има функционалност апликације.`,\n's922329d6f6213590': `Add to Dock`,\n'scdaf4bbff76674c8': `Add to Home Screen`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n's1b9047d53d9f9d22': `2) Wybierz \"Udostępnij\"`,\n's37a9e8aec5713460': `Więcej`,\n's5c6aad7a7e4a1437': `3) Wybierz \"Dodaj do Ekranu Głównego\"`,\n's6196153c4b0c1ea0': `Zainstaluj`,\n's922329d6f6213590': `Dodaj do Docka`,\n'sa5ef80b4bb9b39f8': `Mniej`,\n'sa7551383d1897fcc': `2) Wybierz \"Dodaj do Docka\"`,\n'sba52286c21552a4e': `Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sc79fd7641eb9a975': `Ukryj instrukcję`,\n'scdaf4bbff76674c8': `Dodaj do Ekranu Głównego`,\n'sdfe23506a3b0cdc8': `1) Otwórz przeglądarkę Safari`,\n'se740f75b95a51807': `Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sfea652f6580ff086': `Ta strona posiada funkcje aplikacji.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додайте на Домашній екран для зручного доступу та ширших можливостей.`,\n's1b9047d53d9f9d22': `2) Натиснути «Поділитися»`,\n's37a9e8aec5713460': `Детальніше`,\n's5c6aad7a7e4a1437': `3) Натиснути «На Початковий екран»`,\n's6196153c4b0c1ea0': `Встановити`,\n's922329d6f6213590': `Додати на Dock`,\n'sa5ef80b4bb9b39f8': `Згорнути`,\n'sa7551383d1897fcc': `2) Натиснути «Додати на Dock»`,\n'sba52286c21552a4e': `Встановіть на ваш пристрій для зручного доступу та ширших можливостей.`,\n'sc79fd7641eb9a975': `Сховати Інструкцію`,\n'scdaf4bbff76674c8': `На Початковий экран`,\n'sdfe23506a3b0cdc8': `1) Відкрити в Safari браузері`,\n'se740f75b95a51807': `Додайте на панель Dock для зручного доступу та ширших можливостей.`,\n'sfea652f6580ff086': `Цей сайт має функції додатку.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。`,\n's1b9047d53d9f9d22': `2) 點擊列表上的分享按鈕`,\n's37a9e8aec5713460': `詳細資訊`,\n's5c6aad7a7e4a1437': `3) 點擊加入主畫面`,\n's6196153c4b0c1ea0': `安裝`,\n's922329d6f6213590': `添加到Dock欄`,\n'sa5ef80b4bb9b39f8': `簡短資訊`,\n'sa7551383d1897fcc': `2) 點選添加到Dock欄`,\n'sba52286c21552a4e': `在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。`,\n'sc79fd7641eb9a975': `隱藏安裝流程`,\n'scdaf4bbff76674c8': `將App加入主畫面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上瀏覽此網頁`,\n'se740f75b95a51807': `將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。`,\n'sfea652f6580ff086': `此網站具有應用程式功能。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`,\n's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`,\n's37a9e8aec5713460': `详细资讯`,\n's5c6aad7a7e4a1437': `3) 点击加入主画面`,\n's6196153c4b0c1ea0': `安装`,\n's922329d6f6213590': `添加到Dock`,\n'sa5ef80b4bb9b39f8': `简短资讯`,\n'sa7551383d1897fcc': `2) 按下添加到Dock`,\n'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`,\n'sc79fd7641eb9a975': `隐藏安装流程`,\n'scdaf4bbff76674c8': `将App加入主画面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`,\n'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`,\n'sfea652f6580ff086': `此网站具备app的功能性。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.`,\n's1b9047d53d9f9d22': `2) Premi Condividi nella barra di navigazione`,\n's37a9e8aec5713460': `Più`,\n's5c6aad7a7e4a1437': `3) Premi Aggiungi alla schermata principale`,\n's6196153c4b0c1ea0': `Installa`,\n's922329d6f6213590': `Aggiungi al Dock`,\n'sa5ef80b4bb9b39f8': `Meno`,\n'sa7551383d1897fcc': `2) Premi Aggiungi al Dock`,\n'sba52286c21552a4e': `Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.`,\n'sc79fd7641eb9a975': `Nascondi istruzioni`,\n'scdaf4bbff76674c8': `Aggiungi alla schermata principale`,\n'sdfe23506a3b0cdc8': `1) Apri nel browser Safari`,\n'se740f75b95a51807': `Aggiungilo al Dock per un'esperienza più completa e un accesso facile.`,\n'sfea652f6580ff086': `Questo sito ha funzionalità di app.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Přidejte jej na plochu pro rozšířené využití a snadný přístup.`,\n's1b9047d53d9f9d22': `2) Stiskněte tlačítko Sdílet na navigačním panelu`,\n's37a9e8aec5713460': `Vice`,\n's5c6aad7a7e4a1437': `3) Stiskněte tlačítko Přidat na plochu`,\n's6196153c4b0c1ea0': `Nainstalovat`,\n's922329d6f6213590': `Přidat do Docku`,\n'sa5ef80b4bb9b39f8': `Méně`,\n'sa7551383d1897fcc': `2) Stiskněte Přidat do Docku`,\n'sba52286c21552a4e': `Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.`,\n'sc79fd7641eb9a975': `Skrýt instrukce`,\n'scdaf4bbff76674c8': `Přidat na plochu`,\n'sdfe23506a3b0cdc8': `1) Otevřete v prohlížeči Safari`,\n'se740f75b95a51807': `Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.`,\n'sfea652f6580ff086': `Tento web má funkce aplikace.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.`,\n's1b9047d53d9f9d22': `2) Trykk på Del-knappen i navigasjonslinjen`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Velg Legg til på Hjem-skjerm`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Legg til i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Velg Legg til i Dock`,\n'sba52286c21552a4e': `Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sc79fd7641eb9a975': `Skjul instruksjoner`,\n'scdaf4bbff76674c8': `Legg til på Hjem-skjerm`,\n'sdfe23506a3b0cdc8': `1) Åpne i Safari`,\n'se740f75b95a51807': `Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sfea652f6580ff086': `Denne siden har app-funksjonalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.`,\n's1b9047d53d9f9d22': `2) Pressione Compartilhar na barra de endereço`,\n's37a9e8aec5713460': `Mais`,\n's5c6aad7a7e4a1437': `3) Pressione Adicionar à Tela de Início`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Adicionar ao Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Pressione Adicionar ao Dock`,\n'sba52286c21552a4e': `Instale no dispositivo para uma melhor experiência e mais fácil acesso.`,\n'sc79fd7641eb9a975': `Ocultar Instruções`,\n'scdaf4bbff76674c8': `Adicionar à Tela de Início`,\n'sdfe23506a3b0cdc8': `1) Abra no navegador Safari`,\n'se740f75b95a51807': `Adicione ao Dock para uma melhor experiência e mais fácil acesso.`,\n'sfea652f6580ff086': `Este site possui funcionalidade de aplicativo.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。`,\n's1b9047d53d9f9d22': `2) ナビゲーションバーで共有を押す`,\n's37a9e8aec5713460': `展開`,\n's5c6aad7a7e4a1437': `3) 「ホーム画面に追加」を押す`,\n's6196153c4b0c1ea0': `インストール`,\n's922329d6f6213590': `Dockに追加`,\n'sa5ef80b4bb9b39f8': `折りたたむ`,\n'sa7551383d1897fcc': `2) 「Dockに追加」を押す`,\n'sba52286c21552a4e': `デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。`,\n'sc79fd7641eb9a975': `説明を非表示`,\n'scdaf4bbff76674c8': `ホーム画面に追加`,\n'sdfe23506a3b0cdc8': `1) Safariで開く`,\n'se740f75b95a51807': `ドックに追加して、幅広い体験と簡単なアクセスを実現してください。`,\n'sfea652f6580ff086': `このサイトはアプリ機能があります。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.`,\n's1b9047d53d9f9d22': `2) Tryck på Dela-knappen i verktygsfältet`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Välj Lägg till på hemskärmen`,\n's6196153c4b0c1ea0': `Installera`,\n's922329d6f6213590': `Lägg till i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Välj Lägg till i Dock`,\n'sba52286c21552a4e': `Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sc79fd7641eb9a975': `Göm instruktioner`,\n'scdaf4bbff76674c8': `Lägg till på hemskärmen`,\n'sdfe23506a3b0cdc8': `1) Öppna i Safari`,\n'se740f75b95a51807': `Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sfea652f6580ff086': `Denna webbsajt har app-funktionalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.`,\n's1b9047d53d9f9d22': `2) 내비게이션 바에서 공유 버튼 누르기`,\n's37a9e8aec5713460': `더보기`,\n's5c6aad7a7e4a1437': `3) 홈 화면에 추가 버튼 누르기`,\n's6196153c4b0c1ea0': `설치`,\n's922329d6f6213590': `Dock에 추가`,\n'sa5ef80b4bb9b39f8': `닫기`,\n'sa7551383d1897fcc': `2) Dock에 추가 버튼 누르기`,\n'sba52286c21552a4e': `더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.`,\n'sc79fd7641eb9a975': `안내 숨기기`,\n'scdaf4bbff76674c8': `홈 화면에 추가`,\n'sdfe23506a3b0cdc8': `1) Safari 브라우저에서 열기`,\n'se740f75b95a51807': `더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.`,\n'sfea652f6580ff086': `이 사이트는 앱 기능을 가지고 있습니다.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n's1b9047d53d9f9d22': `2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ`,\n's37a9e8aec5713460': `បង្ហាញបន្ថែម`,\n's5c6aad7a7e4a1437': `3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n's6196153c4b0c1ea0': `តំឡើង`,\n's922329d6f6213590': `បន្ថែមទៅកាន់ Dock`,\n'sa5ef80b4bb9b39f8': `បង្ហាញតិច`,\n'sa7551383d1897fcc': `2) ចុចលើ បន្ថែមទៅកាន់ Dock`,\n'sba52286c21552a4e': `តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sc79fd7641eb9a975': `បិទការណែនាំ`,\n'scdaf4bbff76674c8': `បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n'sdfe23506a3b0cdc8': `1) បើកនៅក្នុងកម្មវិធី Safari`,\n'se740f75b95a51807': `បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sfea652f6580ff086': `គេហទំព័រនេះមានមុខងារជាកម្មវិធី។`,\n };\n ","import { configureLocalization } from '@lit/localize';\r\nimport {\r\n sourceLocale,\r\n targetLocales,\r\n} from './locale-codes';\r\n\r\nimport * as ru from './locales/ru';\r\nimport * as tr from './locales/tr';\r\nimport * as de from \"./locales/de\";\r\nimport * as es from \"./locales/es\";\r\nimport * as nl from \"./locales/nl\";\r\nimport * as el from \"./locales/el\";\r\nimport * as fr from \"./locales/fr\";\r\nimport * as sr from \"./locales/sr\";\r\nimport * as pl from \"./locales/pl\";\r\nimport * as uk from \"./locales/uk\";\r\nimport * as zh from \"./locales/zh\";\r\nimport * as zhCN from \"./locales/zh-CN\";\r\nimport * as it from \"./locales/it\";\r\nimport * as cs from \"./locales/cs\";\r\nimport * as no from \"./locales/no\";\r\nimport * as pt from \"./locales/pt\";\r\nimport * as ja from \"./locales/ja\";\r\nimport * as sv from \"./locales/sv\";\r\nimport * as ko from \"./locales/ko\";\r\nimport * as km from \"./locales/km\";\r\n\r\nconst localizedTemplates = new Map([\r\n ['ru', ru],\r\n ['tr', tr],\r\n ['de', de],\r\n ['es', es],\r\n ['nl', nl],\r\n ['el', el],\r\n ['fr', fr],\r\n ['sr', sr],\r\n ['pl', pl],\r\n ['uk', uk],\r\n ['zh', zh],\r\n ['zh-CN', zhCN],\r\n ['it', it],\r\n ['cs', cs],\r\n ['no', no], // + nb\r\n ['pt', pt],\r\n ['ja', ja],\r\n ['sv', sv],\r\n ['ko', ko],\r\n ['km', km]\r\n])\r\n\r\nexport const { getLocale, setLocale } = configureLocalization({\r\n sourceLocale,\r\n targetLocales,\r\n // @ts-ignore\r\n loadLocale: async (lang: string) => localizedTemplates.get(lang)\r\n});\r\n\r\nexport const changeLocale = (lang: string) => {\r\n // Norwegian Bokmål is same as Norwegian\r\n switch (lang) {\r\n case 'nb':\r\n lang = 'no';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n try {\r\n if (localizedTemplates.get(lang))\r\n setLocale(lang);\r\n else\r\n setLocale(lang.slice(0, 2));\r\n }\r\n catch {\r\n console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);\r\n }\r\n};\r\n","import { ImageResource } from 'web-app-manifest';\r\n\r\nexport interface IRelatedApp {\r\n id: string,\r\n platform: string,\r\n url: string\r\n}\r\n\r\nexport interface IWindow extends Window {\r\n defferedPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\ntype Booleanish = 'true' | 'false';\r\n\r\nexport interface PWAInstallAttributes {\r\n ['manual-apple']?: Booleanish;\r\n ['manual-chrome']?: Booleanish;\r\n ['disable-chrome']?: Booleanish;\r\n ['install-description']?: string;\r\n ['disable-install-description']?: Booleanish;\r\n ['manifest-url']?: string;\r\n name?: string;\r\n description?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class Manifest {\r\n constructor() {\r\n this.icons = [{ src: '' }];\r\n this.screenshots = undefined;\r\n this.short_name = 'PWA';\r\n this.name = 'Progressive web application';\r\n this.description = 'Progressive web application';\r\n }\r\n short_name: string;\r\n icons: ImageResource[];\r\n screenshots?: ImageResource[];\r\n name: string;\r\n description: string;\r\n}\r\n","import {css} from 'lit'; export default css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`;\n ","import { html } from 'lit';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nconst template = (screenshots: WebAppManifest['screenshots'], theme: string, scrollToNextPage: any, scrollToPrevPage: any) => {\r\n return html`\r\n ${screenshots? html`\r\n
\r\n
\r\n
\r\n ${screenshots.map(screenshot => html``)}\r\n
\r\n
\r\n \r\n ${theme != 'default'?\r\n html``\r\n :\r\n html``\r\n }\r\n \r\n \r\n ${theme != 'default'?\r\n html`\r\n \r\n `\r\n :\r\n html`\r\n \r\n \r\n \r\n `\r\n }\r\n \r\n
`\r\n : ''}`;\r\n};\r\nexport default template;\r\n","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nimport styles from './styles-gallery.scss';\r\nimport template from './template-gallery';\r\n\r\n@customElement('pwa-gallery')\r\nexport default class PWAGalleryElement extends LitElement {\r\n\t@property() screenshots: WebAppManifest['screenshots'] = [];\r\n\t@property() theme: 'default' | 'apple_desktop' | 'apple_mobile' = 'default';\r\n\r\n\tstatic get styles() {\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tpublic calcScrollSize = () => {\r\n\t\t//@ts-ignore\r\n\t\tconst gallery = this.shadowRoot.querySelector('#paginated_gallery');\r\n\t\tif (!gallery)\r\n\t\t\treturn;\r\n\t\tconst gallery_scroller = gallery.querySelector('.gallery_scroller');\r\n\t\tif (!gallery_scroller)\r\n\t\t\treturn;\r\n\t\tconst gallery_items = Array.from(gallery_scroller.querySelectorAll('img'));\r\n\t\tif (!gallery_items)\r\n\t\t\treturn;\r\n\t\tconst gallery_item = gallery_items.find((item) => { return (item.offsetWidth + item.offsetLeft) >= gallery_scroller.scrollLeft})\r\n\t\tif (!gallery_item)\r\n\t\t\treturn;\r\n\r\n\t\treturn {\r\n\t\t\tscroller: gallery_scroller,\r\n\t\t\titem: gallery_item\r\n\t\t}\r\n\t}\r\n\tpublic scrollToNextPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.nextElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft + _tools.scroller.clientWidth + _tools.item.nextElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\tpublic scrollToPrevPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.previousElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft - _tools.scroller.clientWidth - _tools.item.previousElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\tprivate _init = () => {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools)\r\n\t\t\tsetTimeout(\r\n\t\t\t\t() => {\r\n\t\t\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t)\r\n\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\tthis._init();\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(\r\n this.screenshots,\r\n\t\t\tthis.theme,\r\n\t\t\tthis.scrollToNextPage,\r\n\t\t\tthis.scrollToPrevPage\r\n )}`;\r\n\t}\r\n}\r\n","import { html } from 'lit';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, icon: string, install: any) => {\r\n return html`\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n
${location.hostname}
\r\n
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n `;\r\n};\r\nexport default template;\r\n","import { WebAppManifest } from 'web-app-manifest';\r\nimport { IRelatedApp } from './types/types';\r\n\r\nconst _eventDispatcher = (_element: Element, name: string, message: string) => {\r\n const event = new CustomEvent(name, {\r\n detail: {\r\n message\r\n }\r\n });\r\n _element.dispatchEvent(event);\r\n}\r\nexport default class Utils {\r\n static isAppleMobile(): boolean {\r\n\t\tif (\r\n (\r\n ['iPhone', 'iPad', 'iPod'].includes(navigator.platform) ||\r\n (navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n )\r\n && ('serviceWorker' in navigator)\r\n )\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static isAppleDesktop(): boolean {\r\n // check if it's a mac\r\n const userAgent = navigator.userAgent.toLowerCase();\r\n if (navigator.maxTouchPoints || !userAgent.match(/macintosh/))\r\n return false;\r\n // check safari version >= 17\r\n const version = /version\\/(\\d{2})\\./.exec(userAgent)\r\n if (!version || !version[1] || !(parseInt(version[1]) >= 17))\r\n return false;\r\n // hacky way to detect Sonoma\r\n const audioCheck = document.createElement('audio').canPlayType('audio/wav; codecs=\"1\"') ? true : false;\r\n const webGLCheck = new OffscreenCanvas(1, 1).getContext('webgl') ? true : false;\r\n\r\n return audioCheck && webGLCheck;\r\n }\r\n \r\n static isStandalone() {\r\n\t\tif (window.matchMedia('(display-mode: standalone)').matches || ('standalone' in navigator && (navigator as any).standalone === true))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static async getInstalledRelatedApps(): Promise {\r\n if ('getInstalledRelatedApps' in navigator)\r\n try{\r\n await (navigator as any).getInstalledRelatedApps().then((relatedApps: IRelatedApp[]) => {\r\n return relatedApps;\r\n });\r\n } catch (e) {}\r\n \r\n return [];\r\n }\r\n \r\n static async isRelatedAppsInstalled(): Promise {\r\n const _relatedApps = await this.getInstalledRelatedApps();\r\n return _relatedApps.length? true : false;\r\n }\r\n\r\n static eventInstalledSuccess(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-success-event', 'App install success (Chromium/Android only)');\r\n }\r\n static eventInstalledFail(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-fail-event', 'App install failed (Chromium/Android only)');\r\n }\r\n static eventUserChoiceResult(_element: Element, message: string) {\r\n _eventDispatcher(_element, 'pwa-user-choice-result-event', message);\r\n }\r\n static eventInstallAvailable(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-available-event', 'App install available');\r\n }\r\n static eventInstallHowTo(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-how-to-event', 'App install instruction showed');\r\n }\r\n static eventGallery(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-gallery-event', 'App install gallery showed');\r\n }\r\n\r\n static normalizeManifestAssetUrls(manifest: WebAppManifest, manifestUrl: string) {\r\n const normalizedManifestUrl = new URL(manifestUrl, document.location.href);\r\n [...manifest.icons || [], ...manifest.screenshots || []].forEach(asset => {\r\n asset.src = new URL(asset.src, normalizedManifestUrl).href;\r\n })\r\n }\r\n}","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\n\r\n// import TouchDragListener from \"./touch-listener\";\r\n\r\ntype IProps = {\r\n name: string,\r\n description: string,\r\n icon: string\r\n}\r\n\r\nimport template from './template-bottom-sheet';\r\nimport Utils from '../../../utils';\r\n\r\n@customElement('pwa-bottom-sheet')\r\nexport default class PWABottomSheetElement extends LitElement {\r\n\t@property({type: Object}) props: IProps = {\r\n name: '',\r\n description: '',\r\n icon: ''\r\n };\r\n @property({type: Object}) install = {handleEvent: () => {}};\r\n\t@property() hideDialog = () => {};\r\n\t@property() disableClose = false;\r\n\r\n\tprivate _callInstall = () => {\r\n\t\tthis.install.handleEvent();\r\n\t}\r\n\r\n\tprivate _callHide = () => {\r\n\t\tthis.hideDialog();\r\n\t\tthis.setupAppearence();\r\n\t}\r\n\r\n\tprivate bindedElement: {\r\n\t\ttouchElement: HTMLElement,\r\n\t\tlistener: any }| null = null;\r\n\tprivate readonly _saveBodyStyle = document.body.style.overscrollBehaviorY;\r\n\tprivate dragMobileSheet = (element: HTMLElement | null | undefined, touchTargetElement: HTMLElement | undefined, infoElement: HTMLElement | undefined) => {\r\n\t\tif (!element || !touchTargetElement || !infoElement)\r\n\t\t\treturn null;\r\n\r\n\t\tlet dragOffset = 0;\r\n\t\tconst bounceOffset = 35;\r\n\t\tconst bottomSize = touchTargetElement.clientHeight + infoElement.clientHeight;\r\n\r\n\t\tconst getYCoord = (e: MouseEvent | TouchEvent): number => {\r\n\t\t\treturn (e as MouseEvent).clientY || ((e as TouchEvent).changedTouches && (e as TouchEvent).changedTouches.length? (e as TouchEvent).changedTouches[0].clientY : 0);\r\n\t\t}\r\n\r\n\t\tconst dragMouseDown = (e: MouseEvent | TouchEvent) => {\r\n\t\t\twindow.addEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.addEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.addEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.addEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tdragOffset = getYCoord(e) - touchTargetElement.getBoundingClientRect().top;\r\n\r\n\t\t\tdocument.body.style.overscrollBehaviorY = 'none';\r\n\t\t}\r\n\t\tconst dragMouseUp = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tdocument.body.style.overscrollBehaviorY = this._saveBodyStyle;\r\n\r\n\t\t\tif (!this.disableClose && getYCoord(e) >= window.innerHeight - 25) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight + 50, true);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (window.innerHeight - getYCoord(e) > element.clientHeight / 2.5) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - element.clientHeight);\r\n\t\t\t\t\r\n\t\t\t\ttry {\r\n\t\t\t\t\tUtils.eventGallery((this.getRootNode() as ShadowRoot).host);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - bottomSize - bounceOffset);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dragMouseMove = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tconst currentY = getYCoord(e);\r\n\r\n\t\t\tif (this.disableClose && window.innerHeight - currentY < 70) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (currentY <= (window.innerHeight - element.clientHeight + dragOffset)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`none`\r\n\t\t\t)\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"--translateY\",\r\n\t\t\t\t`translateY(${currentY - dragOffset}px)`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => {\r\n\t\t\twindow.removeEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.removeEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.removeEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.removeEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tif (window.innerWidth >= 768)\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!toPoint && getYCoord(e) >= window.innerHeight - bottomSize)\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(calc(100vh - ${bottomSize}px))`\r\n\t\t\t\t);\r\n\t\t\telse\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(${(toPoint || getYCoord(e)) + bounceOffset}px)`\r\n\t\t\t\t);\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s`\r\n\t\t\t);\r\n\r\n\t\t\tif (hideDialog){\r\n\t\t\t\ttouchTargetElement.removeEventListener('mousedown', dragMouseDown);\r\n\t\t\t\ttouchTargetElement.removeEventListener('touchstart', dragMouseDown);\r\n\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\tthis._callHide,\r\n\t\t\t\t\t250\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\ttouchTargetElement.addEventListener('mousedown', dragMouseDown);\r\n\t\ttouchTargetElement.addEventListener('touchstart', dragMouseDown, {passive: true});\r\n\r\n\t\tcloseDragElement(new MouseEvent('mouseup'), window.innerHeight - bottomSize - bounceOffset);\r\n\r\n\t\treturn {\r\n\t\t\ttouchElement: touchTargetElement,\r\n\t\t\tlistener: dragMouseDown\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupAppearence = () => {\r\n\t\tif (this.bindedElement) {\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('mousedown', this.bindedElement.listener);\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('touchstart', this.bindedElement.listener);\r\n\t\t}\r\n\r\n\t\tthis.bindedElement = this.dragMobileSheet(\r\n\t\t\tthis.parentElement?.parentElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement);\r\n\t}\r\n\tprivate _init = () => {\r\n\t\tthis.setupAppearence();\r\n\r\n\t\twindow.addEventListener('resize', this.setupAppearence);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tthis._init();\r\n return;\r\n\t}\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(this.props.name, this.props.description, this.props.icon, this._callInstall)}`;\r\n\t}\r\n}\r\n","import {css} from 'lit'; export default css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,\"Segoe UI\",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:\"\";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,\"Segoe UI\",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:\"\";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`;\n ","import {css} from 'lit'; export default css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,\"Segoe UI\";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon description\" \"welcome welcome\" \"how-to how-to\" \"gallery gallery\" \"button button\";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon\" \"description\" \"welcome\" \"how-to\" \"gallery\" \"button\";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;\n ","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n
\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n ${!disableClose? html`` : ''}\r\n
\r\n
${location.hostname}
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n ${!disableDescription? \r\n html`
${installDescription? installDescription: `${msg('This site has app functionality.')} ${msg('Install it on your device for extensive experience and easy access.')}`}
` \r\n : ''}\r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n ${screenshotsAvailable? html``:''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n
\r\n
`;\r\n};\r\nexport default template;\r\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, isDesktop: boolean, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested, desktop: isDesktop}};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n `;\r\n};\r\nexport default template;\r\n","import { LitElement, PropertyValues, html } from 'lit';\r\nimport { localized } from '@lit/localize';\r\nimport { property, state, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { changeLocale } from './localization';\r\n\r\nimport { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types';\r\n\r\nimport PWAGalleryElement from './gallery';\r\nimport PWABottomSheetElement from './templates/chrome/bottom-sheet';\r\n\r\nimport Utils from './utils';\r\n\r\ndeclare const window: IWindow;\r\n\r\nimport styles from './templates/chrome/styles.scss';\r\nimport stylesApple from './templates/apple/styles-apple.scss';\r\n\r\nimport template from './templates/chrome/template';\r\nimport templateApple from './templates/apple/template-apple';\r\n\r\n/**\r\n * @event {CustomEvent} pwa-install-success-event - App install success (Chromium/Android only)\r\n * @event {CustomEvent} pwa-install-fail-event - App install failed (Chromium/Android only)\r\n * @event {CustomEvent} pwa-user-choice-result-event - dismissed, accepted\r\n * @event {CustomEvent} pwa-install-available-event - App install available\r\n * @event {CustomEvent} pwa-install-how-to-event - App install instruction showed\r\n * @event {CustomEvent} pwa-install-gallery-event - App install gallery showed\r\n */\r\n@localized()\r\n@customElement('pwa-install')\r\nexport class PWAInstallElement extends LitElement {\r\n\t@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json';\r\n\t@property() icon = '';\r\n\t@property() name = '';\r\n\t@property() description = '';\r\n\t@property({attribute: 'install-description'}) installDescription = '';\r\n\t@property({attribute: 'disable-install-description', type: Boolean}) disableDescription = false;\r\n\t@property({attribute: 'disable-screenshots', type: Boolean}) disableScreenshots = false;\r\n\t@property({attribute: 'disable-screenshots-apple', type: Boolean}) disableScreenshotsApple = false;\r\n\t@property({attribute: 'disable-screenshots-chrome', type: Boolean}) disableScreenshotsChrome = false;\r\n\t@property({attribute: 'manual-apple', type: Boolean}) manualApple = false;\r\n\t@property({attribute: 'manual-chrome', type: Boolean}) manualChrome = false;\r\n\t@property({attribute: 'disable-chrome', type: Boolean}) disableChrome = false;\r\n\t@property({attribute: 'disable-close', type: Boolean}) disableClose = false;\r\n\r\n\tstatic get styles() {\r\n\t\treturn [ styles, stylesApple ];\r\n\t}\r\n\r\n\t@state() externalPromptEvent: BeforeInstallPromptEvent | null = null;\r\n\r\n\tpublic platforms: BeforeInstallPromptEvent['platforms'] = [];\r\n\tpublic userChoiceResult = '';\r\n\r\n\tpublic isDialogHidden: boolean = JSON.parse(window.sessionStorage.getItem('pwa-hide-install') || 'false');\r\n\tpublic isInstallAvailable = false;\r\n\tpublic isAppleMobilePlatform = false;\r\n\tpublic isAppleDesktopPlatform = false;\r\n\tpublic isUnderStandaloneMode = false;\r\n\tpublic isRelatedAppsInstalled = false;\r\n\r\n\t/** @internal */\r\n\tprivate _manifest: WebAppManifest = new Manifest();\r\n\t/** @internal */\r\n\tprivate _howToRequested = false;\r\n\t/** @internal */\r\n\tprivate _galleryRequested = false;\r\n\t/** @internal */\r\n\tprivate _install = {\r\n\t\thandleEvent: () => {\r\n\t\t\tif (window.defferedPromptEvent) {\r\n\t\t\t\tthis.hideDialog();\r\n\t\t\t\twindow.defferedPromptEvent.prompt();\r\n\t\t\t\twindow.defferedPromptEvent.userChoice\r\n\t\t\t\t\t.then((choiceResult: PromptResponseObject) => {\r\n\t\t\t\t\t\tthis.userChoiceResult = choiceResult.outcome;\r\n\t\t\t\t\t\tUtils.eventUserChoiceResult(this, this.userChoiceResult);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tUtils.eventInstalledFail(this);\r\n\t\t\t\t\t});\r\n\t\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\tpublic install = () => {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tthis._howToRequested = true;\r\n\t\t\tthis.requestUpdate();\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis._install.handleEvent();\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialog = {\r\n\t\thandleEvent: () => {\r\n\t\t\tthis.isDialogHidden = true;\r\n\t\t\twindow.sessionStorage.setItem('pwa-hide-install', 'true');\r\n\t\t\tthis.requestUpdate();\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialogUser = () => {\r\n\t\tUtils.eventUserChoiceResult(this, 'dismissed');\r\n\t\tthis.userChoiceResult = 'dismissed';\r\n\t\tthis.hideDialog();\r\n\t}\r\n\tpublic hideDialog = () => {\r\n\t\tthis._hideDialog.handleEvent();\r\n\t}\r\n\tpublic showDialog = (forced = false) => {\r\n\t\tthis.isDialogHidden = false;\r\n\t\tif (forced)\r\n\t\t\tthis.isInstallAvailable = true;\r\n\t\twindow.sessionStorage.setItem('pwa-hide-install', 'false');\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tpublic getInstalledRelatedApps = async (): Promise => {\r\n\t\treturn await Utils.getInstalledRelatedApps();\r\n\t}\r\n\r\n\t/** @internal */\r\n\tprivate _howToForApple = {\r\n handleEvent: () => {\r\n\t\t\tthis._howToRequested = !this._howToRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._galleryRequested = false;\r\n\t\t\tthis.requestUpdate();\r\n\r\n\t\t\tif (this._howToRequested) {\r\n\t\t\t\tUtils.eventInstallHowTo(this);\r\n\t\t\t\t\r\n\t\t\t\t// Looks like it's not needed anymore\r\n\t\t\t\t// if (this._manifest.start_url){\r\n\t\t\t\t// \ttry {\r\n\t\t\t\t// \t\thistory.replaceState({}, '', this._manifest.start_url);\r\n\t\t\t\t// \t} catch (e) {}\r\n\t\t\t\t// }\r\n\t\t\t}\t\t\t\t\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate _toggleGallery = {\r\n handleEvent: () => {\r\n\t\t\tthis._galleryRequested = !this._galleryRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._howToRequested = false;\r\n\r\n\t\t\tthis._galleryRequested && Utils.eventGallery(this);\r\n\r\n\t\t\tthis.requestUpdate();\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate async _checkInstalled() {\r\n\t\tthis.isUnderStandaloneMode = Utils.isStandalone();\r\n\t\tthis.isRelatedAppsInstalled = await Utils.isRelatedAppsInstalled();\r\n\t\tthis.isAppleMobilePlatform = Utils.isAppleMobile();\r\n\t\tthis.isAppleDesktopPlatform = Utils.isAppleDesktop();\r\n\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tif (!this.isUnderStandaloneMode) {\r\n\t\t\t\tthis.manualApple && this.hideDialog();\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1000\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.manualChrome && this.hideDialog();\r\n\t\t}\r\n\t}\r\n\t/** @internal */\r\n\tprivate _init = async () => {\r\n\t\twindow.defferedPromptEvent = null;\r\n\r\n\t\tthis._checkInstalled();\r\n\r\n\t\tif (!this.disableChrome) {\r\n\t\t\tconst _promptHandler = (e: BeforeInstallPromptEvent) => {\r\n\t\t\t\twindow.defferedPromptEvent = e;\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.platforms = e.platforms;\r\n\r\n\t\t\t\tif (this.isRelatedAppsInstalled || this.isUnderStandaloneMode) {\r\n\t\t\t\t\tthis.isInstallAvailable = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.userChoiceResult === 'accepted'){\r\n\t\t\t\t\tthis.isDialogHidden = true;\r\n\t\t\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t}\r\n\t\t\tif (this.externalPromptEvent != null)\r\n\t\t\t\tsetTimeout(() => _promptHandler(this.externalPromptEvent!), 300);\r\n\t\t\telse\r\n\t\t\t\twindow.addEventListener('beforeinstallprompt', _promptHandler);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('appinstalled', (e) => {\r\n\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\tthis.isInstallAvailable = false;\r\n\r\n\t\t\tthis.requestUpdate();\r\n\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t});\r\n\r\n\r\n\t\ttry{\r\n\t\t\tconst _response = await fetch(this.manifestUrl);\r\n\t\t\tconst _json = await _response.json() as WebAppManifest;\r\n\t\t\tif (!_response.ok || !_json || !Object.keys(_json))\r\n\t\t\t\tthrow new Error('Manifest not found');\r\n\t\t\tUtils.normalizeManifestAssetUrls(_json, this.manifestUrl);\r\n\t\t\t\r\n\t\t\tthis.icon = this.icon || _json.icons?.length ? _json.icons![0].src : '';\r\n\t\t\tthis.name = this.name || _json['short_name'] || _json.name || '';\r\n\t\t\tthis.description = this.description || _json.description || '';\r\n\t\t\tthis._manifest = _json;\r\n\t\t}\r\n\t\tcatch(e) {\r\n\t\t\tthis.icon = this.icon || this._manifest.icons?.[0].src || '';\r\n\t\t\tthis.name = this.name || this._manifest['short_name'] || '';\r\n\t\t\tthis.description = this.description || this._manifest.description || '';\r\n\t\t}\r\n\t};\r\n\t/** @internal */\r\n\tprivate _requestUpdate = () => {\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tchangeLocale(navigator.language);\r\n\t\tthis._init();\r\n\t\tPWAGalleryElement.finalized;\r\n\t\tPWABottomSheetElement.finalized;\r\n\t\tsuper.connectedCallback();\r\n\t}\r\n\twillUpdate(changedProperties: PropertyValues) {\r\n\t\tif (this.externalPromptEvent && changedProperties.has('externalPromptEvent') && typeof this.externalPromptEvent == 'object') {\r\n\t\t this._init();\r\n\t\t}\r\n\t}\r\n\r\n\t// firstUpdated() {\r\n\t// \treturn;\r\n\t// }\r\n\r\n\trender() {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform)\r\n\t\t\treturn html`${templateApple(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsApple,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._howToForApple,\r\n\t\t\t\tthis.isAppleDesktopPlatform,\r\n\t\t\t\tthis._howToRequested,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t\telse\r\n\t\t\treturn html`${template(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsChrome,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._install,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t}\r\n}\r\n\r\nexport { PWAInstallAttributes };\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { updateWhenLocaleChanges } from './localized-controller.js';\n/**\n * Class decorator to enable re-rendering the given LitElement whenever a new\n * active locale has loaded.\n *\n * See also {@link updateWhenLocaleChanges} for the same functionality without\n * the use of decorators.\n *\n * When using lit-localize in transform mode, applications of this decorator are\n * removed.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {customElement} from 'lit/decorators.js';\n * import {msg, localized} from '@lit/localize';\n *\n * @localized()\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nexport const localized = () => (clazz, _context) => {\n clazz.addInitializer(updateWhenLocaleChanges);\n return clazz;\n};\n//# sourceMappingURL=localized-decorator.js.map"],"names":["root","factory","exports","module","require","define","amd","globalThis","__WEBPACK_EXTERNAL_MODULE__161__","__WEBPACK_EXTERNAL_MODULE__429__","__WEBPACK_EXTERNAL_MODULE__125__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","joinStringsAndValues","strings","values","valueOrder","concat","i","length","template","isStrTagged","val","LOCALE_STATUS_EVENT","LocalizeController","constructor","host","this","__litLocalizeEventHandler","event","detail","status","requestUpdate","hostConnected","window","addEventListener","hostDisconnected","removeEventListener","updateWhenLocaleChanges","addController","Deferred","settled","promise","Promise","resolve","reject","_resolve","_reject","error","hl","toString","HASH_DELIMITER","HTML_PREFIX","STRING_PREFIX","generateMsgId","isHtmlTagged","str","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","fnv1a64","join","expressionOrders","WeakMap","hashCache","Map","runtimeMsg","templates","options","id","set","generateId","localized","order","map","dispatchStatusEvent","dispatchEvent","CustomEvent","loadingLocale","sourceLocale","validLocales","loadLocale","activeLocale","loading","requestId","getLocale","setLocale","newLocale","Error","has","thisRequestId","then","mod","readyLocale","err","errorLocale","errorMessage","msg","installed","targetLocales","localizedTemplates","config","async","lang","impl","Set","add","Manifest","icons","src","screenshots","short_name","name","description","css","theme","scrollToNextPage","scrollToPrevPage","html","PWAGalleryElement","LitElement","calcScrollSize","gallery","shadowRoot","querySelector","gallery_scroller","gallery_items","Array","from","querySelectorAll","gallery_item","find","item","offsetWidth","offsetLeft","scrollLeft","scroller","_tools","nextElementSibling","scrollTo","top","left","clientWidth","behavior","previousElementSibling","_init","styles","firstUpdated","setTimeout","connectedCallback","super","render","property","customElement","icon","install","_eventDispatcher","_element","message","Utils","isAppleMobile","includes","navigator","platform","userAgent","match","maxTouchPoints","isAppleDesktop","toLowerCase","version","exec","parseInt","audioCheck","document","createElement","canPlayType","webGLCheck","OffscreenCanvas","getContext","isStandalone","matchMedia","matches","standalone","getInstalledRelatedApps","relatedApps","e","isRelatedAppsInstalled","eventInstalledSuccess","eventInstalledFail","eventUserChoiceResult","eventInstallAvailable","eventInstallHowTo","eventGallery","normalizeManifestAssetUrls","manifest","manifestUrl","normalizedManifestUrl","URL","location","href","forEach","asset","PWABottomSheetElement","props","handleEvent","hideDialog","disableClose","_callInstall","_callHide","setupAppearence","bindedElement","_saveBodyStyle","body","style","overscrollBehaviorY","dragMobileSheet","element","touchTargetElement","infoElement","dragOffset","bottomSize","clientHeight","getYCoord","clientY","changedTouches","dragMouseDown","dragMouseUp","dragMouseMove","getBoundingClientRect","innerHeight","closeDragElement","getRootNode","currentY","setProperty","toPoint","innerWidth","passive","MouseEvent","touchElement","listener","parentElement","getElementsByClassName","createRenderRoot","type","installDescription","disableDescription","disableScreenshots","installAvailable","toggleGallery","galleryRequested","installDialogClasses","available","screenshotsAvailable","howToForApple","isDesktop","howToRequested","desktop","PWAInstallElement","disableScreenshotsApple","disableScreenshotsChrome","manualApple","manualChrome","disableChrome","externalPromptEvent","platforms","userChoiceResult","isDialogHidden","JSON","parse","sessionStorage","getItem","isInstallAvailable","isAppleMobilePlatform","isAppleDesktopPlatform","isUnderStandaloneMode","_manifest","_howToRequested","_galleryRequested","_install","defferedPromptEvent","prompt","userChoice","choiceResult","outcome","catch","_hideDialog","setItem","_hideDialogUser","showDialog","forced","_howToForApple","_toggleGallery","_checkInstalled","_promptHandler","preventDefault","_response","fetch","_json","json","ok","keys","_requestUpdate","slice","changeLocale","language","finalized","willUpdate","changedProperties","attribute","Boolean","state","clazz","_context","addInitializer"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"pwa-install.umd.js","mappings":"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","sources":["webpack://PWAInstallComponent/webpack/universalModuleDefinition","webpack://PWAInstallComponent/external umd \"lit\"","webpack://PWAInstallComponent/external umd \"lit/decorators.js\"","webpack://PWAInstallComponent/external umd \"lit/directives/class-map.js\"","webpack://PWAInstallComponent/webpack/bootstrap","webpack://PWAInstallComponent/webpack/runtime/define property getters","webpack://PWAInstallComponent/webpack/runtime/hasOwnProperty shorthand","webpack://PWAInstallComponent/webpack/runtime/make namespace object","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/str-tag.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/default-msg.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/init/install.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/locale-status-event.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/localized-controller.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/deferred.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/fnv1a64.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/id-generation.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/runtime-msg.js","webpack://PWAInstallComponent/./node_modules/@lit/localize/init/runtime.js","webpack://PWAInstallComponent/./src/localization/locale-codes.ts","webpack://PWAInstallComponent/./src/localization/locales/ru.ts","webpack://PWAInstallComponent/./src/localization/locales/tr.ts","webpack://PWAInstallComponent/./src/localization/locales/de.ts","webpack://PWAInstallComponent/./src/localization/locales/es.ts","webpack://PWAInstallComponent/./src/localization/locales/nl.ts","webpack://PWAInstallComponent/./src/localization/locales/el.ts","webpack://PWAInstallComponent/./src/localization/locales/fr.ts","webpack://PWAInstallComponent/./src/localization/locales/sr.ts","webpack://PWAInstallComponent/./src/localization/locales/pl.ts","webpack://PWAInstallComponent/./src/localization/locales/uk.ts","webpack://PWAInstallComponent/./src/localization/locales/zh.ts","webpack://PWAInstallComponent/./src/localization/locales/zh-CN.ts","webpack://PWAInstallComponent/./src/localization/locales/it.ts","webpack://PWAInstallComponent/./src/localization/locales/cs.ts","webpack://PWAInstallComponent/./src/localization/locales/no.ts","webpack://PWAInstallComponent/./src/localization/locales/pt.ts","webpack://PWAInstallComponent/./src/localization/locales/ja.ts","webpack://PWAInstallComponent/./src/localization/locales/sv.ts","webpack://PWAInstallComponent/./src/localization/locales/ko.ts","webpack://PWAInstallComponent/./src/localization/locales/km.ts","webpack://PWAInstallComponent/./src/localization/index.ts","webpack://PWAInstallComponent/./src/types/types.ts","webpack://PWAInstallComponent/./src/gallery/styles-gallery.scss","webpack://PWAInstallComponent/./src/gallery/template-gallery.ts","webpack://PWAInstallComponent/./src/gallery/index.ts","webpack://PWAInstallComponent/./src/templates/chrome/bottom-sheet/template-bottom-sheet.ts","webpack://PWAInstallComponent/./src/utils.ts","webpack://PWAInstallComponent/./src/templates/chrome/bottom-sheet/index.ts","webpack://PWAInstallComponent/./src/templates/chrome/styles.scss","webpack://PWAInstallComponent/./src/templates/apple/styles-apple.scss","webpack://PWAInstallComponent/./src/templates/chrome/template.ts","webpack://PWAInstallComponent/./src/templates/apple/template-apple.ts","webpack://PWAInstallComponent/./src/index.ts","webpack://PWAInstallComponent/./node_modules/@lit/localize/internal/localized-decorator.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"lit\"), require(\"lit/decorators.js\"), require(\"lit/directives/class-map.js\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"lit\", \"lit/decorators.js\", \"lit/directives/class-map.js\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"PWAInstallComponent\"] = factory(require(\"lit\"), require(\"lit/decorators.js\"), require(\"lit/directives/class-map.js\"));\n\telse\n\t\troot[\"PWAInstallComponent\"] = factory(root[\"lit\"], root[\"lit/decorators.js\"], root[\"lit/directives/class-map.js\"]);\n})(globalThis, (__WEBPACK_EXTERNAL_MODULE__161__, __WEBPACK_EXTERNAL_MODULE__429__, __WEBPACK_EXTERNAL_MODULE__125__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__161__;","module.exports = __WEBPACK_EXTERNAL_MODULE__429__;","module.exports = __WEBPACK_EXTERNAL_MODULE__125__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Tag that allows expressions to be used in localized non-HTML template\n * strings.\n *\n * Example: msg(str`Hello ${this.user}!`);\n *\n * The Lit html tag can also be used for this purpose, but HTML will need to be\n * escaped, and there is a small overhead for HTML parsing.\n *\n * Untagged template strings with expressions aren't supported by lit-localize\n * because they don't allow for values to be captured at runtime.\n */\nconst _str = (strings, ...values) => ({\n strTag: true,\n strings,\n values,\n});\nexport const str = _str;\nexport const isStrTagged = (val) => typeof val !== 'string' && 'strTag' in val;\n/**\n * Render the result of a `str` tagged template to a string. Note we don't need\n * to do this for Lit templates, since Lit itself handles rendering.\n */\nexport const joinStringsAndValues = (strings, values, valueOrder) => {\n let concat = strings[0];\n for (let i = 1; i < strings.length; i++) {\n concat += values[valueOrder ? valueOrder[i - 1] : i - 1];\n concat += strings[i];\n }\n return concat;\n};\n//# sourceMappingURL=str-tag.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { isStrTagged, joinStringsAndValues } from './str-tag.js';\n/**\n * Default identity msg implementation. Simply returns the input template with\n * no awareness of translations. If the template is str-tagged, returns it in\n * string form.\n */\nexport const defaultMsg = ((template) => isStrTagged(template)\n ? joinStringsAndValues(template.strings, template.values)\n : template);\n//# sourceMappingURL=default-msg.js.map","import { defaultMsg } from '../internal/default-msg.js';\n/**\n * Make a string or lit-html template localizable.\n *\n * @param template A string, a lit-html template, or a function that returns\n * either a string or lit-html template.\n * @param options Optional configuration object with the following properties:\n * - id: Optional project-wide unique identifier for this template. If\n * omitted, an id will be automatically generated from the template strings.\n * - desc: Optional description\n */\nexport let msg = defaultMsg;\nlet installed = false;\n/**\n * Internal only. Do not use this function.\n *\n * Installs an implementation of the msg function to replace the default\n * identity function. Throws if called more than once.\n *\n * @internal\n */\nexport function _installMsgImplementation(impl) {\n if (installed) {\n throw new Error('lit-localize can only be configured once');\n }\n msg = impl;\n installed = true;\n}\n//# sourceMappingURL=install.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n/**\n * Name of the event dispatched to `window` whenever a locale change starts,\n * finishes successfully, or fails. Only relevant to runtime mode.\n *\n * The `detail` of this event is an object with a `status` string that can be:\n * \"loading\", \"ready\", or \"error\", along with the relevant locale code, and\n * error message if applicable.\n *\n * You can listen for this event to know when your application should be\n * re-rendered following a locale change. See also the Localized mixin, which\n * automatically re-renders LitElement classes using this event.\n */\nexport const LOCALE_STATUS_EVENT = 'lit-localize-status';\n//# sourceMappingURL=locale-status-event.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { LOCALE_STATUS_EVENT } from './locale-status-event.js';\nclass LocalizeController {\n constructor(host) {\n this.__litLocalizeEventHandler = (event) => {\n if (event.detail.status === 'ready') {\n this.host.requestUpdate();\n }\n };\n this.host = host;\n }\n hostConnected() {\n window.addEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n hostDisconnected() {\n window.removeEventListener(LOCALE_STATUS_EVENT, this.__litLocalizeEventHandler);\n }\n}\n/**\n * Re-render the given LitElement whenever a new active locale has loaded.\n *\n * See also {@link localized} for the same functionality as a decorator.\n *\n * When using lit-localize in transform mode, calls to this function are\n * replaced with undefined.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {msg, updateWhenLocaleChanges} from '@lit/localize';\n *\n * class MyElement extends LitElement {\n * constructor() {\n * super();\n * updateWhenLocaleChanges(this);\n * }\n *\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nconst _updateWhenLocaleChanges = (host) => host.addController(new LocalizeController(host));\nexport const updateWhenLocaleChanges = _updateWhenLocaleChanges;\n//# sourceMappingURL=localized-controller.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nexport class Deferred {\n constructor() {\n this.settled = false;\n this.promise = new Promise((resolve, reject) => {\n this._resolve = resolve;\n this._reject = reject;\n });\n }\n resolve(value) {\n this.settled = true;\n this._resolve(value);\n }\n reject(error) {\n this.settled = true;\n this._reject(error);\n }\n}\n//# sourceMappingURL=deferred.js.map","/**\n * @license\n * Copyright 2014 Travis Webb\n * SPDX-License-Identifier: MIT\n */\n// This module is derived from the file:\n// https://github.com/tjwebb/fnv-plus/blob/1e2ce68a07cb7dd4c3c85364f3d8d96c95919474/index.js#L309\n//\n// Changes:\n// - Only the _hash64_1a_fast function is included.\n// - Removed loop unrolling.\n// - Converted to TypeScript ES module.\n// - var -> let/const\n//\n// TODO(aomarks) Upstream improvements to https://github.com/tjwebb/fnv-plus/.\nconst hl = [];\nfor (let i = 0; i < 256; i++) {\n hl[i] = ((i >> 4) & 15).toString(16) + (i & 15).toString(16);\n}\n/**\n * Perform a FNV-1A 64-bit hash of the given string (as UTF-16 code units), and\n * return a hexadecimal digest (left zero padded to 16 characters).\n *\n * @see {@link http://tools.ietf.org/html/draft-eastlake-fnv-06}\n */\nexport function fnv1a64(str) {\n let t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2;\n for (let i = 0; i < str.length; i++) {\n v0 ^= str.charCodeAt(i);\n t0 = v0 * 435;\n t1 = v1 * 435;\n t2 = v2 * 435;\n t3 = v3 * 435;\n t2 += v0 << 8;\n t3 += v1 << 8;\n t1 += t0 >>> 16;\n v0 = t0 & 65535;\n t2 += t1 >>> 16;\n v1 = t1 & 65535;\n v3 = (t3 + (t2 >>> 16)) & 65535;\n v2 = t2 & 65535;\n }\n return (hl[v3 >> 8] +\n hl[v3 & 255] +\n hl[v2 >> 8] +\n hl[v2 & 255] +\n hl[v1 >> 8] +\n hl[v1 & 255] +\n hl[v0 >> 8] +\n hl[v0 & 255]);\n}\n//# sourceMappingURL=fnv1a64.js.map","/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { fnv1a64 } from './fnv1a64.js';\n/**\n * Delimiter used between each template string component before hashing. Used to\n * prevent e.g. \"foobar\" and \"foo${baz}bar\" from sharing a hash.\n *\n * This is the \"record separator\" ASCII character.\n */\nexport const HASH_DELIMITER = '\\x1e';\n/**\n * Id prefix on html-tagged templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst HTML_PREFIX = 'h';\n/**\n * Id prefix on plain string templates to distinguish e.g. `x` from\n * html`x`.\n */\nconst STRING_PREFIX = 's';\n/**\n * Generate a unique ID for a lit-localize message.\n *\n * Example:\n * Template: html`Hello ${who}!`\n * Params: [\"Hello \", \"!\"], true\n * Output: h82ccc38d4d46eaa9\n *\n * The ID is constructed as:\n *\n * [0] Kind of template: [h]tml or [s]tring.\n * [1,16] 64-bit FNV-1a hash hex digest of the template strings, as UTF-16\n * code points, delineated by an ASCII \"record separator\" character.\n *\n * We choose FNV-1a because:\n *\n * 1. It's pretty fast (e.g. much faster than SHA-1).\n * 2. It's pretty small (0.25 KiB minified + brotli).\n * 3. We don't require cryptographic security, and 64 bits should give\n * sufficient collision resistance for any one application. Worst\n * case, we will always detect collisions during analysis.\n * 4. We can't use Web Crypto API (e.g. SHA-1), because it's asynchronous.\n * 5. It's a well known non-cryptographic hash with implementations in many\n * languages.\n * 6. There was an existing JavaScript implementation that doesn't require\n * BigInt, for IE11 compatibility.\n */\nexport function generateMsgId(strings, isHtmlTagged) {\n return ((isHtmlTagged ? HTML_PREFIX : STRING_PREFIX) +\n fnv1a64(typeof strings === 'string' ? strings : strings.join(HASH_DELIMITER)));\n}\n//# sourceMappingURL=id-generation.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { defaultMsg } from './default-msg.js';\nimport { joinStringsAndValues } from './str-tag.js';\nimport { generateMsgId } from './id-generation.js';\nconst expressionOrders = new WeakMap();\nconst hashCache = new Map();\nexport function runtimeMsg(templates, template, options) {\n if (templates) {\n const id = options?.id ?? generateId(template);\n const localized = templates[id];\n if (localized) {\n if (typeof localized === 'string') {\n // E.g. \"Hello World!\"\n return localized;\n }\n else if ('strTag' in localized) {\n // E.g. str`Hello ${name}!`\n //\n // Localized templates have ${number} in place of real template\n // expressions. They can't have real template values, because the\n // variable scope would be wrong. The number tells us the index of the\n // source value to substitute in its place, because expressions can be\n // moved to a different position during translation.\n return joinStringsAndValues(localized.strings, \n // Cast `template` because its type wasn't automatically narrowed (but\n // we know it must be the same type as `localized`).\n template.values, localized.values);\n }\n else {\n // E.g. html`Hello ${name}!`\n //\n // We have to keep our own mapping of expression ordering because we do\n // an in-place update of `values`, and otherwise we'd lose ordering for\n // subsequent renders.\n let order = expressionOrders.get(localized);\n if (order === undefined) {\n order = localized.values;\n expressionOrders.set(localized, order);\n }\n return {\n ...localized,\n values: order.map((i) => template.values[i]),\n };\n }\n }\n }\n return defaultMsg(template);\n}\nfunction generateId(template) {\n const strings = typeof template === 'string' ? template : template.strings;\n let id = hashCache.get(strings);\n if (id === undefined) {\n id = generateMsgId(strings, typeof template !== 'string' && !('strTag' in template));\n hashCache.set(strings, id);\n }\n return id;\n}\n//# sourceMappingURL=runtime-msg.js.map","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { Deferred } from '../internal/deferred.js';\nimport { LOCALE_STATUS_EVENT } from '../internal/locale-status-event.js';\nimport { runtimeMsg } from '../internal/runtime-msg.js';\nimport { _installMsgImplementation } from './install.js';\n/**\n * Dispatch a \"lit-localize-status\" event to `window` with the given detail.\n */\nfunction dispatchStatusEvent(detail) {\n window.dispatchEvent(new CustomEvent(LOCALE_STATUS_EVENT, { detail }));\n}\nlet activeLocale = '';\nlet loadingLocale;\nlet sourceLocale;\nlet validLocales;\nlet loadLocale;\nlet templates;\nlet loading = new Deferred();\n// The loading promise must be initially resolved, because that's what we should\n// return if the user immediately calls setLocale(sourceLocale).\nloading.resolve();\nlet requestId = 0;\n/**\n * Set configuration parameters for lit-localize when in runtime mode. Returns\n * an object with functions:\n *\n * - `getLocale`: Return the active locale code.\n * - `setLocale`: Set the active locale code.\n *\n * Throws if called more than once.\n */\nexport const configureLocalization = (config) => {\n _installMsgImplementation(((template, options) => runtimeMsg(templates, template, options)));\n activeLocale = sourceLocale = config.sourceLocale;\n validLocales = new Set(config.targetLocales);\n validLocales.add(config.sourceLocale);\n loadLocale = config.loadLocale;\n return { getLocale, setLocale };\n};\n/**\n * Return the active locale code.\n */\nconst getLocale = () => {\n return activeLocale;\n};\n/**\n * Set the active locale code, and begin loading templates for that locale using\n * the `loadLocale` function that was passed to `configureLocalization`. Returns\n * a promise that resolves when the next locale is ready to be rendered.\n *\n * Note that if a second call to `setLocale` is made while the first requested\n * locale is still loading, then the second call takes precedence, and the\n * promise returned from the first call will resolve when second locale is\n * ready. If you need to know whether a particular locale was loaded, check\n * `getLocale` after the promise resolves.\n *\n * Throws if the given locale is not contained by the configured `sourceLocale`\n * or `targetLocales`.\n */\nconst setLocale = (newLocale) => {\n if (newLocale === (loadingLocale ?? activeLocale)) {\n return loading.promise;\n }\n if (!validLocales || !loadLocale) {\n throw new Error('Internal error');\n }\n if (!validLocales.has(newLocale)) {\n throw new Error('Invalid locale code');\n }\n requestId++;\n const thisRequestId = requestId;\n loadingLocale = newLocale;\n if (loading.settled) {\n loading = new Deferred();\n }\n dispatchStatusEvent({ status: 'loading', loadingLocale: newLocale });\n const localePromise = newLocale === sourceLocale\n ? // We could switch to the source locale synchronously, but we prefer to\n // queue it on a microtask so that switching locales is consistently\n // asynchronous.\n Promise.resolve({ templates: undefined })\n : loadLocale(newLocale);\n localePromise.then((mod) => {\n if (requestId === thisRequestId) {\n activeLocale = newLocale;\n loadingLocale = undefined;\n templates = mod.templates;\n dispatchStatusEvent({ status: 'ready', readyLocale: newLocale });\n loading.resolve();\n }\n // Else another locale was requested in the meantime. Don't resolve or\n // reject, because the newer load call is going to use the same promise.\n // Note the user can call getLocale() after the promise resolves if they\n // need to check if the locale is still the one they expected to load.\n }, (err) => {\n if (requestId === thisRequestId) {\n dispatchStatusEvent({\n status: 'error',\n errorLocale: newLocale,\n errorMessage: err.toString(),\n });\n loading.reject(err);\n }\n });\n return loading.promise;\n};\n//# sourceMappingURL=runtime.js.map","// Do not modify this file by hand!\n// Re-generate this file by running lit-localize.\n\n/**\n * The locale code that templates in this source code are written in.\n */\nexport const sourceLocale = `en`;\n\n/**\n * The other locale codes that this application is localized into. Sorted\n * lexicographically.\n */\nexport const targetLocales = [\n `cs`,\n `de`,\n `el`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n\n/**\n * All valid project locale codes. Sorted lexicographically.\n */\nexport const allLocales = [\n `cs`,\n `de`,\n `el`,\n `en`,\n `es`,\n `fr`,\n `it`,\n `ja`,\n `km`,\n `ko`,\n `nl`,\n `no`,\n `pl`,\n `pt`,\n `ru`,\n `sr`,\n `sv`,\n `tr`,\n `uk`,\n `zh`,\n `zh-CN`,\n] as const;\n","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.`,\n's1b9047d53d9f9d22': `2) Нажать \"Поделиться\"`,\n's37a9e8aec5713460': `Подробнее`,\n's5c6aad7a7e4a1437': `3) Нажать \"На экран «Домой»\"`,\n's6196153c4b0c1ea0': `Установить`,\n's922329d6f6213590': `Добавить в Dock`,\n'sa5ef80b4bb9b39f8': `Свернуть`,\n'sa7551383d1897fcc': `2) Нажмите \"Добавить в Dock\"`,\n'sba52286c21552a4e': `Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.`,\n'sc79fd7641eb9a975': `Спрятать Инструкцию`,\n'scdaf4bbff76674c8': `На экран «Домой»`,\n'sdfe23506a3b0cdc8': `1) Открыть в Safari браузере`,\n'se740f75b95a51807': `Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.`,\n'sfea652f6580ff086': `Этот веб-сайт имеет функционал приложения.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.`,\n's1b9047d53d9f9d22': `2) Gezinme çubuğunda Paylaş'a basın`,\n's37a9e8aec5713460': `Daha Fazla`,\n's5c6aad7a7e4a1437': `3) Ana Ekrana Ekle'ye basın`,\n's6196153c4b0c1ea0': `Yükle`,\n's922329d6f6213590': `Dock’a Ekle`,\n'sa5ef80b4bb9b39f8': `Küçült`,\n'sa7551383d1897fcc': `2) Dock’a ekleye basın`,\n'sba52286c21552a4e': `Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.`,\n'sc79fd7641eb9a975': `Talimatları gizle`,\n'scdaf4bbff76674c8': `Ana Ekrana Ekle`,\n'sdfe23506a3b0cdc8': `1) Safari tarayıcısında açın`,\n'se740f75b95a51807': `Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.`,\n'sfea652f6580ff086': `Bu site uygulama işlevselliğine sahiptir.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n's1b9047d53d9f9d22': `2) Drücken Sie auf Teilen in der Navigationsleiste`,\n's37a9e8aec5713460': `Mehr`,\n's5c6aad7a7e4a1437': `3) Drücken Sie Hinzufügen zum Startbildschirm`,\n's6196153c4b0c1ea0': `Installieren`,\n's922329d6f6213590': `Zum Dock hinzufügen`,\n'sa5ef80b4bb9b39f8': `Weniger`,\n'sa7551383d1897fcc': `2) Drücken Sie auf Zum Dock hinzufügen`,\n'sba52286c21552a4e': `Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.`,\n'sc79fd7641eb9a975': `Anleitung ausblenden`,\n'scdaf4bbff76674c8': `Hinzufügen zum Startbildschirm`,\n'sdfe23506a3b0cdc8': `1) In Safari-Browser öffnen`,\n'se740f75b95a51807': `Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.`,\n'sfea652f6580ff086': `Diese Website verfügt über App-Funktionalität.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.`,\n's1b9047d53d9f9d22': `2) Presionar Compartir en la barra de direcciones`,\n's37a9e8aec5713460': `Más`,\n's5c6aad7a7e4a1437': `3) Presionar Añadir a pantalla de inicio`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Añadir al Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Presionar Añadir al Dock`,\n'sba52286c21552a4e': `Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.`,\n'sc79fd7641eb9a975': `Esconder instrucciones`,\n'scdaf4bbff76674c8': `Añadir a pantalla de inicio`,\n'sdfe23506a3b0cdc8': `1) Abrir en el navegador web Safari`,\n'se740f75b95a51807': `Añádelo a tu Dock para una experiencia amplia y acceso fácil.`,\n'sfea652f6580ff086': `Este sitio tiene funcionalidad de aplicación.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.`,\n's1b9047d53d9f9d22': `2) Druk op delen in de navigatiebalk`,\n's37a9e8aec5713460': `Meer`,\n's5c6aad7a7e4a1437': `3) Druk op Toevoegen aan het startscherm`,\n's6196153c4b0c1ea0': `Installeren`,\n's922329d6f6213590': `Toevoegen aan Dock`,\n'sa5ef80b4bb9b39f8': `Minder`,\n'sa7551383d1897fcc': `2) Druk op Toevoegen aan Dock`,\n'sba52286c21552a4e': `Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.`,\n'sc79fd7641eb9a975': `Instructie verbergen`,\n'scdaf4bbff76674c8': `Toevoegen aan het startscherm`,\n'sdfe23506a3b0cdc8': `1) Open in Safari-browser`,\n'se740f75b95a51807': `Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.`,\n'sfea652f6580ff086': `Deze site heeft app-functionaliteit.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n's1b9047d53d9f9d22': `2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης`,\n's37a9e8aec5713460': `Περισσότερα`,\n's5c6aad7a7e4a1437': `3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας`,\n's6196153c4b0c1ea0': `Εγκατάσταση`,\n's922329d6f6213590': `Προσθήκη στην Πρόσβαση`,\n'sa5ef80b4bb9b39f8': `Λιγότερα`,\n'sa7551383d1897fcc': `2) Πατήστε Προσθήκη στην Πρόσβαση`,\n'sba52286c21552a4e': `Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sc79fd7641eb9a975': `Απόκρυψη Οδηγιών`,\n'scdaf4bbff76674c8': `Προσθήκη στην Οθόνη Αφετηρίας`,\n'sdfe23506a3b0cdc8': `1) Ανοίξτε τον περιηγητή Safari`,\n'se740f75b95a51807': `Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.`,\n'sfea652f6580ff086': `Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.`,\n's1b9047d53d9f9d22': `2) Appuyez sur Partager dans la barre de navigation`,\n's37a9e8aec5713460': `Plus`,\n's5c6aad7a7e4a1437': `3) Appuyez sur Ajouter à l'écran d'accueil`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Ajouter au Dock`,\n'sa5ef80b4bb9b39f8': `Moins`,\n'sa7551383d1897fcc': `2) Appuyez sur Ajouter au Dock`,\n'sba52286c21552a4e': `Installez-le sur votre appareil pour une expérience complète et un accès facile.`,\n'sc79fd7641eb9a975': `Masquer les instructions`,\n'scdaf4bbff76674c8': `Ajouter à l'écran d'accueil`,\n'sdfe23506a3b0cdc8': `1) Ouvrir dans le navigateur Safari`,\n'se740f75b95a51807': `Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.`,\n'sfea652f6580ff086': `Ce site possède des fonctionnalités d'application.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додајте га на Home Screen за широке могућности и лак приступ.`,\n's1b9047d53d9f9d22': `2) Притисните Share у навигационој траци`,\n's37a9e8aec5713460': `Више`,\n's5c6aad7a7e4a1437': `3) Притисните Add to Home Screen`,\n's6196153c4b0c1ea0': `Инсталирај`,\n'sa5ef80b4bb9b39f8': `Мање`,\n'sa7551383d1897fcc': `3) Притисните Add to Dock`,\n'sba52286c21552a4e': `Инсталирајте га на вашем уређају за широке могућности и лак приступ.`,\n'sc79fd7641eb9a975': `Сакриј упутство`,\n'sdfe23506a3b0cdc8': `1) Отворите у Safari прегледачу`,\n'se740f75b95a51807': `Додајте га у вашу Dock за широке могућности и лак приступ.`,\n'sfea652f6580ff086': `Овај сајт има функционалност апликације.`,\n's922329d6f6213590': `Add to Dock`,\n'scdaf4bbff76674c8': `Add to Home Screen`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n's1b9047d53d9f9d22': `2) Wybierz \"Udostępnij\"`,\n's37a9e8aec5713460': `Więcej`,\n's5c6aad7a7e4a1437': `3) Wybierz \"Dodaj do Ekranu Głównego\"`,\n's6196153c4b0c1ea0': `Zainstaluj`,\n's922329d6f6213590': `Dodaj do Docka`,\n'sa5ef80b4bb9b39f8': `Mniej`,\n'sa7551383d1897fcc': `2) Wybierz \"Dodaj do Docka\"`,\n'sba52286c21552a4e': `Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sc79fd7641eb9a975': `Ukryj instrukcję`,\n'scdaf4bbff76674c8': `Dodaj do Ekranu Głównego`,\n'sdfe23506a3b0cdc8': `1) Otwórz przeglądarkę Safari`,\n'se740f75b95a51807': `Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.`,\n'sfea652f6580ff086': `Ta strona posiada funkcje aplikacji.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Додайте на Домашній екран для зручного доступу та ширших можливостей.`,\n's1b9047d53d9f9d22': `2) Натиснути «Поділитися»`,\n's37a9e8aec5713460': `Детальніше`,\n's5c6aad7a7e4a1437': `3) Натиснути «На Початковий екран»`,\n's6196153c4b0c1ea0': `Встановити`,\n's922329d6f6213590': `Додати на Dock`,\n'sa5ef80b4bb9b39f8': `Згорнути`,\n'sa7551383d1897fcc': `2) Натиснути «Додати на Dock»`,\n'sba52286c21552a4e': `Встановіть на ваш пристрій для зручного доступу та ширших можливостей.`,\n'sc79fd7641eb9a975': `Сховати Інструкцію`,\n'scdaf4bbff76674c8': `На Початковий экран`,\n'sdfe23506a3b0cdc8': `1) Відкрити в Safari браузері`,\n'se740f75b95a51807': `Додайте на панель Dock для зручного доступу та ширших можливостей.`,\n'sfea652f6580ff086': `Цей сайт має функції додатку.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。`,\n's1b9047d53d9f9d22': `2) 點擊列表上的分享按鈕`,\n's37a9e8aec5713460': `詳細資訊`,\n's5c6aad7a7e4a1437': `3) 點擊加入主畫面`,\n's6196153c4b0c1ea0': `安裝`,\n's922329d6f6213590': `添加到Dock欄`,\n'sa5ef80b4bb9b39f8': `簡短資訊`,\n'sa7551383d1897fcc': `2) 點選添加到Dock欄`,\n'sba52286c21552a4e': `在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。`,\n'sc79fd7641eb9a975': `隱藏安裝流程`,\n'scdaf4bbff76674c8': `將App加入主畫面`,\n'sdfe23506a3b0cdc8': `1) 在Safari上瀏覽此網頁`,\n'se740f75b95a51807': `將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。`,\n'sfea652f6580ff086': `此網站具有應用程式功能。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`,\n's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`,\n's37a9e8aec5713460': `详细资讯`,\n's5c6aad7a7e4a1437': `3) 点击添加到主屏幕`,\n's6196153c4b0c1ea0': `安装`,\n's922329d6f6213590': `添加到Dock`,\n'sa5ef80b4bb9b39f8': `简短资讯`,\n'sa7551383d1897fcc': `2) 按下添加到Dock`,\n'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`,\n'sc79fd7641eb9a975': `隐藏安装流程`,\n'scdaf4bbff76674c8': `将App添加到主屏幕`,\n'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`,\n'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`,\n'sfea652f6580ff086': `此网站具备app的功能性。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.`,\n's1b9047d53d9f9d22': `2) Premi Condividi nella barra di navigazione`,\n's37a9e8aec5713460': `Più`,\n's5c6aad7a7e4a1437': `3) Premi Aggiungi alla schermata principale`,\n's6196153c4b0c1ea0': `Installa`,\n's922329d6f6213590': `Aggiungi al Dock`,\n'sa5ef80b4bb9b39f8': `Meno`,\n'sa7551383d1897fcc': `2) Premi Aggiungi al Dock`,\n'sba52286c21552a4e': `Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.`,\n'sc79fd7641eb9a975': `Nascondi istruzioni`,\n'scdaf4bbff76674c8': `Aggiungi alla schermata principale`,\n'sdfe23506a3b0cdc8': `1) Apri nel browser Safari`,\n'se740f75b95a51807': `Aggiungilo al Dock per un'esperienza più completa e un accesso facile.`,\n'sfea652f6580ff086': `Questo sito ha funzionalità di app.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Přidejte jej na plochu pro rozšířené využití a snadný přístup.`,\n's1b9047d53d9f9d22': `2) Stiskněte tlačítko Sdílet na navigačním panelu`,\n's37a9e8aec5713460': `Vice`,\n's5c6aad7a7e4a1437': `3) Stiskněte tlačítko Přidat na plochu`,\n's6196153c4b0c1ea0': `Nainstalovat`,\n's922329d6f6213590': `Přidat do Docku`,\n'sa5ef80b4bb9b39f8': `Méně`,\n'sa7551383d1897fcc': `2) Stiskněte Přidat do Docku`,\n'sba52286c21552a4e': `Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.`,\n'sc79fd7641eb9a975': `Skrýt instrukce`,\n'scdaf4bbff76674c8': `Přidat na plochu`,\n'sdfe23506a3b0cdc8': `1) Otevřete v prohlížeči Safari`,\n'se740f75b95a51807': `Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.`,\n'sfea652f6580ff086': `Tento web má funkce aplikace.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.`,\n's1b9047d53d9f9d22': `2) Trykk på Del-knappen i navigasjonslinjen`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Velg Legg til på Hjem-skjerm`,\n's6196153c4b0c1ea0': `Installer`,\n's922329d6f6213590': `Legg til i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Velg Legg til i Dock`,\n'sba52286c21552a4e': `Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sc79fd7641eb9a975': `Skjul instruksjoner`,\n'scdaf4bbff76674c8': `Legg til på Hjem-skjerm`,\n'sdfe23506a3b0cdc8': `1) Åpne i Safari`,\n'se740f75b95a51807': `Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.`,\n'sfea652f6580ff086': `Denne siden har app-funksjonalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.`,\n's1b9047d53d9f9d22': `2) Pressione Compartilhar na barra de endereço`,\n's37a9e8aec5713460': `Mais`,\n's5c6aad7a7e4a1437': `3) Pressione Adicionar à Tela de Início`,\n's6196153c4b0c1ea0': `Instalar`,\n's922329d6f6213590': `Adicionar ao Dock`,\n'sa5ef80b4bb9b39f8': `Menos`,\n'sa7551383d1897fcc': `2) Pressione Adicionar ao Dock`,\n'sba52286c21552a4e': `Instale no dispositivo para uma melhor experiência e mais fácil acesso.`,\n'sc79fd7641eb9a975': `Ocultar Instruções`,\n'scdaf4bbff76674c8': `Adicionar à Tela de Início`,\n'sdfe23506a3b0cdc8': `1) Abra no navegador Safari`,\n'se740f75b95a51807': `Adicione ao Dock para uma melhor experiência e mais fácil acesso.`,\n'sfea652f6580ff086': `Este site possui funcionalidade de aplicativo.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。`,\n's1b9047d53d9f9d22': `2) ナビゲーションバーで共有を押す`,\n's37a9e8aec5713460': `展開`,\n's5c6aad7a7e4a1437': `3) 「ホーム画面に追加」を押す`,\n's6196153c4b0c1ea0': `インストール`,\n's922329d6f6213590': `Dockに追加`,\n'sa5ef80b4bb9b39f8': `折りたたむ`,\n'sa7551383d1897fcc': `2) 「Dockに追加」を押す`,\n'sba52286c21552a4e': `デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。`,\n'sc79fd7641eb9a975': `説明を非表示`,\n'scdaf4bbff76674c8': `ホーム画面に追加`,\n'sdfe23506a3b0cdc8': `1) Safariで開く`,\n'se740f75b95a51807': `ドックに追加して、幅広い体験と簡単なアクセスを実現してください。`,\n'sfea652f6580ff086': `このサイトはアプリ機能があります。`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.`,\n's1b9047d53d9f9d22': `2) Tryck på Dela-knappen i verktygsfältet`,\n's37a9e8aec5713460': `Mer`,\n's5c6aad7a7e4a1437': `3) Välj Lägg till på hemskärmen`,\n's6196153c4b0c1ea0': `Installera`,\n's922329d6f6213590': `Lägg till i Dock`,\n'sa5ef80b4bb9b39f8': `Mindre`,\n'sa7551383d1897fcc': `2) Välj Lägg till i Dock`,\n'sba52286c21552a4e': `Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sc79fd7641eb9a975': `Göm instruktioner`,\n'scdaf4bbff76674c8': `Lägg till på hemskärmen`,\n'sdfe23506a3b0cdc8': `1) Öppna i Safari`,\n'se740f75b95a51807': `Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.`,\n'sfea652f6580ff086': `Denna webbsajt har app-funktionalitet.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.`,\n's1b9047d53d9f9d22': `2) 내비게이션 바에서 공유 버튼 누르기`,\n's37a9e8aec5713460': `더보기`,\n's5c6aad7a7e4a1437': `3) 홈 화면에 추가 버튼 누르기`,\n's6196153c4b0c1ea0': `설치`,\n's922329d6f6213590': `Dock에 추가`,\n'sa5ef80b4bb9b39f8': `닫기`,\n'sa7551383d1897fcc': `2) Dock에 추가 버튼 누르기`,\n'sba52286c21552a4e': `더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.`,\n'sc79fd7641eb9a975': `안내 숨기기`,\n'scdaf4bbff76674c8': `홈 화면에 추가`,\n'sdfe23506a3b0cdc8': `1) Safari 브라우저에서 열기`,\n'se740f75b95a51807': `더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.`,\n'sfea652f6580ff086': `이 사이트는 앱 기능을 가지고 있습니다.`,\n };\n ","\n // Do not modify this file by hand!\n // Re-generate this file by running lit-localize\n\n \n \n\n /* eslint-disable no-irregular-whitespace */\n /* eslint-disable @typescript-eslint/no-explicit-any */\n\n export const templates = {\n 's182ab2d6c997515f': `បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n's1b9047d53d9f9d22': `2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ`,\n's37a9e8aec5713460': `បង្ហាញបន្ថែម`,\n's5c6aad7a7e4a1437': `3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n's6196153c4b0c1ea0': `តំឡើង`,\n's922329d6f6213590': `បន្ថែមទៅកាន់ Dock`,\n'sa5ef80b4bb9b39f8': `បង្ហាញតិច`,\n'sa7551383d1897fcc': `2) ចុចលើ បន្ថែមទៅកាន់ Dock`,\n'sba52286c21552a4e': `តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sc79fd7641eb9a975': `បិទការណែនាំ`,\n'scdaf4bbff76674c8': `បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម`,\n'sdfe23506a3b0cdc8': `1) បើកនៅក្នុងកម្មវិធី Safari`,\n'se740f75b95a51807': `បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។`,\n'sfea652f6580ff086': `គេហទំព័រនេះមានមុខងារជាកម្មវិធី។`,\n };\n ","import { configureLocalization } from '@lit/localize';\r\nimport {\r\n sourceLocale,\r\n targetLocales,\r\n} from './locale-codes';\r\n\r\nimport * as ru from './locales/ru';\r\nimport * as tr from './locales/tr';\r\nimport * as de from \"./locales/de\";\r\nimport * as es from \"./locales/es\";\r\nimport * as nl from \"./locales/nl\";\r\nimport * as el from \"./locales/el\";\r\nimport * as fr from \"./locales/fr\";\r\nimport * as sr from \"./locales/sr\";\r\nimport * as pl from \"./locales/pl\";\r\nimport * as uk from \"./locales/uk\";\r\nimport * as zh from \"./locales/zh\";\r\nimport * as zhCN from \"./locales/zh-CN\";\r\nimport * as it from \"./locales/it\";\r\nimport * as cs from \"./locales/cs\";\r\nimport * as no from \"./locales/no\";\r\nimport * as pt from \"./locales/pt\";\r\nimport * as ja from \"./locales/ja\";\r\nimport * as sv from \"./locales/sv\";\r\nimport * as ko from \"./locales/ko\";\r\nimport * as km from \"./locales/km\";\r\n\r\nconst localizedTemplates = new Map([\r\n ['ru', ru],\r\n ['tr', tr],\r\n ['de', de],\r\n ['es', es],\r\n ['nl', nl],\r\n ['el', el],\r\n ['fr', fr],\r\n ['sr', sr],\r\n ['pl', pl],\r\n ['uk', uk],\r\n ['zh', zh],\r\n ['zh-CN', zhCN],\r\n ['it', it],\r\n ['cs', cs],\r\n ['no', no], // + nb\r\n ['pt', pt],\r\n ['ja', ja],\r\n ['sv', sv],\r\n ['ko', ko],\r\n ['km', km]\r\n])\r\n\r\nexport const { getLocale, setLocale } = configureLocalization({\r\n sourceLocale,\r\n targetLocales,\r\n // @ts-ignore\r\n loadLocale: async (lang: string) => localizedTemplates.get(lang)\r\n});\r\n\r\nexport const changeLocale = (lang: string) => {\r\n // Norwegian Bokmål is same as Norwegian\r\n switch (lang.slice(0, 2)) {\r\n case 'nb':\r\n lang = 'no';\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n try {\r\n if (localizedTemplates.get(lang))\r\n setLocale(lang);\r\n else\r\n setLocale(lang.slice(0, 2));\r\n }\r\n catch {\r\n console.warn(`pwa-install: translation error - unsupported locale: ${lang}`);\r\n }\r\n};\r\n","import { ImageResource } from 'web-app-manifest';\r\n\r\nexport interface IRelatedApp {\r\n id: string,\r\n platform: string,\r\n url: string\r\n}\r\n\r\nexport interface IWindow extends Window {\r\n defferedPromptEvent: BeforeInstallPromptEvent | null;\r\n}\r\n\r\ntype Booleanish = 'true' | 'false';\r\n\r\nexport interface PWAInstallAttributes {\r\n ['manual-apple']?: Booleanish;\r\n ['manual-chrome']?: Booleanish;\r\n ['disable-chrome']?: Booleanish;\r\n ['install-description']?: string;\r\n ['disable-install-description']?: Booleanish;\r\n ['manifest-url']?: string;\r\n name?: string;\r\n description?: string;\r\n icon?: string;\r\n}\r\n\r\nexport class Manifest {\r\n constructor() {\r\n this.icons = [{ src: '' }];\r\n this.screenshots = undefined;\r\n this.short_name = 'PWA';\r\n this.name = 'Progressive web application';\r\n this.description = 'Progressive web application';\r\n }\r\n short_name: string;\r\n icons: ImageResource[];\r\n screenshots?: ImageResource[];\r\n name: string;\r\n description: string;\r\n}\r\n","import {css} from 'lit'; export default css`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`;\n ","import { html } from 'lit';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nconst template = (screenshots: WebAppManifest['screenshots'], theme: string, scrollToNextPage: any, scrollToPrevPage: any) => {\r\n return html`\r\n ${screenshots? html`\r\n
\r\n
\r\n
\r\n ${screenshots.map(screenshot => html``)}\r\n
\r\n
\r\n \r\n ${theme != 'default'?\r\n html``\r\n :\r\n html``\r\n }\r\n \r\n \r\n ${theme != 'default'?\r\n html`\r\n \r\n `\r\n :\r\n html`\r\n \r\n \r\n \r\n `\r\n }\r\n \r\n
`\r\n : ''}`;\r\n};\r\nexport default template;\r\n","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\n\r\nimport styles from './styles-gallery.scss';\r\nimport template from './template-gallery';\r\n\r\n@customElement('pwa-gallery')\r\nexport default class PWAGalleryElement extends LitElement {\r\n\t@property() screenshots: WebAppManifest['screenshots'] = [];\r\n\t@property() theme: 'default' | 'apple_desktop' | 'apple_mobile' = 'default';\r\n\r\n\tstatic get styles() {\r\n\t\treturn styles;\r\n\t}\r\n\r\n\tpublic calcScrollSize = () => {\r\n\t\t//@ts-ignore\r\n\t\tconst gallery = this.shadowRoot.querySelector('#paginated_gallery');\r\n\t\tif (!gallery)\r\n\t\t\treturn;\r\n\t\tconst gallery_scroller = gallery.querySelector('.gallery_scroller');\r\n\t\tif (!gallery_scroller)\r\n\t\t\treturn;\r\n\t\tconst gallery_items = Array.from(gallery_scroller.querySelectorAll('img'));\r\n\t\tif (!gallery_items)\r\n\t\t\treturn;\r\n\t\tconst gallery_item = gallery_items.find((item) => { return (item.offsetWidth + item.offsetLeft) >= gallery_scroller.scrollLeft})\r\n\t\tif (!gallery_item)\r\n\t\t\treturn;\r\n\r\n\t\treturn {\r\n\t\t\tscroller: gallery_scroller,\r\n\t\t\titem: gallery_item\r\n\t\t}\r\n\t}\r\n\tpublic scrollToNextPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.nextElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft + _tools.scroller.clientWidth + _tools.item.nextElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\tpublic scrollToPrevPage = () => {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools && _tools.item.previousElementSibling)\r\n\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tleft: _tools.scroller.scrollLeft - _tools.scroller.clientWidth - _tools.item.previousElementSibling.clientWidth / 2,\r\n\t\t\t\tbehavior: 'smooth'\r\n\t\t\t});\r\n\t}\r\n\r\n\r\n\tprivate _init = () => {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tconst _tools = this.calcScrollSize();\r\n\t\tif (_tools)\r\n\t\t\tsetTimeout(\r\n\t\t\t\t() => {\r\n\t\t\t\t\t_tools.scroller.scrollTo({\r\n\t\t\t\t\t\ttop: 0,\r\n\t\t\t\t\t\tleft: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\t300\r\n\t\t\t)\r\n\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\t\tthis._init();\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(\r\n this.screenshots,\r\n\t\t\tthis.theme,\r\n\t\t\tthis.scrollToNextPage,\r\n\t\t\tthis.scrollToPrevPage\r\n )}`;\r\n\t}\r\n}\r\n","import { html } from 'lit';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, icon: string, install: any) => {\r\n return html`\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n
\r\n
${location.hostname}
\r\n
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n `;\r\n};\r\nexport default template;\r\n","import { WebAppManifest } from 'web-app-manifest';\r\nimport { IRelatedApp } from './types/types';\r\n\r\nconst _eventDispatcher = (_element: Element, name: string, message: string) => {\r\n const event = new CustomEvent(name, {\r\n detail: {\r\n message\r\n }\r\n });\r\n _element.dispatchEvent(event);\r\n}\r\nexport default class Utils {\r\n static isAppleMobile(): boolean {\r\n\t\tif (\r\n (\r\n ['iPhone', 'iPad', 'iPod'].includes(navigator.platform) ||\r\n (navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n )\r\n && ('serviceWorker' in navigator)\r\n )\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static isAppleDesktop(): boolean {\r\n // check if it's a mac\r\n const userAgent = navigator.userAgent.toLowerCase();\r\n if (navigator.maxTouchPoints || !userAgent.match(/macintosh/))\r\n return false;\r\n // check safari version >= 17\r\n const version = /version\\/(\\d{2})\\./.exec(userAgent)\r\n if (!version || !version[1] || !(parseInt(version[1]) >= 17))\r\n return false;\r\n // hacky way to detect Sonoma\r\n const audioCheck = document.createElement('audio').canPlayType('audio/wav; codecs=\"1\"') ? true : false;\r\n const webGLCheck = new OffscreenCanvas(1, 1).getContext('webgl') ? true : false;\r\n\r\n return audioCheck && webGLCheck;\r\n }\r\n \r\n static isStandalone() {\r\n\t\tif (window.matchMedia('(display-mode: standalone)').matches || ('standalone' in navigator && (navigator as any).standalone === true))\r\n\t\t\treturn true;\r\n\t\treturn false;\r\n }\r\n\r\n static async getInstalledRelatedApps(): Promise {\r\n if ('getInstalledRelatedApps' in navigator)\r\n try{\r\n await (navigator as any).getInstalledRelatedApps().then((relatedApps: IRelatedApp[]) => {\r\n return relatedApps;\r\n });\r\n } catch (e) {}\r\n \r\n return [];\r\n }\r\n \r\n static async isRelatedAppsInstalled(): Promise {\r\n const _relatedApps = await this.getInstalledRelatedApps();\r\n return _relatedApps.length? true : false;\r\n }\r\n\r\n static eventInstalledSuccess(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-success-event', 'App install success (Chromium/Android only)');\r\n }\r\n static eventInstalledFail(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-fail-event', 'App install failed (Chromium/Android only)');\r\n }\r\n static eventUserChoiceResult(_element: Element, message: string) {\r\n _eventDispatcher(_element, 'pwa-user-choice-result-event', message);\r\n }\r\n static eventInstallAvailable(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-available-event', 'App install available');\r\n }\r\n static eventInstallHowTo(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-how-to-event', 'App install instruction showed');\r\n }\r\n static eventGallery(_element: Element) {\r\n _eventDispatcher(_element, 'pwa-install-gallery-event', 'App install gallery showed');\r\n }\r\n\r\n static normalizeManifestAssetUrls(manifest: WebAppManifest, manifestUrl: string) {\r\n const normalizedManifestUrl = new URL(manifestUrl, document.location.href);\r\n [...manifest.icons || [], ...manifest.screenshots || []].forEach(asset => {\r\n asset.src = new URL(asset.src, normalizedManifestUrl).href;\r\n })\r\n }\r\n}","import { LitElement, html } from 'lit';\r\nimport { property, customElement } from 'lit/decorators.js';\r\n\r\n// import TouchDragListener from \"./touch-listener\";\r\n\r\ntype IProps = {\r\n name: string,\r\n description: string,\r\n icon: string\r\n}\r\n\r\nimport template from './template-bottom-sheet';\r\nimport Utils from '../../../utils';\r\n\r\n@customElement('pwa-bottom-sheet')\r\nexport default class PWABottomSheetElement extends LitElement {\r\n\t@property({type: Object}) props: IProps = {\r\n name: '',\r\n description: '',\r\n icon: ''\r\n };\r\n @property({type: Object}) install = {handleEvent: () => {}};\r\n\t@property() hideDialog = () => {};\r\n\t@property() disableClose = false;\r\n\r\n\tprivate _callInstall = () => {\r\n\t\tthis.install.handleEvent();\r\n\t}\r\n\r\n\tprivate _callHide = () => {\r\n\t\tthis.hideDialog();\r\n\t\tthis.setupAppearence();\r\n\t}\r\n\r\n\tprivate bindedElement: {\r\n\t\ttouchElement: HTMLElement,\r\n\t\tlistener: any }| null = null;\r\n\tprivate readonly _saveBodyStyle = document.body.style.overscrollBehaviorY;\r\n\tprivate dragMobileSheet = (element: HTMLElement | null | undefined, touchTargetElement: HTMLElement | undefined, infoElement: HTMLElement | undefined) => {\r\n\t\tif (!element || !touchTargetElement || !infoElement)\r\n\t\t\treturn null;\r\n\r\n\t\tlet dragOffset = 0;\r\n\t\tconst bounceOffset = 35;\r\n\t\tconst bottomSize = touchTargetElement.clientHeight + infoElement.clientHeight;\r\n\r\n\t\tconst getYCoord = (e: MouseEvent | TouchEvent): number => {\r\n\t\t\treturn (e as MouseEvent).clientY || ((e as TouchEvent).changedTouches && (e as TouchEvent).changedTouches.length? (e as TouchEvent).changedTouches[0].clientY : 0);\r\n\t\t}\r\n\r\n\t\tconst dragMouseDown = (e: MouseEvent | TouchEvent) => {\r\n\t\t\twindow.addEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.addEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.addEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.addEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tdragOffset = getYCoord(e) - touchTargetElement.getBoundingClientRect().top;\r\n\r\n\t\t\tdocument.body.style.overscrollBehaviorY = 'none';\r\n\t\t}\r\n\t\tconst dragMouseUp = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tdocument.body.style.overscrollBehaviorY = this._saveBodyStyle;\r\n\r\n\t\t\tif (!this.disableClose && getYCoord(e) >= window.innerHeight - 25) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight + 50, true);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (window.innerHeight - getYCoord(e) > element.clientHeight / 2.5) {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - element.clientHeight);\r\n\t\t\t\t\r\n\t\t\t\ttry {\r\n\t\t\t\t\tUtils.eventGallery((this.getRootNode() as ShadowRoot).host);\r\n\t\t\t\t} catch (e) {}\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tcloseDragElement(e, window.innerHeight - bottomSize - bounceOffset);\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tconst dragMouseMove = (e: MouseEvent | TouchEvent) => {\r\n\t\t\tconst currentY = getYCoord(e);\r\n\r\n\t\t\tif (this.disableClose && window.innerHeight - currentY < 70) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif (currentY <= (window.innerHeight - element.clientHeight + dragOffset)) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`none`\r\n\t\t\t)\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"--translateY\",\r\n\t\t\t\t`translateY(${currentY - dragOffset}px)`\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tconst closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => {\r\n\t\t\twindow.removeEventListener('mouseup', dragMouseUp);\r\n\t\t\twindow.removeEventListener('mousemove', dragMouseMove);\r\n\t\t\twindow.removeEventListener('touchend', dragMouseUp);\r\n\t\t\twindow.removeEventListener('touchmove', dragMouseMove);\r\n\r\n\t\t\tif (window.innerWidth >= 768)\r\n\t\t\t\treturn\r\n\r\n\t\t\tif (!toPoint && getYCoord(e) >= window.innerHeight - bottomSize)\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(calc(100vh - ${bottomSize}px))`\r\n\t\t\t\t);\r\n\t\t\telse\r\n\t\t\t\telement.style.setProperty(\r\n\t\t\t\t\t\"--translateY\",\r\n\t\t\t\t\t`translateY(${(toPoint || getYCoord(e)) + bounceOffset}px)`\r\n\t\t\t\t);\r\n\r\n\t\t\telement.style.setProperty(\r\n\t\t\t\t\"transition\",\r\n\t\t\t\t`transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s`\r\n\t\t\t);\r\n\r\n\t\t\tif (hideDialog){\r\n\t\t\t\ttouchTargetElement.removeEventListener('mousedown', dragMouseDown);\r\n\t\t\t\ttouchTargetElement.removeEventListener('touchstart', dragMouseDown);\r\n\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\tthis._callHide,\r\n\t\t\t\t\t250\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\ttouchTargetElement.addEventListener('mousedown', dragMouseDown);\r\n\t\ttouchTargetElement.addEventListener('touchstart', dragMouseDown, {passive: true});\r\n\r\n\t\tcloseDragElement(new MouseEvent('mouseup'), window.innerHeight - bottomSize - bounceOffset);\r\n\r\n\t\treturn {\r\n\t\t\ttouchElement: touchTargetElement,\r\n\t\t\tlistener: dragMouseDown\r\n\t\t}\r\n\t}\r\n\r\n\tprivate setupAppearence = () => {\r\n\t\tif (this.bindedElement) {\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('mousedown', this.bindedElement.listener);\r\n\t\t\tthis.bindedElement.touchElement.removeEventListener('touchstart', this.bindedElement.listener);\r\n\t\t}\r\n\r\n\t\tthis.bindedElement = this.dragMobileSheet(\r\n\t\t\tthis.parentElement?.parentElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement,\r\n\t\t\tthis.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement);\r\n\t}\r\n\tprivate _init = () => {\r\n\t\tthis.setupAppearence();\r\n\r\n\t\twindow.addEventListener('resize', this.setupAppearence);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tfirstUpdated () {\r\n\t\tthis._init();\r\n return;\r\n\t}\r\n\r\n createRenderRoot() {\r\n return this;\r\n }\r\n\r\n\tconnectedCallback() {\r\n\t\tsuper.connectedCallback()\r\n\r\n\t}\r\n\r\n\trender() {\r\n return html`${template(this.props.name, this.props.description, this.props.icon, this._callInstall)}`;\r\n\t}\r\n}\r\n","import {css} from 'lit'; export default css`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,\"Segoe UI\",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:\"\";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,\"Segoe UI\",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:\"\";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`;\n ","import {css} from 'lit'; export default css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,\"Segoe UI\";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon description\" \"welcome welcome\" \"how-to how-to\" \"gallery gallery\" \"button button\";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:\"icon\" \"description\" \"welcome\" \"how-to\" \"gallery\" \"button\";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`;\n ","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n
\r\n
\r\n
\r\n
\r\n \"icon\"\r\n
\r\n
\r\n
\r\n \r\n ${!disableClose? html`` : ''}\r\n
\r\n
${location.hostname}
\r\n \r\n
\r\n ${description ? html `
${description}
`: ''}\r\n ${!disableDescription? \r\n html`
${installDescription? installDescription: `${msg('This site has app functionality.')} ${msg('Install it on your device for extensive experience and easy access.')}`}
` \r\n : ''}\r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n ${screenshotsAvailable? html``:''}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n ${screenshotsAvailable? html``: ''}\r\n
\r\n
\r\n
`;\r\n};\r\nexport default template;\r\n","import { html } from 'lit';\r\nimport { classMap } from 'lit/directives/class-map.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { msg } from '@lit/localize';\r\n\r\nconst template = (name: string, description: string, installDescription: string, disableDescription: boolean, disableScreenshots: boolean, disableClose: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, isDesktop: boolean, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => {\r\n const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested, desktop: isDesktop}};\r\n const screenshotsAvailable = !disableScreenshots && manifest.screenshots && manifest.screenshots.length;\r\n\r\n return html`\r\n `;\r\n};\r\nexport default template;\r\n","import { LitElement, PropertyValues, html } from 'lit';\r\nimport { localized } from '@lit/localize';\r\nimport { property, state, customElement } from 'lit/decorators.js';\r\nimport { WebAppManifest } from 'web-app-manifest';\r\nimport { changeLocale } from './localization';\r\n\r\nimport { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types';\r\n\r\nimport PWAGalleryElement from './gallery';\r\nimport PWABottomSheetElement from './templates/chrome/bottom-sheet';\r\n\r\nimport Utils from './utils';\r\n\r\ndeclare const window: IWindow;\r\n\r\nimport styles from './templates/chrome/styles.scss';\r\nimport stylesApple from './templates/apple/styles-apple.scss';\r\n\r\nimport template from './templates/chrome/template';\r\nimport templateApple from './templates/apple/template-apple';\r\n\r\n/**\r\n * @event {CustomEvent} pwa-install-success-event - App install success (Chromium/Android only)\r\n * @event {CustomEvent} pwa-install-fail-event - App install failed (Chromium/Android only)\r\n * @event {CustomEvent} pwa-user-choice-result-event - dismissed, accepted\r\n * @event {CustomEvent} pwa-install-available-event - App install available\r\n * @event {CustomEvent} pwa-install-how-to-event - App install instruction showed\r\n * @event {CustomEvent} pwa-install-gallery-event - App install gallery showed\r\n */\r\n@localized()\r\n@customElement('pwa-install')\r\nexport class PWAInstallElement extends LitElement {\r\n\t@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json';\r\n\t@property() icon = '';\r\n\t@property() name = '';\r\n\t@property() description = '';\r\n\t@property({attribute: 'install-description'}) installDescription = '';\r\n\t@property({attribute: 'disable-install-description', type: Boolean}) disableDescription = false;\r\n\t@property({attribute: 'disable-screenshots', type: Boolean}) disableScreenshots = false;\r\n\t@property({attribute: 'disable-screenshots-apple', type: Boolean}) disableScreenshotsApple = false;\r\n\t@property({attribute: 'disable-screenshots-chrome', type: Boolean}) disableScreenshotsChrome = false;\r\n\t@property({attribute: 'manual-apple', type: Boolean}) manualApple = false;\r\n\t@property({attribute: 'manual-chrome', type: Boolean}) manualChrome = false;\r\n\t@property({attribute: 'disable-chrome', type: Boolean}) disableChrome = false;\r\n\t@property({attribute: 'disable-close', type: Boolean}) disableClose = false;\r\n\r\n\tstatic get styles() {\r\n\t\treturn [ styles, stylesApple ];\r\n\t}\r\n\r\n\t@state() externalPromptEvent: BeforeInstallPromptEvent | null = null;\r\n\r\n\tpublic platforms: BeforeInstallPromptEvent['platforms'] = [];\r\n\tpublic userChoiceResult = '';\r\n\r\n\tpublic isDialogHidden: boolean = JSON.parse(window.sessionStorage.getItem('pwa-hide-install') || 'false');\r\n\tpublic isInstallAvailable = false;\r\n\tpublic isAppleMobilePlatform = false;\r\n\tpublic isAppleDesktopPlatform = false;\r\n\tpublic isUnderStandaloneMode = false;\r\n\tpublic isRelatedAppsInstalled = false;\r\n\r\n\t/** @internal */\r\n\tprivate _manifest: WebAppManifest = new Manifest();\r\n\t/** @internal */\r\n\tprivate _howToRequested = false;\r\n\t/** @internal */\r\n\tprivate _galleryRequested = false;\r\n\t/** @internal */\r\n\tprivate _install = {\r\n\t\thandleEvent: () => {\r\n\t\t\tif (window.defferedPromptEvent) {\r\n\t\t\t\tthis.hideDialog();\r\n\t\t\t\twindow.defferedPromptEvent.prompt();\r\n\t\t\t\twindow.defferedPromptEvent.userChoice\r\n\t\t\t\t\t.then((choiceResult: PromptResponseObject) => {\r\n\t\t\t\t\t\tthis.userChoiceResult = choiceResult.outcome;\r\n\t\t\t\t\t\tUtils.eventUserChoiceResult(this, this.userChoiceResult);\r\n\t\t\t\t\t})\r\n\t\t\t\t\t.catch((error) => {\r\n\t\t\t\t\t\tUtils.eventInstalledFail(this);\r\n\t\t\t\t\t});\r\n\t\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\t}\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\tpublic install = () => {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tthis._howToRequested = true;\r\n\t\t\tthis.requestUpdate();\r\n\t\t}\r\n\t\telse\r\n\t\t\tthis._install.handleEvent();\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialog = {\r\n\t\thandleEvent: () => {\r\n\t\t\tthis.isDialogHidden = true;\r\n\t\t\twindow.sessionStorage.setItem('pwa-hide-install', 'true');\r\n\t\t\tthis.requestUpdate();\r\n\t\t},\r\n\t\tpassive: true\r\n\t}\r\n\t/** @internal */\r\n\tprivate _hideDialogUser = () => {\r\n\t\tUtils.eventUserChoiceResult(this, 'dismissed');\r\n\t\tthis.userChoiceResult = 'dismissed';\r\n\t\tthis.hideDialog();\r\n\t}\r\n\tpublic hideDialog = () => {\r\n\t\tthis._hideDialog.handleEvent();\r\n\t}\r\n\tpublic showDialog = (forced = false) => {\r\n\t\tthis.isDialogHidden = false;\r\n\t\tif (forced)\r\n\t\t\tthis.isInstallAvailable = true;\r\n\t\twindow.sessionStorage.setItem('pwa-hide-install', 'false');\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tpublic getInstalledRelatedApps = async (): Promise => {\r\n\t\treturn await Utils.getInstalledRelatedApps();\r\n\t}\r\n\r\n\t/** @internal */\r\n\tprivate _howToForApple = {\r\n handleEvent: () => {\r\n\t\t\tthis._howToRequested = !this._howToRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._galleryRequested = false;\r\n\t\t\tthis.requestUpdate();\r\n\r\n\t\t\tif (this._howToRequested) {\r\n\t\t\t\tUtils.eventInstallHowTo(this);\r\n\t\t\t\t\r\n\t\t\t\t// Looks like it's not needed anymore\r\n\t\t\t\t// if (this._manifest.start_url){\r\n\t\t\t\t// \ttry {\r\n\t\t\t\t// \t\thistory.replaceState({}, '', this._manifest.start_url);\r\n\t\t\t\t// \t} catch (e) {}\r\n\t\t\t\t// }\r\n\t\t\t}\t\t\t\t\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate _toggleGallery = {\r\n handleEvent: () => {\r\n\t\t\tthis._galleryRequested = !this._galleryRequested;\r\n\t\t\tif (this._howToRequested && this._galleryRequested)\r\n\t\t\t\tthis._howToRequested = false;\r\n\r\n\t\t\tthis._galleryRequested && Utils.eventGallery(this);\r\n\r\n\t\t\tthis.requestUpdate();\r\n },\r\n passive: true\r\n }\r\n\t/** @internal */\r\n\tprivate async _checkInstalled() {\r\n\t\tthis.isUnderStandaloneMode = Utils.isStandalone();\r\n\t\tthis.isRelatedAppsInstalled = await Utils.isRelatedAppsInstalled();\r\n\t\tthis.isAppleMobilePlatform = Utils.isAppleMobile();\r\n\t\tthis.isAppleDesktopPlatform = Utils.isAppleDesktop();\r\n\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform) {\r\n\t\t\tif (!this.isUnderStandaloneMode) {\r\n\t\t\t\tthis.manualApple && this.hideDialog();\r\n\t\t\t\tsetTimeout(\r\n\t\t\t\t\t() => {\r\n\t\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\t\tthis.requestUpdate()\r\n\t\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t1000\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.manualChrome && this.hideDialog();\r\n\t\t}\r\n\t}\r\n\t/** @internal */\r\n\tprivate _init = async () => {\r\n\t\twindow.defferedPromptEvent = null;\r\n\r\n\t\tthis._checkInstalled();\r\n\r\n\t\tif (!this.disableChrome) {\r\n\t\t\tconst _promptHandler = (e: BeforeInstallPromptEvent) => {\r\n\t\t\t\twindow.defferedPromptEvent = e;\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tthis.platforms = e.platforms;\r\n\r\n\t\t\t\tif (this.isRelatedAppsInstalled || this.isUnderStandaloneMode) {\r\n\t\t\t\t\tthis.isInstallAvailable = false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.isInstallAvailable = true;\r\n\t\t\t\t\tUtils.eventInstallAvailable(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (this.userChoiceResult === 'accepted'){\r\n\t\t\t\t\tthis.isDialogHidden = true;\r\n\t\t\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.requestUpdate();\r\n\t\t\t}\r\n\t\t\tif (this.externalPromptEvent != null)\r\n\t\t\t\tsetTimeout(() => _promptHandler(this.externalPromptEvent!), 300);\r\n\t\t\telse\r\n\t\t\t\twindow.addEventListener('beforeinstallprompt', _promptHandler);\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('appinstalled', (e) => {\r\n\t\t\twindow.defferedPromptEvent = null;\r\n\t\t\tthis.isInstallAvailable = false;\r\n\r\n\t\t\tthis.requestUpdate();\r\n\t\t\tUtils.eventInstalledSuccess(this);\r\n\t\t});\r\n\r\n\r\n\t\ttry{\r\n\t\t\tconst _response = await fetch(this.manifestUrl);\r\n\t\t\tconst _json = await _response.json() as WebAppManifest;\r\n\t\t\tif (!_response.ok || !_json || !Object.keys(_json))\r\n\t\t\t\tthrow new Error('Manifest not found');\r\n\t\t\tUtils.normalizeManifestAssetUrls(_json, this.manifestUrl);\r\n\t\t\t\r\n\t\t\tthis.icon = this.icon || _json.icons?.length ? _json.icons![0].src : '';\r\n\t\t\tthis.name = this.name || _json['short_name'] || _json.name || '';\r\n\t\t\tthis.description = this.description || _json.description || '';\r\n\t\t\tthis._manifest = _json;\r\n\t\t}\r\n\t\tcatch(e) {\r\n\t\t\tthis.icon = this.icon || this._manifest.icons?.[0].src || '';\r\n\t\t\tthis.name = this.name || this._manifest['short_name'] || '';\r\n\t\t\tthis.description = this.description || this._manifest.description || '';\r\n\t\t}\r\n\t};\r\n\t/** @internal */\r\n\tprivate _requestUpdate = () => {\r\n\t\tthis.requestUpdate();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tchangeLocale(navigator.language);\r\n\t\tthis._init();\r\n\t\tPWAGalleryElement.finalized;\r\n\t\tPWABottomSheetElement.finalized;\r\n\t\tsuper.connectedCallback();\r\n\t}\r\n\twillUpdate(changedProperties: PropertyValues) {\r\n\t\tif (this.externalPromptEvent && changedProperties.has('externalPromptEvent') && typeof this.externalPromptEvent == 'object') {\r\n\t\t this._init();\r\n\t\t}\r\n\t}\r\n\r\n\t// firstUpdated() {\r\n\t// \treturn;\r\n\t// }\r\n\r\n\trender() {\r\n\t\tif (this.isAppleMobilePlatform || this.isAppleDesktopPlatform)\r\n\t\t\treturn html`${templateApple(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsApple,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._howToForApple,\r\n\t\t\t\tthis.isAppleDesktopPlatform,\r\n\t\t\t\tthis._howToRequested,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t\telse\r\n\t\t\treturn html`${template(\r\n\t\t\t\tthis.name, \r\n\t\t\t\tthis.description, \r\n\t\t\t\tthis.installDescription,\r\n\t\t\t\tthis.disableDescription,\r\n\t\t\t\tthis.disableScreenshots || this.disableScreenshotsChrome,\r\n\t\t\t\tthis.disableClose,\r\n\t\t\t\tthis.icon, \r\n\t\t\t\tthis._manifest,\r\n\t\t\t\tthis.isInstallAvailable && !this.isDialogHidden,\r\n\t\t\t\tthis._hideDialogUser,\r\n\t\t\t\tthis._install,\r\n\t\t\t\tthis._toggleGallery,\r\n\t\t\t\tthis._galleryRequested\r\n\t\t\t)}`;\r\n\t}\r\n}\r\n\r\nexport { PWAInstallAttributes };\r\n","/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nimport { updateWhenLocaleChanges } from './localized-controller.js';\n/**\n * Class decorator to enable re-rendering the given LitElement whenever a new\n * active locale has loaded.\n *\n * See also {@link updateWhenLocaleChanges} for the same functionality without\n * the use of decorators.\n *\n * When using lit-localize in transform mode, applications of this decorator are\n * removed.\n *\n * Usage:\n *\n * import {LitElement, html} from 'lit';\n * import {customElement} from 'lit/decorators.js';\n * import {msg, localized} from '@lit/localize';\n *\n * @localized()\n * @customElement('my-element')\n * class MyElement extends LitElement {\n * render() {\n * return html`${msg('Hello World')}`;\n * }\n * }\n */\nexport const localized = () => (clazz, _context) => {\n clazz.addInitializer(updateWhenLocaleChanges);\n return clazz;\n};\n//# sourceMappingURL=localized-decorator.js.map"],"names":["root","factory","exports","module","require","define","amd","globalThis","__WEBPACK_EXTERNAL_MODULE__161__","__WEBPACK_EXTERNAL_MODULE__429__","__WEBPACK_EXTERNAL_MODULE__125__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","joinStringsAndValues","strings","values","valueOrder","concat","i","length","defaultMsg","template","isStrTagged","val","msg","installed","LOCALE_STATUS_EVENT","LocalizeController","constructor","host","this","__litLocalizeEventHandler","event","detail","status","requestUpdate","hostConnected","window","addEventListener","hostDisconnected","removeEventListener","updateWhenLocaleChanges","addController","Deferred","settled","promise","Promise","resolve","reject","_resolve","_reject","error","hl","toString","HASH_DELIMITER","HTML_PREFIX","STRING_PREFIX","generateMsgId","isHtmlTagged","str","t0","v0","t1","v1","t2","v2","t3","v3","charCodeAt","fnv1a64","join","expressionOrders","WeakMap","hashCache","Map","runtimeMsg","templates","options","id","set","generateId","localized","order","map","dispatchStatusEvent","dispatchEvent","CustomEvent","loadingLocale","sourceLocale","validLocales","loadLocale","activeLocale","loading","requestId","getLocale","setLocale","newLocale","Error","has","thisRequestId","then","mod","readyLocale","err","errorLocale","errorMessage","targetLocales","localizedTemplates","config","async","lang","impl","_installMsgImplementation","Set","add","Manifest","icons","src","screenshots","short_name","name","description","css","theme","scrollToNextPage","scrollToPrevPage","html","PWAGalleryElement","LitElement","calcScrollSize","gallery","shadowRoot","querySelector","gallery_scroller","gallery_items","Array","from","querySelectorAll","gallery_item","find","item","offsetWidth","offsetLeft","scrollLeft","scroller","_tools","nextElementSibling","scrollTo","top","left","clientWidth","behavior","previousElementSibling","_init","styles","firstUpdated","setTimeout","connectedCallback","super","render","property","customElement","icon","install","_eventDispatcher","_element","message","Utils","isAppleMobile","includes","navigator","platform","userAgent","match","maxTouchPoints","isAppleDesktop","toLowerCase","version","exec","parseInt","audioCheck","document","createElement","canPlayType","webGLCheck","OffscreenCanvas","getContext","isStandalone","matchMedia","matches","standalone","getInstalledRelatedApps","relatedApps","e","isRelatedAppsInstalled","eventInstalledSuccess","eventInstalledFail","eventUserChoiceResult","eventInstallAvailable","eventInstallHowTo","eventGallery","normalizeManifestAssetUrls","manifest","manifestUrl","normalizedManifestUrl","URL","location","href","forEach","asset","PWABottomSheetElement","props","handleEvent","hideDialog","disableClose","_callInstall","_callHide","setupAppearence","bindedElement","_saveBodyStyle","body","style","overscrollBehaviorY","dragMobileSheet","element","touchTargetElement","infoElement","dragOffset","bottomSize","clientHeight","getYCoord","clientY","changedTouches","dragMouseDown","dragMouseUp","dragMouseMove","getBoundingClientRect","innerHeight","closeDragElement","getRootNode","currentY","setProperty","toPoint","innerWidth","passive","MouseEvent","touchElement","listener","parentElement","getElementsByClassName","createRenderRoot","type","installDescription","disableDescription","disableScreenshots","installAvailable","toggleGallery","galleryRequested","installDialogClasses","available","screenshotsAvailable","howToForApple","isDesktop","howToRequested","desktop","PWAInstallElement","disableScreenshotsApple","disableScreenshotsChrome","manualApple","manualChrome","disableChrome","externalPromptEvent","platforms","userChoiceResult","isDialogHidden","JSON","parse","sessionStorage","getItem","isInstallAvailable","isAppleMobilePlatform","isAppleDesktopPlatform","isUnderStandaloneMode","_manifest","_howToRequested","_galleryRequested","_install","defferedPromptEvent","prompt","userChoice","choiceResult","outcome","catch","_hideDialog","setItem","_hideDialogUser","showDialog","forced","_howToForApple","_toggleGallery","_checkInstalled","_promptHandler","preventDefault","_response","fetch","_json","json","ok","keys","_requestUpdate","slice","changeLocale","language","finalized","willUpdate","changedProperties","attribute","Boolean","state","clazz","_context","addInitializer"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/pwa-install.bundle.js b/docs/pwa-install.bundle.js index 30e399a..18edf5e 100644 --- a/docs/pwa-install.bundle.js +++ b/docs/pwa-install.bundle.js @@ -1,2 +1,2 @@ -var PWAInstallComponent;(()=>{"use strict";var e={d:(t,a)=>{for(var i in a)e.o(a,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:a[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{PWAInstallElement:()=>aa});var a={};e.r(a),e.d(a,{templates:()=>dt});var i={};e.r(i),e.d(i,{templates:()=>ct});var o={};e.r(o),e.d(o,{templates:()=>pt});var s={};e.r(s),e.d(s,{templates:()=>ht});var l={};e.r(l),e.d(l,{templates:()=>bt});var n={};e.r(n),e.d(n,{templates:()=>gt});var r={};e.r(r),e.d(r,{templates:()=>ut});var d={};e.r(d),e.d(d,{templates:()=>mt});var c={};e.r(c),e.d(c,{templates:()=>ft});var p={};e.r(p),e.d(p,{templates:()=>vt});var h={};e.r(h),e.d(h,{templates:()=>wt});var b={};e.r(b),e.d(b,{templates:()=>yt});var g={};e.r(g),e.d(g,{templates:()=>xt});var u={};e.r(u),e.d(u,{templates:()=>kt});var m={};e.r(m),e.d(m,{templates:()=>_t});var f={};e.r(f),e.d(f,{templates:()=>$t});var v={};e.r(v),e.d(v,{templates:()=>At});var w={};e.r(w),e.d(w,{templates:()=>St});var y={};e.r(y),e.d(y,{templates:()=>Et});var x={};e.r(x),e.d(x,{templates:()=>Dt});const k=globalThis,_=k.ShadowRoot&&(void 0===k.ShadyCSS||k.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,$=Symbol(),A=new WeakMap;class S{constructor(e,t,a){if(this._$cssResult$=!0,a!==$)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(_&&void 0===e){const a=void 0!==t&&1===t.length;a&&(e=A.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),a&&A.set(t,e))}return e}toString(){return this.cssText}}const E=(e,...t)=>{const a=1===e.length?e[0]:t.reduce(((t,a,i)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(a)+e[i+1]),e[0]);return new S(a,e,$)},D=(e,t)=>{if(_)e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const a of t){const t=document.createElement("style"),i=k.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=a.cssText,e.appendChild(t)}},P=_?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const a of e.cssRules)t+=a.cssText;return(e=>new S("string"==typeof e?e:e+"",void 0,$))(t)})(e):e,{is:C,defineProperty:j,getOwnPropertyDescriptor:z,getOwnPropertyNames:R,getOwnPropertySymbols:M,getPrototypeOf:T}=Object,I=globalThis,L=I.trustedTypes,U=L?L.emptyScript:"",H=I.reactiveElementPolyfillSupport,O=(e,t)=>e,B={toAttribute(e,t){switch(t){case Boolean:e=e?U:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let a=e;switch(t){case Boolean:a=null!==e;break;case Number:a=null===e?null:Number(e);break;case Object:case Array:try{a=JSON.parse(e)}catch(e){a=null}}return a}},N=(e,t)=>!C(e,t),q={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:N};Symbol.metadata??=Symbol("metadata"),I.litPropertyMetadata??=new WeakMap;class W extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=q){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const a=Symbol(),i=this.getPropertyDescriptor(e,a,t);void 0!==i&&j(this.prototype,e,i)}}static getPropertyDescriptor(e,t,a){const{get:i,set:o}=z(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return i?.call(this)},set(t){const s=i?.call(this);o.call(this,t),this.requestUpdate(e,s,a)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??q}static _$Ei(){if(this.hasOwnProperty(O("elementProperties")))return;const e=T(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(O("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(O("properties"))){const e=this.properties,t=[...R(e),...M(e)];for(const a of t)this.createProperty(a,e[a])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,a]of t)this.elementProperties.set(e,a)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const a=this._$Eu(e,t);void 0!==a&&this._$Eh.set(a,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const a=new Set(e.flat(1/0).reverse());for(const e of a)t.unshift(P(e))}else void 0!==e&&t.push(P(e));return t}static _$Eu(e,t){const a=t.attribute;return!1===a?void 0:"string"==typeof a?a:"string"==typeof e?e.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((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const a of t.keys())this.hasOwnProperty(a)&&(e.set(a,this[a]),delete this[a]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return D(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,a){this._$AK(e,a)}_$EC(e,t){const a=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,a);if(void 0!==i&&!0===a.reflect){const o=(void 0!==a.converter?.toAttribute?a.converter:B).toAttribute(t,a.type);this._$Em=e,null==o?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(e,t){const a=this.constructor,i=a._$Eh.get(e);if(void 0!==i&&this._$Em!==i){const e=a.getPropertyOptions(i),o="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:B;this._$Em=i,this[i]=o.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,a){if(void 0!==e){if(a??=this.constructor.getPropertyOptions(e),!(a.hasChanged??N)(this[e],t))return;this.P(e,t,a)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,a){this._$AL.has(e)||this._$AL.set(e,t),!0===a.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,a]of e)!0!==a.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],a)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}W.elementStyles=[],W.shadowRootOptions={mode:"open"},W[O("elementProperties")]=new Map,W[O("finalized")]=new Map,H?.({ReactiveElement:W}),(I.reactiveElementVersions??=[]).push("2.0.4");const Z=globalThis,V=Z.trustedTypes,Y=V?V.createPolicy("lit-html",{createHTML:e=>e}):void 0,F="$lit$",G=`lit$${Math.random().toFixed(9).slice(2)}$`,J="?"+G,K=`<${J}>`,Q=document,X=()=>Q.createComment(""),ee=e=>null===e||"object"!=typeof e&&"function"!=typeof e,te=Array.isArray,ae=e=>te(e)||"function"==typeof e?.[Symbol.iterator],ie="[ \t\n\f\r]",oe=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,se=/-->/g,le=/>/g,ne=RegExp(`>|${ie}(?:([^\\s"'>=/]+)(${ie}*=${ie}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),re=/'/g,de=/"/g,ce=/^(?:script|style|textarea|title)$/i,pe=e=>(t,...a)=>({_$litType$:e,strings:t,values:a}),he=pe(1),be=(pe(2),Symbol.for("lit-noChange")),ge=Symbol.for("lit-nothing"),ue=new WeakMap,me=Q.createTreeWalker(Q,129);function fe(e,t){if(!Array.isArray(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==Y?Y.createHTML(t):t}const ve=(e,t)=>{const a=e.length-1,i=[];let o,s=2===t?"":"",l=oe;for(let t=0;t"===r[0]?(l=o??oe,d=-1):void 0===r[1]?d=-2:(d=l.lastIndex-r[2].length,n=r[1],l=void 0===r[3]?ne:'"'===r[3]?de:re):l===de||l===re?l=ne:l===se||l===le?l=oe:(l=ne,o=void 0);const p=l===ne&&e[t+1].startsWith("/>")?" ":"";s+=l===oe?a+K:d>=0?(i.push(n),a.slice(0,d)+F+a.slice(d)+G+p):a+G+(-2===d?t:p)}return[fe(e,s+(e[a]||"")+(2===t?"":"")),i]};class we{constructor({strings:e,_$litType$:t},a){let i;this.parts=[];let o=0,s=0;const l=e.length-1,n=this.parts,[r,d]=ve(e,t);if(this.el=we.createElement(r,a),me.currentNode=this.el.content,2===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(i=me.nextNode())&&n.length0){i.textContent=V?V.emptyScript:"";for(let a=0;a2||""!==a[0]||""!==a[1]?(this._$AH=Array(a.length-1).fill(new String),this.strings=a):this._$AH=ge}_$AI(e,t=this,a,i){const o=this.strings;let s=!1;if(void 0===o)e=ye(this,e,t,0),s=!ee(e)||e!==this._$AH&&e!==be,s&&(this._$AH=e);else{const i=e;let l,n;for(e=o[0],l=0;l{const i=a?.renderBefore??t;let o=i._$litPart$;if(void 0===o){const e=a?.renderBefore??null;i._$litPart$=o=new ke(t.insertBefore(X(),e),e,void 0,a??{})}return o._$AI(e),o})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return be}}Pe._$litElement$=!0,Pe.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:Pe});const Ce=globalThis.litElementPolyfillSupport;Ce?.({LitElement:Pe});(globalThis.litElementVersions??=[]).push("4.0.6");const je=(e,t,a)=>{let i=e[0];for(let o=1;o{return"string"!=typeof(t=e)&&"strTag"in t?je(e.strings,e.values):e;var t},Re="lit-localize-status";class Me{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(Re,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(Re,this.__litLocalizeEventHandler)}}const Te=e=>e.addController(new Me(e));class Ie{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const Le=[];for(let e=0;e<256;e++)Le[e]=(e>>4&15).toString(16)+(15&e).toString(16);const Ue="",He="h",Oe="s";function Be(e,t){return(t?He:Oe)+function(e){let t=0,a=8997,i=0,o=33826,s=0,l=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,s+=i>>>16,o=65535&i,r=n+(s>>>16)&65535,l=65535&s;return Le[r>>8]+Le[255&r]+Le[l>>8]+Le[255&l]+Le[o>>8]+Le[255&o]+Le[a>>8]+Le[255&a]}("string"==typeof e?e:e.join(Ue))}const Ne=new WeakMap,qe=new Map;function We(e,t,a){if(e){const i=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=qe.get(t);void 0===a&&(a=Be(t,"string"!=typeof e&&!("strTag"in e)),qe.set(t,a));return a}(t),o=e[i];if(o){if("string"==typeof o)return o;if("strTag"in o)return je(o.strings,t.values,o.values);{let e=Ne.get(o);return void 0===e&&(e=o.values,Ne.set(o,e)),{...o,values:e.map((e=>t.values[e]))}}}}return ze(t)}function Ze(e){window.dispatchEvent(new CustomEvent(Re,{detail:e}))}let Ve,Ye,Fe,Ge,Je,Ke="",Qe=new Ie;Qe.resolve();let Xe=0;const et=()=>Ke,tt=e=>{if(e===(Ve??Ke))return Qe.promise;if(!Fe||!Ge)throw Error("Internal error");if(!Fe.has(e))throw Error("Invalid locale code");Xe++;const t=Xe;Ve=e,Qe.settled&&(Qe=new Ie),Ze({status:"loading",loadingLocale:e});return(e===Ye?Promise.resolve({templates:void 0}):Ge(e)).then((a=>{Xe===t&&(Ke=e,Ve=void 0,Je=a.templates,Ze({status:"ready",readyLocale:e}),Qe.resolve())}),(a=>{Xe===t&&(Ze({status:"error",errorLocale:e,errorMessage:a.toString()}),Qe.reject(a))})),Qe.promise};let at=ze,it=!1;const ot=e=>(t,a)=>{void 0!==a?a.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)},st={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:N},lt=(e=st,t,a)=>{const{kind:i,metadata:o}=a;let s=globalThis.litPropertyMetadata.get(o);if(void 0===s&&globalThis.litPropertyMetadata.set(o,s=new Map),s.set(a.name,e),"accessor"===i){const{name:i}=a;return{set(a){const o=t.get.call(this);t.set.call(this,a),this.requestUpdate(i,o,e)},init(t){return void 0!==t&&this.P(i,void 0,e),t}}}if("setter"===i){const{name:i}=a;return function(a){const o=this[i];t.call(this,a),this.requestUpdate(i,o,e)}}throw Error("Unsupported decorator location: "+i)};function nt(e){return(t,a)=>"object"==typeof a?lt(e,t,a):((e,t,a)=>{const i=t.hasOwnProperty(a);return t.constructor.createProperty(a,i?{...e,wrapped:!0}:e),i?Object.getOwnPropertyDescriptor(t,a):void 0})(e,t,a)}const rt=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],dt={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},ct={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},pt={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},ht={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},bt={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},gt={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},ut={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},mt={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},ft={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},vt={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},wt={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},yt={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击加入主画面",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App加入主画面",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},xt={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},kt={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},_t={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},$t={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},At={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},St={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},Et={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},Dt={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},Pt=new Map([["ru",a],["tr",i],["de",o],["es",s],["nl",l],["el",n],["fr",r],["sr",d],["pl",c],["uk",p],["zh",h],["zh-CN",b],["it",g],["cs",u],["no",m],["pt",f],["ja",v],["sv",w],["ko",y],["km",x]]),{getLocale:Ct,setLocale:jt}=(zt={sourceLocale:"en",targetLocales:rt,loadLocale:async e=>Pt.get(e)},function(e){if(it)throw Error("lit-localize can only be configured once");at=e,it=!0}(((e,t)=>We(Je,e,t))),Ke=Ye=zt.sourceLocale,Fe=new Set(zt.targetLocales),Fe.add(zt.sourceLocale),Ge=zt.loadLocale,{getLocale:et,setLocale:tt});var zt;class Rt{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const Mt=E`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,Tt=(e,t,a,i)=>he`${e?he``:""}`;var It=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},Lt=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Ut=class extends Pe{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const i=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return i?{scroller:t,item:i}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return Mt}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return he`${Tt(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};It([nt(),Lt("design:type",Object)],Ut.prototype,"screenshots",void 0),It([nt(),Lt("design:type",String)],Ut.prototype,"theme",void 0),Ut=It([ot("pwa-gallery")],Ut);const Ht=Ut,Ot=(e,t,a,i)=>he`
icon
${location.hostname}
${t?he`
${t}
`:""}`,Bt=(e,t,a)=>{const i=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(i)};class Nt{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),i=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&i}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Bt(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Bt(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Bt(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Bt(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Bt(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Bt(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var qt=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},Wt=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Zt=class extends Pe{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let i=0;const o=t.clientHeight+a.clientHeight,s=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),l=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),i=s(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&s(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-s(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Nt.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-o-35)},r=t=>{const a=s(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+i||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-i}px)`))},d=(a,i,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!i&&s(a)>=window.innerHeight-o?e.style.setProperty("--translateY",`translateY(calc(100vh - ${o}px))`):e.style.setProperty("--translateY",`translateY(${(i||s(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",l),t.removeEventListener("touchstart",l),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",l),t.addEventListener("touchstart",l,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-o-35),{touchElement:t,listener:l}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return he`${Ot(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};qt([nt({type:Object}),Wt("design:type",Object)],Zt.prototype,"props",void 0),qt([nt({type:Object}),Wt("design:type",Object)],Zt.prototype,"install",void 0),qt([nt(),Wt("design:type",Object)],Zt.prototype,"hideDialog",void 0),qt([nt(),Wt("design:type",Object)],Zt.prototype,"disableClose",void 0),Zt=qt([ot("pwa-bottom-sheet")],Zt);const Vt=Zt,Yt=E`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Ft=E`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`,Gt=1;class Jt{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,a){this._$Ct=e,this._$AM=t,this._$Ci=a}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}const Kt=(e=>(...t)=>({_$litDirective$:e,values:t}))(class extends Jt{constructor(e){if(super(e),e.type!==Gt||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const a=e.element.classList;for(const e of this.st)e in t||(a.remove(e),this.st.delete(e));for(const e in t){const i=!!t[e];i===this.st.has(e)||this.nt?.has(e)||(i?(a.add(e),this.st.add(e)):(a.remove(e),this.st.delete(e)))}return be}}),Qt=(e,t,a,i,o,s,l,n,r,d,c,p,h)=>{const b=()=>({available:r,gallery:h}),g=!o&&n.screenshots&&n.screenshots.length;return he`
icon
${s?"":he``}
${location.hostname}
${t?he`
${t}
`:""} ${i?"":he`
${a||`${at("This site has app functionality.")} ${at("Install it on your device for extensive experience and easy access.")}`}
`} ${g?he``:""}
${g?he``:""}
${g?he``:""}
`},Xt=(e,t,a,i,o,s,l,n,r,d,c,p,h,b,g)=>{const u=!o&&n.screenshots&&n.screenshots.length;return he``};var ea=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},ta=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let aa=class extends Pe{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new Rt,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Nt.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Nt.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Nt.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Nt.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Nt.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Nt.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Nt.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Nt.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Nt.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Nt.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Yt,Ft]}async _checkInstalled(){this.isUnderStandaloneMode=Nt.isStandalone(),this.isRelatedAppsInstalled=await Nt.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Nt.isAppleMobile(),this.isAppleDesktopPlatform=Nt.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Nt.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e&&(e="no");try{Pt.get(e)?jt(e):jt(e.slice(0,2))}catch{}})(navigator.language),this._init(),Ht.finalized,Vt.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?he`${Xt(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:he`${Qt(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};ea([nt({attribute:"manifest-url"}),ta("design:type",Object)],aa.prototype,"manifestUrl",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"icon",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"name",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"description",void 0),ea([nt({attribute:"install-description"}),ta("design:type",Object)],aa.prototype,"installDescription",void 0),ea([nt({attribute:"disable-install-description",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableDescription",void 0),ea([nt({attribute:"disable-screenshots",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshots",void 0),ea([nt({attribute:"disable-screenshots-apple",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshotsApple",void 0),ea([nt({attribute:"disable-screenshots-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshotsChrome",void 0),ea([nt({attribute:"manual-apple",type:Boolean}),ta("design:type",Object)],aa.prototype,"manualApple",void 0),ea([nt({attribute:"manual-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"manualChrome",void 0),ea([nt({attribute:"disable-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableChrome",void 0),ea([nt({attribute:"disable-close",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableClose",void 0),ea([function(e){return nt({...e,state:!0,attribute:!1})}(),ta("design:type",Object)],aa.prototype,"externalPromptEvent",void 0),aa=ea([(e,t)=>(e.addInitializer(Te),e),ot("pwa-install")],aa),PWAInstallComponent=t})(); +var PWAInstallComponent;(()=>{"use strict";var e={d:(t,a)=>{for(var i in a)e.o(a,i)&&!e.o(t,i)&&Object.defineProperty(t,i,{enumerable:!0,get:a[i]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},t={};e.r(t),e.d(t,{PWAInstallElement:()=>aa});var a={};e.r(a),e.d(a,{templates:()=>dt});var i={};e.r(i),e.d(i,{templates:()=>ct});var o={};e.r(o),e.d(o,{templates:()=>pt});var s={};e.r(s),e.d(s,{templates:()=>ht});var l={};e.r(l),e.d(l,{templates:()=>bt});var n={};e.r(n),e.d(n,{templates:()=>gt});var r={};e.r(r),e.d(r,{templates:()=>ut});var d={};e.r(d),e.d(d,{templates:()=>mt});var c={};e.r(c),e.d(c,{templates:()=>ft});var p={};e.r(p),e.d(p,{templates:()=>vt});var h={};e.r(h),e.d(h,{templates:()=>wt});var b={};e.r(b),e.d(b,{templates:()=>yt});var g={};e.r(g),e.d(g,{templates:()=>xt});var u={};e.r(u),e.d(u,{templates:()=>kt});var m={};e.r(m),e.d(m,{templates:()=>_t});var f={};e.r(f),e.d(f,{templates:()=>$t});var v={};e.r(v),e.d(v,{templates:()=>At});var w={};e.r(w),e.d(w,{templates:()=>St});var y={};e.r(y),e.d(y,{templates:()=>Et});var x={};e.r(x),e.d(x,{templates:()=>Dt});const k=globalThis,_=k.ShadowRoot&&(void 0===k.ShadyCSS||k.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,$=Symbol(),A=new WeakMap;class S{constructor(e,t,a){if(this._$cssResult$=!0,a!==$)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o;const t=this.t;if(_&&void 0===e){const a=void 0!==t&&1===t.length;a&&(e=A.get(t)),void 0===e&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),a&&A.set(t,e))}return e}toString(){return this.cssText}}const E=(e,...t)=>{const a=1===e.length?e[0]:t.reduce(((t,a,i)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if("number"==typeof e)return e;throw Error("Value passed to 'css' function must be a 'css' function result: "+e+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(a)+e[i+1]),e[0]);return new S(a,e,$)},D=(e,t)=>{if(_)e.adoptedStyleSheets=t.map((e=>e instanceof CSSStyleSheet?e:e.styleSheet));else for(const a of t){const t=document.createElement("style"),i=k.litNonce;void 0!==i&&t.setAttribute("nonce",i),t.textContent=a.cssText,e.appendChild(t)}},P=_?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t="";for(const a of e.cssRules)t+=a.cssText;return(e=>new S("string"==typeof e?e:e+"",void 0,$))(t)})(e):e,{is:j,defineProperty:z,getOwnPropertyDescriptor:C,getOwnPropertyNames:R,getOwnPropertySymbols:M,getPrototypeOf:T}=Object,I=globalThis,L=I.trustedTypes,U=L?L.emptyScript:"",O=I.reactiveElementPolyfillSupport,H=(e,t)=>e,B={toAttribute(e,t){switch(t){case Boolean:e=e?U:null;break;case Object:case Array:e=null==e?e:JSON.stringify(e)}return e},fromAttribute(e,t){let a=e;switch(t){case Boolean:a=null!==e;break;case Number:a=null===e?null:Number(e);break;case Object:case Array:try{a=JSON.parse(e)}catch(e){a=null}}return a}},N=(e,t)=>!j(e,t),q={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:N};Symbol.metadata??=Symbol("metadata"),I.litPropertyMetadata??=new WeakMap;class W extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=q){if(t.state&&(t.attribute=!1),this._$Ei(),this.elementProperties.set(e,t),!t.noAccessor){const a=Symbol(),i=this.getPropertyDescriptor(e,a,t);void 0!==i&&z(this.prototype,e,i)}}static getPropertyDescriptor(e,t,a){const{get:i,set:o}=C(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get(){return i?.call(this)},set(t){const s=i?.call(this);o.call(this,t),this.requestUpdate(e,s,a)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??q}static _$Ei(){if(this.hasOwnProperty(H("elementProperties")))return;const e=T(this);e.finalize(),void 0!==e.l&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(H("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(H("properties"))){const e=this.properties,t=[...R(e),...M(e)];for(const a of t)this.createProperty(a,e[a])}const e=this[Symbol.metadata];if(null!==e){const t=litPropertyMetadata.get(e);if(void 0!==t)for(const[e,a]of t)this.elementProperties.set(e,a)}this._$Eh=new Map;for(const[e,t]of this.elementProperties){const a=this._$Eu(e,t);void 0!==a&&this._$Eh.set(a,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){const t=[];if(Array.isArray(e)){const a=new Set(e.flat(1/0).reverse());for(const e of a)t.unshift(P(e))}else void 0!==e&&t.push(P(e));return t}static _$Eu(e,t){const a=t.attribute;return!1===a?void 0:"string"==typeof a?a:"string"==typeof e?e.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((e=>this.enableUpdating=e)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((e=>e(this)))}addController(e){(this._$EO??=new Set).add(e),void 0!==this.renderRoot&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){const e=new Map,t=this.constructor.elementProperties;for(const a of t.keys())this.hasOwnProperty(a)&&(e.set(a,this[a]),delete this[a]);e.size>0&&(this._$Ep=e)}createRenderRoot(){const e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return D(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((e=>e.hostConnected?.()))}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach((e=>e.hostDisconnected?.()))}attributeChangedCallback(e,t,a){this._$AK(e,a)}_$EC(e,t){const a=this.constructor.elementProperties.get(e),i=this.constructor._$Eu(e,a);if(void 0!==i&&!0===a.reflect){const o=(void 0!==a.converter?.toAttribute?a.converter:B).toAttribute(t,a.type);this._$Em=e,null==o?this.removeAttribute(i):this.setAttribute(i,o),this._$Em=null}}_$AK(e,t){const a=this.constructor,i=a._$Eh.get(e);if(void 0!==i&&this._$Em!==i){const e=a.getPropertyOptions(i),o="function"==typeof e.converter?{fromAttribute:e.converter}:void 0!==e.converter?.fromAttribute?e.converter:B;this._$Em=i,this[i]=o.fromAttribute(t,e.type),this._$Em=null}}requestUpdate(e,t,a){if(void 0!==e){if(a??=this.constructor.getPropertyOptions(e),!(a.hasChanged??N)(this[e],t))return;this.P(e,t,a)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(e,t,a){this._$AL.has(e)||this._$AL.set(e,t),!0===a.reflect&&this._$Em!==e&&(this._$Ej??=new Set).add(e)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}const e=this.scheduleUpdate();return null!=e&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}const e=this.constructor.elementProperties;if(e.size>0)for(const[t,a]of e)!0!==a.wrapped||this._$AL.has(t)||void 0===this[t]||this.P(t,this[t],a)}let e=!1;const t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach((e=>e.hostUpdate?.())),this.update(t)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach((e=>e.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Ej&&=this._$Ej.forEach((e=>this._$EC(e,this[e]))),this._$EU()}updated(e){}firstUpdated(e){}}W.elementStyles=[],W.shadowRootOptions={mode:"open"},W[H("elementProperties")]=new Map,W[H("finalized")]=new Map,O?.({ReactiveElement:W}),(I.reactiveElementVersions??=[]).push("2.0.4");const Z=globalThis,V=Z.trustedTypes,Y=V?V.createPolicy("lit-html",{createHTML:e=>e}):void 0,F="$lit$",G=`lit$${Math.random().toFixed(9).slice(2)}$`,J="?"+G,K=`<${J}>`,Q=document,X=()=>Q.createComment(""),ee=e=>null===e||"object"!=typeof e&&"function"!=typeof e,te=Array.isArray,ae=e=>te(e)||"function"==typeof e?.[Symbol.iterator],ie="[ \t\n\f\r]",oe=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,se=/-->/g,le=/>/g,ne=RegExp(`>|${ie}(?:([^\\s"'>=/]+)(${ie}*=${ie}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),re=/'/g,de=/"/g,ce=/^(?:script|style|textarea|title)$/i,pe=e=>(t,...a)=>({_$litType$:e,strings:t,values:a}),he=pe(1),be=(pe(2),pe(3),Symbol.for("lit-noChange")),ge=Symbol.for("lit-nothing"),ue=new WeakMap,me=Q.createTreeWalker(Q,129);function fe(e,t){if(!te(e)||!e.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==Y?Y.createHTML(t):t}const ve=(e,t)=>{const a=e.length-1,i=[];let o,s=2===t?"":3===t?"":"",l=oe;for(let t=0;t"===r[0]?(l=o??oe,d=-1):void 0===r[1]?d=-2:(d=l.lastIndex-r[2].length,n=r[1],l=void 0===r[3]?ne:'"'===r[3]?de:re):l===de||l===re?l=ne:l===se||l===le?l=oe:(l=ne,o=void 0);const p=l===ne&&e[t+1].startsWith("/>")?" ":"";s+=l===oe?a+K:d>=0?(i.push(n),a.slice(0,d)+F+a.slice(d)+G+p):a+G+(-2===d?t:p)}return[fe(e,s+(e[a]||"")+(2===t?"":3===t?"":"")),i]};class we{constructor({strings:e,_$litType$:t},a){let i;this.parts=[];let o=0,s=0;const l=e.length-1,n=this.parts,[r,d]=ve(e,t);if(this.el=we.createElement(r,a),me.currentNode=this.el.content,2===t||3===t){const e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;null!==(i=me.nextNode())&&n.length0){i.textContent=V?V.emptyScript:"";for(let a=0;a2||""!==a[0]||""!==a[1]?(this._$AH=Array(a.length-1).fill(new String),this.strings=a):this._$AH=ge}_$AI(e,t=this,a,i){const o=this.strings;let s=!1;if(void 0===o)e=ye(this,e,t,0),s=!ee(e)||e!==this._$AH&&e!==be,s&&(this._$AH=e);else{const i=e;let l,n;for(e=o[0],l=0;l{const i=a?.renderBefore??t;let o=i._$litPart$;if(void 0===o){const e=a?.renderBefore??null;i._$litPart$=o=new ke(t.insertBefore(X(),e),e,void 0,a??{})}return o._$AI(e),o})(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this.o?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this.o?.setConnected(!1)}render(){return be}}Pe._$litElement$=!0,Pe.finalized=!0,globalThis.litElementHydrateSupport?.({LitElement:Pe});const je=globalThis.litElementPolyfillSupport;je?.({LitElement:Pe});(globalThis.litElementVersions??=[]).push("4.1.0");const ze=(e,t,a)=>{let i=e[0];for(let o=1;o{return"string"!=typeof(t=e)&&"strTag"in t?ze(e.strings,e.values):e;var t};let Re=Ce,Me=!1;const Te="lit-localize-status";class Ie{constructor(e){this.__litLocalizeEventHandler=e=>{"ready"===e.detail.status&&this.host.requestUpdate()},this.host=e}hostConnected(){window.addEventListener(Te,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(Te,this.__litLocalizeEventHandler)}}const Le=e=>e.addController(new Ie(e));class Ue{constructor(){this.settled=!1,this.promise=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}resolve(e){this.settled=!0,this._resolve(e)}reject(e){this.settled=!0,this._reject(e)}}const Oe=[];for(let e=0;e<256;e++)Oe[e]=(e>>4&15).toString(16)+(15&e).toString(16);const He="",Be="h",Ne="s";function qe(e,t){return(t?Be:Ne)+function(e){let t=0,a=8997,i=0,o=33826,s=0,l=40164,n=0,r=52210;for(let d=0;d>>16,a=65535&t,s+=i>>>16,o=65535&i,r=n+(s>>>16)&65535,l=65535&s;return Oe[r>>8]+Oe[255&r]+Oe[l>>8]+Oe[255&l]+Oe[o>>8]+Oe[255&o]+Oe[a>>8]+Oe[255&a]}("string"==typeof e?e:e.join(He))}const We=new WeakMap,Ze=new Map;function Ve(e,t,a){if(e){const i=a?.id??function(e){const t="string"==typeof e?e:e.strings;let a=Ze.get(t);void 0===a&&(a=qe(t,"string"!=typeof e&&!("strTag"in e)),Ze.set(t,a));return a}(t),o=e[i];if(o){if("string"==typeof o)return o;if("strTag"in o)return ze(o.strings,t.values,o.values);{let e=We.get(o);return void 0===e&&(e=o.values,We.set(o,e)),{...o,values:e.map((e=>t.values[e]))}}}}return Ce(t)}function Ye(e){window.dispatchEvent(new CustomEvent(Te,{detail:e}))}let Fe,Ge,Je,Ke,Qe,Xe="",et=new Ue;et.resolve();let tt=0;const at=()=>Xe,it=e=>{if(e===(Fe??Xe))return et.promise;if(!Je||!Ke)throw Error("Internal error");if(!Je.has(e))throw Error("Invalid locale code");tt++;const t=tt;Fe=e,et.settled&&(et=new Ue),Ye({status:"loading",loadingLocale:e});return(e===Ge?Promise.resolve({templates:void 0}):Ke(e)).then((a=>{tt===t&&(Xe=e,Fe=void 0,Qe=a.templates,Ye({status:"ready",readyLocale:e}),et.resolve())}),(a=>{tt===t&&(Ye({status:"error",errorLocale:e,errorMessage:a.toString()}),et.reject(a))})),et.promise},ot=e=>(t,a)=>{void 0!==a?a.addInitializer((()=>{customElements.define(e,t)})):customElements.define(e,t)},st={attribute:!0,type:String,converter:B,reflect:!1,hasChanged:N},lt=(e=st,t,a)=>{const{kind:i,metadata:o}=a;let s=globalThis.litPropertyMetadata.get(o);if(void 0===s&&globalThis.litPropertyMetadata.set(o,s=new Map),s.set(a.name,e),"accessor"===i){const{name:i}=a;return{set(a){const o=t.get.call(this);t.set.call(this,a),this.requestUpdate(i,o,e)},init(t){return void 0!==t&&this.P(i,void 0,e),t}}}if("setter"===i){const{name:i}=a;return function(a){const o=this[i];t.call(this,a),this.requestUpdate(i,o,e)}}throw Error("Unsupported decorator location: "+i)};function nt(e){return(t,a)=>"object"==typeof a?lt(e,t,a):((e,t,a)=>{const i=t.hasOwnProperty(a);return t.constructor.createProperty(a,i?{...e,wrapped:!0}:e),i?Object.getOwnPropertyDescriptor(t,a):void 0})(e,t,a)}const rt=["cs","de","el","es","fr","it","ja","km","ko","nl","no","pl","pt","ru","sr","sv","tr","uk","zh","zh-CN"],dt={s182ab2d6c997515f:"Добавьте его на главный экран, чтобы получить дополнительные возможности и удобство использования.",s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s922329d6f6213590:"Добавить в Dock",sa5ef80b4bb9b39f8:"Свернуть",sa7551383d1897fcc:'2) Нажмите "Добавить в Dock"',sba52286c21552a4e:"Установите это на ваше устройство, чтобы получить дополнительные возможности и удобство использования.",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере",se740f75b95a51807:"Добавьте его в Dock, чтобы получить дополнительные возможности и удобство использования.",sfea652f6580ff086:"Этот веб-сайт имеет функционал приложения."},ct={s182ab2d6c997515f:"Daha iyi bir deneyim ve kolay erişim için Ana Ekranınıza ekleyin.",s1b9047d53d9f9d22:"2) Gezinme çubuğunda Paylaş'a basın",s37a9e8aec5713460:"Daha Fazla",s5c6aad7a7e4a1437:"3) Ana Ekrana Ekle'ye basın",s6196153c4b0c1ea0:"Yükle",s922329d6f6213590:"Dock’a Ekle",sa5ef80b4bb9b39f8:"Küçült",sa7551383d1897fcc:"2) Dock’a ekleye basın",sba52286c21552a4e:"Daha iyi bir deneyim ve kolay erişim için cihazınıza yükleyin.",sc79fd7641eb9a975:"Talimatları gizle",scdaf4bbff76674c8:"Ana Ekrana Ekle",sdfe23506a3b0cdc8:"1) Safari tarayıcısında açın",se740f75b95a51807:"Daha iyi bir deneyim ve kolay erişim için Dock’a ekleyin.",sfea652f6580ff086:"Bu site uygulama işlevselliğine sahiptir."},pt={s182ab2d6c997515f:"Fügen Sie es zu Ihrem Startbildschirm hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",s1b9047d53d9f9d22:"2) Drücken Sie auf Teilen in der Navigationsleiste",s37a9e8aec5713460:"Mehr",s5c6aad7a7e4a1437:"3) Drücken Sie Hinzufügen zum Startbildschirm",s6196153c4b0c1ea0:"Installieren",s922329d6f6213590:"Zum Dock hinzufügen",sa5ef80b4bb9b39f8:"Weniger",sa7551383d1897fcc:"2) Drücken Sie auf Zum Dock hinzufügen",sba52286c21552a4e:"Installieren Sie es auf Ihrem Gerät für eine umfassende Erfahrung und einen leichten Zugriff.",sc79fd7641eb9a975:"Anleitung ausblenden",scdaf4bbff76674c8:"Hinzufügen zum Startbildschirm",sdfe23506a3b0cdc8:"1) In Safari-Browser öffnen",se740f75b95a51807:"Fügen Sie es zu Ihrem Dock hinzu, um eine umfassende Erfahrung und einen leichten Zugriff zu erhalten.",sfea652f6580ff086:"Diese Website verfügt über App-Funktionalität."},ht={s182ab2d6c997515f:"Añádelo a tu pantalla de inicio para una experiencia amplia y acceso fácil.",s1b9047d53d9f9d22:"2) Presionar Compartir en la barra de direcciones",s37a9e8aec5713460:"Más",s5c6aad7a7e4a1437:"3) Presionar Añadir a pantalla de inicio",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Añadir al Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Presionar Añadir al Dock",sba52286c21552a4e:"Instálalo en tu dispositivo para una experiencia amplia y acceso fácil.",sc79fd7641eb9a975:"Esconder instrucciones",scdaf4bbff76674c8:"Añadir a pantalla de inicio",sdfe23506a3b0cdc8:"1) Abrir en el navegador web Safari",se740f75b95a51807:"Añádelo a tu Dock para una experiencia amplia y acceso fácil.",sfea652f6580ff086:"Este sitio tiene funcionalidad de aplicación."},bt={s182ab2d6c997515f:"Voeg het toe aan je startscherm voor een uitgebreide ervaring en gemakkelijke toegang.",s1b9047d53d9f9d22:"2) Druk op delen in de navigatiebalk",s37a9e8aec5713460:"Meer",s5c6aad7a7e4a1437:"3) Druk op Toevoegen aan het startscherm",s6196153c4b0c1ea0:"Installeren",s922329d6f6213590:"Toevoegen aan Dock",sa5ef80b4bb9b39f8:"Minder",sa7551383d1897fcc:"2) Druk op Toevoegen aan Dock",sba52286c21552a4e:"Installeer het op je apparaat voor een uitgebreide ervaring en gemakkelijke toegang.",sc79fd7641eb9a975:"Instructie verbergen",scdaf4bbff76674c8:"Toevoegen aan het startscherm",sdfe23506a3b0cdc8:"1) Open in Safari-browser",se740f75b95a51807:"Voeg het toe aan je Dock voor een uitgebreide ervaring en makkelijke toegang.",sfea652f6580ff086:"Deze site heeft app-functionaliteit."},gt={s182ab2d6c997515f:"Προσθέστε το στην οθόνη Αφετηρίας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",s1b9047d53d9f9d22:"2) Πατήστε Κοινοποίηση στη γραμμή πλοήγησης",s37a9e8aec5713460:"Περισσότερα",s5c6aad7a7e4a1437:"3) Πατήστε Προσθήκη στην οθόνη Αφετηρίας",s6196153c4b0c1ea0:"Εγκατάσταση",s922329d6f6213590:"Προσθήκη στην Πρόσβαση",sa5ef80b4bb9b39f8:"Λιγότερα",sa7551383d1897fcc:"2) Πατήστε Προσθήκη στην Πρόσβαση",sba52286c21552a4e:"Εγκαταστήστε το στη συσκευή σας για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sc79fd7641eb9a975:"Απόκρυψη Οδηγιών",scdaf4bbff76674c8:"Προσθήκη στην Οθόνη Αφετηρίας",sdfe23506a3b0cdc8:"1) Ανοίξτε τον περιηγητή Safari",se740f75b95a51807:"Προσθέστε το στην Πρόσβαση για εκτεταμένη εμπειρία και εύκολη πρόσβαση.",sfea652f6580ff086:"Αυτός ο ιστότοπος έχει λειτουργική εφαρμογής."},ut={s182ab2d6c997515f:"Ajoutez-le à votre écran d'accueil pour une expérience étendue et un accès facile.",s1b9047d53d9f9d22:"2) Appuyez sur Partager dans la barre de navigation",s37a9e8aec5713460:"Plus",s5c6aad7a7e4a1437:"3) Appuyez sur Ajouter à l'écran d'accueil",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Ajouter au Dock",sa5ef80b4bb9b39f8:"Moins",sa7551383d1897fcc:"2) Appuyez sur Ajouter au Dock",sba52286c21552a4e:"Installez-le sur votre appareil pour une expérience complète et un accès facile.",sc79fd7641eb9a975:"Masquer les instructions",scdaf4bbff76674c8:"Ajouter à l'écran d'accueil",sdfe23506a3b0cdc8:"1) Ouvrir dans le navigateur Safari",se740f75b95a51807:"Ajoutez-le à votre Dock pour une expérience étendue et un accès facile.",sfea652f6580ff086:"Ce site possède des fonctionnalités d'application."},mt={s182ab2d6c997515f:"Додајте га на Home Screen за широке могућности и лак приступ.",s1b9047d53d9f9d22:"2) Притисните Share у навигационој траци",s37a9e8aec5713460:"Више",s5c6aad7a7e4a1437:"3) Притисните Add to Home Screen",s6196153c4b0c1ea0:"Инсталирај",sa5ef80b4bb9b39f8:"Мање",sa7551383d1897fcc:"3) Притисните Add to Dock",sba52286c21552a4e:"Инсталирајте га на вашем уређају за широке могућности и лак приступ.",sc79fd7641eb9a975:"Сакриј упутство",sdfe23506a3b0cdc8:"1) Отворите у Safari прегледачу",se740f75b95a51807:"Додајте га у вашу Dock за широке могућности и лак приступ.",sfea652f6580ff086:"Овај сајт има функционалност апликације.",s922329d6f6213590:"Add to Dock",scdaf4bbff76674c8:"Add to Home Screen"},ft={s182ab2d6c997515f:"Dodaj do swojego Ekranu Głównego, aby uzyskać bogate doświadczenie i łatwy dostęp.",s1b9047d53d9f9d22:'2) Wybierz "Udostępnij"',s37a9e8aec5713460:"Więcej",s5c6aad7a7e4a1437:'3) Wybierz "Dodaj do Ekranu Głównego"',s6196153c4b0c1ea0:"Zainstaluj",s922329d6f6213590:"Dodaj do Docka",sa5ef80b4bb9b39f8:"Mniej",sa7551383d1897fcc:'2) Wybierz "Dodaj do Docka"',sba52286c21552a4e:"Zainstaluj na swoim urządzeniu, aby uzyskać bogate doświadczenie i łatwy dostęp.",sc79fd7641eb9a975:"Ukryj instrukcję",scdaf4bbff76674c8:"Dodaj do Ekranu Głównego",sdfe23506a3b0cdc8:"1) Otwórz przeglądarkę Safari",se740f75b95a51807:"Dodaj do swojego Docka, aby uzyskać bogate doświadczenie i łatwy dostęp.",sfea652f6580ff086:"Ta strona posiada funkcje aplikacji."},vt={s182ab2d6c997515f:"Додайте на Домашній екран для зручного доступу та ширших можливостей.",s1b9047d53d9f9d22:"2) Натиснути «Поділитися»",s37a9e8aec5713460:"Детальніше",s5c6aad7a7e4a1437:"3) Натиснути «На Початковий екран»",s6196153c4b0c1ea0:"Встановити",s922329d6f6213590:"Додати на Dock",sa5ef80b4bb9b39f8:"Згорнути",sa7551383d1897fcc:"2) Натиснути «Додати на Dock»",sba52286c21552a4e:"Встановіть на ваш пристрій для зручного доступу та ширших можливостей.",sc79fd7641eb9a975:"Сховати Інструкцію",scdaf4bbff76674c8:"На Початковий экран",sdfe23506a3b0cdc8:"1) Відкрити в Safari браузері",se740f75b95a51807:"Додайте на панель Dock для зручного доступу та ширших можливостей.",sfea652f6580ff086:"Цей сайт має функції додатку."},wt={s182ab2d6c997515f:"將其加入主屏幕,以獲得更豐富的體驗和便捷訪問。",s1b9047d53d9f9d22:"2) 點擊列表上的分享按鈕",s37a9e8aec5713460:"詳細資訊",s5c6aad7a7e4a1437:"3) 點擊加入主畫面",s6196153c4b0c1ea0:"安裝",s922329d6f6213590:"添加到Dock欄",sa5ef80b4bb9b39f8:"簡短資訊",sa7551383d1897fcc:"2) 點選添加到Dock欄",sba52286c21552a4e:"在您的裝置上安裝它,以獲得更豐富的體驗和便捷訪問。",sc79fd7641eb9a975:"隱藏安裝流程",scdaf4bbff76674c8:"將App加入主畫面",sdfe23506a3b0cdc8:"1) 在Safari上瀏覽此網頁",se740f75b95a51807:"將其加入你的Dock欄,以獲得更豐富的體驗和便捷訪問。",sfea652f6580ff086:"此網站具有應用程式功能。"},yt={s182ab2d6c997515f:"将其添加到主屏幕,以享受更全面的体验并便于访问。",s1b9047d53d9f9d22:"2) 点击列表上的分享按钮",s37a9e8aec5713460:"详细资讯",s5c6aad7a7e4a1437:"3) 点击添加到主屏幕",s6196153c4b0c1ea0:"安装",s922329d6f6213590:"添加到Dock",sa5ef80b4bb9b39f8:"简短资讯",sa7551383d1897fcc:"2) 按下添加到Dock",sba52286c21552a4e:"在您的设备上安装,以享有更全面的体验和便捷的访问。",sc79fd7641eb9a975:"隐藏安装流程",scdaf4bbff76674c8:"将App添加到主屏幕",sdfe23506a3b0cdc8:"1) 在Safari上浏览此网页",se740f75b95a51807:"将其添加到您的Dock,以享受更全面的体验并便于访问。",sfea652f6580ff086:"此网站具备app的功能性。"},xt={s182ab2d6c997515f:"Aggiungilo alla schermata principale per un'esperienza più completa e un accesso facile.",s1b9047d53d9f9d22:"2) Premi Condividi nella barra di navigazione",s37a9e8aec5713460:"Più",s5c6aad7a7e4a1437:"3) Premi Aggiungi alla schermata principale",s6196153c4b0c1ea0:"Installa",s922329d6f6213590:"Aggiungi al Dock",sa5ef80b4bb9b39f8:"Meno",sa7551383d1897fcc:"2) Premi Aggiungi al Dock",sba52286c21552a4e:"Installalo sul tuo dispositivo per un'esperienza più completa e un accesso facile.",sc79fd7641eb9a975:"Nascondi istruzioni",scdaf4bbff76674c8:"Aggiungi alla schermata principale",sdfe23506a3b0cdc8:"1) Apri nel browser Safari",se740f75b95a51807:"Aggiungilo al Dock per un'esperienza più completa e un accesso facile.",sfea652f6580ff086:"Questo sito ha funzionalità di app."},kt={s182ab2d6c997515f:"Přidejte jej na plochu pro rozšířené využití a snadný přístup.",s1b9047d53d9f9d22:"2) Stiskněte tlačítko Sdílet na navigačním panelu",s37a9e8aec5713460:"Vice",s5c6aad7a7e4a1437:"3) Stiskněte tlačítko Přidat na plochu",s6196153c4b0c1ea0:"Nainstalovat",s922329d6f6213590:"Přidat do Docku",sa5ef80b4bb9b39f8:"Méně",sa7551383d1897fcc:"2) Stiskněte Přidat do Docku",sba52286c21552a4e:"Nainstalujte si jej na své zařízení pro rozšířené využití a snadný přístup.",sc79fd7641eb9a975:"Skrýt instrukce",scdaf4bbff76674c8:"Přidat na plochu",sdfe23506a3b0cdc8:"1) Otevřete v prohlížeči Safari",se740f75b95a51807:"Přidejte jej do svého Docku pro rozšířené využití a snadný přístup.",sfea652f6580ff086:"Tento web má funkce aplikace."},_t={s182ab2d6c997515f:"Legg den til på Hjem-skjermen din for å få en bedre brukeropplevelse og raskere tilgang.",s1b9047d53d9f9d22:"2) Trykk på Del-knappen i navigasjonslinjen",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Velg Legg til på Hjem-skjerm",s6196153c4b0c1ea0:"Installer",s922329d6f6213590:"Legg til i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Velg Legg til i Dock",sba52286c21552a4e:"Installer den på enheten din for å få en bedre brukeropplevelse og raskere tilgang.",sc79fd7641eb9a975:"Skjul instruksjoner",scdaf4bbff76674c8:"Legg til på Hjem-skjerm",sdfe23506a3b0cdc8:"1) Åpne i Safari",se740f75b95a51807:"Legg den til i Docken din for å få en bedre brukeropplevelse og raskere tilgang.",sfea652f6580ff086:"Denne siden har app-funksjonalitet."},$t={s182ab2d6c997515f:"Adicione à Tela de Início para uma melhor experiência e mais fácil acesso.",s1b9047d53d9f9d22:"2) Pressione Compartilhar na barra de endereço",s37a9e8aec5713460:"Mais",s5c6aad7a7e4a1437:"3) Pressione Adicionar à Tela de Início",s6196153c4b0c1ea0:"Instalar",s922329d6f6213590:"Adicionar ao Dock",sa5ef80b4bb9b39f8:"Menos",sa7551383d1897fcc:"2) Pressione Adicionar ao Dock",sba52286c21552a4e:"Instale no dispositivo para uma melhor experiência e mais fácil acesso.",sc79fd7641eb9a975:"Ocultar Instruções",scdaf4bbff76674c8:"Adicionar à Tela de Início",sdfe23506a3b0cdc8:"1) Abra no navegador Safari",se740f75b95a51807:"Adicione ao Dock para uma melhor experiência e mais fácil acesso.",sfea652f6580ff086:"Este site possui funcionalidade de aplicativo."},At={s182ab2d6c997515f:"ホーム画面に追加して、幅広い体験と簡単なアクセスを実現してください。",s1b9047d53d9f9d22:"2) ナビゲーションバーで共有を押す",s37a9e8aec5713460:"展開",s5c6aad7a7e4a1437:"3) 「ホーム画面に追加」を押す",s6196153c4b0c1ea0:"インストール",s922329d6f6213590:"Dockに追加",sa5ef80b4bb9b39f8:"折りたたむ",sa7551383d1897fcc:"2) 「Dockに追加」を押す",sba52286c21552a4e:"デバイスにインストールすることで、より充実した体験と簡単なアクセスを実現できます。",sc79fd7641eb9a975:"説明を非表示",scdaf4bbff76674c8:"ホーム画面に追加",sdfe23506a3b0cdc8:"1) Safariで開く",se740f75b95a51807:"ドックに追加して、幅広い体験と簡単なアクセスを実現してください。",sfea652f6580ff086:"このサイトはアプリ機能があります。"},St={s182ab2d6c997515f:"Lägg till på hemskärmen för att få en bättre användarupplevelse och enklare åtkomst.",s1b9047d53d9f9d22:"2) Tryck på Dela-knappen i verktygsfältet",s37a9e8aec5713460:"Mer",s5c6aad7a7e4a1437:"3) Välj Lägg till på hemskärmen",s6196153c4b0c1ea0:"Installera",s922329d6f6213590:"Lägg till i Dock",sa5ef80b4bb9b39f8:"Mindre",sa7551383d1897fcc:"2) Välj Lägg till i Dock",sba52286c21552a4e:"Installera den på din enhet för att få en bättre användarupplevelse och enklare åtkomst.",sc79fd7641eb9a975:"Göm instruktioner",scdaf4bbff76674c8:"Lägg till på hemskärmen",sdfe23506a3b0cdc8:"1) Öppna i Safari",se740f75b95a51807:"Lägg till i Dock för att få en bättre användarupplevelse och enklare åtkomst.",sfea652f6580ff086:"Denna webbsajt har app-funktionalitet."},Et={s182ab2d6c997515f:"더 많은 기능과 쉬운 접근을 위해 홈 화면에 추가해주세요.",s1b9047d53d9f9d22:"2) 내비게이션 바에서 공유 버튼 누르기",s37a9e8aec5713460:"더보기",s5c6aad7a7e4a1437:"3) 홈 화면에 추가 버튼 누르기",s6196153c4b0c1ea0:"설치",s922329d6f6213590:"Dock에 추가",sa5ef80b4bb9b39f8:"닫기",sa7551383d1897fcc:"2) Dock에 추가 버튼 누르기",sba52286c21552a4e:"더 많은 기능과 쉬운 접근을 위해 기기에 설치해주세요.",sc79fd7641eb9a975:"안내 숨기기",scdaf4bbff76674c8:"홈 화면에 추가",sdfe23506a3b0cdc8:"1) Safari 브라우저에서 열기",se740f75b95a51807:"더 많은 기능과 쉬운 접근을 위해 Dock에 추가해주세요.",sfea652f6580ff086:"이 사이트는 앱 기능을 가지고 있습니다."},Dt={s182ab2d6c997515f:"បន្ថែមវាទៅកាន់ផ្ទាំងអេក្រង់ដើមដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",s1b9047d53d9f9d22:"2) ចុចលើ ប៊ូតុងចែករំលែក នៅក្នុងរបារទិសដៅ",s37a9e8aec5713460:"បង្ហាញបន្ថែម",s5c6aad7a7e4a1437:"3) ចុចលើ បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",s6196153c4b0c1ea0:"តំឡើង",s922329d6f6213590:"បន្ថែមទៅកាន់ Dock",sa5ef80b4bb9b39f8:"បង្ហាញតិច",sa7551383d1897fcc:"2) ចុចលើ បន្ថែមទៅកាន់ Dock",sba52286c21552a4e:"តំឡើងវានៅលើឧបករណ៍របស់អ្នកដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sc79fd7641eb9a975:"បិទការណែនាំ",scdaf4bbff76674c8:"បន្ថែមទៅកាន់ផ្ទាំងអេក្រង់ដើម",sdfe23506a3b0cdc8:"1) បើកនៅក្នុងកម្មវិធី Safari",se740f75b95a51807:"បន្ថែមវាទៅកាន់ Dock ដើម្បីទទួលបាននូវបទពិសោធន៍កាន់តែល្អនិងងាយស្រួលប្រើ។",sfea652f6580ff086:"គេហទំព័រនេះមានមុខងារជាកម្មវិធី។"},Pt=new Map([["ru",a],["tr",i],["de",o],["es",s],["nl",l],["el",n],["fr",r],["sr",d],["pl",c],["uk",p],["zh",h],["zh-CN",b],["it",g],["cs",u],["no",m],["pt",f],["ja",v],["sv",w],["ko",y],["km",x]]),{getLocale:jt,setLocale:zt}=(Ct={sourceLocale:"en",targetLocales:rt,loadLocale:async e=>Pt.get(e)},function(e){if(Me)throw Error("lit-localize can only be configured once");Re=e,Me=!0}(((e,t)=>Ve(Qe,e,t))),Xe=Ge=Ct.sourceLocale,Je=new Set(Ct.targetLocales),Je.add(Ct.sourceLocale),Ke=Ct.loadLocale,{getLocale:at,setLocale:it});var Ct;class Rt{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const Mt=E`.gallery{position:relative;--scrollbar-background-color:#fff;--scrollbar-thumb-color:rgb(146, 146, 146);--scrollbar-thumb-hover-color:rgb(100, 100, 100);--nav-btn-background-color:#fff;--nav-btn-fill-color:#141414}.gallery .gallery_scroller{scroll-snap-type:x mandatory;overflow-x:auto;overflow-y:hidden;display:flex;align-items:center;padding:10px 13px;padding-bottom:10px;margin:0 10px;-webkit-overflow-scrolling:touch}.gallery .gallery_scroller img{border-radius:6px;max-height:min(45vh,500px);box-shadow:0 3px 10px 0 rgba(0,0,0,.15);scroll-snap-align:center;scroll-snap-stop:always;position:relative}.gallery .gallery_scroller img+img{margin-left:15px}.gallery .gallery_scroller::-webkit-scrollbar{width:4px;height:2px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb-color);border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover-color)}.gallery .gallery_scroller::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}.gallery .gallery_scroller .scroller_wrap{display:flex;flex-direction:row;padding-right:13px}.gallery .btn{position:absolute;display:flex;align-items:center;-webkit-user-select:none;user-select:none;top:50%;transform:translateY(-50%);height:30px;width:30px;border-radius:50%;background-color:var(--nav-btn-background-color);box-shadow:rgba(0,0,0,.3) 2px 4px 4px 1px;background-repeat:no-repeat;opacity:.8;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{transform:rotate(180deg);margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 4px 1px;cursor:pointer;opacity:1}.gallery .btn svg{width:20px;height:20px}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}.gallery.apple_desktop{--scrollbar-background-color:rgba(0, 0, 0, 0.1);--scrollbar-thumb-color:rgb(100, 100, 100);--scrollbar-thumb-hover-color:rgba(0, 0, 0, 0.85)}.gallery.apple_desktop .gallery_scroller{margin:0;padding-top:15px}.gallery.apple_desktop .btn{height:26px;width:26px;box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:hover{box-shadow:rgba(0,0,0,.3) 0 2px 2px 1px}.gallery.apple_desktop .btn:active{filter:brightness(95%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(110%)}.gallery.apple_desktop .btn svg{width:12px;height:auto;opacity:1}.gallery.apple_desktop .btn svg{margin-left:7px}.gallery.apple_mobile .btn.prev svg{margin-left:7px}.gallery.apple_mobile .btn svg{width:16px;height:auto}.gallery.apple_desktop .btn,.gallery.apple_mobile .btn{opacity:1}@media(hover:none)and (pointer:coarse){.gallery .btn.next,.gallery .btn.prev{display:none}.gallery_scroller::-webkit-scrollbar{display:none}}@media(prefers-color-scheme:dark){.gallery{--scrollbar-background-color:#424242;--nav-btn-background-color:#555555;--nav-btn-fill-color:#fff}.gallery.apple_desktop{--scrollbar-thumb-color:var(--nav-btn-fill-color);--scrollbar-background-color:var(--nav-btn-background-color);--scrollbar-thumb-hover-color:var(--nav-btn-fill-color)}.gallery.apple_desktop .btn:active{filter:brightness(110%)}.gallery.apple_desktop .btn:active .svg{filter:brightness(90%)}}`,Tt=(e,t,a,i)=>he`${e?he``:""}`;var It=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},Lt=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Ut=class extends Pe{constructor(){super(...arguments),this.screenshots=[],this.theme="default",this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const a=Array.from(t.querySelectorAll("img"));if(!a)return;const i=a.find((e=>e.offsetWidth+e.offsetLeft>=t.scrollLeft));return i?{scroller:t,item:i}:void 0},this.scrollToNextPage=()=>{const e=this.calcScrollSize();e&&e.item.nextElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft+e.scroller.clientWidth+e.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const e=this.calcScrollSize();e&&e.item.previousElementSibling&&e.scroller.scrollTo({top:0,left:e.scroller.scrollLeft-e.scroller.clientWidth-e.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return Mt}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return he`${Tt(this.screenshots,this.theme,this.scrollToNextPage,this.scrollToPrevPage)}`}};It([nt(),Lt("design:type",Object)],Ut.prototype,"screenshots",void 0),It([nt(),Lt("design:type",String)],Ut.prototype,"theme",void 0),Ut=It([ot("pwa-gallery")],Ut);const Ot=Ut,Ht=(e,t,a,i)=>he`
icon
${location.hostname}
${t?he`
${t}
`:""}`,Bt=(e,t,a)=>{const i=new CustomEvent(t,{detail:{message:a}});e.dispatchEvent(i)};class Nt{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isAppleDesktop(){const e=navigator.userAgent.toLowerCase();if(navigator.maxTouchPoints||!e.match(/macintosh/))return!1;const t=/version\/(\d{2})\./.exec(e);if(!(t&&t[1]&&parseInt(t[1])>=17))return!1;const a=!!document.createElement("audio").canPlayType('audio/wav; codecs="1"'),i=!!new OffscreenCanvas(1,1).getContext("webgl");return a&&i}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){if("getInstalledRelatedApps"in navigator)try{await navigator.getInstalledRelatedApps().then((e=>e))}catch(e){}return[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){Bt(e,"pwa-install-success-event","App install success (Chromium/Android only)")}static eventInstalledFail(e){Bt(e,"pwa-install-fail-event","App install failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){Bt(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){Bt(e,"pwa-install-available-event","App install available")}static eventInstallHowTo(e){Bt(e,"pwa-install-how-to-event","App install instruction showed")}static eventGallery(e){Bt(e,"pwa-install-gallery-event","App install gallery showed")}static normalizeManifestAssetUrls(e,t){const a=new URL(t,document.location.href);[...e.icons||[],...e.screenshots||[]].forEach((e=>{e.src=new URL(e.src,a).href}))}}var qt=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},Wt=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let Zt=class extends Pe{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this.disableClose=!1,this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,a)=>{if(!e||!t||!a)return null;let i=0;const o=t.clientHeight+a.clientHeight,s=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),l=e=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),i=s(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!this.disableClose&&s(t)>=window.innerHeight-25)d(t,window.innerHeight+50,!0);else if(window.innerHeight-s(t)>e.clientHeight/2.5){d(t,window.innerHeight-e.clientHeight);try{Nt.eventGallery(this.getRootNode().host)}catch(t){}}else d(t,window.innerHeight-o-35)},r=t=>{const a=s(t);this.disableClose&&window.innerHeight-a<70||a<=window.innerHeight-e.clientHeight+i||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${a-i}px)`))},d=(a,i,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!i&&s(a)>=window.innerHeight-o?e.style.setProperty("--translateY",`translateY(calc(100vh - ${o}px))`):e.style.setProperty("--translateY",`translateY(${(i||s(a))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",l),t.removeEventListener("touchstart",l),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",l),t.addEventListener("touchstart",l,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-o-35),{touchElement:t,listener:l}},this.setupAppearence=()=>{this.bindedElement&&(this.bindedElement.touchElement.removeEventListener("mousedown",this.bindedElement.listener),this.bindedElement.touchElement.removeEventListener("touchstart",this.bindedElement.listener)),this.bindedElement=this.dragMobileSheet(this.parentElement?.parentElement,this.parentElement?.getElementsByClassName("touch-header")[0],this.parentElement?.getElementsByClassName("body-header")[0])},this._init=()=>{this.setupAppearence(),window.addEventListener("resize",this.setupAppearence)}}firstUpdated(){this._init()}createRenderRoot(){return this}connectedCallback(){super.connectedCallback()}render(){return he`${Ht(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};qt([nt({type:Object}),Wt("design:type",Object)],Zt.prototype,"props",void 0),qt([nt({type:Object}),Wt("design:type",Object)],Zt.prototype,"install",void 0),qt([nt(),Wt("design:type",Object)],Zt.prototype,"hideDialog",void 0),qt([nt(),Wt("design:type",Object)],Zt.prototype,"disableClose",void 0),Zt=qt([ot("pwa-bottom-sheet")],Zt);const Vt=Zt,Yt=E`#pwa-install-element{-webkit-user-select:none;user-select:none}#pwa-install-element .install-dialog{--text-color-normal:#212121;--background-color:#fff;--border-bottom-color:#DBDCDE;--scrollbar-background-color:#fff;font-family:Roboto,"Segoe UI",system-ui;position:fixed;display:inline-block;opacity:0;visibility:hidden;z-index:2147483001}#pwa-install-element .install-dialog.chrome{max-width:380px;width:90%;min-height:90px;margin:0 auto;right:150px;left:auto;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .3));font-size:15px;color:var(--text-color-normal);border-radius:8px;top:-100px;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}#pwa-install-element .install-dialog.chrome.available{opacity:1;top:28px;visibility:visible}#pwa-install-element .install-dialog.chrome .dialog-body{display:grid;grid-template-columns:70px 1fr}#pwa-install-element .install-dialog.chrome .dialog-body .icon{display:flex;align-items:flex-start}#pwa-install-element .install-dialog.chrome .dialog-body .icon .icon-image{width:48px;height:48px;margin:0 auto;margin-top:10px;border-radius:6px}#pwa-install-element .install-dialog.chrome .dialog-body .about{display:grid;grid-template-rows:30px auto}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname,#pwa-install-element .install-dialog.chrome .dialog-body .about .name{padding:0 5px;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .name{font-weight:500;font-size:18px;line-height:24px;margin-top:5px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.chrome .dialog-body .about .name label{text-overflow:ellipsis;word-break:break-all;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.chrome .dialog-body .about .hostname{font-size:13px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;text-align:left;word-break:break-all;white-space:nowrap}#pwa-install-element .install-dialog.chrome .dialog-body .about+hr{margin-top:10px}#pwa-install-element .install-dialog.chrome .dialog-body .description{font-weight:400;line-height:20px;grid-column:1/3;padding:0 6px;margin:10px 5px 5px;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;max-height:115px;overflow:hidden;overflow-y:auto;text-overflow:ellipsis;text-align:left}#pwa-install-element .install-dialog.chrome .dialog-body .app-description{font-size:13px;margin-bottom:10px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar{width:4px;height:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-thumb:hover{background:#646464}#pwa-install-element .install-dialog.chrome .dialog-body .app-description::-webkit-scrollbar-track{background:var(--scrollbar-background-color);border-radius:4px}#pwa-install-element .install-dialog.chrome .dialog-body .install-description{font-size:14px}#pwa-install-element .install-dialog.chrome .dialog-body hr{height:1px;width:100%;grid-column:1/3;background-color:var(--border-bottom-color);border:none;margin:0}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons{display:grid;grid-template-columns:50% auto;grid-column-start:1;grid-column-end:3;gap:10px;padding:10px 10px}#pwa-install-element .install-dialog.chrome .dialog-body .action-buttons .primary{grid-column-start:2}#pwa-install-element .install-dialog.chrome .dialog-body pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.chrome.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.mobile{--touch-header-color:#DBDCE0;top:0;max-width:414px;width:100%;bottom:auto;left:0;right:0;transition:none;transform:translateY(100vh);border-radius:0;border-top-left-radius:15px;border-top-right-radius:15px;padding-bottom:35px}#pwa-install-element .install-dialog.mobile .dialog-body{grid-template-columns:1fr}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header{height:30px;width:100%;padding-top:10px;box-sizing:border-box;cursor:grab}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header:active{cursor:grabbing}#pwa-install-element .install-dialog.mobile .dialog-body .touch-header::before{content:"";width:40px;height:5px;border-radius:3px;background:var(--touch-header-color);margin:0 auto;display:block}#pwa-install-element .install-dialog.mobile .dialog-body .body-header{display:grid;grid-template-columns:max-content 1fr max-content;grid-gap:15px;padding:18px 20px;padding-top:0;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .install{text-transform:capitalize;height:40px;padding:0 23px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about{grid-template-rows:auto auto;grid-gap:6px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .name{padding:0;line-height:20px;font-size:16px}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .about .hostname{font-size:14px;font-weight:400;opacity:.7;line-height:14px;overflow-x:hidden;text-overflow:ellipsis;word-break:break-all;white-space:nowrap;padding:0}#pwa-install-element .install-dialog.mobile .dialog-body .body-header .icon .icon-image{margin:0;width:45px;height:45px}#pwa-install-element .install-dialog.mobile .dialog-body .description{padding:15px 20px 0;margin:0;margin-bottom:15px;-webkit-line-clamp:6;max-height:150px}#pwa-install-element .install-dialog.mobile .dialog-body pwa-gallery{max-height:100%;padding-bottom:15px;opacity:1}#pwa-install-element .install-dialog.mobile .material-button{border-radius:20px}#pwa-install-element .install-dialog.mobile.available{--translateY:translateY(calc(100vh - 85px));opacity:1;top:0;visibility:visible;transform:var(--translateY)}#pwa-install-element .material-button{--text-color-primary:#fff;--text-color-secondary:#374fc6;--background-color-primary:#374fc6;--background-color-ripple:#fff;position:relative;display:inline-block;box-sizing:border-box;border:none;border-radius:6px;padding:0 16px;min-width:64px;height:36px;vertical-align:middle;text-align:center;text-overflow:ellipsis;text-transform:uppercase;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);font-family:Roboto,"Segoe UI",BlinkMacSystemFont,system-ui,-apple-system;font-size:14px;font-weight:500;line-height:37px;overflow:hidden;outline:0;cursor:pointer;transition:box-shadow .2s}#pwa-install-element .material-button.primary{color:var(--text-color-primary);background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary{background-color:rgba(0,0,0,0);color:var(--text-color-secondary);box-shadow:none}#pwa-install-element .material-button.secondary::after,#pwa-install-element .material-button.secondary::before{background-color:var(--background-color-primary)}#pwa-install-element .material-button.secondary:active,#pwa-install-element .material-button.secondary:hover{box-shadow:none}#pwa-install-element .material-button.secondary.close{height:26px;min-width:26px;line-height:0;margin-right:0;margin-left:auto;padding:0;border-radius:50%}#pwa-install-element .material-button.secondary.close svg{width:16px;fill:var(--text-color-secondary)}#pwa-install-element .material-button.secondary.close::after{width:25px;height:25px;border-radius:50%}#pwa-install-element .material-button.secondary.close::before{border-radius:50%}#pwa-install-element .material-button::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background-color:var(--background-color-ripple);opacity:0;transition:opacity .2s}#pwa-install-element .material-button::after{content:"";position:absolute;left:50%;top:50%;border-radius:50%;padding:50%;width:32px;height:32px;background-color:var(--background-color-ripple);opacity:0;transform:translate(-50%,-50%) scale(1);transition:opacity 1s,transform .5s}#pwa-install-element .material-button:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}#pwa-install-element .material-button:hover::before{opacity:.08}#pwa-install-element .material-button:hover:focus::before{opacity:.3}#pwa-install-element .material-button:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}#pwa-install-element .material-button:active::after{opacity:.32;transform:translate(-50%,-50%) scale(0);transition:transform 0s}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog{--text-color-normal:#fff;--background-color:#1e1e1e;--border-bottom-color:#404140;--scrollbar-background-color:#424242}#pwa-install-element .install-dialog.mobile{--touch-header-color:#3f403f}#pwa-install-element .install-dialog .material-button{--text-color-primary:#1B222C;--text-color-secondary:#a7c7fa;--background-color-primary:#a7c7fa}}@media(max-width:767px)and (min-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:inline-block}#pwa-install-element .install-dialog.chrome{display:none}}@media(min-width:768px),(max-height:495px){#pwa-install-element .install-dialog.chrome.mobile{display:none}#pwa-install-element .install-dialog.chrome{display:inline-block}}@media(max-height:420px){#pwa-install-element .install-dialog.chrome .dialog-body .description{-webkit-line-clamp:3;max-height:70px}}@media(hover:none)and (pointer:coarse){#pwa-install-element .install-dialog.chrome .dialog-body .description::-webkit-scrollbar{display:none}}`,Ft=E`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.8);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);--icon-how-to-color:#527AFB;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont,Roboto,"Segoe UI";max-width:380px;width:auto;margin:0 auto;right:0;left:0;font-size:15px;color:var(--text-color-normal);bottom:0;transition:transform .4s cubic-bezier(.33,1,.66,1),opacity .5s cubic-bezier(1,0,1,-2),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:0;visibility:visible;transform:translateY(100%);will-change:opacity,transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px 1fr;grid-template-rows:1fr auto;grid-template-areas:"icon description" "welcome welcome" "how-to how-to" "gallery gallery" "button button";border-radius:10px;border-bottom:1px solid transparent;background-color:var(--background-color);filter:drop-shadow(0 5px 15px rgba(0, 0, 0, .5));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}#pwa-install-element .install-dialog.apple.dialog-body .icon{display:flex;align-items:center;grid-area:icon;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.dialog-body .icon .icon-image{width:64px;height:64px;margin:0 auto;border-radius:6px}#pwa-install-element .install-dialog.apple.dialog-body .close{height:26px;min-width:26px;line-height:0;margin-right:7px;margin-top:7px;margin-left:auto;padding:0;border-radius:50%;opacity:.5;outline:0;color:var(--text-color-normal);border:none;background-color:rgba(0,0,0,0);cursor:pointer;transition:opacity .2s ease-in-out,background-color .2s ease-in-out;grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .close:hover{opacity:1;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple.dialog-body .about{display:grid;grid-template-rows:35px 60px;border-bottom:1px solid var(--border-bottom-color);grid-area:description}#pwa-install-element .install-dialog.apple.dialog-body .about .description,#pwa-install-element .install-dialog.apple.dialog-body .about .name{padding-right:15px;overflow:hidden}#pwa-install-element .install-dialog.apple.dialog-body .about .name{font-weight:600;padding-top:10px;padding-right:10px;line-height:22px;align-items:flex-start;display:flex}#pwa-install-element .install-dialog.apple.dialog-body .about .description{font-size:12px;line-height:15px;margin-bottom:15px;overflow-y:auto;color:var(--text-color-description)}#pwa-install-element .install-dialog.apple.dialog-body .welcome-to-install{font-size:15px;grid-area:welcome;text-align:left;font-weight:400;padding:15px;width:auto;border-bottom:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple .action-buttons{grid-area:button;grid-column-start:1;grid-column-end:3;padding:15px}#pwa-install-element .install-dialog.apple .dialog-button{display:grid;height:50px;width:100%;line-height:50px;border-radius:8px;color:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button{border:none;outline:0;font-family:system-ui,-apple-system,HelveticaNeue,BlinkMacSystemFont;cursor:pointer;-webkit-user-select:none;user-select:none;font-weight:400;font-size:17px;padding:0;margin:0;background-color:var(--background-color-button)}#pwa-install-element .install-dialog.apple .dialog-button.button.install{padding:0 15px;text-align:left}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text{opacity:0;display:flex;align-items:center;justify-content:space-between;transition:opacity .4s ease-in-out .1s;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text>svg{flex-shrink:0;width:20px}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.show{opacity:1;visibility:visible;width:auto;height:auto}#pwa-install-element .install-dialog.apple .dialog-button.button.install .button-text.hide{opacity:0;position:absolute;width:0;height:0;visibility:hidden}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery{display:flex;align-items:center;min-width:50px;width:auto;margin-right:15px}#pwa-install-element .install-dialog.apple .dialog-button.button.gallery #pwa-gallery{margin:0 auto;width:23px;fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .dialog-button.button:active{background-color:var(--background-color-button-active)}#pwa-install-element .install-dialog.apple .how-to-body{opacity:0;max-height:0;overflow:hidden;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;grid-area:how-to}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description{display:grid;-webkit-user-select:none;user-select:none;grid-auto-columns:1fr;grid-template-rows:1fr 1fr 1fr;gap:10px;padding:15px;padding-bottom:0}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step{display:inline-flex;flex-direction:row;gap:15px;align-items:center;font-size:14px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap{position:relative;display:inline-flex;flex-shrink:0;color:var(--icon-how-to-color);width:50px;height:50px;align-items:center;border-radius:6px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin:0 auto}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.9)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{transform:scale(.8);fill:var(--text-color-normal)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-safari{transform:scale(.92)}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap .step-count{position:absolute;line-height:12px;top:3px;left:4px}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .step-text{font-weight:600;text-align:left}#pwa-install-element .install-dialog.apple pwa-gallery{grid-column:1/3;max-height:0;opacity:0;transition:opacity ease-in-out .5s,max-height .5s ease-in-out;overflow:hidden}#pwa-install-element .install-dialog.apple pwa-gallery+.action-buttons{display:flex}#pwa-install-element .install-dialog.apple.available{opacity:1;pointer-events:unset;transform:translateY(0);transition:transform .5s cubic-bezier(.33,1,.66,1),border .35s ease-in-out}#pwa-install-element .install-dialog.apple.gallery pwa-gallery{transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out;max-height:70vh;opacity:1}#pwa-install-element .install-dialog.apple.how-to .dialog-body{border-bottom:1px solid #e0e0e0}#pwa-install-element .install-dialog.apple.how-to .how-to-body{opacity:1;max-height:400px;overflow-y:auto;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}#pwa-install-element .install-dialog.apple.desktop{--text-color-normal:rgba(0, 0, 0, 0.85);--text-color-description:rgba(0, 0, 0, 0.85);--icon-how-to-color:rgba(0, 0, 0, 0.50);--background-color:rgb(246 246 246 / 85%);--background-color-button:#c6c1c6;--background-color-button-active:linear-gradient(0deg, rgba(64,121,250,1) 0%, rgba(84,144,251,1) 100%);--border-bottom-color:rgb(185 185 185);grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"icon" "description" "welcome" "how-to" "gallery" "button";gap:0;column-gap:0;padding:16px;max-width:260px;background:var(--background-color);border:1px solid var(--border-bottom-color)}#pwa-install-element .install-dialog.apple.desktop .icon{height:64px;padding-bottom:16px}#pwa-install-element .install-dialog.apple.desktop .icon .icon-image{border-radius:10px;width:52px;height:52px;filter:drop-shadow(0 1px 1px rgba(0, 0, 0, .15))}#pwa-install-element .install-dialog.apple.desktop .close{grid-area:icon;background:var(--background-color-button);opacity:1;height:20px;min-width:20px;margin-right:-5px;margin-top:-5px}#pwa-install-element .install-dialog.apple.desktop .close svg{width:14px}#pwa-install-element .install-dialog.apple.desktop .about{display:flex;flex-direction:column;align-items:center}#pwa-install-element .install-dialog.apple.desktop .about .name{font-size:13px;line-height:16px;font-weight:700;padding:0}#pwa-install-element .install-dialog.apple.desktop .about .description{padding:16px 0;margin:0;padding-top:10px;border-bottom:1px solid var(--border-bottom-color);min-width:100%}#pwa-install-element .install-dialog.apple.desktop .about .description,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{text-align:center;font-size:11px;line-height:14px}#pwa-install-element .install-dialog.apple.desktop .about,#pwa-install-element .install-dialog.apple.desktop .icon,#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{border:none}#pwa-install-element .install-dialog.apple.desktop .welcome-to-install{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons{padding:0;padding-top:16px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button{font-size:13px;font-weight:400;padding:6px 8px;border-radius:6px;height:auto;line-height:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install{color:#fff;background:var(--background-color-button-active);transition:background .3s ease-in-out .1s,color .3s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.install svg{transform:none;width:18px}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery{width:30px;min-width:30px;margin-right:10px;background:var(--background-color-button)}#pwa-install-element .install-dialog.apple.desktop .action-buttons .dialog-button.button.gallery #pwa-gallery{width:14px;transition:transform .4s ease-in-out}#pwa-install-element .install-dialog.apple.desktop .close:active,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.desktop .close:active .button-text,#pwa-install-element .install-dialog.apple.desktop .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description{padding:0;padding-top:16px;grid-template-rows:1fr 1fr}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step{font-size:12px;gap:16px}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap{width:32px;height:32px;color:var(--icon-how-to-color)}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{width:16px;margin-bottom:2px;transform:none}#pwa-install-element .install-dialog.apple.desktop .how-to-body .how-to-description .description-step .svg-wrap #pwa-add{width:18px;transform:none}#pwa-install-element .install-dialog.apple.desktop.gallery #pwa-gallery{transform:rotate(180deg)}#pwa-install-element .install-dialog.apple.desktop.how-to .action-buttons .dialog-button.button.install{color:var(--text-color-normal);background:var(--background-color-button)}@media(min-width:667px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:28px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;max-height:calc(95vh - 28px)}}@media(min-width:667px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:max(28px,env(safe-area-inset-right,28px));left:auto}}@media(max-width:666px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px;max-height:calc(85vh - 20px)}#pwa-install-element .install-dialog.apple.dialog-body{filter:drop-shadow(rgba(0, 0, 0, .5) 0 0 15px)}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;filter:drop-shadow(rgba(0, 0, 0, .5) 0 -5px 10px);border-bottom-left-radius:0;border-bottom-right-radius:0}#pwa-install-element .install-dialog.apple.dialog-body .action-buttons{padding-bottom:max(15px,env(safe-area-inset-bottom))}#pwa-install-element .install-dialog.apple.dialog-body.available{bottom:0;max-height:85vh}}@media(max-height:548px){#pwa-install-element .install-dialog.apple.dialog-body.available{overflow-y:auto;max-height:calc(90vh - 28px - env(safe-area-inset-bottom,0px))}}@media(max-height:600px){#pwa-install-element .install-dialog.apple pwa-gallery{overflow-y:auto}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple.dialog-body{--text-color-normal:#fff;--text-color-description:#9E9AA1;--background-color:rgb(25 25 25 / 90%);--background-color-button:#353535;--background-color-button-active:#454545;--border-bottom-color:#353535}#pwa-install-element .install-dialog.apple.dialog-body .close:active,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active{filter:brightness(105%)}#pwa-install-element .install-dialog.apple.dialog-body .close:active .button-text,#pwa-install-element .install-dialog.apple.dialog-body .dialog-button.button:active .button-text{filter:brightness(90%)}#pwa-install-element .install-dialog.apple.dialog-body.desktop{--text-color-description:var(--text-color-normal);--icon-how-to-color:#bcb8b6;--background-color:rgb(45 45 45 / 90%);--border-bottom-color:#5b5b5b;--background-color-button:#6d6765;--background-color-button-active:linear-gradient(0deg, rgba(59,108,200,1) 0%, rgba(66,123,250,1) 100%);outline:1px solid #1c1c1c;color-scheme:dark}}`,Gt=1;class Jt{constructor(e){}get _$AU(){return this._$AM._$AU}_$AT(e,t,a){this.t=e,this._$AM=t,this.i=a}_$AS(e,t){return this.update(e,t)}update(e,t){return this.render(...t)}}const Kt=(e=>(...t)=>({_$litDirective$:e,values:t}))(class extends Jt{constructor(e){if(super(e),e.type!==Gt||"class"!==e.name||e.strings?.length>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(e){return" "+Object.keys(e).filter((t=>e[t])).join(" ")+" "}update(e,[t]){if(void 0===this.st){this.st=new Set,void 0!==e.strings&&(this.nt=new Set(e.strings.join(" ").split(/\s/).filter((e=>""!==e))));for(const e in t)t[e]&&!this.nt?.has(e)&&this.st.add(e);return this.render(t)}const a=e.element.classList;for(const e of this.st)e in t||(a.remove(e),this.st.delete(e));for(const e in t){const i=!!t[e];i===this.st.has(e)||this.nt?.has(e)||(i?(a.add(e),this.st.add(e)):(a.remove(e),this.st.delete(e)))}return be}}),Qt=(e,t,a,i,o,s,l,n,r,d,c,p,h)=>{const b=()=>({available:r,gallery:h}),g=!o&&n.screenshots&&n.screenshots.length;return he`
icon
${s?"":he``}
${location.hostname}
${t?he`
${t}
`:""} ${i?"":he`
${a||`${Re("This site has app functionality.")} ${Re("Install it on your device for extensive experience and easy access.")}`}
`} ${g?he``:""}
${g?he``:""}
${g?he``:""}
`},Xt=(e,t,a,i,o,s,l,n,r,d,c,p,h,b,g)=>{const u=!o&&n.screenshots&&n.screenshots.length;return he``};var ea=function(e,t,a,i){var o,s=arguments.length,l=s<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,a):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,a,i);else for(var n=e.length-1;n>=0;n--)(o=e[n])&&(l=(s<3?o(l):s>3?o(t,a,l):o(t,a))||l);return s>3&&l&&Object.defineProperty(t,a,l),l},ta=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let aa=class extends Pe{constructor(){super(...arguments),this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.disableScreenshots=!1,this.disableScreenshotsApple=!1,this.disableScreenshotsChrome=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.disableClose=!1,this.externalPromptEvent=null,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isAppleDesktopPlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._manifest=new Rt,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.defferedPromptEvent&&(this.hideDialog(),window.defferedPromptEvent.prompt(),window.defferedPromptEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,Nt.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{Nt.eventInstalledFail(this)})),window.defferedPromptEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform||this.isAppleDesktopPlatform?(this._howToRequested=!0,this.requestUpdate()):this._install.handleEvent()},this._hideDialog={handleEvent:()=>{this.isDialogHidden=!0,window.sessionStorage.setItem("pwa-hide-install","true"),this.requestUpdate()},passive:!0},this._hideDialogUser=()=>{Nt.eventUserChoiceResult(this,"dismissed"),this.userChoiceResult="dismissed",this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(e=!1)=>{this.isDialogHidden=!1,e&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Nt.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate(),this._howToRequested&&Nt.eventInstallHowTo(this)},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this._galleryRequested&&Nt.eventGallery(this),this.requestUpdate()},passive:!0},this._init=async()=>{if(window.defferedPromptEvent=null,this._checkInstalled(),!this.disableChrome){const e=e=>{window.defferedPromptEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Nt.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Nt.eventInstalledSuccess(this)),this.requestUpdate()};null!=this.externalPromptEvent?setTimeout((()=>e(this.externalPromptEvent)),300):window.addEventListener("beforeinstallprompt",e)}window.addEventListener("appinstalled",(e=>{window.defferedPromptEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Nt.eventInstalledSuccess(this)}));try{const e=await fetch(this.manifestUrl),t=await e.json();if(!e.ok||!t||!Object.keys(t))throw Error("Manifest not found");Nt.normalizeManifestAssetUrls(t,this.manifestUrl),this.icon=this.icon||t.icons?.length?t.icons[0].src:"",this.name=this.name||t.short_name||t.name||"",this.description=this.description||t.description||"",this._manifest=t}catch(e){this.icon=this.icon||this._manifest.icons?.[0].src||"",this.name=this.name||this._manifest.short_name||"",this.description=this.description||this._manifest.description||""}},this._requestUpdate=()=>{this.requestUpdate()}}static get styles(){return[Yt,Ft]}async _checkInstalled(){this.isUnderStandaloneMode=Nt.isStandalone(),this.isRelatedAppsInstalled=await Nt.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Nt.isAppleMobile(),this.isAppleDesktopPlatform=Nt.isAppleDesktop(),this.isAppleMobilePlatform||this.isAppleDesktopPlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Nt.eventInstallAvailable(this)}),1e3)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{"nb"===e.slice(0,2)&&(e="no");try{Pt.get(e)?zt(e):zt(e.slice(0,2))}catch{}})(navigator.language),this._init(),Ot.finalized,Vt.finalized,super.connectedCallback()}willUpdate(e){this.externalPromptEvent&&e.has("externalPromptEvent")&&"object"==typeof this.externalPromptEvent&&this._init()}render(){return this.isAppleMobilePlatform||this.isAppleDesktopPlatform?he`${Xt(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsApple,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this.isAppleDesktopPlatform,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:he`${Qt(this.name,this.description,this.installDescription,this.disableDescription,this.disableScreenshots||this.disableScreenshotsChrome,this.disableClose,this.icon,this._manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};ea([nt({attribute:"manifest-url"}),ta("design:type",Object)],aa.prototype,"manifestUrl",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"icon",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"name",void 0),ea([nt(),ta("design:type",Object)],aa.prototype,"description",void 0),ea([nt({attribute:"install-description"}),ta("design:type",Object)],aa.prototype,"installDescription",void 0),ea([nt({attribute:"disable-install-description",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableDescription",void 0),ea([nt({attribute:"disable-screenshots",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshots",void 0),ea([nt({attribute:"disable-screenshots-apple",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshotsApple",void 0),ea([nt({attribute:"disable-screenshots-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableScreenshotsChrome",void 0),ea([nt({attribute:"manual-apple",type:Boolean}),ta("design:type",Object)],aa.prototype,"manualApple",void 0),ea([nt({attribute:"manual-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"manualChrome",void 0),ea([nt({attribute:"disable-chrome",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableChrome",void 0),ea([nt({attribute:"disable-close",type:Boolean}),ta("design:type",Object)],aa.prototype,"disableClose",void 0),ea([function(e){return nt({...e,state:!0,attribute:!1})}(),ta("design:type",Object)],aa.prototype,"externalPromptEvent",void 0),aa=ea([(e,t)=>(e.addInitializer(Le),e),ot("pwa-install")],aa),PWAInstallComponent=t})(); //# sourceMappingURL=pwa-install.bundle.js.map \ No newline at end of file diff --git a/docs/service-worker.js b/docs/service-worker.js index e1bde50..2a8bf1d 100644 --- a/docs/service-worker.js +++ b/docs/service-worker.js @@ -1 +1 @@ -var cacheName="PWAinstallDemo-25.7.2024/16:23:51",filesToCache=["/pwa-install/","manifest.json"];function sendMessage(e,n){return new Promise((function(t,s){var a=new MessageChannel;e.postMessage(n,[a.port2])}))}function sendMessageToAll(e,n){clients.matchAll().then((t=>{t.forEach((n=>{sendMessage(n,e)})),n&&"function"==typeof n&&n()}))}self.addEventListener("install",(function(e){e.waitUntil(caches.open(cacheName).then((function(e){return e.addAll(filesToCache)}))),self.skipWaiting()})),self.addEventListener("activate",(function(e){return e.waitUntil(caches.keys().then((function(e){return Promise.all(e.map((function(e){if(e!==cacheName)return sendMessageToAll("NEW_VERSION"),caches.delete(e)})))}))),self.clients.claim()})),self.addEventListener("fetch",(function(e){e.respondWith(caches.match(e.request,{ignoreSearch:!0}).then((function(n){return n||fetch(e.request)})))})),self.addEventListener("message",(e=>{e&&e.data&&e.data.message})); \ No newline at end of file +var cacheName="PWAinstallDemo-9.8.2024/13:51:13",filesToCache=["/pwa-install/","manifest.json"];function sendMessage(e,n){return new Promise((function(t,s){var a=new MessageChannel;e.postMessage(n,[a.port2])}))}function sendMessageToAll(e,n){clients.matchAll().then((t=>{t.forEach((n=>{sendMessage(n,e)})),n&&"function"==typeof n&&n()}))}self.addEventListener("install",(function(e){e.waitUntil(caches.open(cacheName).then((function(e){return e.addAll(filesToCache)}))),self.skipWaiting()})),self.addEventListener("activate",(function(e){return e.waitUntil(caches.keys().then((function(e){return Promise.all(e.map((function(e){if(e!==cacheName)return sendMessageToAll("NEW_VERSION"),caches.delete(e)})))}))),self.clients.claim()})),self.addEventListener("fetch",(function(e){e.respondWith(caches.match(e.request,{ignoreSearch:!0}).then((function(n){return n||fetch(e.request)})))})),self.addEventListener("message",(e=>{e&&e.data&&e.data.message})); \ No newline at end of file diff --git a/package.json b/package.json index b57e76f..91a5a5f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@khmyznikov/pwa-install", - "version": "0.4.3", + "version": "0.4.4", "description": "PWA install dialog provide more convenience user experience and fix lack of native dialogs in some browsers.", "repository": { "type": "git", @@ -47,7 +47,7 @@ "license": "MIT", "devDependencies": { "@custom-elements-manifest/analyzer": "^0.10.3", - "@lit/localize": "^0.12.1", + "@lit/localize": "^0.12.2", "@lit/localize-tools": "^0.7.2", "@types/node": "^20.14.10", "autoprefixer": "^10.4.19", @@ -66,7 +66,7 @@ "sass-loader": "^14.2.1", "terser-webpack-plugin": "^5.3.10", "ts-loader": "9.5.1", - "typescript": "^5.5.3", + "typescript": "^5.5.4", "typescript-lit-html-plugin": "^0.9.0", "webpack": "^5.93.0", "webpack-cli": "^5.1.4", @@ -74,7 +74,7 @@ "webpack-merge": "^6.0.1" }, "peerDependencies": { - "lit": "^3.1.4", + "lit": "^3.2.0", "@lit/react": "^1.0.5", "@types/web-app-manifest": "^1.0.8", "@types/dom-chromium-installation-events": "^101.0.4" diff --git a/src/localization/index.ts b/src/localization/index.ts index f66d907..9635cee 100644 --- a/src/localization/index.ts +++ b/src/localization/index.ts @@ -57,7 +57,7 @@ export const { getLocale, setLocale } = configureLocalization({ export const changeLocale = (lang: string) => { // Norwegian Bokmål is same as Norwegian - switch (lang) { + switch (lang.slice(0, 2)) { case 'nb': lang = 'no'; break; diff --git a/src/localization/locales/zh-CN.ts b/src/localization/locales/zh-CN.ts index 35583fb..1aced57 100644 --- a/src/localization/locales/zh-CN.ts +++ b/src/localization/locales/zh-CN.ts @@ -12,14 +12,14 @@ 's182ab2d6c997515f': `将其添加到主屏幕,以享受更全面的体验并便于访问。`, 's1b9047d53d9f9d22': `2) 点击列表上的分享按钮`, 's37a9e8aec5713460': `详细资讯`, -'s5c6aad7a7e4a1437': `3) 点击加入主画面`, +'s5c6aad7a7e4a1437': `3) 点击添加到主屏幕`, 's6196153c4b0c1ea0': `安装`, 's922329d6f6213590': `添加到Dock`, 'sa5ef80b4bb9b39f8': `简短资讯`, 'sa7551383d1897fcc': `2) 按下添加到Dock`, 'sba52286c21552a4e': `在您的设备上安装,以享有更全面的体验和便捷的访问。`, 'sc79fd7641eb9a975': `隐藏安装流程`, -'scdaf4bbff76674c8': `将App加入主画面`, +'scdaf4bbff76674c8': `将App添加到主屏幕`, 'sdfe23506a3b0cdc8': `1) 在Safari上浏览此网页`, 'se740f75b95a51807': `将其添加到您的Dock,以享受更全面的体验并便于访问。`, 'sfea652f6580ff086': `此网站具备app的功能性。`,