113 lines
2.8 KiB
TypeScript

import "./browser-player";
import { ConnectionMixin } from "./connection";
import { ScreenSaverMixin } from "./screensaver";
import { MediaPlayerMixin } from "./mediaPlayer";
import { CameraMixin } from "./camera";
import { RequireInteractMixin } from "./require-interact";
import { FullyMixin } from "./fullyKiosk";
import { BrowserStateMixin } from "./browser";
import { ServicesMixin } from "./services";
import { ActivityMixin } from "./activity";
import "./popups";
import { PopupMixin } from "./popups";
import pjson from "../../package.json";
import "./popup-card";
import { AutoSettingsMixin } from "./frontend-settings";
import { BrowserIDMixin } from "./browserID";
/*
TODO:
- More pictures for documentation
x Fix nomenclature
x Command -> Service
x Device -> Browser
- Popups
X Basic popups
x Styling
X Timeout
X Fullscreen
x Popup-card
x Auto-close
x Forms that are forwarded to service calls
x Motion/occupancy tracker
x Information about interaction requirement
x Information about fullykiosk
- Commands
x Change targets from the frontend
x Send browser ID to the backend in service calls?
x Rename browser_mod commands to browser_mod services
x Framework
x ll-custom handling
- Commands
x popup
x close_popup
x more-info
x navigate
o lovelace-reload?
o Not needed
x window-reload
o screensaver ?
o Refer to automations instead
x sequence
x delay
x javascript eval
o toast?
o Replaced with popups with timeout
x Redesign services to target devices
x frontend editor for popup cards
o also screensavers
x Saved frontend settings
X Framework
x Save sidebar
x Kiosk mode
x Default dashboard
o Screensaver?
x Favicon templates
x Title templates
- Tweaks
- Quickbar tweaks (ctrl+enter)?
x Card-mod preload
x Video player
x Media_seek
o Screensavers
x IMPORTANT: FIX DEFAULT HIDING OF ENTITIES
o NOFIX. Home Assistant bug
X Check functionality with CAST - may need to add frontend part as a lovelace resource
*/
export class BrowserMod extends ServicesMixin(
PopupMixin(
ActivityMixin(
BrowserStateMixin(
CameraMixin(
MediaPlayerMixin(
ScreenSaverMixin(
AutoSettingsMixin(
FullyMixin(
RequireInteractMixin(
ConnectionMixin(BrowserIDMixin(EventTarget))
)
)
)
)
)
)
)
)
)
) {
constructor() {
super();
this.connect();
console.info(
`%cBROWSER_MOD ${pjson.version} IS INSTALLED
%cBrowserID: ${this.browserID}`,
"color: green; font-weight: bold",
""
);
}
}
if (!window.browser_mod) window.browser_mod = new BrowserMod();