@khmyznikov/pwa-install
Advanced tools
Comparing version 0.1.3 to 0.1.4
@@ -1,2 +0,2 @@ | ||
import*as e from"lit";import*as t from"@lit/localize";import*as l from"lit/decorators.js";import*as i from"lit/directives/class-map.js";var a={d:(e,t)=>{for(var l in t)a.o(t,l)&&!a.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:t[l]})},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={};a.d(o,{k:()=>C});var s={};a.r(s),a.d(s,{templates:()=>c});const n=(e=>{var t={};return a.d(t,e),t})({LitElement:()=>e.LitElement,css:()=>e.css,html:()=>e.html});const r=(e=>{var t={};return a.d(t,e),t})({configureLocalization:()=>t.configureLocalization,localized:()=>t.localized,msg:()=>t.msg});const d=(e=>{var t={};return a.d(t,e),t})({customElement:()=>l.customElement,property:()=>l.property}),p=["ru"],c={s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s8d0173763d91830c:"Этот веб-сайт имеет функционал приложения. Добавьте его на экран «Домой», чтобы получить дополнительные возможности и удобство использования.",sa5ef80b4bb9b39f8:"Свернуть",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdca23702207fba73:"Этот веб-сайт имеет функционал приложения. Установите его, чтобы получить дополнительные возможности и удобство использования.",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере"},h=new Map([["ru",s]]),{getLocale:g,setLocale:m}=(0,r.configureLocalization)({sourceLocale:"en",targetLocales:p,loadLocale:async e=>h.get(e)});class b{constructor(){this.icons=[{src:""}],this.screenshots=null,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const u=n.css`.gallery{position:relative;--scrollbar-background-color:#fff;--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:45vh;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:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:#646464}.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;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 7px 1px;background-repeat:no-repeat;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 7px 1px;cursor:pointer}.gallery .btn:hover svg{opacity:.7}.gallery .btn svg{width:20px;height:20px;opacity:.5}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}@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}}`,w=(e,t,l)=>n.html`${e?n.html`<div id="paginated_gallery" class="gallery"><div class="gallery_scroller"><div class="scroller_wrap">${e.map((e=>n.html`<img draggable="false" src='${e.src}'>`))}</div></div><span class="btn prev" @click="${l}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M39.3756,48.0022l30.47-25.39a6.0035,6.0035,0,0,0-7.6878-9.223L26.1563,43.3906a6.0092,6.0092,0,0,0,0,9.2231L62.1578,82.615a6.0035,6.0035,0,0,0,7.6878-9.2231Z" fill="%23999" fill-rule="evenodd"/></svg> </span><span class="btn next" @click="${t}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M69.8437,43.3876,33.8422,13.3863a6.0035,6.0035,0,0,0-7.6878,9.223l30.47,25.39-30.47,25.39a6.0035,6.0035,0,0,0,7.6878,9.2231L69.8437,52.6106a6.0091,6.0091,0,0,0,0-9.223Z" fill="%23000" fill-rule="evenodd"/></svg></span></div>`:""}`;var v=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},y=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let x=class extends n.LitElement{constructor(){super(...arguments),this.screenshots=[],this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const l=Array.from(t.querySelectorAll("img"));if(!l)return;const i=l.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 u}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return n.html`${w(this.screenshots,this.scrollToNextPage,this.scrollToPrevPage)}`}};v([(0,d.property)(),y("design:type",Object)],x.prototype,"screenshots",void 0),x=v([(0,d.customElement)("pwa-gallery")],x);const f=x,k=(e,t,l,i)=>n.html`<div class="touch-header" id="touch-header"></div><div class="body-header"><div class="icon"><img src="${l}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${e}</label></div><div class="hostname">${location.hostname}</div></div><button class="material-button primary install" @click='${i}'>${(0,r.msg)("Install")}</button></div>${t?n.html`<div class="description">${t}</div>`:""}`;var E=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},_=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let $=class extends n.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,l)=>{if(!e||!t||!l)return null;let i=0;const a=t.clientHeight+l.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),i=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!(o(t)>=window.innerHeight-25))return window.innerHeight-o(t)>e.clientHeight/2.5?void d(t,window.innerHeight-e.clientHeight):void d(t,window.innerHeight-a-35);d(t,window.innerHeight+50,!0)},r=t=>{const l=o(t);l<=window.innerHeight-e.clientHeight+i||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${l-i}px)`))},d=(l,i,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!i&&o(l)>=window.innerHeight-a?e.style.setProperty("--translateY",`translateY(calc(100vh - ${a}px))`):e.style.setProperty("--translateY",`translateY(${(i||o(l))+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-a-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 n.html`${k(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};E([(0,d.property)(),_("design:type",Object)],$.prototype,"props",void 0),E([(0,d.property)(),_("design:type",Object)],$.prototype,"install",void 0),E([(0,d.property)(),_("design:type",Object)],$.prototype,"hideDialog",void 0),$=E([(0,d.customElement)("pwa-bottom-sheet")],$);const R=$,A=(e,t,l)=>{const i=new CustomEvent(t,{detail:{message:l}});e.dispatchEvent(i)};class S{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){return"getInstalledRelatedApps"in navigator&&await navigator.getInstalledRelatedApps().then((e=>e)),[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){A(e,"pwa-install-success-event","Application installation successfully processed (Chromium/Android only)")}static eventInstalledFail(e){A(e,"pwa-install-fail-event","Application installation failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){A(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){A(e,"pwa-install-available-event","Application installation available")}}const z=n.css`#pwa-install-element{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:5}#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 .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}}`,L=n.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.75);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);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:-100px;overflow:hidden;pointer-events:none;will-change:opacity,visibility,bottom,top}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px auto 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, .2));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#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 .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 .about .close{height:26px;min-width:26px;line-height:0;margin-right:-3px;margin-top:-3px;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}#pwa-install-element .install-dialog.apple.dialog-body .about .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .about .close:active,#pwa-install-element .install-dialog.apple.dialog-body .about .close:hover{opacity:1;background-color:var(--background-color-button)}#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;gap:15px;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;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;gap:15px;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;transform:scale(.8)}#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}#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;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;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-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{fill:#527afb}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.75)}#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;bottom:20px;visibility:visible;pointer-events:unset;transition:bottom .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out,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;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}@media(min-width:768px){#pwa-install-element .install-dialog.apple{top:-100px;bottom:unset;right:150px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}}@media(min-width:768px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:28px;left:auto}}@media(max-width:767px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;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}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple{--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}}`;const I=(e=>{var t={};return a.d(t,e),t})({classMap:()=>i.classMap}),D=(e,t,l,i,a,o,s,d,p,c,h)=>{const g=()=>({available:s,gallery:h});return n.html`<div id="pwa-install-element"><div class="install-dialog chrome ${(0,I.classMap)(g())}"><div class="dialog-body"><div class="icon"><img src="${a}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${e}</label> <button class="material-button secondary close" @click='${d}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="hostname">${location.hostname}</div></div>${t?n.html`<div class="description app-description">${t}</div>`:""} ${i?"":n.html`<hr><div class="description install-description">${l||(0,r.msg)("This site has app functionality. Install it on your device for extensive experience and easy access.")}</div>`} ${o.screenshots&&o.screenshots.length?n.html`<pwa-gallery .screenshots=${o.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${o.screenshots&&o.screenshots.length?n.html`<button class="material-button secondary" @click='${c}'>${h?(0,r.msg)("Less"):(0,r.msg)("More")}</button>`:""} <button class="material-button primary install" @click='${p}'>${(0,r.msg)("Install")}</button></div></div></div><div class="install-dialog chrome mobile ${(0,I.classMap)(g())}"><div class="dialog-body"><pwa-bottom-sheet .props=${{name:e,icon:a,description:t}} .install=${p} .hideDialog=${d}></pwa-bottom-sheet>${o.screenshots&&o.screenshots.length?n.html`<pwa-gallery .screenshots=${o.screenshots}></pwa-gallery>`:""}</div></div></div>`},P=(e,t,l,i,a,o,s,d,p,c,h,g)=>n.html`<aside id="pwa-install-element"><article class="install-dialog apple ${(0,I.classMap)({available:s,"how-to":c,gallery:g})} dialog-body"><div class="icon"><img src="${a}" alt="icon" class="icon-image"></div><div class="about"><div class="name">${e} <button type="button" class="close" @click='${d}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="description">${t||location.hostname}</div></div>${i?"":n.html`<div class="welcome-to-install">${l||(0,r.msg)("This site has app functionality. Add it to your Home Screen for extensive experience and easy access.")}</div>`}<div class="how-to-body"><div class="how-to-description"><div class="description-step"><div class="svg-wrap"><svg id="pwa-safari" viewBox="0 0 13.964 13.964" width="24" height="24"><path d="M6.982 0A6.99 6.99 0 000 6.982a6.99 6.99 0 006.982 6.982 6.99 6.99 0 006.982-6.982A6.99 6.99 0 006.982 0zm0 1.074a5.9 5.9 0 015.908 5.908 5.9 5.9 0 01-5.908 5.908 5.9 5.9 0 01-5.908-5.908 5.9 5.9 0 015.908-5.908zm3.76 2.148L5.6 5.624l-2.379 5.117 5.165-2.354zM6.963 6.288a.795.795 0 11-.001 1.59.795.795 0 010-1.59z" font-weight="400" font-family="sans-serif" overflow="visible"/></svg></div><div class="step-text">${(0,r.msg)("1) Open in Safari browser")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-share" width="25" height="32"><g><path d="m12.51122,20.7648c0.52277,0 0.99149,-0.43265 0.99149,-0.95542l0,-14.87204l-0.09015,-2.0731l1.11768,1.15371l2.27135,2.37952c0.18028,0.19833 0.43265,0.30647 0.68502,0.30647c0.50476,0 0.90134,-0.37857 0.90134,-0.88332c0,-0.27039 -0.10817,-0.46869 -0.28844,-0.64895l-4.86721,-4.74103c-0.25237,-0.25237 -0.46869,-0.32448 -0.72106,-0.32448c-0.25237,0 -0.46869,0.0721 -0.72106,0.32448l-4.88523,4.74103c-0.18028,0.18028 -0.28844,0.37857 -0.28844,0.64895c0,0.50476 0.37857,0.88332 0.90134,0.88332c0.23436,0 0.50476,-0.10814 0.68502,-0.30647l2.27135,-2.37952l1.11768,-1.17172l-0.0721,2.09112l0,14.87204c0,0.52277 0.45066,0.95542 0.99145,0.95542l-0.00002,0l-0.00001,-0.00001zm-8.13005,10.96022l16.22403,0c2.86626,0 4.30841,-1.42412 4.30841,-4.23627l0,-14.27715c0,-2.79415 -1.44215,-4.23627 -4.30841,-4.23627l-3.96589,0l0,2.00095l3.92985,0c1.47819,0 2.34345,0.79316 2.34345,2.34345l0,14.06085c0,1.5503 -0.86527,2.34347 -2.34345,2.34347l-16.15194,0c-1.49625,0 -2.32547,-0.79317 -2.32547,-2.34347l0,-14.06085c0,-1.55029 0.82923,-2.34345 2.32547,-2.34345l3.96589,0l0,-2.00095l-4.00196,0c-2.84821,0 -4.29035,1.4241 -4.29035,4.23627l0,14.27715c0,2.81217 1.44215,4.23627 4.29035,4.23627l0.00001,0l0.00001,0z"/></g></svg></div><div class="step-text">${(0,r.msg)("2) Press Share in Navigation bar")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-add" width="25" height="25"><g><path d="m23.40492,1.60784c-1.32504,-1.32504 -3.19052,-1.56912 -5.59644,-1.56912l-10.65243,0c-2.33622,0 -4.2017,0.24408 -5.5267,1.56912c-1.32504,1.34243 -1.56911,3.17306 -1.56911,5.50924l0,10.5827c0,2.40596 0.22665,4.254 1.55165,5.57902c1.34246,1.32501 3.19052,1.5691 5.59647,1.5691l10.60013,0c2.40592,0 4.2714,-0.24408 5.59644,-1.5691c1.325,-1.34245 1.55166,-3.17306 1.55166,-5.57902l0,-10.51293c0,-2.40596 -0.22666,-4.25401 -1.55166,-5.57901zm-0.38355,5.21289l0,11.24518c0,1.51681 -0.20924,2.94643 -1.02865,3.78327c-0.83683,0.83685 -2.30134,1.0635 -3.81815,1.0635l-11.33234,0c-1.51681,0 -2.96386,-0.22665 -3.80073,-1.0635c-0.83683,-0.83684 -1.04607,-2.26646 -1.04607,-3.78327l0,-11.19288c0,-1.5517 0.20924,-3.01617 1.02865,-3.85304c0.83687,-0.83683 2.31876,-1.04607 3.87042,-1.04607l11.28007,0c1.51681,0 2.98132,0.22666 3.81815,1.06353c0.81941,0.81941 1.02865,2.26645 1.02865,3.78327zm-10.53039,12.08205c0.64506,0 1.02861,-0.43586 1.02861,-1.13326l0,-4.34117l4.53294,0c0.66252,0 1.13326,-0.36613 1.13326,-0.99376c0,-0.64506 -0.43586,-1.02861 -1.13326,-1.02861l-4.53294,0l0,-4.53294c0,-0.6974 -0.38355,-1.13326 -1.02861,-1.13326c-0.62763,0 -0.99376,0.45332 -0.99376,1.13326l0,4.53294l-4.51552,0c-0.69737,0 -1.15069,0.38355 -1.15069,1.02861c0,0.62763 0.48817,0.99376 1.15069,0.99376l4.51552,0l0,4.34117c0,0.66252 0.36613,1.13326 0.99376,1.13326z"/></g></svg></div><div class="step-text">${(0,r.msg)("3) Press Add to Home Screen")}</div></div></div></div>${o.screenshots&&o.screenshots.length?n.html`<pwa-gallery .screenshots=${o.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${o.screenshots&&o.screenshots.length?n.html`<button class="dialog-button button gallery" @click=${h}><svg id="pwa-gallery" width="26" height="26" viewBox="0 0 23.538 18.022"><path d="M2.79 18.022h17.958c1.834 0 2.79-.969 2.79-2.778V2.791C23.538.969 22.582 0 20.748 0H2.791C.956 0 0 .956 0 2.79v12.454c0 1.835.956 2.778 2.79 2.778zM.879 2.83C.878 1.55 1.55.88 2.816.88h17.906c1.228 0 1.938.671 1.938 1.95v12.067L16.756 9.47c-.517-.414-.995-.685-1.615-.685-.607 0-1.085.22-1.576.672L8.927 13.59l-1.938-1.796c-.426-.387-.853-.607-1.382-.607-.504 0-.879.207-1.305.594L.878 14.986zm6.46 6.356a2.39 2.39 0 002.377-2.39c0-1.304-1.072-2.39-2.377-2.39a2.401 2.401 0 00-2.39 2.39 2.393 2.393 0 002.39 2.39z"/></svg></button>`:""} <button class="dialog-button button install" @click=${p}><span class="button-text ${c?"show":"hide"}">${(0,r.msg)("Hide Instruction")}</span> <span class="button-text ${c?"hide":"show"}"><span>${(0,r.msg)("Add to Home Screen")}</span> <svg width="25" height="25"><use href="#pwa-add"></use></svg></span></button></div></article></aside>`;var M=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},j=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let C=class extends n.LitElement{constructor(){super(...arguments),this.manifest=new b,this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.platforms="",this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.deferredEvent&&(this.hideDialog(),window.deferredEvent.prompt(),window.deferredEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,S.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{S.eventInstalledFail(this)})),window.deferredEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform?(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=()=>{S.eventUserChoiceResult(this,"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 S.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate()},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this.requestUpdate()},passive:!0},this._init=()=>{window.deferredEvent=null,this._checkInstalled(),this.disableChrome||window.addEventListener("beforeinstallprompt",(e=>{window.deferredEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,S.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,S.eventInstalledSuccess(this)),this.requestUpdate()})),window.addEventListener("appinstalled",(e=>{window.deferredEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),S.eventInstalledSuccess(this)})),fetch(this.manifestUrl).then((e=>{e.ok?e.json().then((e=>{this.icon=this.icon||e.icons[0].src,this.name=this.name||e.short_name||e.name,this.description=this.description||e.description,this.manifest=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)}))}}static get styles(){return[z,L]}async _checkInstalled(){this.isUnderStandaloneMode=S.isStandalone(),this.isRelatedAppsInstalled=await S.isRelatedAppsInstalled(),this.isAppleMobilePlatform=S.isAppleMobile(),this.isAppleMobilePlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),S.eventInstallAvailable(this)}),300)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{try{m(e.slice(0,2))}catch{}})(navigator.language),this._init(),f.finalized,R.finalized,super.connectedCallback()}render(){return this.isAppleMobilePlatform?n.html`${P(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:n.html`${D(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};M([(0,d.property)({attribute:"manifest-url"}),j("design:type",Object)],C.prototype,"manifestUrl",void 0),M([(0,d.property)(),j("design:type",Object)],C.prototype,"icon",void 0),M([(0,d.property)(),j("design:type",Object)],C.prototype,"name",void 0),M([(0,d.property)(),j("design:type",Object)],C.prototype,"description",void 0),M([(0,d.property)({attribute:"install-description"}),j("design:type",Object)],C.prototype,"installDescription",void 0),M([(0,d.property)({attribute:"disable-install-description",type:Boolean}),j("design:type",Object)],C.prototype,"disableDescription",void 0),M([(0,d.property)({attribute:"manual-apple",type:Boolean}),j("design:type",Object)],C.prototype,"manualApple",void 0),M([(0,d.property)({attribute:"manual-chrome",type:Boolean}),j("design:type",Object)],C.prototype,"manualChrome",void 0),M([(0,d.property)({attribute:"disable-chrome",type:Boolean}),j("design:type",Object)],C.prototype,"disableChrome",void 0),C=M([(0,r.localized)(),(0,d.customElement)("pwa-install")],C);var O=o.k;export{O as PWAInstallElement}; | ||
import*as e from"lit";import*as t from"@lit/localize";import*as l from"lit/decorators.js";import*as i from"lit/directives/class-map.js";var a={d:(e,t)=>{for(var l in t)a.o(t,l)&&!a.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:t[l]})},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={};a.d(o,{k:()=>C});var n={};a.r(n),a.d(n,{templates:()=>c});const s=(e=>{var t={};return a.d(t,e),t})({LitElement:()=>e.LitElement,css:()=>e.css,html:()=>e.html});const r=(e=>{var t={};return a.d(t,e),t})({configureLocalization:()=>t.configureLocalization,localized:()=>t.localized,msg:()=>t.msg});const d=(e=>{var t={};return a.d(t,e),t})({customElement:()=>l.customElement,property:()=>l.property}),p=["ru"],c={s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s8d0173763d91830c:"Этот веб-сайт имеет функционал приложения. Добавьте его на экран «Домой», чтобы получить дополнительные возможности и удобство использования.",sa5ef80b4bb9b39f8:"Свернуть",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdca23702207fba73:"Этот веб-сайт имеет функционал приложения. Установите его, чтобы получить дополнительные возможности и удобство использования.",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере"},h=new Map([["ru",n]]),{getLocale:g,setLocale:m}=(0,r.configureLocalization)({sourceLocale:"en",targetLocales:p,loadLocale:async e=>h.get(e)});class b{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const u=s.css`.gallery{position:relative;--scrollbar-background-color:#fff;--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:45vh;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:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:#646464}.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 7px 1px;background-repeat:no-repeat;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 7px 1px;cursor:pointer}.gallery .btn:hover svg{opacity:.7}.gallery .btn svg{width:20px;height:20px;opacity:.5}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}@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}}`,w=(e,t,l)=>s.html`${e?s.html`<div id="paginated_gallery" class="gallery"><div class="gallery_scroller"><div class="scroller_wrap">${e.map((e=>s.html`<img draggable="false" src='${e.src}'>`))}</div></div><span class="btn prev" @click="${l}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M39.3756,48.0022l30.47-25.39a6.0035,6.0035,0,0,0-7.6878-9.223L26.1563,43.3906a6.0092,6.0092,0,0,0,0,9.2231L62.1578,82.615a6.0035,6.0035,0,0,0,7.6878-9.2231Z" fill="%23999" fill-rule="evenodd"/></svg> </span><span class="btn next" @click="${t}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M69.8437,43.3876,33.8422,13.3863a6.0035,6.0035,0,0,0-7.6878,9.223l30.47,25.39-30.47,25.39a6.0035,6.0035,0,0,0,7.6878,9.2231L69.8437,52.6106a6.0091,6.0091,0,0,0,0-9.223Z" fill="%23000" fill-rule="evenodd"/></svg></span></div>`:""}`;var v=function(e,t,l,i){var a,o=arguments.length,n=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,l,i);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(n=(o<3?a(n):o>3?a(t,l,n):a(t,l))||n);return o>3&&n&&Object.defineProperty(t,l,n),n},y=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let x=class extends s.LitElement{constructor(){super(...arguments),this.screenshots=[],this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const l=Array.from(t.querySelectorAll("img"));if(!l)return;const i=l.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 u}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return s.html`${w(this.screenshots,this.scrollToNextPage,this.scrollToPrevPage)}`}};v([(0,d.property)(),y("design:type",Object)],x.prototype,"screenshots",void 0),x=v([(0,d.customElement)("pwa-gallery")],x);const f=x,k=(e,t,l,i)=>s.html`<div class="touch-header" id="touch-header"></div><div class="body-header"><div class="icon"><img src="${l}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${e}</label></div><div class="hostname">${location.hostname}</div></div><button class="material-button primary install" @click='${i}'>${(0,r.msg)("Install")}</button></div>${t?s.html`<div class="description">${t}</div>`:""}`;var E=function(e,t,l,i){var a,o=arguments.length,n=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,l,i);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(n=(o<3?a(n):o>3?a(t,l,n):a(t,l))||n);return o>3&&n&&Object.defineProperty(t,l,n),n},_=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let $=class extends s.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,l)=>{if(!e||!t||!l)return null;let i=0;const a=t.clientHeight+l.clientHeight,o=e=>e.clientY||(e.changedTouches&&e.changedTouches.length?e.changedTouches[0].clientY:0),n=e=>{window.addEventListener("mouseup",s),window.addEventListener("mousemove",r),window.addEventListener("touchend",s),window.addEventListener("touchmove",r),i=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},s=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!(o(t)>=window.innerHeight-25))return window.innerHeight-o(t)>e.clientHeight/2.5?void d(t,window.innerHeight-e.clientHeight):void d(t,window.innerHeight-a-35);d(t,window.innerHeight+50,!0)},r=t=>{const l=o(t);l<=window.innerHeight-e.clientHeight+i||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${l-i}px)`))},d=(l,i,d)=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",s),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!i&&o(l)>=window.innerHeight-a?e.style.setProperty("--translateY",`translateY(calc(100vh - ${a}px))`):e.style.setProperty("--translateY",`translateY(${(i||o(l))+35}px)`),e.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(t.removeEventListener("mousedown",n),t.removeEventListener("touchstart",n),setTimeout(this._callHide,250)))};return t.addEventListener("mousedown",n),t.addEventListener("touchstart",n,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-a-35),{touchElement:t,listener:n}},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`${k(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};E([(0,d.property)(),_("design:type",Object)],$.prototype,"props",void 0),E([(0,d.property)(),_("design:type",Object)],$.prototype,"install",void 0),E([(0,d.property)(),_("design:type",Object)],$.prototype,"hideDialog",void 0),$=E([(0,d.customElement)("pwa-bottom-sheet")],$);const R=$,A=(e,t,l)=>{const i=new CustomEvent(t,{detail:{message:l}});e.dispatchEvent(i)};class z{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){return"getInstalledRelatedApps"in navigator&&await navigator.getInstalledRelatedApps().then((e=>e)),[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){A(e,"pwa-install-success-event","Application installation successfully processed (Chromium/Android only)")}static eventInstalledFail(e){A(e,"pwa-install-fail-event","Application installation failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){A(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){A(e,"pwa-install-available-event","Application installation available")}}const S=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:5}#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 .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:-webkit-max-content 1fr -webkit-max-content;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}}`,L=s.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.75);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);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),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:1;visibility:visible;transform:translateY(100%);will-change:transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px auto 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, .2));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#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 .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 .about .close{height:26px;min-width:26px;line-height:0;margin-right:-3px;margin-top:-3px;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}#pwa-install-element .install-dialog.apple.dialog-body .about .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .about .close:active,#pwa-install-element .install-dialog.apple.dialog-body .about .close:hover{opacity:1;background-color:var(--background-color-button)}#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;gap:15px;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;gap:15px;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;transform:scale(.8)}#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}#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;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-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{fill:#527afb}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.75)}#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-duration:.5s}#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;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}@media(min-width:768px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:150px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto}}@media(min-width:768px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:28px;left:auto}}@media(max-width:767px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;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}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple{--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}}`;const I=(e=>{var t={};return a.d(t,e),t})({classMap:()=>i.classMap}),D=(e,t,l,i,a,o,n,d,p,c,h)=>{const g=()=>({available:n,gallery:h});return s.html`<div id="pwa-install-element"><div class="install-dialog chrome ${(0,I.classMap)(g())}"><div class="dialog-body"><div class="icon"><img src="${a}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${e}</label> <button class="material-button secondary close" @click='${d}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="hostname">${location.hostname}</div></div>${t?s.html`<div class="description app-description">${t}</div>`:""} ${i?"":s.html`<hr><div class="description install-description">${l||(0,r.msg)("This site has app functionality. Install it on your device for extensive experience and easy access.")}</div>`} ${o.screenshots&&o.screenshots.length?s.html`<pwa-gallery .screenshots=${o.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${o.screenshots&&o.screenshots.length?s.html`<button class="material-button secondary" @click='${c}'>${h?(0,r.msg)("Less"):(0,r.msg)("More")}</button>`:""} <button class="material-button primary install" @click='${p}'>${(0,r.msg)("Install")}</button></div></div></div><div class="install-dialog chrome mobile ${(0,I.classMap)(g())}"><div class="dialog-body"><pwa-bottom-sheet .props=${{name:e,icon:a,description:t}} .install=${p} .hideDialog=${d}></pwa-bottom-sheet>${o.screenshots&&o.screenshots.length?s.html`<pwa-gallery .screenshots=${o.screenshots}></pwa-gallery>`:""}</div></div></div>`},P=(e,t,l,i,a,o,n,d,p,c,h,g)=>s.html`<aside id="pwa-install-element"><article class="install-dialog apple ${(0,I.classMap)({available:n,"how-to":c,gallery:g})} dialog-body"><div class="icon"><img src="${a}" alt="icon" class="icon-image"></div><div class="about"><div class="name">${e} <button type="button" class="close" @click='${d}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="description">${t||location.hostname}</div></div>${i?"":s.html`<div class="welcome-to-install">${l||(0,r.msg)("This site has app functionality. Add it to your Home Screen for extensive experience and easy access.")}</div>`}<div class="how-to-body"><div class="how-to-description"><div class="description-step"><div class="svg-wrap"><svg id="pwa-safari" viewBox="0 0 13.964 13.964" width="24" height="24"><path d="M6.982 0A6.99 6.99 0 000 6.982a6.99 6.99 0 006.982 6.982 6.99 6.99 0 006.982-6.982A6.99 6.99 0 006.982 0zm0 1.074a5.9 5.9 0 015.908 5.908 5.9 5.9 0 01-5.908 5.908 5.9 5.9 0 01-5.908-5.908 5.9 5.9 0 015.908-5.908zm3.76 2.148L5.6 5.624l-2.379 5.117 5.165-2.354zM6.963 6.288a.795.795 0 11-.001 1.59.795.795 0 010-1.59z" font-weight="400" font-family="sans-serif" overflow="visible"/></svg></div><div class="step-text">${(0,r.msg)("1) Open in Safari browser")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-share" width="25" height="32"><g><path d="m12.51122,20.7648c0.52277,0 0.99149,-0.43265 0.99149,-0.95542l0,-14.87204l-0.09015,-2.0731l1.11768,1.15371l2.27135,2.37952c0.18028,0.19833 0.43265,0.30647 0.68502,0.30647c0.50476,0 0.90134,-0.37857 0.90134,-0.88332c0,-0.27039 -0.10817,-0.46869 -0.28844,-0.64895l-4.86721,-4.74103c-0.25237,-0.25237 -0.46869,-0.32448 -0.72106,-0.32448c-0.25237,0 -0.46869,0.0721 -0.72106,0.32448l-4.88523,4.74103c-0.18028,0.18028 -0.28844,0.37857 -0.28844,0.64895c0,0.50476 0.37857,0.88332 0.90134,0.88332c0.23436,0 0.50476,-0.10814 0.68502,-0.30647l2.27135,-2.37952l1.11768,-1.17172l-0.0721,2.09112l0,14.87204c0,0.52277 0.45066,0.95542 0.99145,0.95542l-0.00002,0l-0.00001,-0.00001zm-8.13005,10.96022l16.22403,0c2.86626,0 4.30841,-1.42412 4.30841,-4.23627l0,-14.27715c0,-2.79415 -1.44215,-4.23627 -4.30841,-4.23627l-3.96589,0l0,2.00095l3.92985,0c1.47819,0 2.34345,0.79316 2.34345,2.34345l0,14.06085c0,1.5503 -0.86527,2.34347 -2.34345,2.34347l-16.15194,0c-1.49625,0 -2.32547,-0.79317 -2.32547,-2.34347l0,-14.06085c0,-1.55029 0.82923,-2.34345 2.32547,-2.34345l3.96589,0l0,-2.00095l-4.00196,0c-2.84821,0 -4.29035,1.4241 -4.29035,4.23627l0,14.27715c0,2.81217 1.44215,4.23627 4.29035,4.23627l0.00001,0l0.00001,0z"/></g></svg></div><div class="step-text">${(0,r.msg)("2) Press Share in Navigation bar")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-add" width="25" height="25"><g><path d="m23.40492,1.60784c-1.32504,-1.32504 -3.19052,-1.56912 -5.59644,-1.56912l-10.65243,0c-2.33622,0 -4.2017,0.24408 -5.5267,1.56912c-1.32504,1.34243 -1.56911,3.17306 -1.56911,5.50924l0,10.5827c0,2.40596 0.22665,4.254 1.55165,5.57902c1.34246,1.32501 3.19052,1.5691 5.59647,1.5691l10.60013,0c2.40592,0 4.2714,-0.24408 5.59644,-1.5691c1.325,-1.34245 1.55166,-3.17306 1.55166,-5.57902l0,-10.51293c0,-2.40596 -0.22666,-4.25401 -1.55166,-5.57901zm-0.38355,5.21289l0,11.24518c0,1.51681 -0.20924,2.94643 -1.02865,3.78327c-0.83683,0.83685 -2.30134,1.0635 -3.81815,1.0635l-11.33234,0c-1.51681,0 -2.96386,-0.22665 -3.80073,-1.0635c-0.83683,-0.83684 -1.04607,-2.26646 -1.04607,-3.78327l0,-11.19288c0,-1.5517 0.20924,-3.01617 1.02865,-3.85304c0.83687,-0.83683 2.31876,-1.04607 3.87042,-1.04607l11.28007,0c1.51681,0 2.98132,0.22666 3.81815,1.06353c0.81941,0.81941 1.02865,2.26645 1.02865,3.78327zm-10.53039,12.08205c0.64506,0 1.02861,-0.43586 1.02861,-1.13326l0,-4.34117l4.53294,0c0.66252,0 1.13326,-0.36613 1.13326,-0.99376c0,-0.64506 -0.43586,-1.02861 -1.13326,-1.02861l-4.53294,0l0,-4.53294c0,-0.6974 -0.38355,-1.13326 -1.02861,-1.13326c-0.62763,0 -0.99376,0.45332 -0.99376,1.13326l0,4.53294l-4.51552,0c-0.69737,0 -1.15069,0.38355 -1.15069,1.02861c0,0.62763 0.48817,0.99376 1.15069,0.99376l4.51552,0l0,4.34117c0,0.66252 0.36613,1.13326 0.99376,1.13326z"/></g></svg></div><div class="step-text">${(0,r.msg)("3) Press Add to Home Screen")}</div></div></div></div>${o.screenshots&&o.screenshots.length?s.html`<pwa-gallery .screenshots=${o.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${o.screenshots&&o.screenshots.length?s.html`<button class="dialog-button button gallery" @click=${h}><svg id="pwa-gallery" width="26" height="26" viewBox="0 0 23.538 18.022"><path d="M2.79 18.022h17.958c1.834 0 2.79-.969 2.79-2.778V2.791C23.538.969 22.582 0 20.748 0H2.791C.956 0 0 .956 0 2.79v12.454c0 1.835.956 2.778 2.79 2.778zM.879 2.83C.878 1.55 1.55.88 2.816.88h17.906c1.228 0 1.938.671 1.938 1.95v12.067L16.756 9.47c-.517-.414-.995-.685-1.615-.685-.607 0-1.085.22-1.576.672L8.927 13.59l-1.938-1.796c-.426-.387-.853-.607-1.382-.607-.504 0-.879.207-1.305.594L.878 14.986zm6.46 6.356a2.39 2.39 0 002.377-2.39c0-1.304-1.072-2.39-2.377-2.39a2.401 2.401 0 00-2.39 2.39 2.393 2.393 0 002.39 2.39z"/></svg></button>`:""} <button class="dialog-button button install" @click=${p}><span class="button-text ${c?"show":"hide"}">${(0,r.msg)("Hide Instruction")}</span> <span class="button-text ${c?"hide":"show"}"><span>${(0,r.msg)("Add to Home Screen")}</span> <svg width="25" height="25"><use href="#pwa-add"></use></svg></span></button></div></article></aside>`;var M=function(e,t,l,i){var a,o=arguments.length,n=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(e,t,l,i);else for(var s=e.length-1;s>=0;s--)(a=e[s])&&(n=(o<3?a(n):o>3?a(t,l,n):a(t,l))||n);return o>3&&n&&Object.defineProperty(t,l,n),n},j=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let C=class extends s.LitElement{constructor(){super(...arguments),this.manifest=new b,this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.deferredEvent&&(this.hideDialog(),window.deferredEvent.prompt(),window.deferredEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,z.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{z.eventInstalledFail(this)})),window.deferredEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform?(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=()=>{z.eventUserChoiceResult(this,"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 z.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate()},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this.requestUpdate()},passive:!0},this._init=()=>{window.deferredEvent=null,this._checkInstalled(),this.disableChrome||window.addEventListener("beforeinstallprompt",(e=>{window.deferredEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,z.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,z.eventInstalledSuccess(this)),this.requestUpdate()})),window.addEventListener("appinstalled",(e=>{window.deferredEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),z.eventInstalledSuccess(this)})),fetch(this.manifestUrl).then((e=>{e.ok?e.json().then((e=>{this.icon=this.icon||e.icons[0].src,this.name=this.name||e.short_name||e.name,this.description=this.description||e.description,this.manifest=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||"")}))}}static get styles(){return[S,L]}async _checkInstalled(){this.isUnderStandaloneMode=z.isStandalone(),this.isRelatedAppsInstalled=await z.isRelatedAppsInstalled(),this.isAppleMobilePlatform=z.isAppleMobile(),this.isAppleMobilePlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),z.eventInstallAvailable(this)}),300)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{try{m(e.slice(0,2))}catch{}})(navigator.language),this._init(),f.finalized,R.finalized,super.connectedCallback()}render(){return this.isAppleMobilePlatform?s.html`${P(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:s.html`${D(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};M([(0,d.property)({attribute:"manifest-url"}),j("design:type",Object)],C.prototype,"manifestUrl",void 0),M([(0,d.property)(),j("design:type",Object)],C.prototype,"icon",void 0),M([(0,d.property)(),j("design:type",Object)],C.prototype,"name",void 0),M([(0,d.property)(),j("design:type",Object)],C.prototype,"description",void 0),M([(0,d.property)({attribute:"install-description"}),j("design:type",Object)],C.prototype,"installDescription",void 0),M([(0,d.property)({attribute:"disable-install-description",type:Boolean}),j("design:type",Object)],C.prototype,"disableDescription",void 0),M([(0,d.property)({attribute:"manual-apple",type:Boolean}),j("design:type",Object)],C.prototype,"manualApple",void 0),M([(0,d.property)({attribute:"manual-chrome",type:Boolean}),j("design:type",Object)],C.prototype,"manualChrome",void 0),M([(0,d.property)({attribute:"disable-chrome",type:Boolean}),j("design:type",Object)],C.prototype,"disableChrome",void 0),C=M([(0,r.localized)(),(0,d.customElement)("pwa-install")],C);var O=o.k;export{O as PWAInstallElement}; | ||
//# sourceMappingURL=pwa-install.es.js.map |
@@ -1,2 +0,2 @@ | ||
var PWAInstallComponent;(()=>{"use strict";var t={d:(e,i)=>{for(var l in i)t.o(i,l)&&!t.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:i[l]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{PWAInstallElement:()=>re});var i={};t.r(i),t.d(i,{templates:()=>Mt});const l=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,o=Symbol(),a=new Map;class s{constructor(t,e){if(this._$cssResult$=!0,e!==o)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){let t=a.get(this.cssText);return l&&void 0===t&&(a.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}}const n=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,l)=>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.")})(i)+t[l+1]),t[0]);return new s(i,o)},r=l?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return(t=>new s("string"==typeof t?t:t+"",o))(e)})(t):t;var d;const p=window.trustedTypes,c=p?p.emptyScript:"",h=window.reactiveElementPolyfillSupport,g={toAttribute(t,e){switch(e){case Boolean:t=t?c:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){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}},u=(t,e)=>e!==t&&(e==e||t==t),m={attribute:!0,type:String,converter:g,reflect:!1,hasChanged:u};class b extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var e;null!==(e=this.l)&&void 0!==e||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const l=this._$Eh(i,e);void 0!==l&&(this._$Eu.set(l,i),t.push(l))})),t}static createProperty(t,e=m){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,l=this.getPropertyDescriptor(t,i,e);void 0!==l&&Object.defineProperty(this.prototype,t,l)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(l){const o=this[t];this[e]=l,this.requestUpdate(t,o,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||m}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(r(t))}else void 0!==t&&e.push(r(t));return e}static _$Eh(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$Eg)&&void 0!==e?e:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$Eg)||void 0===e||e.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Et.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return((t,e)=>{l?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),l=window.litNonce;void 0!==l&&i.setAttribute("nonce",l),i.textContent=e.cssText,t.appendChild(i)}))})(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$ES(t,e,i=m){var l,o;const a=this.constructor._$Eh(t,i);if(void 0!==a&&!0===i.reflect){const s=(null!==(o=null===(l=i.converter)||void 0===l?void 0:l.toAttribute)&&void 0!==o?o:g.toAttribute)(e,i.type);this._$Ei=t,null==s?this.removeAttribute(a):this.setAttribute(a,s),this._$Ei=null}}_$AK(t,e){var i,l,o;const a=this.constructor,s=a._$Eu.get(t);if(void 0!==s&&this._$Ei!==s){const t=a.getPropertyOptions(s),n=t.converter,r=null!==(o=null!==(l=null===(i=n)||void 0===i?void 0:i.fromAttribute)&&void 0!==l?l:"function"==typeof n?n:null)&&void 0!==o?o:g.fromAttribute;this._$Ei=s,this[s]=r(e,t.type),this._$Ei=null}}requestUpdate(t,e,i){let l=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||u)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$Ei!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,i))):l=!1),!this.isUpdatePending&&l&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,e)=>this[e]=t)),this._$Et=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$Eg)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),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._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$ES(e,this[e],t))),this._$EC=void 0),this._$EU()}updated(t){}firstUpdated(t){}}var v;b.finalized=!0,b.elementProperties=new Map,b.elementStyles=[],b.shadowRootOptions={mode:"open"},null==h||h({ReactiveElement:b}),(null!==(d=globalThis.reactiveElementVersions)&&void 0!==d?d:globalThis.reactiveElementVersions=[]).push("1.3.2");const w=globalThis.trustedTypes,y=w?w.createPolicy("lit-html",{createHTML:t=>t}):void 0,f=`lit$${(Math.random()+"").slice(9)}$`,x="?"+f,$=`<${x}>`,_=document,A=(t="")=>_.createComment(t),E=t=>null===t||"object"!=typeof t&&"function"!=typeof t,k=Array.isArray,S=t=>{var e;return k(t)||"function"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])},C=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,R=/-->/g,P=/>/g,U=/>|[ \n\r](?:([^\s"'>=/]+)([ \n\r]*=[ \n\r]*(?:[^ \n\r"'`<>=]|("|')|))|$)/g,T=/'/g,L=/"/g,H=/^(?:script|style|textarea|title)$/i,M=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),z=M(1),I=(M(2),Symbol.for("lit-noChange")),O=Symbol.for("lit-nothing"),D=new WeakMap,j=_.createTreeWalker(_,129,null,!1),N=(t,e)=>{const i=t.length-1,l=[];let o,a=2===e?"<svg>":"",s=C;for(let e=0;e<i;e++){const i=t[e];let n,r,d=-1,p=0;for(;p<i.length&&(s.lastIndex=p,r=s.exec(i),null!==r);)p=s.lastIndex,s===C?"!--"===r[1]?s=R:void 0!==r[1]?s=P:void 0!==r[2]?(H.test(r[2])&&(o=RegExp("</"+r[2],"g")),s=U):void 0!==r[3]&&(s=U):s===U?">"===r[0]?(s=null!=o?o:C,d=-1):void 0===r[1]?d=-2:(d=s.lastIndex-r[2].length,n=r[1],s=void 0===r[3]?U:'"'===r[3]?L:T):s===L||s===T?s=U:s===R||s===P?s=C:(s=U,o=void 0);const c=s===U&&t[e+1].startsWith("/>")?" ":"";a+=s===C?i+$:d>=0?(l.push(n),i.slice(0,d)+"$lit$"+i.slice(d)+f+c):i+f+(-2===d?(l.push(void 0),e):c)}const n=a+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==y?y.createHTML(n):n,l]};class B{constructor({strings:t,_$litType$:e},i){let l;this.parts=[];let o=0,a=0;const s=t.length-1,n=this.parts,[r,d]=N(t,e);if(this.el=B.createElement(r,i),j.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(l=j.nextNode())&&n.length<s;){if(1===l.nodeType){if(l.hasAttributes()){const t=[];for(const e of l.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(f)){const i=d[a++];if(t.push(e),void 0!==i){const t=l.getAttribute(i.toLowerCase()+"$lit$").split(f),e=/([.?@])?(.*)/.exec(i);n.push({type:1,index:o,name:e[2],strings:t,ctor:"."===e[1]?F:"?"===e[1]?G:"@"===e[1]?J:V})}else n.push({type:6,index:o})}for(const e of t)l.removeAttribute(e)}if(H.test(l.tagName)){const t=l.textContent.split(f),e=t.length-1;if(e>0){l.textContent=w?w.emptyScript:"";for(let i=0;i<e;i++)l.append(t[i],A()),j.nextNode(),n.push({type:2,index:++o});l.append(t[e],A())}}}else if(8===l.nodeType)if(l.data===x)n.push({type:2,index:o});else{let t=-1;for(;-1!==(t=l.data.indexOf(f,t+1));)n.push({type:7,index:o}),t+=f.length-1}o++}}static createElement(t,e){const i=_.createElement("template");return i.innerHTML=t,i}}function q(t,e,i=t,l){var o,a,s,n;if(e===I)return e;let r=void 0!==l?null===(o=i._$Cl)||void 0===o?void 0:o[l]:i._$Cu;const d=E(e)?void 0:e._$litDirective$;return(null==r?void 0:r.constructor)!==d&&(null===(a=null==r?void 0:r._$AO)||void 0===a||a.call(r,!1),void 0===d?r=void 0:(r=new d(t),r._$AT(t,i,l)),void 0!==l?(null!==(s=(n=i)._$Cl)&&void 0!==s?s:n._$Cl=[])[l]=r:i._$Cu=r),void 0!==r&&(e=q(t,r._$AS(t,e.values),r,l)),e}class W{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e;const{el:{content:i},parts:l}=this._$AD,o=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:_).importNode(i,!0);j.currentNode=o;let a=j.nextNode(),s=0,n=0,r=l[0];for(;void 0!==r;){if(s===r.index){let e;2===r.type?e=new Y(a,a.nextSibling,this,t):1===r.type?e=new r.ctor(a,r.name,r.strings,this,t):6===r.type&&(e=new K(a,this,t)),this.v.push(e),r=l[++n]}s!==(null==r?void 0:r.index)&&(a=j.nextNode(),s++)}return o}m(t){let e=0;for(const i of this.v)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class Y{constructor(t,e,i,l){var o;this.type=2,this._$AH=O,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=l,this._$Cg=null===(o=null==l?void 0:l.isConnected)||void 0===o||o}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=q(this,t,e),E(t)?t===O||null==t||""===t?(this._$AH!==O&&this._$AR(),this._$AH=O):t!==this._$AH&&t!==I&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.k(t):S(t)?this.S(t):this.$(t)}M(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}$(t){this._$AH!==O&&E(this._$AH)?this._$AA.nextSibling.data=t:this.k(_.createTextNode(t)),this._$AH=t}T(t){var e;const{values:i,_$litType$:l}=t,o="number"==typeof l?this._$AC(t):(void 0===l.el&&(l.el=B.createElement(l.h,this.options)),l);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===o)this._$AH.m(i);else{const t=new W(o,this),e=t.p(this.options);t.m(i),this.k(e),this._$AH=t}}_$AC(t){let e=D.get(t.strings);return void 0===e&&D.set(t.strings,e=new B(t)),e}S(t){k(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,l=0;for(const o of t)l===e.length?e.push(i=new Y(this.M(A()),this.M(A()),this,this.options)):i=e[l],i._$AI(o),l++;l<e.length&&(this._$AR(i&&i._$AB.nextSibling,l),e.length=l)}_$AR(t=this._$AA.nextSibling,e){var i;for(null===(i=this._$AP)||void 0===i||i.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cg=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class V{constructor(t,e,i,l,o){this.type=1,this._$AH=O,this._$AN=void 0,this.element=t,this.name=e,this._$AM=l,this.options=o,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=O}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,l){const o=this.strings;let a=!1;if(void 0===o)t=q(this,t,e,0),a=!E(t)||t!==this._$AH&&t!==I,a&&(this._$AH=t);else{const l=t;let s,n;for(t=o[0],s=0;s<o.length-1;s++)n=q(this,l[i+s],e,s),n===I&&(n=this._$AH[s]),a||(a=!E(n)||n!==this._$AH[s]),n===O?t=O:t!==O&&(t+=(null!=n?n:"")+o[s+1]),this._$AH[s]=n}a&&!l&&this.C(t)}C(t){t===O?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class F extends V{constructor(){super(...arguments),this.type=3}C(t){this.element[this.name]=t===O?void 0:t}}const Z=w?w.emptyScript:"";class G extends V{constructor(){super(...arguments),this.type=4}C(t){t&&t!==O?this.element.setAttribute(this.name,Z):this.element.removeAttribute(this.name)}}class J extends V{constructor(t,e,i,l,o){super(t,e,i,l,o),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=q(this,t,e,0))&&void 0!==i?i:O)===I)return;const l=this._$AH,o=t===O&&l!==O||t.capture!==l.capture||t.once!==l.once||t.passive!==l.passive,a=t!==O&&(l===O||o);o&&this.element.removeEventListener(this.name,this,l),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==i?i:this.element,t):this._$AH.handleEvent(t)}}class K{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){q(this,t)}}const Q=window.litHtmlPolyfillSupport;var X,tt;null==Q||Q(B,Y),(null!==(v=globalThis.litHtmlVersions)&&void 0!==v?v:globalThis.litHtmlVersions=[]).push("2.2.3");class et extends b{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=((t,e,i)=>{var l,o;const a=null!==(l=null==i?void 0:i.renderBefore)&&void 0!==l?l:e;let s=a._$litPart$;if(void 0===s){const t=null!==(o=null==i?void 0:i.renderBefore)&&void 0!==o?o:null;a._$litPart$=s=new Y(e.insertBefore(A(),t),t,void 0,null!=i?i:{})}return s._$AI(t),s})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}render(){return I}}et.finalized=!0,et._$litElement$=!0,null===(X=globalThis.litElementHydrateSupport)||void 0===X||X.call(globalThis,{LitElement:et});const it=globalThis.litElementPolyfillSupport;null==it||it({LitElement:et});(null!==(tt=globalThis.litElementVersions)&&void 0!==tt?tt:globalThis.litElementVersions=[]).push("3.2.0");const lt=(t,e,i)=>{let l=t[0];for(let o=1;o<t.length;o++)l+=e[i?i[o-1]:o-1],l+=t[o];return l},ot=t=>{return"string"!=typeof(e=t)&&"strTag"in e?lt(t.strings,t.values):t;var e},at="lit-localize-status";class st{constructor(t){this.__litLocalizeEventHandler=t=>{"ready"===t.detail.status&&this.host.requestUpdate()},this.host=t}hostConnected(){window.addEventListener(at,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(at,this.__litLocalizeEventHandler)}}const nt=t=>t.addController(new st(t)),rt=()=>t=>"function"==typeof t?pt(t):dt(t),dt=({kind:t,elements:e})=>({kind:t,elements:e,finisher(t){t.addInitializer(nt)}}),pt=t=>(t.addInitializer(nt),t);class ct{constructor(){this.settled=!1,this.promise=new Promise(((t,e)=>{this._resolve=t,this._reject=e}))}resolve(t){this.settled=!0,this._resolve(t)}reject(t){this.settled=!0,this._reject(t)}}const ht=[];for(let t=0;t<256;t++)ht[t]=(t>>4&15).toString(16)+(15&t).toString(16);function gt(t,e){return(e?"h":"s")+function(t){let e=0,i=8997,l=0,o=33826,a=0,s=40164,n=0,r=52210;for(let d=0;d<t.length;d++)i^=t.charCodeAt(d),e=435*i,l=435*o,a=435*s,n=435*r,a+=i<<8,n+=o<<8,l+=e>>>16,i=65535&e,a+=l>>>16,o=65535&l,r=n+(a>>>16)&65535,s=65535&a;return ht[r>>8]+ht[255&r]+ht[s>>8]+ht[255&s]+ht[o>>8]+ht[255&o]+ht[i>>8]+ht[255&i]}("string"==typeof t?t:t.join(""))}const ut=new WeakMap,mt=new Map;function bt(t,e,i){var l;if(t){const o=null!==(l=null==i?void 0:i.id)&&void 0!==l?l:function(t){const e="string"==typeof t?t:t.strings;let i=mt.get(e);void 0===i&&(i=gt(e,"string"!=typeof t&&!("strTag"in t)),mt.set(e,i));return i}(e),a=t[o];if(a){if("string"==typeof a)return a;if("strTag"in a)return lt(a.strings,e.values,a.values);{let t=ut.get(a);return void 0===t&&(t=a.values,ut.set(a,t)),a.values=t.map((t=>e.values[t])),a}}}return ot(e)}function vt(t){window.dispatchEvent(new CustomEvent(at,{detail:t}))}let wt,yt,ft,xt,$t,_t="",At=new ct;At.resolve();let Et=0;const kt=()=>_t,St=t=>{if(t===(null!=wt?wt:_t))return At.promise;if(!ft||!xt)throw Error("Internal error");if(!ft.has(t))throw Error("Invalid locale code");Et++;const e=Et;wt=t,At.settled&&(At=new ct),vt({status:"loading",loadingLocale:t});return(t===yt?Promise.resolve({templates:void 0}):xt(t)).then((i=>{Et===e&&(_t=t,wt=void 0,$t=i.templates,vt({status:"ready",readyLocale:t}),At.resolve())}),(i=>{Et===e&&(vt({status:"error",errorLocale:t,errorMessage:i.toString()}),At.reject(i))})),At.promise};let Ct=ot,Rt=!1;const Pt=t=>e=>"function"==typeof e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:i,elements:l}=e;return{kind:i,elements:l,finisher(e){window.customElements.define(t,e)}}})(t,e),Ut=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(i){i.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function Tt(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):Ut(t,e)}var Lt;null===(Lt=window.HTMLSlotElement)||void 0===Lt||Lt.prototype.assignedElements;const Ht=["ru"],Mt={s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s8d0173763d91830c:"Этот веб-сайт имеет функционал приложения. Добавьте его на экран «Домой», чтобы получить дополнительные возможности и удобство использования.",sa5ef80b4bb9b39f8:"Свернуть",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdca23702207fba73:"Этот веб-сайт имеет функционал приложения. Установите его, чтобы получить дополнительные возможности и удобство использования.",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере"},zt=new Map([["ru",i]]),{getLocale:It,setLocale:Ot}=(Dt={sourceLocale:"en",targetLocales:Ht,loadLocale:async t=>zt.get(t)},function(t){if(Rt)throw Error("lit-localize can only be configured once");Ct=t,Rt=!0}(((t,e)=>bt($t,t,e))),_t=yt=Dt.sourceLocale,ft=new Set(Dt.targetLocales),ft.add(Dt.sourceLocale),xt=Dt.loadLocale,{getLocale:kt,setLocale:St});var Dt;class jt{constructor(){this.icons=[{src:""}],this.screenshots=null,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const Nt=n`.gallery{position:relative;--scrollbar-background-color:#fff;--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:45vh;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:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:#646464}.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;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 7px 1px;background-repeat:no-repeat;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 7px 1px;cursor:pointer}.gallery .btn:hover svg{opacity:.7}.gallery .btn svg{width:20px;height:20px;opacity:.5}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}@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}}`,Bt=(t,e,i)=>z`${t?z`<div id="paginated_gallery" class="gallery"><div class="gallery_scroller"><div class="scroller_wrap">${t.map((t=>z`<img draggable="false" src='${t.src}'>`))}</div></div><span class="btn prev" @click="${i}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M39.3756,48.0022l30.47-25.39a6.0035,6.0035,0,0,0-7.6878-9.223L26.1563,43.3906a6.0092,6.0092,0,0,0,0,9.2231L62.1578,82.615a6.0035,6.0035,0,0,0,7.6878-9.2231Z" fill="%23999" fill-rule="evenodd"/></svg> </span><span class="btn next" @click="${e}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M69.8437,43.3876,33.8422,13.3863a6.0035,6.0035,0,0,0-7.6878,9.223l30.47,25.39-30.47,25.39a6.0035,6.0035,0,0,0,7.6878,9.2231L69.8437,52.6106a6.0091,6.0091,0,0,0,0-9.223Z" fill="%23000" fill-rule="evenodd"/></svg></span></div>`:""}`;var qt=function(t,e,i,l){var o,a=arguments.length,s=a<3?e:null===l?l=Object.getOwnPropertyDescriptor(e,i):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,l);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(s=(a<3?o(s):a>3?o(e,i,s):o(e,i))||s);return a>3&&s&&Object.defineProperty(e,i,s),s},Wt=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let Yt=class extends et{constructor(){super(...arguments),this.screenshots=[],this.calcScrollSize=()=>{const t=this.shadowRoot.querySelector("#paginated_gallery");if(!t)return;const e=t.querySelector(".gallery_scroller");if(!e)return;const i=Array.from(e.querySelectorAll("img"));if(!i)return;const l=i.find((t=>t.offsetWidth+t.offsetLeft>=e.scrollLeft));return l?{scroller:e,item:l}:void 0},this.scrollToNextPage=()=>{const t=this.calcScrollSize();t&&t.item.nextElementSibling&&t.scroller.scrollTo({top:0,left:t.scroller.scrollLeft+t.scroller.clientWidth+t.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const t=this.calcScrollSize();t&&t.item.previousElementSibling&&t.scroller.scrollTo({top:0,left:t.scroller.scrollLeft-t.scroller.clientWidth-t.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return Nt}firstUpdated(){const t=this.calcScrollSize();t&&setTimeout((()=>{t.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return z`${Bt(this.screenshots,this.scrollToNextPage,this.scrollToPrevPage)}`}};qt([Tt(),Wt("design:type",Object)],Yt.prototype,"screenshots",void 0),Yt=qt([Pt("pwa-gallery")],Yt);const Vt=Yt,Ft=(t,e,i,l)=>z`<div class="touch-header" id="touch-header"></div><div class="body-header"><div class="icon"><img src="${i}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${t}</label></div><div class="hostname">${location.hostname}</div></div><button class="material-button primary install" @click='${l}'>${Ct("Install")}</button></div>${e?z`<div class="description">${e}</div>`:""}`;var Zt=function(t,e,i,l){var o,a=arguments.length,s=a<3?e:null===l?l=Object.getOwnPropertyDescriptor(e,i):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,l);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(s=(a<3?o(s):a>3?o(e,i,s):o(e,i))||s);return a>3&&s&&Object.defineProperty(e,i,s),s},Gt=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let Jt=class extends et{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(t,e,i)=>{if(!t||!e||!i)return null;let l=0;const o=e.clientHeight+i.clientHeight,a=t=>t.clientY||(t.changedTouches&&t.changedTouches.length?t.changedTouches[0].clientY:0),s=t=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),l=a(t)-e.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=e=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!(a(e)>=window.innerHeight-25))return window.innerHeight-a(e)>t.clientHeight/2.5?void d(e,window.innerHeight-t.clientHeight):void d(e,window.innerHeight-o-35);d(e,window.innerHeight+50,!0)},r=e=>{const i=a(e);i<=window.innerHeight-t.clientHeight+l||(t.style.setProperty("transition","none"),t.style.setProperty("--translateY",`translateY(${i-l}px)`))},d=(i,l,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!l&&a(i)>=window.innerHeight-o?t.style.setProperty("--translateY",`translateY(calc(100vh - ${o}px))`):t.style.setProperty("--translateY",`translateY(${(l||a(i))+35}px)`),t.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(e.removeEventListener("mousedown",s),e.removeEventListener("touchstart",s),setTimeout(this._callHide,250)))};return e.addEventListener("mousedown",s),e.addEventListener("touchstart",s,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-o-35),{touchElement:e,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 z`${Ft(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};Zt([Tt(),Gt("design:type",Object)],Jt.prototype,"props",void 0),Zt([Tt(),Gt("design:type",Object)],Jt.prototype,"install",void 0),Zt([Tt(),Gt("design:type",Object)],Jt.prototype,"hideDialog",void 0),Jt=Zt([Pt("pwa-bottom-sheet")],Jt);const Kt=Jt,Qt=(t,e,i)=>{const l=new CustomEvent(e,{detail:{message:i}});t.dispatchEvent(l)};class Xt{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){return"getInstalledRelatedApps"in navigator&&await navigator.getInstalledRelatedApps().then((t=>t)),[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(t){Qt(t,"pwa-install-success-event","Application installation successfully processed (Chromium/Android only)")}static eventInstalledFail(t){Qt(t,"pwa-install-fail-event","Application installation failed (Chromium/Android only)")}static eventUserChoiceResult(t,e){Qt(t,"pwa-user-choice-result-event",e)}static eventInstallAvailable(t){Qt(t,"pwa-install-available-event","Application installation available")}}const te=n`#pwa-install-element{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:5}#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 .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}}`,ee=n`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.75);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);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:-100px;overflow:hidden;pointer-events:none;will-change:opacity,visibility,bottom,top}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px auto 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, .2));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#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 .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 .about .close{height:26px;min-width:26px;line-height:0;margin-right:-3px;margin-top:-3px;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}#pwa-install-element .install-dialog.apple.dialog-body .about .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .about .close:active,#pwa-install-element .install-dialog.apple.dialog-body .about .close:hover{opacity:1;background-color:var(--background-color-button)}#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;gap:15px;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;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;gap:15px;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;transform:scale(.8)}#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}#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;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;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-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{fill:#527afb}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.75)}#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;bottom:20px;visibility:visible;pointer-events:unset;transition:bottom .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out,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;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}@media(min-width:768px){#pwa-install-element .install-dialog.apple{top:-100px;bottom:unset;right:150px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}}@media(min-width:768px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:28px;left:auto}}@media(max-width:767px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;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}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple{--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}}`,ie=1;const le=(t=>(...e)=>({_$litDirective$:t,values:e}))(class extends class{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)}}{constructor(t){var e;if(super(t),t.type!==ie||"class"!==t.name||(null===(e=t.strings)||void 0===e?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter((e=>t[e])).join(" ")+" "}update(t,[e]){var i,l;if(void 0===this.et){this.et=new Set,void 0!==t.strings&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in e)e[t]&&!(null===(i=this.st)||void 0===i?void 0:i.has(t))&&this.et.add(t);return this.render(e)}const o=t.element.classList;this.et.forEach((t=>{t in e||(o.remove(t),this.et.delete(t))}));for(const t in e){const i=!!e[t];i===this.et.has(t)||(null===(l=this.st)||void 0===l?void 0:l.has(t))||(i?(o.add(t),this.et.add(t)):(o.remove(t),this.et.delete(t)))}return I}}),oe=(t,e,i,l,o,a,s,n,r,d,p)=>{const c=()=>({available:s,gallery:p});return z`<div id="pwa-install-element"><div class="install-dialog chrome ${le(c())}"><div class="dialog-body"><div class="icon"><img src="${o}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${t}</label> <button class="material-button secondary close" @click='${n}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="hostname">${location.hostname}</div></div>${e?z`<div class="description app-description">${e}</div>`:""} ${l?"":z`<hr><div class="description install-description">${i||Ct("This site has app functionality. Install it on your device for extensive experience and easy access.")}</div>`} ${a.screenshots&&a.screenshots.length?z`<pwa-gallery .screenshots=${a.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${a.screenshots&&a.screenshots.length?z`<button class="material-button secondary" @click='${d}'>${Ct(p?"Less":"More")}</button>`:""} <button class="material-button primary install" @click='${r}'>${Ct("Install")}</button></div></div></div><div class="install-dialog chrome mobile ${le(c())}"><div class="dialog-body"><pwa-bottom-sheet .props=${{name:t,icon:o,description:e}} .install=${r} .hideDialog=${n}></pwa-bottom-sheet>${a.screenshots&&a.screenshots.length?z`<pwa-gallery .screenshots=${a.screenshots}></pwa-gallery>`:""}</div></div></div>`},ae=(t,e,i,l,o,a,s,n,r,d,p,c)=>z`<aside id="pwa-install-element"><article class="install-dialog apple ${le({available:s,"how-to":d,gallery:c})} dialog-body"><div class="icon"><img src="${o}" alt="icon" class="icon-image"></div><div class="about"><div class="name">${t} <button type="button" class="close" @click='${n}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="description">${e||location.hostname}</div></div>${l?"":z`<div class="welcome-to-install">${i||Ct("This site has app functionality. Add it to your Home Screen for extensive experience and easy access.")}</div>`}<div class="how-to-body"><div class="how-to-description"><div class="description-step"><div class="svg-wrap"><svg id="pwa-safari" viewBox="0 0 13.964 13.964" width="24" height="24"><path d="M6.982 0A6.99 6.99 0 000 6.982a6.99 6.99 0 006.982 6.982 6.99 6.99 0 006.982-6.982A6.99 6.99 0 006.982 0zm0 1.074a5.9 5.9 0 015.908 5.908 5.9 5.9 0 01-5.908 5.908 5.9 5.9 0 01-5.908-5.908 5.9 5.9 0 015.908-5.908zm3.76 2.148L5.6 5.624l-2.379 5.117 5.165-2.354zM6.963 6.288a.795.795 0 11-.001 1.59.795.795 0 010-1.59z" font-weight="400" font-family="sans-serif" overflow="visible"/></svg></div><div class="step-text">${Ct("1) Open in Safari browser")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-share" width="25" height="32"><g><path d="m12.51122,20.7648c0.52277,0 0.99149,-0.43265 0.99149,-0.95542l0,-14.87204l-0.09015,-2.0731l1.11768,1.15371l2.27135,2.37952c0.18028,0.19833 0.43265,0.30647 0.68502,0.30647c0.50476,0 0.90134,-0.37857 0.90134,-0.88332c0,-0.27039 -0.10817,-0.46869 -0.28844,-0.64895l-4.86721,-4.74103c-0.25237,-0.25237 -0.46869,-0.32448 -0.72106,-0.32448c-0.25237,0 -0.46869,0.0721 -0.72106,0.32448l-4.88523,4.74103c-0.18028,0.18028 -0.28844,0.37857 -0.28844,0.64895c0,0.50476 0.37857,0.88332 0.90134,0.88332c0.23436,0 0.50476,-0.10814 0.68502,-0.30647l2.27135,-2.37952l1.11768,-1.17172l-0.0721,2.09112l0,14.87204c0,0.52277 0.45066,0.95542 0.99145,0.95542l-0.00002,0l-0.00001,-0.00001zm-8.13005,10.96022l16.22403,0c2.86626,0 4.30841,-1.42412 4.30841,-4.23627l0,-14.27715c0,-2.79415 -1.44215,-4.23627 -4.30841,-4.23627l-3.96589,0l0,2.00095l3.92985,0c1.47819,0 2.34345,0.79316 2.34345,2.34345l0,14.06085c0,1.5503 -0.86527,2.34347 -2.34345,2.34347l-16.15194,0c-1.49625,0 -2.32547,-0.79317 -2.32547,-2.34347l0,-14.06085c0,-1.55029 0.82923,-2.34345 2.32547,-2.34345l3.96589,0l0,-2.00095l-4.00196,0c-2.84821,0 -4.29035,1.4241 -4.29035,4.23627l0,14.27715c0,2.81217 1.44215,4.23627 4.29035,4.23627l0.00001,0l0.00001,0z"/></g></svg></div><div class="step-text">${Ct("2) Press Share in Navigation bar")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-add" width="25" height="25"><g><path d="m23.40492,1.60784c-1.32504,-1.32504 -3.19052,-1.56912 -5.59644,-1.56912l-10.65243,0c-2.33622,0 -4.2017,0.24408 -5.5267,1.56912c-1.32504,1.34243 -1.56911,3.17306 -1.56911,5.50924l0,10.5827c0,2.40596 0.22665,4.254 1.55165,5.57902c1.34246,1.32501 3.19052,1.5691 5.59647,1.5691l10.60013,0c2.40592,0 4.2714,-0.24408 5.59644,-1.5691c1.325,-1.34245 1.55166,-3.17306 1.55166,-5.57902l0,-10.51293c0,-2.40596 -0.22666,-4.25401 -1.55166,-5.57901zm-0.38355,5.21289l0,11.24518c0,1.51681 -0.20924,2.94643 -1.02865,3.78327c-0.83683,0.83685 -2.30134,1.0635 -3.81815,1.0635l-11.33234,0c-1.51681,0 -2.96386,-0.22665 -3.80073,-1.0635c-0.83683,-0.83684 -1.04607,-2.26646 -1.04607,-3.78327l0,-11.19288c0,-1.5517 0.20924,-3.01617 1.02865,-3.85304c0.83687,-0.83683 2.31876,-1.04607 3.87042,-1.04607l11.28007,0c1.51681,0 2.98132,0.22666 3.81815,1.06353c0.81941,0.81941 1.02865,2.26645 1.02865,3.78327zm-10.53039,12.08205c0.64506,0 1.02861,-0.43586 1.02861,-1.13326l0,-4.34117l4.53294,0c0.66252,0 1.13326,-0.36613 1.13326,-0.99376c0,-0.64506 -0.43586,-1.02861 -1.13326,-1.02861l-4.53294,0l0,-4.53294c0,-0.6974 -0.38355,-1.13326 -1.02861,-1.13326c-0.62763,0 -0.99376,0.45332 -0.99376,1.13326l0,4.53294l-4.51552,0c-0.69737,0 -1.15069,0.38355 -1.15069,1.02861c0,0.62763 0.48817,0.99376 1.15069,0.99376l4.51552,0l0,4.34117c0,0.66252 0.36613,1.13326 0.99376,1.13326z"/></g></svg></div><div class="step-text">${Ct("3) Press Add to Home Screen")}</div></div></div></div>${a.screenshots&&a.screenshots.length?z`<pwa-gallery .screenshots=${a.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${a.screenshots&&a.screenshots.length?z`<button class="dialog-button button gallery" @click=${p}><svg id="pwa-gallery" width="26" height="26" viewBox="0 0 23.538 18.022"><path d="M2.79 18.022h17.958c1.834 0 2.79-.969 2.79-2.778V2.791C23.538.969 22.582 0 20.748 0H2.791C.956 0 0 .956 0 2.79v12.454c0 1.835.956 2.778 2.79 2.778zM.879 2.83C.878 1.55 1.55.88 2.816.88h17.906c1.228 0 1.938.671 1.938 1.95v12.067L16.756 9.47c-.517-.414-.995-.685-1.615-.685-.607 0-1.085.22-1.576.672L8.927 13.59l-1.938-1.796c-.426-.387-.853-.607-1.382-.607-.504 0-.879.207-1.305.594L.878 14.986zm6.46 6.356a2.39 2.39 0 002.377-2.39c0-1.304-1.072-2.39-2.377-2.39a2.401 2.401 0 00-2.39 2.39 2.393 2.393 0 002.39 2.39z"/></svg></button>`:""} <button class="dialog-button button install" @click=${r}><span class="button-text ${d?"show":"hide"}">${Ct("Hide Instruction")}</span> <span class="button-text ${d?"hide":"show"}"><span>${Ct("Add to Home Screen")}</span> <svg width="25" height="25"><use href="#pwa-add"></use></svg></span></button></div></article></aside>`;var se=function(t,e,i,l){var o,a=arguments.length,s=a<3?e:null===l?l=Object.getOwnPropertyDescriptor(e,i):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,l);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(s=(a<3?o(s):a>3?o(e,i,s):o(e,i))||s);return a>3&&s&&Object.defineProperty(e,i,s),s},ne=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let re=class extends et{constructor(){super(...arguments),this.manifest=new jt,this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.platforms="",this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.deferredEvent&&(this.hideDialog(),window.deferredEvent.prompt(),window.deferredEvent.userChoice.then((t=>{this.userChoiceResult=t.outcome,Xt.eventUserChoiceResult(this,this.userChoiceResult)})).catch((t=>{Xt.eventInstalledFail(this)})),window.deferredEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform?(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=()=>{Xt.eventUserChoiceResult(this,"dismissed"),this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(t=!1)=>{this.isDialogHidden=!1,t&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Xt.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate()},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this.requestUpdate()},passive:!0},this._init=()=>{window.deferredEvent=null,this._checkInstalled(),this.disableChrome||window.addEventListener("beforeinstallprompt",(t=>{window.deferredEvent=t,t.preventDefault(),this.platforms=t.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Xt.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Xt.eventInstalledSuccess(this)),this.requestUpdate()})),window.addEventListener("appinstalled",(t=>{window.deferredEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Xt.eventInstalledSuccess(this)})),fetch(this.manifestUrl).then((t=>{t.ok?t.json().then((t=>{this.icon=this.icon||t.icons[0].src,this.name=this.name||t.short_name||t.name,this.description=this.description||t.description,this.manifest=t})):(this.icon=this.icon||this.manifest.icons[0].src,this.name=this.name||this.manifest.short_name,this.description=this.description||this.manifest.description)}))}}static get styles(){return[te,ee]}async _checkInstalled(){this.isUnderStandaloneMode=Xt.isStandalone(),this.isRelatedAppsInstalled=await Xt.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Xt.isAppleMobile(),this.isAppleMobilePlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Xt.eventInstallAvailable(this)}),300)):this.manualChrome&&this.hideDialog()}connectedCallback(){(t=>{try{Ot(t.slice(0,2))}catch{}})(navigator.language),this._init(),Vt.finalized,Kt.finalized,super.connectedCallback()}render(){return this.isAppleMobilePlatform?z`${ae(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:z`${oe(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};se([Tt({attribute:"manifest-url"}),ne("design:type",Object)],re.prototype,"manifestUrl",void 0),se([Tt(),ne("design:type",Object)],re.prototype,"icon",void 0),se([Tt(),ne("design:type",Object)],re.prototype,"name",void 0),se([Tt(),ne("design:type",Object)],re.prototype,"description",void 0),se([Tt({attribute:"install-description"}),ne("design:type",Object)],re.prototype,"installDescription",void 0),se([Tt({attribute:"disable-install-description",type:Boolean}),ne("design:type",Object)],re.prototype,"disableDescription",void 0),se([Tt({attribute:"manual-apple",type:Boolean}),ne("design:type",Object)],re.prototype,"manualApple",void 0),se([Tt({attribute:"manual-chrome",type:Boolean}),ne("design:type",Object)],re.prototype,"manualChrome",void 0),se([Tt({attribute:"disable-chrome",type:Boolean}),ne("design:type",Object)],re.prototype,"disableChrome",void 0),re=se([rt(),Pt("pwa-install")],re),PWAInstallComponent=e})(); | ||
var PWAInstallComponent;(()=>{"use strict";var t={d:(e,i)=>{for(var l in i)t.o(i,l)&&!t.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:i[l]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{PWAInstallElement:()=>re});var i={};t.r(i),t.d(i,{templates:()=>Mt});const l=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,o=Symbol(),a=new Map;class s{constructor(t,e){if(this._$cssResult$=!0,e!==o)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){let t=a.get(this.cssText);return l&&void 0===t&&(a.set(this.cssText,t=new CSSStyleSheet),t.replaceSync(this.cssText)),t}toString(){return this.cssText}}const n=(t,...e)=>{const i=1===t.length?t[0]:e.reduce(((e,i,l)=>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.")})(i)+t[l+1]),t[0]);return new s(i,o)},r=l?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const i of t.cssRules)e+=i.cssText;return(t=>new s("string"==typeof t?t:t+"",o))(e)})(t):t;var d;const c=window.trustedTypes,p=c?c.emptyScript:"",h=window.reactiveElementPolyfillSupport,g={toAttribute(t,e){switch(e){case Boolean:t=t?p:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){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}},u=(t,e)=>e!==t&&(e==e||t==t),m={attribute:!0,type:String,converter:g,reflect:!1,hasChanged:u};class b extends HTMLElement{constructor(){super(),this._$Et=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Ei=null,this.o()}static addInitializer(t){var e;null!==(e=this.l)&&void 0!==e||(this.l=[]),this.l.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const l=this._$Eh(i,e);void 0!==l&&(this._$Eu.set(l,i),t.push(l))})),t}static createProperty(t,e=m){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,l=this.getPropertyDescriptor(t,i,e);void 0!==l&&Object.defineProperty(this.prototype,t,l)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(l){const o=this[t];this[e]=l,this.requestUpdate(t,o,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||m}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Eu=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(r(t))}else void 0!==t&&e.push(r(t));return e}static _$Eh(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}o(){var t;this._$Ep=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Em(),this.requestUpdate(),null===(t=this.constructor.l)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$Eg)&&void 0!==e?e:this._$Eg=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$Eg)||void 0===e||e.splice(this._$Eg.indexOf(t)>>>0,1)}_$Em(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Et.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return((t,e)=>{l?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),l=window.litNonce;void 0!==l&&i.setAttribute("nonce",l),i.textContent=e.cssText,t.appendChild(i)}))})(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$ES(t,e,i=m){var l,o;const a=this.constructor._$Eh(t,i);if(void 0!==a&&!0===i.reflect){const s=(null!==(o=null===(l=i.converter)||void 0===l?void 0:l.toAttribute)&&void 0!==o?o:g.toAttribute)(e,i.type);this._$Ei=t,null==s?this.removeAttribute(a):this.setAttribute(a,s),this._$Ei=null}}_$AK(t,e){var i,l,o;const a=this.constructor,s=a._$Eu.get(t);if(void 0!==s&&this._$Ei!==s){const t=a.getPropertyOptions(s),n=t.converter,r=null!==(o=null!==(l=null===(i=n)||void 0===i?void 0:i.fromAttribute)&&void 0!==l?l:"function"==typeof n?n:null)&&void 0!==o?o:g.fromAttribute;this._$Ei=s,this[s]=r(e,t.type),this._$Ei=null}}requestUpdate(t,e,i){let l=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||u)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$Ei!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,i))):l=!1),!this.isUpdatePending&&l&&(this._$Ep=this._$E_())}async _$E_(){this.isUpdatePending=!0;try{await this._$Ep}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Et&&(this._$Et.forEach(((t,e)=>this[e]=t)),this._$Et=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$Eg)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$EU()}catch(t){throw e=!1,this._$EU(),t}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$Eg)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),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._$Ep}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$ES(e,this[e],t))),this._$EC=void 0),this._$EU()}updated(t){}firstUpdated(t){}}var v;b.finalized=!0,b.elementProperties=new Map,b.elementStyles=[],b.shadowRootOptions={mode:"open"},null==h||h({ReactiveElement:b}),(null!==(d=globalThis.reactiveElementVersions)&&void 0!==d?d:globalThis.reactiveElementVersions=[]).push("1.3.2");const w=globalThis.trustedTypes,f=w?w.createPolicy("lit-html",{createHTML:t=>t}):void 0,y=`lit$${(Math.random()+"").slice(9)}$`,x="?"+y,$=`<${x}>`,_=document,A=(t="")=>_.createComment(t),E=t=>null===t||"object"!=typeof t&&"function"!=typeof t,k=Array.isArray,S=t=>{var e;return k(t)||"function"==typeof(null===(e=t)||void 0===e?void 0:e[Symbol.iterator])},C=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,R=/-->/g,P=/>/g,U=/>|[ \n\r](?:([^\s"'>=/]+)([ \n\r]*=[ \n\r]*(?:[^ \n\r"'`<>=]|("|')|))|$)/g,T=/'/g,L=/"/g,H=/^(?:script|style|textarea|title)$/i,M=t=>(e,...i)=>({_$litType$:t,strings:e,values:i}),z=M(1),I=(M(2),Symbol.for("lit-noChange")),O=Symbol.for("lit-nothing"),D=new WeakMap,j=_.createTreeWalker(_,129,null,!1),N=(t,e)=>{const i=t.length-1,l=[];let o,a=2===e?"<svg>":"",s=C;for(let e=0;e<i;e++){const i=t[e];let n,r,d=-1,c=0;for(;c<i.length&&(s.lastIndex=c,r=s.exec(i),null!==r);)c=s.lastIndex,s===C?"!--"===r[1]?s=R:void 0!==r[1]?s=P:void 0!==r[2]?(H.test(r[2])&&(o=RegExp("</"+r[2],"g")),s=U):void 0!==r[3]&&(s=U):s===U?">"===r[0]?(s=null!=o?o:C,d=-1):void 0===r[1]?d=-2:(d=s.lastIndex-r[2].length,n=r[1],s=void 0===r[3]?U:'"'===r[3]?L:T):s===L||s===T?s=U:s===R||s===P?s=C:(s=U,o=void 0);const p=s===U&&t[e+1].startsWith("/>")?" ":"";a+=s===C?i+$:d>=0?(l.push(n),i.slice(0,d)+"$lit$"+i.slice(d)+y+p):i+y+(-2===d?(l.push(void 0),e):p)}const n=a+(t[i]||"<?>")+(2===e?"</svg>":"");if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return[void 0!==f?f.createHTML(n):n,l]};class B{constructor({strings:t,_$litType$:e},i){let l;this.parts=[];let o=0,a=0;const s=t.length-1,n=this.parts,[r,d]=N(t,e);if(this.el=B.createElement(r,i),j.currentNode=this.el.content,2===e){const t=this.el.content,e=t.firstChild;e.remove(),t.append(...e.childNodes)}for(;null!==(l=j.nextNode())&&n.length<s;){if(1===l.nodeType){if(l.hasAttributes()){const t=[];for(const e of l.getAttributeNames())if(e.endsWith("$lit$")||e.startsWith(y)){const i=d[a++];if(t.push(e),void 0!==i){const t=l.getAttribute(i.toLowerCase()+"$lit$").split(y),e=/([.?@])?(.*)/.exec(i);n.push({type:1,index:o,name:e[2],strings:t,ctor:"."===e[1]?F:"?"===e[1]?G:"@"===e[1]?J:V})}else n.push({type:6,index:o})}for(const e of t)l.removeAttribute(e)}if(H.test(l.tagName)){const t=l.textContent.split(y),e=t.length-1;if(e>0){l.textContent=w?w.emptyScript:"";for(let i=0;i<e;i++)l.append(t[i],A()),j.nextNode(),n.push({type:2,index:++o});l.append(t[e],A())}}}else if(8===l.nodeType)if(l.data===x)n.push({type:2,index:o});else{let t=-1;for(;-1!==(t=l.data.indexOf(y,t+1));)n.push({type:7,index:o}),t+=y.length-1}o++}}static createElement(t,e){const i=_.createElement("template");return i.innerHTML=t,i}}function q(t,e,i=t,l){var o,a,s,n;if(e===I)return e;let r=void 0!==l?null===(o=i._$Cl)||void 0===o?void 0:o[l]:i._$Cu;const d=E(e)?void 0:e._$litDirective$;return(null==r?void 0:r.constructor)!==d&&(null===(a=null==r?void 0:r._$AO)||void 0===a||a.call(r,!1),void 0===d?r=void 0:(r=new d(t),r._$AT(t,i,l)),void 0!==l?(null!==(s=(n=i)._$Cl)&&void 0!==s?s:n._$Cl=[])[l]=r:i._$Cu=r),void 0!==r&&(e=q(t,r._$AS(t,e.values),r,l)),e}class Y{constructor(t,e){this.v=[],this._$AN=void 0,this._$AD=t,this._$AM=e}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}p(t){var e;const{el:{content:i},parts:l}=this._$AD,o=(null!==(e=null==t?void 0:t.creationScope)&&void 0!==e?e:_).importNode(i,!0);j.currentNode=o;let a=j.nextNode(),s=0,n=0,r=l[0];for(;void 0!==r;){if(s===r.index){let e;2===r.type?e=new W(a,a.nextSibling,this,t):1===r.type?e=new r.ctor(a,r.name,r.strings,this,t):6===r.type&&(e=new K(a,this,t)),this.v.push(e),r=l[++n]}s!==(null==r?void 0:r.index)&&(a=j.nextNode(),s++)}return o}m(t){let e=0;for(const i of this.v)void 0!==i&&(void 0!==i.strings?(i._$AI(t,i,e),e+=i.strings.length-2):i._$AI(t[e])),e++}}class W{constructor(t,e,i,l){var o;this.type=2,this._$AH=O,this._$AN=void 0,this._$AA=t,this._$AB=e,this._$AM=i,this.options=l,this._$Cg=null===(o=null==l?void 0:l.isConnected)||void 0===o||o}get _$AU(){var t,e;return null!==(e=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==e?e:this._$Cg}get parentNode(){let t=this._$AA.parentNode;const e=this._$AM;return void 0!==e&&11===t.nodeType&&(t=e.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,e=this){t=q(this,t,e),E(t)?t===O||null==t||""===t?(this._$AH!==O&&this._$AR(),this._$AH=O):t!==this._$AH&&t!==I&&this.$(t):void 0!==t._$litType$?this.T(t):void 0!==t.nodeType?this.k(t):S(t)?this.S(t):this.$(t)}M(t,e=this._$AB){return this._$AA.parentNode.insertBefore(t,e)}k(t){this._$AH!==t&&(this._$AR(),this._$AH=this.M(t))}$(t){this._$AH!==O&&E(this._$AH)?this._$AA.nextSibling.data=t:this.k(_.createTextNode(t)),this._$AH=t}T(t){var e;const{values:i,_$litType$:l}=t,o="number"==typeof l?this._$AC(t):(void 0===l.el&&(l.el=B.createElement(l.h,this.options)),l);if((null===(e=this._$AH)||void 0===e?void 0:e._$AD)===o)this._$AH.m(i);else{const t=new Y(o,this),e=t.p(this.options);t.m(i),this.k(e),this._$AH=t}}_$AC(t){let e=D.get(t.strings);return void 0===e&&D.set(t.strings,e=new B(t)),e}S(t){k(this._$AH)||(this._$AH=[],this._$AR());const e=this._$AH;let i,l=0;for(const o of t)l===e.length?e.push(i=new W(this.M(A()),this.M(A()),this,this.options)):i=e[l],i._$AI(o),l++;l<e.length&&(this._$AR(i&&i._$AB.nextSibling,l),e.length=l)}_$AR(t=this._$AA.nextSibling,e){var i;for(null===(i=this._$AP)||void 0===i||i.call(this,!1,!0,e);t&&t!==this._$AB;){const e=t.nextSibling;t.remove(),t=e}}setConnected(t){var e;void 0===this._$AM&&(this._$Cg=t,null===(e=this._$AP)||void 0===e||e.call(this,t))}}class V{constructor(t,e,i,l,o){this.type=1,this._$AH=O,this._$AN=void 0,this.element=t,this.name=e,this._$AM=l,this.options=o,i.length>2||""!==i[0]||""!==i[1]?(this._$AH=Array(i.length-1).fill(new String),this.strings=i):this._$AH=O}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,e=this,i,l){const o=this.strings;let a=!1;if(void 0===o)t=q(this,t,e,0),a=!E(t)||t!==this._$AH&&t!==I,a&&(this._$AH=t);else{const l=t;let s,n;for(t=o[0],s=0;s<o.length-1;s++)n=q(this,l[i+s],e,s),n===I&&(n=this._$AH[s]),a||(a=!E(n)||n!==this._$AH[s]),n===O?t=O:t!==O&&(t+=(null!=n?n:"")+o[s+1]),this._$AH[s]=n}a&&!l&&this.C(t)}C(t){t===O?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"")}}class F extends V{constructor(){super(...arguments),this.type=3}C(t){this.element[this.name]=t===O?void 0:t}}const Z=w?w.emptyScript:"";class G extends V{constructor(){super(...arguments),this.type=4}C(t){t&&t!==O?this.element.setAttribute(this.name,Z):this.element.removeAttribute(this.name)}}class J extends V{constructor(t,e,i,l,o){super(t,e,i,l,o),this.type=5}_$AI(t,e=this){var i;if((t=null!==(i=q(this,t,e,0))&&void 0!==i?i:O)===I)return;const l=this._$AH,o=t===O&&l!==O||t.capture!==l.capture||t.once!==l.once||t.passive!==l.passive,a=t!==O&&(l===O||o);o&&this.element.removeEventListener(this.name,this,l),a&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var e,i;"function"==typeof this._$AH?this._$AH.call(null!==(i=null===(e=this.options)||void 0===e?void 0:e.host)&&void 0!==i?i:this.element,t):this._$AH.handleEvent(t)}}class K{constructor(t,e,i){this.element=t,this.type=6,this._$AN=void 0,this._$AM=e,this.options=i}get _$AU(){return this._$AM._$AU}_$AI(t){q(this,t)}}const Q=window.litHtmlPolyfillSupport;var X,tt;null==Q||Q(B,W),(null!==(v=globalThis.litHtmlVersions)&&void 0!==v?v:globalThis.litHtmlVersions=[]).push("2.2.3");class et extends b{constructor(){super(...arguments),this.renderOptions={host:this},this._$Dt=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const e=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Dt=((t,e,i)=>{var l,o;const a=null!==(l=null==i?void 0:i.renderBefore)&&void 0!==l?l:e;let s=a._$litPart$;if(void 0===s){const t=null!==(o=null==i?void 0:i.renderBefore)&&void 0!==o?o:null;a._$litPart$=s=new W(e.insertBefore(A(),t),t,void 0,null!=i?i:{})}return s._$AI(t),s})(e,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Dt)||void 0===t||t.setConnected(!1)}render(){return I}}et.finalized=!0,et._$litElement$=!0,null===(X=globalThis.litElementHydrateSupport)||void 0===X||X.call(globalThis,{LitElement:et});const it=globalThis.litElementPolyfillSupport;null==it||it({LitElement:et});(null!==(tt=globalThis.litElementVersions)&&void 0!==tt?tt:globalThis.litElementVersions=[]).push("3.2.0");const lt=(t,e,i)=>{let l=t[0];for(let o=1;o<t.length;o++)l+=e[i?i[o-1]:o-1],l+=t[o];return l},ot=t=>{return"string"!=typeof(e=t)&&"strTag"in e?lt(t.strings,t.values):t;var e},at="lit-localize-status";class st{constructor(t){this.__litLocalizeEventHandler=t=>{"ready"===t.detail.status&&this.host.requestUpdate()},this.host=t}hostConnected(){window.addEventListener(at,this.__litLocalizeEventHandler)}hostDisconnected(){window.removeEventListener(at,this.__litLocalizeEventHandler)}}const nt=t=>t.addController(new st(t)),rt=()=>t=>"function"==typeof t?ct(t):dt(t),dt=({kind:t,elements:e})=>({kind:t,elements:e,finisher(t){t.addInitializer(nt)}}),ct=t=>(t.addInitializer(nt),t);class pt{constructor(){this.settled=!1,this.promise=new Promise(((t,e)=>{this._resolve=t,this._reject=e}))}resolve(t){this.settled=!0,this._resolve(t)}reject(t){this.settled=!0,this._reject(t)}}const ht=[];for(let t=0;t<256;t++)ht[t]=(t>>4&15).toString(16)+(15&t).toString(16);function gt(t,e){return(e?"h":"s")+function(t){let e=0,i=8997,l=0,o=33826,a=0,s=40164,n=0,r=52210;for(let d=0;d<t.length;d++)i^=t.charCodeAt(d),e=435*i,l=435*o,a=435*s,n=435*r,a+=i<<8,n+=o<<8,l+=e>>>16,i=65535&e,a+=l>>>16,o=65535&l,r=n+(a>>>16)&65535,s=65535&a;return ht[r>>8]+ht[255&r]+ht[s>>8]+ht[255&s]+ht[o>>8]+ht[255&o]+ht[i>>8]+ht[255&i]}("string"==typeof t?t:t.join(""))}const ut=new WeakMap,mt=new Map;function bt(t,e,i){var l;if(t){const o=null!==(l=null==i?void 0:i.id)&&void 0!==l?l:function(t){const e="string"==typeof t?t:t.strings;let i=mt.get(e);void 0===i&&(i=gt(e,"string"!=typeof t&&!("strTag"in t)),mt.set(e,i));return i}(e),a=t[o];if(a){if("string"==typeof a)return a;if("strTag"in a)return lt(a.strings,e.values,a.values);{let t=ut.get(a);return void 0===t&&(t=a.values,ut.set(a,t)),a.values=t.map((t=>e.values[t])),a}}}return ot(e)}function vt(t){window.dispatchEvent(new CustomEvent(at,{detail:t}))}let wt,ft,yt,xt,$t,_t="",At=new pt;At.resolve();let Et=0;const kt=()=>_t,St=t=>{if(t===(null!=wt?wt:_t))return At.promise;if(!yt||!xt)throw Error("Internal error");if(!yt.has(t))throw Error("Invalid locale code");Et++;const e=Et;wt=t,At.settled&&(At=new pt),vt({status:"loading",loadingLocale:t});return(t===ft?Promise.resolve({templates:void 0}):xt(t)).then((i=>{Et===e&&(_t=t,wt=void 0,$t=i.templates,vt({status:"ready",readyLocale:t}),At.resolve())}),(i=>{Et===e&&(vt({status:"error",errorLocale:t,errorMessage:i.toString()}),At.reject(i))})),At.promise};let Ct=ot,Rt=!1;const Pt=t=>e=>"function"==typeof e?((t,e)=>(window.customElements.define(t,e),e))(t,e):((t,e)=>{const{kind:i,elements:l}=e;return{kind:i,elements:l,finisher(e){window.customElements.define(t,e)}}})(t,e),Ut=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?{...e,finisher(i){i.createProperty(e.key,t)}}:{kind:"field",key:Symbol(),placement:"own",descriptor:{},originalKey:e.key,initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function Tt(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):Ut(t,e)}var Lt;null===(Lt=window.HTMLSlotElement)||void 0===Lt||Lt.prototype.assignedElements;const Ht=["ru"],Mt={s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s8d0173763d91830c:"Этот веб-сайт имеет функционал приложения. Добавьте его на экран «Домой», чтобы получить дополнительные возможности и удобство использования.",sa5ef80b4bb9b39f8:"Свернуть",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdca23702207fba73:"Этот веб-сайт имеет функционал приложения. Установите его, чтобы получить дополнительные возможности и удобство использования.",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере"},zt=new Map([["ru",i]]),{getLocale:It,setLocale:Ot}=(Dt={sourceLocale:"en",targetLocales:Ht,loadLocale:async t=>zt.get(t)},function(t){if(Rt)throw Error("lit-localize can only be configured once");Ct=t,Rt=!0}(((t,e)=>bt($t,t,e))),_t=ft=Dt.sourceLocale,yt=new Set(Dt.targetLocales),yt.add(Dt.sourceLocale),xt=Dt.loadLocale,{getLocale:kt,setLocale:St});var Dt;class jt{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const Nt=n`.gallery{position:relative;--scrollbar-background-color:#fff;--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:45vh;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:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:#646464}.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 7px 1px;background-repeat:no-repeat;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 7px 1px;cursor:pointer}.gallery .btn:hover svg{opacity:.7}.gallery .btn svg{width:20px;height:20px;opacity:.5}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}@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}}`,Bt=(t,e,i)=>z`${t?z`<div id="paginated_gallery" class="gallery"><div class="gallery_scroller"><div class="scroller_wrap">${t.map((t=>z`<img draggable="false" src='${t.src}'>`))}</div></div><span class="btn prev" @click="${i}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M39.3756,48.0022l30.47-25.39a6.0035,6.0035,0,0,0-7.6878-9.223L26.1563,43.3906a6.0092,6.0092,0,0,0,0,9.2231L62.1578,82.615a6.0035,6.0035,0,0,0,7.6878-9.2231Z" fill="%23999" fill-rule="evenodd"/></svg> </span><span class="btn next" @click="${e}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M69.8437,43.3876,33.8422,13.3863a6.0035,6.0035,0,0,0-7.6878,9.223l30.47,25.39-30.47,25.39a6.0035,6.0035,0,0,0,7.6878,9.2231L69.8437,52.6106a6.0091,6.0091,0,0,0,0-9.223Z" fill="%23000" fill-rule="evenodd"/></svg></span></div>`:""}`;var qt=function(t,e,i,l){var o,a=arguments.length,s=a<3?e:null===l?l=Object.getOwnPropertyDescriptor(e,i):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,l);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(s=(a<3?o(s):a>3?o(e,i,s):o(e,i))||s);return a>3&&s&&Object.defineProperty(e,i,s),s},Yt=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let Wt=class extends et{constructor(){super(...arguments),this.screenshots=[],this.calcScrollSize=()=>{const t=this.shadowRoot.querySelector("#paginated_gallery");if(!t)return;const e=t.querySelector(".gallery_scroller");if(!e)return;const i=Array.from(e.querySelectorAll("img"));if(!i)return;const l=i.find((t=>t.offsetWidth+t.offsetLeft>=e.scrollLeft));return l?{scroller:e,item:l}:void 0},this.scrollToNextPage=()=>{const t=this.calcScrollSize();t&&t.item.nextElementSibling&&t.scroller.scrollTo({top:0,left:t.scroller.scrollLeft+t.scroller.clientWidth+t.item.nextElementSibling.clientWidth/2,behavior:"smooth"})},this.scrollToPrevPage=()=>{const t=this.calcScrollSize();t&&t.item.previousElementSibling&&t.scroller.scrollTo({top:0,left:t.scroller.scrollLeft-t.scroller.clientWidth-t.item.previousElementSibling.clientWidth/2,behavior:"smooth"})},this._init=()=>{}}static get styles(){return Nt}firstUpdated(){const t=this.calcScrollSize();t&&setTimeout((()=>{t.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return z`${Bt(this.screenshots,this.scrollToNextPage,this.scrollToPrevPage)}`}};qt([Tt(),Yt("design:type",Object)],Wt.prototype,"screenshots",void 0),Wt=qt([Pt("pwa-gallery")],Wt);const Vt=Wt,Ft=(t,e,i,l)=>z`<div class="touch-header" id="touch-header"></div><div class="body-header"><div class="icon"><img src="${i}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${t}</label></div><div class="hostname">${location.hostname}</div></div><button class="material-button primary install" @click='${l}'>${Ct("Install")}</button></div>${e?z`<div class="description">${e}</div>`:""}`;var Zt=function(t,e,i,l){var o,a=arguments.length,s=a<3?e:null===l?l=Object.getOwnPropertyDescriptor(e,i):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,l);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(s=(a<3?o(s):a>3?o(e,i,s):o(e,i))||s);return a>3&&s&&Object.defineProperty(e,i,s),s},Gt=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let Jt=class extends et{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(t,e,i)=>{if(!t||!e||!i)return null;let l=0;const o=e.clientHeight+i.clientHeight,a=t=>t.clientY||(t.changedTouches&&t.changedTouches.length?t.changedTouches[0].clientY:0),s=t=>{window.addEventListener("mouseup",n),window.addEventListener("mousemove",r),window.addEventListener("touchend",n),window.addEventListener("touchmove",r),l=a(t)-e.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=e=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!(a(e)>=window.innerHeight-25))return window.innerHeight-a(e)>t.clientHeight/2.5?void d(e,window.innerHeight-t.clientHeight):void d(e,window.innerHeight-o-35);d(e,window.innerHeight+50,!0)},r=e=>{const i=a(e);i<=window.innerHeight-t.clientHeight+l||(t.style.setProperty("transition","none"),t.style.setProperty("--translateY",`translateY(${i-l}px)`))},d=(i,l,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!l&&a(i)>=window.innerHeight-o?t.style.setProperty("--translateY",`translateY(calc(100vh - ${o}px))`):t.style.setProperty("--translateY",`translateY(${(l||a(i))+35}px)`),t.style.setProperty("transition","transform 500ms cubic-bezier(0.4, 0, 0, 1) 0s"),d&&(e.removeEventListener("mousedown",s),e.removeEventListener("touchstart",s),setTimeout(this._callHide,250)))};return e.addEventListener("mousedown",s),e.addEventListener("touchstart",s,{passive:!0}),d(new MouseEvent("mouseup"),window.innerHeight-o-35),{touchElement:e,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 z`${Ft(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};Zt([Tt(),Gt("design:type",Object)],Jt.prototype,"props",void 0),Zt([Tt(),Gt("design:type",Object)],Jt.prototype,"install",void 0),Zt([Tt(),Gt("design:type",Object)],Jt.prototype,"hideDialog",void 0),Jt=Zt([Pt("pwa-bottom-sheet")],Jt);const Kt=Jt,Qt=(t,e,i)=>{const l=new CustomEvent(e,{detail:{message:i}});t.dispatchEvent(l)};class Xt{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){return"getInstalledRelatedApps"in navigator&&await navigator.getInstalledRelatedApps().then((t=>t)),[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(t){Qt(t,"pwa-install-success-event","Application installation successfully processed (Chromium/Android only)")}static eventInstalledFail(t){Qt(t,"pwa-install-fail-event","Application installation failed (Chromium/Android only)")}static eventUserChoiceResult(t,e){Qt(t,"pwa-user-choice-result-event",e)}static eventInstallAvailable(t){Qt(t,"pwa-install-available-event","Application installation available")}}const te=n`#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:5}#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 .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:-webkit-max-content 1fr -webkit-max-content;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}}`,ee=n`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.75);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);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),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:1;visibility:visible;transform:translateY(100%);will-change:transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px auto 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, .2));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#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 .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 .about .close{height:26px;min-width:26px;line-height:0;margin-right:-3px;margin-top:-3px;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}#pwa-install-element .install-dialog.apple.dialog-body .about .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .about .close:active,#pwa-install-element .install-dialog.apple.dialog-body .about .close:hover{opacity:1;background-color:var(--background-color-button)}#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;gap:15px;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;gap:15px;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;transform:scale(.8)}#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}#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;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-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{fill:#527afb}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.75)}#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-duration:.5s}#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;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}@media(min-width:768px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:150px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto}}@media(min-width:768px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:28px;left:auto}}@media(max-width:767px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;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}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple{--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}}`,ie=1;const le=(t=>(...e)=>({_$litDirective$:t,values:e}))(class extends class{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)}}{constructor(t){var e;if(super(t),t.type!==ie||"class"!==t.name||(null===(e=t.strings)||void 0===e?void 0:e.length)>2)throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.")}render(t){return" "+Object.keys(t).filter((e=>t[e])).join(" ")+" "}update(t,[e]){var i,l;if(void 0===this.et){this.et=new Set,void 0!==t.strings&&(this.st=new Set(t.strings.join(" ").split(/\s/).filter((t=>""!==t))));for(const t in e)e[t]&&!(null===(i=this.st)||void 0===i?void 0:i.has(t))&&this.et.add(t);return this.render(e)}const o=t.element.classList;this.et.forEach((t=>{t in e||(o.remove(t),this.et.delete(t))}));for(const t in e){const i=!!e[t];i===this.et.has(t)||(null===(l=this.st)||void 0===l?void 0:l.has(t))||(i?(o.add(t),this.et.add(t)):(o.remove(t),this.et.delete(t)))}return I}}),oe=(t,e,i,l,o,a,s,n,r,d,c)=>{const p=()=>({available:s,gallery:c});return z`<div id="pwa-install-element"><div class="install-dialog chrome ${le(p())}"><div class="dialog-body"><div class="icon"><img src="${o}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${t}</label> <button class="material-button secondary close" @click='${n}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="hostname">${location.hostname}</div></div>${e?z`<div class="description app-description">${e}</div>`:""} ${l?"":z`<hr><div class="description install-description">${i||Ct("This site has app functionality. Install it on your device for extensive experience and easy access.")}</div>`} ${a.screenshots&&a.screenshots.length?z`<pwa-gallery .screenshots=${a.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${a.screenshots&&a.screenshots.length?z`<button class="material-button secondary" @click='${d}'>${Ct(c?"Less":"More")}</button>`:""} <button class="material-button primary install" @click='${r}'>${Ct("Install")}</button></div></div></div><div class="install-dialog chrome mobile ${le(p())}"><div class="dialog-body"><pwa-bottom-sheet .props=${{name:t,icon:o,description:e}} .install=${r} .hideDialog=${n}></pwa-bottom-sheet>${a.screenshots&&a.screenshots.length?z`<pwa-gallery .screenshots=${a.screenshots}></pwa-gallery>`:""}</div></div></div>`},ae=(t,e,i,l,o,a,s,n,r,d,c,p)=>z`<aside id="pwa-install-element"><article class="install-dialog apple ${le({available:s,"how-to":d,gallery:p})} dialog-body"><div class="icon"><img src="${o}" alt="icon" class="icon-image"></div><div class="about"><div class="name">${t} <button type="button" class="close" @click='${n}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="description">${e||location.hostname}</div></div>${l?"":z`<div class="welcome-to-install">${i||Ct("This site has app functionality. Add it to your Home Screen for extensive experience and easy access.")}</div>`}<div class="how-to-body"><div class="how-to-description"><div class="description-step"><div class="svg-wrap"><svg id="pwa-safari" viewBox="0 0 13.964 13.964" width="24" height="24"><path d="M6.982 0A6.99 6.99 0 000 6.982a6.99 6.99 0 006.982 6.982 6.99 6.99 0 006.982-6.982A6.99 6.99 0 006.982 0zm0 1.074a5.9 5.9 0 015.908 5.908 5.9 5.9 0 01-5.908 5.908 5.9 5.9 0 01-5.908-5.908 5.9 5.9 0 015.908-5.908zm3.76 2.148L5.6 5.624l-2.379 5.117 5.165-2.354zM6.963 6.288a.795.795 0 11-.001 1.59.795.795 0 010-1.59z" font-weight="400" font-family="sans-serif" overflow="visible"/></svg></div><div class="step-text">${Ct("1) Open in Safari browser")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-share" width="25" height="32"><g><path d="m12.51122,20.7648c0.52277,0 0.99149,-0.43265 0.99149,-0.95542l0,-14.87204l-0.09015,-2.0731l1.11768,1.15371l2.27135,2.37952c0.18028,0.19833 0.43265,0.30647 0.68502,0.30647c0.50476,0 0.90134,-0.37857 0.90134,-0.88332c0,-0.27039 -0.10817,-0.46869 -0.28844,-0.64895l-4.86721,-4.74103c-0.25237,-0.25237 -0.46869,-0.32448 -0.72106,-0.32448c-0.25237,0 -0.46869,0.0721 -0.72106,0.32448l-4.88523,4.74103c-0.18028,0.18028 -0.28844,0.37857 -0.28844,0.64895c0,0.50476 0.37857,0.88332 0.90134,0.88332c0.23436,0 0.50476,-0.10814 0.68502,-0.30647l2.27135,-2.37952l1.11768,-1.17172l-0.0721,2.09112l0,14.87204c0,0.52277 0.45066,0.95542 0.99145,0.95542l-0.00002,0l-0.00001,-0.00001zm-8.13005,10.96022l16.22403,0c2.86626,0 4.30841,-1.42412 4.30841,-4.23627l0,-14.27715c0,-2.79415 -1.44215,-4.23627 -4.30841,-4.23627l-3.96589,0l0,2.00095l3.92985,0c1.47819,0 2.34345,0.79316 2.34345,2.34345l0,14.06085c0,1.5503 -0.86527,2.34347 -2.34345,2.34347l-16.15194,0c-1.49625,0 -2.32547,-0.79317 -2.32547,-2.34347l0,-14.06085c0,-1.55029 0.82923,-2.34345 2.32547,-2.34345l3.96589,0l0,-2.00095l-4.00196,0c-2.84821,0 -4.29035,1.4241 -4.29035,4.23627l0,14.27715c0,2.81217 1.44215,4.23627 4.29035,4.23627l0.00001,0l0.00001,0z"/></g></svg></div><div class="step-text">${Ct("2) Press Share in Navigation bar")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-add" width="25" height="25"><g><path d="m23.40492,1.60784c-1.32504,-1.32504 -3.19052,-1.56912 -5.59644,-1.56912l-10.65243,0c-2.33622,0 -4.2017,0.24408 -5.5267,1.56912c-1.32504,1.34243 -1.56911,3.17306 -1.56911,5.50924l0,10.5827c0,2.40596 0.22665,4.254 1.55165,5.57902c1.34246,1.32501 3.19052,1.5691 5.59647,1.5691l10.60013,0c2.40592,0 4.2714,-0.24408 5.59644,-1.5691c1.325,-1.34245 1.55166,-3.17306 1.55166,-5.57902l0,-10.51293c0,-2.40596 -0.22666,-4.25401 -1.55166,-5.57901zm-0.38355,5.21289l0,11.24518c0,1.51681 -0.20924,2.94643 -1.02865,3.78327c-0.83683,0.83685 -2.30134,1.0635 -3.81815,1.0635l-11.33234,0c-1.51681,0 -2.96386,-0.22665 -3.80073,-1.0635c-0.83683,-0.83684 -1.04607,-2.26646 -1.04607,-3.78327l0,-11.19288c0,-1.5517 0.20924,-3.01617 1.02865,-3.85304c0.83687,-0.83683 2.31876,-1.04607 3.87042,-1.04607l11.28007,0c1.51681,0 2.98132,0.22666 3.81815,1.06353c0.81941,0.81941 1.02865,2.26645 1.02865,3.78327zm-10.53039,12.08205c0.64506,0 1.02861,-0.43586 1.02861,-1.13326l0,-4.34117l4.53294,0c0.66252,0 1.13326,-0.36613 1.13326,-0.99376c0,-0.64506 -0.43586,-1.02861 -1.13326,-1.02861l-4.53294,0l0,-4.53294c0,-0.6974 -0.38355,-1.13326 -1.02861,-1.13326c-0.62763,0 -0.99376,0.45332 -0.99376,1.13326l0,4.53294l-4.51552,0c-0.69737,0 -1.15069,0.38355 -1.15069,1.02861c0,0.62763 0.48817,0.99376 1.15069,0.99376l4.51552,0l0,4.34117c0,0.66252 0.36613,1.13326 0.99376,1.13326z"/></g></svg></div><div class="step-text">${Ct("3) Press Add to Home Screen")}</div></div></div></div>${a.screenshots&&a.screenshots.length?z`<pwa-gallery .screenshots=${a.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${a.screenshots&&a.screenshots.length?z`<button class="dialog-button button gallery" @click=${c}><svg id="pwa-gallery" width="26" height="26" viewBox="0 0 23.538 18.022"><path d="M2.79 18.022h17.958c1.834 0 2.79-.969 2.79-2.778V2.791C23.538.969 22.582 0 20.748 0H2.791C.956 0 0 .956 0 2.79v12.454c0 1.835.956 2.778 2.79 2.778zM.879 2.83C.878 1.55 1.55.88 2.816.88h17.906c1.228 0 1.938.671 1.938 1.95v12.067L16.756 9.47c-.517-.414-.995-.685-1.615-.685-.607 0-1.085.22-1.576.672L8.927 13.59l-1.938-1.796c-.426-.387-.853-.607-1.382-.607-.504 0-.879.207-1.305.594L.878 14.986zm6.46 6.356a2.39 2.39 0 002.377-2.39c0-1.304-1.072-2.39-2.377-2.39a2.401 2.401 0 00-2.39 2.39 2.393 2.393 0 002.39 2.39z"/></svg></button>`:""} <button class="dialog-button button install" @click=${r}><span class="button-text ${d?"show":"hide"}">${Ct("Hide Instruction")}</span> <span class="button-text ${d?"hide":"show"}"><span>${Ct("Add to Home Screen")}</span> <svg width="25" height="25"><use href="#pwa-add"></use></svg></span></button></div></article></aside>`;var se=function(t,e,i,l){var o,a=arguments.length,s=a<3?e:null===l?l=Object.getOwnPropertyDescriptor(e,i):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(t,e,i,l);else for(var n=t.length-1;n>=0;n--)(o=t[n])&&(s=(a<3?o(s):a>3?o(e,i,s):o(e,i))||s);return a>3&&s&&Object.defineProperty(e,i,s),s},ne=function(t,e){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(t,e)};let re=class extends et{constructor(){super(...arguments),this.manifest=new jt,this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.deferredEvent&&(this.hideDialog(),window.deferredEvent.prompt(),window.deferredEvent.userChoice.then((t=>{this.userChoiceResult=t.outcome,Xt.eventUserChoiceResult(this,this.userChoiceResult)})).catch((t=>{Xt.eventInstalledFail(this)})),window.deferredEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform?(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=()=>{Xt.eventUserChoiceResult(this,"dismissed"),this.hideDialog()},this.hideDialog=()=>{this._hideDialog.handleEvent()},this.showDialog=(t=!1)=>{this.isDialogHidden=!1,t&&(this.isInstallAvailable=!0),window.sessionStorage.setItem("pwa-hide-install","false"),this.requestUpdate()},this.getInstalledRelatedApps=async()=>await Xt.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate()},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this.requestUpdate()},passive:!0},this._init=()=>{window.deferredEvent=null,this._checkInstalled(),this.disableChrome||window.addEventListener("beforeinstallprompt",(t=>{window.deferredEvent=t,t.preventDefault(),this.platforms=t.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,Xt.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,Xt.eventInstalledSuccess(this)),this.requestUpdate()})),window.addEventListener("appinstalled",(t=>{window.deferredEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),Xt.eventInstalledSuccess(this)})),fetch(this.manifestUrl).then((t=>{t.ok?t.json().then((t=>{this.icon=this.icon||t.icons[0].src,this.name=this.name||t.short_name||t.name,this.description=this.description||t.description,this.manifest=t})):(this.icon=this.icon||this.manifest.icons?.[0].src||"",this.name=this.name||this.manifest.short_name||"",this.description=this.description||this.manifest.description||"")}))}}static get styles(){return[te,ee]}async _checkInstalled(){this.isUnderStandaloneMode=Xt.isStandalone(),this.isRelatedAppsInstalled=await Xt.isRelatedAppsInstalled(),this.isAppleMobilePlatform=Xt.isAppleMobile(),this.isAppleMobilePlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),Xt.eventInstallAvailable(this)}),300)):this.manualChrome&&this.hideDialog()}connectedCallback(){(t=>{try{Ot(t.slice(0,2))}catch{}})(navigator.language),this._init(),Vt.finalized,Kt.finalized,super.connectedCallback()}render(){return this.isAppleMobilePlatform?z`${ae(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:z`${oe(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};se([Tt({attribute:"manifest-url"}),ne("design:type",Object)],re.prototype,"manifestUrl",void 0),se([Tt(),ne("design:type",Object)],re.prototype,"icon",void 0),se([Tt(),ne("design:type",Object)],re.prototype,"name",void 0),se([Tt(),ne("design:type",Object)],re.prototype,"description",void 0),se([Tt({attribute:"install-description"}),ne("design:type",Object)],re.prototype,"installDescription",void 0),se([Tt({attribute:"disable-install-description",type:Boolean}),ne("design:type",Object)],re.prototype,"disableDescription",void 0),se([Tt({attribute:"manual-apple",type:Boolean}),ne("design:type",Object)],re.prototype,"manualApple",void 0),se([Tt({attribute:"manual-chrome",type:Boolean}),ne("design:type",Object)],re.prototype,"manualChrome",void 0),se([Tt({attribute:"disable-chrome",type:Boolean}),ne("design:type",Object)],re.prototype,"disableChrome",void 0),re=se([rt(),Pt("pwa-install")],re),PWAInstallComponent=e})(); | ||
//# sourceMappingURL=pwa-install.bundle.js.map |
import { LitElement } from 'lit'; | ||
import { IManifest } from '../types/types'; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
export default class PWAGalleryElement extends LitElement { | ||
screenshots: IManifest['screenshots']; | ||
screenshots: WebAppManifest['screenshots']; | ||
static get styles(): CSSStyleSheet; | ||
@@ -6,0 +6,0 @@ calcScrollSize: () => { |
@@ -1,3 +0,3 @@ | ||
import { IManifest } from '../types/types'; | ||
declare const template: (screenshots: IManifest['screenshots'], scrollToNextPage: any, scrollToPrevPage: any) => import("lit-html").TemplateResult<1>; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
declare const template: (screenshots: WebAppManifest['screenshots'], scrollToNextPage: any, scrollToPrevPage: any) => import("lit-html").TemplateResult<1>; | ||
export default template; |
@@ -0,8 +1,4 @@ | ||
/// <reference types="dom-chromium-installation-events" /> | ||
import { LitElement } from 'lit'; | ||
import { IBeforeInstallPromptEvent, IRelatedApp } from './types/types'; | ||
declare global { | ||
interface WindowEventMap { | ||
beforeinstallprompt: IBeforeInstallPromptEvent; | ||
} | ||
} | ||
import { IRelatedApp, PWAInstallAttributes } from './types/types'; | ||
export declare class PWAInstallElement extends LitElement { | ||
@@ -20,3 +16,3 @@ private manifest; | ||
static get styles(): CSSStyleSheet[]; | ||
platforms: string; | ||
platforms: BeforeInstallPromptEvent['platforms']; | ||
userChoiceResult: string; | ||
@@ -44,1 +40,2 @@ isDialogHidden: boolean; | ||
} | ||
export { PWAInstallAttributes }; |
@@ -1,3 +0,3 @@ | ||
import { IManifest } from '../../types/types'; | ||
declare const template: (name: string, description: string, installDescription: string, disableDescription: boolean, icon: string, manifest: IManifest, installAvailable: any, hideDialog: any, howToForApple: any, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => import("lit-html").TemplateResult<1>; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
declare const template: (name: string, description: string, installDescription: string, disableDescription: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => import("lit-html").TemplateResult<1>; | ||
export default template; |
@@ -1,3 +0,3 @@ | ||
import { IManifest } from '../../types/types'; | ||
declare const template: (name: string, description: string, installDescription: string, disableDescription: boolean, icon: string, manifest: IManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => import("lit-html").TemplateResult<1>; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
declare const template: (name: string, description: string, installDescription: string, disableDescription: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => import("lit-html").TemplateResult<1>; | ||
export default template; |
@@ -1,10 +0,3 @@ | ||
export interface IChoiceResult { | ||
outcome: 'accepted' | 'dismissed'; | ||
platform: string; | ||
} | ||
export interface IBeforeInstallPromptEvent extends Event { | ||
platforms: string; | ||
userChoice: Promise<IChoiceResult>; | ||
prompt: () => {}; | ||
} | ||
/// <reference types="dom-chromium-installation-events" /> | ||
import { ImageResource } from 'web-app-manifest'; | ||
export interface IRelatedApp { | ||
@@ -16,21 +9,24 @@ id: string; | ||
export interface IWindow extends Window { | ||
deferredEvent: IBeforeInstallPromptEvent | null; | ||
deferredEvent: BeforeInstallPromptEvent | null; | ||
} | ||
export interface IPWAIcon { | ||
src: string; | ||
declare type Booleanish = 'true' | 'false'; | ||
export interface PWAInstallAttributes { | ||
['manual-apple']?: Booleanish; | ||
['manual-chrome']?: Booleanish; | ||
['disable-chrome']?: Booleanish; | ||
['install-description']?: string; | ||
['disable-install-description']?: Booleanish; | ||
['manifest-url']?: string; | ||
name?: string; | ||
description?: string; | ||
icon?: string; | ||
} | ||
export interface IManifest { | ||
short_name: string; | ||
name: string; | ||
description: string; | ||
icons: IPWAIcon[]; | ||
screenshots?: IPWAIcon[] | null; | ||
} | ||
export declare class Manifest { | ||
constructor(); | ||
short_name: string; | ||
icons: IPWAIcon[]; | ||
screenshots: IPWAIcon[] | null; | ||
icons: ImageResource[]; | ||
screenshots?: ImageResource[]; | ||
name: string; | ||
description: string; | ||
} | ||
export {}; |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("lit"),require("@lit/localize"),require("lit/decorators.js"),require("lit/directives/class-map.js")):"function"==typeof define&&define.amd?define(["lit","@lit/localize","lit/decorators.js","lit/directives/class-map.js"],t):"object"==typeof exports?exports.PWAInstallComponent=t(require("lit"),require("@lit/localize"),require("lit/decorators.js"),require("lit/directives/class-map.js")):e.PWAInstallComponent=t(e.lit,e["@lit/localize"],e["lit/decorators.js"],e["lit/directives/class-map.js"])}(self,((e,t,l,i)=>(()=>{"use strict";var a={487:e=>{e.exports=t},870:t=>{t.exports=e},931:e=>{e.exports=l},536:e=>{e.exports=i}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var l=o[e]={exports:{}};return a[e](l,l.exports,s),l.exports}s.d=(e,t)=>{for(var l in t)s.o(t,l)&&!s.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:t[l]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{s.r(n),s.d(n,{PWAInstallElement:()=>L});var e={};s.r(e),s.d(e,{templates:()=>o});var t=s(870),l=s(487),i=s(931);const a=["ru"],o={s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s8d0173763d91830c:"Этот веб-сайт имеет функционал приложения. Добавьте его на экран «Домой», чтобы получить дополнительные возможности и удобство использования.",sa5ef80b4bb9b39f8:"Свернуть",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdca23702207fba73:"Этот веб-сайт имеет функционал приложения. Установите его, чтобы получить дополнительные возможности и удобство использования.",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере"},r=new Map([["ru",e]]),{getLocale:d,setLocale:p}=(0,l.configureLocalization)({sourceLocale:"en",targetLocales:a,loadLocale:async e=>r.get(e)});class c{constructor(){this.icons=[{src:""}],this.screenshots=null,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const h=t.css`.gallery{position:relative;--scrollbar-background-color:#fff;--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:45vh;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:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:#646464}.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;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 7px 1px;background-repeat:no-repeat;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 7px 1px;cursor:pointer}.gallery .btn:hover svg{opacity:.7}.gallery .btn svg{width:20px;height:20px;opacity:.5}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}@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}}`,g=(e,l,i)=>t.html`${e?t.html`<div id="paginated_gallery" class="gallery"><div class="gallery_scroller"><div class="scroller_wrap">${e.map((e=>t.html`<img draggable="false" src='${e.src}'>`))}</div></div><span class="btn prev" @click="${i}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M39.3756,48.0022l30.47-25.39a6.0035,6.0035,0,0,0-7.6878-9.223L26.1563,43.3906a6.0092,6.0092,0,0,0,0,9.2231L62.1578,82.615a6.0035,6.0035,0,0,0,7.6878-9.2231Z" fill="%23999" fill-rule="evenodd"/></svg> </span><span class="btn next" @click="${l}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M69.8437,43.3876,33.8422,13.3863a6.0035,6.0035,0,0,0-7.6878,9.223l30.47,25.39-30.47,25.39a6.0035,6.0035,0,0,0,7.6878,9.2231L69.8437,52.6106a6.0091,6.0091,0,0,0,0-9.223Z" fill="%23000" fill-rule="evenodd"/></svg></span></div>`:""}`;var m=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},b=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let u=class extends t.LitElement{constructor(){super(...arguments),this.screenshots=[],this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const l=Array.from(t.querySelectorAll("img"));if(!l)return;const i=l.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 h}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return t.html`${g(this.screenshots,this.scrollToNextPage,this.scrollToPrevPage)}`}};m([(0,i.property)(),b("design:type",Object)],u.prototype,"screenshots",void 0),u=m([(0,i.customElement)("pwa-gallery")],u);const w=u,v=(e,i,a,o)=>t.html`<div class="touch-header" id="touch-header"></div><div class="body-header"><div class="icon"><img src="${a}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${e}</label></div><div class="hostname">${location.hostname}</div></div><button class="material-button primary install" @click='${o}'>${(0,l.msg)("Install")}</button></div>${i?t.html`<div class="description">${i}</div>`:""}`;var y=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},x=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let f=class extends t.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,l)=>{if(!e||!t||!l)return null;let i=0;const a=t.clientHeight+l.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),i=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!(o(t)>=window.innerHeight-25))return window.innerHeight-o(t)>e.clientHeight/2.5?void d(t,window.innerHeight-e.clientHeight):void d(t,window.innerHeight-a-35);d(t,window.innerHeight+50,!0)},r=t=>{const l=o(t);l<=window.innerHeight-e.clientHeight+i||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${l-i}px)`))},d=(l,i,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!i&&o(l)>=window.innerHeight-a?e.style.setProperty("--translateY",`translateY(calc(100vh - ${a}px))`):e.style.setProperty("--translateY",`translateY(${(i||o(l))+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-a-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 t.html`${v(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};y([(0,i.property)(),x("design:type",Object)],f.prototype,"props",void 0),y([(0,i.property)(),x("design:type",Object)],f.prototype,"install",void 0),y([(0,i.property)(),x("design:type",Object)],f.prototype,"hideDialog",void 0),f=y([(0,i.customElement)("pwa-bottom-sheet")],f);const k=f,E=(e,t,l)=>{const i=new CustomEvent(t,{detail:{message:l}});e.dispatchEvent(i)};class _{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){return"getInstalledRelatedApps"in navigator&&await navigator.getInstalledRelatedApps().then((e=>e)),[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){E(e,"pwa-install-success-event","Application installation successfully processed (Chromium/Android only)")}static eventInstalledFail(e){E(e,"pwa-install-fail-event","Application installation failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){E(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){E(e,"pwa-install-available-event","Application installation available")}}const $=t.css`#pwa-install-element{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:5}#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 .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}}`,R=t.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.75);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);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:-100px;overflow:hidden;pointer-events:none;will-change:opacity,visibility,bottom,top}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px auto 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, .2));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#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 .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 .about .close{height:26px;min-width:26px;line-height:0;margin-right:-3px;margin-top:-3px;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}#pwa-install-element .install-dialog.apple.dialog-body .about .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .about .close:active,#pwa-install-element .install-dialog.apple.dialog-body .about .close:hover{opacity:1;background-color:var(--background-color-button)}#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;gap:15px;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;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;gap:15px;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;transform:scale(.8)}#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}#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;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;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-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{fill:#527afb}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.75)}#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;bottom:20px;visibility:visible;pointer-events:unset;transition:bottom .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out,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;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}@media(min-width:768px){#pwa-install-element .install-dialog.apple{top:-100px;bottom:unset;right:150px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto;transition:top .5s ease-in-out,opacity .8s ease-in-out,max-height .35s ease-in-out}}@media(min-width:768px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:28px;left:auto}}@media(max-width:767px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;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}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple{--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}}`;var A=s(536);const S=(e,i,a,o,s,n,r,d,p,c,h)=>{const g=()=>({available:r,gallery:h});return t.html`<div id="pwa-install-element"><div class="install-dialog chrome ${(0,A.classMap)(g())}"><div class="dialog-body"><div class="icon"><img src="${s}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${e}</label> <button class="material-button secondary close" @click='${d}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="hostname">${location.hostname}</div></div>${i?t.html`<div class="description app-description">${i}</div>`:""} ${o?"":t.html`<hr><div class="description install-description">${a||(0,l.msg)("This site has app functionality. Install it on your device for extensive experience and easy access.")}</div>`} ${n.screenshots&&n.screenshots.length?t.html`<pwa-gallery .screenshots=${n.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${n.screenshots&&n.screenshots.length?t.html`<button class="material-button secondary" @click='${c}'>${h?(0,l.msg)("Less"):(0,l.msg)("More")}</button>`:""} <button class="material-button primary install" @click='${p}'>${(0,l.msg)("Install")}</button></div></div></div><div class="install-dialog chrome mobile ${(0,A.classMap)(g())}"><div class="dialog-body"><pwa-bottom-sheet .props=${{name:e,icon:s,description:i}} .install=${p} .hideDialog=${d}></pwa-bottom-sheet>${n.screenshots&&n.screenshots.length?t.html`<pwa-gallery .screenshots=${n.screenshots}></pwa-gallery>`:""}</div></div></div>`},z=(e,i,a,o,s,n,r,d,p,c,h,g)=>t.html`<aside id="pwa-install-element"><article class="install-dialog apple ${(0,A.classMap)({available:r,"how-to":c,gallery:g})} dialog-body"><div class="icon"><img src="${s}" alt="icon" class="icon-image"></div><div class="about"><div class="name">${e} <button type="button" class="close" @click='${d}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="description">${i||location.hostname}</div></div>${o?"":t.html`<div class="welcome-to-install">${a||(0,l.msg)("This site has app functionality. Add it to your Home Screen for extensive experience and easy access.")}</div>`}<div class="how-to-body"><div class="how-to-description"><div class="description-step"><div class="svg-wrap"><svg id="pwa-safari" viewBox="0 0 13.964 13.964" width="24" height="24"><path d="M6.982 0A6.99 6.99 0 000 6.982a6.99 6.99 0 006.982 6.982 6.99 6.99 0 006.982-6.982A6.99 6.99 0 006.982 0zm0 1.074a5.9 5.9 0 015.908 5.908 5.9 5.9 0 01-5.908 5.908 5.9 5.9 0 01-5.908-5.908 5.9 5.9 0 015.908-5.908zm3.76 2.148L5.6 5.624l-2.379 5.117 5.165-2.354zM6.963 6.288a.795.795 0 11-.001 1.59.795.795 0 010-1.59z" font-weight="400" font-family="sans-serif" overflow="visible"/></svg></div><div class="step-text">${(0,l.msg)("1) Open in Safari browser")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-share" width="25" height="32"><g><path d="m12.51122,20.7648c0.52277,0 0.99149,-0.43265 0.99149,-0.95542l0,-14.87204l-0.09015,-2.0731l1.11768,1.15371l2.27135,2.37952c0.18028,0.19833 0.43265,0.30647 0.68502,0.30647c0.50476,0 0.90134,-0.37857 0.90134,-0.88332c0,-0.27039 -0.10817,-0.46869 -0.28844,-0.64895l-4.86721,-4.74103c-0.25237,-0.25237 -0.46869,-0.32448 -0.72106,-0.32448c-0.25237,0 -0.46869,0.0721 -0.72106,0.32448l-4.88523,4.74103c-0.18028,0.18028 -0.28844,0.37857 -0.28844,0.64895c0,0.50476 0.37857,0.88332 0.90134,0.88332c0.23436,0 0.50476,-0.10814 0.68502,-0.30647l2.27135,-2.37952l1.11768,-1.17172l-0.0721,2.09112l0,14.87204c0,0.52277 0.45066,0.95542 0.99145,0.95542l-0.00002,0l-0.00001,-0.00001zm-8.13005,10.96022l16.22403,0c2.86626,0 4.30841,-1.42412 4.30841,-4.23627l0,-14.27715c0,-2.79415 -1.44215,-4.23627 -4.30841,-4.23627l-3.96589,0l0,2.00095l3.92985,0c1.47819,0 2.34345,0.79316 2.34345,2.34345l0,14.06085c0,1.5503 -0.86527,2.34347 -2.34345,2.34347l-16.15194,0c-1.49625,0 -2.32547,-0.79317 -2.32547,-2.34347l0,-14.06085c0,-1.55029 0.82923,-2.34345 2.32547,-2.34345l3.96589,0l0,-2.00095l-4.00196,0c-2.84821,0 -4.29035,1.4241 -4.29035,4.23627l0,14.27715c0,2.81217 1.44215,4.23627 4.29035,4.23627l0.00001,0l0.00001,0z"/></g></svg></div><div class="step-text">${(0,l.msg)("2) Press Share in Navigation bar")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-add" width="25" height="25"><g><path d="m23.40492,1.60784c-1.32504,-1.32504 -3.19052,-1.56912 -5.59644,-1.56912l-10.65243,0c-2.33622,0 -4.2017,0.24408 -5.5267,1.56912c-1.32504,1.34243 -1.56911,3.17306 -1.56911,5.50924l0,10.5827c0,2.40596 0.22665,4.254 1.55165,5.57902c1.34246,1.32501 3.19052,1.5691 5.59647,1.5691l10.60013,0c2.40592,0 4.2714,-0.24408 5.59644,-1.5691c1.325,-1.34245 1.55166,-3.17306 1.55166,-5.57902l0,-10.51293c0,-2.40596 -0.22666,-4.25401 -1.55166,-5.57901zm-0.38355,5.21289l0,11.24518c0,1.51681 -0.20924,2.94643 -1.02865,3.78327c-0.83683,0.83685 -2.30134,1.0635 -3.81815,1.0635l-11.33234,0c-1.51681,0 -2.96386,-0.22665 -3.80073,-1.0635c-0.83683,-0.83684 -1.04607,-2.26646 -1.04607,-3.78327l0,-11.19288c0,-1.5517 0.20924,-3.01617 1.02865,-3.85304c0.83687,-0.83683 2.31876,-1.04607 3.87042,-1.04607l11.28007,0c1.51681,0 2.98132,0.22666 3.81815,1.06353c0.81941,0.81941 1.02865,2.26645 1.02865,3.78327zm-10.53039,12.08205c0.64506,0 1.02861,-0.43586 1.02861,-1.13326l0,-4.34117l4.53294,0c0.66252,0 1.13326,-0.36613 1.13326,-0.99376c0,-0.64506 -0.43586,-1.02861 -1.13326,-1.02861l-4.53294,0l0,-4.53294c0,-0.6974 -0.38355,-1.13326 -1.02861,-1.13326c-0.62763,0 -0.99376,0.45332 -0.99376,1.13326l0,4.53294l-4.51552,0c-0.69737,0 -1.15069,0.38355 -1.15069,1.02861c0,0.62763 0.48817,0.99376 1.15069,0.99376l4.51552,0l0,4.34117c0,0.66252 0.36613,1.13326 0.99376,1.13326z"/></g></svg></div><div class="step-text">${(0,l.msg)("3) Press Add to Home Screen")}</div></div></div></div>${n.screenshots&&n.screenshots.length?t.html`<pwa-gallery .screenshots=${n.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${n.screenshots&&n.screenshots.length?t.html`<button class="dialog-button button gallery" @click=${h}><svg id="pwa-gallery" width="26" height="26" viewBox="0 0 23.538 18.022"><path d="M2.79 18.022h17.958c1.834 0 2.79-.969 2.79-2.778V2.791C23.538.969 22.582 0 20.748 0H2.791C.956 0 0 .956 0 2.79v12.454c0 1.835.956 2.778 2.79 2.778zM.879 2.83C.878 1.55 1.55.88 2.816.88h17.906c1.228 0 1.938.671 1.938 1.95v12.067L16.756 9.47c-.517-.414-.995-.685-1.615-.685-.607 0-1.085.22-1.576.672L8.927 13.59l-1.938-1.796c-.426-.387-.853-.607-1.382-.607-.504 0-.879.207-1.305.594L.878 14.986zm6.46 6.356a2.39 2.39 0 002.377-2.39c0-1.304-1.072-2.39-2.377-2.39a2.401 2.401 0 00-2.39 2.39 2.393 2.393 0 002.39 2.39z"/></svg></button>`:""} <button class="dialog-button button install" @click=${p}><span class="button-text ${c?"show":"hide"}">${(0,l.msg)("Hide Instruction")}</span> <span class="button-text ${c?"hide":"show"}"><span>${(0,l.msg)("Add to Home Screen")}</span> <svg width="25" height="25"><use href="#pwa-add"></use></svg></span></button></div></article></aside>`;var I=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},j=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let L=class extends t.LitElement{constructor(){super(...arguments),this.manifest=new c,this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.platforms="",this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.deferredEvent&&(this.hideDialog(),window.deferredEvent.prompt(),window.deferredEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,_.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{_.eventInstalledFail(this)})),window.deferredEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform?(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=()=>{_.eventUserChoiceResult(this,"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 _.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate()},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this.requestUpdate()},passive:!0},this._init=()=>{window.deferredEvent=null,this._checkInstalled(),this.disableChrome||window.addEventListener("beforeinstallprompt",(e=>{window.deferredEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,_.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,_.eventInstalledSuccess(this)),this.requestUpdate()})),window.addEventListener("appinstalled",(e=>{window.deferredEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),_.eventInstalledSuccess(this)})),fetch(this.manifestUrl).then((e=>{e.ok?e.json().then((e=>{this.icon=this.icon||e.icons[0].src,this.name=this.name||e.short_name||e.name,this.description=this.description||e.description,this.manifest=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)}))}}static get styles(){return[$,R]}async _checkInstalled(){this.isUnderStandaloneMode=_.isStandalone(),this.isRelatedAppsInstalled=await _.isRelatedAppsInstalled(),this.isAppleMobilePlatform=_.isAppleMobile(),this.isAppleMobilePlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),_.eventInstallAvailable(this)}),300)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{try{p(e.slice(0,2))}catch{}})(navigator.language),this._init(),w.finalized,k.finalized,super.connectedCallback()}render(){return this.isAppleMobilePlatform?t.html`${z(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:t.html`${S(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};I([(0,i.property)({attribute:"manifest-url"}),j("design:type",Object)],L.prototype,"manifestUrl",void 0),I([(0,i.property)(),j("design:type",Object)],L.prototype,"icon",void 0),I([(0,i.property)(),j("design:type",Object)],L.prototype,"name",void 0),I([(0,i.property)(),j("design:type",Object)],L.prototype,"description",void 0),I([(0,i.property)({attribute:"install-description"}),j("design:type",Object)],L.prototype,"installDescription",void 0),I([(0,i.property)({attribute:"disable-install-description",type:Boolean}),j("design:type",Object)],L.prototype,"disableDescription",void 0),I([(0,i.property)({attribute:"manual-apple",type:Boolean}),j("design:type",Object)],L.prototype,"manualApple",void 0),I([(0,i.property)({attribute:"manual-chrome",type:Boolean}),j("design:type",Object)],L.prototype,"manualChrome",void 0),I([(0,i.property)({attribute:"disable-chrome",type:Boolean}),j("design:type",Object)],L.prototype,"disableChrome",void 0),L=I([(0,l.localized)(),(0,i.customElement)("pwa-install")],L)})(),n})())); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("lit"),require("@lit/localize"),require("lit/decorators.js"),require("lit/directives/class-map.js")):"function"==typeof define&&define.amd?define(["lit","@lit/localize","lit/decorators.js","lit/directives/class-map.js"],t):"object"==typeof exports?exports.PWAInstallComponent=t(require("lit"),require("@lit/localize"),require("lit/decorators.js"),require("lit/directives/class-map.js")):e.PWAInstallComponent=t(e.lit,e["@lit/localize"],e["lit/decorators.js"],e["lit/directives/class-map.js"])}(self,((e,t,l,i)=>(()=>{"use strict";var a={487:e=>{e.exports=t},870:t=>{t.exports=e},931:e=>{e.exports=l},536:e=>{e.exports=i}},o={};function s(e){var t=o[e];if(void 0!==t)return t.exports;var l=o[e]={exports:{}};return a[e](l,l.exports,s),l.exports}s.d=(e,t)=>{for(var l in t)s.o(t,l)&&!s.o(e,l)&&Object.defineProperty(e,l,{enumerable:!0,get:t[l]})},s.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};return(()=>{s.r(n),s.d(n,{PWAInstallElement:()=>L});var e={};s.r(e),s.d(e,{templates:()=>o});var t=s(870),l=s(487),i=s(931);const a=["ru"],o={s1b9047d53d9f9d22:'2) Нажать "Поделиться"',s37a9e8aec5713460:"Подробнее",s5c6aad7a7e4a1437:'3) Нажать "На экран «Домой»"',s6196153c4b0c1ea0:"Установить",s8d0173763d91830c:"Этот веб-сайт имеет функционал приложения. Добавьте его на экран «Домой», чтобы получить дополнительные возможности и удобство использования.",sa5ef80b4bb9b39f8:"Свернуть",sc79fd7641eb9a975:"Спрятать Инструкцию",scdaf4bbff76674c8:"На экран «Домой»",sdca23702207fba73:"Этот веб-сайт имеет функционал приложения. Установите его, чтобы получить дополнительные возможности и удобство использования.",sdfe23506a3b0cdc8:"1) Открыть в Safari браузере"},r=new Map([["ru",e]]),{getLocale:d,setLocale:p}=(0,l.configureLocalization)({sourceLocale:"en",targetLocales:a,loadLocale:async e=>r.get(e)});class c{constructor(){this.icons=[{src:""}],this.screenshots=void 0,this.short_name="PWA",this.name="Progressive web application",this.description="Progressive web application"}}const h=t.css`.gallery{position:relative;--scrollbar-background-color:#fff;--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:45vh;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:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb{background:#929292;border-radius:4px}.gallery .gallery_scroller::-webkit-scrollbar-thumb:hover{background:#646464}.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 7px 1px;background-repeat:no-repeat;z-index:1}.gallery .btn.prev{left:5px}.gallery .btn.prev svg{margin-left:4px}.gallery .btn.next{right:5px}.gallery .btn.next svg{margin-left:6px}.gallery .btn:hover{box-shadow:rgba(0,0,0,.5) 2px 4px 7px 1px;cursor:pointer}.gallery .btn:hover svg{opacity:.7}.gallery .btn svg{width:20px;height:20px;opacity:.5}.gallery .btn svg path{fill:var(--nav-btn-fill-color)}@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}}`,g=(e,l,i)=>t.html`${e?t.html`<div id="paginated_gallery" class="gallery"><div class="gallery_scroller"><div class="scroller_wrap">${e.map((e=>t.html`<img draggable="false" src='${e.src}'>`))}</div></div><span class="btn prev" @click="${i}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M39.3756,48.0022l30.47-25.39a6.0035,6.0035,0,0,0-7.6878-9.223L26.1563,43.3906a6.0092,6.0092,0,0,0,0,9.2231L62.1578,82.615a6.0035,6.0035,0,0,0,7.6878-9.2231Z" fill="%23999" fill-rule="evenodd"/></svg> </span><span class="btn next" @click="${l}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 96"><title/><path d="M69.8437,43.3876,33.8422,13.3863a6.0035,6.0035,0,0,0-7.6878,9.223l30.47,25.39-30.47,25.39a6.0035,6.0035,0,0,0,7.6878,9.2231L69.8437,52.6106a6.0091,6.0091,0,0,0,0-9.223Z" fill="%23000" fill-rule="evenodd"/></svg></span></div>`:""}`;var m=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},b=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let u=class extends t.LitElement{constructor(){super(...arguments),this.screenshots=[],this.calcScrollSize=()=>{const e=this.shadowRoot.querySelector("#paginated_gallery");if(!e)return;const t=e.querySelector(".gallery_scroller");if(!t)return;const l=Array.from(t.querySelectorAll("img"));if(!l)return;const i=l.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 h}firstUpdated(){const e=this.calcScrollSize();e&&setTimeout((()=>{e.scroller.scrollTo({top:0,left:0})}),300)}connectedCallback(){super.connectedCallback(),this._init()}render(){return t.html`${g(this.screenshots,this.scrollToNextPage,this.scrollToPrevPage)}`}};m([(0,i.property)(),b("design:type",Object)],u.prototype,"screenshots",void 0),u=m([(0,i.customElement)("pwa-gallery")],u);const w=u,v=(e,i,a,o)=>t.html`<div class="touch-header" id="touch-header"></div><div class="body-header"><div class="icon"><img src="${a}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${e}</label></div><div class="hostname">${location.hostname}</div></div><button class="material-button primary install" @click='${o}'>${(0,l.msg)("Install")}</button></div>${i?t.html`<div class="description">${i}</div>`:""}`;var y=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},x=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let f=class extends t.LitElement{constructor(){super(...arguments),this.props={name:"",description:"",icon:""},this.install={handleEvent:()=>{}},this.hideDialog=()=>{},this._callInstall=()=>{this.install.handleEvent()},this._callHide=()=>{this.hideDialog(),this.setupAppearence()},this.bindedElement=null,this._saveBodyStyle=document.body.style.overscrollBehaviorY,this.dragMobileSheet=(e,t,l)=>{if(!e||!t||!l)return null;let i=0;const a=t.clientHeight+l.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),i=o(e)-t.getBoundingClientRect().top,document.body.style.overscrollBehaviorY="none"},n=t=>{if(document.body.style.overscrollBehaviorY=this._saveBodyStyle,!(o(t)>=window.innerHeight-25))return window.innerHeight-o(t)>e.clientHeight/2.5?void d(t,window.innerHeight-e.clientHeight):void d(t,window.innerHeight-a-35);d(t,window.innerHeight+50,!0)},r=t=>{const l=o(t);l<=window.innerHeight-e.clientHeight+i||(e.style.setProperty("transition","none"),e.style.setProperty("--translateY",`translateY(${l-i}px)`))},d=(l,i,d)=>{window.removeEventListener("mouseup",n),window.removeEventListener("mousemove",r),window.removeEventListener("touchend",n),window.removeEventListener("touchmove",r),window.innerWidth>=768||(!i&&o(l)>=window.innerHeight-a?e.style.setProperty("--translateY",`translateY(calc(100vh - ${a}px))`):e.style.setProperty("--translateY",`translateY(${(i||o(l))+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-a-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 t.html`${v(this.props.name,this.props.description,this.props.icon,this._callInstall)}`}};y([(0,i.property)(),x("design:type",Object)],f.prototype,"props",void 0),y([(0,i.property)(),x("design:type",Object)],f.prototype,"install",void 0),y([(0,i.property)(),x("design:type",Object)],f.prototype,"hideDialog",void 0),f=y([(0,i.customElement)("pwa-bottom-sheet")],f);const k=f,E=(e,t,l)=>{const i=new CustomEvent(t,{detail:{message:l}});e.dispatchEvent(i)};class _{static isAppleMobile(){return!(!(["iPhone","iPad","iPod"].includes(navigator.platform)||navigator.userAgent.match(/Mac/)&&navigator.maxTouchPoints&&navigator.maxTouchPoints>2)||!("serviceWorker"in navigator))}static isStandalone(){return!!(window.matchMedia("(display-mode: standalone)").matches||"standalone"in navigator&&!0===navigator.standalone)}static async getInstalledRelatedApps(){return"getInstalledRelatedApps"in navigator&&await navigator.getInstalledRelatedApps().then((e=>e)),[]}static async isRelatedAppsInstalled(){return!!(await this.getInstalledRelatedApps()).length}static eventInstalledSuccess(e){E(e,"pwa-install-success-event","Application installation successfully processed (Chromium/Android only)")}static eventInstalledFail(e){E(e,"pwa-install-fail-event","Application installation failed (Chromium/Android only)")}static eventUserChoiceResult(e,t){E(e,"pwa-user-choice-result-event",t)}static eventInstallAvailable(e){E(e,"pwa-install-available-event","Application installation available")}}const $=t.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:5}#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 .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:-webkit-max-content 1fr -webkit-max-content;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}}`,R=t.css`#pwa-install-element .install-dialog.apple{--text-color-normal:#333;--text-color-description:#333;--background-color:rgba(255, 255, 255, 0.75);--text-color-button:#fff;--background-color-button:#fff;--background-color-button-active:#DBDAE0;--border-bottom-color:rgba(0, 0, 0, 0.1);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),border .35s ease-in-out;overflow:hidden;pointer-events:none;opacity:1;visibility:visible;transform:translateY(100%);will-change:transform}#pwa-install-element .install-dialog.apple.dialog-body{display:grid;grid-template-columns:95px auto 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, .2));backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}#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 .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 .about .close{height:26px;min-width:26px;line-height:0;margin-right:-3px;margin-top:-3px;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}#pwa-install-element .install-dialog.apple.dialog-body .about .close svg{fill:var(--text-color-normal);width:18px}#pwa-install-element .install-dialog.apple.dialog-body .about .close:active,#pwa-install-element .install-dialog.apple.dialog-body .about .close:hover{opacity:1;background-color:var(--background-color-button)}#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;gap:15px;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;gap:15px;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;transform:scale(.8)}#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}#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;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-safari,#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{fill:#527afb}#pwa-install-element .install-dialog.apple .how-to-body .how-to-description .description-step .svg-wrap #pwa-share{margin-bottom:4px;transform:scale(.75)}#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-duration:.5s}#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;transition:opacity .3s ease-in-out .2s,max-height .5s ease-in-out}@media(min-width:768px){#pwa-install-element .install-dialog.apple{top:0;bottom:unset;transform:translateY(calc(-100% - 40px));right:150px;left:auto}#pwa-install-element .install-dialog.apple.available{top:28px;bottom:auto}}@media(min-width:768px)and (max-width:1366px){#pwa-install-element .install-dialog.apple{right:28px;left:auto}}@media(max-width:767px){#pwa-install-element .install-dialog.apple .description-step .step-text{font-size:13px}#pwa-install-element .install-dialog.apple.available{bottom:20px}}@media(max-width:428px){#pwa-install-element .install-dialog.apple.dialog-body{max-width:100vw;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}}@media(prefers-color-scheme:dark){#pwa-install-element .install-dialog.apple{--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}}`;var A=s(536);const S=(e,i,a,o,s,n,r,d,p,c,h)=>{const g=()=>({available:r,gallery:h});return t.html`<div id="pwa-install-element"><div class="install-dialog chrome ${(0,A.classMap)(g())}"><div class="dialog-body"><div class="icon"><img src="${s}" alt="icon" class="icon-image"></div><div class="about"><div class="name"><label>${e}</label> <button class="material-button secondary close" @click='${d}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="hostname">${location.hostname}</div></div>${i?t.html`<div class="description app-description">${i}</div>`:""} ${o?"":t.html`<hr><div class="description install-description">${a||(0,l.msg)("This site has app functionality. Install it on your device for extensive experience and easy access.")}</div>`} ${n.screenshots&&n.screenshots.length?t.html`<pwa-gallery .screenshots=${n.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${n.screenshots&&n.screenshots.length?t.html`<button class="material-button secondary" @click='${c}'>${h?(0,l.msg)("Less"):(0,l.msg)("More")}</button>`:""} <button class="material-button primary install" @click='${p}'>${(0,l.msg)("Install")}</button></div></div></div><div class="install-dialog chrome mobile ${(0,A.classMap)(g())}"><div class="dialog-body"><pwa-bottom-sheet .props=${{name:e,icon:s,description:i}} .install=${p} .hideDialog=${d}></pwa-bottom-sheet>${n.screenshots&&n.screenshots.length?t.html`<pwa-gallery .screenshots=${n.screenshots}></pwa-gallery>`:""}</div></div></div>`},z=(e,i,a,o,s,n,r,d,p,c,h,g)=>t.html`<aside id="pwa-install-element"><article class="install-dialog apple ${(0,A.classMap)({available:r,"how-to":c,gallery:g})} dialog-body"><div class="icon"><img src="${s}" alt="icon" class="icon-image"></div><div class="about"><div class="name">${e} <button type="button" class="close" @click='${d}'><svg viewBox="0 0 24 24"><path d="M5.3 18.7c.2.2.4.3.7.3s.5-.1.7-.3l5.3-5.3 5.3 5.3a1.08 1.08 0 0 0 .7.3 1.08 1.08 0 0 0 .7-.3c.4-.4.4-1 0-1.4L13.4 12l5.3-5.3c.4-.4.4-1 0-1.4s-1-.4-1.4 0L12 10.6 6.7 5.3c-.4-.4-1-.4-1.4 0s-.4 1 0 1.4l5.3 5.3-5.3 5.3c-.4.4-.4 1 0 1.4z"/></svg></button></div><div class="description">${i||location.hostname}</div></div>${o?"":t.html`<div class="welcome-to-install">${a||(0,l.msg)("This site has app functionality. Add it to your Home Screen for extensive experience and easy access.")}</div>`}<div class="how-to-body"><div class="how-to-description"><div class="description-step"><div class="svg-wrap"><svg id="pwa-safari" viewBox="0 0 13.964 13.964" width="24" height="24"><path d="M6.982 0A6.99 6.99 0 000 6.982a6.99 6.99 0 006.982 6.982 6.99 6.99 0 006.982-6.982A6.99 6.99 0 006.982 0zm0 1.074a5.9 5.9 0 015.908 5.908 5.9 5.9 0 01-5.908 5.908 5.9 5.9 0 01-5.908-5.908 5.9 5.9 0 015.908-5.908zm3.76 2.148L5.6 5.624l-2.379 5.117 5.165-2.354zM6.963 6.288a.795.795 0 11-.001 1.59.795.795 0 010-1.59z" font-weight="400" font-family="sans-serif" overflow="visible"/></svg></div><div class="step-text">${(0,l.msg)("1) Open in Safari browser")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-share" width="25" height="32"><g><path d="m12.51122,20.7648c0.52277,0 0.99149,-0.43265 0.99149,-0.95542l0,-14.87204l-0.09015,-2.0731l1.11768,1.15371l2.27135,2.37952c0.18028,0.19833 0.43265,0.30647 0.68502,0.30647c0.50476,0 0.90134,-0.37857 0.90134,-0.88332c0,-0.27039 -0.10817,-0.46869 -0.28844,-0.64895l-4.86721,-4.74103c-0.25237,-0.25237 -0.46869,-0.32448 -0.72106,-0.32448c-0.25237,0 -0.46869,0.0721 -0.72106,0.32448l-4.88523,4.74103c-0.18028,0.18028 -0.28844,0.37857 -0.28844,0.64895c0,0.50476 0.37857,0.88332 0.90134,0.88332c0.23436,0 0.50476,-0.10814 0.68502,-0.30647l2.27135,-2.37952l1.11768,-1.17172l-0.0721,2.09112l0,14.87204c0,0.52277 0.45066,0.95542 0.99145,0.95542l-0.00002,0l-0.00001,-0.00001zm-8.13005,10.96022l16.22403,0c2.86626,0 4.30841,-1.42412 4.30841,-4.23627l0,-14.27715c0,-2.79415 -1.44215,-4.23627 -4.30841,-4.23627l-3.96589,0l0,2.00095l3.92985,0c1.47819,0 2.34345,0.79316 2.34345,2.34345l0,14.06085c0,1.5503 -0.86527,2.34347 -2.34345,2.34347l-16.15194,0c-1.49625,0 -2.32547,-0.79317 -2.32547,-2.34347l0,-14.06085c0,-1.55029 0.82923,-2.34345 2.32547,-2.34345l3.96589,0l0,-2.00095l-4.00196,0c-2.84821,0 -4.29035,1.4241 -4.29035,4.23627l0,14.27715c0,2.81217 1.44215,4.23627 4.29035,4.23627l0.00001,0l0.00001,0z"/></g></svg></div><div class="step-text">${(0,l.msg)("2) Press Share in Navigation bar")}</div></div><div class="description-step"><div class="svg-wrap"><svg id="pwa-add" width="25" height="25"><g><path d="m23.40492,1.60784c-1.32504,-1.32504 -3.19052,-1.56912 -5.59644,-1.56912l-10.65243,0c-2.33622,0 -4.2017,0.24408 -5.5267,1.56912c-1.32504,1.34243 -1.56911,3.17306 -1.56911,5.50924l0,10.5827c0,2.40596 0.22665,4.254 1.55165,5.57902c1.34246,1.32501 3.19052,1.5691 5.59647,1.5691l10.60013,0c2.40592,0 4.2714,-0.24408 5.59644,-1.5691c1.325,-1.34245 1.55166,-3.17306 1.55166,-5.57902l0,-10.51293c0,-2.40596 -0.22666,-4.25401 -1.55166,-5.57901zm-0.38355,5.21289l0,11.24518c0,1.51681 -0.20924,2.94643 -1.02865,3.78327c-0.83683,0.83685 -2.30134,1.0635 -3.81815,1.0635l-11.33234,0c-1.51681,0 -2.96386,-0.22665 -3.80073,-1.0635c-0.83683,-0.83684 -1.04607,-2.26646 -1.04607,-3.78327l0,-11.19288c0,-1.5517 0.20924,-3.01617 1.02865,-3.85304c0.83687,-0.83683 2.31876,-1.04607 3.87042,-1.04607l11.28007,0c1.51681,0 2.98132,0.22666 3.81815,1.06353c0.81941,0.81941 1.02865,2.26645 1.02865,3.78327zm-10.53039,12.08205c0.64506,0 1.02861,-0.43586 1.02861,-1.13326l0,-4.34117l4.53294,0c0.66252,0 1.13326,-0.36613 1.13326,-0.99376c0,-0.64506 -0.43586,-1.02861 -1.13326,-1.02861l-4.53294,0l0,-4.53294c0,-0.6974 -0.38355,-1.13326 -1.02861,-1.13326c-0.62763,0 -0.99376,0.45332 -0.99376,1.13326l0,4.53294l-4.51552,0c-0.69737,0 -1.15069,0.38355 -1.15069,1.02861c0,0.62763 0.48817,0.99376 1.15069,0.99376l4.51552,0l0,4.34117c0,0.66252 0.36613,1.13326 0.99376,1.13326z"/></g></svg></div><div class="step-text">${(0,l.msg)("3) Press Add to Home Screen")}</div></div></div></div>${n.screenshots&&n.screenshots.length?t.html`<pwa-gallery .screenshots=${n.screenshots}></pwa-gallery>`:""}<div class="action-buttons">${n.screenshots&&n.screenshots.length?t.html`<button class="dialog-button button gallery" @click=${h}><svg id="pwa-gallery" width="26" height="26" viewBox="0 0 23.538 18.022"><path d="M2.79 18.022h17.958c1.834 0 2.79-.969 2.79-2.778V2.791C23.538.969 22.582 0 20.748 0H2.791C.956 0 0 .956 0 2.79v12.454c0 1.835.956 2.778 2.79 2.778zM.879 2.83C.878 1.55 1.55.88 2.816.88h17.906c1.228 0 1.938.671 1.938 1.95v12.067L16.756 9.47c-.517-.414-.995-.685-1.615-.685-.607 0-1.085.22-1.576.672L8.927 13.59l-1.938-1.796c-.426-.387-.853-.607-1.382-.607-.504 0-.879.207-1.305.594L.878 14.986zm6.46 6.356a2.39 2.39 0 002.377-2.39c0-1.304-1.072-2.39-2.377-2.39a2.401 2.401 0 00-2.39 2.39 2.393 2.393 0 002.39 2.39z"/></svg></button>`:""} <button class="dialog-button button install" @click=${p}><span class="button-text ${c?"show":"hide"}">${(0,l.msg)("Hide Instruction")}</span> <span class="button-text ${c?"hide":"show"}"><span>${(0,l.msg)("Add to Home Screen")}</span> <svg width="25" height="25"><use href="#pwa-add"></use></svg></span></button></div></article></aside>`;var I=function(e,t,l,i){var a,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,l):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,l,i);else for(var n=e.length-1;n>=0;n--)(a=e[n])&&(s=(o<3?a(s):o>3?a(t,l,s):a(t,l))||s);return o>3&&s&&Object.defineProperty(t,l,s),s},j=function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};let L=class extends t.LitElement{constructor(){super(...arguments),this.manifest=new c,this.manifestUrl="/manifest.json",this.icon="",this.name="",this.description="",this.installDescription="",this.disableDescription=!1,this.manualApple=!1,this.manualChrome=!1,this.disableChrome=!1,this.platforms=[],this.userChoiceResult="",this.isDialogHidden=JSON.parse(window.sessionStorage.getItem("pwa-hide-install")||"false"),this.isInstallAvailable=!1,this.isAppleMobilePlatform=!1,this.isUnderStandaloneMode=!1,this.isRelatedAppsInstalled=!1,this._howToRequested=!1,this._galleryRequested=!1,this._install={handleEvent:()=>{window.deferredEvent&&(this.hideDialog(),window.deferredEvent.prompt(),window.deferredEvent.userChoice.then((e=>{this.userChoiceResult=e.outcome,_.eventUserChoiceResult(this,this.userChoiceResult)})).catch((e=>{_.eventInstalledFail(this)})),window.deferredEvent=null)},passive:!0},this.install=()=>{this.isAppleMobilePlatform?(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=()=>{_.eventUserChoiceResult(this,"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 _.getInstalledRelatedApps(),this._howToForApple={handleEvent:()=>{this._howToRequested=!this._howToRequested,this._howToRequested&&this._galleryRequested&&(this._galleryRequested=!1),this.requestUpdate()},passive:!0},this._toggleGallery={handleEvent:()=>{this._galleryRequested=!this._galleryRequested,this._howToRequested&&this._galleryRequested&&(this._howToRequested=!1),this.requestUpdate()},passive:!0},this._init=()=>{window.deferredEvent=null,this._checkInstalled(),this.disableChrome||window.addEventListener("beforeinstallprompt",(e=>{window.deferredEvent=e,e.preventDefault(),this.platforms=e.platforms,this.isRelatedAppsInstalled||this.isUnderStandaloneMode?this.isInstallAvailable=!1:(this.isInstallAvailable=!0,_.eventInstallAvailable(this)),"accepted"===this.userChoiceResult&&(this.isDialogHidden=!0,_.eventInstalledSuccess(this)),this.requestUpdate()})),window.addEventListener("appinstalled",(e=>{window.deferredEvent=null,this.isInstallAvailable=!1,this.requestUpdate(),_.eventInstalledSuccess(this)})),fetch(this.manifestUrl).then((e=>{e.ok?e.json().then((e=>{this.icon=this.icon||e.icons[0].src,this.name=this.name||e.short_name||e.name,this.description=this.description||e.description,this.manifest=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||"")}))}}static get styles(){return[$,R]}async _checkInstalled(){this.isUnderStandaloneMode=_.isStandalone(),this.isRelatedAppsInstalled=await _.isRelatedAppsInstalled(),this.isAppleMobilePlatform=_.isAppleMobile(),this.isAppleMobilePlatform?this.isUnderStandaloneMode||(this.manualApple&&this.hideDialog(),setTimeout((()=>{this.isInstallAvailable=!0,this.requestUpdate(),_.eventInstallAvailable(this)}),300)):this.manualChrome&&this.hideDialog()}connectedCallback(){(e=>{try{p(e.slice(0,2))}catch{}})(navigator.language),this._init(),w.finalized,k.finalized,super.connectedCallback()}render(){return this.isAppleMobilePlatform?t.html`${z(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._howToForApple,this._howToRequested,this._toggleGallery,this._galleryRequested)}`:t.html`${S(this.name,this.description,this.installDescription,this.disableDescription,this.icon,this.manifest,this.isInstallAvailable&&!this.isDialogHidden,this._hideDialogUser,this._install,this._toggleGallery,this._galleryRequested)}`}};I([(0,i.property)({attribute:"manifest-url"}),j("design:type",Object)],L.prototype,"manifestUrl",void 0),I([(0,i.property)(),j("design:type",Object)],L.prototype,"icon",void 0),I([(0,i.property)(),j("design:type",Object)],L.prototype,"name",void 0),I([(0,i.property)(),j("design:type",Object)],L.prototype,"description",void 0),I([(0,i.property)({attribute:"install-description"}),j("design:type",Object)],L.prototype,"installDescription",void 0),I([(0,i.property)({attribute:"disable-install-description",type:Boolean}),j("design:type",Object)],L.prototype,"disableDescription",void 0),I([(0,i.property)({attribute:"manual-apple",type:Boolean}),j("design:type",Object)],L.prototype,"manualApple",void 0),I([(0,i.property)({attribute:"manual-chrome",type:Boolean}),j("design:type",Object)],L.prototype,"manualChrome",void 0),I([(0,i.property)({attribute:"disable-chrome",type:Boolean}),j("design:type",Object)],L.prototype,"disableChrome",void 0),L=I([(0,l.localized)(),(0,i.customElement)("pwa-install")],L)})(),n})())); | ||
//# sourceMappingURL=pwa-install.umd.js.map |
{ | ||
"name": "@khmyznikov/pwa-install", | ||
"version": "0.1.3", | ||
"version": "0.1.4", | ||
"description": "PWA install dialog provide more convenience user experience and fix lack of native dialogs in some browsers.", | ||
@@ -13,3 +13,3 @@ "repository": { | ||
"scripts": { | ||
"build": "npm run localize && npm run localize-build && npm run build-noloc", | ||
"build": "npm run localize && npm run localize-build && npm run build-noloc && cem analyze", | ||
"build-noloc": "webpack --config webpack/webpack.prod.js --mode=production && webpack --config webpack/webpack.prod.module.js --mode=production && webpack --config webpack/webpack.prod.umd.js --mode=production", | ||
@@ -19,4 +19,3 @@ "localize": "lit-localize extract", | ||
"test": "npm run build-noloc && node ./webpack/serve.js", | ||
"dev": "webpack serve --config webpack/webpack.dev.js --mode=development", | ||
"prepublish": "npm run build" | ||
"dev": "webpack serve --config webpack/webpack.dev.js --mode=development" | ||
}, | ||
@@ -26,4 +25,8 @@ "author": "khmyznikov", | ||
"devDependencies": { | ||
"@custom-elements-manifest/analyzer": "^0.6.2", | ||
"@lit/localize-tools": "^0.6.3", | ||
"@types/dom-chromium-installation-events": "^101.0.0", | ||
"@types/node": "^16.*", | ||
"@types/web-app-manifest": "^1.0.2", | ||
"autoprefixer": "^10.4.7", | ||
"clean-webpack-plugin": "4.0.0", | ||
@@ -36,2 +39,4 @@ "css-loader": "^6.7.1", | ||
"minify-lit-html-loader": "0.0.3", | ||
"postcss": "^8.4.14", | ||
"postcss-loader": "^7.0.0", | ||
"sass": "^1.50.0", | ||
@@ -45,3 +50,3 @@ "sass-loader": "^12.6.0", | ||
"webpack-cli": "^4.9.2", | ||
"webpack-dev-server": "^4.8.1", | ||
"webpack-dev-server": "^4.9.0", | ||
"webpack-merge": "^5.8.0" | ||
@@ -48,0 +53,0 @@ }, |
import { LitElement, html } from 'lit'; | ||
import { property, customElement } from 'lit/decorators.js'; | ||
import { IWindow, IManifest } from '../types/types'; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
declare const window: IWindow; | ||
import styles from './styles-gallery.scss'; | ||
@@ -11,4 +9,4 @@ import template from './template-gallery'; | ||
@customElement('pwa-gallery') | ||
export default class PWAGalleryElement extends LitElement { | ||
@property() screenshots: IManifest['screenshots'] = []; | ||
export default class PWAGalleryElement extends LitElement { | ||
@property() screenshots: WebAppManifest['screenshots'] = []; | ||
@@ -33,3 +31,3 @@ static get styles() { | ||
return; | ||
return { | ||
@@ -59,3 +57,3 @@ scroller: gallery_scroller, | ||
private _init = () => { | ||
@@ -77,3 +75,3 @@ return; | ||
) | ||
} | ||
@@ -80,0 +78,0 @@ |
import { html } from 'lit'; | ||
import { IManifest } from '../types/types'; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
const template = (screenshots: IManifest['screenshots'], scrollToNextPage: any, scrollToPrevPage: any) => { | ||
const template = (screenshots: WebAppManifest['screenshots'], scrollToNextPage: any, scrollToPrevPage: any) => { | ||
return html` | ||
@@ -22,2 +22,2 @@ ${screenshots? html` | ||
}; | ||
export default template; | ||
export default template; |
import { LitElement, html } from 'lit'; | ||
import { localized } from '@lit/localize'; | ||
import { property, customElement } from 'lit/decorators.js'; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
import { changeLocale } from './localization'; | ||
import { IBeforeInstallPromptEvent, IRelatedApp, IChoiceResult, IManifest, Manifest, IWindow } from './types/types'; | ||
import { IRelatedApp, Manifest, IWindow, PWAInstallAttributes } from './types/types'; | ||
@@ -15,8 +16,2 @@ import PWAGalleryElement from './gallery'; | ||
declare global { | ||
interface WindowEventMap { | ||
beforeinstallprompt: IBeforeInstallPromptEvent | ||
} | ||
} | ||
import styles from './templates/chrome/styles.scss'; | ||
@@ -32,4 +27,4 @@ import stylesApple from './templates/apple/styles-apple.scss'; | ||
export class PWAInstallElement extends LitElement { | ||
private manifest: IManifest = new Manifest(); | ||
private manifest: WebAppManifest = new Manifest(); | ||
@property({attribute: 'manifest-url'}) manifestUrl = '/manifest.json'; | ||
@@ -49,3 +44,3 @@ @property() icon = ''; | ||
public platforms = ''; | ||
public platforms: BeforeInstallPromptEvent['platforms'] = []; | ||
public userChoiceResult = ''; | ||
@@ -63,3 +58,3 @@ | ||
private _install = { | ||
handleEvent: () => { | ||
handleEvent: () => { | ||
if (window.deferredEvent) { | ||
@@ -69,3 +64,3 @@ this.hideDialog(); | ||
window.deferredEvent.userChoice | ||
.then((choiceResult: IChoiceResult) => { | ||
.then((choiceResult: PromptResponseObject) => { | ||
this.userChoiceResult = choiceResult.outcome; | ||
@@ -92,3 +87,3 @@ Utils.eventUserChoiceResult(this, this.userChoiceResult); | ||
private _hideDialog = { | ||
handleEvent: () => { | ||
handleEvent: () => { | ||
this.isDialogHidden = true; | ||
@@ -120,3 +115,3 @@ window.sessionStorage.setItem('pwa-hide-install', 'true'); | ||
private _howToForApple = { | ||
handleEvent: () => { | ||
handleEvent: () => { | ||
this._howToRequested = !this._howToRequested; | ||
@@ -131,3 +126,3 @@ if (this._howToRequested && this._galleryRequested) | ||
private _toggleGallery = { | ||
handleEvent: () => { | ||
handleEvent: () => { | ||
this._galleryRequested = !this._galleryRequested; | ||
@@ -170,3 +165,3 @@ if (this._howToRequested && this._galleryRequested) | ||
if (!this.disableChrome) | ||
window.addEventListener('beforeinstallprompt', (e: IBeforeInstallPromptEvent) => { | ||
window.addEventListener('beforeinstallprompt', (e: BeforeInstallPromptEvent) => { | ||
window.deferredEvent = e; | ||
@@ -210,9 +205,9 @@ e.preventDefault(); | ||
else { | ||
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.icon = this.icon || this.manifest.icons?.[0].src || ''; | ||
this.name = this.name || this.manifest['short_name'] || ''; | ||
this.description = this.description || this.manifest.description || ''; | ||
} | ||
}); | ||
}; | ||
@@ -264,1 +259,3 @@ | ||
} | ||
export { PWAInstallAttributes }; |
import { html } from 'lit'; | ||
import { classMap } from 'lit/directives/class-map.js'; | ||
import { IManifest } from '../../types/types'; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
import { msg } from '@lit/localize'; | ||
const template = (name: string, description: string, installDescription: string, disableDescription: boolean, icon: string, manifest: IManifest, installAvailable: any, hideDialog: any, howToForApple: any, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => { | ||
const template = (name: string, description: string, installDescription: string, disableDescription: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, howToForApple: any, howToRequested: boolean, toggleGallery: any, galleryRequested: boolean) => { | ||
const installDialogClassesApple = () => { return {available: installAvailable, 'how-to': howToRequested, gallery: galleryRequested }}; | ||
@@ -77,2 +77,2 @@ | ||
}; | ||
export default template; | ||
export default template; |
import { LitElement, html } from 'lit'; | ||
import { property, customElement } from 'lit/decorators.js'; | ||
import { IWindow, IManifest } from '../../../types/types'; | ||
// import TouchDragListener from "./touch-listener"; | ||
declare const window: IWindow; | ||
type IProps = { | ||
name: string, | ||
name: string, | ||
description: string, | ||
@@ -18,3 +15,3 @@ icon: string | ||
@customElement('pwa-bottom-sheet') | ||
export default class PWABottomSheetElement extends LitElement { | ||
export default class PWABottomSheetElement extends LitElement { | ||
@property() props: IProps = { | ||
@@ -32,9 +29,9 @@ name: '', | ||
private _callHide = () => { | ||
private _callHide = () => { | ||
this.hideDialog(); | ||
this.setupAppearence(); | ||
} | ||
private bindedElement: { | ||
touchElement: HTMLElement, | ||
touchElement: HTMLElement, | ||
listener: any }| null = null; | ||
@@ -53,3 +50,3 @@ private readonly _saveBodyStyle = document.body.style.overscrollBehaviorY; | ||
} | ||
const dragMouseDown = (e: MouseEvent | TouchEvent) => { | ||
@@ -81,3 +78,3 @@ window.addEventListener('mouseup', dragMouseUp); | ||
} | ||
const dragMouseMove = (e: MouseEvent | TouchEvent) => { | ||
@@ -100,3 +97,3 @@ const currentY = getYCoord(e); | ||
} | ||
const closeDragElement = (e: MouseEvent | TouchEvent, toPoint?: number, hideDialog?: boolean) => { | ||
@@ -116,3 +113,3 @@ window.removeEventListener('mouseup', dragMouseUp); | ||
); | ||
else | ||
else | ||
element.style.setProperty( | ||
@@ -137,3 +134,3 @@ "--translateY", | ||
} | ||
} | ||
@@ -147,7 +144,7 @@ | ||
return { | ||
touchElement: touchTargetElement, | ||
touchElement: touchTargetElement, | ||
listener: dragMouseDown | ||
} | ||
} | ||
private setupAppearence = () => { | ||
@@ -158,6 +155,6 @@ if (this.bindedElement) { | ||
} | ||
this.bindedElement = this.dragMobileSheet( | ||
this.parentElement?.parentElement, | ||
this.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement, | ||
this.parentElement?.parentElement, | ||
this.parentElement?.getElementsByClassName('touch-header')[0] as HTMLElement, | ||
this.parentElement?.getElementsByClassName('body-header')[0] as HTMLElement); | ||
@@ -164,0 +161,0 @@ } |
import { html } from 'lit'; | ||
import { IManifest } from '../../../types/types'; | ||
import { msg } from '@lit/localize'; | ||
@@ -23,2 +22,2 @@ | ||
}; | ||
export default template; | ||
export default template; |
import { html } from 'lit'; | ||
import { classMap } from 'lit/directives/class-map.js'; | ||
import { IManifest } from '../../types/types'; | ||
import { WebAppManifest } from 'web-app-manifest'; | ||
import { msg } from '@lit/localize'; | ||
const template = (name: string, description: string, installDescription: string, disableDescription: boolean, icon: string, manifest: IManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => { | ||
const template = (name: string, description: string, installDescription: string, disableDescription: boolean, icon: string, manifest: WebAppManifest, installAvailable: any, hideDialog: any, install: any, toggleGallery: any, galleryRequested: boolean) => { | ||
const installDialogClasses = () => { return {available: installAvailable, gallery: galleryRequested }}; | ||
@@ -46,2 +46,2 @@ | ||
}; | ||
export default template; | ||
export default template; |
@@ -1,12 +0,3 @@ | ||
export interface IChoiceResult { | ||
outcome: 'accepted' | 'dismissed'; | ||
platform: string; | ||
} | ||
import { ImageResource } from 'web-app-manifest'; | ||
export interface IBeforeInstallPromptEvent extends Event { | ||
platforms: string; | ||
userChoice: Promise<IChoiceResult>; | ||
prompt: () => {}; | ||
} | ||
export interface IRelatedApp { | ||
@@ -19,15 +10,17 @@ id: string, | ||
export interface IWindow extends Window { | ||
deferredEvent: IBeforeInstallPromptEvent | null; | ||
deferredEvent: BeforeInstallPromptEvent | null; | ||
} | ||
export interface IPWAIcon { | ||
src: string; | ||
} | ||
type Booleanish = 'true' | 'false'; | ||
export interface IManifest { | ||
short_name: string; | ||
name: string; | ||
description: string; | ||
icons: IPWAIcon[]; | ||
screenshots?: IPWAIcon[] | null; | ||
export interface PWAInstallAttributes { | ||
['manual-apple']?: Booleanish; | ||
['manual-chrome']?: Booleanish; | ||
['disable-chrome']?: Booleanish; | ||
['install-description']?: string; | ||
['disable-install-description']?: Booleanish; | ||
['manifest-url']?: string; | ||
name?: string; | ||
description?: string; | ||
icon?: string; | ||
} | ||
@@ -38,3 +31,3 @@ | ||
this.icons = [{ src: '' }]; | ||
this.screenshots = null; | ||
this.screenshots = undefined; | ||
this.short_name = 'PWA'; | ||
@@ -45,6 +38,6 @@ this.name = 'Progressive web application'; | ||
short_name: string; | ||
icons: IPWAIcon[]; | ||
screenshots: IPWAIcon[] | null; | ||
icons: ImageResource[]; | ||
screenshots?: ImageResource[]; | ||
name: string; | ||
description: string; | ||
} |
import path, { resolve } from 'path'; | ||
import { fileURLToPath } from 'url'; | ||
import autoprefixer from 'autoprefixer'; | ||
const __filename = fileURLToPath(import.meta.url); | ||
@@ -22,3 +24,2 @@ const __dirname = path.dirname(__filename); | ||
}, | ||
}, | ||
@@ -42,8 +43,22 @@ } | ||
test: /\.scss$/, | ||
use: [{ | ||
loader: 'lit-scss-loader', | ||
options: { | ||
minify: true, | ||
use: [ | ||
{ | ||
loader: 'lit-scss-loader', | ||
options: { | ||
minify: true, | ||
transform: (css, { filePath }) => processor.process(css, { from: filePath }).css | ||
}, | ||
}, | ||
}, 'extract-loader', 'css-loader', 'sass-loader'], | ||
'extract-loader', | ||
'css-loader', | ||
{ | ||
loader: 'postcss-loader', | ||
options: { | ||
postcssOptions: { | ||
plugins: [autoprefixer()], | ||
}, | ||
}, | ||
}, | ||
'sass-loader', | ||
], | ||
}, | ||
@@ -60,2 +75,2 @@ ] | ||
} | ||
}; | ||
}; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1064921
65
2434
25