iobroker.nspanel-lovelace-ui 2.0.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/README.md +23 -1
  2. package/admin/custom/assets/{Components-ZV6Oct8h.js → Components-CmMAsV3_.js} +1 -1
  3. package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1-By2aKBoA.js → _virtual_mf-localSharedImportMap___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1-BkHmfHY1.js} +1 -1
  4. package/admin/custom/assets/{_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BSAq68mg.js → _virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CgQerXGv.js} +2 -2
  5. package/admin/custom/assets/{_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-W4TRKMtg.js → _virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-BAwWzzku.js} +16 -16
  6. package/admin/custom/assets/{_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-BqcgeZy4.js → _virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-ajx7s9Xx.js} +1 -1
  7. package/admin/custom/assets/{hostInit-BmBU8UL8.js → hostInit-B98lvElv.js} +1 -1
  8. package/admin/custom/assets/{index-is2eOVsW.js → index-oHb08I2L.js} +2 -2
  9. package/admin/custom/assets/labelHover-CJxrQPnm.js +20 -0
  10. package/admin/custom/assets/{lib-BGn_60Er.js → lib-CTQHGx6D.js} +1 -1
  11. package/admin/custom/assets/{mf-entry-bootstrap-0-9d62b442.js → mf-entry-bootstrap-0-54bb8e71.js} +2 -2
  12. package/admin/custom/assets/virtualExposes-DRsfUiU8.js +1 -0
  13. package/admin/custom/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__AdminComponentEasyAccessSet__customComponents_js-BbJbzVrh.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__AdminComponentEasyAccessSet__customComponents_js-CrjORBYj.js} +1 -1
  14. package/admin/custom/assets/{virtual_mf-exposes___mfe_internal__AdminComponentEasyAccessSet__customComponents_js-C33D1S6-.js → virtual_mf-exposes___mfe_internal__AdminComponentEasyAccessSet__customComponents_js-Do7HsgD4.js} +2 -2
  15. package/admin/custom/customComponents.js +1 -1
  16. package/admin/custom/i18n/de.json +126 -9
  17. package/admin/custom/i18n/en.json +126 -9
  18. package/admin/custom/i18n/es.json +114 -9
  19. package/admin/custom/i18n/fr.json +114 -9
  20. package/admin/custom/i18n/it.json +114 -9
  21. package/admin/custom/i18n/nl.json +114 -9
  22. package/admin/custom/i18n/pl.json +114 -9
  23. package/admin/custom/i18n/pt.json +114 -9
  24. package/admin/custom/i18n/ru.json +114 -9
  25. package/admin/custom/i18n/uk.json +114 -9
  26. package/admin/custom/i18n/zh-cn.json +114 -9
  27. package/admin/custom/index.html +3 -3
  28. package/admin/custom/mf-manifest.json +1 -1
  29. package/admin/custom/mf-stats.json +1 -1
  30. package/admin/i18n/de/translations.json +126 -9
  31. package/admin/i18n/en/translations.json +126 -9
  32. package/admin/i18n/es/translations.json +114 -9
  33. package/admin/i18n/fr/translations.json +114 -9
  34. package/admin/i18n/it/translations.json +114 -9
  35. package/admin/i18n/nl/translations.json +114 -9
  36. package/admin/i18n/pl/translations.json +114 -9
  37. package/admin/i18n/pt/translations.json +114 -9
  38. package/admin/i18n/ru/translations.json +114 -9
  39. package/admin/i18n/uk/translations.json +114 -9
  40. package/admin/i18n/zh-cn/translations.json +114 -9
  41. package/admin/jsonConfig.json5 +2 -2
  42. package/build/lib/classes/Page.js +115 -0
  43. package/build/lib/classes/Page.js.map +2 -2
  44. package/build/lib/classes/baseClassPage.js +1 -1
  45. package/build/lib/classes/baseClassPage.js.map +2 -2
  46. package/build/lib/classes/config-manager.js +138 -23
  47. package/build/lib/classes/config-manager.js.map +2 -2
  48. package/build/lib/classes/navigation.js +22 -4
  49. package/build/lib/classes/navigation.js.map +2 -2
  50. package/build/lib/classes/panel-channel.js.map +1 -1
  51. package/build/lib/configuration/admin-page-item.js +8 -0
  52. package/build/lib/configuration/admin-page-item.js.map +2 -2
  53. package/build/lib/configuration/admin-screensaver-item.js +28 -17
  54. package/build/lib/configuration/admin-screensaver-item.js.map +2 -2
  55. package/build/lib/configuration/admin-screensaver.js +20 -8
  56. package/build/lib/configuration/admin-screensaver.js.map +2 -2
  57. package/build/lib/configuration/admin.js +104 -29
  58. package/build/lib/configuration/admin.js.map +2 -2
  59. package/build/lib/configuration/script-to-admin.js +70 -17
  60. package/build/lib/configuration/script-to-admin.js.map +2 -2
  61. package/build/lib/const/definition.js +42 -0
  62. package/build/lib/const/definition.js.map +2 -2
  63. package/build/lib/const/page-item-defaults.js +8 -0
  64. package/build/lib/const/page-item-defaults.js.map +2 -2
  65. package/build/lib/const/tools.js +15 -0
  66. package/build/lib/const/tools.js.map +2 -2
  67. package/build/lib/controller/controller.js +5 -2
  68. package/build/lib/controller/controller.js.map +2 -2
  69. package/build/lib/controller/panel-message.js +32 -0
  70. package/build/lib/controller/panel-message.js.map +2 -2
  71. package/build/lib/controller/panel.js +96 -21
  72. package/build/lib/controller/panel.js.map +2 -2
  73. package/build/lib/controller/states-controller.js +66 -0
  74. package/build/lib/controller/states-controller.js.map +2 -2
  75. package/build/lib/pages/pageAlarm.js +1 -1
  76. package/build/lib/pages/pageAlarm.js.map +1 -1
  77. package/build/lib/pages/pageChart.js +87 -32
  78. package/build/lib/pages/pageChart.js.map +3 -3
  79. package/build/lib/pages/pageChartPie.js +283 -0
  80. package/build/lib/pages/pageChartPie.js.map +7 -0
  81. package/build/lib/pages/pageEntities.js +1 -1
  82. package/build/lib/pages/pageEntities.js.map +1 -1
  83. package/build/lib/pages/pageGrid.js +1 -1
  84. package/build/lib/pages/pageGrid.js.map +1 -1
  85. package/build/lib/pages/pageItem.js +645 -335
  86. package/build/lib/pages/pageItem.js.map +3 -3
  87. package/build/lib/pages/pageMenu.js +2 -0
  88. package/build/lib/pages/pageMenu.js.map +2 -2
  89. package/build/lib/pages/pageQR.js +5 -4
  90. package/build/lib/pages/pageQR.js.map +2 -2
  91. package/build/lib/pages/pageThermo.js +19 -4
  92. package/build/lib/pages/pageThermo.js.map +2 -2
  93. package/build/lib/pages/pageThermo2.js +3 -2
  94. package/build/lib/pages/pageThermo2.js.map +2 -2
  95. package/build/lib/pages/pie-scale.js +164 -0
  96. package/build/lib/pages/pie-scale.js.map +7 -0
  97. package/build/lib/pages/screensaver-timer.js +412 -0
  98. package/build/lib/pages/screensaver-timer.js.map +7 -0
  99. package/build/lib/pages/screensaver.js +605 -21
  100. package/build/lib/pages/screensaver.js.map +2 -2
  101. package/build/lib/templates/system-templates.js +1 -1
  102. package/build/lib/templates/system-templates.js.map +2 -2
  103. package/build/lib/templates/template-info.js +8 -5
  104. package/build/lib/templates/template-info.js.map +2 -2
  105. package/build/lib/templates/text.js +8 -0
  106. package/build/lib/templates/text.js.map +2 -2
  107. package/build/lib/types/adminShareConfig.js +374 -4
  108. package/build/lib/types/adminShareConfig.js.map +3 -3
  109. package/build/lib/types/function-and-const.js +14 -7
  110. package/build/lib/types/function-and-const.js.map +2 -2
  111. package/build/lib/types/navigationEdit.js +79 -0
  112. package/build/lib/types/navigationEdit.js.map +2 -2
  113. package/build/lib/types/pages.js.map +1 -1
  114. package/build/lib/types/types.js.map +1 -1
  115. package/build/lib/web/virtual-panel-channel.js +18 -0
  116. package/build/lib/web/virtual-panel-channel.js.map +2 -2
  117. package/build/lib/web/virtual-panel-manager.js +2 -0
  118. package/build/lib/web/virtual-panel-manager.js.map +2 -2
  119. package/build/main.js +15 -6
  120. package/build/main.js.map +2 -2
  121. package/io-package.json +14 -14
  122. package/package.json +3 -1
  123. package/script/build-doc-page.ts +458 -0
  124. package/script/example_sendTo_script_iobroker.ts +12 -1
  125. package/script/globalPageConfig.ts +6 -0
  126. package/www/assets/index-DkuP6z3-.js +31 -0
  127. package/www/index.html +1 -1
  128. package/admin/custom/assets/labelHover-CeGdm2c0.js +0 -20
  129. package/admin/custom/assets/virtualExposes-D4B19Jfu.js +0 -1
  130. package/www/assets/index-FKFY_BCI.js +0 -31
