diff --git a/README.md b/README.md
index 3c42ae3f..015e318c 100644
--- a/README.md
+++ b/README.md
@@ -58,7 +58,7 @@ Diese sind u.a. beim Betrieb von **FHEMApp** auf einem separaten Web-Server nöt
|server|url bzw. IP-Adresse unter der FHEM erreichbar ist|fhem|
|port|Port über den FHEM erreichbar ist|8083|
|path|Pfad der FHEM Installation|fhem|
-|dark|Festlegen ob **FHEMApp** im dunklen Farbschema geöffnet wird|1
+|dark|Festlegen ob **FHEMApp** im dunklen Farbschema geöffnet wird (siehe auch [Farbschema](#farbschema))|1
|lang|Sprache in der **FHEMApp** geöffnet wird|de, en, ...|
|xhr|Umschaltung auf Longpoll wenn Browser kein websocket unterstützt|1|
|loglevel|Detailgrad der Protokollierung für Fehleranalyse über die Browserkonsole. Ab dem loglevel 7 wird die Kopfzeile von **FHEMApp** umgeschaltet und ein Infosymbol angzeigt. Bei Klick auf das Infosymbol werden weitere Systeminformationen von **FHEMApp** angezeigt. (*1=status, 2=error, 3=warnings, 4=infos, 5=all request to fhem, 6=received events from fhem, 7=details, 8=all received events from FHEM*)|1...8|
@@ -76,10 +76,30 @@ Nachdem du Einstellungen in **FHEMApp** angepasst hast, müssen diese gespeicher
*Beispiel für Einstellungen*
-# Kopfzeile
+# Allgemeine Einstellungen
+
+## Kopfzeile
In den Einstellungen für die Kopfzeile kann die Anzeige für das aktuelle Datum, die Uhrzeit und die aktuelle Navigationauswahl aktiviert werden. Die Anzeige für Datum und Uhrzeit erfolgt nur in der Desktopansicht. In der mobilen Ansicht werden Datum und Uhrzeit nicht angezeigt. Die Anzeige für die Navigationsauswahl erfolgt nur in der mobilen Ansicht.
Weiterhin kann ein Hintergrundbild für die Kopfzeile festgelegt werden. Die Verwendung des Farbfilters mit einer [CSS Linear Gradient Definition](https://www.w3schools.com/css/css3_gradients.asp) ermöglicht ein Anpassung des Hintergrundbildes an das festgelegte Farbschema.
+
+## Farbschema
+In **FHEMApp** werden zwei Farbschemen (dunkel und hell) unterstützt. Die einzelnen Farben können für beide Farbschemen wie im Abschnitt [Farben](#farben) beschrieben, angepasst werden. Beim Öffnen von **FHEMApp** wird das Farbschema (dunkel bzw. hell) aus den Einstellungen des Browsers bzw. des Betriebssystems verwendet. Zusätzlich kann das Farbschema wie folgt gesteuert werden.
+1. über den URL-Parameter `dark` (siehe auch [zusätzliche URL-Parameter](#zusätzliche-url-parameter))
+2. über ein FHEM Reading
+3. über das Optionsmenü (siehe auch [Optionsmenü](#optionsmenü))
+
+Wenn das Farbschema über den **URL-Parameter** `dark` festgelegt wird, dann wird **FHEMApp** in diesem geöffnet und die Browsereinstellung bzw. Betriebssystemeinstellung ignoriert.
+
+Wenn das Farbschema über ein **FHEM Reading** gesteuert wird, dann wird die Browerseinstellung bzw. Betriebssystemeinstellung und (sofern festgelegt) der URL-Parameter `dark` ignoriert. Jede Änderung des FHEM Reading hat dann eine Umschaltung aller gerade geöffneten **FHEMApp's** zur Folge. Das festgelegte FHEM Reading wird auf seinen Wahrheitswert geprüft. Wenn dieses zutrifft, dann wird **FHEMApp** in das dunkle Farbschema geschaltet. Ansonsten wird **FHEMApp** in das helle Farbschema geschaltet.
+
+|Parameter|Beschreibung|
+|---|---|
+|reading|siehe Parameter [reading](#konfiguration-der-elemente)|
+|value|siehe Parameter [value](#konfiguration-der-elemente)|
+
+Die Umschaltung des Farbschema über das **Optionsmenü** kann zur Laufzeit immer erfolgen, wird jedoch nicht gespeichert.
+
## Optionsmenü
Durch Aktivierung der folgenden Optionen wird das Optionsmenü oben rechts in der Kopfleiste eingeblendet.

@@ -608,7 +628,7 @@ Die alternativen Beschriftungen können somit auch für die Erstellung mehrsprac

*Beispiel für ein angepasstes Navigationsmenü*
# Farben
-In **FHEMApp** können altrnativ zu hexadezimalen Farbangaben auch Farbvariablen eingesetzt werden. Damit können Themen erstellt und Farben schnell angepasst werden. Grundsätzlich steht ein helles und ein dunkles Farbschema für jede Instanz von **FHEMApp** zur Verfügung.
+In **FHEMApp** können altrnativ zu hexadezimalen Farbangaben auch Farbvariablen eingesetzt werden. Damit können Themen erstellt und Farben schnell angepasst werden. Grundsätzlich steht ein helles und ein dunkles Farbschema für jede Instanz von **FHEMApp** zur Verfügung. (siehe auch [Farbschema](#farbschema))
Neben frei definierbaren Farbvariablen, die Elementdefinitionen zur Angabe von Farbwerten eingesetzt werden können, gibt es feste Farbvariablen.
diff --git a/public/CHANGELOG.md b/public/CHANGELOG.md
index 5c2481ad..d057af58 100644
--- a/public/CHANGELOG.md
+++ b/public/CHANGELOG.md
@@ -1,3 +1,9 @@
+# v4.0.35-beta (10.04.2024)
+## OptionsMenu
+- App Update Function
+## Core
+- Changing DarkMode over FHEM reading
+- Solving unicode problem https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem
# v4.0.34-beta (29.03.2024)
## Panel Button
- When selecting the type "route" on click/longClick/longRelease, individual panels can now also be addressed
diff --git a/src/components/OptionsMenu.vue b/src/components/OptionsMenu.vue
index 77a14071..2d4b0ad5 100644
--- a/src/components/OptionsMenu.vue
+++ b/src/components/OptionsMenu.vue
@@ -14,12 +14,14 @@
presets = {
darkMode: { name: 'darkMode', title: "%t(_app.options.darkMode)" ,icon: 'mdi-theme-light-dark' },
reloadPage: { name: 'reloadPage', title: "%t(_app.options.reload)", icon: 'mdi-reload' },
- settings: { name:'settings', title: "%t(_app.options.settings)", icon: 'mdi-cogs' }
+ settings: { name:'settings', title: "%t(_app.options.settings)", icon: 'mdi-cogs' },
+ update: { name: 'update', title: "%t(_app.options.update)", icon: 'mdi-cloud-download-outline' }
}
if(opts.showDarkMode) res.push(presets.darkMode)
if(opts.showReloadPage) res.push(presets.reloadPage)
if(opts.showSettings) res.push(presets.settings)
+ if(opts.showUpdate && fhem.app.updateAvailable) res.push(presets.update)
res.push(...opts.commands)
@@ -38,6 +40,8 @@
if(option.name === 'settings') router.push({ name: 'settings', query: router.currentRoute.value.query })
if(option.name === 'darkMode') fhem.changeDarkMode()
+
+ if(option.name === 'update') fhem.appUpdate()
if(option.cmd) fhem.request('text', option.cmd)
}
@@ -46,17 +50,22 @@
-
+
+
+
+ @click="setOption(idx)">
+
+
+
+
+
diff --git a/src/components/PanelCard.vue b/src/components/PanelCard.vue
index 7d69fe49..77e5b21b 100644
--- a/src/components/PanelCard.vue
+++ b/src/components/PanelCard.vue
@@ -121,7 +121,7 @@
-
+
-
+
+
+ {{ item.panel.internals }}
+
+
diff --git a/src/components/SettingsHeader.vue b/src/components/SettingsHeader.vue
index d1e36b63..eba3c731 100644
--- a/src/components/SettingsHeader.vue
+++ b/src/components/SettingsHeader.vue
@@ -84,6 +84,35 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -112,6 +141,11 @@
:label="$t(preLang + 'showSettings')"
v-model="fhem.app.config.header.showSettings"/>
+
+
+
{
imageGradient: null,
showDarkMode: false,
showReloadPage: false,
+ showUpdate: false,
showSettings: false,
- commands: []
+ commands: [],
+ darkModeOverFhem: null
},
fhemDevice: null,
panelView: [],
@@ -53,6 +55,8 @@ export const useFhemStore = defineStore('fhem', () => {
message: false,
currentView: null,
version: null,
+ updateAvailable: false,
+ updateProgress: false,
helpURL: 'https://github.com/jemu75/fhemApp/tree/dev-v4?tab=readme-ov-file#'
})
@@ -62,7 +66,7 @@ export const useFhemStore = defineStore('fhem', () => {
xhrOffset: 0,
xhrBuffer: '',
evtBuffer: [],
- panelMap: []
+ panelMap: []
}
//coreFunction emit messages 1=status, 2=error, 3=warning, 4=info, 5=send, 6=receive, 7=details
@@ -104,8 +108,8 @@ export const useFhemStore = defineStore('fhem', () => {
}, 1000)
}
- //coreFunction to read Version
- async function getVersion() {
+ //coreFunction to read Version
+ async function getVersion() {
let header = new Headers()
header.append('pragma', 'no-cache')
@@ -197,7 +201,6 @@ export const useFhemStore = defineStore('fhem', () => {
}
app.message = false
- app.panelMaximized = false
log(4, 'URL processed.', route)
@@ -280,8 +283,8 @@ export const useFhemStore = defineStore('fhem', () => {
function base64ToString(val) {
try {
const decoded = atob(val)
- if (decoded && typeof decoded === "string") {
- return decoded
+ if(decoded && typeof decoded === 'string') {
+ return new TextDecoder().decode(Uint8Array.from(decoded, (m) => m.codePointAt(0)))
}
} catch {
log(2, 'Base64 decode failed.', val, 'base64')
@@ -326,16 +329,14 @@ export const useFhemStore = defineStore('fhem', () => {
async function loadConfig() {
let res = await request('text', 'get ' + app.fhemDevice + ' config'),
resText,
- cfg,
- re = new RegExp('€', 'g'),
- eur = '€'
+ cfg
if(RegExp('Please define '+ app.fhemDevice +' first').test(res)) {
log(2, 'Wrong FHEM Config-Device in URL.', { fhemResult: res }, 'wrongDevice')
return false
}
- resText = base64ToString(res).replace(re, eur)
+ resText = base64ToString(res)
cfg = typeof resText === 'string' ? stringToJson(resText) : false
app.noConfig = false
@@ -402,6 +403,21 @@ export const useFhemStore = defineStore('fhem', () => {
return true
}
+ //coreFunction start App-Update
+ function appUpdate() {
+ thread()
+ app.updateProgress = true
+ request('text', 'set ' + app.fhemDevice + ' update')
+ }
+
+ //subFunction for handle internal tasks triggered from FHEM (update, darkMode) called from handleEventBuffer and initialLoad
+ function handleInternalTask(task, val) {
+ if(task === 'update' && val === '1') app.updateAvailable = true
+ if(task === 'update' && val === '0' && app.updateProgress) location.reload()
+
+ if(task === 'darkMode') changeDarkMode(handleDefs([[app.header.darkModeOverFhem.split(':')[1], val, 'true'].join(':')], ['dark'], [false]).dark ? 'dark' : 'light')
+ }
+
//subFunction for update values in panelList
function doUpdate(obj, path, value) {
let parts
@@ -426,10 +442,15 @@ export const useFhemStore = defineStore('fhem', () => {
idx = stat.panelMap.map((e) => e.reading).indexOf(evt.reading)
if(idx !== -1) {
- if(!localLoop) log(6, 'Data from FHEM handled.', evt)
- for(const path of stat.panelMap[idx].items) {
- doUpdate(app.panelList, path, evt.value)
+ if(stat.panelMap[idx].items) {
+ for(const path of stat.panelMap[idx].items) {
+ doUpdate(app.panelList, path, evt.value)
+ }
+ } else {
+ handleInternalTask(stat.panelMap[idx].task, evt.value)
}
+
+ if(!localLoop) log(6, 'Data from FHEM handled.', evt)
} else {
if(!localLoop) log(8, 'Data from FHEM received.', evt)
}
@@ -589,7 +610,8 @@ export const useFhemStore = defineStore('fhem', () => {
devices,
panels = JSON.parse(JSON.stringify(app.config.panels)),
templates = JSON.parse(JSON.stringify(app.config.templates)),
- templateIdx
+ templateIdx,
+ darkModeDef
if(app.config.panels.length === 0) log(3, 'No Panels defined.', null, 'noPanels')
@@ -633,6 +655,13 @@ export const useFhemStore = defineStore('fhem', () => {
}
}
+ //add watching for updates
+ stat.panelMap.push({ reading: app.fhemDevice + '-update_available', task: 'update' })
+ if(app.header.darkModeOverFhem) {
+ darkModeDef = app.header.darkModeOverFhem.split(':')
+ if(darkModeDef.length === 2) stat.panelMap.push({ reading: darkModeDef[0], task: 'darkMode'})
+ }
+
log(4, 'PanelList and PanelMapping created.', { panelList: app.panelList, panelMap: stat.panelMap })
return true
}
@@ -689,7 +718,11 @@ export const useFhemStore = defineStore('fhem', () => {
val = getEl(res.Results[idx], jsonList2Item)
- for(const path of item.items) doUpdate(panelList, path, val)
+ if(item.items) {
+ for(const path of item.items) doUpdate(panelList, path, val)
+ } else {
+ handleInternalTask(item.task, val)
+ }
}
app.panelList = panelList
@@ -788,7 +821,9 @@ export const useFhemStore = defineStore('fhem', () => {
}
}
- if(!defs) return isList ? res : prototyp
+ if(!isList) res = Object.assign({}, prototyp)
+
+ if(!defs) return res
defList = JSON.parse(JSON.stringify(defs))
@@ -952,8 +987,8 @@ export const useFhemStore = defineStore('fhem', () => {
function init() {
log(1, 'FHEMApp launching...')
- getVersion()
initDarkMode()
+ getVersion()
initClock()
//register eventHandler
@@ -971,5 +1006,5 @@ export const useFhemStore = defineStore('fhem', () => {
//FHEMApp entryPoint
router.isReady().then(init())
- return { app, getEl, handleDefs, getIcon, replacer, createSession, request, thread, stringToJson, log, help, changeDarkMode }
+ return { app, getEl, handleDefs, getIcon, replacer, createSession, request, thread, stringToJson, log, help, changeDarkMode, appUpdate }
})
\ No newline at end of file
diff --git a/src/views/SettingsView.vue b/src/views/SettingsView.vue
index 667726cf..d759087d 100644
--- a/src/views/SettingsView.vue
+++ b/src/views/SettingsView.vue
@@ -7,9 +7,8 @@
import SettingsProps from '../components/SettingsProps.vue'
import SettingsColors from '../components/SettingsColors.vue'
import SettingsContent from '../components/SettingsContent.vue'
-import { onMounted } from 'vue'
- const tabs = ['header', 'panels', 'templates', 'navigation', 'colors', 'content']
+ const tabs = ['general', 'panels', 'templates', 'navigation', 'colors', 'content']
const settingsTab = ref(tabs[0])
const configIsChanged = ref(false)
@@ -22,16 +21,16 @@ import { onMounted } from 'vue'
})
async function saveSettings(save) {
- let config = null,
- re = new RegExp('€', 'g'),
- eur = '€'
+ let config = null
if(save) {
for(const [idx, template] of Object.entries(fhem.app.config.templates)) {
if(template.dist) fhem.app.config.templates.splice(idx, 1)
}
+
+ const utfStr = new TextEncoder().encode(JSON.stringify(fhem.app.config))
+ config = encodeURIComponent(btoa(String.fromCodePoint(...utfStr)))
- config = encodeURIComponent(btoa(JSON.stringify(fhem.app.config).replace(re, eur)))
await fhem.request('text', 'set ' + fhem.app.fhemDevice + ' config ' + config)
}
@@ -39,10 +38,7 @@ import { onMounted } from 'vue'
configIsChanged.value = false
}
- onMounted(() => {
- if(fhem.app.noConfig) fhem.log(3, 'Settings View - No Config handling', null, 'noConfig')
- })
-
+ if(fhem.app.noConfig) fhem.log(3, 'Settings View - No Config handling', null, 'noConfig')
@@ -70,7 +66,7 @@ import { onMounted } from 'vue'
{{ $t('_app.settings.' + tab + '.title', 2) }}
-
+
diff --git a/www/fhemapp4/CHANGELOG.md b/www/fhemapp4/CHANGELOG.md
index 5d93a3b6..d057af58 100644
--- a/www/fhemapp4/CHANGELOG.md
+++ b/www/fhemapp4/CHANGELOG.md
@@ -1,6 +1,12 @@
+# v4.0.35-beta (10.04.2024)
+## OptionsMenu
+- App Update Function
+## Core
+- Changing DarkMode over FHEM reading
+- Solving unicode problem https://developer.mozilla.org/en-US/docs/Glossary/Base64#the_unicode_problem
# v4.0.34-beta (29.03.2024)
## Panel Button
-- When selecting the type "route" on click/longClick/longRelease, individual panels can now also be addressed.
+- When selecting the type "route" on click/longClick/longRelease, individual panels can now also be addressed
# v4.0.33-beta (27.03.2024)
## Settings
- bugfix for panel / template settings
diff --git a/www/fhemapp4/assets/DevicesView-0bba875a.js b/www/fhemapp4/assets/DevicesView-da3ae322.js
similarity index 86%
rename from www/fhemapp4/assets/DevicesView-0bba875a.js
rename to www/fhemapp4/assets/DevicesView-da3ae322.js
index 1320f327..aaba7af1 100644
--- a/www/fhemapp4/assets/DevicesView-0bba875a.js
+++ b/www/fhemapp4/assets/DevicesView-da3ae322.js
@@ -1 +1 @@
-import{u as f,c,r as p,o as n,a as u,w as i,b as d,d as h,F as v,e as w}from"./index-8e61831a.js";import{_ as x}from"./PanelCard-4d67dc5e.js";const V={__name:"DevicesView",setup(g){const s=f(),m=c(()=>{let e=[];if(s.app.panelMaximized)e.push(s.app.panelMaximized);else{for(const t of s.app.panelView)s.handleDefs(s.app.panelList[t].panel.show,["show"],[!0]).show&&e.push(s.app.panelList[t]);e.sort((t,o)=>a(t)>a(o)?1:a(o)>a(t)?-1:0)}return e}),l=c(()=>{let e={cols:12,sm:6,lg:4};return/=maximized$/.test(s.app.currentView)&&(e={cols:12}),e});function a(e){return s.handleDefs(e.panel.sortby,["sortby"],[null]).sortby||"999"}return(e,t)=>{const o=p("v-col"),_=p("v-row");return n(),u(_,{"no-gutters":""},{default:i(()=>[(n(!0),d(v,null,h(m.value,r=>(n(),u(o,{cols:l.value.cols,sm:l.value.sm,lg:l.value.lg,key:r.name,class:"pa-1"},{default:i(()=>[w(x,{panel:r},null,8,["panel"])]),_:2},1032,["cols","sm","lg"]))),128))]),_:1})}}};export{V as default};
+import{u as f,c,r as p,o as n,a as u,w as i,b as d,d as h,F as v,e as w}from"./index-cea5b6ce.js";import{_ as x}from"./PanelCard-c745d8b0.js";const V={__name:"DevicesView",setup(g){const s=f(),m=c(()=>{let e=[];if(s.app.panelMaximized)e.push(s.app.panelMaximized);else{for(const t of s.app.panelView)s.handleDefs(s.app.panelList[t].panel.show,["show"],[!0]).show&&e.push(s.app.panelList[t]);e.sort((t,o)=>a(t)>a(o)?1:a(o)>a(t)?-1:0)}return e}),l=c(()=>{let e={cols:12,sm:6,lg:4};return/=maximized$/.test(s.app.currentView)&&(e={cols:12}),e});function a(e){return s.handleDefs(e.panel.sortby,["sortby"],[null]).sortby||"999"}return(e,t)=>{const o=p("v-col"),_=p("v-row");return n(),u(_,{"no-gutters":""},{default:i(()=>[(n(!0),d(v,null,h(m.value,r=>(n(),u(o,{cols:l.value.cols,sm:l.value.sm,lg:l.value.lg,key:r.name,class:"pa-1"},{default:i(()=>[w(x,{panel:r},null,8,["panel"])]),_:2},1032,["cols","sm","lg"]))),128))]),_:1})}}};export{V as default};
diff --git a/www/fhemapp4/assets/InternalsView-e53fbc35.js b/www/fhemapp4/assets/InternalsView-dc29562a.js
similarity index 90%
rename from www/fhemapp4/assets/InternalsView-e53fbc35.js
rename to www/fhemapp4/assets/InternalsView-dc29562a.js
index ace06eeb..c8f9f1ba 100644
--- a/www/fhemapp4/assets/InternalsView-e53fbc35.js
+++ b/www/fhemapp4/assets/InternalsView-dc29562a.js
@@ -1 +1 @@
-import{u as x,V as C}from"./index-617f058f.js";import{f as k,u as B,r as e,o as N,a as S,w as o,e as t,j as p,t as i,q as $,h as r}from"./index-8e61831a.js";const O={__name:"InternalsView",setup(I){const n=k(!0),a=B(),{toClipboard:u}=x();function d(){u(JSON.stringify(n.value?a.app.config:a.app,null," "))}return(l,c)=>{const m=e("v-toolbar-title"),v=e("v-toolbar"),f=e("v-switch"),_=e("v-col"),b=e("v-btn"),g=e("v-snackbar"),h=e("v-row"),w=e("v-divider"),V=e("v-card-text"),y=e("v-card");return N(),S(y,null,{default:o(()=>[t(v,null,{default:o(()=>[t(m,null,{default:o(()=>[p(i(l.$t("_app.internals.title")),1)]),_:1})]),_:1}),t(V,null,{default:o(()=>[t(h,{"no-gutters":"",class:"align-center pb-2"},{default:o(()=>[t(_,null,{default:o(()=>[t(f,{label:l.$t("_app.internals.onlyConfig"),modelValue:n.value,"onUpdate:modelValue":c[0]||(c[0]=s=>n.value=s),color:"blue",density:"comfortable","hide-details":""},null,8,["label","modelValue"])]),_:1}),t(_,{cols:"1",class:"text-right"},{default:o(()=>[t(g,{timeout:2e3,rounded:"pill"},{activator:o(({props:s})=>[t(b,$(s,{variant:"text",icon:"mdi-clipboard-multiple-outline",size:"small",onClick:d}),null,16)]),default:o(()=>[p(" "+i(l.$t("_app.messages.clipboard.text")),1)]),_:1})]),_:1})]),_:1}),t(w,{class:"pb-3"}),t(r(C),{data:n.value?r(a).app.config:r(a).app,deep:1,showLine:!1,showIcon:!0,showLength:!0},null,8,["data"])]),_:1})]),_:1})}}};export{O as default};
+import{u as x,V as C}from"./index-7769f5f8.js";import{f as k,u as B,r as e,o as N,a as S,w as o,e as t,j as p,t as i,q as $,h as r}from"./index-cea5b6ce.js";const O={__name:"InternalsView",setup(I){const n=k(!0),a=B(),{toClipboard:u}=x();function d(){u(JSON.stringify(n.value?a.app.config:a.app,null," "))}return(l,c)=>{const m=e("v-toolbar-title"),v=e("v-toolbar"),f=e("v-switch"),_=e("v-col"),b=e("v-btn"),g=e("v-snackbar"),h=e("v-row"),w=e("v-divider"),V=e("v-card-text"),y=e("v-card");return N(),S(y,null,{default:o(()=>[t(v,null,{default:o(()=>[t(m,null,{default:o(()=>[p(i(l.$t("_app.internals.title")),1)]),_:1})]),_:1}),t(V,null,{default:o(()=>[t(h,{"no-gutters":"",class:"align-center pb-2"},{default:o(()=>[t(_,null,{default:o(()=>[t(f,{label:l.$t("_app.internals.onlyConfig"),modelValue:n.value,"onUpdate:modelValue":c[0]||(c[0]=s=>n.value=s),color:"blue",density:"comfortable","hide-details":""},null,8,["label","modelValue"])]),_:1}),t(_,{cols:"1",class:"text-right"},{default:o(()=>[t(g,{timeout:2e3,rounded:"pill"},{activator:o(({props:s})=>[t(b,$(s,{variant:"text",icon:"mdi-clipboard-multiple-outline",size:"small",onClick:d}),null,16)]),default:o(()=>[p(" "+i(l.$t("_app.messages.clipboard.text")),1)]),_:1})]),_:1})]),_:1}),t(w,{class:"pb-3"}),t(r(C),{data:n.value?r(a).app.config:r(a).app,deep:1,showLine:!1,showIcon:!0,showLength:!0},null,8,["data"])]),_:1})]),_:1})}}};export{O as default};
diff --git a/www/fhemapp4/assets/PanelCard-4d67dc5e.js b/www/fhemapp4/assets/PanelCard-4d67dc5e.js
deleted file mode 100644
index 9d4a0977..00000000
--- a/www/fhemapp4/assets/PanelCard-4d67dc5e.js
+++ /dev/null
@@ -1,17 +0,0 @@
-import{u as G,c as S,r as b,o as p,b as T,y as q,t as F,k,a as E,w as z,j as J,z as pe,F as Z,e as y,A as te,f as N,q as ne,d as fe,l as Re,B as ae,C as re,D as Me,E as Ve,s as $,G as ke,x as he,H as Le,m as Se,I as Pe,J as Te,h as K,K as je,L as Fe,i as Ie,p as Ne,M as Ue,N as He,O as qe,P as Be}from"./index-8e61831a.js";const We={__name:"PanelMainInfo",props:{el:Object,iconmap:Array,devices:Object,height:String},setup(e){const t=e,n=G(),i=S(()=>n.handleDefs(t.el.text,["text","format"],["",!t.el.text2&&!t.el.text3&&!t.el.icon?"text-h6":"text-caption"])),u=S(()=>n.handleDefs(t.el.text2,["text","format"],["",t.el.text&&!t.el.text3&&!t.el.icon?"text-h6":"text-caption"])),s=S(()=>n.handleDefs(t.el.text3,["text","format"],["","text-caption"])),o=S(()=>{let a=n.handleDefs(t.el.icon,["icon","color","size"],["","","x-large"]);return a.icon&&(a.icon=n.getIcon(a.icon,t.iconmap)),a}),r=S(()=>{let a=n.handleDefs(t.el.status,["level","color","min","max","reverse","linear"],[0,"success",0,100,!1,!1]);return a.level=Math.round((a.level-a.min)/(a.max-a.min)*100),a.reverse=!!a.reverse,a});return(a,l)=>{const c=b("v-icon"),f=b("v-progress-circular"),C=b("v-progress-linear");return p(),T(Z,null,[e.el.text?(p(),T("div",{key:0,class:q(i.value.format)},F(i.value.text),3)):k("",!0),e.el.icon?(p(),E(c,{key:1,color:o.value.color,size:o.value.size},{default:z(()=>[J(F(o.value.icon),1)]),_:1},8,["color","size"])):k("",!0),e.el.status&&!r.value.linear?(p(),E(f,{key:2,width:"4",modelValue:r.value.level,"onUpdate:modelValue":l[0]||(l[0]=w=>r.value.level=w),color:r.value.color,reverse:r.value.reverse},null,8,["modelValue","color","reverse"])):k("",!0),e.el.status&&r.value.linear?(p(),E(C,{key:3,height:"7",rounded:"",modelValue:r.value.level,"onUpdate:modelValue":l[1]||(l[1]=w=>r.value.level=w),color:r.value.color,reverse:r.value.reverse},null,8,["modelValue","color","reverse"])):k("",!0),pe("div",{class:q(e.el.text2?u.value.format:s.value.format)},[e.el.text2?(p(),T("span",{key:0,class:q(u.value.format)},F(u.value.text),3)):k("",!0),e.el.text3?(p(),T("span",{key:1,class:q(s.value.format)},F(s.value.text),3)):k("",!0)],2)],64)}}},Ke={__name:"PanelMainBtn",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=S(()=>{let a=n.handleDefs(t.el.btn,["icon","disabled","color","variant"],["",!1,"","text"]);return a.icon&&(a.icon=n.getIcon(a.icon,t.iconmap)),a}),u=S(()=>{let a=n.handleDefs(t.el.status,["level","color","min","max","reverse"],[0,"success",0,100,!1]);return a.level=Math.round((a.level-a.min)/(a.max-a.min)*100),a.reverse=!!a.reverse,a}),s={timer:!1,long:!1};function o(a){let l=[],c=a.cmd,f;if(a.type==="cmd"){for(const C of t.devices)l=C.split(":"),f=RegExp(l[0],"g"),f.test(c)&&(c=c.replace(f,l[1]));n.request("text",c)}a.type==="route"&&te.push({name:"devices",params:{view:a.cmd},query:te.currentRoute.value.query}),a.type==="url"&&window.open(a.cmd,"_self")}function r(a){let l=n.handleDefs(t.el.click,["cmd","type"],["","cmd"],!1,null,!0),c=n.handleDefs(t.el.longClick,["cmd","type"],["","cmd"],!1,null,!0),f=n.handleDefs(t.el.longRelease,["cmd","type"],["","cmd"],!1,null,!0);a==="mouseStart"&&(s.timer=setTimeout(()=>{s.long=!0,c.cmd&&o(c)},1e3)),a==="mouseEnd"&&(s.long?f.cmd&&o(f):l.cmd&&o(l),clearTimeout(s.timer),s.long=!1)}return(a,l)=>{const c=b("v-progress-linear"),f=b("v-icon"),C=b("v-btn");return p(),T(Z,null,[e.el.status?(p(),E(c,{key:0,height:"4",modelValue:u.value.level,"onUpdate:modelValue":l[0]||(l[0]=w=>u.value.level=w),color:u.value.color,reverse:u.value.reverse},null,8,["modelValue","color","reverse"])):k("",!0),y(C,{icon:"",variant:i.value.variant,disabled:i.value.disabled,color:i.value.color,onMousedown:l[1]||(l[1]=w=>r("mouseStart")),onMouseup:l[2]||(l[2]=w=>r("mouseEnd")),class:"my-2"},{default:z(()=>[y(f,{size:"large"},{default:z(()=>[J(F(i.value.icon),1)]),_:1})]),_:1},8,["variant","disabled","color"])],64)}}},Je={class:"text-white"},Ge={__name:"PanelMainSlider",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=N();function u(a){i.value=a}const s=S(()=>{let a=n.handleDefs(t.el.slider,["cmd","current","color","min","max","steps","reverse","size","vertical"],["",0,"",0,100,10,!1,4,!1],!1,null,!0);return/%v/.test(a.current)&&(a.current=a.current.replace("%v",i.value)),u(a.current),a});let o=null;function r(a){let l=s.value.cmd,c=/\./.exec(s.value.steps),f=0,C=[];c&&(f=s.value.steps.slice(c.index).length-1),l=l.replace("%v",a.toFixed(f));for(const w of t.devices)C=w.split(":"),RegExp(C[0]).test(l)&&(l=l.replace(C[0],C[1]));clearTimeout(o),o=setTimeout(()=>{n.request("text",l)},500)}return(a,l)=>{const c=b("v-slider");return p(),E(c,{modelValue:i.value,"onUpdate:modelValue":[l[0]||(l[0]=f=>i.value=f),l[1]||(l[1]=f=>r(f))],min:s.value.min,max:s.value.max,step:s.value.steps,reverse:s.value.reverse,direction:s.value.vertical?"vertical":"horizontal","track-size":s.value.size,color:s.value.color,"hide-details":"","thumb-label":""},{"thumb-label":z(({modelValue:f})=>[pe("div",Je,F(f),1)]),_:1},8,["modelValue","min","max","step","reverse","direction","track-size","color"])}}},Ye={__name:"PanelMainImage",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=N(!1),u=S(()=>n.handleDefs(t.el.image,["source","height"],["",null]));return(s,o)=>{const r=b("v-skeleton-loader"),a=b("v-img");return p(),T(Z,null,[i.value?k("",!0):(p(),E(r,{key:0,type:"image"})),y(a,{src:u.value.source,height:u.value.height,onLoad:o[0]||(o[0]=l=>i.value=!0)},null,8,["src","height"])],64)}}},Ze={__name:"PanelMainMenu",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=S(()=>{let o=n.handleDefs(t.el.btn,["icon","disabled","color","variant"],["mdi-dots-vertical",!1,"","text"]);return o.icon&&(o.icon=n.getIcon(o.icon,t.iconmap)),o}),u=S(()=>{let o=[],r=n.handleDefs(t.el.menu,["name","cmd"],["",""],!0,","),a={};for(const l of r)a={name:/:/.test(l.name)?l.name.split(":")[0]:l.name,cmd:/:/.test(l.cmd)?l.cmd.split(":")[1]:l.cmd},o.push(a);return o});function s(o){let r=[];for(const a of t.devices)r=a.split(":"),RegExp(r[0]).test(o)&&(o=o.replace(r[0],r[1]));n.request("text",o)}return(o,r)=>{const a=b("v-icon"),l=b("v-btn"),c=b("v-list-item-title"),f=b("v-list-item"),C=b("v-list"),w=b("v-menu");return p(),E(w,null,{activator:z(({props:g})=>[y(l,ne(g,{icon:"",variant:i.value.variant,disabled:i.value.disabled||u.value.length<1,color:i.value.color,class:"my-2"}),{default:z(()=>[y(a,{size:"large"},{default:z(()=>[J(F(i.value.icon),1)]),_:1})]),_:2},1040,["variant","disabled","color"])]),default:z(()=>[y(C,null,{default:z(()=>[(p(!0),T(Z,null,fe(u.value,(g,_)=>(p(),E(f,{key:_,value:_,onClick:h=>s(g.cmd)},{default:z(()=>[y(c,null,{default:z(()=>[J(F(g.name),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})}}};var ce=null;function Xe(e){return ce||(ce=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),ce(e)}var de=null;function $e(e){de||(de=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),de(e)}function Qe(e){var t=document.createElement("style");return t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}function ie(e,t){t===void 0&&(t={});var n=document.createElement(e);return Object.keys(t).forEach(function(i){n[i]=t[i]}),n}function Oe(e,t,n){var i=window.getComputedStyle(e,n||null)||{display:"none"};return i[t]}function me(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if(Oe(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var et='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}',_e=0,le=null;function tt(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=rt.bind(e));var n=e.__resize_listeners__;if(!n){if(e.__resize_listeners__=[],window.ResizeObserver){var i=e.offsetWidth,u=e.offsetHeight,s=new ResizeObserver(function(){!e.__resize_observer_triggered__&&(e.__resize_observer_triggered__=!0,e.offsetWidth===i&&e.offsetHeight===u)||se(e)}),o=me(e),r=o.detached,a=o.rendered;e.__resize_observer_triggered__=r===!1&&a===!1,e.__resize_observer__=s,s.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){se(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(_e||(le=Qe(et)),it(e),e.__resize_rendered__=me(e).rendered,window.MutationObserver){var l=new MutationObserver(e.__resize_mutation_handler__);l.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=l}}e.__resize_listeners__.push(t),_e++}function nt(e,t){var n=e.__resize_listeners__;if(n){if(t&&n.splice(n.indexOf(t),1),!n.length||!t){if(e.detachEvent&&e.removeEventListener){e.detachEvent("onresize",e.__resize_legacy_resize_handler__),document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);return}e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",ge),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--_e&&le&&le.parentNode.removeChild(le)}}function at(e){var t=e.__resize_last__,n=t.width,i=t.height,u=e.offsetWidth,s=e.offsetHeight;return u!==n||s!==i?{width:u,height:s}:null}function rt(){var e=me(this),t=e.rendered,n=e.detached;t!==this.__resize_rendered__&&(!n&&this.__resize_triggers__&&(xe(this),this.addEventListener("scroll",ge,!0)),this.__resize_rendered__=t,se(this))}function ge(){var e=this;xe(this),this.__resize_raf__&&$e(this.__resize_raf__),this.__resize_raf__=Xe(function(){var t=at(e);t&&(e.__resize_last__=t,se(e))})}function se(e){!e||!e.__resize_listeners__||e.__resize_listeners__.forEach(function(t){t.call(e,e)})}function it(e){var t=Oe(e,"position");(!t||t==="static")&&(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};var n=ie("div",{className:"resize-triggers"}),i=ie("div",{className:"resize-expand-trigger"}),u=ie("div"),s=ie("div",{className:"resize-contract-trigger"});i.appendChild(u),n.appendChild(i),n.appendChild(s),e.appendChild(n),e.__resize_triggers__={triggers:n,expand:i,expandChild:u,contract:s},xe(e),e.addEventListener("scroll",ge,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function xe(e){var t=e.__resize_triggers__,n=t.expand,i=t.expandChild,u=t.contract,s=u.scrollWidth,o=u.scrollHeight,r=n.offsetWidth,a=n.offsetHeight,l=n.scrollWidth,c=n.scrollHeight;u.scrollLeft=s,u.scrollTop=o,i.style.width=r+1+"px",i.style.height=a+1+"px",n.scrollLeft=l,n.scrollTop=c}var W=function(){return W=Object.assign||function(e){for(var t,n=1,i=arguments.length;n"u"||typeof customElements>"u")return Q=!1;try{new Function("tag",`class EChartsElement extends HTMLElement {
- __dispose = null;
-
- disconnectedCallback() {
- if (this.__dispose) {
- this.__dispose();
- this.__dispose = null;
- }
- }
-}
-
-if (customElements.get(tag) == null) {
- customElements.define(tag, EChartsElement);
-}
-`)(Ae)}catch{return Q=!1}return Q=!0}(),mt="ecTheme",_t="ecInitOptions",pt="ecUpdateOptions",ht=Re({name:"echarts",props:W(W({option:Object,theme:{type:[Object,String]},initOptions:Object,updateOptions:Object,group:String,manualUpdate:Boolean},st),vt),emits:{},inheritAttrs:!1,setup:function(e,t){var n=t.attrs,i=ae(),u=ae(),s=ae(),o=ae(),r=re(mt,null),a=re(_t,null),l=re(pt,null),c=Me(e),f=c.autoresize,C=c.manualUpdate,w=c.loading,g=c.loadingOptions,_=S(function(){return o.value||e.option||null}),h=S(function(){return e.theme||oe(r,{})}),v=S(function(){return e.initOptions||oe(a,{})}),L=S(function(){return e.updateOptions||oe(l,{})}),m=S(function(){return function(A){var D={};for(var j in A)ct(j)||(D[j]=A[j]);return D}(n)}),M=Ve().proxy.$listeners;function x(A){if(u.value){var D=s.value=Pe(u.value,h.value,v.value);e.group&&(D.group=e.group);var j=M;j||(j={},Object.keys(n).filter(function(P){return P.indexOf("on")===0&&P.length>2}).forEach(function(P){var R=P.charAt(2).toLowerCase()+P.slice(3);R.substring(R.length-4)==="Once"&&(R="~".concat(R.substring(0,R.length-4))),j[R]=n[P]})),Object.keys(j).forEach(function(P){var R=j[P];if(R){var I=P.toLowerCase();I.charAt(0)==="~"&&(I=I.substring(1),R.__once__=!0);var B=D;if(I.indexOf("zr:")===0&&(B=D.getZr(),I=I.substring(3)),R.__once__){delete R.__once__;var X=R;R=function(){for(var Y=[],U=0;U(w(),"height: "+(/=maximized$/.test(n.app.currentView)?window.innerHeight-250+"px":t.height)));function c(g){return s.d(g,{dateStyle:u.value?"short":"long"})}function f(g,_){let h;return r.value.from&&_&&(h=r.value.from),r.value.to&&!_&&(h=r.value.to),!h&&!isNaN(g)&&(h=(v=>new Date(v.setDate(v.getDate()+(Number(g)||0))))(new Date)),h||(h=new Date(/.*T.*/.test(g)?g:g+"T00:00:00")),!r.value.from&&_&&(r.value.from=h),!r.value.to&&!_&&(r.value.to=h),h=new Date(h.getTime()-h.getTimezoneOffset()*60*1e3),h.toISOString().split("T")[0]}async function C(){let g=n.handleDefs(t.el.serie,["data","name","digits","suffix","type"],[null,"",0,"","line"],!0),_,h,v=[],L,m,M,x,d,V=[];if(g.length>0)for(const O of g){if(/^get.*/.test(O.data)){d="time",_=O.data.split(" ");for(const A of t.devices)A.split(":")[0]===_[1]&&(_[1]=A.split(":")[1]);if(_[4]=f(_[4],!0),_[5]=f(_[5],!1),h=await n.request("text",_.join(" ")),x=[],v=h.split(`
-`),v.length>0)for(const A of v)L=A.split(" "),L.length>1&&(m=new Date(L[0].replace("_","T")),M=parseFloat(L[1]).toFixed(O.digits),x.push([m,M]))}else/^\[.*\]/.test(O.data)?x=n.stringToJson(O.data):x=[n.replacer("%n("+O.digits+")",O.data,!0)];V.push({xAxisType:d,type:O.type,name:O.name,digits:O.digits,suffix:O.suffix,data:x})}return V}async function w(){let g={tooltip:{trigger:"axis"},legend:{data:[],bottom:10},backgroundColor:"rgba(255, 255, 255, 0)",grid:{top:30,bottom:60,left:60,right:60},animationDuration:300,series:[],yAxis:[],xAxis:{}},_=JSON.parse(JSON.stringify(n.getEl(t.el,["options"])||{})),h=JSON.parse(JSON.stringify(n.getEl(t.el,["options2"])||{})),v=Object.assign(g,/=maximized$/.test(n.app.currentView)&&Object.keys(h).length>0?h:_),L;r.value.fromMenu=!1,r.value.toMenu=!1,r.value.loaded=!1,a=await C();for(const[m,M]of Object.entries(a))L={formatter:x=>x.toLocaleString(s.locale.value,{minimumFractionDigits:M.digits,maximumFractionDigits:M.digits})+M.suffix},v.series[m]||(v.series[m]={}),v.yAxis[m]||(v.yAxis[m]={}),v.legend.data||(v.legend.data=[]),v.xAxis.type||(v.xAxis.type=M.xAxisType),v.yAxis[m].type||(v.yAxis[m].type="value"),v.yAxis[m].axisLabel||(v.yAxis[m].axisLabel={}),v.yAxis[m].axisLabel.formatter||(v.yAxis[m].axisLabel.formatter=L.formatter),v.legend.data[m]||(v.legend.data[m]=M.name),v.series[m].name||(v.series[m].name=M.name),v.series[m].type||(v.series[m].type=M.type),v.series[m].data||(v.series[m].data=M.data),v.series[m].detail||(v.series[m].detail={}),v.series[m].detail.formatter||(v.series[m].detail.formatter=L.formatter),v.series[m].tooltip||(v.series[m].tooltip={}),v.series[m].tooltip.valueFormatter||(v.series[m].tooltip.valueFormatter=L.formatter);n.log(7,"Chartdata chart.loaded.",v),o.value=Object.assign({},v),r.value.loaded=!0}return(g,_)=>{const h=b("v-btn"),v=b("v-date-picker"),L=b("v-locale-provider"),m=b("v-menu"),M=b("v-skeleton-loader");return p(),T(Z,null,[/=maximized$/.test(K(n).app.currentView)?(p(),T("div",gt,[y(m,{modelValue:r.value.fromMenu,"onUpdate:modelValue":_[2]||(_[2]=x=>r.value.fromMenu=x),"close-on-content-click":!1},{activator:z(({props:x})=>[y(h,ne(x,{variant:"outlined","append-icon":"mdi-calendar",class:"mr-2"}),{default:z(()=>[J(F(c(r.value.from)),1)]),_:2},1040)]),default:z(()=>[y(L,{locale:K(s).locale.value},{default:z(()=>[y(v,{modelValue:r.value.from,"onUpdate:modelValue":[_[0]||(_[0]=x=>r.value.from=x),_[1]||(_[1]=x=>w())],color:"secondary"},null,8,["modelValue"])]),_:1},8,["locale"])]),_:1},8,["modelValue"]),J(" - "),y(m,{modelValue:r.value.toMenu,"onUpdate:modelValue":_[5]||(_[5]=x=>r.value.toMenu=x),"close-on-content-click":!1},{activator:z(({props:x})=>[y(h,ne(x,{variant:"outlined","append-icon":"mdi-calendar",class:"ml-2"}),{default:z(()=>[J(F(c(r.value.to)),1)]),_:2},1040)]),default:z(()=>[y(L,{locale:K(s).locale.value},{default:z(()=>[y(v,{modelValue:r.value.to,"onUpdate:modelValue":[_[3]||(_[3]=x=>r.value.to=x),_[4]||(_[4]=x=>w())],color:"secondary"},null,8,["modelValue"])]),_:1},8,["locale"])]),_:1},8,["modelValue"])])):k("",!0),pe("div",{style:Ue(l.value)},[r.value.loaded?k("",!0):(p(),E(M,{key:0,type:"text, image, text"})),r.value.loaded?(p(),E(K(ht),{key:1,option:o.value,theme:K(i).global.name.value==="dark"?"dark":"light",autoresize:""},null,8,["option","theme"])):k("",!0)],4)],64)}}},yt=180/Math.PI,Ee=e=>{const t=e%360;return t<0?360+t:t},bt=({x:e,y:t},n)=>{const i=n.left+n.width/2,u=n.top+n.height/2;return Math.atan2(t-u,e-i)*yt},ve=()=>{};class wt{constructor(t,n){this.active=!1,this.element=t,this.element.style.willChange="transform",this.initOptions(n),this.updateCSS(),this.bindHandlers(),this.addListeners()}get angle(){return this._angle}set angle(t){this._angle!==t&&(this._angle=Ee(t),this.updateCSS())}initOptions(t){t=t||{},this.onRotate=t.onRotate||ve,this.onDragStart=t.onDragStart||ve,this.onDragStop=t.onDragStop||ve,this._angle=t.angle||0}bindHandlers(){this.onRotationStart=this.onRotationStart.bind(this),this.onRotated=this.onRotated.bind(this),this.onRotationStop=this.onRotationStop.bind(this)}addListeners(){this.element.addEventListener("touchstart",this.onRotationStart,{passive:!0}),document.addEventListener("touchmove",this.onRotated,{passive:!1}),document.addEventListener("touchend",this.onRotationStop,{passive:!0}),document.addEventListener("touchcancel",this.onRotationStop,{passive:!0}),this.element.addEventListener("mousedown",this.onRotationStart,{passive:!0}),document.addEventListener("mousemove",this.onRotated,{passive:!1}),document.addEventListener("mouseup",this.onRotationStop,{passive:!0}),document.addEventListener("mouseleave",this.onRotationStop,{passive:!1})}removeListeners(){this.element.removeEventListener("touchstart",this.onRotationStart),document.removeEventListener("touchmove",this.onRotated),document.removeEventListener("touchend",this.onRotationStop),document.removeEventListener("touchcancel",this.onRotationStop),this.element.removeEventListener("mousedown",this.onRotationStart),document.removeEventListener("mousemove",this.onRotated),document.removeEventListener("mouseup",this.onRotationStop),document.removeEventListener("mouseleave",this.onRotationStop)}destroy(){this.onRotationStop(),this.removeListeners()}onRotationStart(t){(t.type==="touchstart"||t.button===0)&&(this.active=!0,this.onDragStart(t),this.setAngleFromEvent(t))}onRotationStop(){this.active&&(this.active=!1,this.onDragStop()),this.active=!1}onRotated(t){this.active&&(t.preventDefault(),this.setAngleFromEvent(t))}setAngleFromEvent(t){const n=t.targetTouches?t.targetTouches[0]:t,i=bt({x:n.clientX,y:n.clientY},this.element.getBoundingClientRect());this._angle=Ee(i+90),this.updateCSS(),this.onRotate(this._angle)}updateCSS(){this.element.style.transform="rotate("+this._angle+"deg)"}}const zt=["red","yellow","green","cyan","blue","magenta","red"],De={ArrowUp:(e,t)=>e+t,ArrowRight:(e,t)=>e+t,ArrowDown:(e,t)=>e-t,ArrowLeft:(e,t)=>e-t,PageUp:(e,t)=>e+t*10,PageDown:(e,t)=>e-t*10,Home:()=>0,End:()=>359},ue={name:"ColorPicker",emits:["select","input","change"],props:{hue:{default:0},saturation:{default:100},luminosity:{default:50},alpha:{default:1},step:{default:1},mouseScroll:{default:!1},variant:{default:"collapsible"},disabled:{default:!1},initiallyCollapsed:{default:!1},ariaLabel:{default:"color picker"},ariaRoledescription:{default:"radial slider"},ariaValuetext:{default:""},ariaLabelColorWell:{default:"color well"}},setup(e,{emit:t}){const n=N(null),i=N(null);let u=null;const s=e.hue+"deg",o=N(e.hue),r=N(!e.initiallyCollapsed),a=N(!e.initiallyCollapsed),l=N(!1),c=N(!1),f=N(!1),C=S(()=>`hsla(${o.value}, ${e.saturation}%, ${e.luminosity}%, ${e.alpha})`),w=S(()=>zt[Math.round(o.value/60)]);return $(()=>e.hue,m=>{o.value=m,u.angle=m}),he(()=>{u=new wt(i.value,{angle:o.value,onRotate(m){o.value=m,t("input",o.value)},onDragStart(){f.value=!0},onDragStop(){f.value=!1,t("change",o.value)}})}),Le(()=>{u.destroy(),u=null}),{rcp:u,el:n,rotator:i,initialAngle:s,angle:o,isPaletteIn:r,isKnobIn:a,isDragging:f,isRippling:c,isPressed:l,color:C,valuetext:w,onKeyDown:m=>{e.disabled||l.value||!a.value||!(m.key in De)||(m.preventDefault(),u.angle=De[m.key](u.angle,e.step),o.value=u.angle,t("input",o.value),t("change",o.value))},onScroll:m=>{l.value||!a.value||(m.preventDefault(),m.deltaY>0?u.angle+=e.step:u.angle-=e.step,o.value=u.angle,t("input",o.value),t("change",o.value))},selectColor:()=>{l.value=!0,r.value&&a.value?(t("select",o.value),c.value=!0):r.value=!0},togglePicker:()=>{e.variant!=="persistent"&&(a.value?a.value=!1:(a.value=!0,r.value=!0)),c.value=!1,l.value=!1},hidePalette:()=>{a.value||(r.value=!1)}}}};function kt(e,t,n,i,u,s){return p(),E("div",{ref:"el",role:"slider","aria-roledescription":n.ariaRoledescription,"aria-label":n.ariaLabel,"aria-expanded":i.isPaletteIn,"aria-valuemin":"0","aria-valuemax":"359","aria-valuenow":i.angle,"aria-valuetext":n.ariaValuetext||i.valuetext,"aria-disabled":n.disabled,class:["rcp",{dragging:i.isDragging,disabled:n.disabled}],tabindex:n.disabled?-1:0,style:{"--rcp-initial-angle":i.initialAngle},onKeyup:t[4]||(t[4]=qe((...o)=>i.selectColor&&i.selectColor(...o),["enter"])),onKeydown:t[5]||(t[5]=(...o)=>i.onKeyDown&&i.onKeyDown(...o))},[y("div",{class:["rcp__palette",i.isPaletteIn?"in":"out"]},null,2),y("div",ne({class:"rcp__rotator",style:{"pointer-events":n.disabled||i.isPressed||!i.isKnobIn?"none":null}},He(n.mouseScroll?{wheel:i.onScroll}:{}),{ref:"rotator"}),[y("div",{class:["rcp__knob",i.isKnobIn?"in":"out"],onTransitionend:t[1]||(t[1]=(...o)=>i.hidePalette&&i.hidePalette(...o))},null,34)],16),y("div",{class:["rcp__ripple",{rippling:i.isRippling}],style:{borderColor:i.color}},null,6),y("button",{type:"button",class:["rcp__well",{pressed:i.isPressed}],"aria-label":n.ariaLabelColorWell,disabled:n.disabled,tabindex:n.disabled?-1:0,style:{backgroundColor:i.color},onAnimationend:t[2]||(t[2]=(...o)=>i.togglePicker&&i.togglePicker(...o)),onClick:t[3]||(t[3]=(...o)=>i.selectColor&&i.selectColor(...o))},null,46,["aria-label","disabled","tabindex"])],46,["aria-roledescription","aria-label","aria-expanded","aria-valuenow","aria-valuetext","aria-disabled","tabindex"])}ue.render=kt;ue.install=function(e){e.component("ColorPicker",ue)};const St={class:"mt-4 mb-2"},Ct={__name:"PanelMainColorpicker",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=S(()=>n.handleDefs(t.el.picker,["cmd","current"],["",!1]));function u(r){let a=s(r,50,100),l=i.value.cmd,c=[];l=l.replace("%v",a);for(const f of t.devices)c=f.split(":"),RegExp(c[0]).test(l)&&(l=l.replace(c[0],c[1]));n.request("text",l)}function s(r,a,l){a/=100;const c=l*Math.min(a,1-a)/100,f=C=>{const w=(C+r/30)%12,g=a-c*Math.max(Math.min(w-3,9-w,1),-1);return Math.round(255*g).toString(16).padStart(2,"0")};return`${f(0)}${f(8)}${f(4)}`}function o(r){r.split(" ").length>1&&(r=r.split(" ").slice(-1)[0]),r=r.replace(/^#/,"");let a=parseInt(r,16),l=a>>16&255,c=a>>8&255,f=a&255;l/=255,c/=255,f/=255;let C=Math.max(l,c,f),w=Math.min(l,c,f),g=C-w,_=(C+w)/2,h=0,v=0;return g!==0&&(C===l?h=((c-f)/g+(c(p(),T("div",St,[y(K(ue),ne(o(i.value.current),{variant:"persistent",onChange:a[0]||(a[0]=l=>u(l))}),null,16)]))}},Et={__name:"PanelMain",props:{main:Object,levels:Array,iconmap:Object,devices:Object},setup(e){const t=G();function n(r,a){return t.handleDefs(r[a].size,["size"],[!1]).size}function i(r){let a="";return["info"].indexOf(r)!==-1&&(a="mx-2"),a}function u(r,a){return r[a]?t.handleDefs(r[a].divider,["show"],[!1]).show:!1}function s(r){return r.level?t.handleDefs(r.level.height,["height"],["64px"]).height:"64px"}function o(r){if(r==="info")return We;if(r==="btn")return Ke;if(r==="slider")return Ge;if(r==="image")return Ye;if(r==="menu")return Ze;if(r==="chart")return xt;if(r==="colorpicker")return Ct}return(r,a)=>{const l=b("v-sheet"),c=b("v-col"),f=b("v-divider"),C=b("v-row"),w=b("v-expand-transition");return p(!0),T(Z,null,fe(e.main,(g,_)=>(p(),T("div",{key:_},[y(w,null,{default:z(()=>[e.levels.indexOf(_)!==-1?(p(),E(C,{key:0,"no-gutters":"",class:"text-center align-center"},{default:z(()=>[y(l,{height:s(g,"level")},null,8,["height"]),(p(),T(Z,null,fe(["left1","left2","mid","right1","right2"],h=>(p(),T(Z,{key:h},[g.level[h]?(p(),E(c,{key:0,cols:n(g,h),class:q(i(g.level[h]))},{default:z(()=>[(p(),E(Be(o(g.level[h])),{el:g[h],iconmap:e.iconmap,devices:e.devices,height:s(g,"level")},null,8,["el","iconmap","devices","height"]))]),_:2},1032,["cols","class"])):k("",!0),u(g,h)?(p(),E(f,{key:1,vertical:""})):k("",!0)],64))),64)),u(g,"level")?(p(),E(f,{key:0})):k("",!0)]),_:2},1024)):k("",!0)]),_:2},1024)]))),128)}}},Lt={__name:"PanelCard",props:{panel:Object},setup(e){const t=e,n=G();let i=n.thread();he(()=>n.thread(i));function u(x){let d=n.handleDefs(t.panel.status[x],["level","color","min","max","reverse"],[0,"success",0,100,!1]);return d.level=Math.round((d.level-d.min)/(d.max-d.min)*100),d}const s=S(()=>u("bar")),o=S(()=>u("bar2")),r=S(()=>n.handleDefs(t.panel.status.imageUrl,["url"],[""])),a=S(()=>n.handleDefs(t.panel.panel.sortby,["sortby"],[null])),l=S(()=>n.handleDefs(t.panel.status.title,["title"],[""])),c=N(n.handleDefs(t.panel.panel.expandable,["expandable","expanded","maximizable"],[!1,!1,!1]));$(t.panel.main,x=>{let d=f(x);c.value.activeLevels.join("-")!==d.join("-")&&(c.value.activeLevels=d,C(!0))});function f(x){let d=[];for(const[V,O]of Object.entries(x))n.handleDefs(O.level.show,["show"],[!0]).show&&d.push(Number(V));return d}function C(x){let d=c.value,V;x?d.activeLevels=f(t.panel.main):(d.expandable&&(d.expanded=!d.expanded),d.maximizable&&(d.expanded?te.push({name:"devices",params:{view:"panel="+t.panel.name+"=maximized"},query:te.currentRoute.value.query}):te.back())),d.expanded?d.levels=d.activeLevels:d.expandable||x?d.levels=[d.activeLevels[0]]:(V=d.activeLevels.indexOf(d.levels[0]),d.levels=[d.activeLevels[V+1]>=0?d.activeLevels[V+1]:d.activeLevels[0]]),d.activeLevels.length>1||d.maximizable?d.icon=d.expandable?d.expanded?"mdi-arrow-collapse":"mdi-arrow-expand":d.expanded?"":"mdi-swap-vertical":d.icon=""}function w(x){let d=n.handleDefs(t.panel.info[x],["text","icon","color"],["","",""]);return d.icon&&(d.icon=n.getIcon(d.icon,t.panel.panel.iconmap)),d}function g(x){let d=["left1","left2","mid1","mid2","right1","right2"],V=w(x);return w(d[d.indexOf(x)-1]).text&&V.text&&!V.icon?"ml-1 text-truncate":V.text?"text-truncate":""}const _=S(()=>w("left1")),h=S(()=>w("left2")),v=S(()=>w("mid1")),L=S(()=>w("mid2")),m=S(()=>w("right1")),M=S(()=>w("right2"));return C(!0),(x,d)=>{const V=b("v-progress-linear"),O=b("v-col"),A=b("v-row"),D=b("v-spacer"),j=b("v-btn"),H=b("v-card-title"),P=b("v-img"),R=b("v-sheet"),I=b("v-icon"),B=b("v-system-bar"),X=b("v-layout"),Y=b("v-card");return p(),E(Y,{variant:"tonal"},{default:z(()=>[y(A,{"no-gutters":""},{default:z(()=>[e.panel.status.bar?(p(),E(O,{key:0},{default:z(()=>[y(V,{height:"7",modelValue:s.value.level,"onUpdate:modelValue":d[0]||(d[0]=U=>s.value.level=U),color:s.value.color,reverse:s.value.reverse},null,8,["modelValue","color","reverse"])]),_:1})):k("",!0),e.panel.status.bar2?(p(),E(O,{key:1},{default:z(()=>[y(V,{height:"7",modelValue:o.value.level,"onUpdate:modelValue":d[1]||(d[1]=U=>o.value.level=U),color:o.value.color,reverse:o.value.reverse},null,8,["modelValue","color","reverse"])]),_:1})):k("",!0)]),_:1}),y(R,{color:"secondary"},{default:z(()=>[y(P,{src:r.value.url,gradient:r.value.url?K(n).app.header.imageGradient:"",height:"48",cover:""},{default:z(()=>[y(H,null,{default:z(()=>[y(A,{"no-gutters":""},{default:z(()=>[e.panel.status.title?(p(),E(O,{key:0},{default:z(()=>[J(F(l.value.title),1)]),_:1})):k("",!0),y(D),K(n).app.settings.loglevel>6?(p(),E(O,{key:1,class:"text-right"},{default:z(()=>[J(F(a.value.sortby),1)]),_:1})):k("",!0),c.value.icon?(p(),E(O,{key:2,cols:"1",class:"text-right"},{default:z(()=>[y(j,{icon:c.value.icon,size:"small",variant:"plain",density:"compact",onClick:d[2]||(d[2]=U=>C(!1))},null,8,["icon"])]),_:1})):k("",!0)]),_:1})]),_:1})]),_:1},8,["src","gradient"])]),_:1}),y(Et,{main:e.panel.main,levels:c.value.levels,iconmap:e.panel.panel.iconmap,devices:e.panel.panel.devices},null,8,["main","levels","iconmap","devices"]),y(X,{style:{height:"24px"}},{default:z(()=>[y(B,{color:"secondary"},{default:z(()=>[_.value.icon?(p(),E(I,{key:0,icon:_.value.icon,color:_.value.color},null,8,["icon","color"])):k("",!0),_.value.text?(p(),T("span",{key:1,class:q(g("left1"))},F(_.value.text),3)):k("",!0),h.value.icon?(p(),E(I,{key:2,icon:h.value.icon,color:h.value.color},null,8,["icon","color"])):k("",!0),h.value.text?(p(),T("span",{key:3,class:q(g("left2"))},F(h.value.text),3)):k("",!0),y(D),v.value.icon?(p(),E(I,{key:4,icon:v.value.icon,color:v.value.color},null,8,["icon","color"])):k("",!0),v.value.text?(p(),T("span",{key:5,class:q(g("mid1"))},F(v.value.text),3)):k("",!0),L.value.icon?(p(),E(I,{key:6,icon:L.value.icon,color:L.value.color},null,8,["icon","color"])):k("",!0),L.value.text?(p(),T("span",{key:7,class:q(g("mid2"))},F(L.value.text),3)):k("",!0),y(D),m.value.icon?(p(),E(I,{key:8,icon:m.value.icon,color:m.value.color},null,8,["icon","color"])):k("",!0),m.value.text?(p(),T("span",{key:9,class:q(g("right1"))},F(m.value.text),3)):k("",!0),M.value.icon?(p(),E(I,{key:10,icon:M.value.icon,color:M.value.color},null,8,["icon","color"])):k("",!0),M.value.text?(p(),T("span",{key:11,class:q(g("right2"))},F(M.value.text),3)):k("",!0)]),_:1})]),_:1})]),_:1})}}};export{Lt as _};
diff --git a/www/fhemapp4/assets/PanelCard-c745d8b0.js b/www/fhemapp4/assets/PanelCard-c745d8b0.js
new file mode 100644
index 00000000..f833dfb8
--- /dev/null
+++ b/www/fhemapp4/assets/PanelCard-c745d8b0.js
@@ -0,0 +1,17 @@
+import{u as G,c as S,r as y,o as m,b as T,x as q,t as j,k,a as E,w as z,j as W,y as he,F as Z,e as b,z as ne,f as N,q as ae,d as _e,l as Re,A as re,B as ie,C as Me,D as Ve,s as Q,E as ke,G as ge,H as Le,m as Se,I as Pe,J as Te,h as B,K as je,L as Fe,i as Ie,p as Ne,M as Ue,N as He,O as qe,P as Be}from"./index-cea5b6ce.js";const We={__name:"PanelMainInfo",props:{el:Object,iconmap:Array,devices:Object,height:String},setup(e){const t=e,n=G(),i=S(()=>n.handleDefs(t.el.text,["text","format"],["",!t.el.text2&&!t.el.text3&&!t.el.icon?"text-h6":"text-caption"])),u=S(()=>n.handleDefs(t.el.text2,["text","format"],["",t.el.text&&!t.el.text3&&!t.el.icon?"text-h6":"text-caption"])),s=S(()=>n.handleDefs(t.el.text3,["text","format"],["","text-caption"])),l=S(()=>{let a=n.handleDefs(t.el.icon,["icon","color","size"],["","","x-large"]);return a.icon&&(a.icon=n.getIcon(a.icon,t.iconmap)),a}),r=S(()=>{let a=n.handleDefs(t.el.status,["level","color","min","max","reverse","linear"],[0,"success",0,100,!1,!1]);return a.level=Math.round((a.level-a.min)/(a.max-a.min)*100),a.reverse=!!a.reverse,a});return(a,o)=>{const c=y("v-icon"),f=y("v-progress-circular"),C=y("v-progress-linear");return m(),T(Z,null,[e.el.text?(m(),T("div",{key:0,class:q(i.value.format)},j(i.value.text),3)):k("",!0),e.el.icon?(m(),E(c,{key:1,color:l.value.color,size:l.value.size},{default:z(()=>[W(j(l.value.icon),1)]),_:1},8,["color","size"])):k("",!0),e.el.status&&!r.value.linear?(m(),E(f,{key:2,width:"4",modelValue:r.value.level,"onUpdate:modelValue":o[0]||(o[0]=w=>r.value.level=w),color:r.value.color,reverse:r.value.reverse},null,8,["modelValue","color","reverse"])):k("",!0),e.el.status&&r.value.linear?(m(),E(C,{key:3,height:"7",rounded:"",modelValue:r.value.level,"onUpdate:modelValue":o[1]||(o[1]=w=>r.value.level=w),color:r.value.color,reverse:r.value.reverse},null,8,["modelValue","color","reverse"])):k("",!0),he("div",{class:q(e.el.text2?u.value.format:s.value.format)},[e.el.text2?(m(),T("span",{key:0,class:q(u.value.format)},j(u.value.text),3)):k("",!0),e.el.text3?(m(),T("span",{key:1,class:q(s.value.format)},j(s.value.text),3)):k("",!0)],2)],64)}}},Ke={__name:"PanelMainBtn",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=S(()=>{let a=n.handleDefs(t.el.btn,["icon","disabled","color","variant"],["",!1,"","text"]);return a.icon&&(a.icon=n.getIcon(a.icon,t.iconmap)),a}),u=S(()=>{let a=n.handleDefs(t.el.status,["level","color","min","max","reverse"],[0,"success",0,100,!1]);return a.level=Math.round((a.level-a.min)/(a.max-a.min)*100),a.reverse=!!a.reverse,a}),s={timer:!1,long:!1};function l(a){let o=[],c=a.cmd,f;if(a.type==="cmd"){for(const C of t.devices)o=C.split(":"),f=RegExp(o[0],"g"),f.test(c)&&(c=c.replace(f,o[1]));n.request("text",c)}a.type==="route"&&ne.push({name:"devices",params:{view:a.cmd},query:ne.currentRoute.value.query}),a.type==="url"&&window.open(a.cmd,"_self")}function r(a){let o=n.handleDefs(t.el.click,["cmd","type"],["","cmd"],!1,null,!0),c=n.handleDefs(t.el.longClick,["cmd","type"],["","cmd"],!1,null,!0),f=n.handleDefs(t.el.longRelease,["cmd","type"],["","cmd"],!1,null,!0);a==="mouseStart"&&(s.timer=setTimeout(()=>{s.long=!0,c.cmd&&l(c)},1e3)),a==="mouseEnd"&&(s.long?f.cmd&&l(f):o.cmd&&l(o),clearTimeout(s.timer),s.long=!1)}return(a,o)=>{const c=y("v-progress-linear"),f=y("v-icon"),C=y("v-btn");return m(),T(Z,null,[e.el.status?(m(),E(c,{key:0,height:"4",modelValue:u.value.level,"onUpdate:modelValue":o[0]||(o[0]=w=>u.value.level=w),color:u.value.color,reverse:u.value.reverse},null,8,["modelValue","color","reverse"])):k("",!0),b(C,{icon:"",variant:i.value.variant,disabled:i.value.disabled,color:i.value.color,onMousedown:o[1]||(o[1]=w=>r("mouseStart")),onMouseup:o[2]||(o[2]=w=>r("mouseEnd")),class:"my-2"},{default:z(()=>[b(f,{size:"large"},{default:z(()=>[W(j(i.value.icon),1)]),_:1})]),_:1},8,["variant","disabled","color"])],64)}}},Je={class:"text-white"},Ge={__name:"PanelMainSlider",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=N();function u(a){i.value=a}const s=S(()=>{let a=n.handleDefs(t.el.slider,["cmd","current","color","min","max","steps","reverse","size","vertical"],["",0,"",0,100,10,!1,4,!1],!1,null,!0);return/%v/.test(a.current)&&(a.current=a.current.replace("%v",i.value)),u(a.current),a});let l=null;function r(a){let o=s.value.cmd,c=/\./.exec(s.value.steps),f=0,C=[];c&&(f=s.value.steps.slice(c.index).length-1),o=o.replace("%v",a.toFixed(f));for(const w of t.devices)C=w.split(":"),RegExp(C[0]).test(o)&&(o=o.replace(C[0],C[1]));clearTimeout(l),l=setTimeout(()=>{n.request("text",o)},500)}return(a,o)=>{const c=y("v-slider");return m(),E(c,{modelValue:i.value,"onUpdate:modelValue":[o[0]||(o[0]=f=>i.value=f),o[1]||(o[1]=f=>r(f))],min:s.value.min,max:s.value.max,step:s.value.steps,reverse:s.value.reverse,direction:s.value.vertical?"vertical":"horizontal","track-size":s.value.size,color:s.value.color,"hide-details":"","thumb-label":""},{"thumb-label":z(({modelValue:f})=>[he("div",Je,j(f),1)]),_:1},8,["modelValue","min","max","step","reverse","direction","track-size","color"])}}},Ye={__name:"PanelMainImage",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=N(!1),u=S(()=>n.handleDefs(t.el.image,["source","height"],["",null]));return(s,l)=>{const r=y("v-skeleton-loader"),a=y("v-img");return m(),T(Z,null,[i.value?k("",!0):(m(),E(r,{key:0,type:"image"})),b(a,{src:u.value.source,height:u.value.height,onLoad:l[0]||(l[0]=o=>i.value=!0)},null,8,["src","height"])],64)}}},Ze={__name:"PanelMainMenu",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=S(()=>{let l=n.handleDefs(t.el.btn,["icon","disabled","color","variant"],["mdi-dots-vertical",!1,"","text"]);return l.icon&&(l.icon=n.getIcon(l.icon,t.iconmap)),l}),u=S(()=>{let l=[],r=n.handleDefs(t.el.menu,["name","cmd"],["",""],!0,","),a={};for(const o of r)a={name:/:/.test(o.name)?o.name.split(":")[0]:o.name,cmd:/:/.test(o.cmd)?o.cmd.split(":")[1]:o.cmd},l.push(a);return l});function s(l){let r=[];for(const a of t.devices)r=a.split(":"),RegExp(r[0]).test(l)&&(l=l.replace(r[0],r[1]));n.request("text",l)}return(l,r)=>{const a=y("v-icon"),o=y("v-btn"),c=y("v-list-item-title"),f=y("v-list-item"),C=y("v-list"),w=y("v-menu");return m(),E(w,null,{activator:z(({props:g})=>[b(o,ae(g,{icon:"",variant:i.value.variant,disabled:i.value.disabled||u.value.length<1,color:i.value.color,class:"my-2"}),{default:z(()=>[b(a,{size:"large"},{default:z(()=>[W(j(i.value.icon),1)]),_:1})]),_:2},1040,["variant","disabled","color"])]),default:z(()=>[b(C,null,{default:z(()=>[(m(!0),T(Z,null,_e(u.value,(g,p)=>(m(),E(f,{key:p,value:p,onClick:h=>s(g.cmd)},{default:z(()=>[b(c,null,{default:z(()=>[W(j(g.name),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})}}};var de=null;function Xe(e){return de||(de=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),de(e)}var ve=null;function $e(e){ve||(ve=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),ve(e)}function Qe(e){var t=document.createElement("style");return t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),(document.querySelector("head")||document.body).appendChild(t),t}function le(e,t){t===void 0&&(t={});var n=document.createElement(e);return Object.keys(t).forEach(function(i){n[i]=t[i]}),n}function Oe(e,t,n){var i=window.getComputedStyle(e,n||null)||{display:"none"};return i[t]}function me(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if(Oe(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var et='.resize-triggers{visibility:hidden;opacity:0;pointer-events:none}.resize-contract-trigger,.resize-contract-trigger:before,.resize-expand-trigger,.resize-triggers{content:"";position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden}.resize-contract-trigger,.resize-expand-trigger{background:#eee;overflow:auto}.resize-contract-trigger:before{width:200%;height:200%}',pe=0,se=null;function tt(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=rt.bind(e));var n=e.__resize_listeners__;if(!n){if(e.__resize_listeners__=[],window.ResizeObserver){var i=e.offsetWidth,u=e.offsetHeight,s=new ResizeObserver(function(){!e.__resize_observer_triggered__&&(e.__resize_observer_triggered__=!0,e.offsetWidth===i&&e.offsetHeight===u)||ue(e)}),l=me(e),r=l.detached,a=l.rendered;e.__resize_observer_triggered__=r===!1&&a===!1,e.__resize_observer__=s,s.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){ue(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(pe||(se=Qe(et)),it(e),e.__resize_rendered__=me(e).rendered,window.MutationObserver){var o=new MutationObserver(e.__resize_mutation_handler__);o.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=o}}e.__resize_listeners__.push(t),pe++}function nt(e,t){var n=e.__resize_listeners__;if(n){if(t&&n.splice(n.indexOf(t),1),!n.length||!t){if(e.detachEvent&&e.removeEventListener){e.detachEvent("onresize",e.__resize_legacy_resize_handler__),document.removeEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);return}e.__resize_observer__?(e.__resize_observer__.unobserve(e),e.__resize_observer__.disconnect(),e.__resize_observer__=null):(e.__resize_mutation_observer__&&(e.__resize_mutation_observer__.disconnect(),e.__resize_mutation_observer__=null),e.removeEventListener("scroll",xe),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--pe&&se&&se.parentNode.removeChild(se)}}function at(e){var t=e.__resize_last__,n=t.width,i=t.height,u=e.offsetWidth,s=e.offsetHeight;return u!==n||s!==i?{width:u,height:s}:null}function rt(){var e=me(this),t=e.rendered,n=e.detached;t!==this.__resize_rendered__&&(!n&&this.__resize_triggers__&&(ye(this),this.addEventListener("scroll",xe,!0)),this.__resize_rendered__=t,ue(this))}function xe(){var e=this;ye(this),this.__resize_raf__&&$e(this.__resize_raf__),this.__resize_raf__=Xe(function(){var t=at(e);t&&(e.__resize_last__=t,ue(e))})}function ue(e){!e||!e.__resize_listeners__||e.__resize_listeners__.forEach(function(t){t.call(e,e)})}function it(e){var t=Oe(e,"position");(!t||t==="static")&&(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};var n=le("div",{className:"resize-triggers"}),i=le("div",{className:"resize-expand-trigger"}),u=le("div"),s=le("div",{className:"resize-contract-trigger"});i.appendChild(u),n.appendChild(i),n.appendChild(s),e.appendChild(n),e.__resize_triggers__={triggers:n,expand:i,expandChild:u,contract:s},ye(e),e.addEventListener("scroll",xe,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function ye(e){var t=e.__resize_triggers__,n=t.expand,i=t.expandChild,u=t.contract,s=u.scrollWidth,l=u.scrollHeight,r=n.offsetWidth,a=n.offsetHeight,o=n.scrollWidth,c=n.scrollHeight;u.scrollLeft=s,u.scrollTop=l,i.style.width=r+1+"px",i.style.height=a+1+"px",n.scrollLeft=o,n.scrollTop=c}var J=function(){return J=Object.assign||function(e){for(var t,n=1,i=arguments.length;n"u"||typeof customElements>"u")return ee=!1;try{new Function("tag",`class EChartsElement extends HTMLElement {
+ __dispose = null;
+
+ disconnectedCallback() {
+ if (this.__dispose) {
+ this.__dispose();
+ this.__dispose = null;
+ }
+ }
+}
+
+if (customElements.get(tag) == null) {
+ customElements.define(tag, EChartsElement);
+}
+`)(Ae)}catch{return ee=!1}return ee=!0}(),_t="ecTheme",mt="ecInitOptions",pt="ecUpdateOptions",ht=Re({name:"echarts",props:J(J({option:Object,theme:{type:[Object,String]},initOptions:Object,updateOptions:Object,group:String,manualUpdate:Boolean},st),vt),emits:{},inheritAttrs:!1,setup:function(e,t){var n=t.attrs,i=re(),u=re(),s=re(),l=re(),r=ie(_t,null),a=ie(mt,null),o=ie(pt,null),c=Me(e),f=c.autoresize,C=c.manualUpdate,w=c.loading,g=c.loadingOptions,p=S(function(){return l.value||e.option||null}),h=S(function(){return e.theme||oe(r,{})}),v=S(function(){return e.initOptions||oe(a,{})}),L=S(function(){return e.updateOptions||oe(o,{})}),_=S(function(){return function(A){var D={};for(var F in A)ct(F)||(D[F]=A[F]);return D}(n)}),M=Ve().proxy.$listeners;function x(A){if(u.value){var D=s.value=Pe(u.value,h.value,v.value);e.group&&(D.group=e.group);var F=M;F||(F={},Object.keys(n).filter(function(P){return P.indexOf("on")===0&&P.length>2}).forEach(function(P){var R=P.charAt(2).toLowerCase()+P.slice(3);R.substring(R.length-4)==="Once"&&(R="~".concat(R.substring(0,R.length-4))),F[R]=n[P]})),Object.keys(F).forEach(function(P){var R=F[P];if(R){var U=P.toLowerCase();U.charAt(0)==="~"&&(U=U.substring(1),R.__once__=!0);var I=D;if(U.indexOf("zr:")===0&&(I=D.getZr(),U=U.substring(3)),R.__once__){delete R.__once__;var $=R;R=function(){for(var Y=[],K=0;K(w(),"height: "+(/=maximized$/.test(n.app.currentView)?window.innerHeight-250+"px":t.height)));function c(g){return s.d(g,{dateStyle:u.value?"short":"long"})}function f(g,p){let h;return r.value.from&&p&&(h=r.value.from),r.value.to&&!p&&(h=r.value.to),!h&&!isNaN(g)&&(h=(v=>new Date(v.setDate(v.getDate()+(Number(g)||0))))(new Date)),h||(h=new Date(/.*T.*/.test(g)?g:g+"T00:00:00")),!r.value.from&&p&&(r.value.from=h),!r.value.to&&!p&&(r.value.to=h),h=new Date(h.getTime()-h.getTimezoneOffset()*60*1e3),h.toISOString().split("T")[0]}async function C(){let g=n.handleDefs(t.el.serie,["data","name","digits","suffix","type"],[null,"",0,"","line"],!0),p,h,v=[],L,_,M,x,d,V=[];if(g.length>0)for(const O of g){if(/^get.*/.test(O.data)){d="time",p=O.data.split(" ");for(const A of t.devices)A.split(":")[0]===p[1]&&(p[1]=A.split(":")[1]);if(p[4]=f(p[4],!0),p[5]=f(p[5],!1),h=await n.request("text",p.join(" ")),x=[],v=h.split(`
+`),v.length>0)for(const A of v)L=A.split(" "),L.length>1&&(_=new Date(L[0].replace("_","T")),M=parseFloat(L[1]).toFixed(O.digits),x.push([_,M]))}else/^\[.*\]/.test(O.data)?x=n.stringToJson(O.data):x=[n.replacer("%n("+O.digits+")",O.data,!0)];V.push({xAxisType:d,type:O.type,name:O.name,digits:O.digits,suffix:O.suffix,data:x})}return V}async function w(){let g={tooltip:{trigger:"axis"},legend:{data:[],bottom:10},backgroundColor:"rgba(255, 255, 255, 0)",grid:{top:30,bottom:60,left:60,right:60},animationDuration:300,series:[],yAxis:[],xAxis:{}},p=JSON.parse(JSON.stringify(n.getEl(t.el,["options"])||{})),h=JSON.parse(JSON.stringify(n.getEl(t.el,["options2"])||{})),v=Object.assign(g,/=maximized$/.test(n.app.currentView)&&Object.keys(h).length>0?h:p),L;r.value.fromMenu=!1,r.value.toMenu=!1,r.value.loaded=!1,a=await C();for(const[_,M]of Object.entries(a))L={formatter:x=>x.toLocaleString(s.locale.value,{minimumFractionDigits:M.digits,maximumFractionDigits:M.digits})+M.suffix},v.series[_]||(v.series[_]={}),v.yAxis[_]||(v.yAxis[_]={}),v.legend.data||(v.legend.data=[]),v.xAxis.type||(v.xAxis.type=M.xAxisType),v.yAxis[_].type||(v.yAxis[_].type="value"),v.yAxis[_].axisLabel||(v.yAxis[_].axisLabel={}),v.yAxis[_].axisLabel.formatter||(v.yAxis[_].axisLabel.formatter=L.formatter),v.legend.data[_]||(v.legend.data[_]=M.name),v.series[_].name||(v.series[_].name=M.name),v.series[_].type||(v.series[_].type=M.type),v.series[_].data||(v.series[_].data=M.data),v.series[_].detail||(v.series[_].detail={}),v.series[_].detail.formatter||(v.series[_].detail.formatter=L.formatter),v.series[_].tooltip||(v.series[_].tooltip={}),v.series[_].tooltip.valueFormatter||(v.series[_].tooltip.valueFormatter=L.formatter);n.log(7,"Chartdata chart.loaded.",v),l.value=Object.assign({},v),r.value.loaded=!0}return(g,p)=>{const h=y("v-btn"),v=y("v-date-picker"),L=y("v-locale-provider"),_=y("v-menu"),M=y("v-skeleton-loader");return m(),T(Z,null,[/=maximized$/.test(B(n).app.currentView)?(m(),T("div",gt,[b(_,{modelValue:r.value.fromMenu,"onUpdate:modelValue":p[2]||(p[2]=x=>r.value.fromMenu=x),"close-on-content-click":!1},{activator:z(({props:x})=>[b(h,ae(x,{variant:"outlined","append-icon":"mdi-calendar",class:"mr-2"}),{default:z(()=>[W(j(c(r.value.from)),1)]),_:2},1040)]),default:z(()=>[b(L,{locale:B(s).locale.value},{default:z(()=>[b(v,{modelValue:r.value.from,"onUpdate:modelValue":[p[0]||(p[0]=x=>r.value.from=x),p[1]||(p[1]=x=>w())],color:"secondary"},null,8,["modelValue"])]),_:1},8,["locale"])]),_:1},8,["modelValue"]),W(" - "),b(_,{modelValue:r.value.toMenu,"onUpdate:modelValue":p[5]||(p[5]=x=>r.value.toMenu=x),"close-on-content-click":!1},{activator:z(({props:x})=>[b(h,ae(x,{variant:"outlined","append-icon":"mdi-calendar",class:"ml-2"}),{default:z(()=>[W(j(c(r.value.to)),1)]),_:2},1040)]),default:z(()=>[b(L,{locale:B(s).locale.value},{default:z(()=>[b(v,{modelValue:r.value.to,"onUpdate:modelValue":[p[3]||(p[3]=x=>r.value.to=x),p[4]||(p[4]=x=>w())],color:"secondary"},null,8,["modelValue"])]),_:1},8,["locale"])]),_:1},8,["modelValue"])])):k("",!0),he("div",{style:Ue(o.value)},[r.value.loaded?k("",!0):(m(),E(M,{key:0,type:"text, image, text"})),r.value.loaded?(m(),E(B(ht),{key:1,option:l.value,theme:B(i).global.name.value==="dark"?"dark":"light",autoresize:""},null,8,["option","theme"])):k("",!0)],4)],64)}}},yt=180/Math.PI,Ee=e=>{const t=e%360;return t<0?360+t:t},bt=({x:e,y:t},n)=>{const i=n.left+n.width/2,u=n.top+n.height/2;return Math.atan2(t-u,e-i)*yt},fe=()=>{};class wt{constructor(t,n){this.active=!1,this.element=t,this.element.style.willChange="transform",this.initOptions(n),this.updateCSS(),this.bindHandlers(),this.addListeners()}get angle(){return this._angle}set angle(t){this._angle!==t&&(this._angle=Ee(t),this.updateCSS())}initOptions(t){t=t||{},this.onRotate=t.onRotate||fe,this.onDragStart=t.onDragStart||fe,this.onDragStop=t.onDragStop||fe,this._angle=t.angle||0}bindHandlers(){this.onRotationStart=this.onRotationStart.bind(this),this.onRotated=this.onRotated.bind(this),this.onRotationStop=this.onRotationStop.bind(this)}addListeners(){this.element.addEventListener("touchstart",this.onRotationStart,{passive:!0}),document.addEventListener("touchmove",this.onRotated,{passive:!1}),document.addEventListener("touchend",this.onRotationStop,{passive:!0}),document.addEventListener("touchcancel",this.onRotationStop,{passive:!0}),this.element.addEventListener("mousedown",this.onRotationStart,{passive:!0}),document.addEventListener("mousemove",this.onRotated,{passive:!1}),document.addEventListener("mouseup",this.onRotationStop,{passive:!0}),document.addEventListener("mouseleave",this.onRotationStop,{passive:!1})}removeListeners(){this.element.removeEventListener("touchstart",this.onRotationStart),document.removeEventListener("touchmove",this.onRotated),document.removeEventListener("touchend",this.onRotationStop),document.removeEventListener("touchcancel",this.onRotationStop),this.element.removeEventListener("mousedown",this.onRotationStart),document.removeEventListener("mousemove",this.onRotated),document.removeEventListener("mouseup",this.onRotationStop),document.removeEventListener("mouseleave",this.onRotationStop)}destroy(){this.onRotationStop(),this.removeListeners()}onRotationStart(t){(t.type==="touchstart"||t.button===0)&&(this.active=!0,this.onDragStart(t),this.setAngleFromEvent(t))}onRotationStop(){this.active&&(this.active=!1,this.onDragStop()),this.active=!1}onRotated(t){this.active&&(t.preventDefault(),this.setAngleFromEvent(t))}setAngleFromEvent(t){const n=t.targetTouches?t.targetTouches[0]:t,i=bt({x:n.clientX,y:n.clientY},this.element.getBoundingClientRect());this._angle=Ee(i+90),this.updateCSS(),this.onRotate(this._angle)}updateCSS(){this.element.style.transform="rotate("+this._angle+"deg)"}}const zt=["red","yellow","green","cyan","blue","magenta","red"],De={ArrowUp:(e,t)=>e+t,ArrowRight:(e,t)=>e+t,ArrowDown:(e,t)=>e-t,ArrowLeft:(e,t)=>e-t,PageUp:(e,t)=>e+t*10,PageDown:(e,t)=>e-t*10,Home:()=>0,End:()=>359},ce={name:"ColorPicker",emits:["select","input","change"],props:{hue:{default:0},saturation:{default:100},luminosity:{default:50},alpha:{default:1},step:{default:1},mouseScroll:{default:!1},variant:{default:"collapsible"},disabled:{default:!1},initiallyCollapsed:{default:!1},ariaLabel:{default:"color picker"},ariaRoledescription:{default:"radial slider"},ariaValuetext:{default:""},ariaLabelColorWell:{default:"color well"}},setup(e,{emit:t}){const n=N(null),i=N(null);let u=null;const s=e.hue+"deg",l=N(e.hue),r=N(!e.initiallyCollapsed),a=N(!e.initiallyCollapsed),o=N(!1),c=N(!1),f=N(!1),C=S(()=>`hsla(${l.value}, ${e.saturation}%, ${e.luminosity}%, ${e.alpha})`),w=S(()=>zt[Math.round(l.value/60)]);return Q(()=>e.hue,_=>{l.value=_,u.angle=_}),ge(()=>{u=new wt(i.value,{angle:l.value,onRotate(_){l.value=_,t("input",l.value)},onDragStart(){f.value=!0},onDragStop(){f.value=!1,t("change",l.value)}})}),Le(()=>{u.destroy(),u=null}),{rcp:u,el:n,rotator:i,initialAngle:s,angle:l,isPaletteIn:r,isKnobIn:a,isDragging:f,isRippling:c,isPressed:o,color:C,valuetext:w,onKeyDown:_=>{e.disabled||o.value||!a.value||!(_.key in De)||(_.preventDefault(),u.angle=De[_.key](u.angle,e.step),l.value=u.angle,t("input",l.value),t("change",l.value))},onScroll:_=>{o.value||!a.value||(_.preventDefault(),_.deltaY>0?u.angle+=e.step:u.angle-=e.step,l.value=u.angle,t("input",l.value),t("change",l.value))},selectColor:()=>{o.value=!0,r.value&&a.value?(t("select",l.value),c.value=!0):r.value=!0},togglePicker:()=>{e.variant!=="persistent"&&(a.value?a.value=!1:(a.value=!0,r.value=!0)),c.value=!1,o.value=!1},hidePalette:()=>{a.value||(r.value=!1)}}}};function kt(e,t,n,i,u,s){return m(),E("div",{ref:"el",role:"slider","aria-roledescription":n.ariaRoledescription,"aria-label":n.ariaLabel,"aria-expanded":i.isPaletteIn,"aria-valuemin":"0","aria-valuemax":"359","aria-valuenow":i.angle,"aria-valuetext":n.ariaValuetext||i.valuetext,"aria-disabled":n.disabled,class:["rcp",{dragging:i.isDragging,disabled:n.disabled}],tabindex:n.disabled?-1:0,style:{"--rcp-initial-angle":i.initialAngle},onKeyup:t[4]||(t[4]=qe((...l)=>i.selectColor&&i.selectColor(...l),["enter"])),onKeydown:t[5]||(t[5]=(...l)=>i.onKeyDown&&i.onKeyDown(...l))},[b("div",{class:["rcp__palette",i.isPaletteIn?"in":"out"]},null,2),b("div",ae({class:"rcp__rotator",style:{"pointer-events":n.disabled||i.isPressed||!i.isKnobIn?"none":null}},He(n.mouseScroll?{wheel:i.onScroll}:{}),{ref:"rotator"}),[b("div",{class:["rcp__knob",i.isKnobIn?"in":"out"],onTransitionend:t[1]||(t[1]=(...l)=>i.hidePalette&&i.hidePalette(...l))},null,34)],16),b("div",{class:["rcp__ripple",{rippling:i.isRippling}],style:{borderColor:i.color}},null,6),b("button",{type:"button",class:["rcp__well",{pressed:i.isPressed}],"aria-label":n.ariaLabelColorWell,disabled:n.disabled,tabindex:n.disabled?-1:0,style:{backgroundColor:i.color},onAnimationend:t[2]||(t[2]=(...l)=>i.togglePicker&&i.togglePicker(...l)),onClick:t[3]||(t[3]=(...l)=>i.selectColor&&i.selectColor(...l))},null,46,["aria-label","disabled","tabindex"])],46,["aria-roledescription","aria-label","aria-expanded","aria-valuenow","aria-valuetext","aria-disabled","tabindex"])}ce.render=kt;ce.install=function(e){e.component("ColorPicker",ce)};const St={class:"mt-4 mb-2"},Ct={__name:"PanelMainColorpicker",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=G(),i=S(()=>n.handleDefs(t.el.picker,["cmd","current"],["",!1]));function u(r){let a=s(r,50,100),o=i.value.cmd,c=[];o=o.replace("%v",a);for(const f of t.devices)c=f.split(":"),RegExp(c[0]).test(o)&&(o=o.replace(c[0],c[1]));n.request("text",o)}function s(r,a,o){a/=100;const c=o*Math.min(a,1-a)/100,f=C=>{const w=(C+r/30)%12,g=a-c*Math.max(Math.min(w-3,9-w,1),-1);return Math.round(255*g).toString(16).padStart(2,"0")};return`${f(0)}${f(8)}${f(4)}`}function l(r){r.split(" ").length>1&&(r=r.split(" ").slice(-1)[0]),r=r.replace(/^#/,"");let a=parseInt(r,16),o=a>>16&255,c=a>>8&255,f=a&255;o/=255,c/=255,f/=255;let C=Math.max(o,c,f),w=Math.min(o,c,f),g=C-w,p=(C+w)/2,h=0,v=0;return g!==0&&(C===o?h=((c-f)/g+(c(m(),T("div",St,[b(B(ce),ae(l(i.value.current),{variant:"persistent",onChange:a[0]||(a[0]=o=>u(o))}),null,16)]))}},Et={__name:"PanelMain",props:{main:Object,levels:Array,iconmap:Object,devices:Object},setup(e){const t=G();function n(r,a){return t.handleDefs(r[a].size,["size"],[!1]).size}function i(r){let a="";return["info"].indexOf(r)!==-1&&(a="mx-2"),a}function u(r,a){return r[a]?t.handleDefs(r[a].divider,["show"],[!1]).show:!1}function s(r){return r.level?t.handleDefs(r.level.height,["height"],["64px"]).height:"64px"}function l(r){if(r==="info")return We;if(r==="btn")return Ke;if(r==="slider")return Ge;if(r==="image")return Ye;if(r==="menu")return Ze;if(r==="chart")return xt;if(r==="colorpicker")return Ct}return(r,a)=>{const o=y("v-sheet"),c=y("v-col"),f=y("v-divider"),C=y("v-row"),w=y("v-expand-transition");return m(!0),T(Z,null,_e(e.main,(g,p)=>(m(),T("div",{key:p},[b(w,null,{default:z(()=>[e.levels.indexOf(p)!==-1?(m(),E(C,{key:0,"no-gutters":"",class:"text-center align-center"},{default:z(()=>[b(o,{height:s(g,"level")},null,8,["height"]),(m(),T(Z,null,_e(["left1","left2","mid","right1","right2"],h=>(m(),T(Z,{key:h},[g.level[h]?(m(),E(c,{key:0,cols:n(g,h),class:q(i(g.level[h]))},{default:z(()=>[(m(),E(Be(l(g.level[h])),{el:g[h],iconmap:e.iconmap,devices:e.devices,height:s(g,"level")},null,8,["el","iconmap","devices","height"]))]),_:2},1032,["cols","class"])):k("",!0),u(g,h)?(m(),E(f,{key:1,vertical:""})):k("",!0)],64))),64)),u(g,"level")?(m(),E(f,{key:0})):k("",!0)]),_:2},1024)):k("",!0)]),_:2},1024)]))),128)}}},Lt={__name:"PanelCard",props:{panel:Object},setup(e){const t=e,n=G();let i=n.thread();ge(()=>n.thread(i));function u(x){let d=n.handleDefs(t.panel.status[x],["level","color","min","max","reverse"],[0,"success",0,100,!1]);return d.level=Math.round((d.level-d.min)/(d.max-d.min)*100),d}const s=S(()=>u("bar")),l=S(()=>u("bar2")),r=S(()=>n.handleDefs(t.panel.status.imageUrl,["url"],[""])),a=S(()=>n.handleDefs(t.panel.panel.sortby,["sortby"],[null])),o=S(()=>n.handleDefs(t.panel.status.title,["title"],[""])),c=N(n.handleDefs(t.panel.panel.expandable,["expandable","expanded","maximizable"],[!1,!1,!1]));Q(t.panel.main,x=>{let d=f(x);c.value.activeLevels.join("-")!==d.join("-")&&(c.value.activeLevels=d,C(!0))});function f(x){let d=[];for(const[V,O]of Object.entries(x))n.handleDefs(O.level.show,["show"],[!0]).show&&d.push(Number(V));return d}function C(x){let d=c.value,V;x?d.activeLevels=f(t.panel.main):(d.expandable&&(d.expanded=!d.expanded),d.maximizable&&(d.expanded?ne.push({name:"devices",params:{view:"panel="+t.panel.name+"=maximized"},query:ne.currentRoute.value.query}):ne.back())),d.expanded?d.levels=d.activeLevels:d.expandable||x?d.levels=[d.activeLevels[0]]:(V=d.activeLevels.indexOf(d.levels[0]),d.levels=[d.activeLevels[V+1]>=0?d.activeLevels[V+1]:d.activeLevels[0]]),d.activeLevels.length>1||d.maximizable?d.icon=d.expandable?d.expanded?"mdi-arrow-collapse":"mdi-arrow-expand":d.expanded?"":"mdi-swap-vertical":d.icon=""}function w(x){let d=n.handleDefs(t.panel.info[x],["text","icon","color"],["","",""]);return d.icon&&(d.icon=n.getIcon(d.icon,t.panel.panel.iconmap)),d}function g(x){let d=["left1","left2","mid1","mid2","right1","right2"],V=w(x);return w(d[d.indexOf(x)-1]).text&&V.text&&!V.icon?"ml-1 text-truncate":V.text?"text-truncate":""}const p=S(()=>w("left1")),h=S(()=>w("left2")),v=S(()=>w("mid1")),L=S(()=>w("mid2")),_=S(()=>w("right1")),M=S(()=>w("right2"));return C(!0),(x,d)=>{const V=y("v-progress-linear"),O=y("v-col"),A=y("v-row"),D=y("v-spacer"),F=y("v-btn"),H=y("v-card-title"),P=y("v-img"),R=y("v-sheet"),U=y("v-card-text"),I=y("v-icon"),$=y("v-system-bar"),Y=y("v-layout"),K=y("v-card");return B(n).app.isReady?(m(),E(K,{key:0,variant:"tonal"},{default:z(()=>[b(A,{"no-gutters":""},{default:z(()=>[e.panel.status.bar?(m(),E(O,{key:0},{default:z(()=>[b(V,{height:"7",modelValue:s.value.level,"onUpdate:modelValue":d[0]||(d[0]=X=>s.value.level=X),color:s.value.color,reverse:s.value.reverse},null,8,["modelValue","color","reverse"])]),_:1})):k("",!0),e.panel.status.bar2?(m(),E(O,{key:1},{default:z(()=>[b(V,{height:"7",modelValue:l.value.level,"onUpdate:modelValue":d[1]||(d[1]=X=>l.value.level=X),color:l.value.color,reverse:l.value.reverse},null,8,["modelValue","color","reverse"])]),_:1})):k("",!0)]),_:1}),b(R,{color:"secondary"},{default:z(()=>[b(P,{src:r.value.url,gradient:r.value.url?B(n).app.header.imageGradient:"",height:"48",cover:""},{default:z(()=>[b(H,null,{default:z(()=>[b(A,{"no-gutters":""},{default:z(()=>[e.panel.status.title?(m(),E(O,{key:0},{default:z(()=>[W(j(o.value.title),1)]),_:1})):k("",!0),b(D),B(n).app.settings.loglevel>6?(m(),E(O,{key:1,class:"text-right"},{default:z(()=>[W(j(a.value.sortby),1)]),_:1})):k("",!0),c.value.icon?(m(),E(O,{key:2,cols:"1",class:"text-right"},{default:z(()=>[b(F,{icon:c.value.icon,size:"small",variant:"plain",density:"compact",onClick:d[2]||(d[2]=X=>C(!1))},null,8,["icon"])]),_:1})):k("",!0)]),_:1})]),_:1})]),_:1},8,["src","gradient"])]),_:1}),b(Et,{main:e.panel.main,levels:c.value.levels,iconmap:e.panel.panel.iconmap,devices:e.panel.panel.devices},null,8,["main","levels","iconmap","devices"]),t.panel.internals?(m(),E(U,{key:0},{default:z(()=>[W(j(t.panel.internals),1)]),_:1})):k("",!0),b(Y,{style:{height:"24px"}},{default:z(()=>[b($,{color:"secondary"},{default:z(()=>[p.value.icon?(m(),E(I,{key:0,icon:p.value.icon,color:p.value.color},null,8,["icon","color"])):k("",!0),p.value.text?(m(),T("span",{key:1,class:q(g("left1"))},j(p.value.text),3)):k("",!0),h.value.icon?(m(),E(I,{key:2,icon:h.value.icon,color:h.value.color},null,8,["icon","color"])):k("",!0),h.value.text?(m(),T("span",{key:3,class:q(g("left2"))},j(h.value.text),3)):k("",!0),b(D),v.value.icon?(m(),E(I,{key:4,icon:v.value.icon,color:v.value.color},null,8,["icon","color"])):k("",!0),v.value.text?(m(),T("span",{key:5,class:q(g("mid1"))},j(v.value.text),3)):k("",!0),L.value.icon?(m(),E(I,{key:6,icon:L.value.icon,color:L.value.color},null,8,["icon","color"])):k("",!0),L.value.text?(m(),T("span",{key:7,class:q(g("mid2"))},j(L.value.text),3)):k("",!0),b(D),_.value.icon?(m(),E(I,{key:8,icon:_.value.icon,color:_.value.color},null,8,["icon","color"])):k("",!0),_.value.text?(m(),T("span",{key:9,class:q(g("right1"))},j(_.value.text),3)):k("",!0),M.value.icon?(m(),E(I,{key:10,icon:M.value.icon,color:M.value.color},null,8,["icon","color"])):k("",!0),M.value.text?(m(),T("span",{key:11,class:q(g("right2"))},j(M.value.text),3)):k("",!0)]),_:1})]),_:1})]),_:1})):k("",!0)}}};export{Lt as _};
diff --git a/www/fhemapp4/assets/SettingsView-bce63ac5.js b/www/fhemapp4/assets/SettingsView-bce63ac5.js
new file mode 100644
index 00000000..a4da93f9
--- /dev/null
+++ b/www/fhemapp4/assets/SettingsView-bce63ac5.js
@@ -0,0 +1,23 @@
+import{u as nt,f as Fe,g as or,r as F,o as H,a as J,w as I,e as y,h as z,b as Ke,F as ke,d as tt,i as Nn,j as we,t as De,k as re,l as Or,m as mt,c as Te,n as Cr,v as wr,p as lr,q as ir,s as Dr}from"./index-cea5b6ce.js";import{c as Pn,g as Tr,r as Ar,a as Pr,u as $r,V as Vr}from"./index-7769f5f8.js";import{_ as Fr}from"./PanelCard-c745d8b0.js";const ue="_app.settings.header.",jr={__name:"SettingsHeader",setup(u){const e=nt(),n={required:r=>!!r||e.replacer("%t(_app.settings.rules.required)")},i=Fe(),a=or({name:"",title:"",icon:"",cmd:""});function l(){e.app.config.header.commands||(e.app.config.header.commands=[]),e.app.config.header.commands.push(JSON.parse(JSON.stringify(a))),i.value.reset()}function t(r){e.app.config.header.commands.splice(r,1)}return(r,o)=>{const s=F("v-btn"),c=F("v-list-item"),p=F("v-text-field"),v=F("v-col"),m=F("v-checkbox"),d=F("v-row"),g=F("v-divider"),h=F("v-form"),b=F("v-list");return H(),J(b,null,{default:I(()=>[y(c,{title:r.$t(ue+"barTitle")},{append:I(()=>[y(s,{color:"info",icon:"mdi-help-circle",variant:"text",onClick:o[0]||(o[0]=f=>z(e).help("kopfzeile"))})]),_:1},8,["title"]),y(c,null,{default:I(()=>[y(d,{"no-gutters":""},{default:I(()=>[y(v,{cols:"12",lg:"4",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"imageUrlPlaceholder"),label:r.$t(ue+"imageUrl"),modelValue:z(e).app.config.header.imageUrl,"onUpdate:modelValue":o[1]||(o[1]=f=>z(e).app.config.header.imageUrl=f)},null,8,["placeholder","label","modelValue"])]),_:1}),y(v,{cols:"12",lg:"4",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"imageGradientPlaceholder"),label:r.$t(ue+"imageGradient"),modelValue:z(e).app.config.header.imageGradient,"onUpdate:modelValue":o[2]||(o[2]=f=>z(e).app.config.header.imageGradient=f)},null,8,["placeholder","label","modelValue"])]),_:1}),y(v,{cols:"6",lg:"",class:"pt-1"},{default:I(()=>[y(m,{hint:r.$t(ue+"showTimeHint"),label:r.$t(ue+"showTime"),modelValue:z(e).app.config.header.showTime,"onUpdate:modelValue":o[3]||(o[3]=f=>z(e).app.config.header.showTime=f)},null,8,["hint","label","modelValue"])]),_:1}),y(v,{cols:"6",lg:"",class:"pt-1"},{default:I(()=>[y(m,{hint:r.$t(ue+"showDateHint"),label:r.$t(ue+"showDate"),modelValue:z(e).app.config.header.showDate,"onUpdate:modelValue":o[4]||(o[4]=f=>z(e).app.config.header.showDate=f)},null,8,["hint","label","modelValue"])]),_:1}),y(v,{cols:"6",lg:"",class:"pt-1"},{default:I(()=>[y(m,{hint:r.$t(ue+"showTitleHint"),label:r.$t(ue+"showTitle"),modelValue:z(e).app.config.header.showTitle,"onUpdate:modelValue":o[5]||(o[5]=f=>z(e).app.config.header.showTitle=f)},null,8,["hint","label","modelValue"])]),_:1})]),_:1})]),_:1}),y(g),y(c,{title:r.$t(ue+"darkModeOverFhem")},{append:I(()=>[y(s,{color:"info",icon:"mdi-help-circle",variant:"text",onClick:o[6]||(o[6]=f=>z(e).help("farbschema"))})]),_:1},8,["title"]),y(c,null,{default:I(()=>[y(d,{"no-gutters":""},{default:I(()=>[y(v,{cols:"12",md:"4",class:"pt-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:"device-reading:value",label:"Definition",modelValue:z(e).app.config.header.darkModeOverFhem,"onUpdate:modelValue":o[7]||(o[7]=f=>z(e).app.config.header.darkModeOverFhem=f)},null,8,["modelValue"])]),_:1})]),_:1})]),_:1}),y(g),y(c,{title:r.$t(ue+"optionsTitle")},{append:I(()=>[y(s,{color:"info",icon:"mdi-help-circle",variant:"text",onClick:o[8]||(o[8]=f=>z(e).help("optionsmenü"))})]),_:1},8,["title"]),y(c,null,{default:I(()=>[y(d,{"no-gutters":""},{default:I(()=>[y(v,{cols:"6",lg:""},{default:I(()=>[y(m,{label:r.$t(ue+"showDarkMode"),modelValue:z(e).app.config.header.showDarkMode,"onUpdate:modelValue":o[9]||(o[9]=f=>z(e).app.config.header.showDarkMode=f)},null,8,["label","modelValue"])]),_:1}),y(v,{cols:"6",lg:""},{default:I(()=>[y(m,{label:r.$t(ue+"showReloadPage"),modelValue:z(e).app.config.header.showReloadPage,"onUpdate:modelValue":o[10]||(o[10]=f=>z(e).app.config.header.showReloadPage=f)},null,8,["label","modelValue"])]),_:1}),y(v,{cols:"6",lg:""},{default:I(()=>[y(m,{label:r.$t(ue+"showSettings"),modelValue:z(e).app.config.header.showSettings,"onUpdate:modelValue":o[11]||(o[11]=f=>z(e).app.config.header.showSettings=f)},null,8,["label","modelValue"])]),_:1}),y(v,{cols:"6",lg:""},{default:I(()=>[y(m,{label:r.$t(ue+"showUpdate"),modelValue:z(e).app.config.header.showUpdate,"onUpdate:modelValue":o[12]||(o[12]=f=>z(e).app.config.header.showUpdate=f)},null,8,["label","modelValue"])]),_:1}),y(v,{cols:"6",lg:""},{default:I(()=>[y(m,{label:r.$t(ue+"showLanguages"),modelValue:z(e).app.config.header.showLanguages,"onUpdate:modelValue":o[13]||(o[13]=f=>z(e).app.config.header.showLanguages=f)},null,8,["label","modelValue"])]),_:1})]),_:1})]),_:1}),y(g),y(c,{title:r.$t(ue+"optionsCommandTitle")},{append:I(()=>[y(s,{color:"info",icon:"mdi-help-circle",variant:"text",onClick:o[14]||(o[14]=f=>z(e).help("optionsmenü-fhem-befehle"))})]),_:1},8,["title"]),(H(!0),Ke(ke,null,tt(z(e).app.config.header.commands,(f,x)=>(H(),J(c,{key:x},{default:I(()=>[y(d,{"no-gutters":""},{default:I(()=>[y(v,{cols:"12",lg:"2",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"commandNamePlaceholder"),label:r.$t(ue+"commandName"),rules:[n.required],modelValue:f.name,"onUpdate:modelValue":S=>f.name=S},null,8,["placeholder","label","rules","modelValue","onUpdate:modelValue"])]),_:2},1024),y(v,{cols:"12",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"commandTitlePlaceholder"),label:r.$t(ue+"commandTitle"),rules:[n.required],modelValue:f.title,"onUpdate:modelValue":S=>f.title=S},null,8,["placeholder","label","rules","modelValue","onUpdate:modelValue"])]),_:2},1024),y(v,{cols:"12",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"commandIconPlaceholder"),label:r.$t(ue+"commandIcon"),"append-inner-icon":f.icon,modelValue:f.icon,"onUpdate:modelValue":S=>f.icon=S},null,8,["placeholder","label","append-inner-icon","modelValue","onUpdate:modelValue"])]),_:2},1024),y(v,{cols:"10",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"commandCmdPlaceholder"),label:r.$t(ue+"commandCmd"),rules:[n.required],modelValue:f.cmd,"onUpdate:modelValue":S=>f.cmd=S},null,8,["placeholder","label","rules","modelValue","onUpdate:modelValue"])]),_:2},1024),y(v,{class:"pt-3 text-right"},{default:I(()=>[y(s,{variant:"text",icon:"mdi-delete",onClick:S=>t(x)},null,8,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128)),y(c,null,{default:I(()=>[y(h,{ref_key:"form",ref:i},{default:I(()=>[y(d,{"no-gutters":""},{default:I(()=>[y(v,{cols:"12",lg:"2",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"commandNamePlaceholder"),label:r.$t(ue+"commandName"),rules:[n.required],modelValue:a.name,"onUpdate:modelValue":o[15]||(o[15]=f=>a.name=f)},null,8,["placeholder","label","rules","modelValue"])]),_:1}),y(v,{cols:"12",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"commandTitlePlaceholder"),label:r.$t(ue+"commandTitle"),rules:[n.required],modelValue:a.title,"onUpdate:modelValue":o[16]||(o[16]=f=>a.title=f)},null,8,["placeholder","label","rules","modelValue"])]),_:1}),y(v,{cols:"12",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"commandIconPlaceholder"),label:r.$t(ue+"commandIcon"),"append-inner-icon":a.icon,modelValue:a.icon,"onUpdate:modelValue":o[17]||(o[17]=f=>a.icon=f)},null,8,["placeholder","label","append-inner-icon","modelValue"])]),_:1}),y(v,{cols:"9",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(p,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:r.$t(ue+"commandCmdPlaceholder"),label:r.$t(ue+"commandCmd"),rules:[n.required],modelValue:a.cmd,"onUpdate:modelValue":o[18]||(o[18]=f=>a.cmd=f)},null,8,["placeholder","label","rules","modelValue"])]),_:1}),y(v,{class:"pt-3 text-right"},{default:I(()=>[y(s,{variant:"text",icon:"mdi-cancel",onClick:o[19]||(o[19]=f=>i.value.reset())}),y(s,{variant:"text",icon:"mdi-plus",disabled:!a.name||!a.title||!a.cmd,onClick:o[20]||(o[20]=f=>l())},null,8,["disabled"])]),_:1})]),_:1})]),_:1},512)]),_:1})]),_:1})}}},ye="_app.settings.navigation.",Rr={__name:"SettingsNavigation",setup(u){const{mobile:e}=Nn(),n=nt(),i=or({path:[],route:["navigation"],items:[],newItem:{name:null,title:null,icon:null,divider:!1,groupAsChips:!1,sort:!1,group:[]}}),a=Fe(),l={required:p=>!!p||n.replacer("%t(_app.settings.rules.required)")};function t(p){typeof p<"u"&&(i.path.push(p,"group"),i.route.push(i.items[p].name)),i.items=n.getEl(n.app.config.navigation,i.path)}function r(){let p=JSON.parse(JSON.stringify(i.newItem));n.getEl(n.app.config.navigation,i.path).push(p),t(),a.value.reset()}function o(p){n.getEl(n.app.config.navigation,i.path).splice(p,1)}function s(p){return(n.getEl(i.items[p],["group"])||[]).length}function c(){i.route.pop(),i.path.splice(-2,2),t()}return t(),(p,v)=>{const m=F("v-btn"),d=F("v-list-item"),g=F("v-text-field"),h=F("v-col"),b=F("v-checkbox"),f=F("v-icon"),x=F("v-badge"),S=F("v-row"),C=F("v-divider"),O=F("v-form"),P=F("v-list");return H(),J(P,null,{default:I(()=>[y(d,{title:p.$t(ye+"title")},{append:I(()=>[y(m,{color:"info",icon:"mdi-help-circle",variant:"text",onClick:v[0]||(v[0]=D=>z(n).help("navigation"))})]),_:1},8,["title"]),i.path.length>0?(H(),J(d,{key:0},{default:I(()=>[y(m,{variant:"text",icon:"mdi-arrow-up-left",onClick:v[1]||(v[1]=D=>c())}),we(" "+De(i.route.join(" > ")),1)]),_:1})):re("",!0),(H(!0),Ke(ke,null,tt(i.items,(D,E)=>(H(),J(d,{key:E},{default:I(()=>[y(S,{"no-gutters":""},{default:I(()=>[y(h,{cols:"12",lg:"2",class:"pt-3 pr-3"},{default:I(()=>[y(g,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:p.$t(ye+"namePlaceholder"),label:p.$t(ye+"name"),rules:[l.required],modelValue:D.name,"onUpdate:modelValue":w=>D.name=w},null,8,["placeholder","label","rules","modelValue","onUpdate:modelValue"])]),_:2},1024),y(h,{cols:"12",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(g,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:p.$t(ye+"title1Placeholder"),label:p.$t(ye+"title1"),modelValue:D.title,"onUpdate:modelValue":w=>D.title=w},null,8,["placeholder","label","modelValue","onUpdate:modelValue"])]),_:2},1024),y(h,{cols:"12",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(g,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:p.$t(ye+"iconPlaceholder"),label:p.$t(ye+"icon"),"append-inner-icon":D.icon,modelValue:D.icon,"onUpdate:modelValue":w=>D.icon=w},null,8,["placeholder","label","append-inner-icon","modelValue","onUpdate:modelValue"])]),_:2},1024),y(h,{cols:4,lg:"",class:"pt-1"},{default:I(()=>[y(b,{hint:p.$t(ye+"groupAsChipsHint"),label:p.$t(ye+"groupAsChips"),modelValue:D.groupAsChips,"onUpdate:modelValue":w=>D.groupAsChips=w},null,8,["hint","label","modelValue","onUpdate:modelValue"])]),_:2},1024),y(h,{cols:4,lg:"",class:"pt-1"},{default:I(()=>[y(b,{hint:p.$t(ye+"sortHint"),label:p.$t(ye+"sort"),modelValue:D.sort,"onUpdate:modelValue":w=>D.sort=w},null,8,["hint","label","modelValue","onUpdate:modelValue"])]),_:2},1024),y(h,{cols:"4",lg:"",class:"pt-1"},{default:I(()=>[y(b,{hint:p.$t(ye+"dividerHint"),label:p.$t(ye+"divider"),modelValue:D.divider,"onUpdate:modelValue":w=>D.divider=w},null,8,["hint","label","modelValue","onUpdate:modelValue"])]),_:2},1024),y(h,{class:"pt-3 text-right"},{default:I(()=>[y(m,{variant:"text",icon:"",onClick:w=>t(E)},{default:I(()=>[s(E)>0?(H(),J(x,{key:0,color:"success",content:s(E)},{default:I(()=>[y(f,{icon:"mdi-arrow-down-right"})]),_:2},1032,["content"])):re("",!0),s(E)===0?(H(),J(f,{key:1,icon:"mdi-arrow-down-right"})):re("",!0)]),_:2},1032,["onClick"]),y(m,{variant:"text",icon:"mdi-delete",onClick:w=>o(E)},null,8,["onClick"])]),_:2},1024)]),_:2},1024),z(e)?(H(),J(C,{key:0})):re("",!0)]),_:2},1024))),128)),y(d,null,{default:I(()=>[y(O,{ref_key:"form",ref:a},{default:I(()=>[y(S,{"no-gutters":""},{default:I(()=>[y(h,{cols:"12",lg:"2",class:"pt-3 pr-3"},{default:I(()=>[y(g,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:p.$t(ye+"namePlaceholder"),label:p.$t(ye+"name"),rules:[l.required],modelValue:i.newItem.name,"onUpdate:modelValue":v[2]||(v[2]=D=>i.newItem.name=D)},null,8,["placeholder","label","rules","modelValue"])]),_:1}),y(h,{cols:"12",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(g,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:p.$t(ye+"title1Placeholder"),label:p.$t(ye+"title1"),modelValue:i.newItem.title,"onUpdate:modelValue":v[3]||(v[3]=D=>i.newItem.title=D)},null,8,["placeholder","label","modelValue"])]),_:1}),y(h,{cols:"12",lg:"3",class:"pt-3 pr-3"},{default:I(()=>[y(g,{density:"compact",variant:"outlined",clearable:"","persistent-placeholder":"",placeholder:p.$t(ye+"iconPlaceholder"),label:p.$t(ye+"icon"),"append-inner-icon":i.newItem.icon,modelValue:i.newItem.icon,"onUpdate:modelValue":v[4]||(v[4]=D=>i.newItem.icon=D)},null,8,["placeholder","label","append-inner-icon","modelValue"])]),_:1}),y(h,{cols:"4",lg:"",class:"pt-1"},{default:I(()=>[y(b,{hint:p.$t(ye+"groupAsChipsHint"),label:p.$t(ye+"groupAsChips"),modelValue:i.newItem.groupAsChips,"onUpdate:modelValue":v[5]||(v[5]=D=>i.newItem.groupAsChips=D)},null,8,["hint","label","modelValue"])]),_:1}),y(h,{cols:"4",lg:"",class:"pt-1"},{default:I(()=>[y(b,{hint:p.$t(ye+"sortHint"),label:p.$t(ye+"sort"),modelValue:i.newItem.sort,"onUpdate:modelValue":v[6]||(v[6]=D=>i.newItem.sort=D)},null,8,["hint","label","modelValue"])]),_:1}),y(h,{cols:"4",lg:"",class:"pt-1"},{default:I(()=>[y(b,{hint:p.$t(ye+"dividerHint"),label:p.$t(ye+"divider"),modelValue:i.newItem.divider,"onUpdate:modelValue":v[7]||(v[7]=D=>i.newItem.divider=D)},null,8,["hint","label","modelValue"])]),_:1}),y(h,{class:"pt-3 text-right"},{default:I(()=>[y(m,{variant:"text",icon:"mdi-cancel",onClick:v[8]||(v[8]=D=>a.value.reset())}),y(m,{variant:"text",icon:"mdi-plus",disabled:!i.newItem.name,onClick:v[9]||(v[9]=D=>r())},null,8,["disabled"])]),_:1})]),_:1})]),_:1},512)]),_:1})]),_:1})}}};function Gt(){return Gt=Object.assign||function(u){for(var e=1;e";return e},lineNumbersCount:function(){var e=this.codeData.split(/\r\n|\n/).length;return e}},mounted:function(){this._recordCurrentState(),this.styleLineNumbers()},methods:{setLineNumbersHeight:function(){this.lineNumbersHeight=getComputedStyle(this.$refs.pre).height},styleLineNumbers:function(){if(!(!this.lineNumbers||!this.autoStyleLineNumbers)){var e=this.$refs.pre,n=this.$el.querySelector(".prism-editor__line-numbers"),i=window.getComputedStyle(e);this.$nextTick(function(){var a="border-top-left-radius",l="border-bottom-left-radius";if(n){n.style[a]=i[a],n.style[l]=i[l],e.style[a]="0",e.style[l]="0";var t=["background-color","margin-top","padding-top","font-family","font-size","line-height"];t.forEach(function(r){n.style[r]=i[r]}),n.style["margin-bottom"]="-"+i["padding-top"]}})}},_recordCurrentState:function(){var e=this.$refs.textarea;if(e){var n=e.value,i=e.selectionStart,a=e.selectionEnd;this._recordChange({value:n,selectionStart:i,selectionEnd:a})}},_getLines:function(e,n){return e.substring(0,n).split(`
+`)},_applyEdits:function(e){var n=this.$refs.textarea,i=this.history.stack[this.history.offset];i&&n&&(this.history.stack[this.history.offset]=Gt({},i,{selectionStart:n.selectionStart,selectionEnd:n.selectionEnd})),this._recordChange(e),this._updateInput(e)},_recordChange:function(e,n){n===void 0&&(n=!1);var i=this.history,a=i.stack,l=i.offset;if(a.length&&l>-1){this.history.stack=a.slice(0,l+1);var t=this.history.stack.length;if(t>zn){var r=t-zn;this.history.stack=a.slice(r,t),this.history.offset=Math.max(this.history.offset-r,0)}}var o=Date.now();if(n){var s=this.history.stack[this.history.offset];if(s&&o-s.timestamp
=p&&N<=v&&L.startsWith(s)?L.substring(s.length):L}).join(`
+`);if(t!==m){var d=c[p];this._applyEdits({value:m,selectionStart:d.startsWith(s)?r-s.length:r,selectionEnd:o-(t.length-m.length)})}}else if(r!==o){var g=this._getLines(t,r),h=g.length-1,b=this._getLines(t,o).length-1,f=g[h];this._applyEdits({value:t.split(`
+`).map(function(L,N){return N>=h&&N<=b?s+L:L}).join(`
+`),selectionStart:/\S/.test(f)?r+s.length:r,selectionEnd:o+s.length*(b-h+1)})}else{var x=r+s.length;this._applyEdits({value:t.substring(0,r)+s+t.substring(o),selectionStart:x,selectionEnd:x})}else if(e.keyCode===Ur){var S=r!==o,C=t.substring(0,r);if(C.endsWith(s)&&!S){e.preventDefault();var O=r-s.length;this._applyEdits({value:t.substring(0,r-s.length)+t.substring(o),selectionStart:O,selectionEnd:O})}}else if(e.keyCode===Nr){if(r===o){var P=this._getLines(t,r).pop(),D=P==null?void 0:P.match(/^\s+/);if(D&&D[0]){e.preventDefault();var E=`
+`+D[0],w=r+E.length;this._applyEdits({value:t.substring(0,r)+E+t.substring(o),selectionStart:w,selectionEnd:w})}}}else if(e.keyCode===Gn||e.keyCode===Hn||e.keyCode===Bn||e.keyCode===kn){var j;e.keyCode===Gn&&e.shiftKey?j=["(",")"]:e.keyCode===Hn?e.shiftKey?j=["{","}"]:j=["[","]"]:e.keyCode===Bn?e.shiftKey?j=['"','"']:j=["'","'"]:e.keyCode===kn&&!e.shiftKey&&(j=["`","`"]),r!==o&&j&&(e.preventDefault(),this._applyEdits({value:t.substring(0,r)+j[0]+t.substring(r,o)+j[1]+t.substring(o),selectionStart:r,selectionEnd:o+2}))}else(bn?e.metaKey&&e.keyCode===Qt:e.ctrlKey&&e.keyCode===Qt)&&!e.shiftKey&&!e.altKey?(e.preventDefault(),this._undoEdit()):(bn?e.metaKey&&e.keyCode===Qt&&e.shiftKey:Br?e.ctrlKey&&e.keyCode===Lr:e.ctrlKey&&e.keyCode===Qt&&e.shiftKey)&&!e.altKey?(e.preventDefault(),this._redoEdit()):e.keyCode===Kr&&e.ctrlKey&&(!bn||e.shiftKey)&&(e.preventDefault(),this.capture=!this.capture)}}},render:function(){var e=this,n=mt("div",{class:"prism-editor__line-width-calc",style:"height: 0px; visibility: hidden; pointer-events: none;"},"999"),i=mt("div",{class:"prism-editor__line-numbers",style:{"min-height":this.lineNumbersHeight},"aria-hidden":"true"},[n,Array.from(Array(this.lineNumbersCount).keys()).map(function(r,o){return mt("div",{class:"prism-editor__line-number token comment"},""+ ++o)})]),a=mt("textarea",{ref:"textarea",onInput:this.handleChange,onKeydown:this.handleKeyDown,onClick:function(o){e.$emit("click",o)},onKeyup:function(o){e.$emit("keyup",o)},onFocus:function(o){e.$emit("focus",o)},onBlur:function(o){e.$emit("blur",o)},class:{"prism-editor__textarea":!0,"prism-editor__textarea--empty":this.isEmpty},spellCheck:"false",autocapitalize:"off",autocomplete:"off",autocorrect:"off","data-gramm":"false",placeholder:this.placeholder,"data-testid":"textarea",readonly:this.readonly,value:this.codeData}),l=mt("pre",{ref:"pre",class:"prism-editor__editor","data-testid":"preview",innerHTML:this.content}),t=mt("div",{class:"prism-editor__container"},[a,l]);return mt("div",{class:"prism-editor-wrapper"},[this.lineNumbers&&i,t])}});var ur={exports:{}};(function(u){var e=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{};/**
+ * Prism: Lightweight, robust, elegant syntax highlighting
+ *
+ * @license MIT
+ * @author Lea Verou
+ * @namespace
+ * @public
+ */var n=function(i){var a=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,l=0,t={},r={manual:i.Prism&&i.Prism.manual,disableWorkerMessageHandler:i.Prism&&i.Prism.disableWorkerMessageHandler,util:{encode:function f(x){return x instanceof o?new o(x.type,f(x.content),x.alias):Array.isArray(x)?x.map(f):x.replace(/&/g,"&").replace(/"u")return null;if("currentScript"in document&&1<2)return document.currentScript;try{throw new Error}catch(C){var f=(/at [^(\r\n]*\((.*):[^:]+:[^:]+\)$/i.exec(C.stack)||[])[1];if(f){var x=document.getElementsByTagName("script");for(var S in x)if(x[S].src==f)return x[S]}return null}},isActive:function(f,x,S){for(var C="no-"+x;f;){var O=f.classList;if(O.contains(x))return!0;if(O.contains(C))return!1;f=f.parentElement}return!!S}},languages:{plain:t,plaintext:t,text:t,txt:t,extend:function(f,x){var S=r.util.clone(r.languages[f]);for(var C in x)S[C]=x[C];return S},insertBefore:function(f,x,S,C){C=C||r.languages;var O=C[f],P={};for(var D in O)if(O.hasOwnProperty(D)){if(D==x)for(var E in S)S.hasOwnProperty(E)&&(P[E]=S[E]);S.hasOwnProperty(D)||(P[D]=O[D])}var w=C[f];return C[f]=P,r.languages.DFS(r.languages,function(j,L){L===w&&j!=f&&(this[j]=P)}),P},DFS:function f(x,S,C,O){O=O||{};var P=r.util.objId;for(var D in x)if(x.hasOwnProperty(D)){S.call(x,D,x[D],C||D);var E=x[D],w=r.util.type(E);w==="Object"&&!O[P(E)]?(O[P(E)]=!0,f(E,S,null,O)):w==="Array"&&!O[P(E)]&&(O[P(E)]=!0,f(E,S,D,O))}}},plugins:{},highlightAll:function(f,x){r.highlightAllUnder(document,f,x)},highlightAllUnder:function(f,x,S){var C={callback:S,container:f,selector:'code[class*="language-"], [class*="language-"] code, code[class*="lang-"], [class*="lang-"] code'};r.hooks.run("before-highlightall",C),C.elements=Array.prototype.slice.apply(C.container.querySelectorAll(C.selector)),r.hooks.run("before-all-elements-highlight",C);for(var O=0,P;P=C.elements[O++];)r.highlightElement(P,x===!0,C.callback)},highlightElement:function(f,x,S){var C=r.util.getLanguage(f),O=r.languages[C];r.util.setLanguage(f,C);var P=f.parentElement;P&&P.nodeName.toLowerCase()==="pre"&&r.util.setLanguage(P,C);var D=f.textContent,E={element:f,language:C,grammar:O,code:D};function w(L){E.highlightedCode=L,r.hooks.run("before-insert",E),E.element.innerHTML=E.highlightedCode,r.hooks.run("after-highlight",E),r.hooks.run("complete",E),S&&S.call(E.element)}if(r.hooks.run("before-sanity-check",E),P=E.element.parentElement,P&&P.nodeName.toLowerCase()==="pre"&&!P.hasAttribute("tabindex")&&P.setAttribute("tabindex","0"),!E.code){r.hooks.run("complete",E),S&&S.call(E.element);return}if(r.hooks.run("before-highlight",E),!E.grammar){w(r.util.encode(E.code));return}if(x&&i.Worker){var j=new Worker(r.filename);j.onmessage=function(L){w(L.data)},j.postMessage(JSON.stringify({language:E.language,code:E.code,immediateClose:!0}))}else w(r.highlight(E.code,E.grammar,E.language))},highlight:function(f,x,S){var C={code:f,grammar:x,language:S};if(r.hooks.run("before-tokenize",C),!C.grammar)throw new Error('The language "'+C.language+'" has no grammar.');return C.tokens=r.tokenize(C.code,C.grammar),r.hooks.run("after-tokenize",C),o.stringify(r.util.encode(C.tokens),C.language)},tokenize:function(f,x){var S=x.rest;if(S){for(var C in S)x[C]=S[C];delete x.rest}var O=new p;return v(O,O.head,f),c(f,O,x,O.head,0),d(O)},hooks:{all:{},add:function(f,x){var S=r.hooks.all;S[f]=S[f]||[],S[f].push(x)},run:function(f,x){var S=r.hooks.all[f];if(!(!S||!S.length))for(var C=0,O;O=S[C++];)O(x)}},Token:o};i.Prism=r;function o(f,x,S,C){this.type=f,this.content=x,this.alias=S,this.length=(C||"").length|0}o.stringify=function f(x,S){if(typeof x=="string")return x;if(Array.isArray(x)){var C="";return x.forEach(function(w){C+=f(w,S)}),C}var O={type:x.type,content:f(x.content,S),tag:"span",classes:["token",x.type],attributes:{},language:S},P=x.alias;P&&(Array.isArray(P)?Array.prototype.push.apply(O.classes,P):O.classes.push(P)),r.hooks.run("wrap",O);var D="";for(var E in O.attributes)D+=" "+E+'="'+(O.attributes[E]||"").replace(/"/g,""")+'"';return"<"+O.tag+' class="'+O.classes.join(" ")+'"'+D+">"+O.content+""+O.tag+">"};function s(f,x,S,C){f.lastIndex=x;var O=f.exec(S);if(O&&C&&O[1]){var P=O[1].length;O.index+=P,O[0]=O[0].slice(P)}return O}function c(f,x,S,C,O,P){for(var D in S)if(!(!S.hasOwnProperty(D)||!S[D])){var E=S[D];E=Array.isArray(E)?E:[E];for(var w=0;w=P.reach);G+=k.value.length,k=k.next){var de=k.value;if(x.length>f.length)return;if(!(de instanceof o)){var ce=1,le;if(R){if(le=s(V,G,f,N),!le||le.index>=f.length)break;var ve=le.index,Se=le.index+le[0].length,Z=G;for(Z+=k.value.length;ve>=Z;)k=k.next,Z+=k.value.length;if(Z-=k.value.length,G=Z,k.value instanceof o)continue;for(var me=k;me!==x.tail&&(ZP.reach&&(P.reach=ze);var Xe=k.prev;je&&(Xe=v(x,Xe,je),G+=je.length),m(x,Xe,ce);var rt=new o(D,L?r.tokenize(ge,L):ge,B,ge);if(k=v(x,Xe,rt),Ve&&v(x,k,Ve),ce>1){var Ae={cause:D+","+w,reach:ze};c(f,x,S,k.prev,G,Ae),P&&Ae.reach>P.reach&&(P.reach=Ae.reach)}}}}}}function p(){var f={value:null,prev:null,next:null},x={value:null,prev:f,next:null};f.next=x,this.head=f,this.tail=x,this.length=0}function v(f,x,S){var C=x.next,O={value:S,prev:x,next:C};return x.next=O,C.prev=O,f.length++,O}function m(f,x,S){for(var C=x.next,O=0;O]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/};Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+(/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source)+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/});Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/;Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/});Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}});Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}});Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript"));Prism.languages.js=Prism.languages.javascript;var dr={exports:{}};/**!
+ * Sortable 1.14.0
+ * @author RubaXa
+ * @author owenm
+ * @license MIT
+ */function Wn(u,e){var n=Object.keys(u);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(u);e&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(u,a).enumerable})),n.push.apply(n,i)}return n}function it(u){for(var e=1;e=0)&&(n[a]=u[a]);return n}function Wr(u,e){if(u==null)return{};var n=zr(u,e),i,a;if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(u);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(u,i)&&(n[i]=u[i])}return n}function Yr(u){return Xr(u)||Jr(u)||Zr(u)||Qr()}function Xr(u){if(Array.isArray(u))return $n(u)}function Jr(u){if(typeof Symbol<"u"&&u[Symbol.iterator]!=null||u["@@iterator"]!=null)return Array.from(u)}function Zr(u,e){if(u){if(typeof u=="string")return $n(u,e);var n=Object.prototype.toString.call(u).slice(8,-1);if(n==="Object"&&u.constructor&&(n=u.constructor.name),n==="Map"||n==="Set")return Array.from(u);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $n(u,e)}}function $n(u,e){(e==null||e>u.length)&&(e=u.length);for(var n=0,i=new Array(e);n"&&(e=e.substring(1)),u)try{if(u.matches)return u.matches(e);if(u.msMatchesSelector)return u.msMatchesSelector(e);if(u.webkitMatchesSelector)return u.webkitMatchesSelector(e)}catch{return!1}return!1}}function ea(u){return u.host&&u!==document&&u.host.nodeType?u.host:u.parentNode}function et(u,e,n,i){if(u){n=n||document;do{if(e!=null&&(e[0]===">"?u.parentNode===n&&pn(u,e):pn(u,e))||i&&u===n)return u;if(u===n)break}while(u=ea(u))}return null}var Xn=/\s+/g;function Ee(u,e,n){if(u&&e)if(u.classList)u.classList[n?"add":"remove"](e);else{var i=(" "+u.className+" ").replace(Xn," ").replace(" "+e+" "," ");u.className=(i+(n?" "+e:"")).replace(Xn," ")}}function Y(u,e,n){var i=u&&u.style;if(i){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(u,""):u.currentStyle&&(n=u.currentStyle),e===void 0?n:n[e];!(e in i)&&e.indexOf("webkit")===-1&&(e="-webkit-"+e),i[e]=n+(typeof n=="string"?"":"px")}}function xt(u,e){var n="";if(typeof u=="string")n=u;else do{var i=Y(u,"transform");i&&i!=="none"&&(n=i+" "+n)}while(!e&&(u=u.parentNode));var a=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return a&&new a(n)}function fr(u,e,n){if(u){var i=u.getElementsByTagName(e),a=0,l=i.length;if(n)for(;a=l:t=a<=l,!t)return i;if(i===lt())break;i=ft(i,!1)}return!1}function Dt(u,e,n,i){for(var a=0,l=0,t=u.children;l2&&arguments[2]!==void 0?arguments[2]:{},a=i.evt,l=Wr(i,ia);Xt.pluginEvent.bind(q)(e,n,it({dragEl:K,parentEl:Ie,ghostEl:ne,rootEl:be,nextEl:bt,lastDownEl:on,cloneEl:Oe,cloneHidden:ct,dragStarted:Ut,putSortable:Ne,activeSortable:q.active,originalEvent:a,oldIndex:wt,oldDraggableIndex:kt,newIndex:Ye,newDraggableIndex:pt,hideGhostForTarget:br,unhideGhostForTarget:xr,cloneNowHidden:function(){ct=!0},cloneNowShown:function(){ct=!1},dispatchSortableEvent:function(r){Le({sortable:n,name:r,originalEvent:a})}},l))};function Le(u){Mt(it({putSortable:Ne,cloneEl:Oe,targetEl:K,rootEl:be,oldIndex:wt,oldDraggableIndex:kt,newIndex:Ye,newDraggableIndex:pt},u))}var K,Ie,ne,be,bt,on,Oe,ct,wt,Ye,kt,pt,qt,Ne,Ct=!1,cn=!1,fn=[],gt,qe,In,On,qn,_n,Ut,It,zt,Wt=!1,_t=!1,ln,Me,Cn=[],Vn=!1,vn=[],gn=typeof document<"u",en=pr,er=Yt||ut?"cssFloat":"float",sa=gn&&!_r&&!pr&&"draggable"in document.createElement("div"),gr=function(){if(gn){if(ut)return!1;var u=document.createElement("x");return u.style.cssText="pointer-events:auto",u.style.pointerEvents==="auto"}}(),hr=function(e,n){var i=Y(e),a=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),l=Dt(e,0,n),t=Dt(e,1,n),r=l&&Y(l),o=t&&Y(t),s=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+xe(l).width,c=o&&parseInt(o.marginLeft)+parseInt(o.marginRight)+xe(t).width;if(i.display==="flex")return i.flexDirection==="column"||i.flexDirection==="column-reverse"?"vertical":"horizontal";if(i.display==="grid")return i.gridTemplateColumns.split(" ").length<=1?"vertical":"horizontal";if(l&&r.float&&r.float!=="none"){var p=r.float==="left"?"left":"right";return t&&(o.clear==="both"||o.clear===p)?"vertical":"horizontal"}return l&&(r.display==="block"||r.display==="flex"||r.display==="table"||r.display==="grid"||s>=a&&i[er]==="none"||t&&i[er]==="none"&&s+c>a)?"vertical":"horizontal"},ua=function(e,n,i){var a=i?e.left:e.top,l=i?e.right:e.bottom,t=i?e.width:e.height,r=i?n.left:n.top,o=i?n.right:n.bottom,s=i?n.width:n.height;return a===r||l===o||a+t/2===r+s/2},da=function(e,n){var i;return fn.some(function(a){var l=a[Ue].options.emptyInsertThreshold;if(!(!l||Mn(a))){var t=xe(a),r=e>=t.left-l&&e<=t.right+l,o=n>=t.top-l&&n<=t.bottom+l;if(r&&o)return i=a}}),i},yr=function(e){function n(l,t){return function(r,o,s,c){var p=r.options.group.name&&o.options.group.name&&r.options.group.name===o.options.group.name;if(l==null&&(t||p))return!0;if(l==null||l===!1)return!1;if(t&&l==="clone")return l;if(typeof l=="function")return n(l(r,o,s,c),t)(r,o,s,c);var v=(t?r:o).options.group.name;return l===!0||typeof l=="string"&&l===v||l.join&&l.indexOf(v)>-1}}var i={},a=e.group;(!a||an(a)!="object")&&(a={name:a}),i.name=a.name,i.checkPull=n(a.pull,!0),i.checkPut=n(a.put),i.revertClone=a.revertClone,e.group=i},br=function(){!gr&&ne&&Y(ne,"display","none")},xr=function(){!gr&&ne&&Y(ne,"display","")};gn&&document.addEventListener("click",function(u){if(cn)return u.preventDefault(),u.stopPropagation&&u.stopPropagation(),u.stopImmediatePropagation&&u.stopImmediatePropagation(),cn=!1,!1},!0);var ht=function(e){if(K){e=e.touches?e.touches[0]:e;var n=da(e.clientX,e.clientY);if(n){var i={};for(var a in e)e.hasOwnProperty(a)&&(i[a]=e[a]);i.target=i.rootEl=n,i.preventDefault=void 0,i.stopPropagation=void 0,n[Ue]._onDragOver(i)}}},pa=function(e){K&&K.parentNode[Ue]._isOutsideThisEl(e.target)};function q(u,e){if(!(u&&u.nodeType&&u.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(u));this.el=u,this.options=e=Ze({},e),u[Ue]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(u.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return hr(u,this.options)},ghostClass:"sortable-ghost",chosenClass:"sortable-chosen",dragClass:"sortable-drag",ignore:"a, img",filter:null,preventOnFilter:!0,animation:0,easing:null,setData:function(t,r){t.setData("Text",r.textContent)},dropBubble:!1,dragoverBubble:!1,dataIdAttr:"data-id",delay:0,delayOnTouchOnly:!1,touchStartThreshold:(Number.parseInt?Number:window).parseInt(window.devicePixelRatio,10)||1,forceFallback:!1,fallbackClass:"sortable-fallback",fallbackOnBody:!1,fallbackTolerance:0,fallbackOffset:{x:0,y:0},supportPointer:q.supportPointer!==!1&&"PointerEvent"in window&&!Ht,emptyInsertThreshold:5};Xt.initializePlugins(this,u,n);for(var i in n)!(i in e)&&(e[i]=n[i]);yr(e);for(var a in this)a.charAt(0)==="_"&&typeof this[a]=="function"&&(this[a]=this[a].bind(this));this.nativeDraggable=e.forceFallback?!1:sa,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?ie(u,"pointerdown",this._onTapStart):(ie(u,"mousedown",this._onTapStart),ie(u,"touchstart",this._onTapStart)),this.nativeDraggable&&(ie(u,"dragover",this),ie(u,"dragenter",this)),fn.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),Ze(this,aa())}q.prototype={constructor:q,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(It=null)},_getDirection:function(e,n){return typeof this.options.direction=="function"?this.options.direction.call(this,e,n,K):this.options.direction},_onTapStart:function(e){if(e.cancelable){var n=this,i=this.el,a=this.options,l=a.preventOnFilter,t=e.type,r=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,o=(r||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||o,c=a.filter;if(ba(i),!K&&!(/mousedown|pointerdown/.test(t)&&e.button!==0||a.disabled)&&!s.isContentEditable&&!(!this.nativeDraggable&&Ht&&o&&o.tagName.toUpperCase()==="SELECT")&&(o=et(o,a.draggable,i,!1),!(o&&o.animated)&&on!==o)){if(wt=Ce(o),kt=Ce(o,a.draggable),typeof c=="function"){if(c.call(this,e,o,this)){Le({sortable:n,rootEl:s,name:"filter",targetEl:o,toEl:i,fromEl:i}),He("filter",n,{evt:e}),l&&e.cancelable&&e.preventDefault();return}}else if(c&&(c=c.split(",").some(function(p){if(p=et(s,p.trim(),i,!1),p)return Le({sortable:n,rootEl:p,name:"filter",targetEl:o,fromEl:i,toEl:i}),He("filter",n,{evt:e}),!0}),c)){l&&e.cancelable&&e.preventDefault();return}a.handle&&!et(s,a.handle,i,!1)||this._prepareDragStart(e,r,o)}}},_prepareDragStart:function(e,n,i){var a=this,l=a.el,t=a.options,r=l.ownerDocument,o;if(i&&!K&&i.parentNode===l){var s=xe(i);if(be=l,K=i,Ie=K.parentNode,bt=K.nextSibling,on=i,qt=t.group,q.dragged=K,gt={target:K,clientX:(n||e).clientX,clientY:(n||e).clientY},qn=gt.clientX-s.left,_n=gt.clientY-s.top,this._lastX=(n||e).clientX,this._lastY=(n||e).clientY,K.style["will-change"]="all",o=function(){if(He("delayEnded",a,{evt:e}),q.eventCanceled){a._onDrop();return}a._disableDelayedDragEvents(),!Yn&&a.nativeDraggable&&(K.draggable=!0),a._triggerDragStart(e,n),Le({sortable:a,name:"choose",originalEvent:e}),Ee(K,t.chosenClass,!0)},t.ignore.split(",").forEach(function(c){fr(K,c.trim(),wn)}),ie(r,"dragover",ht),ie(r,"mousemove",ht),ie(r,"touchmove",ht),ie(r,"mouseup",a._onDrop),ie(r,"touchend",a._onDrop),ie(r,"touchcancel",a._onDrop),Yn&&this.nativeDraggable&&(this.options.touchStartThreshold=4,K.draggable=!0),He("delayStart",this,{evt:e}),t.delay&&(!t.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Yt||ut))){if(q.eventCanceled){this._onDrop();return}ie(r,"mouseup",a._disableDelayedDrag),ie(r,"touchend",a._disableDelayedDrag),ie(r,"touchcancel",a._disableDelayedDrag),ie(r,"mousemove",a._delayedDragTouchMoveHandler),ie(r,"touchmove",a._delayedDragTouchMoveHandler),t.supportPointer&&ie(r,"pointermove",a._delayedDragTouchMoveHandler),a._dragStartTimer=setTimeout(o,t.delay)}else o()}},_delayedDragTouchMoveHandler:function(e){var n=e.touches?e.touches[0]:e;Math.max(Math.abs(n.clientX-this._lastX),Math.abs(n.clientY-this._lastY))>=Math.floor(this.options.touchStartThreshold/(this.nativeDraggable&&window.devicePixelRatio||1))&&this._disableDelayedDrag()},_disableDelayedDrag:function(){K&&wn(K),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;oe(e,"mouseup",this._disableDelayedDrag),oe(e,"touchend",this._disableDelayedDrag),oe(e,"touchcancel",this._disableDelayedDrag),oe(e,"mousemove",this._delayedDragTouchMoveHandler),oe(e,"touchmove",this._delayedDragTouchMoveHandler),oe(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,n){n=n||e.pointerType=="touch"&&e,!this.nativeDraggable||n?this.options.supportPointer?ie(document,"pointermove",this._onTouchMove):n?ie(document,"touchmove",this._onTouchMove):ie(document,"mousemove",this._onTouchMove):(ie(K,"dragend",this),ie(be,"dragstart",this._onDragStart));try{document.selection?sn(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,n){if(Ct=!1,be&&K){He("dragStarted",this,{evt:n}),this.nativeDraggable&&ie(document,"dragover",pa);var i=this.options;!e&&Ee(K,i.dragClass,!1),Ee(K,i.ghostClass,!0),q.active=this,e&&this._appendGhost(),Le({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(qe){this._lastX=qe.clientX,this._lastY=qe.clientY,br();for(var e=document.elementFromPoint(qe.clientX,qe.clientY),n=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(qe.clientX,qe.clientY),e!==n);)n=e;if(K.parentNode[Ue]._isOutsideThisEl(e),n)do{if(n[Ue]){var i=void 0;if(i=n[Ue]._onDragOver({clientX:qe.clientX,clientY:qe.clientY,target:e,rootEl:n}),i&&!this.options.dragoverBubble)break}e=n}while(n=n.parentNode);xr()}},_onTouchMove:function(e){if(gt){var n=this.options,i=n.fallbackTolerance,a=n.fallbackOffset,l=e.touches?e.touches[0]:e,t=ne&&xt(ne,!0),r=ne&&t&&t.a,o=ne&&t&&t.d,s=en&&Me&&Zn(Me),c=(l.clientX-gt.clientX+a.x)/(r||1)+(s?s[0]-Cn[0]:0)/(r||1),p=(l.clientY-gt.clientY+a.y)/(o||1)+(s?s[1]-Cn[1]:0)/(o||1);if(!q.active&&!Ct){if(i&&Math.max(Math.abs(l.clientX-this._lastX),Math.abs(l.clientY-this._lastY))=0&&(Le({rootEl:Ie,name:"add",toEl:Ie,fromEl:be,originalEvent:e}),Le({sortable:this,name:"remove",toEl:Ie,originalEvent:e}),Le({rootEl:Ie,name:"sort",toEl:Ie,fromEl:be,originalEvent:e}),Le({sortable:this,name:"sort",toEl:Ie,originalEvent:e})),Ne&&Ne.save()):Ye!==wt&&Ye>=0&&(Le({sortable:this,name:"update",toEl:Ie,originalEvent:e}),Le({sortable:this,name:"sort",toEl:Ie,originalEvent:e})),q.active&&((Ye==null||Ye===-1)&&(Ye=wt,pt=kt),Le({sortable:this,name:"end",toEl:Ie,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){He("nulling",this),be=K=Ie=ne=bt=Oe=on=ct=gt=qe=Ut=Ye=pt=wt=kt=It=zt=Ne=qt=q.dragged=q.ghost=q.clone=q.active=null,vn.forEach(function(e){e.checked=!0}),vn.length=In=On=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":K&&(this._onDragOver(e),ca(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],n,i=this.el.children,a=0,l=i.length,t=this.options;ai.right+a||u.clientX<=i.right&&u.clientY>i.bottom&&u.clientX>=i.left:u.clientX>i.right&&u.clientY>i.top||u.clientX<=i.right&&u.clientY>i.bottom+a}function ga(u,e,n,i,a,l,t,r){var o=i?u.clientY:u.clientX,s=i?n.height:n.width,c=i?n.top:n.left,p=i?n.bottom:n.right,v=!1;if(!t){if(r&&lnc+s*l/2:op-ln)return-zt}else if(o>c+s*(1-a)/2&&op-s*l/2)?o>c+s/2?1:-1:0}function ha(u){return Ce(K)1&&(te.forEach(function(r){l.addAnimationState({target:r,rect:Be?xe(r):t}),Sn(r),r.fromRect=t,i.removeAnimationState(r)}),Be=!1,Oa(!this.options.removeCloneOnHide,a))},dragOverCompleted:function(n){var i=n.sortable,a=n.isOwner,l=n.insertion,t=n.activeSortable,r=n.parentEl,o=n.putSortable,s=this.options;if(l){if(a&&t._hideClone(),Rt=!1,s.animation&&te.length>1&&(Be||!a&&!t.options.sort&&!o)){var c=xe(he,!1,!0,!0);te.forEach(function(v){v!==he&&(Qn(v,c),r.appendChild(v))}),Be=!0}if(!a)if(Be||rn(),te.length>1){var p=nn;t._showClone(i),t.options.animation&&!nn&&p&&We.forEach(function(v){t.addAnimationState({target:v,rect:Nt}),v.fromRect=Nt,v.thisAnimationDuration=null})}else t._showClone(i)}},dragOverAnimationCapture:function(n){var i=n.dragRect,a=n.isOwner,l=n.activeSortable;if(te.forEach(function(r){r.thisAnimationDuration=null}),l.options.animation&&!a&&l.multiDrag.isMultiDrag){Nt=Ze({},i);var t=xt(he,!0);Nt.top-=t.f,Nt.left-=t.e}},dragOverAnimationComplete:function(){Be&&(Be=!1,rn())},drop:function(n){var i=n.originalEvent,a=n.rootEl,l=n.parentEl,t=n.sortable,r=n.dispatchSortableEvent,o=n.oldIndex,s=n.putSortable,c=s||this.sortable;if(i){var p=this.options,v=l.children;if(!Ot)if(p.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),Ee(he,p.selectedClass,!~te.indexOf(he)),~te.indexOf(he))te.splice(te.indexOf(he),1),jt=null,Mt({sortable:t,rootEl:a,name:"deselect",targetEl:he,originalEvt:i});else{if(te.push(he),Mt({sortable:t,rootEl:a,name:"select",targetEl:he,originalEvt:i}),i.shiftKey&&jt&&t.el.contains(jt)){var m=Ce(jt),d=Ce(he);if(~m&&~d&&m!==d){var g,h;for(d>m?(h=m,g=d):(h=d,g=m+1);h1){var b=xe(he),f=Ce(he,":not(."+this.options.selectedClass+")");if(!Rt&&p.animation&&(he.thisAnimationDuration=null),c.captureAnimationState(),!Rt&&(p.animation&&(he.fromRect=b,te.forEach(function(S){if(S.thisAnimationDuration=null,S!==he){var C=Be?xe(S):b;S.fromRect=C,c.addAnimationState({target:S,rect:C})}})),rn(),te.forEach(function(S){v[f]?l.insertBefore(S,v[f]):l.appendChild(S),f++}),o===Ce(he))){var x=!1;te.forEach(function(S){if(S.sortableIndex!==Ce(S)){x=!0;return}}),x&&r("update")}te.forEach(function(S){Sn(S)}),c.animateAll()}_e=c}(a===l||s&&s.lastPutMode!=="clone")&&We.forEach(function(S){S.parentNode&&S.parentNode.removeChild(S)})}},nullingGlobal:function(){this.isMultiDrag=Ot=!1,We.length=0},destroyGlobal:function(){this._deselectMultiDrag(),oe(document,"pointerup",this._deselectMultiDrag),oe(document,"mouseup",this._deselectMultiDrag),oe(document,"touchend",this._deselectMultiDrag),oe(document,"keydown",this._checkKeyDown),oe(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(n){if(!(typeof Ot<"u"&&Ot)&&_e===this.sortable&&!(n&&et(n.target,this.options.draggable,this.sortable.el,!1))&&!(n&&n.button!==0))for(;te.length;){var i=te[0];Ee(i,this.options.selectedClass,!1),te.shift(),Mt({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:i,originalEvt:n})}},_checkKeyDown:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},Ze(u,{pluginName:"multiDrag",utils:{select:function(n){var i=n.parentNode[Ue];!i||!i.options.multiDrag||~te.indexOf(n)||(_e&&_e!==i&&(_e.multiDrag._deselectMultiDrag(),_e=i),Ee(n,i.options.selectedClass,!0),te.push(n))},deselect:function(n){var i=n.parentNode[Ue],a=te.indexOf(n);!i||!i.options.multiDrag||!~a||(Ee(n,i.options.selectedClass,!1),te.splice(a,1))}},eventProperties:function(){var n=this,i=[],a=[];return te.forEach(function(l){i.push({multiDragElement:l,index:l.sortableIndex});var t;Be&&l!==he?t=-1:Be?t=Ce(l,":not(."+n.options.selectedClass+")"):t=Ce(l),a.push({multiDragElement:l,index:t})}),{items:Yr(te),clones:[].concat(We),oldIndicies:i,newIndicies:a}},optionListeners:{multiDragKey:function(n){return n=n.toLowerCase(),n==="ctrl"?n="Control":n.length>1&&(n=n.charAt(0).toUpperCase()+n.substr(1)),n}}})}function Oa(u,e){te.forEach(function(n,i){var a=e.children[n.sortableIndex+(u?Number(i):0)];a?e.insertBefore(n,a):e.appendChild(n)})}function nr(u,e){We.forEach(function(n,i){var a=e.children[n.sortableIndex+(u?Number(i):0)];a?e.insertBefore(n,a):e.appendChild(n)})}function rn(){te.forEach(function(u){u!==he&&u.parentNode&&u.parentNode.removeChild(u)})}q.mount(new xa);q.mount(Kn,Ln);const Ca=Object.freeze(Object.defineProperty({__proto__:null,MultiDrag:Ia,Sortable:q,Swap:Sa,default:q},Symbol.toStringTag,{value:"Module"})),wa=Tr(Ca);(function(u,e){(function(i,a){u.exports=a(Ar,wa)})(typeof self<"u"?self:Pn,function(n,i){return function(a){var l={};function t(r){if(l[r])return l[r].exports;var o=l[r]={i:r,l:!1,exports:{}};return a[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}return t.m=a,t.c=l,t.d=function(r,o,s){t.o(r,o)||Object.defineProperty(r,o,{enumerable:!0,get:s})},t.r=function(r){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},t.t=function(r,o){if(o&1&&(r=t(r)),o&8||o&4&&typeof r=="object"&&r&&r.__esModule)return r;var s=Object.create(null);if(t.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:r}),o&2&&typeof r!="string")for(var c in r)t.d(s,c,(function(p){return r[p]}).bind(null,c));return s},t.n=function(r){var o=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(o,"a",o),o},t.o=function(r,o){return Object.prototype.hasOwnProperty.call(r,o)},t.p="",t(t.s="fb15")}({"00ee":function(a,l,t){var r=t("b622"),o=r("toStringTag"),s={};s[o]="z",a.exports=String(s)==="[object z]"},"0366":function(a,l,t){var r=t("1c0b");a.exports=function(o,s,c){if(r(o),s===void 0)return o;switch(c){case 0:return function(){return o.call(s)};case 1:return function(p){return o.call(s,p)};case 2:return function(p,v){return o.call(s,p,v)};case 3:return function(p,v,m){return o.call(s,p,v,m)}}return function(){return o.apply(s,arguments)}}},"057f":function(a,l,t){var r=t("fc6a"),o=t("241c").f,s={}.toString,c=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],p=function(v){try{return o(v)}catch{return c.slice()}};a.exports.f=function(m){return c&&s.call(m)=="[object Window]"?p(m):o(r(m))}},"06cf":function(a,l,t){var r=t("83ab"),o=t("d1e7"),s=t("5c6c"),c=t("fc6a"),p=t("c04e"),v=t("5135"),m=t("0cfb"),d=Object.getOwnPropertyDescriptor;l.f=r?d:function(h,b){if(h=c(h),b=p(b,!0),m)try{return d(h,b)}catch{}if(v(h,b))return s(!o.f.call(h,b),h[b])}},"0cfb":function(a,l,t){var r=t("83ab"),o=t("d039"),s=t("cc12");a.exports=!r&&!o(function(){return Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a!=7})},"13d5":function(a,l,t){var r=t("23e7"),o=t("d58f").left,s=t("a640"),c=t("ae40"),p=s("reduce"),v=c("reduce",{1:0});r({target:"Array",proto:!0,forced:!p||!v},{reduce:function(d){return o(this,d,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(a,l,t){var r=t("c6b6"),o=t("9263");a.exports=function(s,c){var p=s.exec;if(typeof p=="function"){var v=p.call(s,c);if(typeof v!="object")throw TypeError("RegExp exec method returned something other than an Object or null");return v}if(r(s)!=="RegExp")throw TypeError("RegExp#exec called on incompatible receiver");return o.call(s,c)}},"159b":function(a,l,t){var r=t("da84"),o=t("fdbc"),s=t("17c2"),c=t("9112");for(var p in o){var v=r[p],m=v&&v.prototype;if(m&&m.forEach!==s)try{c(m,"forEach",s)}catch{m.forEach=s}}},"17c2":function(a,l,t){var r=t("b727").forEach,o=t("a640"),s=t("ae40"),c=o("forEach"),p=s("forEach");a.exports=!c||!p?function(m){return r(this,m,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(a,l,t){var r=t("d066");a.exports=r("document","documentElement")},"1c0b":function(a,l){a.exports=function(t){if(typeof t!="function")throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(a,l,t){var r=t("b622"),o=r("iterator"),s=!1;try{var c=0,p={next:function(){return{done:!!c++}},return:function(){s=!0}};p[o]=function(){return this},Array.from(p,function(){throw 2})}catch{}a.exports=function(v,m){if(!m&&!s)return!1;var d=!1;try{var g={};g[o]=function(){return{next:function(){return{done:d=!0}}}},v(g)}catch{}return d}},"1d80":function(a,l){a.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},"1dde":function(a,l,t){var r=t("d039"),o=t("b622"),s=t("2d00"),c=o("species");a.exports=function(p){return s>=51||!r(function(){var v=[],m=v.constructor={};return m[c]=function(){return{foo:1}},v[p](Boolean).foo!==1})}},"23cb":function(a,l,t){var r=t("a691"),o=Math.max,s=Math.min;a.exports=function(c,p){var v=r(c);return v<0?o(v+p,0):s(v,p)}},"23e7":function(a,l,t){var r=t("da84"),o=t("06cf").f,s=t("9112"),c=t("6eeb"),p=t("ce4e"),v=t("e893"),m=t("94ca");a.exports=function(d,g){var h=d.target,b=d.global,f=d.stat,x,S,C,O,P,D;if(b?S=r:f?S=r[h]||p(h,{}):S=(r[h]||{}).prototype,S)for(C in g){if(P=g[C],d.noTargetGet?(D=o(S,C),O=D&&D.value):O=S[C],x=m(b?C:h+(f?".":"#")+C,d.forced),!x&&O!==void 0){if(typeof P==typeof O)continue;v(P,O)}(d.sham||O&&O.sham)&&s(P,"sham",!0),c(S,C,P,d)}}},"241c":function(a,l,t){var r=t("ca84"),o=t("7839"),s=o.concat("length","prototype");l.f=Object.getOwnPropertyNames||function(p){return r(p,s)}},"25f0":function(a,l,t){var r=t("6eeb"),o=t("825a"),s=t("d039"),c=t("ad6d"),p="toString",v=RegExp.prototype,m=v[p],d=s(function(){return m.call({source:"a",flags:"b"})!="/a/b"}),g=m.name!=p;(d||g)&&r(RegExp.prototype,p,function(){var b=o(this),f=String(b.source),x=b.flags,S=String(x===void 0&&b instanceof RegExp&&!("flags"in v)?c.call(b):x);return"/"+f+"/"+S},{unsafe:!0})},"2ca0":function(a,l,t){var r=t("23e7"),o=t("06cf").f,s=t("50c4"),c=t("5a34"),p=t("1d80"),v=t("ab13"),m=t("c430"),d="".startsWith,g=Math.min,h=v("startsWith"),b=!m&&!h&&!!function(){var f=o(String.prototype,"startsWith");return f&&!f.writable}();r({target:"String",proto:!0,forced:!b&&!h},{startsWith:function(x){var S=String(p(this));c(x);var C=s(g(arguments.length>1?arguments[1]:void 0,S.length)),O=String(x);return d?d.call(S,O,C):S.slice(C,C+O.length)===O}})},"2d00":function(a,l,t){var r=t("da84"),o=t("342f"),s=r.process,c=s&&s.versions,p=c&&c.v8,v,m;p?(v=p.split("."),m=v[0]+v[1]):o&&(v=o.match(/Edge\/(\d+)/),(!v||v[1]>=74)&&(v=o.match(/Chrome\/(\d+)/),v&&(m=v[1]))),a.exports=m&&+m},"342f":function(a,l,t){var r=t("d066");a.exports=r("navigator","userAgent")||""},"35a1":function(a,l,t){var r=t("f5df"),o=t("3f8c"),s=t("b622"),c=s("iterator");a.exports=function(p){if(p!=null)return p[c]||p["@@iterator"]||o[r(p)]}},"37e8":function(a,l,t){var r=t("83ab"),o=t("9bf2"),s=t("825a"),c=t("df75");a.exports=r?Object.defineProperties:function(v,m){s(v);for(var d=c(m),g=d.length,h=0,b;g>h;)o.f(v,b=d[h++],m[b]);return v}},"3bbe":function(a,l,t){var r=t("861d");a.exports=function(o){if(!r(o)&&o!==null)throw TypeError("Can't set "+String(o)+" as a prototype");return o}},"3ca3":function(a,l,t){var r=t("6547").charAt,o=t("69f3"),s=t("7dd0"),c="String Iterator",p=o.set,v=o.getterFor(c);s(String,"String",function(m){p(this,{type:c,string:String(m),index:0})},function(){var d=v(this),g=d.string,h=d.index,b;return h>=g.length?{value:void 0,done:!0}:(b=r(g,h),d.index+=b.length,{value:b,done:!1})})},"3f8c":function(a,l){a.exports={}},4160:function(a,l,t){var r=t("23e7"),o=t("17c2");r({target:"Array",proto:!0,forced:[].forEach!=o},{forEach:o})},"428f":function(a,l,t){var r=t("da84");a.exports=r},"44ad":function(a,l,t){var r=t("d039"),o=t("c6b6"),s="".split;a.exports=r(function(){return!Object("z").propertyIsEnumerable(0)})?function(c){return o(c)=="String"?s.call(c,""):Object(c)}:Object},"44d2":function(a,l,t){var r=t("b622"),o=t("7c73"),s=t("9bf2"),c=r("unscopables"),p=Array.prototype;p[c]==null&&s.f(p,c,{configurable:!0,value:o(null)}),a.exports=function(v){p[c][v]=!0}},"44e7":function(a,l,t){var r=t("861d"),o=t("c6b6"),s=t("b622"),c=s("match");a.exports=function(p){var v;return r(p)&&((v=p[c])!==void 0?!!v:o(p)=="RegExp")}},4930:function(a,l,t){var r=t("d039");a.exports=!!Object.getOwnPropertySymbols&&!r(function(){return!String(Symbol())})},"4d64":function(a,l,t){var r=t("fc6a"),o=t("50c4"),s=t("23cb"),c=function(p){return function(v,m,d){var g=r(v),h=o(g.length),b=s(d,h),f;if(p&&m!=m){for(;h>b;)if(f=g[b++],f!=f)return!0}else for(;h>b;b++)if((p||b in g)&&g[b]===m)return p||b||0;return!p&&-1}};a.exports={includes:c(!0),indexOf:c(!1)}},"4de4":function(a,l,t){var r=t("23e7"),o=t("b727").filter,s=t("1dde"),c=t("ae40"),p=s("filter"),v=c("filter");r({target:"Array",proto:!0,forced:!p||!v},{filter:function(d){return o(this,d,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(a,l,t){var r=t("0366"),o=t("7b0b"),s=t("9bdd"),c=t("e95a"),p=t("50c4"),v=t("8418"),m=t("35a1");a.exports=function(g){var h=o(g),b=typeof this=="function"?this:Array,f=arguments.length,x=f>1?arguments[1]:void 0,S=x!==void 0,C=m(h),O=0,P,D,E,w,j,L;if(S&&(x=r(x,f>2?arguments[2]:void 0,2)),C!=null&&!(b==Array&&c(C)))for(w=C.call(h),j=w.next,D=new b;!(E=j.call(w)).done;O++)L=S?s(w,x,[E.value,O],!0):E.value,v(D,O,L);else for(P=p(h.length),D=new b(P);P>O;O++)L=S?x(h[O],O):h[O],v(D,O,L);return D.length=O,D}},"4fad":function(a,l,t){var r=t("23e7"),o=t("6f53").entries;r({target:"Object",stat:!0},{entries:function(c){return o(c)}})},"50c4":function(a,l,t){var r=t("a691"),o=Math.min;a.exports=function(s){return s>0?o(r(s),9007199254740991):0}},5135:function(a,l){var t={}.hasOwnProperty;a.exports=function(r,o){return t.call(r,o)}},5319:function(a,l,t){var r=t("d784"),o=t("825a"),s=t("7b0b"),c=t("50c4"),p=t("a691"),v=t("1d80"),m=t("8aa5"),d=t("14c3"),g=Math.max,h=Math.min,b=Math.floor,f=/\$([$&'`]|\d\d?|<[^>]*>)/g,x=/\$([$&'`]|\d\d?)/g,S=function(C){return C===void 0?C:String(C)};r("replace",2,function(C,O,P,D){var E=D.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,w=D.REPLACE_KEEPS_$0,j=E?"$":"$0";return[function(R,B){var U=v(this),V=R==null?void 0:R[C];return V!==void 0?V.call(R,U,B):O.call(String(U),R,B)},function(N,R){if(!E&&w||typeof R=="string"&&R.indexOf(j)===-1){var B=P(O,N,this,R);if(B.done)return B.value}var U=o(N),V=String(this),k=typeof R=="function";k||(R=String(R));var G=U.global;if(G){var de=U.unicode;U.lastIndex=0}for(var ce=[];;){var le=d(U,V);if(le===null||(ce.push(le),!G))break;var Se=String(le[0]);Se===""&&(U.lastIndex=m(V,c(U.lastIndex),de))}for(var Z="",me=0,ve=0;ve=me&&(Z+=V.slice(me,je)+Ae,me=je+ge.length)}return Z+V.slice(me)}];function L(N,R,B,U,V,k){var G=B+N.length,de=U.length,ce=x;return V!==void 0&&(V=s(V),ce=f),O.call(k,ce,function(le,Se){var Z;switch(Se.charAt(0)){case"$":return"$";case"&":return N;case"`":return R.slice(0,B);case"'":return R.slice(G);case"<":Z=V[Se.slice(1,-1)];break;default:var me=+Se;if(me===0)return le;if(me>de){var ve=b(me/10);return ve===0?le:ve<=de?U[ve-1]===void 0?Se.charAt(1):U[ve-1]+Se.charAt(1):le}Z=U[me-1]}return Z===void 0?"":Z})}})},5692:function(a,l,t){var r=t("c430"),o=t("c6cd");(a.exports=function(s,c){return o[s]||(o[s]=c!==void 0?c:{})})("versions",[]).push({version:"3.6.5",mode:r?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(a,l,t){var r=t("d066"),o=t("241c"),s=t("7418"),c=t("825a");a.exports=r("Reflect","ownKeys")||function(v){var m=o.f(c(v)),d=s.f;return d?m.concat(d(v)):m}},"5a34":function(a,l,t){var r=t("44e7");a.exports=function(o){if(r(o))throw TypeError("The method doesn't accept regular expressions");return o}},"5c6c":function(a,l){a.exports=function(t,r){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:r}}},"5db7":function(a,l,t){var r=t("23e7"),o=t("a2bf"),s=t("7b0b"),c=t("50c4"),p=t("1c0b"),v=t("65f0");r({target:"Array",proto:!0},{flatMap:function(d){var g=s(this),h=c(g.length),b;return p(d),b=v(g,0),b.length=o(b,g,g,h,0,1,d,arguments.length>1?arguments[1]:void 0),b}})},6547:function(a,l,t){var r=t("a691"),o=t("1d80"),s=function(c){return function(p,v){var m=String(o(p)),d=r(v),g=m.length,h,b;return d<0||d>=g?c?"":void 0:(h=m.charCodeAt(d),h<55296||h>56319||d+1===g||(b=m.charCodeAt(d+1))<56320||b>57343?c?m.charAt(d):h:c?m.slice(d,d+2):(h-55296<<10)+(b-56320)+65536)}};a.exports={codeAt:s(!1),charAt:s(!0)}},"65f0":function(a,l,t){var r=t("861d"),o=t("e8b5"),s=t("b622"),c=s("species");a.exports=function(p,v){var m;return o(p)&&(m=p.constructor,typeof m=="function"&&(m===Array||o(m.prototype))?m=void 0:r(m)&&(m=m[c],m===null&&(m=void 0))),new(m===void 0?Array:m)(v===0?0:v)}},"69f3":function(a,l,t){var r=t("7f9a"),o=t("da84"),s=t("861d"),c=t("9112"),p=t("5135"),v=t("f772"),m=t("d012"),d=o.WeakMap,g,h,b,f=function(E){return b(E)?h(E):g(E,{})},x=function(E){return function(w){var j;if(!s(w)||(j=h(w)).type!==E)throw TypeError("Incompatible receiver, "+E+" required");return j}};if(r){var S=new d,C=S.get,O=S.has,P=S.set;g=function(E,w){return P.call(S,E,w),w},h=function(E){return C.call(S,E)||{}},b=function(E){return O.call(S,E)}}else{var D=v("state");m[D]=!0,g=function(E,w){return c(E,D,w),w},h=function(E){return p(E,D)?E[D]:{}},b=function(E){return p(E,D)}}a.exports={set:g,get:h,has:b,enforce:f,getterFor:x}},"6eeb":function(a,l,t){var r=t("da84"),o=t("9112"),s=t("5135"),c=t("ce4e"),p=t("8925"),v=t("69f3"),m=v.get,d=v.enforce,g=String(String).split("String");(a.exports=function(h,b,f,x){var S=x?!!x.unsafe:!1,C=x?!!x.enumerable:!1,O=x?!!x.noTargetGet:!1;if(typeof f=="function"&&(typeof b=="string"&&!s(f,"name")&&o(f,"name",b),d(f).source=g.join(typeof b=="string"?b:"")),h===r){C?h[b]=f:c(b,f);return}else S?!O&&h[b]&&(C=!0):delete h[b];C?h[b]=f:o(h,b,f)})(Function.prototype,"toString",function(){return typeof this=="function"&&m(this).source||p(this)})},"6f53":function(a,l,t){var r=t("83ab"),o=t("df75"),s=t("fc6a"),c=t("d1e7").f,p=function(v){return function(m){for(var d=s(m),g=o(d),h=g.length,b=0,f=[],x;h>b;)x=g[b++],(!r||c.call(d,x))&&f.push(v?[x,d[x]]:d[x]);return f}};a.exports={entries:p(!0),values:p(!1)}},"73d9":function(a,l,t){var r=t("44d2");r("flatMap")},7418:function(a,l){l.f=Object.getOwnPropertySymbols},"746f":function(a,l,t){var r=t("428f"),o=t("5135"),s=t("e538"),c=t("9bf2").f;a.exports=function(p){var v=r.Symbol||(r.Symbol={});o(v,p)||c(v,p,{value:s.f(p)})}},7839:function(a,l){a.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(a,l,t){var r=t("1d80");a.exports=function(o){return Object(r(o))}},"7c73":function(a,l,t){var r=t("825a"),o=t("37e8"),s=t("7839"),c=t("d012"),p=t("1be4"),v=t("cc12"),m=t("f772"),d=">",g="<",h="prototype",b="script",f=m("IE_PROTO"),x=function(){},S=function(E){return g+b+d+E+g+"/"+b+d},C=function(E){E.write(S("")),E.close();var w=E.parentWindow.Object;return E=null,w},O=function(){var E=v("iframe"),w="java"+b+":",j;return E.style.display="none",p.appendChild(E),E.src=String(w),j=E.contentWindow.document,j.open(),j.write(S("document.F=Object")),j.close(),j.F},P,D=function(){try{P=document.domain&&new ActiveXObject("htmlfile")}catch{}D=P?C(P):O();for(var E=s.length;E--;)delete D[h][s[E]];return D()};c[f]=!0,a.exports=Object.create||function(w,j){var L;return w!==null?(x[h]=r(w),L=new x,x[h]=null,L[f]=w):L=D(),j===void 0?L:o(L,j)}},"7dd0":function(a,l,t){var r=t("23e7"),o=t("9ed3"),s=t("e163"),c=t("d2bb"),p=t("d44e"),v=t("9112"),m=t("6eeb"),d=t("b622"),g=t("c430"),h=t("3f8c"),b=t("ae93"),f=b.IteratorPrototype,x=b.BUGGY_SAFARI_ITERATORS,S=d("iterator"),C="keys",O="values",P="entries",D=function(){return this};a.exports=function(E,w,j,L,N,R,B){o(j,w,L);var U=function(ve){if(ve===N&&ce)return ce;if(!x&&ve in G)return G[ve];switch(ve){case C:return function(){return new j(this,ve)};case O:return function(){return new j(this,ve)};case P:return function(){return new j(this,ve)}}return function(){return new j(this)}},V=w+" Iterator",k=!1,G=E.prototype,de=G[S]||G["@@iterator"]||N&&G[N],ce=!x&&de||U(N),le=w=="Array"&&G.entries||de,Se,Z,me;if(le&&(Se=s(le.call(new E)),f!==Object.prototype&&Se.next&&(!g&&s(Se)!==f&&(c?c(Se,f):typeof Se[S]!="function"&&v(Se,S,D)),p(Se,V,!0,!0),g&&(h[V]=D))),N==O&&de&&de.name!==O&&(k=!0,ce=function(){return de.call(this)}),(!g||B)&&G[S]!==ce&&v(G,S,ce),h[w]=ce,N)if(Z={values:U(O),keys:R?ce:U(C),entries:U(P)},B)for(me in Z)(x||k||!(me in G))&&m(G,me,Z[me]);else r({target:w,proto:!0,forced:x||k},Z);return Z}},"7f9a":function(a,l,t){var r=t("da84"),o=t("8925"),s=r.WeakMap;a.exports=typeof s=="function"&&/native code/.test(o(s))},"825a":function(a,l,t){var r=t("861d");a.exports=function(o){if(!r(o))throw TypeError(String(o)+" is not an object");return o}},"83ab":function(a,l,t){var r=t("d039");a.exports=!r(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},8418:function(a,l,t){var r=t("c04e"),o=t("9bf2"),s=t("5c6c");a.exports=function(c,p,v){var m=r(p);m in c?o.f(c,m,s(0,v)):c[m]=v}},"861d":function(a,l){a.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},8875:function(a,l,t){var r,o,s;(function(c,p){o=[],r=p,s=typeof r=="function"?r.apply(l,o):r,s!==void 0&&(a.exports=s)})(typeof self<"u"?self:this,function(){function c(){var p=Object.getOwnPropertyDescriptor(document,"currentScript");if(!p&&"currentScript"in document&&document.currentScript||p&&p.get!==c&&document.currentScript)return document.currentScript;try{throw new Error}catch(P){var v=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,m=/@([^@]*):(\d+):(\d+)\s*$/ig,d=v.exec(P.stack)||m.exec(P.stack),g=d&&d[1]||!1,h=d&&d[2]||!1,b=document.location.href.replace(document.location.hash,""),f,x,S,C=document.getElementsByTagName("script");g===b&&(f=document.documentElement.outerHTML,x=new RegExp("(?:[^\\n]+?\\n){0,"+(h-2)+"}[^<]*
+