@salla.sa/twilight-components
Version:
Salla Web Component
61 lines (56 loc) • 5.56 kB
JavaScript
/*!
* Crafted with ❤ by Salla
*/
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
import { C as Cancel } from './cancel.js';
const sallaMaintenanceAlertCss = ".s-maintenance-alert-wrapper{display:flex;min-height:40px;width:100%;flex-direction:row;align-items:center;justify-content:center;--tw-bg-opacity:1;background-color:rgba(26, 38, 61, var(--tw-bg-opacity));padding:0.25rem 0.5rem;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.s-maintenance-alert-wrapper a{transition:0.35s cubic-bezier(0.2, 1, 0.3, 1)}.s-maintenance-alert-wrapper *{color:inherit}@media (min-width: 640px){.s-maintenance-alert-wrapper{padding-left:2rem;padding-right:2rem}}.s-maintenance-alert-content{margin-top:1rem;margin-bottom:1rem;display:flex;width:100%;align-items:center;justify-content:space-between}@media (min-width: 640px){.s-maintenance-alert-content{padding-left:2rem;padding-right:2rem}}.s-maintenance-alert-container{display:flex;align-items:center}.s-maintenance-alert-icon{margin-right:1.25rem;display:none}@media (min-width: 640px){.s-maintenance-alert-icon{display:block}}.s-maintenance-alert-text h2{margin-bottom:0.5rem;font-size:0.875rem;font-weight:700;line-height:1.4}@media (min-width: 640px){.s-maintenance-alert-text h2{font-size:1.5rem;line-height:2rem}}.s-maintenance-alert-text p{margin:0px;text-align:right;font-size:10px;line-height:1.2}@media (min-width: 640px){.s-maintenance-alert-text p{text-align:center;font-size:0.75rem;line-height:1}}.s-maintenance-alert-btn{position:relative;margin-left:4px;margin-right:4px;display:inline-block;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;border-radius:0.125rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(93, 213, 196, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(93, 213, 196, var(--tw-bg-opacity));padding:0.5rem;text-align:center;vertical-align:middle;font-size:0.875rem;font-weight:400;line-height:1.4;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.s-maintenance-alert-btn:hover{--tw-bg-opacity:1;background-color:rgba(53, 203, 181, var(--tw-bg-opacity))}.s-maintenance-alert-btn *{pointer-events:none}[dir=rtl] .s-maintenance-alert-btn{margin-left:1.25rem;margin-right:0}@media (min-width: 640px){.s-maintenance-alert-btn{padding:0.5rem 1rem}}";
const SallaMaintenanceAlert$1 = /*@__PURE__*/ proxyCustomElement(class SallaMaintenanceAlert extends HTMLElement {
constructor() {
super();
this.__registerHost();
}
componentWillLoad() {
this.title = salla.config.get('maintenance_details.title');
this.message = salla.config.get('maintenance_details.message');
// Use matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed)
const isMobile = typeof window !== 'undefined' && !window.matchMedia('(min-width: 768px)').matches;
this.buttonTitle = isMobile ? salla.config.get('maintenance_details.button_title') : salla.config.get('maintenance_details.button_full_title');
}
closeAlert() {
salla.storage.set('hide_salla-maintenance-alert_at', Date.now());
this.host.style.display = 'none';
}
render() {
return (h(Host, { key: '01c89bdfb43cf8167a80c3b534db99c2b065b470', class: "s-maintenance-alert-wrapper" }, h("button", { key: 'f0fec5518de00e00302f157b99c38c645b5c1b7b', class: "s-maintenance-alert-close", innerHTML: Cancel, onClick: () => this.closeAlert() }), h("div", { key: 'e1f17c022bf2c7f375c07f39f6d30e55895d8dac', class: "s-maintenance-alert-content" }, h("div", { key: '511254633626bb8a2b1ce31941cc738d67a90d78', class: "s-maintenance-alert-container" }, h("div", { key: '2d9383e29fdfb9af904e2892801518c6d6f880eb', class: "s-maintenance-alert-icon" }, h("img", { key: '4937284ac2ded08930bed981895ad66f08c6c6c3', src: salla.url.cdn('images/alert.png'), alt: "Alert" })), h("div", { key: 'faf22e77325fc231bc03f5e78116a53110cd5b76', class: "s-maintenance-alert-text" }, h("h2", { key: 'a0bb82c477b0b7f2bfe096a7a1496b05649ece8f' }, this.title), h("p", { key: '6120b9c1029eb13b75829d4e87398b245f7e6f8c' }, this.message))), h("div", { key: '33513f0620a097f742dbb0c42a0612e7d25e9ac1' }, h("a", { key: 'de397335279f2ac6127e591599d9562029bfb462', class: "s-maintenance-alert-btn", href: salla.config.get('maintenance_details.button_url') }, this.buttonTitle)))));
}
componentDidLoad() {
//auto-hide the alert if close button is clicked before one hour
let hidden_at = salla.storage.get('hide_salla-maintenance-alert_at');
if (hidden_at && ((Date.now() - hidden_at) / 1000 / 60) < 60) {
this.closeAlert();
}
}
get host() { return this; }
static get style() { return sallaMaintenanceAlertCss; }
}, [0, "salla-maintenance-alert", {
"title": [32],
"message": [32],
"buttonTitle": [32]
}]);
function defineCustomElement$1() {
if (typeof customElements === "undefined") {
return;
}
const components = ["salla-maintenance-alert"];
components.forEach(tagName => { switch (tagName) {
case "salla-maintenance-alert":
if (!customElements.get(tagName)) {
customElements.define(tagName, SallaMaintenanceAlert$1);
}
break;
} });
}
defineCustomElement$1();
const SallaMaintenanceAlert = SallaMaintenanceAlert$1;
const defineCustomElement = defineCustomElement$1;
export { SallaMaintenanceAlert, defineCustomElement };