package/README.md CHANGED
@@ -44,7 +44,7 @@ With this custom UI, you can:
44
44
 
45
45
  ### Installation & Questions
46
46
 
47
- Adapter Wiki: https://github.com/ticaki/ioBroker.nspanel-lovelace-ui/wiki
47
+ Documentation: https://ticaki.github.io/ioBroker.nspanel-lovelace-ui (German and English, icon overview under `/icons/`)
48
48
  Adapter Community (ioBroker Forum): [Forum](https://forum.iobroker.net/topic/80055/alphatest-nspanel-lovelace-ui-v0-1-1)
49
49
 
50
50
  ---
@@ -58,6 +58,7 @@ Adapter Community (ioBroker Forum): [Forum](https://forum.iobroker.net/topic/800
58
58
  - [x] screensaver3
59
59
  - [x] cardChart
60
60
  - [x] cardLChart
61
+ - [x] cardPChart
61
62
  - [ ] cardLChart2 (new - in progress)
62
63
  - [x] cardEntities
63
64
  - [x] cardSchedule
@@ -157,6 +158,27 @@ The buzzer command follows Tasmota's format: `tone,duration,count,frequency`
157
158
  Placeholder for the next version (at the beginning of the line):
158
159
  ### **WORK IN PROGRESS**
159
160
  -->
161
+ ### 2.1.0 (2026-11-05)
162
+ - (ticaki) screensaver: a timer can replace the clock - from an on/off and a data state, from patterns for timers in changing slots or from a page item with a timer popup; it shows the remaining minutes in the color of the timer, the first tap switches to the clock; all screensaver modes and the web panel
163
+ - (ticaki) popupTimer repaired: an internal timer shows its time in the list, stays at 00:00 with Finish until confirmed and can be controlled through SET and STATUS; external timers count in seconds (ms with unit ms), the alarm clock uses local time and On/Off; a `level.timer` item can use the timer of the screensaver of its panel
164
+ - (ticaki) screensaver: new mode tiles with 5 values, 7 indicators (portrait panel: 4 values, 8 indicators), a larger clock, the info icon and two status bars; needs a TFT with the page screensaver5; the web panel draws the mode as well
165
+ - (ticaki) screensaver: a blind can be used as element - it shows one of 5 position icons and its position in %; tapping it as indicator only runs the configured action, it never moves the blind
166
+ - (ticaki) screensaver: new target "Screensaver" for page items and for prev, next, parent and home of a page (`///screensaver` in the script), new state `panels.<panel>.cmd.screenSaver.activate` shows it at once
167
+ - (ticaki) screensaver: a mode this adapter version does not know (e.g. after a downgrade) falls back to `standard` with a warning instead of breaking the screensaver, the stored configuration stays unchanged
168
+ - (ticaki) cardPChart: new page type "Pie chart" in the page configuration (needs the beta TFT 6.0.5 or newer on the EU panel) - up to five slices from numeric states with name, unit and color, optionally the average over a time range from a history/sql/influxdb instance, alternatively a script data point with the finished text; the web panel renders the card as well
169
+ - (ticaki) admin screensaver: page item templates can be configured per place, with the instances of the adapter as suggestions and template options (e.g. SOC limits of `text.battery.bydhvs`); on an indicator a template can act on tap; a new screensaver starts with two status icons coupled to the relays of the panel
170
+ - (ticaki) admin screensaver: uniform paging arrows for all areas except favorit, the alternate area can hold several items the panel rotates through, the notifications and options buttons moved below the panel picture; items of areas the chosen version does not show are no longer reported as a problem
171
+ - (ticaki) admin navigation: a start page no longer has a prev/next/parent of its own, its neighbours follow from the pages pointing at it (stored values are kept and apply again without the flag); a page named `main` without the flag counts as start page and asks for the flag in the log; empty fields show the neighbours the adapter resolved, a click on the label opens the target page, conflicting links get a warning; an explicit `next` is no longer overwritten when other pages chain in behind it
172
+ - (tt-tom17) page configuration: the unique id of a page is fixed once it was created, because renaming left the navigation of other pages pointing at the old name; the delete confirmation names the pages pointing at the page and offers to connect its previous and next page
173
+ - (tt-tom17) cardQR: a page with "No Password" (or free text, url or telephone code) no longer sends the stored wifi password to the panel - it was shown in clear text and was part of the scanned code
174
+ - (tt-tom17) cardThermo: the set temperature reached the panel multiplied by the step width (19.0 °C became 79.0 °C with a step of 0.5 °C)
175
+ - (tt-tom17) cardThermo2: the humidity row uses its own unit, the unit of the first row also applies to the set temperature
176
+ - (tt-tom17) cardAlarm: the disarm buttons also work without an arm button in the same row; a new page starts with "Arm" and "Disarm" filled in, the top button of both columns is mandatory, because the card cannot be left without them (the type "unlock" still needs one button only)
177
+ - (ticaki) panel: fewer page updates (at most one list update per 2 s for running timers, at least 1 s between updates of a page)
178
+ - (ticaki) the beta option now also applies to Tasmota: update and update indicator use the `tasmota-beta` version
179
+ - (tt-tom17) admin: the two hardware button buttons of a panel tile sit one below the other and show the relay state in their color, with a tooltip
180
+ - (tt-tom17) documentation: rewritten for the admin, complete in English as well and published on GitHub Pages, the admin links point there; missing translations of the page configuration are filled in
181
+
160
182
  ### 2.0.2 (2026-11-01)
161
183
  - (ticaki) admin: page item text size shows the pixel size of each font; icons only offer fonts 1, 3 and 4 (the others have no icons), font 5 is marked "ASCII only"
162
184
  - (ticaki) admin: the "..." button next to the item name is now "Dynamic name" (used only while the name is empty) and no longer offers unit and date format, which were ignored
@@ -1 +1 @@
1
- import{t as e}from"./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-W4TRKMtg.js";import{B as t}from"./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-NuvLowIN.js";import{Dt as n,Gn as r,H as i,In as a,Ki as o,Ln as s,Mn as c,Nn as l,Pn as u,Xn as d,br as f,hi as p,qi as m,qn as h,yr as g}from"./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BSAq68mg.js";import{a as _,c as v,d as y,f as b,i as x,n as S,o as C,p as w,r as T,s as E,t as D,u as O}from"./labelHover-CeGdm2c0.js";t();function k(e){if(typeof e!=`object`||!e)return!1;let t={...e};return typeof t.id==`string`&&typeof t.name==`string`&&typeof t.createdAt==`number`}function A(e){if(typeof e!=`object`||!e||!(`credentials`in e))return;let t={...e};if(Array.isArray(t.credentials))return{credentials:t.credentials.filter(k),active:t.active===!0,configured:t.configured===!0,secure:t.secure===!0}}var j=class extends e{constructor(e){super(e),p(this,`instance`,this.props.oContext.instance??`0`),p(this,`adapterName`,this.props.oContext.adapterName),p(this,`mounted`,!1),this.state={...this.state,keys:[],loading:!1,error:``,active:void 0}}async componentDidMount(){super.componentDidMount(),this.mounted=!0,await this.load()}componentWillUnmount(){this.mounted=!1,super.componentWillUnmount()}async load(){this.setState({loading:!0,error:``});try{let e=A(await this.props.oContext.socket.sendTo(`${this.adapterName}.${this.instance}`,`webFidoList`,{}));if(!this.mounted)return;if(!e){this.setState({loading:!1,error:this.getText(`webFidoLoadError`),keys:[],active:void 0});return}this.setState({loading:!1,keys:e.credentials,active:e.active})}catch{this.mounted&&this.setState({loading:!1,error:this.getText(`webFidoLoadError`),active:void 0})}}async remove(e){if(window.confirm(`${this.getText(`webFidoDeleteConfirm`)} "${e.name}"`)){this.setState({loading:!0,error:``});try{let t=await this.props.oContext.socket.sendTo(`${this.adapterName}.${this.instance}`,`webFidoDelete`,{id:e.id});if(!this.mounted)return;let n=A(t);n?this.setState({loading:!1,keys:n.credentials}):this.setState({loading:!1,error:this.getText(`webFidoLoadError`)})}catch{this.mounted&&this.setState({loading:!1,error:this.getText(`webFidoLoadError`)})}}}formatTime(e){if(!e)return this.getText(`webFidoNever`);try{return new Date(e).toLocaleString()}catch{return String(e)}}renderItem(e,t,p){let{keys:_,loading:v,error:y,active:b}=this.state;return m(h,{sx:{mt:1,p:2,border:1,borderColor:`divider`,borderRadius:1},children:[m(h,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:1},children:[o(r,{variant:`subtitle1`,sx:{flexGrow:1},children:this.getText(`webFidoKeys`)}),o(d,{size:`small`,variant:`outlined`,startIcon:o(n,{}),disabled:v,onClick:()=>{this.load()},children:this.getText(`webFidoRefresh`)})]}),y?o(g,{severity:`warning`,sx:{mb:1},children:y}):null,b===!1?o(g,{severity:`info`,sx:{mb:1},children:this.getText(`webFidoInactive`)}):null,_.length===0?o(r,{variant:`body2`,color:`text.secondary`,children:this.getText(`webFidoNoKeys`)}):m(c,{size:`small`,children:[o(a,{children:m(s,{children:[o(u,{children:this.getText(`webFidoKeyName`)}),o(u,{children:this.getText(`webFidoCreated`)}),o(u,{children:this.getText(`webFidoLastUsed`)}),o(u,{align:`right`})]})}),o(l,{children:_.map(e=>m(s,{children:[m(u,{children:[e.name,e.transports&&e.transports.length>0?o(r,{variant:`caption`,color:`text.secondary`,sx:{ml:1},children:e.transports.join(`, `)}):null]}),o(u,{children:this.formatTime(e.createdAt)}),o(u,{children:this.formatTime(e.lastUsedAt)}),o(u,{align:`right`,children:o(f,{size:`small`,color:`error`,disabled:v,title:this.getText(`webFidoDelete`),onClick:()=>{this.remove(e)},children:o(i,{fontSize:`small`})})})]},e.id))})]})]})}};D();var M={NavigationView:y,IconSelect:w,IconOverview:b,PageConfigManager:v,ScreensaverConfigManager:E,PageGlobalSettings:C,TabMaintain:_,TabPanelinfo:x,PageMQTTSetting:T,PagePanelOverview:S,WebFidoKeys:j,ChannelConfigDialog:O};export{M as default};
1
+ import{t as e}from"./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-BAwWzzku.js";import{B as t}from"./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-NuvLowIN.js";import{Dt as n,Gn as r,H as i,In as a,Ji as o,Ln as s,Mn as c,Nn as l,Pn as u,Xn as d,br as f,gi as p,qi as m,qn as h,yr as g}from"./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CgQerXGv.js";import{a as _,c as v,d as y,f as b,i as x,n as S,o as C,p as w,r as T,s as E,t as D,u as O}from"./labelHover-CJxrQPnm.js";t();function k(e){if(typeof e!=`object`||!e)return!1;let t={...e};return typeof t.id==`string`&&typeof t.name==`string`&&typeof t.createdAt==`number`}function A(e){if(typeof e!=`object`||!e||!(`credentials`in e))return;let t={...e};if(Array.isArray(t.credentials))return{credentials:t.credentials.filter(k),active:t.active===!0,configured:t.configured===!0,secure:t.secure===!0}}var j=class extends e{constructor(e){super(e),p(this,`instance`,this.props.oContext.instance??`0`),p(this,`adapterName`,this.props.oContext.adapterName),p(this,`mounted`,!1),this.state={...this.state,keys:[],loading:!1,error:``,active:void 0}}async componentDidMount(){super.componentDidMount(),this.mounted=!0,await this.load()}componentWillUnmount(){this.mounted=!1,super.componentWillUnmount()}async load(){this.setState({loading:!0,error:``});try{let e=A(await this.props.oContext.socket.sendTo(`${this.adapterName}.${this.instance}`,`webFidoList`,{}));if(!this.mounted)return;if(!e){this.setState({loading:!1,error:this.getText(`webFidoLoadError`),keys:[],active:void 0});return}this.setState({loading:!1,keys:e.credentials,active:e.active})}catch{this.mounted&&this.setState({loading:!1,error:this.getText(`webFidoLoadError`),active:void 0})}}async remove(e){if(window.confirm(`${this.getText(`webFidoDeleteConfirm`)} "${e.name}"`)){this.setState({loading:!0,error:``});try{let t=await this.props.oContext.socket.sendTo(`${this.adapterName}.${this.instance}`,`webFidoDelete`,{id:e.id});if(!this.mounted)return;let n=A(t);n?this.setState({loading:!1,keys:n.credentials}):this.setState({loading:!1,error:this.getText(`webFidoLoadError`)})}catch{this.mounted&&this.setState({loading:!1,error:this.getText(`webFidoLoadError`)})}}}formatTime(e){if(!e)return this.getText(`webFidoNever`);try{return new Date(e).toLocaleString()}catch{return String(e)}}renderItem(e,t,p){let{keys:_,loading:v,error:y,active:b}=this.state;return o(h,{sx:{mt:1,p:2,border:1,borderColor:`divider`,borderRadius:1},children:[o(h,{sx:{display:`flex`,alignItems:`center`,gap:1,mb:1},children:[m(r,{variant:`subtitle1`,sx:{flexGrow:1},children:this.getText(`webFidoKeys`)}),m(d,{size:`small`,variant:`outlined`,startIcon:m(n,{}),disabled:v,onClick:()=>{this.load()},children:this.getText(`webFidoRefresh`)})]}),y?m(g,{severity:`warning`,sx:{mb:1},children:y}):null,b===!1?m(g,{severity:`info`,sx:{mb:1},children:this.getText(`webFidoInactive`)}):null,_.length===0?m(r,{variant:`body2`,color:`text.secondary`,children:this.getText(`webFidoNoKeys`)}):o(c,{size:`small`,children:[m(a,{children:o(s,{children:[m(u,{children:this.getText(`webFidoKeyName`)}),m(u,{children:this.getText(`webFidoCreated`)}),m(u,{children:this.getText(`webFidoLastUsed`)}),m(u,{align:`right`})]})}),m(l,{children:_.map(e=>o(s,{children:[o(u,{children:[e.name,e.transports&&e.transports.length>0?m(r,{variant:`caption`,color:`text.secondary`,sx:{ml:1},children:e.transports.join(`, `)}):null]}),m(u,{children:this.formatTime(e.createdAt)}),m(u,{children:this.formatTime(e.lastUsedAt)}),m(u,{align:`right`,children:m(f,{size:`small`,color:`error`,disabled:v,title:this.getText(`webFidoDelete`),onClick:()=>{this.remove(e)},children:m(i,{fontSize:`small`})})})]},e.id))})]})]})}};D();var M={NavigationView:y,IconSelect:w,IconOverview:b,PageConfigManager:v,ScreensaverConfigManager:E,PageGlobalSettings:C,TabMaintain:_,TabPanelinfo:x,PageMQTTSetting:T,PagePanelOverview:S,WebFidoKeys:j,ChannelConfigDialog:O};export{M as default};
@@ -1 +1 @@
1
- import{t as e}from"./vite-preload-helper-B7qeedMF.js";var t={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-NuvLowIN.js`).then(e=>(e.H(),e.V)),[],import.meta.url),"react/jsx-runtime":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BSAq68mg.js`).then(e=>e.Ji),[],import.meta.url),"react-dom":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BSAq68mg.js`).then(e=>(e.ea(),e.$i)),[],import.meta.url),"react-dom/client":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-BqcgeZy4.js`).then(e=>e.n),[],import.meta.url),"@emotion/react":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-NuvLowIN.js`).then(e=>e.s),[],import.meta.url),"@emotion/styled":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-C45Qy8QO.js`).then(e=>e.n),[],import.meta.url),"@mui/material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BSAq68mg.js`).then(e=>e.Hr),[],import.meta.url),"@mui/icons-material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BSAq68mg.js`).then(e=>e.Rt),[],import.meta.url),"@iobroker/gui-components":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-BSAq68mg.js`).then(e=>e.x),[],import.meta.url),"@iobroker/json-config":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-W4TRKMtg.js`).then(e=>e.n),[],import.meta.url)},n={react:{name:`react`,version:`19.2.8`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n.react.loaded=!0;let{react:e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react/jsx-runtime":{name:`react/jsx-runtime`,version:`19.2.8`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`react/jsx-runtime`].loaded=!0;let{"react/jsx-runtime":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom":{name:`react-dom`,version:`19.2.8`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`react-dom`].loaded=!0;let{"react-dom":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom/client":{name:`react-dom/client`,version:`19.2.8`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`react-dom/client`].loaded=!0;let{"react-dom/client":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@emotion/react":{name:`@emotion/react`,version:`11.14.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@emotion/react`].loaded=!0;let{"@emotion/react":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@emotion/styled":{name:`@emotion/styled`,version:`11.14.1`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@emotion/styled`].loaded=!0;let{"@emotion/styled":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/material":{name:`@mui/material`,version:`9.3.1`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@mui/material`].loaded=!0;let{"@mui/material":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/icons-material":{name:`@mui/icons-material`,version:`9.3.1`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@mui/icons-material`].loaded=!0;let{"@mui/icons-material":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/gui-components":{name:`@iobroker/gui-components`,version:`10.1.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@iobroker/gui-components`].loaded=!0;let{"@iobroker/gui-components":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/json-config":{name:`@iobroker/json-config`,version:`9.0.20`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@iobroker/json-config`].loaded=!0;let{"@iobroker/json-config":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}}},r=[];export{r as usedRemotes,n as usedShared};
1
+ import{t as e}from"./vite-preload-helper-B7qeedMF.js";var t={react:async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-NuvLowIN.js`).then(e=>(e.H(),e.V)),[],import.meta.url),"react/jsx-runtime":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CgQerXGv.js`).then(e=>e.Yi),[],import.meta.url),"react-dom":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CgQerXGv.js`).then(e=>(e.ta(),e.ea)),[],import.meta.url),"react-dom/client":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-ajx7s9Xx.js`).then(e=>e.n),[],import.meta.url),"@emotion/react":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_react__loadShare__.js-NuvLowIN.js`).then(e=>e.s),[],import.meta.url),"@emotion/styled":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_emotion_mf_1_styled__loadShare__.js-C45Qy8QO.js`).then(e=>e.n),[],import.meta.url),"@mui/material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CgQerXGv.js`).then(e=>e.Ur),[],import.meta.url),"@mui/icons-material":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CgQerXGv.js`).then(e=>e.Rt),[],import.meta.url),"@iobroker/gui-components":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-CgQerXGv.js`).then(e=>e.x),[],import.meta.url),"@iobroker/json-config":async()=>await e(()=>import(`./_virtual_mf___mfe_internal__AdminComponentEasyAccessSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-BAwWzzku.js`).then(e=>e.n),[],import.meta.url)},n={react:{name:`react`,version:`19.2.8`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n.react.loaded=!0;let{react:e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react/jsx-runtime":{name:`react/jsx-runtime`,version:`19.2.8`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`react/jsx-runtime`].loaded=!0;let{"react/jsx-runtime":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom":{name:`react-dom`,version:`19.2.8`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`react-dom`].loaded=!0;let{"react-dom":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"react-dom/client":{name:`react-dom/client`,version:`19.2.8`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`react-dom/client`].loaded=!0;let{"react-dom/client":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@emotion/react":{name:`@emotion/react`,version:`11.14.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@emotion/react`].loaded=!0;let{"@emotion/react":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@emotion/styled":{name:`@emotion/styled`,version:`11.14.1`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@emotion/styled`].loaded=!0;let{"@emotion/styled":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/material":{name:`@mui/material`,version:`9.3.1`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@mui/material`].loaded=!0;let{"@mui/material":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@mui/icons-material":{name:`@mui/icons-material`,version:`9.3.1`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@mui/icons-material`].loaded=!0;let{"@mui/icons-material":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/gui-components":{name:`@iobroker/gui-components`,version:`10.1.0`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@iobroker/gui-components`].loaded=!0;let{"@iobroker/gui-components":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}},"@iobroker/json-config":{name:`@iobroker/json-config`,version:`9.0.20`,scope:[`default`],loaded:!1,materialize:!0,eager:!1,from:`AdminComponentEasyAccessSet`,canLiveRebind:!0,async get(){n[`@iobroker/json-config`].loaded=!0;let{"@iobroker/json-config":e}=t,r={...await e()};return r.__esModule!==!0&&Object.defineProperty(r,"__esModule",{value:!0,enumerable:!1}),function(){return r}},shareConfig:{singleton:!0,requiredVersion:`*`,strictVersion:!1,eager:!1}}},r=[];export{r as usedRemotes,n as usedShared};