import { Layout } from "/components/layout.js" import { Page } from "/components/page.js" import { Header } from "/components/header.js" import { NavMenu } from "/components/nav-menu.js" import { Dialog } from "/dialog/dialog.js" import { ButtonGroup } from "/forms/button-group.js" import { Dropdown } from "/menu/dropdown.js" customElements.define('m-layout', Layout) customElements.define('m-page', Page) customElements.define('m-header', Header) customElements.define('m-nav-menu', NavMenu) customElements.define('m-dialog', Dialog) customElements.define( 'm-forms-button-group', ButtonGroup ) customElements.define( 'm-menu-dropdown', Dropdown ) class Setup { async run() { const sw = navigator.serviceWorker sw.addEventListener('controllerchange', () => { if (this.registration.active) { window.location.reload(true) } }) await this.register() this.load() } async register() { try { this.registration = await navigator.serviceWorker.register( '/sw.js', {scope: '/'} ) } catch (err) { console.error( 'error registering service worker', err ) } } load() { if (this.registration.active) { document.body.appendChild( document.createElement('m-layout') ) } } } new Setup().run()