diff --git a/README.md b/README.md
index 34744b2..36496fd 100644
--- a/README.md
+++ b/README.md
@@ -220,7 +220,7 @@ Ersetzungen bieten die Möglichkeit, Werte innerhalb von Element-Definitionen zu
|`state-ts::%d(time)`|2023-12-17 17:53:32|17:53:32|abhängig vom Sprachschema|
|`state-ts::%d(date)`|2023-12-17 17:53:32|17.12.2023|abhängig vom Sprachschema|
|`state-ts::%d({ "weekday"\: "long" })`|2023-12-17 17:53:32|Sonntag|abhängig vom Sprachschema|
-|`state-ts::%d({ "diff"\: { "days"\: true, "hours"\: true, "minutes"\: true, "seconds"\: true, "daysSuffix"\: " Tag(e) ", "hoursSuffix"\: "\:", "minutesSuffix"\: "\:", "secondsSuffix"\: " " } })`||10 Tag(e) 8:07:34|auf korrekte JSON Notation achten und zusätzlich Doppelpunkte escapen|
+|`state-ts::%d({ "diff"\: { "days"\: "nozero", "hours"\: "numeric", "minutes"\: true, "seconds"\: true, "daysSuffix"\: " Tag(e) ", "hoursSuffix"\: "\:", "minutesSuffix"\: "\:", "secondsSuffix"\: " " } })`||10 Tag(e) 8:07:34|auf korrekte JSON Notation achten und Doppelpunkte escapen|
|`state::%t(%s)`|on|an|wenn unter [Sprachen](#sprachen) für die Variable `on` im deutschen Sprachschema `an` hinterlegt wurde|
|`state::%r(%s,_, )`|alle_offen|alle offen|ersetzt alle Unterstriche durch Leerzeichen|
|`temp::Temperatur\: %n(1)°C`|18.7|Temperatur: 18,7°C|
@@ -241,8 +241,6 @@ Für jede Vorlage muss mindestens ein *devicekey* festgelegt werden.
|key|eindeutiger Schlüssel, der für Element-Definitionen an Stelle von festen FHEM-Devicenamen verwendet werden soll|
|description|kurze Beschreibung des jeweiligen FHEM Devicetypen|
-
-
### Element devices
Liste der FHEM-Devices, die mit dem Panel verknüpft sind. Es muss mindestens ein FHEM-Device mit einem Panel verknüpft werden. (siehe auch [neues Panel erstellen](#neues-panel-erstellen))
@@ -663,8 +661,24 @@ Das Navigationsmenü von **FHEMApp** kann individuell angepasst werden. So ist e
Die alternativen Beschriftungen können somit auch für die Erstellung mehrsprachiger Instanzen von **FHEMApp** verwendet werden. Hierbei kann die Ersetzung `%t(...)` (siehe auch [Ersetzungen](#ersetzungen)) eingesetzt werden.
+Für jeden Navigationspunkt können weitere Optionen festgelegt werden.
+- untergeordnete Navigationspunkte in **kompakter Darstellung**
+- alphabetische **Sortierung** untergeordneter Navigationspunkte
+- **Trennlinie** unterhalb des Navigationspunktes
+- Anzahl der **Spalten** für die Anzeige der Panels unter dem Navigationspunkt
+
+|Device|Code|Range|Spalten (Default)|
+|---|---|---|---|
+|Extra small|xs|<660px|1|
+|Small|sm|600px - 960px|2|
+|Medium|md|960px - 1264px|2|
+|Large|lg|1264px - 1904px|3|
+|Exra large|xl|1904px - 2560px|3|
+|Extra wide|xxl|>2560px|4|
+
![](./docs/media/example_settings_5.png)
*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. (siehe auch [Farbschema](#farbschema))
diff --git a/public/CHANGELOG.md b/public/CHANGELOG.md
index 0ddc034..e4631bd 100644
--- a/public/CHANGELOG.md
+++ b/public/CHANGELOG.md
@@ -1,3 +1,10 @@
+# v4.5.0 (08.12.2024)
+## Core
+- new settings for parameter diff into replacer %d (nozero and numeric)
+## Panels
+- Panels are displayed without gaps if they are of different heights
+## Slider
+- Bugfix for setting Height of vertical slider
# v4.4.1 (17.11.2024)
## Core
- bugfix for replacer %d
diff --git a/src/components/PanelMainSlider.vue b/src/components/PanelMainSlider.vue
index d3d4fd0..4c52323 100644
--- a/src/components/PanelMainSlider.vue
+++ b/src/components/PanelMainSlider.vue
@@ -11,6 +11,10 @@
const fhem = useFhemStore()
+ const sliderHeight = ref(props.height + (/px/.test(props.height) ? '' : 'px'))
+
+ console.log(props.height)
+
const sliderVal = ref()
function setSliderVal(val) {
@@ -60,11 +64,17 @@
hide-details
thumb-label
@update:modelValue="doCmd($event)"
- >
+ class="py-2">
{{ modelValue }}
-
\ No newline at end of file
+
+
+
diff --git a/src/components/SettingsNavigation.vue b/src/components/SettingsNavigation.vue
index a12eb89..ebfdb52 100644
--- a/src/components/SettingsNavigation.vue
+++ b/src/components/SettingsNavigation.vue
@@ -8,6 +8,15 @@
const { mobile } = useDisplay()
const preLang = '_app.settings.navigation.'
+ const colDefs = [
+ { name: "xs", label: "xs", placeholder: "1" },
+ { name: "sm", label: "sm", placeholder: "2" },
+ { name: "md", label: "md", placeholder: "2" },
+ { name: "lg", label: "lg", placeholder: "3" },
+ { name: "xl", label: "xl", placeholder: "3" },
+ { name: "xxl", label: "xxl", placeholder: "4" }
+ ]
+
const newItem = ref({
name: '',
title: '',
@@ -15,7 +24,13 @@
group: [],
groupAsChips: false,
sort: false,
- divider: false
+ divider: false,
+ xxl: null,
+ xl: null,
+ lg: null,
+ md: null,
+ sm: null,
+ xs: null
})
const items = ref(fhem.app.config.navigation)
@@ -59,7 +74,13 @@
group: [],
groupAsChips: false,
sort: false,
- divider: false
+ divider: false,
+ xxl: null,
+ xl: null,
+ lg: null,
+ md: null,
+ sm: null,
+ xs: null
}
}
@@ -176,6 +197,22 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/locales/de.json b/src/locales/de.json
index f4419e4..3a7d702 100644
--- a/src/locales/de.json
+++ b/src/locales/de.json
@@ -55,7 +55,9 @@
"optionsSortTitle": "Sortierung",
"optionsSort": "Sortiert untergeordnete Navigationspunkte aufsteigend",
"optionsDividerTitle": "Trennlinie",
- "optionsDivider": "Zeigt eine Trennlinie unterhalb des Navigationspunktes"
+ "optionsDivider": "Zeigt eine Trennlinie unterhalb des Navigationspunktes",
+ "optionsRowsTitle": "Spalten",
+ "optionsRows": "Legt die Anzahl der Spalten für Panels abhängig vom Display fest"
},
"props": {
"panel": "Allgemein",
diff --git a/src/locales/en.json b/src/locales/en.json
index 070708d..258b03f 100644
--- a/src/locales/en.json
+++ b/src/locales/en.json
@@ -55,7 +55,9 @@
"optionsSortTitle": "Sorting",
"optionsSort": "Sorts subordinate navigation items in ascending order",
"optionsDividerTitle": "Divider",
- "optionsDivider": "Shows a dividing line below the navigation point"
+ "optionsDivider": "Shows a dividing line below the navigation point",
+ "optionsRowsTitle": "Columns",
+ "optionsRows": "Defines the number of columns for panels depending on the display"
},
"props": {
"panel": "General",
diff --git a/src/stores/fhem.js b/src/stores/fhem.js
index e85f22b..07dc803 100644
--- a/src/stores/fhem.js
+++ b/src/stores/fhem.js
@@ -2,11 +2,12 @@ import { reactive } from 'vue'
import { defineStore, storeToRefs } from 'pinia'
import router from '@/router'
import { useI18n } from 'vue-i18n'
-import { useTheme } from 'vuetify'
+import { useTheme, useDisplay } from 'vuetify'
export const useFhemStore = defineStore('fhem', () => {
const i18n = useI18n()
const theme = useTheme()
+ const display = useDisplay()
const app = reactive({
settings: {
@@ -43,7 +44,7 @@ export const useFhemStore = defineStore('fhem', () => {
showSettings: false,
commands: [],
darkModeOverFhem: null,
- defaultRoute: null
+ defaultRoute: null
},
fhemDevice: null,
panelView: [],
@@ -68,6 +69,8 @@ export const useFhemStore = defineStore('fhem', () => {
noConfig: false,
isLoaded: false,
isReady: false,
+ display: display.name,
+ viewCols: { xxl: 4, xl: 3, lg: 3, md: 2, sm: 2, xs: 1 },
message: false,
currentView: null,
settingsTab: null,
@@ -805,7 +808,12 @@ export const useFhemStore = defineStore('fhem', () => {
let diffHours = options.hours ? Math.floor(diffMs / (1000 * 60 * 60)) - (diffDays * 24) : 0
let diffMinutes = options.minutes ? Math.floor(diffMs / (1000 * 60)) - (diffDays * 24 * 60) - (diffHours * 60) : 0
let diffSeconds = options.seconds ? Math.floor(diffMs / 1000) - (diffDays * 24 * 60 * 60) - (diffHours * 60 * 60) - (diffMinutes * 60): 0
-
+
+ let showDay = /nozero/.test(options.days) ? false : true
+ let showHour = /nozero/.test(options.hours) ? false : true
+ let showMinute = /nozero/.test(options.minutes) ? false : true
+ let showSecond = /nozero/.test(options.seconds) ? false : true
+
if(/%t\(.*\)/.test(options.daysSuffix)) {
parts = /%t\(.*\)/.exec(options.daysSuffix)
options.daysSuffix.replace(parts[0], i18n.t(parts[0].slice(3, -1)))
@@ -826,10 +834,14 @@ export const useFhemStore = defineStore('fhem', () => {
options.secondsSuffix.replace(parts[0], i18n.t(parts[0].slice(3, -1)))
}
- if(options.days && diffDays > 0) res.push(diffDays, options.daysSuffix || ' Tag(e) ')
- if(options.hours) res.push(diffHours, options.hoursSuffix || ' Stunde(n) ')
- if(options.minutes) res.push(options.hoursSuffix === ':' && diffMinutes < 10 ? 0 : '', diffMinutes, options.minutesSuffix || ' Minute(n) ')
- if(options.seconds) res.push(options.minutesSuffix === ':' && diffSeconds < 10 ? 0 : '', diffSeconds, options.secondsSuffix || ' Sekunde(n) ')
+ if(!/numeric/.test(options.hours)) diffHours = (diffHours < 10 ? '0' : '') + diffHours
+ if(!/numeric/.test(options.minutes)) diffMinutes = (options.hoursSuffix === ':' && diffMinutes < 10 ? '0' : '') + diffMinutes
+ if(!/numeric/.test(options.seconds)) diffSeconds = (options.minutesSuffix === ':' && diffSeconds < 10 ? '0' : '') + diffSeconds
+
+ if(options.days && showDay) res.push(diffDays, options.daysSuffix || ' Tag(e) ')
+ if(options.hours && showHour) res.push(diffHours, options.hoursSuffix || ' Stunde(n) ')
+ if(options.minutes && showMinute) res.push(diffMinutes, options.minutesSuffix || ' Minute(n) ')
+ if(options.seconds && showSecond) res.push(diffSeconds, options.secondsSuffix || ' Sekunde(n) ')
return res.join('').trim()
}
diff --git a/src/views/DevicesView.vue b/src/views/DevicesView.vue
index 6b58ee2..3621eb3 100644
--- a/src/views/DevicesView.vue
+++ b/src/views/DevicesView.vue
@@ -7,39 +7,62 @@
const fhem = useFhemStore()
const view = computed(() => {
- let res = []
+ let items = [],
+ res = {},
+ colIdx = 1
if(fhem.app.panelMaximized) {
- res.push(fhem.app.panelMaximized)
+ items.push(fhem.app.panelMaximized)
} else {
for(const idx of fhem.app.panelView) {
- if(fhem.handleDefs(fhem.app.panelList[idx].panel.show, ['show'], [true]).show) res.push(fhem.app.panelList[idx])
+ if(fhem.handleDefs(fhem.app.panelList[idx].panel.show, ['show'], [true]).show) items.push(fhem.app.panelList[idx])
}
- res.sort((a,b) => (s(a) > s(b)) ? 1 : ((s(b) > s(a)) ? -1 : 0))
+ items.sort((a,b) => (s(a) > s(b)) ? 1 : ((s(b) > s(a)) ? -1 : 0))
+ }
+
+ for(const item of items) {
+ if(!res[colIdx]) res[colIdx] = []
+ res[colIdx].push(item)
+ colIdx = colIdx === cols.value ? 1 : colIdx + 1
}
return res
})
const cols = computed(() => {
- let res = { cols: 12, sm: 6, lg: 4 }
+ return getCols(fhem.app.currentView, fhem.app.navigation) || fhem.app.viewCols[fhem.app.display]
+ })
- if(/=maximized$/.test(fhem.app.currentView)) res = { cols: 12 }
+ function getCols(route, navObj) {
+ if(/=maximized$/.test(route)) return 1
+
+ let path = route.split('->'),
+ item = { name: path[0] },
+ idx = navObj.map((e) => e.name).indexOf(item.name),
+ res
- return res
- })
+ if(idx !== -1) Object.assign(item, navObj[idx])
+ if(path.length > 1) res = getCols(path.slice(1).join('->'), item.group || [])
+
+ if(idx !== -1 && !res) res = item[fhem.app.display]
+
+ return parseInt(res)
+ }
function s(obj) {
return fhem.handleDefs(obj.panel.sortby, ['sortby'], [null]).sortby || '999'
}
-
-
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/www/fhemapp4/CHANGELOG.md b/www/fhemapp4/CHANGELOG.md
index 0ddc034..e4631bd 100644
--- a/www/fhemapp4/CHANGELOG.md
+++ b/www/fhemapp4/CHANGELOG.md
@@ -1,3 +1,10 @@
+# v4.5.0 (08.12.2024)
+## Core
+- new settings for parameter diff into replacer %d (nozero and numeric)
+## Panels
+- Panels are displayed without gaps if they are of different heights
+## Slider
+- Bugfix for setting Height of vertical slider
# v4.4.1 (17.11.2024)
## Core
- bugfix for replacer %d
diff --git a/www/fhemapp4/assets/DevicesView-10FLdF9e.js b/www/fhemapp4/assets/DevicesView-10FLdF9e.js
deleted file mode 100644
index 005f15e..0000000
--- a/www/fhemapp4/assets/DevicesView-10FLdF9e.js
+++ /dev/null
@@ -1 +0,0 @@
-import{u as f,c,o as n,a as p,w as u,b as d,r as h,d as i,e as v,F as w}from"./index-DltbBIbk.js";import{_ as x}from"./PanelCard-CD8gYScP.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=i("v-col"),_=i("v-row");return n(),p(_,{"no-gutters":""},{default:u(()=>[(n(!0),d(w,null,h(m.value,r=>(n(),p(o,{cols:l.value.cols,sm:l.value.sm,lg:l.value.lg,key:r.name,class:"pa-1"},{default:u(()=>[v(x,{panel:r},null,8,["panel"])]),_:2},1032,["cols","sm","lg"]))),128))]),_:1})}}};export{V as default};
diff --git a/www/fhemapp4/assets/DevicesView-FJHLHjVE.js b/www/fhemapp4/assets/DevicesView-FJHLHjVE.js
new file mode 100644
index 0000000..cafc0d9
--- /dev/null
+++ b/www/fhemapp4/assets/DevicesView-FJHLHjVE.js
@@ -0,0 +1 @@
+import{u as y,c as f,o as p,a as u,w as i,b as _,r as d,d as h,e as w,F as v}from"./index-BajJpuha.js";import{_ as k}from"./PanelCard-CL21y_Aa.js";const z={__name:"DevicesView",setup(C){const a=y(),x=f(()=>{let s=[],o={},t=1;if(a.app.panelMaximized)s.push(a.app.panelMaximized);else{for(const e of a.app.panelView)a.handleDefs(a.app.panelList[e].panel.show,["show"],[!0]).show&&s.push(a.app.panelList[e]);s.sort((e,n)=>l(e)>l(n)?1:l(n)>l(e)?-1:0)}for(const e of s)o[t]||(o[t]=[]),o[t].push(e),t=t===c.value?1:t+1;return o}),c=f(()=>m(a.app.currentView,a.app.navigation)||a.app.viewCols[a.app.display]);function m(s,o){if(/=maximized$/.test(s))return 1;let t=s.split("->"),e={name:t[0]},n=o.map(g=>g.name).indexOf(e.name),r;return n!==-1&&Object.assign(e,o[n]),t.length>1&&(r=m(t.slice(1).join("->"),e.group||[])),n!==-1&&!r&&(r=e[a.app.display]),parseInt(r)}function l(s){return a.handleDefs(s.panel.sortby,["sortby"],[null]).sortby||"999"}return(s,o)=>{const t=h("v-col"),e=h("v-row");return p(),u(e,{"no-gutters":""},{default:i(()=>[(p(!0),_(v,null,d(c.value,n=>(p(),u(t,{key:n},{default:i(()=>[w(e,{"no-gutters":""},{default:i(()=>[(p(!0),_(v,null,d(x.value[n],r=>(p(),u(t,{cols:"12",key:r.name,class:"pa-1"},{default:i(()=>[w(k,{panel:r},null,8,["panel"])]),_:2},1024))),128))]),_:2},1024)]),_:2},1024))),128))]),_:1})}}};export{z as default};
diff --git a/www/fhemapp4/assets/InternalsView-WC1MhjLC.js b/www/fhemapp4/assets/InternalsView-DCrve5NC.js
similarity index 90%
rename from www/fhemapp4/assets/InternalsView-WC1MhjLC.js
rename to www/fhemapp4/assets/InternalsView-DCrve5NC.js
index 6420adf..61e9713 100644
--- a/www/fhemapp4/assets/InternalsView-WC1MhjLC.js
+++ b/www/fhemapp4/assets/InternalsView-DCrve5NC.js
@@ -1 +1 @@
-import{u as y,S as C}from"./index-DQaEtFZA.js";import{aW as V,u as S,o as B,a as N,w as o,e as t,d as e,O as p,bb as i,aw as O,bk as c}from"./index-DltbBIbk.js";const z={__name:"InternalsView",setup($){const n=V(!0),a=S(),{toClipboard:u}=y();function d(){u(JSON.stringify(n.value?a.app.config:a.app,null," "))}return(l,r)=>{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"),w=e("v-row"),h=e("v-divider"),k=e("v-card-text"),x=e("v-card");return B(),N(x,null,{default:o(()=>[t(v,null,{default:o(()=>[t(m,null,{default:o(()=>[p(i(l.$t("_app.internals.title")),1)]),_:1})]),_:1}),t(k,null,{default:o(()=>[t(w,{"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":r[0]||(r[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,O(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(h,{class:"pb-3"}),t(c(C),{data:n.value?c(a).app.config:c(a).app,deep:1,showLine:!1,showIcon:!0,showLength:!0},null,8,["data"])]),_:1})]),_:1})}}};export{z as default};
+import{u as y,S as C}from"./index-Cyz760UL.js";import{aW as V,u as S,o as B,a as N,w as o,e as t,d as e,O as p,bb as i,aw as O,bk as c}from"./index-BajJpuha.js";const z={__name:"InternalsView",setup($){const n=V(!0),a=S(),{toClipboard:u}=y();function d(){u(JSON.stringify(n.value?a.app.config:a.app,null," "))}return(l,r)=>{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"),w=e("v-row"),h=e("v-divider"),k=e("v-card-text"),x=e("v-card");return B(),N(x,null,{default:o(()=>[t(v,null,{default:o(()=>[t(m,null,{default:o(()=>[p(i(l.$t("_app.internals.title")),1)]),_:1})]),_:1}),t(k,null,{default:o(()=>[t(w,{"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":r[0]||(r[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,O(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(h,{class:"pb-3"}),t(c(C),{data:n.value?c(a).app.config:c(a).app,deep:1,showLine:!1,showIcon:!0,showLength:!0},null,8,["data"])]),_:1})]),_:1})}}};export{z as default};
diff --git a/www/fhemapp4/assets/PanelCard-B2FL1pdY.css b/www/fhemapp4/assets/PanelCard-B2FL1pdY.css
new file mode 100644
index 0000000..2959478
--- /dev/null
+++ b/www/fhemapp4/assets/PanelCard-B2FL1pdY.css
@@ -0,0 +1 @@
+input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,input::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none;margin:0}input{-moz-appearance:textfield}.v-slider.v-input--vertical>.v-input__control{min-height:var(--6b1f07f5)}.rcp,.rcp *,.rcp *:before{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;border-radius:50%}.rcp,.rcp__knob,.rcp__ripple,.rcp__well{aspect-ratio:1}.rcp{display:flex;align-items:center;justify-content:center;width:280px;position:relative;transform:scale(1.001);transition:transform .15s cubic-bezier(.68,0,.47,2)}.rcp:focus{outline:0}.rcp:hover .rcp__knob{box-shadow:0 0 20px #00000030,0 0 10px #0000003d}.rcp[aria-expanded=false]{pointer-events:none}.rcp[aria-expanded=false] .rcp__well{pointer-events:auto}.rcp:active:focus{transform:scale(1.04)}.rcp[aria-disabled=true]{cursor:not-allowed;transform:scale(.96)}.rcp__palette{position:absolute;top:0;right:0;bottom:0;left:0;background-size:100% 100%;background-image:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 53.5%,black 54%);mask-image:radial-gradient(circle at 50% 50%,transparent 53.5%,black 54%);will-change:transform,opacity;transition:transform .5s cubic-bezier(.35,0,.25,1),opacity .5s cubic-bezier(.35,0,.25,1);transform:scale(1);opacity:1}.rcp[aria-expanded=false] .rcp__palette{transform:scale(0);opacity:0}.rcp[aria-disabled=true] .rcp__palette{filter:contrast(.25)}.rcp__rotator{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(var(--rcp-initial-angle))}.rcp__knob{box-shadow:0 0 10px #0000001f,0 0 5px #00000029;width:7%;margin-top:2.5%;margin-inline:auto;background-color:#fff;transition:transform .4s cubic-bezier(.35,0,.25,1);outline:0;border-style:none}.rcp__knob.in{transform:scale(1)}.rcp__knob.out{transform:scale(0)}.rcp[aria-disabled=true] .rcp__knob{box-shadow:none;pointer-events:none}.rcp__well{width:25%;padding:0;margin:0;background-color:red;outline:0;cursor:pointer;border:1px solid #b2b2b2;z-index:1;position:relative}.rcp__well:before{content:"";position:absolute;display:block;top:0;right:0;bottom:0;left:0;border:6px solid #fff}.rcp__well::-moz-focus-inner{border:0}.rcp:focus-visible .rcp__knob,.rcp__well:focus-visible{box-shadow:0 0 0 2px #a0aec099}.rcp__well:hover{border-color:#6b7280}.rcp__well.pressed{animation:rcp-beat .4s cubic-bezier(.35,0,.25,1) forwards}.rcp[aria-disabled=true] .rcp__well{background-color:#bfbfbf!important;pointer-events:none}.rcp__ripple{width:20%;opacity:1;position:absolute;border:8px solid #ff0000}.rcp__ripple.rippling{animation:rcp-ripple .5s cubic-bezier(.35,0,.25,1) forwards}@keyframes rcp-ripple{0%{transform:scale(1);opacity:.3}50%{opacity:.1}to{opacity:0;border-width:0;transform:scale(3.8)}}@keyframes rcp-beat{0%{transform:scale(1)}25%{transform:scale(.8)}50%{transform:scale(1)}to{transform:scale(1)}}
diff --git a/www/fhemapp4/assets/PanelCard-B4Xxjv8u.css b/www/fhemapp4/assets/PanelCard-B4Xxjv8u.css
deleted file mode 100644
index 78dc9b7..0000000
--- a/www/fhemapp4/assets/PanelCard-B4Xxjv8u.css
+++ /dev/null
@@ -1 +0,0 @@
-input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,input::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none;margin:0}input{-moz-appearance:textfield}.rcp,.rcp *,.rcp *:before{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;border-radius:50%}.rcp,.rcp__knob,.rcp__ripple,.rcp__well{aspect-ratio:1}.rcp{display:flex;align-items:center;justify-content:center;width:280px;position:relative;transform:scale(1.001);transition:transform .15s cubic-bezier(.68,0,.47,2)}.rcp:focus{outline:0}.rcp:hover .rcp__knob{box-shadow:0 0 20px #00000030,0 0 10px #0000003d}.rcp[aria-expanded=false]{pointer-events:none}.rcp[aria-expanded=false] .rcp__well{pointer-events:auto}.rcp:active:focus{transform:scale(1.04)}.rcp[aria-disabled=true]{cursor:not-allowed;transform:scale(.96)}.rcp__palette{position:absolute;top:0;right:0;bottom:0;left:0;background-size:100% 100%;background-image:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red);-webkit-mask-image:radial-gradient(circle at 50% 50%,transparent 53.5%,black 54%);mask-image:radial-gradient(circle at 50% 50%,transparent 53.5%,black 54%);will-change:transform,opacity;transition:transform .5s cubic-bezier(.35,0,.25,1),opacity .5s cubic-bezier(.35,0,.25,1);transform:scale(1);opacity:1}.rcp[aria-expanded=false] .rcp__palette{transform:scale(0);opacity:0}.rcp[aria-disabled=true] .rcp__palette{filter:contrast(.25)}.rcp__rotator{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(var(--rcp-initial-angle))}.rcp__knob{box-shadow:0 0 10px #0000001f,0 0 5px #00000029;width:7%;margin-top:2.5%;margin-inline:auto;background-color:#fff;transition:transform .4s cubic-bezier(.35,0,.25,1);outline:0;border-style:none}.rcp__knob.in{transform:scale(1)}.rcp__knob.out{transform:scale(0)}.rcp[aria-disabled=true] .rcp__knob{box-shadow:none;pointer-events:none}.rcp__well{width:25%;padding:0;margin:0;background-color:red;outline:0;cursor:pointer;border:1px solid #b2b2b2;z-index:1;position:relative}.rcp__well:before{content:"";position:absolute;display:block;top:0;right:0;bottom:0;left:0;border:6px solid #fff}.rcp__well::-moz-focus-inner{border:0}.rcp:focus-visible .rcp__knob,.rcp__well:focus-visible{box-shadow:0 0 0 2px #a0aec099}.rcp__well:hover{border-color:#6b7280}.rcp__well.pressed{animation:rcp-beat .4s cubic-bezier(.35,0,.25,1) forwards}.rcp[aria-disabled=true] .rcp__well{background-color:#bfbfbf!important;pointer-events:none}.rcp__ripple{width:20%;opacity:1;position:absolute;border:8px solid #ff0000}.rcp__ripple.rippling{animation:rcp-ripple .5s cubic-bezier(.35,0,.25,1) forwards}@keyframes rcp-ripple{0%{transform:scale(1);opacity:.3}50%{opacity:.1}to{opacity:0;border-width:0;transform:scale(3.8)}}@keyframes rcp-beat{0%{transform:scale(1)}25%{transform:scale(.8)}50%{transform:scale(1)}to{transform:scale(1)}}
diff --git a/www/fhemapp4/assets/PanelCard-CD8gYScP.js b/www/fhemapp4/assets/PanelCard-CD8gYScP.js
deleted file mode 100644
index f853c20..0000000
--- a/www/fhemapp4/assets/PanelCard-CD8gYScP.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import{u as q,c as C,o as p,b as P,ay as N,bb as j,A as O,a as L,w as y,O as J,d as _,G as Q,F as Y,e as w,bR as ne,aW as H,bE as ae,r as he,aw as le,U as je,aa as Ce,b7 as de,bg as Fe,ap as Ie,bk as Z,ak as ve,a5 as Ue,bS as He,ax as Ne,bF as Oe,bT as $e,aH as Me,aD as Ve,bU as qe,bP as We,bQ as Be,aA as me,bd as Ke,bL as Je,a$ as Ge}from"./index-DltbBIbk.js";const Ze={__name:"PanelMainInfo",props:{el:Object,iconmap:Array,devices:Object,height:String},setup(e){const t=e,n=q(),l=C(()=>n.handleDefs(t.el.text,["text","format"],["",!t.el.text2&&!t.el.text3&&!t.el.icon?"text-h6":"text-caption"])),s=C(()=>n.handleDefs(t.el.text2,["text","format"],["",t.el.text&&!t.el.text3&&!t.el.icon?"text-h6":"text-caption"])),r=C(()=>n.handleDefs(t.el.text3,["text","format"],["","text-caption"])),u=C(()=>{let o=n.handleDefs(t.el.icon,["icon","color","size"],["","","x-large"]);return o.icon&&(o.icon=n.getIcon(o.icon,t.iconmap)),o}),i=C(()=>{let o=n.handleDefs(t.el.status,["level","color","min","max","reverse","linear"],[0,"success",0,100,!1,!1]);return o.level=Math.round((o.level-o.min)/(o.max-o.min)*100),o.reverse=!!o.reverse,o});return(o,a)=>{const d=_("v-icon"),v=_("v-progress-circular"),x=_("v-progress-linear");return p(),P(Y,null,[e.el.text?(p(),P("div",{key:0,class:N(l.value.format)},j(l.value.text),3)):O("",!0),e.el.icon?(p(),L(d,{key:1,color:u.value.color,size:u.value.size},{default:y(()=>[J(j(u.value.icon),1)]),_:1},8,["color","size"])):O("",!0),e.el.status&&!i.value.linear?(p(),L(v,{key:2,width:"4",modelValue:i.value.level,"onUpdate:modelValue":a[0]||(a[0]=S=>i.value.level=S),color:i.value.color,reverse:i.value.reverse},null,8,["modelValue","color","reverse"])):O("",!0),e.el.status&&i.value.linear?(p(),L(x,{key:3,height:"7",rounded:"",modelValue:i.value.level,"onUpdate:modelValue":a[1]||(a[1]=S=>i.value.level=S),color:i.value.color,reverse:i.value.reverse},null,8,["modelValue","color","reverse"])):O("",!0),Q("div",{class:N(e.el.text2?s.value.format:r.value.format)},[e.el.text2?(p(),P("span",{key:0,class:N(s.value.format)},j(s.value.text),3)):O("",!0),e.el.text3?(p(),P("span",{key:1,class:N(r.value.format)},j(r.value.text),3)):O("",!0)],2)],64)}}},Qe={__name:"PanelMainBtn",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=C(()=>{let o=n.handleDefs(t.el.btn,["icon","disabled","color","variant"],["",!1,"","text"]);return o.icon&&(o.icon=n.getIcon(o.icon,t.iconmap)),o}),s=C(()=>{let o=n.handleDefs(t.el.status,["level","color","min","max","reverse"],[0,"success",0,100,!1]);return o.level=Math.round((o.level-o.min)/(o.max-o.min)*100),o.reverse=!!o.reverse,o}),r={timer:!1,long:!1};function u(o){let a=[];if(o.cmd){if(o.type==="cmd"){a=o.cmd.split(";");for(const[d]of Object.entries(a))for(const v of t.devices)a[d]=a[d].replace(" "+v.split(":")[0]+" "," "+v.split(":")[1]+" ");n.request("text",a.join(";"))}o.type==="route"&&ne.push({name:"devices",params:{view:o.cmd},query:ne.currentRoute.value.query}),o.type==="url"&&window.open(o.cmd,"_self")}}function i(o){let a=n.handleDefs(t.el.click,["cmd","type"],["","cmd"],!1,null,!0),d=n.handleDefs(t.el.longClick,["cmd","type"],["","cmd"],!1,null,!0),v=n.handleDefs(t.el.longRelease,["cmd","type"],["","cmd"],!1,null,!0),x="ontouchstart"in document;(!x&&o==="mouseStart"||o==="touchStart")&&(r.timer=setTimeout(()=>{r.long=!0,d.cmd&&u(d)},1e3)),(!x&&o==="mouseEnd"||o==="touchEnd")&&(r.long?v.cmd&&u(v):a.cmd&&u(a),clearTimeout(r.timer),r.long=!1)}return(o,a)=>{const d=_("v-progress-linear"),v=_("v-icon"),x=_("v-btn");return p(),P(Y,null,[e.el.status?(p(),L(d,{key:0,height:"4",modelValue:s.value.level,"onUpdate:modelValue":a[0]||(a[0]=S=>s.value.level=S),color:s.value.color,reverse:s.value.reverse},null,8,["modelValue","color","reverse"])):O("",!0),w(x,{icon:"",variant:l.value.variant,disabled:l.value.disabled,color:l.value.color,onMousedown:a[1]||(a[1]=S=>i("mouseStart")),onTouchstart:a[2]||(a[2]=S=>i("touchStart")),onMouseup:a[3]||(a[3]=S=>i("mouseEnd")),onTouchend:a[4]||(a[4]=S=>i("touchEnd")),class:"my-2"},{default:y(()=>[w(v,{size:"large"},{default:y(()=>[J(j(l.value.icon),1)]),_:1})]),_:1},8,["variant","disabled","color"])],64)}}},Ye={__name:"PanelMainInput",props:{el:Object,iconmap:Array,devices:Object,height:String},setup(e){const t=e,n=q(),l=H({value:null,changed:!1}),s=C(()=>{let u=n.handleDefs(t.el.textfield,["cmd","current","label","placeholder","type","icon","color"],["","","","","text","mdi-send","success"]);return l.value.value=u.current,u});function r(){let u=s.value.cmd;u=n.replacer(u,l.value.value),u=u.replace("%v",l.value.value);for(const i of t.devices)u=u.replace(" "+i.split(":")[0]+" "," "+i.split(":")[1]+" ");n.request("text",u),l.value.changed=!1}return(u,i)=>{const o=_("v-btn"),a=_("v-text-field");return p(),L(a,{modelValue:l.value.value,"onUpdate:modelValue":i[1]||(i[1]=d=>l.value.value=d),label:s.value.label,placeholder:s.value.placeholder,variant:"outlined",density:"compact",type:s.value.type,"hide-details":"",class:"mx-3",onInput:i[2]||(i[2]=d=>l.value.changed=!0)},{append:y(()=>[w(o,{icon:s.value.icon,color:l.value.changed?s.value.color:"",disabled:!l.value.changed,density:"compact",variant:"plain",onClick:i[0]||(i[0]=d=>r())},null,8,["icon","color","disabled"])]),_:1},8,["modelValue","label","placeholder","type"])}}},Xe={class:"text-white"},et={__name:"PanelMainSlider",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=H();function s(o){l.value=o}const r=C(()=>{let o=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(o.current)&&(o.current=o.current.replace("%v",l.value)),s(o.current),o});let u=null;function i(o){let a=r.value.cmd,d=/\./.exec(r.value.steps),v=0;d&&(v=r.value.steps.slice(d.index).length-1),a=a.replace("%v",o.toFixed(v));for(const x of t.devices)a=a.replace(" "+x.split(":")[0]+" "," "+x.split(":")[1]+" ");clearTimeout(u),u=setTimeout(()=>{n.request("text",a)},500)}return(o,a)=>{const d=_("v-slider");return p(),L(d,{modelValue:l.value,"onUpdate:modelValue":[a[0]||(a[0]=v=>l.value=v),a[1]||(a[1]=v=>i(v))],min:r.value.min,max:r.value.max,step:r.value.steps,reverse:r.value.reverse,direction:r.value.vertical?"vertical":"horizontal","track-size":r.value.size,color:r.value.color,"hide-details":"","thumb-label":""},{"thumb-label":y(({modelValue:v})=>[Q("div",Xe,j(v),1)]),_:1},8,["modelValue","min","max","step","reverse","direction","track-size","color"])}}},tt={__name:"PanelMainImage",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=H(!1),s=C(()=>n.handleDefs(t.el.image,["source","height"],["","auto"])),r=C(()=>({height:/=maximized$/.test(n.app.currentView)?window.innerHeight-170:s.value.height||t.height}));return(u,i)=>{const o=_("v-skeleton-loader"),a=_("v-img");return p(),P(Y,null,[l.value?O("",!0):(p(),L(o,{key:0,type:"image"})),w(a,{src:s.value.source,height:r.value.height,onLoad:i[0]||(i[0]=d=>l.value=!0)},null,8,["src","height"])],64)}}},nt=["src","width","height"],at={__name:"PanelMainIframe",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=H(),s=C(()=>({source:n.handleDefs(t.el.iframe,["source"],[""]).source,width:l.value&&l.value.scrollWidth?l.value.scrollWidth:0,height:/=maximized$/.test(n.app.currentView)?window.innerHeight-170:t.height}));return(r,u)=>(p(),P("div",{ref_key:"extContent",ref:l},[Q("iframe",{src:s.value.source,width:s.value.width,height:s.value.height,loading:"lazy",style:{border:"none"}},null,8,nt)],512))}},lt={__name:"PanelMainMenu",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=H([]);ae(t.el,i=>{r()});const s=C(()=>{let i=n.handleDefs(t.el.btn,["icon","disabled","color","variant"],["mdi-dots-vertical",!1,"","text"]);return i.icon&&(i.icon=n.getIcon(i.icon,t.iconmap)),i});async function r(){let i=n.handleDefs(t.el.menu,["name","cmd","convert"],["","",null],!0,","),o,a,d;l.value=[];for(const v of i){o=/^get/.test(v.name)?await u(v.name):v.name;for(const x of[",","|",`
-`])RegExp(x).test(o)&&(a=x);for(const x of o.split(a))x&&(d=x,/%v/.test(v.cmd)&&v.convert==="regExp"&&(d=RegExp(x.replace(/[^a-z,^A-Z]/g,"."))),l.value.push({name:x.replace("_"," "),cmd:v.cmd.replace(/%v/g,d)}))}}async function u(i){let o=[];o=i.split(";");for(const[a]of Object.entries(o))for(const d of t.devices)o[a]=o[a].replace(" "+d.split(":")[0]+" "," "+d.split(":")[1]+" ");return n.request("text",o.join(";"))}return r(),(i,o)=>{const a=_("v-icon"),d=_("v-btn"),v=_("v-list-item-title"),x=_("v-list-item"),S=_("v-list"),h=_("v-menu");return p(),L(h,null,{activator:y(({props:f})=>[w(d,le(f,{icon:"",variant:s.value.variant,disabled:s.value.disabled||l.value.length<1,color:s.value.color,class:"my-2"}),{default:y(()=>[w(a,{size:"large"},{default:y(()=>[J(j(s.value.icon),1)]),_:1})]),_:2},1040,["variant","disabled","color"])]),default:y(()=>[w(S,null,{default:y(()=>[(p(!0),P(Y,null,he(l.value,(f,m)=>(p(),L(x,{key:m,value:m,onClick:c=>u(f.cmd)},{default:y(()=>[w(v,null,{default:y(()=>[J(j(f.name),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})}}};var xe=null;function it(e){return xe||(xe=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),xe(e)}var be=null;function ot(e){be||(be=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),be(e)}function rt(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 fe(e,t){t===void 0&&(t={});var n=document.createElement(e);return Object.keys(t).forEach(function(l){n[l]=t[l]}),n}function Te(e,t,n){var l=window.getComputedStyle(e,null)||{display:"none"};return l[t]}function we(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if(Te(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var st='.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%}',ze=0,_e=null;function ut(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=vt.bind(e));var n=e.__resize_listeners__;if(!n){if(e.__resize_listeners__=[],window.ResizeObserver){var l=e.offsetWidth,s=e.offsetHeight,r=new ResizeObserver(function(){!e.__resize_observer_triggered__&&(e.__resize_observer_triggered__=!0,e.offsetWidth===l&&e.offsetHeight===s)||ge(e)}),u=we(e),i=u.detached,o=u.rendered;e.__resize_observer_triggered__=i===!1&&o===!1,e.__resize_observer__=r,r.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){ge(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(ze||(_e=rt(st)),ft(e),e.__resize_rendered__=we(e).rendered,window.MutationObserver){var a=new MutationObserver(e.__resize_mutation_handler__);a.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=a}}e.__resize_listeners__.push(t),ze++}function ct(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",ke),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--ze&&_e&&_e.parentNode.removeChild(_e)}}function dt(e){var t=e.__resize_last__,n=t.width,l=t.height,s=e.offsetWidth,r=e.offsetHeight;return s!==n||r!==l?{width:s,height:r}:null}function vt(){var e=we(this),t=e.rendered,n=e.detached;t!==this.__resize_rendered__&&(!n&&this.__resize_triggers__&&(Se(this),this.addEventListener("scroll",ke,!0)),this.__resize_rendered__=t,ge(this))}function ke(){var e=this;Se(this),this.__resize_raf__&&ot(this.__resize_raf__),this.__resize_raf__=it(function(){var t=dt(e);t&&(e.__resize_last__=t,ge(e))})}function ge(e){!e||!e.__resize_listeners__||e.__resize_listeners__.forEach(function(t){t.call(e,e)})}function ft(e){var t=Te(e,"position");(!t||t==="static")&&(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};var n=fe("div",{className:"resize-triggers"}),l=fe("div",{className:"resize-expand-trigger"}),s=fe("div"),r=fe("div",{className:"resize-contract-trigger"});l.appendChild(s),n.appendChild(l),n.appendChild(r),e.appendChild(n),e.__resize_triggers__={triggers:n,expand:l,expandChild:s,contract:r},Se(e),e.addEventListener("scroll",ke,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function Se(e){var t=e.__resize_triggers__,n=t.expand,l=t.expandChild,s=t.contract,r=s.scrollWidth,u=s.scrollHeight,i=n.offsetWidth,o=n.offsetHeight,a=n.scrollWidth,d=n.scrollHeight;s.scrollLeft=r,s.scrollTop=u,l.style.width=i+1+"px",l.style.height=o+1+"px",n.scrollLeft=a,n.scrollTop=d}var K=function(){return K=Object.assign||function(e){for(var t,n=1,l=arguments.length;n"u"||typeof customElements>"u")return oe=!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);
-}
-`)(Pe)}catch{return oe=!1}return oe=!0}(),yt="ecTheme",wt="ecInitOptions",zt="ecUpdateOptions",Le=/(^&?~?!?)native:/,kt=je({name:"echarts",props:K(K({option:Object,theme:{type:[Object,String]},initOptions:Object,updateOptions:Object,group:String,manualUpdate:Boolean},_t),xt),emits:{},inheritAttrs:!1,setup:function(e,t){var n=t.attrs,l=de(),s=de(),r=de(),u=de(),i=ve(yt,null),o=ve(wt,null),a=ve(zt,null),d=Fe(e),v=d.autoresize,x=d.manualUpdate,S=d.loading,h=d.loadingOptions,f=C(function(){return u.value||e.option||null}),m=C(function(){return e.theme||pe(i,{})}),c=C(function(){return e.initOptions||pe(o,{})}),A=C(function(){return e.updateOptions||pe(a,{})}),g=C(function(){return function(D){var k={};for(var V in D)Ee(V)||(k[V]=D[V]);return k}(n)}),T={},E=Ue().proxy.$listeners,M={};function b(D){if(s.value){var k=r.value=He(s.value,m.value,c.value);e.group&&(k.group=e.group),Object.keys(M).forEach(function(F){var I=M[F];if(I){var U=F.toLowerCase();U.charAt(0)==="~"&&(U=U.substring(1),I.__once__=!0);var ee=k;if(U.indexOf("zr:")===0&&(ee=k.getZr(),U=U.substring(3)),I.__once__){delete I.__once__;var X=I;I=function(){for(var te=[],B=0;B(S(),"height: "+(/=maximized$/.test(n.app.currentView)?window.innerHeight-250+"px":t.height)));function d(h){return r.d(h,{dateStyle:s.value?"short":"long"})}function v(h,f){let m;return i.value.from&&f&&(m=i.value.from),i.value.to&&!f&&(m=i.value.to),!m&&!isNaN(h)&&(m=(c=>new Date(c.setDate(c.getDate()+(Number(h)||0))))(new Date)),m||(m=new Date(/.*T.*/.test(h)?h:h+"T00:00:00")),!i.value.from&&f&&(i.value.from=m),!i.value.to&&!f&&(i.value.to=m),m=new Date(m.getTime()-m.getTimezoneOffset()*60*1e3),m.toISOString().split("T")[0]}async function x(){let h=n.handleDefs(t.el.serie,["data","name","digits","suffix","type"],[null,"",0,"","line"],!0),f,m,c=[],A,g,T,E,M,b=[];if(h.length>0)for(const z of h){if(/^get.*/.test(z.data)){M="time",f=z.data.split(" ");for(const R of t.devices)R.split(":")[0]===f[1]&&(f[1]=R.split(":")[1]);if(f[4]=v(f[4],!0),f[5]=v(f[5],!1),m=await n.request("text",f.join(" ")),E=[],c=m.split(`
-`),c.length>0)for(const R of c)A=R.split(" "),A.length>1&&(g=new Date(A[0].replace("_","T")),T=parseFloat(A[1]).toFixed(z.digits),E.push([g,T]))}else/^\[.*\]/.test(z.data)?E=n.stringToJson(z.data):E=[n.replacer("%n("+z.digits+")",z.data,!0)];b.push({xAxisType:M,type:z.type,name:z.name,digits:z.digits,suffix:z.suffix,data:E})}return b}async function S(){let h={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:{}},f=JSON.parse(JSON.stringify(n.getEl(t.el,["options"])||{})),m=JSON.parse(JSON.stringify(n.getEl(t.el,["options2"])||{})),c=Object.assign(h,/=maximized$/.test(n.app.currentView)&&Object.keys(m).length>0?m:f),A;i.value.fromMenu=!1,i.value.toMenu=!1,i.value.loaded=!1,o=await x();for(const[g,T]of Object.entries(o))A={formatter:E=>E.toLocaleString(r.locale.value,{minimumFractionDigits:T.digits,maximumFractionDigits:T.digits})+T.suffix},c.series[g]||(c.series[g]={}),c.yAxis[g]||(c.yAxis[g]={}),c.legend.data||(c.legend.data=[]),c.xAxis.type||(c.xAxis.type=T.xAxisType),c.yAxis[g].type||(c.yAxis[g].type="value"),c.yAxis[g].axisLabel||(c.yAxis[g].axisLabel={}),c.yAxis[g].axisLabel.formatter||(c.yAxis[g].axisLabel.formatter=A.formatter),c.legend.data[g]||(c.legend.data[g]=T.name),c.series[g].name||(c.series[g].name=T.name),c.series[g].type||(c.series[g].type=T.type),c.series[g].data||(c.series[g].data=T.data),c.series[g].detail||(c.series[g].detail={}),c.series[g].detail.formatter||(c.series[g].detail.formatter=A.formatter),c.series[g].tooltip||(c.series[g].tooltip={}),c.series[g].tooltip.valueFormatter||(c.series[g].tooltip.valueFormatter=A.formatter);n.log(7,"Chartdata chart.loaded.",c),u.value=Object.assign({},c),i.value.loaded=!0}return(h,f)=>{const m=_("v-btn"),c=_("v-date-picker"),A=_("v-locale-provider"),g=_("v-menu"),T=_("v-skeleton-loader");return p(),P(Y,null,[/=maximized$/.test(Z(n).app.currentView)?(p(),P("div",St,[w(g,{modelValue:i.value.fromMenu,"onUpdate:modelValue":f[2]||(f[2]=E=>i.value.fromMenu=E),"close-on-content-click":!1},{activator:y(({props:E})=>[w(m,le(E,{variant:"outlined","append-icon":"mdi-calendar",class:"mr-2"}),{default:y(()=>[J(j(d(i.value.from)),1)]),_:2},1040)]),default:y(()=>[w(A,{locale:Z(r).locale.value},{default:y(()=>[w(c,{modelValue:i.value.from,"onUpdate:modelValue":[f[0]||(f[0]=E=>i.value.from=E),f[1]||(f[1]=E=>S())],color:"secondary"},null,8,["modelValue"])]),_:1},8,["locale"])]),_:1},8,["modelValue"]),f[6]||(f[6]=J(" - ")),w(g,{modelValue:i.value.toMenu,"onUpdate:modelValue":f[5]||(f[5]=E=>i.value.toMenu=E),"close-on-content-click":!1},{activator:y(({props:E})=>[w(m,le(E,{variant:"outlined","append-icon":"mdi-calendar",class:"ml-2"}),{default:y(()=>[J(j(d(i.value.to)),1)]),_:2},1040)]),default:y(()=>[w(A,{locale:Z(r).locale.value},{default:y(()=>[w(c,{modelValue:i.value.to,"onUpdate:modelValue":[f[3]||(f[3]=E=>i.value.to=E),f[4]||(f[4]=E=>S())],color:"secondary"},null,8,["modelValue"])]),_:1},8,["locale"])]),_:1},8,["modelValue"])])):O("",!0),Q("div",{style:me(a.value)},[i.value.loaded?O("",!0):(p(),L(T,{key:0,type:"text, image, text"})),i.value.loaded?(p(),L(Z(kt),{key:1,option:u.value,theme:Z(l).global.name.value==="dark"?"dark":"light",autoresize:""},null,8,["option","theme"])):O("",!0)],4)],64)}}},Ot=180/Math.PI,Ae=e=>{const t=e%360;return t<0?360+t:t},Et=({x:e,y:t},n)=>{const l=n.left+n.width/2,s=n.top+n.height/2;return Math.atan2(t-s,e-l)*Ot},ye=()=>{};class Dt{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=Ae(t),this.updateCSS())}initOptions(t){t=t||{},this.onRotate=t.onRotate||ye,this.onDragStart=t.onDragStart||ye,this.onDragStop=t.onDragStop||ye,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,l=Et({x:n.clientX,y:n.clientY},this.element.getBoundingClientRect());this._angle=Ae(l+90),this.updateCSS(),this.onRotate(this._angle)}updateCSS(){this.element.style.transform="rotate("+this._angle+"deg)"}}const Lt=(e,t)=>{const n=e.__vccOpts||e;for(const[l,s]of t)n[l]=s;return n},At=["red","yellow","green","cyan","blue","magenta","red"],Re={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},Rt={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}){H(null);const n=H(null);let l=null;const s=e.hue+"deg",r=H(e.hue),u=H(!e.initiallyCollapsed),i=H(!e.initiallyCollapsed),o=H(!1),a=H(!1),d=C(()=>`hsla(${r.value}, ${e.saturation}%, ${e.luminosity}%, ${e.alpha})`),v=C(()=>At[Math.round(r.value/60)]);return ae(()=>e.hue,c=>{r.value=c,l.angle=c}),Me(()=>{l=new Dt(n.value,{angle:r.value,onRotate(c){r.value=c,t("input",r.value)},onDragStop(){t("change",r.value)}})}),Ve(()=>{l.destroy(),l=null}),{rcp:l,rotator:n,initialAngle:s,angle:r,isPaletteIn:u,isKnobIn:i,isRippling:a,isPressed:o,color:d,valuetext:v,onKeyDown:c=>{e.disabled||o.value||!i.value||!(c.key in Re)||(c.preventDefault(),l.angle=Re[c.key](l.angle,e.step),r.value=l.angle,t("input",r.value),t("change",r.value))},onScroll:c=>{o.value||!i.value||(c.preventDefault(),c.deltaY>0?l.angle+=e.step:l.angle-=e.step,r.value=l.angle,t("input",r.value),t("change",r.value))},selectColor:()=>{o.value=!0,u.value&&i.value?(t("select",r.value),a.value=!0):u.value=!0},togglePicker:()=>{e.variant!=="persistent"&&(i.value?i.value=!1:(i.value=!0,u.value=!0)),a.value=!1,o.value=!1},hidePalette:()=>{i.value||(u.value=!1)}}}},Mt=["aria-roledescription","aria-label","aria-expanded","aria-valuenow","aria-valuetext","aria-disabled","tabindex"],Vt=Q("div",{class:"rcp__palette"},null,-1),Tt=["aria-label","disabled","tabindex"];function Pt(e,t,n,l,s,r){return p(),P("div",{role:"slider","aria-roledescription":n.ariaRoledescription,"aria-label":n.ariaLabel,"aria-expanded":l.isPaletteIn,"aria-valuemin":"0","aria-valuemax":"359","aria-valuenow":l.angle,"aria-valuetext":n.ariaValuetext||l.valuetext,"aria-disabled":n.disabled,class:"rcp",tabindex:n.disabled?-1:0,style:me({"--rcp-initial-angle":l.initialAngle}),onKeyup:t[3]||(t[3]=Je((...u)=>l.selectColor&&l.selectColor(...u),["enter"])),onKeydown:t[4]||(t[4]=(...u)=>l.onKeyDown&&l.onKeyDown(...u))},[Vt,Q("div",le({class:"rcp__rotator",style:{"pointer-events":n.disabled||l.isPressed||!l.isKnobIn?"none":null}},Ke(n.mouseScroll?{wheel:l.onScroll}:{},!0),{ref:"rotator"}),[Q("div",{class:N(["rcp__knob",l.isKnobIn?"in":"out"]),onTransitionend:t[0]||(t[0]=(...u)=>l.hidePalette&&l.hidePalette(...u))},null,34)],16),Q("div",{class:N(["rcp__ripple",{rippling:l.isRippling}]),style:me({borderColor:l.color})},null,6),Q("button",{type:"button",class:N(["rcp__well",{pressed:l.isPressed}]),"aria-label":n.ariaLabelColorWell,disabled:n.disabled,tabindex:n.disabled?-1:0,style:me({backgroundColor:l.color}),onAnimationend:t[1]||(t[1]=(...u)=>l.togglePicker&&l.togglePicker(...u)),onClick:t[2]||(t[2]=(...u)=>l.selectColor&&l.selectColor(...u))},null,46,Tt)],44,Mt)}const jt=Lt(Rt,[["render",Pt]]),Ft={__name:"PanelMainColorpicker",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=C(()=>n.handleDefs(t.el.picker,["cmd","current","type"],["",!1,"hex"]));function s(a){let d={hue:0,saturation:100,luminosity:50};return a.type==="hex"&&(d=i(a.current)),a.type==="hue"&&(d.hue=a.current||0),d}function r(a){let d=u(a,100,50),v=l.value.cmd.replace("%v",l.value.type==="hex"?d:Math.round(a));for(const x of t.devices)v=v.replace(" "+x.split(":")[0]+" "," "+x.split(":")[1]+" ");n.request("text",v)}function u(a,d,v){v/=100;const x=d*Math.min(v,1-v)/100,S=h=>{const f=(h+a/30)%12,m=v-x*Math.max(Math.min(f-3,9-f,1),-1);return Math.round(255*m).toString(16).padStart(2,"0")};return`${S(0)}${S(8)}${S(4)}`}function i(a){a&&a.split(" ").length>1&&(a=a.split(" ").slice(-1)[0]),a=a?a.replace(/^#/,""):0;let d=parseInt(a,16),v=d>>16&255,x=d>>8&255,S=d&255;v/=255,x/=255,S/=255;let h=Math.max(v,x,S),f=Math.min(v,x,S),m=h-f,c=(h+f)/2,A=0,g=0;return m!==0&&(h===v?A=((x-S)/m+(x{const v=_("v-spacer"),x=_("v-col"),S=_("v-row");return p(),L(S,null,{default:y(()=>[w(v),w(x,{class:"ma-4"},{default:y(()=>[w(Z(jt),le(s(l.value),{variant:"persistent",onChange:d[0]||(d[0]=h=>r(h)),style:o()}),null,16,["style"])]),_:1}),w(v)]),_:1})}}},It={__name:"PanelMain",props:{main:Object,levels:Array,iconmap:Object,devices:Object},setup(e){const t=q();function n(i,o){return t.handleDefs(i[o].size,["size"],[!1]).size}function l(i){let o="";return["info"].indexOf(i)!==-1&&(o="mx-2"),o}function s(i,o){return i[o]?t.handleDefs(i[o].divider,["show"],[!1]).show:!1}function r(i){return i.level?t.handleDefs(i.level.height,["height"],["64px"]).height:"64px"}function u(i){if(i==="info")return Ze;if(i==="btn")return Qe;if(i==="input")return Ye;if(i==="slider")return et;if(i==="image")return tt;if(i==="iframe")return at;if(i==="menu")return lt;if(i==="chart")return Ct;if(i==="colorpicker")return Ft}return(i,o)=>{const a=_("v-sheet"),d=_("v-col"),v=_("v-divider"),x=_("v-row"),S=_("v-expand-transition");return p(!0),P(Y,null,he(e.main,(h,f)=>(p(),L(S,{key:f},{default:y(()=>[e.levels.indexOf(f)!==-1?(p(),L(x,{key:0,"no-gutters":"",class:"text-center align-center"},{default:y(()=>[w(a,{height:r(h,"level")},null,8,["height"]),(p(),P(Y,null,he(["left1","left2","mid","right1","right2"],m=>(p(),P(Y,{key:m},[h.level[m]?(p(),L(d,{key:0,cols:n(h,m),class:N(l(h.level[m]))},{default:y(()=>[(p(),L(Ge(u(h.level[m])),{el:h[m],iconmap:e.iconmap,devices:e.devices,height:r(h,"level")},null,8,["el","iconmap","devices","height"]))]),_:2},1032,["cols","class"])):O("",!0),s(h,m)?(p(),L(v,{key:1,vertical:""})):O("",!0)],64))),64)),s(h,"level")?(p(),L(v,{key:0})):O("",!0)]),_:2},1024)):O("",!0)]),_:2},1024))),128)}}},Ut={key:0},$t={__name:"PanelCard",props:{panel:Object},setup(e){const t=e,n=q();function l(M){let b=n.handleDefs(t.panel.status[M],["level","color","min","max","reverse"],[0,"success",0,100,!1]);return b.level=Math.round((b.level-b.min)/(b.max-b.min)*100),b}const s=C(()=>l("bar")),r=C(()=>l("bar2")),u=C(()=>n.handleDefs(t.panel.status.imageUrl,["url"],[""])),i=C(()=>n.handleDefs(t.panel.panel.sortby,["sortby"],[null])),o=C(()=>n.handleDefs(t.panel.status.title,["title"],[""])),a=H({panel:{expandable:!1,expanded:!1,maximizable:!1},expandable:!1,expanded:!1,maximizable:!1,activeLevels:[],icon:"",isClick:!1}),d=C(()=>{let M,b,z={},R=[],W=[],D=[],k=[];z=n.handleDefs(t.panel.panel.expandable,["expandable","expanded","maximizable"],[!1,!1,!1]);for(const[V,F]of Object.entries(t.panel.main))b=n.handleDefs(F.level.show,["show","expanded","collapsed"],[!0,!0,V==="0"]),b.show&&(R.push(Number(V)),b.expanded&&W.push(Number(V)),b.collapsed&&D.push(Number(V)));return z.expandable!==a.value.panel.expandable&&(a.value.panel.expandable=z.expandable,a.value.expandable=z.expandable),z.expanded!==a.value.panel.expanded&&(a.value.panel.expanded=z.expanded,a.value.expanded=z.expanded),z.maximizable!==a.value.panel.maximizable&&(a.value.panel.maximizable=z.maximizable,a.value.maximizable=z.maximizable),/=maximized$/.test(n.app.currentView)&&(a.value.expanded=!0),!a.value.expanded&&R.indexOf(a.value.activeLevels[0])==-1&&(a.value.activeLevels=[R[0]]),a.value.isClick&&(a.value.expandable?a.value.expanded=!a.value.expanded:(M=R.indexOf(a.value.activeLevels[0]),a.value.activeLevels=[R[M+1]>=0?R[M+1]:R[0]]),a.value.maximizable&&(a.value.expanded?ne.push({name:"devices",params:{view:"panel="+t.panel.name+"=maximized"},query:ne.currentRoute.value.query}):(n.app.currentView=n.app.currentView.replace(/=maximized$/,""),ne.back())),a.value.isClick=!1),a.value.expanded?a.value.activeLevels=W:(a.value.expandable||a.value.activeLevels.length===0)&&(a.value.activeLevels=D),!a.value.expandable&&!a.value.expanded?a.value.icon=R.length>1?"mdi-swap-vertical":"":!a.value.maximizable&&R.length<2?a.icon="":a.value.icon=a.value.expandable?a.value.expanded?"mdi-arrow-collapse":"mdi-arrow-expand":"",k=a.value.activeLevels,k});function v(M){let b=n.app.config.panels.map(W=>W.name).indexOf(M),z,R;if(b!==-1&&(R=n.app.config.panels[b].template,z=n.app.config.templates.map(W=>W.name).indexOf(R),z!==-1&&!n.app.config.templates[z].dist))return R}function x(M,b){ne.push({name:"settings",params:{tab:b,item:M},query:ne.currentRoute.value.query})}function S(M){window.open(n.createURL("?detail="+M),"_self")}function h(M){let b=n.handleDefs(t.panel.info[M],["text","icon","color"],["","",""]);return b.icon&&(b.icon=n.getIcon(b.icon,t.panel.panel.iconmap)),b}function f(M){let b=["left1","left2","mid1","mid2","right1","right2"],z=h(M);return h(b[b.indexOf(M)-1]).text&&z.text&&!z.icon?"ml-1 text-truncate":z.text?"text-truncate":""}const m=C(()=>h("left1")),c=C(()=>h("left2")),A=C(()=>h("mid1")),g=C(()=>h("mid2")),T=C(()=>h("right1")),E=C(()=>h("right2"));return(M,b)=>{const z=_("v-progress-linear"),R=_("v-col"),W=_("v-row"),D=_("v-toolbar-title"),k=_("v-btn"),V=_("v-list-item"),F=_("v-divider"),I=_("v-list"),U=_("v-menu"),ee=_("v-toolbar"),X=_("v-img"),te=_("v-sheet"),B=_("v-card-text"),G=_("v-icon"),ie=_("v-spacer"),se=_("v-system-bar"),ue=_("v-layout"),ce=_("v-card");return p(),L(ce,{variant:"tonal"},{default:y(()=>[w(W,{"no-gutters":""},{default:y(()=>[e.panel.status.bar?(p(),L(R,{key:0},{default:y(()=>[w(z,{height:"7",modelValue:s.value.level,"onUpdate:modelValue":b[0]||(b[0]=$=>s.value.level=$),color:s.value.color,reverse:s.value.reverse},null,8,["modelValue","color","reverse"])]),_:1})):O("",!0),e.panel.status.bar2?(p(),L(R,{key:1},{default:y(()=>[w(z,{height:"7",modelValue:r.value.level,"onUpdate:modelValue":b[1]||(b[1]=$=>r.value.level=$),color:r.value.color,reverse:r.value.reverse},null,8,["modelValue","color","reverse"])]),_:1})):O("",!0)]),_:1}),w(te,{color:"primary"},{default:y(()=>[w(X,{src:u.value.url,gradient:u.value.url?Z(n).app.header.imageGradient:"",height:"48",cover:""},{default:y(()=>[w(ee,{color:"transparent",density:"compact",class:"pr-1"},{append:y(()=>[Z(n).app.settings.loglevel>6?(p(),P("div",Ut,[J(j(i.value.sortby)+" ",1),w(U,null,{activator:y(({props:$})=>[w(k,le({icon:"mdi-dots-vertical",density:"compact"},$),null,16)]),default:y(()=>[w(I,{density:"compact"},{default:y(()=>[v(e.panel.name)?(p(),L(V,{key:"template",title:"Template","prepend-icon":"mdi-application-edit-outline",onClick:b[2]||(b[2]=$=>x(v(e.panel.name),"templates"))})):O("",!0),w(V,{key:"panel",title:"Panel","prepend-icon":"mdi-pencil",onClick:b[3]||(b[3]=$=>x(e.panel.name,"panels"))}),w(F),(p(!0),P(Y,null,he(e.panel.panel.devices,$=>(p(),L(V,{key:$.split(":")[0],title:$.split(":")[1],"prepend-icon":"mdi-link",onClick:Ht=>S($.split(":")[1])},null,8,["title","onClick"]))),128))]),_:1})]),_:1})])):O("",!0),a.value.icon?(p(),L(k,{key:1,icon:a.value.icon,size:"small",variant:"plain",density:"compact",onClick:b[4]||(b[4]=$=>a.value.isClick=!0)},null,8,["icon"])):O("",!0)]),default:y(()=>[w(D,{class:"text-truncate"},{default:y(()=>[J(j(o.value.title),1)]),_:1})]),_:1})]),_:1},8,["src","gradient"])]),_:1}),w(It,{main:e.panel.main,levels:d.value,iconmap:e.panel.panel.iconmap,devices:e.panel.panel.devices},null,8,["main","levels","iconmap","devices"]),t.panel.internals?(p(),L(B,{key:0},{default:y(()=>[J(j(t.panel.internals),1)]),_:1})):O("",!0),w(ue,{style:{height:"24px"}},{default:y(()=>[w(se,{color:"secondary"},{default:y(()=>[m.value.icon?(p(),L(G,{key:0,icon:m.value.icon,color:m.value.color},null,8,["icon","color"])):O("",!0),m.value.text?(p(),P("span",{key:1,class:N(f("left1"))},j(m.value.text),3)):O("",!0),c.value.icon?(p(),L(G,{key:2,icon:c.value.icon,color:c.value.color},null,8,["icon","color"])):O("",!0),c.value.text?(p(),P("span",{key:3,class:N(f("left2"))},j(c.value.text),3)):O("",!0),w(ie),A.value.icon?(p(),L(G,{key:4,icon:A.value.icon,color:A.value.color},null,8,["icon","color"])):O("",!0),A.value.text?(p(),P("span",{key:5,class:N(f("mid1"))},j(A.value.text),3)):O("",!0),g.value.icon?(p(),L(G,{key:6,icon:g.value.icon,color:g.value.color},null,8,["icon","color"])):O("",!0),g.value.text?(p(),P("span",{key:7,class:N(f("mid2"))},j(g.value.text),3)):O("",!0),w(ie),T.value.icon?(p(),L(G,{key:8,icon:T.value.icon,color:T.value.color},null,8,["icon","color"])):O("",!0),T.value.text?(p(),P("span",{key:9,class:N(f("right1"))},j(T.value.text),3)):O("",!0),E.value.icon?(p(),L(G,{key:10,icon:E.value.icon,color:E.value.color},null,8,["icon","color"])):O("",!0),E.value.text?(p(),P("span",{key:11,class:N(f("right2"))},j(E.value.text),3)):O("",!0)]),_:1})]),_:1})]),_:1})}}};export{$t as _};
diff --git a/www/fhemapp4/assets/PanelCard-CL21y_Aa.js b/www/fhemapp4/assets/PanelCard-CL21y_Aa.js
new file mode 100644
index 0000000..b09922c
--- /dev/null
+++ b/www/fhemapp4/assets/PanelCard-CL21y_Aa.js
@@ -0,0 +1,19 @@
+import{u as q,c as C,o as p,b as P,ay as N,bb as j,A as O,a as L,w as y,O as J,d as h,G as Q,F as Y,e as z,bR as ne,aW as U,bn as je,bE as ae,r as he,aw as le,U as Fe,aa as Ce,b7 as de,bg as Ie,ap as Ue,bk as Z,ak as ve,a5 as He,bS as Ne,ax as $e,bF as Oe,bT as qe,aH as Me,aD as Ve,bU as We,bP as Be,bQ as Ke,aA as me,bd as Je,bL as Ge,a$ as Ze}from"./index-BajJpuha.js";const Qe={__name:"PanelMainInfo",props:{el:Object,iconmap:Array,devices:Object,height:String},setup(e){const t=e,n=q(),l=C(()=>n.handleDefs(t.el.text,["text","format"],["",!t.el.text2&&!t.el.text3&&!t.el.icon?"text-h6":"text-caption"])),s=C(()=>n.handleDefs(t.el.text2,["text","format"],["",t.el.text&&!t.el.text3&&!t.el.icon?"text-h6":"text-caption"])),r=C(()=>n.handleDefs(t.el.text3,["text","format"],["","text-caption"])),u=C(()=>{let o=n.handleDefs(t.el.icon,["icon","color","size"],["","","x-large"]);return o.icon&&(o.icon=n.getIcon(o.icon,t.iconmap)),o}),i=C(()=>{let o=n.handleDefs(t.el.status,["level","color","min","max","reverse","linear"],[0,"success",0,100,!1,!1]);return o.level=Math.round((o.level-o.min)/(o.max-o.min)*100),o.reverse=!!o.reverse,o});return(o,a)=>{const c=h("v-icon"),v=h("v-progress-circular"),m=h("v-progress-linear");return p(),P(Y,null,[e.el.text?(p(),P("div",{key:0,class:N(l.value.format)},j(l.value.text),3)):O("",!0),e.el.icon?(p(),L(c,{key:1,color:u.value.color,size:u.value.size},{default:y(()=>[J(j(u.value.icon),1)]),_:1},8,["color","size"])):O("",!0),e.el.status&&!i.value.linear?(p(),L(v,{key:2,width:"4",modelValue:i.value.level,"onUpdate:modelValue":a[0]||(a[0]=w=>i.value.level=w),color:i.value.color,reverse:i.value.reverse},null,8,["modelValue","color","reverse"])):O("",!0),e.el.status&&i.value.linear?(p(),L(m,{key:3,height:"7",rounded:"",modelValue:i.value.level,"onUpdate:modelValue":a[1]||(a[1]=w=>i.value.level=w),color:i.value.color,reverse:i.value.reverse},null,8,["modelValue","color","reverse"])):O("",!0),Q("div",{class:N(e.el.text2?s.value.format:r.value.format)},[e.el.text2?(p(),P("span",{key:0,class:N(s.value.format)},j(s.value.text),3)):O("",!0),e.el.text3?(p(),P("span",{key:1,class:N(r.value.format)},j(r.value.text),3)):O("",!0)],2)],64)}}},Ye={__name:"PanelMainBtn",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=C(()=>{let o=n.handleDefs(t.el.btn,["icon","disabled","color","variant"],["",!1,"","text"]);return o.icon&&(o.icon=n.getIcon(o.icon,t.iconmap)),o}),s=C(()=>{let o=n.handleDefs(t.el.status,["level","color","min","max","reverse"],[0,"success",0,100,!1]);return o.level=Math.round((o.level-o.min)/(o.max-o.min)*100),o.reverse=!!o.reverse,o}),r={timer:!1,long:!1};function u(o){let a=[];if(o.cmd){if(o.type==="cmd"){a=o.cmd.split(";");for(const[c]of Object.entries(a))for(const v of t.devices)a[c]=a[c].replace(" "+v.split(":")[0]+" "," "+v.split(":")[1]+" ");n.request("text",a.join(";"))}o.type==="route"&&ne.push({name:"devices",params:{view:o.cmd},query:ne.currentRoute.value.query}),o.type==="url"&&window.open(o.cmd,"_self")}}function i(o){let a=n.handleDefs(t.el.click,["cmd","type"],["","cmd"],!1,null,!0),c=n.handleDefs(t.el.longClick,["cmd","type"],["","cmd"],!1,null,!0),v=n.handleDefs(t.el.longRelease,["cmd","type"],["","cmd"],!1,null,!0),m="ontouchstart"in document;(!m&&o==="mouseStart"||o==="touchStart")&&(r.timer=setTimeout(()=>{r.long=!0,c.cmd&&u(c)},1e3)),(!m&&o==="mouseEnd"||o==="touchEnd")&&(r.long?v.cmd&&u(v):a.cmd&&u(a),clearTimeout(r.timer),r.long=!1)}return(o,a)=>{const c=h("v-progress-linear"),v=h("v-icon"),m=h("v-btn");return p(),P(Y,null,[e.el.status?(p(),L(c,{key:0,height:"4",modelValue:s.value.level,"onUpdate:modelValue":a[0]||(a[0]=w=>s.value.level=w),color:s.value.color,reverse:s.value.reverse},null,8,["modelValue","color","reverse"])):O("",!0),z(m,{icon:"",variant:l.value.variant,disabled:l.value.disabled,color:l.value.color,onMousedown:a[1]||(a[1]=w=>i("mouseStart")),onTouchstart:a[2]||(a[2]=w=>i("touchStart")),onMouseup:a[3]||(a[3]=w=>i("mouseEnd")),onTouchend:a[4]||(a[4]=w=>i("touchEnd")),class:"my-2"},{default:y(()=>[z(v,{size:"large"},{default:y(()=>[J(j(l.value.icon),1)]),_:1})]),_:1},8,["variant","disabled","color"])],64)}}},Xe={__name:"PanelMainInput",props:{el:Object,iconmap:Array,devices:Object,height:String},setup(e){const t=e,n=q(),l=U({value:null,changed:!1}),s=C(()=>{let u=n.handleDefs(t.el.textfield,["cmd","current","label","placeholder","type","icon","color"],["","","","","text","mdi-send","success"]);return l.value.value=u.current,u});function r(){let u=s.value.cmd;u=n.replacer(u,l.value.value),u=u.replace("%v",l.value.value);for(const i of t.devices)u=u.replace(" "+i.split(":")[0]+" "," "+i.split(":")[1]+" ");n.request("text",u),l.value.changed=!1}return(u,i)=>{const o=h("v-btn"),a=h("v-text-field");return p(),L(a,{modelValue:l.value.value,"onUpdate:modelValue":i[1]||(i[1]=c=>l.value.value=c),label:s.value.label,placeholder:s.value.placeholder,variant:"outlined",density:"compact",type:s.value.type,"hide-details":"",class:"mx-3",onInput:i[2]||(i[2]=c=>l.value.changed=!0)},{append:y(()=>[z(o,{icon:s.value.icon,color:l.value.changed?s.value.color:"",disabled:!l.value.changed,density:"compact",variant:"plain",onClick:i[0]||(i[0]=c=>r())},null,8,["icon","color","disabled"])]),_:1},8,["modelValue","label","placeholder","type"])}}},et={class:"text-white"},tt={__name:"PanelMainSlider",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){je(a=>({"6b1f07f5":l.value}));const t=e,n=q(),l=U(t.height+(/px/.test(t.height)?"":"px"));console.log(t.height);const s=U();function r(a){s.value=a}const u=C(()=>{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",s.value)),r(a.current),a});let i=null;function o(a){let c=u.value.cmd,v=/\./.exec(u.value.steps),m=0;v&&(m=u.value.steps.slice(v.index).length-1),c=c.replace("%v",a.toFixed(m));for(const w of t.devices)c=c.replace(" "+w.split(":")[0]+" "," "+w.split(":")[1]+" ");clearTimeout(i),i=setTimeout(()=>{n.request("text",c)},500)}return(a,c)=>{const v=h("v-slider");return p(),L(v,{modelValue:s.value,"onUpdate:modelValue":[c[0]||(c[0]=m=>s.value=m),c[1]||(c[1]=m=>o(m))],min:u.value.min,max:u.value.max,step:u.value.steps,reverse:u.value.reverse,direction:u.value.vertical?"vertical":"horizontal","track-size":u.value.size,color:u.value.color,"hide-details":"","thumb-label":"",class:"py-2"},{"thumb-label":y(({modelValue:m})=>[Q("div",et,j(m),1)]),_:1},8,["modelValue","min","max","step","reverse","direction","track-size","color"])}}},nt={__name:"PanelMainImage",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=U(!1),s=C(()=>n.handleDefs(t.el.image,["source","height"],["","auto"])),r=C(()=>({height:/=maximized$/.test(n.app.currentView)?window.innerHeight-170:s.value.height||t.height}));return(u,i)=>{const o=h("v-skeleton-loader"),a=h("v-img");return p(),P(Y,null,[l.value?O("",!0):(p(),L(o,{key:0,type:"image"})),z(a,{src:s.value.source,height:r.value.height,onLoad:i[0]||(i[0]=c=>l.value=!0)},null,8,["src","height"])],64)}}},at=["src","width","height"],lt={__name:"PanelMainIframe",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=U(),s=C(()=>({source:n.handleDefs(t.el.iframe,["source"],[""]).source,width:l.value&&l.value.scrollWidth?l.value.scrollWidth:0,height:/=maximized$/.test(n.app.currentView)?window.innerHeight-170:t.height}));return(r,u)=>(p(),P("div",{ref_key:"extContent",ref:l},[Q("iframe",{src:s.value.source,width:s.value.width,height:s.value.height,loading:"lazy",style:{border:"none"}},null,8,at)],512))}},it={__name:"PanelMainMenu",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=U([]);ae(t.el,i=>{r()});const s=C(()=>{let i=n.handleDefs(t.el.btn,["icon","disabled","color","variant"],["mdi-dots-vertical",!1,"","text"]);return i.icon&&(i.icon=n.getIcon(i.icon,t.iconmap)),i});async function r(){let i=n.handleDefs(t.el.menu,["name","cmd","convert"],["","",null],!0,","),o,a,c;l.value=[];for(const v of i){o=/^get/.test(v.name)?await u(v.name):v.name;for(const m of[",","|",`
+`])RegExp(m).test(o)&&(a=m);for(const m of o.split(a))m&&(c=m,/%v/.test(v.cmd)&&v.convert==="regExp"&&(c=RegExp(m.replace(/[^a-z,^A-Z]/g,"."))),l.value.push({name:m.replace("_"," "),cmd:v.cmd.replace(/%v/g,c)}))}}async function u(i){let o=[];o=i.split(";");for(const[a]of Object.entries(o))for(const c of t.devices)o[a]=o[a].replace(" "+c.split(":")[0]+" "," "+c.split(":")[1]+" ");return n.request("text",o.join(";"))}return r(),(i,o)=>{const a=h("v-icon"),c=h("v-btn"),v=h("v-list-item-title"),m=h("v-list-item"),w=h("v-list"),g=h("v-menu");return p(),L(g,null,{activator:y(({props:f})=>[z(c,le(f,{icon:"",variant:s.value.variant,disabled:s.value.disabled||l.value.length<1,color:s.value.color,class:"my-2"}),{default:y(()=>[z(a,{size:"large"},{default:y(()=>[J(j(s.value.icon),1)]),_:1})]),_:2},1040,["variant","disabled","color"])]),default:y(()=>[z(w,null,{default:y(()=>[(p(!0),P(Y,null,he(l.value,(f,_)=>(p(),L(m,{key:_,value:_,onClick:d=>u(f.cmd)},{default:y(()=>[z(v,null,{default:y(()=>[J(j(f.name),1)]),_:2},1024)]),_:2},1032,["value","onClick"]))),128))]),_:1})]),_:1})}}};var xe=null;function ot(e){return xe||(xe=(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(t){return setTimeout(t,16)}).bind(window)),xe(e)}var be=null;function rt(e){be||(be=(window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||function(t){clearTimeout(t)}).bind(window)),be(e)}function st(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 fe(e,t){t===void 0&&(t={});var n=document.createElement(e);return Object.keys(t).forEach(function(l){n[l]=t[l]}),n}function Te(e,t,n){var l=window.getComputedStyle(e,null)||{display:"none"};return l[t]}function we(e){if(!document.documentElement.contains(e))return{detached:!0,rendered:!1};for(var t=e;t!==document;){if(Te(t,"display")==="none")return{detached:!1,rendered:!1};t=t.parentNode}return{detached:!1,rendered:!0}}var ut='.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%}',ze=0,_e=null;function ct(e,t){e.__resize_mutation_handler__||(e.__resize_mutation_handler__=ft.bind(e));var n=e.__resize_listeners__;if(!n){if(e.__resize_listeners__=[],window.ResizeObserver){var l=e.offsetWidth,s=e.offsetHeight,r=new ResizeObserver(function(){!e.__resize_observer_triggered__&&(e.__resize_observer_triggered__=!0,e.offsetWidth===l&&e.offsetHeight===s)||ge(e)}),u=we(e),i=u.detached,o=u.rendered;e.__resize_observer_triggered__=i===!1&&o===!1,e.__resize_observer__=r,r.observe(e)}else if(e.attachEvent&&e.addEventListener)e.__resize_legacy_resize_handler__=function(){ge(e)},e.attachEvent("onresize",e.__resize_legacy_resize_handler__),document.addEventListener("DOMSubtreeModified",e.__resize_mutation_handler__);else if(ze||(_e=st(ut)),pt(e),e.__resize_rendered__=we(e).rendered,window.MutationObserver){var a=new MutationObserver(e.__resize_mutation_handler__);a.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),e.__resize_mutation_observer__=a}}e.__resize_listeners__.push(t),ze++}function dt(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",ke),e.removeChild(e.__resize_triggers__.triggers),e.__resize_triggers__=null),e.__resize_listeners__=null}!--ze&&_e&&_e.parentNode.removeChild(_e)}}function vt(e){var t=e.__resize_last__,n=t.width,l=t.height,s=e.offsetWidth,r=e.offsetHeight;return s!==n||r!==l?{width:s,height:r}:null}function ft(){var e=we(this),t=e.rendered,n=e.detached;t!==this.__resize_rendered__&&(!n&&this.__resize_triggers__&&(Se(this),this.addEventListener("scroll",ke,!0)),this.__resize_rendered__=t,ge(this))}function ke(){var e=this;Se(this),this.__resize_raf__&&rt(this.__resize_raf__),this.__resize_raf__=ot(function(){var t=vt(e);t&&(e.__resize_last__=t,ge(e))})}function ge(e){!e||!e.__resize_listeners__||e.__resize_listeners__.forEach(function(t){t.call(e,e)})}function pt(e){var t=Te(e,"position");(!t||t==="static")&&(e.style.position="relative"),e.__resize_old_position__=t,e.__resize_last__={};var n=fe("div",{className:"resize-triggers"}),l=fe("div",{className:"resize-expand-trigger"}),s=fe("div"),r=fe("div",{className:"resize-contract-trigger"});l.appendChild(s),n.appendChild(l),n.appendChild(r),e.appendChild(n),e.__resize_triggers__={triggers:n,expand:l,expandChild:s,contract:r},Se(e),e.addEventListener("scroll",ke,!0),e.__resize_last__={width:e.offsetWidth,height:e.offsetHeight}}function Se(e){var t=e.__resize_triggers__,n=t.expand,l=t.expandChild,s=t.contract,r=s.scrollWidth,u=s.scrollHeight,i=n.offsetWidth,o=n.offsetHeight,a=n.scrollWidth,c=n.scrollHeight;s.scrollLeft=r,s.scrollTop=u,l.style.width=i+1+"px",l.style.height=o+1+"px",n.scrollLeft=a,n.scrollTop=c}var K=function(){return K=Object.assign||function(e){for(var t,n=1,l=arguments.length;n"u"||typeof customElements>"u")return oe=!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);
+}
+`)(Pe)}catch{return oe=!1}return oe=!0}(),wt="ecTheme",zt="ecInitOptions",kt="ecUpdateOptions",Le=/(^&?~?!?)native:/,St=Fe({name:"echarts",props:K(K({option:Object,theme:{type:[Object,String]},initOptions:Object,updateOptions:Object,group:String,manualUpdate:Boolean},ht),bt),emits:{},inheritAttrs:!1,setup:function(e,t){var n=t.attrs,l=de(),s=de(),r=de(),u=de(),i=ve(wt,null),o=ve(zt,null),a=ve(kt,null),c=Ie(e),v=c.autoresize,m=c.manualUpdate,w=c.loading,g=c.loadingOptions,f=C(function(){return u.value||e.option||null}),_=C(function(){return e.theme||pe(i,{})}),d=C(function(){return e.initOptions||pe(o,{})}),A=C(function(){return e.updateOptions||pe(a,{})}),x=C(function(){return function(D){var S={};for(var V in D)Ee(V)||(S[V]=D[V]);return S}(n)}),T={},E=He().proxy.$listeners,M={};function b(D){if(s.value){var S=r.value=Ne(s.value,_.value,d.value);e.group&&(S.group=e.group),Object.keys(M).forEach(function(F){var I=M[F];if(I){var H=F.toLowerCase();H.charAt(0)==="~"&&(H=H.substring(1),I.__once__=!0);var ee=S;if(H.indexOf("zr:")===0&&(ee=S.getZr(),H=H.substring(3)),I.__once__){delete I.__once__;var X=I;I=function(){for(var te=[],B=0;B(w(),"height: "+(/=maximized$/.test(n.app.currentView)?window.innerHeight-250+"px":t.height)));function c(g){return r.d(g,{dateStyle:s.value?"short":"long"})}function v(g,f){let _;return i.value.from&&f&&(_=i.value.from),i.value.to&&!f&&(_=i.value.to),!_&&!isNaN(g)&&(_=(d=>new Date(d.setDate(d.getDate()+(Number(g)||0))))(new Date)),_||(_=new Date(/.*T.*/.test(g)?g:g+"T00:00:00")),!i.value.from&&f&&(i.value.from=_),!i.value.to&&!f&&(i.value.to=_),_=new Date(_.getTime()-_.getTimezoneOffset()*60*1e3),_.toISOString().split("T")[0]}async function m(){let g=n.handleDefs(t.el.serie,["data","name","digits","suffix","type"],[null,"",0,"","line"],!0),f,_,d=[],A,x,T,E,M,b=[];if(g.length>0)for(const k of g){if(/^get.*/.test(k.data)){M="time",f=k.data.split(" ");for(const R of t.devices)R.split(":")[0]===f[1]&&(f[1]=R.split(":")[1]);if(f[4]=v(f[4],!0),f[5]=v(f[5],!1),_=await n.request("text",f.join(" ")),E=[],d=_.split(`
+`),d.length>0)for(const R of d)A=R.split(" "),A.length>1&&(x=new Date(A[0].replace("_","T")),T=parseFloat(A[1]).toFixed(k.digits),E.push([x,T]))}else/^\[.*\]/.test(k.data)?E=n.stringToJson(k.data):E=[n.replacer("%n("+k.digits+")",k.data,!0)];b.push({xAxisType:M,type:k.type,name:k.name,digits:k.digits,suffix:k.suffix,data:E})}return b}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:{}},f=JSON.parse(JSON.stringify(n.getEl(t.el,["options"])||{})),_=JSON.parse(JSON.stringify(n.getEl(t.el,["options2"])||{})),d=Object.assign(g,/=maximized$/.test(n.app.currentView)&&Object.keys(_).length>0?_:f),A;i.value.fromMenu=!1,i.value.toMenu=!1,i.value.loaded=!1,o=await m();for(const[x,T]of Object.entries(o))A={formatter:E=>E.toLocaleString(r.locale.value,{minimumFractionDigits:T.digits,maximumFractionDigits:T.digits})+T.suffix},d.series[x]||(d.series[x]={}),d.yAxis[x]||(d.yAxis[x]={}),d.legend.data||(d.legend.data=[]),d.xAxis.type||(d.xAxis.type=T.xAxisType),d.yAxis[x].type||(d.yAxis[x].type="value"),d.yAxis[x].axisLabel||(d.yAxis[x].axisLabel={}),d.yAxis[x].axisLabel.formatter||(d.yAxis[x].axisLabel.formatter=A.formatter),d.legend.data[x]||(d.legend.data[x]=T.name),d.series[x].name||(d.series[x].name=T.name),d.series[x].type||(d.series[x].type=T.type),d.series[x].data||(d.series[x].data=T.data),d.series[x].detail||(d.series[x].detail={}),d.series[x].detail.formatter||(d.series[x].detail.formatter=A.formatter),d.series[x].tooltip||(d.series[x].tooltip={}),d.series[x].tooltip.valueFormatter||(d.series[x].tooltip.valueFormatter=A.formatter);n.log(7,"Chartdata chart.loaded.",d),u.value=Object.assign({},d),i.value.loaded=!0}return(g,f)=>{const _=h("v-btn"),d=h("v-date-picker"),A=h("v-locale-provider"),x=h("v-menu"),T=h("v-skeleton-loader");return p(),P(Y,null,[/=maximized$/.test(Z(n).app.currentView)?(p(),P("div",Ct,[z(x,{modelValue:i.value.fromMenu,"onUpdate:modelValue":f[2]||(f[2]=E=>i.value.fromMenu=E),"close-on-content-click":!1},{activator:y(({props:E})=>[z(_,le(E,{variant:"outlined","append-icon":"mdi-calendar",class:"mr-2"}),{default:y(()=>[J(j(c(i.value.from)),1)]),_:2},1040)]),default:y(()=>[z(A,{locale:Z(r).locale.value},{default:y(()=>[z(d,{modelValue:i.value.from,"onUpdate:modelValue":[f[0]||(f[0]=E=>i.value.from=E),f[1]||(f[1]=E=>w())],color:"secondary"},null,8,["modelValue"])]),_:1},8,["locale"])]),_:1},8,["modelValue"]),f[6]||(f[6]=J(" - ")),z(x,{modelValue:i.value.toMenu,"onUpdate:modelValue":f[5]||(f[5]=E=>i.value.toMenu=E),"close-on-content-click":!1},{activator:y(({props:E})=>[z(_,le(E,{variant:"outlined","append-icon":"mdi-calendar",class:"ml-2"}),{default:y(()=>[J(j(c(i.value.to)),1)]),_:2},1040)]),default:y(()=>[z(A,{locale:Z(r).locale.value},{default:y(()=>[z(d,{modelValue:i.value.to,"onUpdate:modelValue":[f[3]||(f[3]=E=>i.value.to=E),f[4]||(f[4]=E=>w())],color:"secondary"},null,8,["modelValue"])]),_:1},8,["locale"])]),_:1},8,["modelValue"])])):O("",!0),Q("div",{style:me(a.value)},[i.value.loaded?O("",!0):(p(),L(T,{key:0,type:"text, image, text"})),i.value.loaded?(p(),L(Z(St),{key:1,option:u.value,theme:Z(l).global.name.value==="dark"?"dark":"light",autoresize:""},null,8,["option","theme"])):O("",!0)],4)],64)}}},Et=180/Math.PI,Ae=e=>{const t=e%360;return t<0?360+t:t},Dt=({x:e,y:t},n)=>{const l=n.left+n.width/2,s=n.top+n.height/2;return Math.atan2(t-s,e-l)*Et},ye=()=>{};class Lt{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=Ae(t),this.updateCSS())}initOptions(t){t=t||{},this.onRotate=t.onRotate||ye,this.onDragStart=t.onDragStart||ye,this.onDragStop=t.onDragStop||ye,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,l=Dt({x:n.clientX,y:n.clientY},this.element.getBoundingClientRect());this._angle=Ae(l+90),this.updateCSS(),this.onRotate(this._angle)}updateCSS(){this.element.style.transform="rotate("+this._angle+"deg)"}}const At=(e,t)=>{const n=e.__vccOpts||e;for(const[l,s]of t)n[l]=s;return n},Rt=["red","yellow","green","cyan","blue","magenta","red"],Re={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},Mt={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}){U(null);const n=U(null);let l=null;const s=e.hue+"deg",r=U(e.hue),u=U(!e.initiallyCollapsed),i=U(!e.initiallyCollapsed),o=U(!1),a=U(!1),c=C(()=>`hsla(${r.value}, ${e.saturation}%, ${e.luminosity}%, ${e.alpha})`),v=C(()=>Rt[Math.round(r.value/60)]);return ae(()=>e.hue,d=>{r.value=d,l.angle=d}),Me(()=>{l=new Lt(n.value,{angle:r.value,onRotate(d){r.value=d,t("input",r.value)},onDragStop(){t("change",r.value)}})}),Ve(()=>{l.destroy(),l=null}),{rcp:l,rotator:n,initialAngle:s,angle:r,isPaletteIn:u,isKnobIn:i,isRippling:a,isPressed:o,color:c,valuetext:v,onKeyDown:d=>{e.disabled||o.value||!i.value||!(d.key in Re)||(d.preventDefault(),l.angle=Re[d.key](l.angle,e.step),r.value=l.angle,t("input",r.value),t("change",r.value))},onScroll:d=>{o.value||!i.value||(d.preventDefault(),d.deltaY>0?l.angle+=e.step:l.angle-=e.step,r.value=l.angle,t("input",r.value),t("change",r.value))},selectColor:()=>{o.value=!0,u.value&&i.value?(t("select",r.value),a.value=!0):u.value=!0},togglePicker:()=>{e.variant!=="persistent"&&(i.value?i.value=!1:(i.value=!0,u.value=!0)),a.value=!1,o.value=!1},hidePalette:()=>{i.value||(u.value=!1)}}}},Vt=["aria-roledescription","aria-label","aria-expanded","aria-valuenow","aria-valuetext","aria-disabled","tabindex"],Tt=Q("div",{class:"rcp__palette"},null,-1),Pt=["aria-label","disabled","tabindex"];function jt(e,t,n,l,s,r){return p(),P("div",{role:"slider","aria-roledescription":n.ariaRoledescription,"aria-label":n.ariaLabel,"aria-expanded":l.isPaletteIn,"aria-valuemin":"0","aria-valuemax":"359","aria-valuenow":l.angle,"aria-valuetext":n.ariaValuetext||l.valuetext,"aria-disabled":n.disabled,class:"rcp",tabindex:n.disabled?-1:0,style:me({"--rcp-initial-angle":l.initialAngle}),onKeyup:t[3]||(t[3]=Ge((...u)=>l.selectColor&&l.selectColor(...u),["enter"])),onKeydown:t[4]||(t[4]=(...u)=>l.onKeyDown&&l.onKeyDown(...u))},[Tt,Q("div",le({class:"rcp__rotator",style:{"pointer-events":n.disabled||l.isPressed||!l.isKnobIn?"none":null}},Je(n.mouseScroll?{wheel:l.onScroll}:{},!0),{ref:"rotator"}),[Q("div",{class:N(["rcp__knob",l.isKnobIn?"in":"out"]),onTransitionend:t[0]||(t[0]=(...u)=>l.hidePalette&&l.hidePalette(...u))},null,34)],16),Q("div",{class:N(["rcp__ripple",{rippling:l.isRippling}]),style:me({borderColor:l.color})},null,6),Q("button",{type:"button",class:N(["rcp__well",{pressed:l.isPressed}]),"aria-label":n.ariaLabelColorWell,disabled:n.disabled,tabindex:n.disabled?-1:0,style:me({backgroundColor:l.color}),onAnimationend:t[1]||(t[1]=(...u)=>l.togglePicker&&l.togglePicker(...u)),onClick:t[2]||(t[2]=(...u)=>l.selectColor&&l.selectColor(...u))},null,46,Pt)],44,Vt)}const Ft=At(Mt,[["render",jt]]),It={__name:"PanelMainColorpicker",props:{el:Object,iconmap:Array,devices:Array,height:String},setup(e){const t=e,n=q(),l=C(()=>n.handleDefs(t.el.picker,["cmd","current","type"],["",!1,"hex"]));function s(a){let c={hue:0,saturation:100,luminosity:50};return a.type==="hex"&&(c=i(a.current)),a.type==="hue"&&(c.hue=a.current||0),c}function r(a){let c=u(a,100,50),v=l.value.cmd.replace("%v",l.value.type==="hex"?c:Math.round(a));for(const m of t.devices)v=v.replace(" "+m.split(":")[0]+" "," "+m.split(":")[1]+" ");n.request("text",v)}function u(a,c,v){v/=100;const m=c*Math.min(v,1-v)/100,w=g=>{const f=(g+a/30)%12,_=v-m*Math.max(Math.min(f-3,9-f,1),-1);return Math.round(255*_).toString(16).padStart(2,"0")};return`${w(0)}${w(8)}${w(4)}`}function i(a){a&&a.split(" ").length>1&&(a=a.split(" ").slice(-1)[0]),a=a?a.replace(/^#/,""):0;let c=parseInt(a,16),v=c>>16&255,m=c>>8&255,w=c&255;v/=255,m/=255,w/=255;let g=Math.max(v,m,w),f=Math.min(v,m,w),_=g-f,d=(g+f)/2,A=0,x=0;return _!==0&&(g===v?A=((m-w)/_+(m{const v=h("v-spacer"),m=h("v-col"),w=h("v-row");return p(),L(w,null,{default:y(()=>[z(v),z(m,{class:"ma-4"},{default:y(()=>[z(Z(Ft),le(s(l.value),{variant:"persistent",onChange:c[0]||(c[0]=g=>r(g)),style:o()}),null,16,["style"])]),_:1}),z(v)]),_:1})}}},Ut={__name:"PanelMain",props:{main:Object,levels:Array,iconmap:Object,devices:Object},setup(e){const t=q();function n(i,o){return t.handleDefs(i[o].size,["size"],[!1]).size}function l(i){let o="";return["info"].indexOf(i)!==-1&&(o="mx-2"),o}function s(i,o){return i[o]?t.handleDefs(i[o].divider,["show"],[!1]).show:!1}function r(i){return i.level?t.handleDefs(i.level.height,["height"],["64px"]).height:"64px"}function u(i){if(i==="info")return Qe;if(i==="btn")return Ye;if(i==="input")return Xe;if(i==="slider")return tt;if(i==="image")return nt;if(i==="iframe")return lt;if(i==="menu")return it;if(i==="chart")return Ot;if(i==="colorpicker")return It}return(i,o)=>{const a=h("v-sheet"),c=h("v-col"),v=h("v-divider"),m=h("v-row"),w=h("v-expand-transition");return p(!0),P(Y,null,he(e.main,(g,f)=>(p(),L(w,{key:f},{default:y(()=>[e.levels.indexOf(f)!==-1?(p(),L(m,{key:0,"no-gutters":"",class:"text-center align-center"},{default:y(()=>[z(a,{height:r(g,"level")},null,8,["height"]),(p(),P(Y,null,he(["left1","left2","mid","right1","right2"],_=>(p(),P(Y,{key:_},[g.level[_]?(p(),L(c,{key:0,cols:n(g,_),class:N(l(g.level[_]))},{default:y(()=>[(p(),L(Ze(u(g.level[_])),{el:g[_],iconmap:e.iconmap,devices:e.devices,height:r(g,"level")},null,8,["el","iconmap","devices","height"]))]),_:2},1032,["cols","class"])):O("",!0),s(g,_)?(p(),L(v,{key:1,vertical:""})):O("",!0)],64))),64)),s(g,"level")?(p(),L(v,{key:0})):O("",!0)]),_:2},1024)):O("",!0)]),_:2},1024))),128)}}},Ht={key:0},qt={__name:"PanelCard",props:{panel:Object},setup(e){const t=e,n=q();function l(M){let b=n.handleDefs(t.panel.status[M],["level","color","min","max","reverse"],[0,"success",0,100,!1]);return b.level=Math.round((b.level-b.min)/(b.max-b.min)*100),b}const s=C(()=>l("bar")),r=C(()=>l("bar2")),u=C(()=>n.handleDefs(t.panel.status.imageUrl,["url"],[""])),i=C(()=>n.handleDefs(t.panel.panel.sortby,["sortby"],[null])),o=C(()=>n.handleDefs(t.panel.status.title,["title"],[""])),a=U({panel:{expandable:!1,expanded:!1,maximizable:!1},expandable:!1,expanded:!1,maximizable:!1,activeLevels:[],icon:"",isClick:!1}),c=C(()=>{let M,b,k={},R=[],W=[],D=[],S=[];k=n.handleDefs(t.panel.panel.expandable,["expandable","expanded","maximizable"],[!1,!1,!1]);for(const[V,F]of Object.entries(t.panel.main))b=n.handleDefs(F.level.show,["show","expanded","collapsed"],[!0,!0,V==="0"]),b.show&&(R.push(Number(V)),b.expanded&&W.push(Number(V)),b.collapsed&&D.push(Number(V)));return k.expandable!==a.value.panel.expandable&&(a.value.panel.expandable=k.expandable,a.value.expandable=k.expandable),k.expanded!==a.value.panel.expanded&&(a.value.panel.expanded=k.expanded,a.value.expanded=k.expanded),k.maximizable!==a.value.panel.maximizable&&(a.value.panel.maximizable=k.maximizable,a.value.maximizable=k.maximizable),/=maximized$/.test(n.app.currentView)&&(a.value.expanded=!0),!a.value.expanded&&R.indexOf(a.value.activeLevels[0])==-1&&(a.value.activeLevels=[R[0]]),a.value.isClick&&(a.value.expandable?a.value.expanded=!a.value.expanded:(M=R.indexOf(a.value.activeLevels[0]),a.value.activeLevels=[R[M+1]>=0?R[M+1]:R[0]]),a.value.maximizable&&(a.value.expanded?ne.push({name:"devices",params:{view:"panel="+t.panel.name+"=maximized"},query:ne.currentRoute.value.query}):(n.app.currentView=n.app.currentView.replace(/=maximized$/,""),ne.back())),a.value.isClick=!1),a.value.expanded?a.value.activeLevels=W:(a.value.expandable||a.value.activeLevels.length===0)&&(a.value.activeLevels=D),!a.value.expandable&&!a.value.expanded?a.value.icon=R.length>1?"mdi-swap-vertical":"":!a.value.maximizable&&R.length<2?a.icon="":a.value.icon=a.value.expandable?a.value.expanded?"mdi-arrow-collapse":"mdi-arrow-expand":"",S=a.value.activeLevels,S});function v(M){let b=n.app.config.panels.map(W=>W.name).indexOf(M),k,R;if(b!==-1&&(R=n.app.config.panels[b].template,k=n.app.config.templates.map(W=>W.name).indexOf(R),k!==-1&&!n.app.config.templates[k].dist))return R}function m(M,b){ne.push({name:"settings",params:{tab:b,item:M},query:ne.currentRoute.value.query})}function w(M){window.open(n.createURL("?detail="+M),"_self")}function g(M){let b=n.handleDefs(t.panel.info[M],["text","icon","color"],["","",""]);return b.icon&&(b.icon=n.getIcon(b.icon,t.panel.panel.iconmap)),b}function f(M){let b=["left1","left2","mid1","mid2","right1","right2"],k=g(M);return g(b[b.indexOf(M)-1]).text&&k.text&&!k.icon?"ml-1 text-truncate":k.text?"text-truncate":""}const _=C(()=>g("left1")),d=C(()=>g("left2")),A=C(()=>g("mid1")),x=C(()=>g("mid2")),T=C(()=>g("right1")),E=C(()=>g("right2"));return(M,b)=>{const k=h("v-progress-linear"),R=h("v-col"),W=h("v-row"),D=h("v-toolbar-title"),S=h("v-btn"),V=h("v-list-item"),F=h("v-divider"),I=h("v-list"),H=h("v-menu"),ee=h("v-toolbar"),X=h("v-img"),te=h("v-sheet"),B=h("v-card-text"),G=h("v-icon"),ie=h("v-spacer"),se=h("v-system-bar"),ue=h("v-layout"),ce=h("v-card");return p(),L(ce,{variant:"tonal"},{default:y(()=>[z(W,{"no-gutters":""},{default:y(()=>[e.panel.status.bar?(p(),L(R,{key:0},{default:y(()=>[z(k,{height:"7",modelValue:s.value.level,"onUpdate:modelValue":b[0]||(b[0]=$=>s.value.level=$),color:s.value.color,reverse:s.value.reverse},null,8,["modelValue","color","reverse"])]),_:1})):O("",!0),e.panel.status.bar2?(p(),L(R,{key:1},{default:y(()=>[z(k,{height:"7",modelValue:r.value.level,"onUpdate:modelValue":b[1]||(b[1]=$=>r.value.level=$),color:r.value.color,reverse:r.value.reverse},null,8,["modelValue","color","reverse"])]),_:1})):O("",!0)]),_:1}),z(te,{color:"primary"},{default:y(()=>[z(X,{src:u.value.url,gradient:u.value.url?Z(n).app.header.imageGradient:"",height:"48",cover:""},{default:y(()=>[z(ee,{color:"transparent",density:"compact",class:"pr-1"},{append:y(()=>[Z(n).app.settings.loglevel>6?(p(),P("div",Ht,[J(j(i.value.sortby)+" ",1),z(H,null,{activator:y(({props:$})=>[z(S,le({icon:"mdi-dots-vertical",density:"compact"},$),null,16)]),default:y(()=>[z(I,{density:"compact"},{default:y(()=>[v(e.panel.name)?(p(),L(V,{key:"template",title:"Template","prepend-icon":"mdi-application-edit-outline",onClick:b[2]||(b[2]=$=>m(v(e.panel.name),"templates"))})):O("",!0),z(V,{key:"panel",title:"Panel","prepend-icon":"mdi-pencil",onClick:b[3]||(b[3]=$=>m(e.panel.name,"panels"))}),z(F),(p(!0),P(Y,null,he(e.panel.panel.devices,$=>(p(),L(V,{key:$.split(":")[0],title:$.split(":")[1],"prepend-icon":"mdi-link",onClick:Nt=>w($.split(":")[1])},null,8,["title","onClick"]))),128))]),_:1})]),_:1})])):O("",!0),a.value.icon?(p(),L(S,{key:1,icon:a.value.icon,size:"small",variant:"plain",density:"compact",onClick:b[4]||(b[4]=$=>a.value.isClick=!0)},null,8,["icon"])):O("",!0)]),default:y(()=>[z(D,{class:"text-truncate"},{default:y(()=>[J(j(o.value.title),1)]),_:1})]),_:1})]),_:1},8,["src","gradient"])]),_:1}),z(Ut,{main:e.panel.main,levels:c.value,iconmap:e.panel.panel.iconmap,devices:e.panel.panel.devices},null,8,["main","levels","iconmap","devices"]),t.panel.internals?(p(),L(B,{key:0},{default:y(()=>[J(j(t.panel.internals),1)]),_:1})):O("",!0),z(ue,{style:{height:"24px"}},{default:y(()=>[z(se,{color:"secondary"},{default:y(()=>[_.value.icon?(p(),L(G,{key:0,icon:_.value.icon,color:_.value.color},null,8,["icon","color"])):O("",!0),_.value.text?(p(),P("span",{key:1,class:N(f("left1"))},j(_.value.text),3)):O("",!0),d.value.icon?(p(),L(G,{key:2,icon:d.value.icon,color:d.value.color},null,8,["icon","color"])):O("",!0),d.value.text?(p(),P("span",{key:3,class:N(f("left2"))},j(d.value.text),3)):O("",!0),z(ie),A.value.icon?(p(),L(G,{key:4,icon:A.value.icon,color:A.value.color},null,8,["icon","color"])):O("",!0),A.value.text?(p(),P("span",{key:5,class:N(f("mid1"))},j(A.value.text),3)):O("",!0),x.value.icon?(p(),L(G,{key:6,icon:x.value.icon,color:x.value.color},null,8,["icon","color"])):O("",!0),x.value.text?(p(),P("span",{key:7,class:N(f("mid2"))},j(x.value.text),3)):O("",!0),z(ie),T.value.icon?(p(),L(G,{key:8,icon:T.value.icon,color:T.value.color},null,8,["icon","color"])):O("",!0),T.value.text?(p(),P("span",{key:9,class:N(f("right1"))},j(T.value.text),3)):O("",!0),E.value.icon?(p(),L(G,{key:10,icon:E.value.icon,color:E.value.color},null,8,["icon","color"])):O("",!0),E.value.text?(p(),P("span",{key:11,class:N(f("right2"))},j(E.value.text),3)):O("",!0)]),_:1})]),_:1})]),_:1})}}};export{qt as _};
diff --git a/www/fhemapp4/assets/SettingsView-Cnx34FlW.js b/www/fhemapp4/assets/SettingsView-Cnx34FlW.js
deleted file mode 100644
index f804610..0000000
--- a/www/fhemapp4/assets/SettingsView-Cnx34FlW.js
+++ /dev/null
@@ -1,27 +0,0 @@
-import{B as $a,f as Ra,C as Va,D as Fa,E as ja,g as Ma,h as Na,F as Ke,K as La,R as Ua,S as Ka,i as Ga,T as Ba,j as Ha,k as ka,l as za,m as Wa,n as Ya,V as Xa,p as Ja,q as Za,s as Qa,t as qa,v as _a,x as er,y as tr,c as Ee,z as nr,a as z,A as Z,b as Ne,G as ua,H as ar,I as rr,J as or,L as ir,M as lr,N as sr,O as de,e as g,P as ur,Q as dr,U as da,W as pr,X as cr,Y as fr,Z as vr,_ as mr,$ as gr,a0 as hr,a1 as yr,a2 as br,a3 as xr,a4 as Sr,a5 as Er,a6 as Ir,a7 as Or,a8 as Cr,a9 as Tr,aa as pt,ab as wr,ac as Dr,ad as Ar,ae as Pr,af as $r,ag as Rr,ah as Vr,ai as Fr,aj as jr,ak as Mr,al as Nr,am as Lr,an as Ur,ao as Kr,ap as Gr,aq as Br,ar as Hr,as as kr,at as zr,au as Wr,av as Yr,aw as yn,ax as Xr,ay as Jr,az as Zr,aA as Qr,aB as qr,aC as _r,aD as eo,aE as to,aF as no,aG as ao,aH as ro,aI as oo,aJ as io,aK as lo,aL as so,aM as uo,aN as po,aO as co,o as B,aP as fo,aQ as vo,aR as mo,aS as go,aT as ho,aU as yo,aV as bo,aW as Te,aX as xo,aY as So,r as Ze,aZ as Eo,d as $,a_ as Io,a$ as pa,b0 as Oo,b1 as Co,b2 as To,b3 as wo,b4 as Do,b5 as Ao,b6 as Po,b7 as $o,b8 as Ro,b9 as Vo,ba as Fo,bb as Ce,bc as jo,bd as Mo,be as No,bf as Lo,bg as Uo,bh as Ko,bi as Go,bj as Bo,bk as M,bl as Ho,bm as ko,bn as zo,bo as Wo,bp as Yo,bq as Xo,br as Jo,bs as Zo,bt as Qo,bu as qo,bv as _o,bw as ei,bx as ti,by as ni,bz as ai,bA as ri,bB as ca,bC as oi,bD as ii,bE as pn,bF as li,bG as si,bH as ui,bI as di,w as b,bJ as pi,bK as fa,bL as ci,bM as fi,bN as vi,bO as mi,u as qe,bP as bn,bQ as va,bR as xt}from"./index-DltbBIbk.js";import{g as ma,a as gi,c as Fn,u as hi,S as yi}from"./index-DQaEtFZA.js";import{_ as bi}from"./PanelCard-CD8gYScP.js";/**
-* vue v3.5.13
-* (c) 2018-present Yuxi (Evan) You and Vue contributors
-* @license MIT
-**/const xi=()=>{},Si=Object.freeze(Object.defineProperty({__proto__:null,BaseTransition:$a,BaseTransitionPropsValidators:Ra,Comment:Va,DeprecationTypes:Fa,EffectScope:ja,ErrorCodes:Ma,ErrorTypeStrings:Na,Fragment:Ke,KeepAlive:La,ReactiveEffect:Ua,Static:Ka,Suspense:Ga,Teleport:Ba,Text:Ha,TrackOpTypes:ka,Transition:za,TransitionGroup:Wa,TriggerOpTypes:Ya,VueElement:Xa,assertNumber:Ja,callWithAsyncErrorHandling:Za,callWithErrorHandling:Qa,camelize:qa,capitalize:_a,cloneVNode:er,compatUtils:tr,compile:xi,computed:Ee,createApp:nr,createBlock:z,createCommentVNode:Z,createElementBlock:Ne,createElementVNode:ua,createHydrationRenderer:ar,createPropsRestProxy:rr,createRenderer:or,createSSRApp:ir,createSlots:lr,createStaticVNode:sr,createTextVNode:de,createVNode:g,customRef:ur,defineAsyncComponent:dr,defineComponent:da,defineCustomElement:pr,defineEmits:cr,defineExpose:fr,defineModel:vr,defineOptions:mr,defineProps:gr,defineSSRCustomElement:hr,defineSlots:yr,devtools:br,effect:xr,effectScope:Sr,getCurrentInstance:Er,getCurrentScope:Ir,getCurrentWatcher:Or,getTransitionRawChildren:Cr,guardReactiveProps:Tr,h:pt,handleError:wr,hasInjectionContext:Dr,hydrate:Ar,hydrateOnIdle:Pr,hydrateOnInteraction:$r,hydrateOnMediaQuery:Rr,hydrateOnVisible:Vr,initCustomFormatter:Fr,initDirectivesForSSR:jr,inject:Mr,isMemoSame:Nr,isProxy:Lr,isReactive:Ur,isReadonly:Kr,isRef:Gr,isRuntimeOnly:Br,isShallow:Hr,isVNode:kr,markRaw:zr,mergeDefaults:Wr,mergeModels:Yr,mergeProps:yn,nextTick:Xr,normalizeClass:Jr,normalizeProps:Zr,normalizeStyle:Qr,onActivated:qr,onBeforeMount:_r,onBeforeUnmount:eo,onBeforeUpdate:to,onDeactivated:no,onErrorCaptured:ao,onMounted:ro,onRenderTracked:oo,onRenderTriggered:io,onScopeDispose:lo,onServerPrefetch:so,onUnmounted:uo,onUpdated:po,onWatcherCleanup:co,openBlock:B,popScopeId:fo,provide:vo,proxyRefs:mo,pushScopeId:go,queuePostFlushCb:ho,reactive:yo,readonly:bo,ref:Te,registerRuntimeCompiler:xo,render:So,renderList:Ze,renderSlot:Eo,resolveComponent:$,resolveDirective:Io,resolveDynamicComponent:pa,resolveFilter:Oo,resolveTransitionHooks:Co,setBlockTracking:To,setDevtoolsHook:wo,setTransitionHooks:Do,shallowReactive:Ao,shallowReadonly:Po,shallowRef:$o,ssrContextKey:Ro,ssrUtils:Vo,stop:Fo,toDisplayString:Ce,toHandlerKey:jo,toHandlers:Mo,toRaw:No,toRef:Lo,toRefs:Uo,toValue:Ko,transformVNodeArgs:Go,triggerRef:Bo,unref:M,useAttrs:Ho,useCssModule:ko,useCssVars:zo,useHost:Wo,useId:Yo,useModel:Xo,useSSRContext:Jo,useShadowRoot:Zo,useSlots:Qo,useTemplateRef:qo,useTransitionState:_o,vModelCheckbox:ei,vModelDynamic:ti,vModelRadio:ni,vModelSelect:ai,vModelText:ri,vShow:ca,version:oi,warn:ii,watch:pn,watchEffect:li,watchPostEffect:si,watchSyncEffect:ui,withAsyncContext:di,withCtx:b,withDefaults:pi,withDirectives:fa,withKeys:ci,withMemo:fi,withModifiers:vi,withScopeId:mi},Symbol.toStringTag,{value:"Module"})),oe="_app.settings.general.",Ei={__name:"SettingsGeneral",setup(d){const e=qe(),{mobile:n}=bn(),i=Te(),a=Te({name:"",title:"",icon:"",cmd:""}),o={required:s=>!!s||e.replacer("%t(_app.settings.rules.required)")};function t(s,u){let c=[];if(s&&s.length>0)for(const v of s)v.group&&v.group.length>0?c.push(...t(v.group,(u?u+"->":"")+v.name)):c.push((u?u+"->":"")+v.name);return c}function r(){e.app.config.header.commands||(e.app.config.header.commands=[]),e.app.config.header.commands.push(JSON.parse(JSON.stringify(a.value))),i.value.reset()}function l(s){e.app.config.header.commands.splice(s,1)}return(s,u)=>{const c=$("v-icon"),v=$("v-list-item"),f=$("v-text-field"),p=$("v-col"),h=$("v-switch"),y=$("v-list-item-action"),S=$("v-row"),m=$("v-divider"),x=$("v-select"),E=$("v-btn"),C=$("v-form"),I=$("v-list");return B(),z(I,null,{default:b(()=>[g(v,{title:s.$t(oe+"headLine")},{append:b(()=>[g(c,{color:"info",onClick:u[0]||(u[0]=T=>M(e).help("kopfzeile"))},{default:b(()=>u[24]||(u[24]=[de("mdi-help-circle")])),_:1})]),_:1},8,["title"]),g(S,{"no-gutters":"",class:"mb-3"},{default:b(()=>[g(p,{cols:M(n)?"12":"6"},{default:b(()=>[g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"headLineImageTitle"),subtitle:s.$t(oe+"headLineImageSubTitle")},{default:b(()=>[g(f,{modelValue:M(e).app.config.header.imageUrl,"onUpdate:modelValue":u[1]||(u[1]=T=>M(e).app.config.header.imageUrl=T),density:"compact",variant:"outlined",label:"Link",placeholder:"https://picsum.photos/1920/1080?random","persistent-placeholder":"","hide-details":"",clearable:"","max-width":"650px",class:"my-4"},null,8,["modelValue"])]),_:1},8,["lines","title","subtitle"])]),_:1},8,["cols"]),g(p,{cols:M(n)?"12":"6"},{default:b(()=>[g(v,{disabled:!M(e).app.config.header.imageUrl,lines:M(n)?"two":"one",title:s.$t(oe+"headLineImageGradientTitle"),subtitle:s.$t(oe+"headLineImageGradientSubTitle")},{default:b(()=>[g(f,{modelValue:M(e).app.config.header.imageGradient,"onUpdate:modelValue":u[2]||(u[2]=T=>M(e).app.config.header.imageGradient=T),density:"compact",variant:"outlined",label:"Definition",placeholder:"to top, rgba(33, 33, 33, 0.6), rgba(33, 33, 33, 0.6)","persistent-placeholder":"","hide-details":"",clearable:"","max-width":"650px",class:"my-4"},null,8,["modelValue"])]),_:1},8,["disabled","lines","title","subtitle"])]),_:1},8,["cols"]),g(p,{cols:M(n)?"12":"6"},{default:b(()=>[g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"headLineTimeTitle"),subtitle:s.$t(oe+"headLineTimeSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.showTime,"onUpdate:modelValue":u[3]||(u[3]=T=>M(e).app.config.header.showTime=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"]),g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"headLineDateTitle"),subtitle:s.$t(oe+"headLineDateSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.showDate,"onUpdate:modelValue":u[4]||(u[4]=T=>M(e).app.config.header.showDate=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"])]),_:1},8,["cols"]),g(p,{cols:M(n)?"12":"6"},{default:b(()=>[g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"headLineRouteTitle"),subtitle:s.$t(oe+"headLineRouteSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.showTitle,"onUpdate:modelValue":u[5]||(u[5]=T=>M(e).app.config.header.showTitle=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"]),g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"headLineNavigationTitle"),subtitle:s.$t(oe+"headLineNavigationSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.hideNavigation,"onUpdate:modelValue":u[6]||(u[6]=T=>M(e).app.config.header.hideNavigation=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"])]),_:1},8,["cols"])]),_:1}),g(m),g(v,{title:s.$t(oe+"darkMode")},{append:b(()=>[g(c,{color:"info",onClick:u[7]||(u[7]=T=>M(e).help("farbschema"))},{default:b(()=>u[25]||(u[25]=[de("mdi-help-circle")])),_:1})]),_:1},8,["title"]),g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"darkModeTitle"),subtitle:s.$t(oe+"darkModeSubTitle")},{default:b(()=>[g(f,{modelValue:M(e).app.config.header.darkModeOverFhem,"onUpdate:modelValue":u[8]||(u[8]=T=>M(e).app.config.header.darkModeOverFhem=T),density:"compact",variant:"outlined",label:"Definition",placeholder:"device-reading:value","persistent-placeholder":"","hide-details":"",clearable:"","max-width":"650px",class:"my-4"},null,8,["modelValue"])]),_:1},8,["lines","title","subtitle"]),g(m),g(v,{title:s.$t(oe+"defaultRoute")},{append:b(()=>[g(c,{color:"info",onClick:u[9]||(u[9]=T=>M(e).help("startseite"))},{default:b(()=>u[26]||(u[26]=[de("mdi-help-circle")])),_:1})]),_:1},8,["title"]),g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"defaultRouteTitle"),subtitle:s.$t(oe+"defaultRouteSubTitle")},{default:b(()=>[g(x,{modelValue:M(e).app.config.header.defaultRoute,"onUpdate:modelValue":u[10]||(u[10]=T=>M(e).app.config.header.defaultRoute=T),items:t(M(e).app.navigation),density:"compact",variant:"outlined",label:"Route",clearable:"","max-width":"650px",class:"my-4"},null,8,["modelValue","items"])]),_:1},8,["lines","title","subtitle"]),g(m),g(v,{title:s.$t(oe+"optionsMenu")},{append:b(()=>[g(c,{color:"info",onClick:u[11]||(u[11]=T=>M(e).help("optionsmenü"))},{default:b(()=>u[27]||(u[27]=[de("mdi-help-circle")])),_:1})]),_:1},8,["title"]),g(S,{"no-gutters":"",class:"mb-3"},{default:b(()=>[g(p,{cols:M(n)?"12":"6"},{default:b(()=>[g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"optionsMenuDarkModeTitle"),subtitle:s.$t(oe+"optionsMenuDarkModeSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.showDarkMode,"onUpdate:modelValue":u[12]||(u[12]=T=>M(e).app.config.header.showDarkMode=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"]),g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"optionsMenuReloadPageTitle"),subtitle:s.$t(oe+"optionsMenuReloadPageSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.showReloadPage,"onUpdate:modelValue":u[13]||(u[13]=T=>M(e).app.config.header.showReloadPage=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"]),g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"optionsMenuSettingsTitle"),subtitle:s.$t(oe+"optionsMenuSettingsSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.showSettings,"onUpdate:modelValue":u[14]||(u[14]=T=>M(e).app.config.header.showSettings=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"])]),_:1},8,["cols"]),g(p,{cols:M(n)?"12":"6"},{default:b(()=>[g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"optionsMenuUpdateTitle"),subtitle:s.$t(oe+"optionsMenuUpdateSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.showUpdate,"onUpdate:modelValue":u[15]||(u[15]=T=>M(e).app.config.header.showUpdate=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"]),g(v,{lines:M(n)?"two":"one",title:s.$t(oe+"optionsMenuLanguagesTitle"),subtitle:s.$t(oe+"optionsMenuLanguagesSubTitle")},{append:b(()=>[g(y,{start:""},{default:b(()=>[g(h,{modelValue:M(e).app.config.header.showLanguages,"onUpdate:modelValue":u[16]||(u[16]=T=>M(e).app.config.header.showLanguages=T),color:"primary","hide-details":"",density:"compact"},null,8,["modelValue"])]),_:1})]),_:1},8,["lines","title","subtitle"])]),_:1},8,["cols"])]),_:1}),g(m),g(v,{title:s.$t(oe+"fhemCommands")},{append:b(()=>[g(c,{color:"info",onClick:u[17]||(u[17]=T=>M(e).help("optionsmenü-fhem-befehle"))},{default:b(()=>u[28]||(u[28]=[de("mdi-help-circle")])),_:1})]),_:1},8,["title"]),(B(!0),Ne(Ke,null,Ze(M(e).app.config.header.commands,(T,R)=>(B(),z(v,{key:R},{default:b(()=>[g(S,{class:"pt-2 align-center"},{default:b(()=>[g(p,{cols:M(n)?"12":"2"},{default:b(()=>[g(f,{modelValue:T.name,"onUpdate:modelValue":w=>T.name=w,density:"compact",variant:"outlined",rules:[o.required],label:s.$t(oe+"fhemCommandsName"),"hide-details":"",clearable:""},null,8,["modelValue","onUpdate:modelValue","rules","label"])]),_:2},1032,["cols"]),g(p,{cols:M(n)?"12":"3"},{default:b(()=>[g(f,{modelValue:T.title,"onUpdate:modelValue":w=>T.title=w,density:"compact",variant:"outlined",rules:[o.required],label:s.$t(oe+"fhemCommandsTitle"),"hide-details":"",clearable:""},null,8,["modelValue","onUpdate:modelValue","rules","label"])]),_:2},1032,["cols"]),g(p,{cols:M(n)?"12":"3"},{default:b(()=>[g(f,{modelValue:T.icon,"onUpdate:modelValue":w=>T.icon=w,density:"compact",variant:"outlined",label:s.$t(oe+"fhemCommandsIcon"),"append-inner-icon":T.icon,"hide-details":"",clearable:""},null,8,["modelValue","onUpdate:modelValue","label","append-inner-icon"])]),_:2},1032,["cols"]),g(p,{cols:M(n)?"9":"3"},{default:b(()=>[g(f,{modelValue:T.icon,"onUpdate:modelValue":w=>T.icon=w,density:"compact",variant:"outlined",rules:[o.required],label:s.$t(oe+"fhemCommandsCmd"),"hide-details":"",clearable:""},null,8,["modelValue","onUpdate:modelValue","rules","label"])]),_:2},1032,["cols"]),g(E,{variant:"text",icon:"mdi-delete",onClick:w=>l(R)},null,8,["onClick"])]),_:2},1024),g(m,{class:"mt-3"})]),_:2},1024))),128)),g(v,null,{default:b(()=>[g(C,{ref_key:"form",ref:i},{default:b(()=>[g(S,{class:"pt-3 align-center"},{default:b(()=>[g(p,{cols:M(n)?"12":"2"},{default:b(()=>[g(f,{modelValue:a.value.name,"onUpdate:modelValue":u[18]||(u[18]=T=>a.value.name=T),density:"compact",variant:"outlined",rules:[o.required],label:s.$t(oe+"fhemCommandsName"),placeholder:"restart","persistent-placeholder":"","hide-details":"",clearable:""},null,8,["modelValue","rules","label"])]),_:1},8,["cols"]),g(p,{cols:M(n)?"12":"3"},{default:b(()=>[g(f,{modelValue:a.value.title,"onUpdate:modelValue":u[19]||(u[19]=T=>a.value.title=T),density:"compact",variant:"outlined",rules:[o.required],label:s.$t(oe+"fhemCommandsTitle"),placeholder:"FHEM Restart | %t(optionsRestart)","persistent-placeholder":"","hide-details":"",clearable:""},null,8,["modelValue","rules","label"])]),_:1},8,["cols"]),g(p,{cols:M(n)?"12":"3"},{default:b(()=>[g(f,{modelValue:a.value.icon,"onUpdate:modelValue":u[20]||(u[20]=T=>a.value.icon=T),density:"compact",variant:"outlined",label:s.$t(oe+"fhemCommandsIcon"),"append-inner-icon":a.value.icon,placeholder:"mdi-rocket","persistent-placeholder":"","hide-details":"",clearable:""},null,8,["modelValue","label","append-inner-icon"])]),_:1},8,["cols"]),g(p,{cols:M(n)?"9":"3"},{default:b(()=>[g(f,{modelValue:a.value.cmd,"onUpdate:modelValue":u[21]||(u[21]=T=>a.value.cmd=T),density:"compact",variant:"outlined",rules:[o.required],label:s.$t(oe+"fhemCommandsCmd"),placeholder:"shutdown restart","persistent-placeholder":"","hide-details":"",clearable:""},null,8,["modelValue","rules","label"])]),_:1},8,["cols"]),g(E,{variant:"text",icon:"mdi-cancel",onClick:u[22]||(u[22]=T=>i.value.reset())}),g(E,{variant:"text",icon:"mdi-plus",disabled:!a.value.name||!a.value.title||!a.value.cmd,onClick:u[23]||(u[23]=T=>r())},null,8,["disabled"])]),_:1})]),_:1},512)]),_:1})]),_:1})}}};var ga={exports:{}};const Ii=ma(Si);/**!
- * Sortable 1.14.0
- * @author RubaXa
- * @author owenm
- * @license MIT
- */function zn(d,e){var n=Object.keys(d);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(d);e&&(i=i.filter(function(a){return Object.getOwnPropertyDescriptor(d,a).enumerable})),n.push.apply(n,i)}return n}function lt(d){for(var e=1;e=0)&&(n[a]=d[a]);return n}function Ti(d,e){if(d==null)return{};var n=Ci(d,e),i,a;if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(d);for(a=0;a=0)&&Object.prototype.propertyIsEnumerable.call(d,i)&&(n[i]=d[i])}return n}function wi(d){return Di(d)||Ai(d)||Pi(d)||$i()}function Di(d){if(Array.isArray(d))return jn(d)}function Ai(d){if(typeof Symbol<"u"&&d[Symbol.iterator]!=null||d["@@iterator"]!=null)return Array.from(d)}function Pi(d,e){if(d){if(typeof d=="string")return jn(d,e);var n=Object.prototype.toString.call(d).slice(8,-1);if(n==="Object"&&d.constructor&&(n=d.constructor.name),n==="Map"||n==="Set")return Array.from(d);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return jn(d,e)}}function jn(d,e){(e==null||e>d.length)&&(e=d.length);for(var n=0,i=new Array(e);n"&&(e=e.substring(1)),d)try{if(d.matches)return d.matches(e);if(d.msMatchesSelector)return d.msMatchesSelector(e);if(d.webkitMatchesSelector)return d.webkitMatchesSelector(e)}catch{return!1}return!1}}function Fi(d){return d.host&&d!==document&&d.host.nodeType?d.host:d.parentNode}function nt(d,e,n,i){if(d){n=n||document;do{if(e!=null&&(e[0]===">"?d.parentNode===n&&cn(d,e):cn(d,e))||i&&d===n)return d;if(d===n)break}while(d=Fi(d))}return null}var Yn=/\s+/g;function Oe(d,e,n){if(d&&e)if(d.classList)d.classList[n?"add":"remove"](e);else{var i=(" "+d.className+" ").replace(Yn," ").replace(" "+e+" "," ");d.className=(i+(n?" "+e:"")).replace(Yn," ")}}function Y(d,e,n){var i=d&&d.style;if(i){if(n===void 0)return document.defaultView&&document.defaultView.getComputedStyle?n=document.defaultView.getComputedStyle(d,""):d.currentStyle&&(n=d.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 St(d,e){var n="";if(typeof d=="string")n=d;else do{var i=Y(d,"transform");i&&i!=="none"&&(n=i+" "+n)}while(!e&&(d=d.parentNode));var a=window.DOMMatrix||window.WebKitCSSMatrix||window.CSSMatrix||window.MSCSSMatrix;return a&&new a(n)}function ba(d,e,n){if(d){var i=d.getElementsByTagName(e),a=0,o=i.length;if(n)for(;a=o,!t)return i;if(i===it())break;i=vt(i,!1)}return!1}function Dt(d,e,n,i){for(var a=0,o=0,t=d.children;o2&&arguments[2]!==void 0?arguments[2]:{},a=i.evt,o=Ti(i,Gi);Jt.pluginEvent.bind(q)(e,n,lt({dragEl:H,parentEl:we,ghostEl:ae,rootEl:xe,nextEl:bt,lastDownEl:ln,cloneEl:De,cloneHidden:ft,dragStarted:Ut,putSortable:Me,activeSortable:q.active,originalEvent:a,oldIndex:wt,oldDraggableIndex:kt,newIndex:Ye,newDraggableIndex:ct,hideGhostForTarget:Ca,unhideGhostForTarget:Ta,cloneNowHidden:function(){ft=!0},cloneNowShown:function(){ft=!1},dispatchSortableEvent:function(r){Be({sortable:n,name:r,originalEvent:a})}},o))};function Be(d){Lt(lt({putSortable:Me,cloneEl:De,targetEl:H,rootEl:xe,oldIndex:wt,oldDraggableIndex:kt,newIndex:Ye,newDraggableIndex:ct},d))}var H,we,ae,xe,bt,ln,De,ft,wt,Ye,kt,ct,qt,Me,Tt=!1,fn=!1,vn=[],gt,et,Tn,wn,Qn,qn,Ut,Ot,zt,Wt=!1,_t=!1,sn,Le,Dn=[],Mn=!1,mn=[],xn=typeof document<"u",en=ha,_n=Xt||ut?"cssFloat":"float",Bi=xn&&!Vi&&!ha&&"draggable"in document.createElement("div"),Ea=function(){if(xn){if(ut)return!1;var d=document.createElement("x");return d.style.cssText="pointer-events:auto",d.style.pointerEvents==="auto"}}(),Ia=function(e,n){var i=Y(e),a=parseInt(i.width)-parseInt(i.paddingLeft)-parseInt(i.paddingRight)-parseInt(i.borderLeftWidth)-parseInt(i.borderRightWidth),o=Dt(e,0,n),t=Dt(e,1,n),r=o&&Y(o),l=t&&Y(t),s=r&&parseInt(r.marginLeft)+parseInt(r.marginRight)+Se(o).width,u=l&&parseInt(l.marginLeft)+parseInt(l.marginRight)+Se(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(o&&r.float&&r.float!=="none"){var c=r.float==="left"?"left":"right";return t&&(l.clear==="both"||l.clear===c)?"vertical":"horizontal"}return o&&(r.display==="block"||r.display==="flex"||r.display==="table"||r.display==="grid"||s>=a&&i[_n]==="none"||t&&i[_n]==="none"&&s+u>a)?"vertical":"horizontal"},Hi=function(e,n,i){var a=i?e.left:e.top,o=i?e.right:e.bottom,t=i?e.width:e.height,r=i?n.left:n.top,l=i?n.right:n.bottom,s=i?n.width:n.height;return a===r||o===l||a+t/2===r+s/2},ki=function(e,n){var i;return vn.some(function(a){var o=a[Ue].options.emptyInsertThreshold;if(!(!o||Kn(a))){var t=Se(a),r=e>=t.left-o&&e<=t.right+o,l=n>=t.top-o&&n<=t.bottom+o;if(r&&l)return i=a}}),i},Oa=function(e){function n(o,t){return function(r,l,s,u){var c=r.options.group.name&&l.options.group.name&&r.options.group.name===l.options.group.name;if(o==null&&(t||c))return!0;if(o==null||o===!1)return!1;if(t&&o==="clone")return o;if(typeof o=="function")return n(o(r,l,s,u),t)(r,l,s,u);var v=(t?r:l).options.group.name;return o===!0||typeof o=="string"&&o===v||o.join&&o.indexOf(v)>-1}}var i={},a=e.group;(!a||on(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},Ca=function(){!Ea&&ae&&Y(ae,"display","none")},Ta=function(){!Ea&&ae&&Y(ae,"display","")};xn&&document.addEventListener("click",function(d){if(fn)return d.preventDefault(),d.stopPropagation&&d.stopPropagation(),d.stopImmediatePropagation&&d.stopImmediatePropagation(),fn=!1,!1},!0);var ht=function(e){if(H){e=e.touches?e.touches[0]:e;var n=ki(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)}}},zi=function(e){H&&H.parentNode[Ue]._isOutsideThisEl(e.target)};function q(d,e){if(!(d&&d.nodeType&&d.nodeType===1))throw"Sortable: `el` must be an HTMLElement, not ".concat({}.toString.call(d));this.el=d,this.options=e=Qe({},e),d[Ue]=this;var n={group:null,sort:!0,disabled:!1,store:null,handle:null,draggable:/^[uo]l$/i.test(d.nodeName)?">li":">*",swapThreshold:1,invertSwap:!1,invertedSwapThreshold:null,removeCloneOnHide:!0,direction:function(){return Ia(d,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&&!Bt,emptyInsertThreshold:5};Jt.initializePlugins(this,d,n);for(var i in n)!(i in e)&&(e[i]=n[i]);Oa(e);for(var a in this)a.charAt(0)==="_"&&typeof this[a]=="function"&&(this[a]=this[a].bind(this));this.nativeDraggable=e.forceFallback?!1:Bi,this.nativeDraggable&&(this.options.touchStartThreshold=1),e.supportPointer?se(d,"pointerdown",this._onTapStart):(se(d,"mousedown",this._onTapStart),se(d,"touchstart",this._onTapStart)),this.nativeDraggable&&(se(d,"dragover",this),se(d,"dragenter",this)),vn.push(this.el),e.store&&e.store.get&&this.sort(e.store.get(this)||[]),Qe(this,Li())}q.prototype={constructor:q,_isOutsideThisEl:function(e){!this.el.contains(e)&&e!==this.el&&(Ot=null)},_getDirection:function(e,n){return typeof this.options.direction=="function"?this.options.direction.call(this,e,n,H):this.options.direction},_onTapStart:function(e){if(e.cancelable){var n=this,i=this.el,a=this.options,o=a.preventOnFilter,t=e.type,r=e.touches&&e.touches[0]||e.pointerType&&e.pointerType==="touch"&&e,l=(r||e).target,s=e.target.shadowRoot&&(e.path&&e.path[0]||e.composedPath&&e.composedPath()[0])||l,u=a.filter;if(_i(i),!H&&!(/mousedown|pointerdown/.test(t)&&e.button!==0||a.disabled)&&!s.isContentEditable&&!(!this.nativeDraggable&&Bt&&l&&l.tagName.toUpperCase()==="SELECT")&&(l=nt(l,a.draggable,i,!1),!(l&&l.animated)&&ln!==l)){if(wt=Ae(l),kt=Ae(l,a.draggable),typeof u=="function"){if(u.call(this,e,l,this)){Be({sortable:n,rootEl:s,name:"filter",targetEl:l,toEl:i,fromEl:i}),ke("filter",n,{evt:e}),o&&e.cancelable&&e.preventDefault();return}}else if(u&&(u=u.split(",").some(function(c){if(c=nt(s,c.trim(),i,!1),c)return Be({sortable:n,rootEl:c,name:"filter",targetEl:l,fromEl:i,toEl:i}),ke("filter",n,{evt:e}),!0}),u)){o&&e.cancelable&&e.preventDefault();return}a.handle&&!nt(s,a.handle,i,!1)||this._prepareDragStart(e,r,l)}}},_prepareDragStart:function(e,n,i){var a=this,o=a.el,t=a.options,r=o.ownerDocument,l;if(i&&!H&&i.parentNode===o){var s=Se(i);if(xe=o,H=i,we=H.parentNode,bt=H.nextSibling,ln=i,qt=t.group,q.dragged=H,gt={target:H,clientX:(n||e).clientX,clientY:(n||e).clientY},Qn=gt.clientX-s.left,qn=gt.clientY-s.top,this._lastX=(n||e).clientX,this._lastY=(n||e).clientY,H.style["will-change"]="all",l=function(){if(ke("delayEnded",a,{evt:e}),q.eventCanceled){a._onDrop();return}a._disableDelayedDragEvents(),!Wn&&a.nativeDraggable&&(H.draggable=!0),a._triggerDragStart(e,n),Be({sortable:a,name:"choose",originalEvent:e}),Oe(H,t.chosenClass,!0)},t.ignore.split(",").forEach(function(u){ba(H,u.trim(),An)}),se(r,"dragover",ht),se(r,"mousemove",ht),se(r,"touchmove",ht),se(r,"mouseup",a._onDrop),se(r,"touchend",a._onDrop),se(r,"touchcancel",a._onDrop),Wn&&this.nativeDraggable&&(this.options.touchStartThreshold=4,H.draggable=!0),ke("delayStart",this,{evt:e}),t.delay&&(!t.delayOnTouchOnly||n)&&(!this.nativeDraggable||!(Xt||ut))){if(q.eventCanceled){this._onDrop();return}se(r,"mouseup",a._disableDelayedDrag),se(r,"touchend",a._disableDelayedDrag),se(r,"touchcancel",a._disableDelayedDrag),se(r,"mousemove",a._delayedDragTouchMoveHandler),se(r,"touchmove",a._delayedDragTouchMoveHandler),t.supportPointer&&se(r,"pointermove",a._delayedDragTouchMoveHandler),a._dragStartTimer=setTimeout(l,t.delay)}else l()}},_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(){H&&An(H),clearTimeout(this._dragStartTimer),this._disableDelayedDragEvents()},_disableDelayedDragEvents:function(){var e=this.el.ownerDocument;ie(e,"mouseup",this._disableDelayedDrag),ie(e,"touchend",this._disableDelayedDrag),ie(e,"touchcancel",this._disableDelayedDrag),ie(e,"mousemove",this._delayedDragTouchMoveHandler),ie(e,"touchmove",this._delayedDragTouchMoveHandler),ie(e,"pointermove",this._delayedDragTouchMoveHandler)},_triggerDragStart:function(e,n){n=n||e.pointerType=="touch"&&e,!this.nativeDraggable||n?this.options.supportPointer?se(document,"pointermove",this._onTouchMove):n?se(document,"touchmove",this._onTouchMove):se(document,"mousemove",this._onTouchMove):(se(H,"dragend",this),se(xe,"dragstart",this._onDragStart));try{document.selection?un(function(){document.selection.empty()}):window.getSelection().removeAllRanges()}catch{}},_dragStarted:function(e,n){if(Tt=!1,xe&&H){ke("dragStarted",this,{evt:n}),this.nativeDraggable&&se(document,"dragover",zi);var i=this.options;!e&&Oe(H,i.dragClass,!1),Oe(H,i.ghostClass,!0),q.active=this,e&&this._appendGhost(),Be({sortable:this,name:"start",originalEvent:n})}else this._nulling()},_emulateDragOver:function(){if(et){this._lastX=et.clientX,this._lastY=et.clientY,Ca();for(var e=document.elementFromPoint(et.clientX,et.clientY),n=e;e&&e.shadowRoot&&(e=e.shadowRoot.elementFromPoint(et.clientX,et.clientY),e!==n);)n=e;if(H.parentNode[Ue]._isOutsideThisEl(e),n)do{if(n[Ue]){var i=void 0;if(i=n[Ue]._onDragOver({clientX:et.clientX,clientY:et.clientY,target:e,rootEl:n}),i&&!this.options.dragoverBubble)break}e=n}while(n=n.parentNode);Ta()}},_onTouchMove:function(e){if(gt){var n=this.options,i=n.fallbackTolerance,a=n.fallbackOffset,o=e.touches?e.touches[0]:e,t=ae&&St(ae,!0),r=ae&&t&&t.a,l=ae&&t&&t.d,s=en&&Le&&Jn(Le),u=(o.clientX-gt.clientX+a.x)/(r||1)+(s?s[0]-Dn[0]:0)/(r||1),c=(o.clientY-gt.clientY+a.y)/(l||1)+(s?s[1]-Dn[1]:0)/(l||1);if(!q.active&&!Tt){if(i&&Math.max(Math.abs(o.clientX-this._lastX),Math.abs(o.clientY-this._lastY))=0&&(Be({rootEl:we,name:"add",toEl:we,fromEl:xe,originalEvent:e}),Be({sortable:this,name:"remove",toEl:we,originalEvent:e}),Be({rootEl:we,name:"sort",toEl:we,fromEl:xe,originalEvent:e}),Be({sortable:this,name:"sort",toEl:we,originalEvent:e})),Me&&Me.save()):Ye!==wt&&Ye>=0&&(Be({sortable:this,name:"update",toEl:we,originalEvent:e}),Be({sortable:this,name:"sort",toEl:we,originalEvent:e})),q.active&&((Ye==null||Ye===-1)&&(Ye=wt,ct=kt),Be({sortable:this,name:"end",toEl:we,originalEvent:e}),this.save()))),this._nulling()},_nulling:function(){ke("nulling",this),xe=H=we=ae=bt=De=ln=ft=gt=et=Ut=Ye=ct=wt=kt=Ot=zt=Me=qt=q.dragged=q.ghost=q.clone=q.active=null,mn.forEach(function(e){e.checked=!0}),mn.length=Tn=wn=0},handleEvent:function(e){switch(e.type){case"drop":case"dragend":this._onDrop(e);break;case"dragenter":case"dragover":H&&(this._onDragOver(e),Wi(e));break;case"selectstart":e.preventDefault();break}},toArray:function(){for(var e=[],n,i=this.el.children,a=0,o=i.length,t=this.options;ai.right+a||d.clientX<=i.right&&d.clientY>i.bottom&&d.clientX>=i.left:d.clientX>i.right&&d.clientY>i.top||d.clientX<=i.right&&d.clientY>i.bottom+a}function Zi(d,e,n,i,a,o,t,r){var l=i?d.clientY:d.clientX,s=i?n.height:n.width,u=i?n.top:n.left,c=i?n.bottom:n.right,v=!1;if(!t){if(r&&snu+s*o/2:lc-sn)return-zt}else if(l>u+s*(1-a)/2&&lc-s*o/2)?l>u+s/2?1:-1:0}function Qi(d){return Ae(H)1&&(ne.forEach(function(r){o.addAnimationState({target:r,rect:ze?Se(r):t}),On(r),r.fromRect=t,i.removeAnimationState(r)}),ze=!1,rl(!this.options.removeCloneOnHide,a))},dragOverCompleted:function(n){var i=n.sortable,a=n.isOwner,o=n.insertion,t=n.activeSortable,r=n.parentEl,l=n.putSortable,s=this.options;if(o){if(a&&t._hideClone(),Mt=!1,s.animation&&ne.length>1&&(ze||!a&&!t.options.sort&&!l)){var u=Se(be,!1,!0,!0);ne.forEach(function(v){v!==be&&(Zn(v,u),r.appendChild(v))}),ze=!0}if(!a)if(ze||an(),ne.length>1){var c=nn;t._showClone(i),t.options.animation&&!nn&&c&&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,o=n.activeSortable;if(ne.forEach(function(r){r.thisAnimationDuration=null}),o.options.animation&&!a&&o.multiDrag.isMultiDrag){Nt=Qe({},i);var t=St(be,!0);Nt.top-=t.f,Nt.left-=t.e}},dragOverAnimationComplete:function(){ze&&(ze=!1,an())},drop:function(n){var i=n.originalEvent,a=n.rootEl,o=n.parentEl,t=n.sortable,r=n.dispatchSortableEvent,l=n.oldIndex,s=n.putSortable,u=s||this.sortable;if(i){var c=this.options,v=o.children;if(!Ct)if(c.multiDragKey&&!this.multiDragKeyDown&&this._deselectMultiDrag(),Oe(be,c.selectedClass,!~ne.indexOf(be)),~ne.indexOf(be))ne.splice(ne.indexOf(be),1),jt=null,Lt({sortable:t,rootEl:a,name:"deselect",targetEl:be});else{if(ne.push(be),Lt({sortable:t,rootEl:a,name:"select",targetEl:be}),i.shiftKey&&jt&&t.el.contains(jt)){var f=Ae(jt),p=Ae(be);if(~f&&~p&&f!==p){var h,y;for(p>f?(y=f,h=p):(y=p,h=f+1);y1){var S=Se(be),m=Ae(be,":not(."+this.options.selectedClass+")");if(!Mt&&c.animation&&(be.thisAnimationDuration=null),u.captureAnimationState(),!Mt&&(c.animation&&(be.fromRect=S,ne.forEach(function(E){if(E.thisAnimationDuration=null,E!==be){var C=ze?Se(E):S;E.fromRect=C,u.addAnimationState({target:E,rect:C})}})),an(),ne.forEach(function(E){v[m]?o.insertBefore(E,v[m]):o.appendChild(E),m++}),l===Ae(be))){var x=!1;ne.forEach(function(E){if(E.sortableIndex!==Ae(E)){x=!0;return}}),x&&r("update")}ne.forEach(function(E){On(E)}),u.animateAll()}tt=u}(a===o||s&&s.lastPutMode!=="clone")&&We.forEach(function(E){E.parentNode&&E.parentNode.removeChild(E)})}},nullingGlobal:function(){this.isMultiDrag=Ct=!1,We.length=0},destroyGlobal:function(){this._deselectMultiDrag(),ie(document,"pointerup",this._deselectMultiDrag),ie(document,"mouseup",this._deselectMultiDrag),ie(document,"touchend",this._deselectMultiDrag),ie(document,"keydown",this._checkKeyDown),ie(document,"keyup",this._checkKeyUp)},_deselectMultiDrag:function(n){if(!(typeof Ct<"u"&&Ct)&&tt===this.sortable&&!(n&&nt(n.target,this.options.draggable,this.sortable.el,!1))&&!(n&&n.button!==0))for(;ne.length;){var i=ne[0];Oe(i,this.options.selectedClass,!1),ne.shift(),Lt({sortable:this.sortable,rootEl:this.sortable.el,name:"deselect",targetEl:i})}},_checkKeyDown:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!0)},_checkKeyUp:function(n){n.key===this.options.multiDragKey&&(this.multiDragKeyDown=!1)}},Qe(d,{pluginName:"multiDrag",utils:{select:function(n){var i=n.parentNode[Ue];!i||!i.options.multiDrag||~ne.indexOf(n)||(tt&&tt!==i&&(tt.multiDrag._deselectMultiDrag(),tt=i),Oe(n,i.options.selectedClass,!0),ne.push(n))},deselect:function(n){var i=n.parentNode[Ue],a=ne.indexOf(n);!i||!i.options.multiDrag||!~a||(Oe(n,i.options.selectedClass,!1),ne.splice(a,1))}},eventProperties:function(){var n=this,i=[],a=[];return ne.forEach(function(o){i.push({multiDragElement:o,index:o.sortableIndex});var t;ze&&o!==be?t=-1:ze?t=Ae(o,":not(."+n.options.selectedClass+")"):t=Ae(o),a.push({multiDragElement:o,index:t})}),{items:wi(ne),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 rl(d,e){ne.forEach(function(n,i){var a=e.children[n.sortableIndex+(d?Number(i):0)];a?e.insertBefore(n,a):e.appendChild(n)})}function ta(d,e){We.forEach(function(n,i){var a=e.children[n.sortableIndex+(d?Number(i):0)];a?e.insertBefore(n,a):e.appendChild(n)})}function an(){ne.forEach(function(d){d!==be&&d.parentNode&&d.parentNode.removeChild(d)})}q.mount(new el);q.mount(Hn,Bn);const ol=Object.freeze(Object.defineProperty({__proto__:null,MultiDrag:al,Sortable:q,Swap:tl,default:q},Symbol.toStringTag,{value:"Module"})),il=ma(ol);(function(d,e){(function(i,a){d.exports=a(Ii,il)})(typeof self<"u"?self:Fn,function(n,i){return function(a){var o={};function t(r){if(o[r])return o[r].exports;var l=o[r]={i:r,l:!1,exports:{}};return a[r].call(l.exports,l,l.exports,t),l.l=!0,l.exports}return t.m=a,t.c=o,t.d=function(r,l,s){t.o(r,l)||Object.defineProperty(r,l,{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,l){if(l&1&&(r=t(r)),l&8||l&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}),l&2&&typeof r!="string")for(var u in r)t.d(s,u,(function(c){return r[c]}).bind(null,u));return s},t.n=function(r){var l=r&&r.__esModule?function(){return r.default}:function(){return r};return t.d(l,"a",l),l},t.o=function(r,l){return Object.prototype.hasOwnProperty.call(r,l)},t.p="",t(t.s="fb15")}({"00ee":function(a,o,t){var r=t("b622"),l=r("toStringTag"),s={};s[l]="z",a.exports=String(s)==="[object z]"},"0366":function(a,o,t){var r=t("1c0b");a.exports=function(l,s,u){if(r(l),s===void 0)return l;switch(u){case 0:return function(){return l.call(s)};case 1:return function(c){return l.call(s,c)};case 2:return function(c,v){return l.call(s,c,v)};case 3:return function(c,v,f){return l.call(s,c,v,f)}}return function(){return l.apply(s,arguments)}}},"057f":function(a,o,t){var r=t("fc6a"),l=t("241c").f,s={}.toString,u=typeof window=="object"&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(v){try{return l(v)}catch{return u.slice()}};a.exports.f=function(f){return u&&s.call(f)=="[object Window]"?c(f):l(r(f))}},"06cf":function(a,o,t){var r=t("83ab"),l=t("d1e7"),s=t("5c6c"),u=t("fc6a"),c=t("c04e"),v=t("5135"),f=t("0cfb"),p=Object.getOwnPropertyDescriptor;o.f=r?p:function(y,S){if(y=u(y),S=c(S,!0),f)try{return p(y,S)}catch{}if(v(y,S))return s(!l.f.call(y,S),y[S])}},"0cfb":function(a,o,t){var r=t("83ab"),l=t("d039"),s=t("cc12");a.exports=!r&&!l(function(){return Object.defineProperty(s("div"),"a",{get:function(){return 7}}).a!=7})},"13d5":function(a,o,t){var r=t("23e7"),l=t("d58f").left,s=t("a640"),u=t("ae40"),c=s("reduce"),v=u("reduce",{1:0});r({target:"Array",proto:!0,forced:!c||!v},{reduce:function(p){return l(this,p,arguments.length,arguments.length>1?arguments[1]:void 0)}})},"14c3":function(a,o,t){var r=t("c6b6"),l=t("9263");a.exports=function(s,u){var c=s.exec;if(typeof c=="function"){var v=c.call(s,u);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 l.call(s,u)}},"159b":function(a,o,t){var r=t("da84"),l=t("fdbc"),s=t("17c2"),u=t("9112");for(var c in l){var v=r[c],f=v&&v.prototype;if(f&&f.forEach!==s)try{u(f,"forEach",s)}catch{f.forEach=s}}},"17c2":function(a,o,t){var r=t("b727").forEach,l=t("a640"),s=t("ae40"),u=l("forEach"),c=s("forEach");a.exports=!u||!c?function(f){return r(this,f,arguments.length>1?arguments[1]:void 0)}:[].forEach},"1be4":function(a,o,t){var r=t("d066");a.exports=r("document","documentElement")},"1c0b":function(a,o){a.exports=function(t){if(typeof t!="function")throw TypeError(String(t)+" is not a function");return t}},"1c7e":function(a,o,t){var r=t("b622"),l=r("iterator"),s=!1;try{var u=0,c={next:function(){return{done:!!u++}},return:function(){s=!0}};c[l]=function(){return this},Array.from(c,function(){throw 2})}catch{}a.exports=function(v,f){if(!f&&!s)return!1;var p=!1;try{var h={};h[l]=function(){return{next:function(){return{done:p=!0}}}},v(h)}catch{}return p}},"1d80":function(a,o){a.exports=function(t){if(t==null)throw TypeError("Can't call method on "+t);return t}},"1dde":function(a,o,t){var r=t("d039"),l=t("b622"),s=t("2d00"),u=l("species");a.exports=function(c){return s>=51||!r(function(){var v=[],f=v.constructor={};return f[u]=function(){return{foo:1}},v[c](Boolean).foo!==1})}},"23cb":function(a,o,t){var r=t("a691"),l=Math.max,s=Math.min;a.exports=function(u,c){var v=r(u);return v<0?l(v+c,0):s(v,c)}},"23e7":function(a,o,t){var r=t("da84"),l=t("06cf").f,s=t("9112"),u=t("6eeb"),c=t("ce4e"),v=t("e893"),f=t("94ca");a.exports=function(p,h){var y=p.target,S=p.global,m=p.stat,x,E,C,I,T,R;if(S?E=r:m?E=r[y]||c(y,{}):E=(r[y]||{}).prototype,E)for(C in h){if(T=h[C],p.noTargetGet?(R=l(E,C),I=R&&R.value):I=E[C],x=f(S?C:y+(m?".":"#")+C,p.forced),!x&&I!==void 0){if(typeof T==typeof I)continue;v(T,I)}(p.sham||I&&I.sham)&&s(T,"sham",!0),u(E,C,T,p)}}},"241c":function(a,o,t){var r=t("ca84"),l=t("7839"),s=l.concat("length","prototype");o.f=Object.getOwnPropertyNames||function(c){return r(c,s)}},"25f0":function(a,o,t){var r=t("6eeb"),l=t("825a"),s=t("d039"),u=t("ad6d"),c="toString",v=RegExp.prototype,f=v[c],p=s(function(){return f.call({source:"a",flags:"b"})!="/a/b"}),h=f.name!=c;(p||h)&&r(RegExp.prototype,c,function(){var S=l(this),m=String(S.source),x=S.flags,E=String(x===void 0&&S instanceof RegExp&&!("flags"in v)?u.call(S):x);return"/"+m+"/"+E},{unsafe:!0})},"2ca0":function(a,o,t){var r=t("23e7"),l=t("06cf").f,s=t("50c4"),u=t("5a34"),c=t("1d80"),v=t("ab13"),f=t("c430"),p="".startsWith,h=Math.min,y=v("startsWith"),S=!f&&!y&&!!function(){var m=l(String.prototype,"startsWith");return m&&!m.writable}();r({target:"String",proto:!0,forced:!S&&!y},{startsWith:function(x){var E=String(c(this));u(x);var C=s(h(arguments.length>1?arguments[1]:void 0,E.length)),I=String(x);return p?p.call(E,I,C):E.slice(C,C+I.length)===I}})},"2d00":function(a,o,t){var r=t("da84"),l=t("342f"),s=r.process,u=s&&s.versions,c=u&&u.v8,v,f;c?(v=c.split("."),f=v[0]+v[1]):l&&(v=l.match(/Edge\/(\d+)/),(!v||v[1]>=74)&&(v=l.match(/Chrome\/(\d+)/),v&&(f=v[1]))),a.exports=f&&+f},"342f":function(a,o,t){var r=t("d066");a.exports=r("navigator","userAgent")||""},"35a1":function(a,o,t){var r=t("f5df"),l=t("3f8c"),s=t("b622"),u=s("iterator");a.exports=function(c){if(c!=null)return c[u]||c["@@iterator"]||l[r(c)]}},"37e8":function(a,o,t){var r=t("83ab"),l=t("9bf2"),s=t("825a"),u=t("df75");a.exports=r?Object.defineProperties:function(v,f){s(v);for(var p=u(f),h=p.length,y=0,S;h>y;)l.f(v,S=p[y++],f[S]);return v}},"3bbe":function(a,o,t){var r=t("861d");a.exports=function(l){if(!r(l)&&l!==null)throw TypeError("Can't set "+String(l)+" as a prototype");return l}},"3ca3":function(a,o,t){var r=t("6547").charAt,l=t("69f3"),s=t("7dd0"),u="String Iterator",c=l.set,v=l.getterFor(u);s(String,"String",function(f){c(this,{type:u,string:String(f),index:0})},function(){var p=v(this),h=p.string,y=p.index,S;return y>=h.length?{value:void 0,done:!0}:(S=r(h,y),p.index+=S.length,{value:S,done:!1})})},"3f8c":function(a,o){a.exports={}},4160:function(a,o,t){var r=t("23e7"),l=t("17c2");r({target:"Array",proto:!0,forced:[].forEach!=l},{forEach:l})},"428f":function(a,o,t){var r=t("da84");a.exports=r},"44ad":function(a,o,t){var r=t("d039"),l=t("c6b6"),s="".split;a.exports=r(function(){return!Object("z").propertyIsEnumerable(0)})?function(u){return l(u)=="String"?s.call(u,""):Object(u)}:Object},"44d2":function(a,o,t){var r=t("b622"),l=t("7c73"),s=t("9bf2"),u=r("unscopables"),c=Array.prototype;c[u]==null&&s.f(c,u,{configurable:!0,value:l(null)}),a.exports=function(v){c[u][v]=!0}},"44e7":function(a,o,t){var r=t("861d"),l=t("c6b6"),s=t("b622"),u=s("match");a.exports=function(c){var v;return r(c)&&((v=c[u])!==void 0?!!v:l(c)=="RegExp")}},4930:function(a,o,t){var r=t("d039");a.exports=!!Object.getOwnPropertySymbols&&!r(function(){return!String(Symbol())})},"4d64":function(a,o,t){var r=t("fc6a"),l=t("50c4"),s=t("23cb"),u=function(c){return function(v,f,p){var h=r(v),y=l(h.length),S=s(p,y),m;if(c&&f!=f){for(;y>S;)if(m=h[S++],m!=m)return!0}else for(;y>S;S++)if((c||S in h)&&h[S]===f)return c||S||0;return!c&&-1}};a.exports={includes:u(!0),indexOf:u(!1)}},"4de4":function(a,o,t){var r=t("23e7"),l=t("b727").filter,s=t("1dde"),u=t("ae40"),c=s("filter"),v=u("filter");r({target:"Array",proto:!0,forced:!c||!v},{filter:function(p){return l(this,p,arguments.length>1?arguments[1]:void 0)}})},"4df4":function(a,o,t){var r=t("0366"),l=t("7b0b"),s=t("9bdd"),u=t("e95a"),c=t("50c4"),v=t("8418"),f=t("35a1");a.exports=function(h){var y=l(h),S=typeof this=="function"?this:Array,m=arguments.length,x=m>1?arguments[1]:void 0,E=x!==void 0,C=f(y),I=0,T,R,w,N,L,V;if(E&&(x=r(x,m>2?arguments[2]:void 0,2)),C!=null&&!(S==Array&&u(C)))for(N=C.call(y),L=N.next,R=new S;!(w=L.call(N)).done;I++)V=E?s(N,x,[w.value,I],!0):w.value,v(R,I,V);else for(T=c(y.length),R=new S(T);T>I;I++)V=E?x(y[I],I):y[I],v(R,I,V);return R.length=I,R}},"4fad":function(a,o,t){var r=t("23e7"),l=t("6f53").entries;r({target:"Object",stat:!0},{entries:function(u){return l(u)}})},"50c4":function(a,o,t){var r=t("a691"),l=Math.min;a.exports=function(s){return s>0?l(r(s),9007199254740991):0}},5135:function(a,o){var t={}.hasOwnProperty;a.exports=function(r,l){return t.call(r,l)}},5319:function(a,o,t){var r=t("d784"),l=t("825a"),s=t("7b0b"),u=t("50c4"),c=t("a691"),v=t("1d80"),f=t("8aa5"),p=t("14c3"),h=Math.max,y=Math.min,S=Math.floor,m=/\$([$&'`]|\d\d?|<[^>]*>)/g,x=/\$([$&'`]|\d\d?)/g,E=function(C){return C===void 0?C:String(C)};r("replace",2,function(C,I,T,R){var w=R.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE,N=R.REPLACE_KEEPS_$0,L=w?"$":"$0";return[function(j,k){var K=v(this),D=j==null?void 0:j[C];return D!==void 0?D.call(j,K,k):I.call(String(K),j,k)},function(O,j){if(!w&&N||typeof j=="string"&&j.indexOf(L)===-1){var k=T(I,O,this,j);if(k.done)return k.value}var K=l(O),D=String(this),G=typeof j=="function";G||(j=String(j));var ee=K.global;if(ee){var he=K.unicode;K.lastIndex=0}for(var me=[];;){var le=p(K,D);if(le===null||(me.push(le),!ee))break;var Ie=String(le[0]);Ie===""&&(K.lastIndex=f(D,u(K.lastIndex),he))}for(var ge="",ye=0,ce=0;ce=ye&&(ge+=D.slice(ye,Fe)+Pe,ye=Fe+ve.length)}return ge+D.slice(ye)}];function V(O,j,k,K,D,G){var ee=k+O.length,he=K.length,me=x;return D!==void 0&&(D=s(D),me=m),I.call(G,me,function(le,Ie){var ge;switch(Ie.charAt(0)){case"$":return"$";case"&":return O;case"`":return j.slice(0,k);case"'":return j.slice(ee);case"<":ge=D[Ie.slice(1,-1)];break;default:var ye=+Ie;if(ye===0)return le;if(ye>he){var ce=S(ye/10);return ce===0?le:ce<=he?K[ce-1]===void 0?Ie.charAt(1):K[ce-1]+Ie.charAt(1):le}ge=K[ye-1]}return ge===void 0?"":ge})}})},5692:function(a,o,t){var r=t("c430"),l=t("c6cd");(a.exports=function(s,u){return l[s]||(l[s]=u!==void 0?u:{})})("versions",[]).push({version:"3.6.5",mode:r?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},"56ef":function(a,o,t){var r=t("d066"),l=t("241c"),s=t("7418"),u=t("825a");a.exports=r("Reflect","ownKeys")||function(v){var f=l.f(u(v)),p=s.f;return p?f.concat(p(v)):f}},"5a34":function(a,o,t){var r=t("44e7");a.exports=function(l){if(r(l))throw TypeError("The method doesn't accept regular expressions");return l}},"5c6c":function(a,o){a.exports=function(t,r){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:r}}},"5db7":function(a,o,t){var r=t("23e7"),l=t("a2bf"),s=t("7b0b"),u=t("50c4"),c=t("1c0b"),v=t("65f0");r({target:"Array",proto:!0},{flatMap:function(p){var h=s(this),y=u(h.length),S;return c(p),S=v(h,0),S.length=l(S,h,h,y,0,1,p,arguments.length>1?arguments[1]:void 0),S}})},6547:function(a,o,t){var r=t("a691"),l=t("1d80"),s=function(u){return function(c,v){var f=String(l(c)),p=r(v),h=f.length,y,S;return p<0||p>=h?u?"":void 0:(y=f.charCodeAt(p),y<55296||y>56319||p+1===h||(S=f.charCodeAt(p+1))<56320||S>57343?u?f.charAt(p):y:u?f.slice(p,p+2):(y-55296<<10)+(S-56320)+65536)}};a.exports={codeAt:s(!1),charAt:s(!0)}},"65f0":function(a,o,t){var r=t("861d"),l=t("e8b5"),s=t("b622"),u=s("species");a.exports=function(c,v){var f;return l(c)&&(f=c.constructor,typeof f=="function"&&(f===Array||l(f.prototype))?f=void 0:r(f)&&(f=f[u],f===null&&(f=void 0))),new(f===void 0?Array:f)(v===0?0:v)}},"69f3":function(a,o,t){var r=t("7f9a"),l=t("da84"),s=t("861d"),u=t("9112"),c=t("5135"),v=t("f772"),f=t("d012"),p=l.WeakMap,h,y,S,m=function(w){return S(w)?y(w):h(w,{})},x=function(w){return function(N){var L;if(!s(N)||(L=y(N)).type!==w)throw TypeError("Incompatible receiver, "+w+" required");return L}};if(r){var E=new p,C=E.get,I=E.has,T=E.set;h=function(w,N){return T.call(E,w,N),N},y=function(w){return C.call(E,w)||{}},S=function(w){return I.call(E,w)}}else{var R=v("state");f[R]=!0,h=function(w,N){return u(w,R,N),N},y=function(w){return c(w,R)?w[R]:{}},S=function(w){return c(w,R)}}a.exports={set:h,get:y,has:S,enforce:m,getterFor:x}},"6eeb":function(a,o,t){var r=t("da84"),l=t("9112"),s=t("5135"),u=t("ce4e"),c=t("8925"),v=t("69f3"),f=v.get,p=v.enforce,h=String(String).split("String");(a.exports=function(y,S,m,x){var E=x?!!x.unsafe:!1,C=x?!!x.enumerable:!1,I=x?!!x.noTargetGet:!1;if(typeof m=="function"&&(typeof S=="string"&&!s(m,"name")&&l(m,"name",S),p(m).source=h.join(typeof S=="string"?S:"")),y===r){C?y[S]=m:u(S,m);return}else E?!I&&y[S]&&(C=!0):delete y[S];C?y[S]=m:l(y,S,m)})(Function.prototype,"toString",function(){return typeof this=="function"&&f(this).source||c(this)})},"6f53":function(a,o,t){var r=t("83ab"),l=t("df75"),s=t("fc6a"),u=t("d1e7").f,c=function(v){return function(f){for(var p=s(f),h=l(p),y=h.length,S=0,m=[],x;y>S;)x=h[S++],(!r||u.call(p,x))&&m.push(v?[x,p[x]]:p[x]);return m}};a.exports={entries:c(!0),values:c(!1)}},"73d9":function(a,o,t){var r=t("44d2");r("flatMap")},7418:function(a,o){o.f=Object.getOwnPropertySymbols},"746f":function(a,o,t){var r=t("428f"),l=t("5135"),s=t("e538"),u=t("9bf2").f;a.exports=function(c){var v=r.Symbol||(r.Symbol={});l(v,c)||u(v,c,{value:s.f(c)})}},7839:function(a,o){a.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},"7b0b":function(a,o,t){var r=t("1d80");a.exports=function(l){return Object(r(l))}},"7c73":function(a,o,t){var r=t("825a"),l=t("37e8"),s=t("7839"),u=t("d012"),c=t("1be4"),v=t("cc12"),f=t("f772"),p=">",h="<",y="prototype",S="script",m=f("IE_PROTO"),x=function(){},E=function(w){return h+S+p+w+h+"/"+S+p},C=function(w){w.write(E("")),w.close();var N=w.parentWindow.Object;return w=null,N},I=function(){var w=v("iframe"),N="java"+S+":",L;return w.style.display="none",c.appendChild(w),w.src=String(N),L=w.contentWindow.document,L.open(),L.write(E("document.F=Object")),L.close(),L.F},T,R=function(){try{T=document.domain&&new ActiveXObject("htmlfile")}catch{}R=T?C(T):I();for(var w=s.length;w--;)delete R[y][s[w]];return R()};u[m]=!0,a.exports=Object.create||function(N,L){var V;return N!==null?(x[y]=r(N),V=new x,x[y]=null,V[m]=N):V=R(),L===void 0?V:l(V,L)}},"7dd0":function(a,o,t){var r=t("23e7"),l=t("9ed3"),s=t("e163"),u=t("d2bb"),c=t("d44e"),v=t("9112"),f=t("6eeb"),p=t("b622"),h=t("c430"),y=t("3f8c"),S=t("ae93"),m=S.IteratorPrototype,x=S.BUGGY_SAFARI_ITERATORS,E=p("iterator"),C="keys",I="values",T="entries",R=function(){return this};a.exports=function(w,N,L,V,O,j,k){l(L,N,V);var K=function(ce){if(ce===O&&me)return me;if(!x&&ce in ee)return ee[ce];switch(ce){case C:return function(){return new L(this,ce)};case I:return function(){return new L(this,ce)};case T:return function(){return new L(this,ce)}}return function(){return new L(this)}},D=N+" Iterator",G=!1,ee=w.prototype,he=ee[E]||ee["@@iterator"]||O&&ee[O],me=!x&&he||K(O),le=N=="Array"&&ee.entries||he,Ie,ge,ye;if(le&&(Ie=s(le.call(new w)),m!==Object.prototype&&Ie.next&&(!h&&s(Ie)!==m&&(u?u(Ie,m):typeof Ie[E]!="function"&&v(Ie,E,R)),c(Ie,D,!0,!0),h&&(y[D]=R))),O==I&&he&&he.name!==I&&(G=!0,me=function(){return he.call(this)}),(!h||k)&&ee[E]!==me&&v(ee,E,me),y[N]=me,O)if(ge={values:K(I),keys:j?me:K(C),entries:K(T)},k)for(ye in ge)(x||G||!(ye in ee))&&f(ee,ye,ge[ye]);else r({target:N,proto:!0,forced:x||G},ge);return ge}},"7f9a":function(a,o,t){var r=t("da84"),l=t("8925"),s=r.WeakMap;a.exports=typeof s=="function"&&/native code/.test(l(s))},"825a":function(a,o,t){var r=t("861d");a.exports=function(l){if(!r(l))throw TypeError(String(l)+" is not an object");return l}},"83ab":function(a,o,t){var r=t("d039");a.exports=!r(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!=7})},8418:function(a,o,t){var r=t("c04e"),l=t("9bf2"),s=t("5c6c");a.exports=function(u,c,v){var f=r(c);f in u?l.f(u,f,s(0,v)):u[f]=v}},"861d":function(a,o){a.exports=function(t){return typeof t=="object"?t!==null:typeof t=="function"}},8875:function(a,o,t){var r,l,s;(function(u,c){l=[],r=c,s=typeof r=="function"?r.apply(o,l):r,s!==void 0&&(a.exports=s)})(typeof self<"u"?self:this,function(){function u(){var c=Object.getOwnPropertyDescriptor(document,"currentScript");if(!c&&"currentScript"in document&&document.currentScript||c&&c.get!==u&&document.currentScript)return document.currentScript;try{throw new Error}catch(T){var v=/.*at [^(]*\((.*):(.+):(.+)\)$/ig,f=/@([^@]*):(\d+):(\d+)\s*$/ig,p=v.exec(T.stack)||f.exec(T.stack),h=p&&p[1]||!1,y=p&&p[2]||!1,S=document.location.href.replace(document.location.hash,""),m,x,E,C=document.getElementsByTagName("script");h===S&&(m=document.documentElement.outerHTML,x=new RegExp("(?:[^\\n]+?\\n){0,"+(y-2)+"}[^<]*
+